jvconnected.config¶
-
jvconnected.config.get_config_dir(app_name: str) → pathlib.Path[source]¶ Get the platform’s preferred configuration directory
For Windows, the
%LOCALAPPDATA%environment variable is used. Typicallyc:\Users\<username>\AppData\LocalFor MacOS,
~/Library/PreferencesAll others will be
~/.config
-
class
jvconnected.config.Config(*args, **kwargs)[source]¶ Bases:
pydispatch.dispatch.DispatcherConfiguration storage
This object provides a dict-like interface and stores the configuration data automatically when it changes. The stored config data is read on initialization.
- Parameters
filename (
pathlib.Path, optional) – The configuration filename. If not provided, theDEFAULT_FILENAMEis used- Attributes
DEFAULT_FILENAME (
pathlib.Path) – Platform-dependent default filename (<config_dir>/jvconnected/config.json). Where<config_dir>is chosen inget_config_dir()indexed_devices – An instance of
jvconnected.utils.IndexedDictto handle device indexing
-
add_device(device: jvconnected.config.DeviceConfig) → jvconnected.config.DeviceConfig[source]¶ Add a
DeviceConfiginstanceIf a device config already exists, it will be updated with the info provided using
DeviceConfig.update_from_other()If its
device_indexis set, it will be added toindexed_devices.
-
add_discovered_device(info: zeroconf.ServiceInfo) → DeviceConfig[source]¶ Add a
DeviceConfigfrom zeroconf data
-
class
jvconnected.config.DeviceConfig(*args, **kwargs)[source]¶ Bases:
pydispatch.dispatch.DispatcherConfiguration data for a device
- Properties
-
name: str → Property(str)¶ The device name, taken from
zeroconf.ServiceInfo.get_name()
-
dns_name: str → Property(str)¶ The fully qualified name for the service host, taken from
ServiceInfo.server
-
fqdn: str → Property(str)¶ The fully qualified service name, taken from
ServiceInfo.name
-
device_index: int → Property(int)¶ Index for the device for organization purposes. If
None(default), no index is assigned. Otherwise, the index will be assigned according tojvconnected.utils.IndexedDict.add()
-
active: bool → Property(bool)¶ Trueif ajvconnected.device.Deviceis currently communicating with the device
-
- Events
-
on_change(instance, prop_name, value)¶ Fired when any property value changes
-
-
property
model_name→ str [read-only]¶ The model name of the device, taken from
ServiceInfo.properties
-
property
serial_number→ str [read-only]¶ The serial number of the device, taken from the service name
hc500-XXXXXXXXwhereXXXXXXXXis the serial number
-
property
id→ str [read-only]¶ A unique id for the device using the
model_nameandserial_numberattributes
-
classmethod
get_id_for_service_info(info: zeroconf.ServiceInfo) → str[source]¶ Get the
idattribute for the givenzeroconf.ServiceInfo
-
classmethod
get_props_from_service_info(info: zeroconf.ServiceInfo) → Dict[source]¶ Build a dictionary of instance attributes from a
zeroconf.ServiceInfo
-
classmethod
from_service_info(info: zeroconf.ServiceInfo) → DeviceConfig[source]¶ Construct an instance from a
zeroconf.ServiceInfo
-
update_from_service_info(info: zeroconf.ServiceInfo)[source]¶ Update instance attributes from a
zeroconf.ServiceInfo
-
update_from_other(other: jvconnected.config.DeviceConfig)[source]¶ Update from another instance of
DeviceConfig