qolsys-controller 0.0.2__py3-none-any.whl → 0.0.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qolsys_controller/controller.py +6 -8
- qolsys_controller/database/db.py +62 -58
- qolsys_controller/database/table.py +24 -25
- qolsys_controller/database/table_alarmedsensor.py +15 -14
- qolsys_controller/database/table_automation.py +32 -28
- qolsys_controller/database/table_country_locale.py +23 -20
- qolsys_controller/database/table_dashboard_msgs.py +6 -5
- qolsys_controller/database/table_dimmerlight.py +22 -20
- qolsys_controller/database/table_doorlock.py +22 -20
- qolsys_controller/database/table_eu_event.py +5 -5
- qolsys_controller/database/table_heat_map.py +14 -13
- qolsys_controller/database/table_history.py +16 -15
- qolsys_controller/database/table_iqremotesettings.py +13 -12
- qolsys_controller/database/table_iqrouter_network_config.py +5 -5
- qolsys_controller/database/table_iqrouter_user_device.py +5 -5
- qolsys_controller/database/table_master_slave.py +28 -25
- qolsys_controller/database/table_partition.py +10 -10
- qolsys_controller/database/table_powerg_device.py +5 -5
- qolsys_controller/database/table_qolsyssettings.py +10 -10
- qolsys_controller/database/table_scene.py +20 -17
- qolsys_controller/database/table_sensor.py +56 -47
- qolsys_controller/database/table_smartsocket.py +5 -5
- qolsys_controller/database/table_state.py +12 -11
- qolsys_controller/database/table_tcc.py +6 -5
- qolsys_controller/database/table_thermostat.py +41 -34
- qolsys_controller/database/table_trouble_conditions.py +14 -13
- qolsys_controller/database/table_user.py +17 -16
- qolsys_controller/database/table_virtual_device.py +5 -5
- qolsys_controller/database/table_weather.py +16 -15
- qolsys_controller/database/table_zigbee_device.py +5 -5
- qolsys_controller/database/table_zwave_association_group.py +19 -17
- qolsys_controller/database/table_zwave_history.py +22 -20
- qolsys_controller/database/table_zwave_node.py +73 -68
- qolsys_controller/database/table_zwave_other.py +5 -5
- qolsys_controller/enum.py +44 -41
- qolsys_controller/errors.py +13 -13
- qolsys_controller/mdns.py +3 -3
- qolsys_controller/mqtt_command_queue.py +2 -3
- qolsys_controller/observable.py +3 -2
- qolsys_controller/panel.py +163 -161
- qolsys_controller/partition.py +46 -43
- qolsys_controller/pki.py +72 -65
- qolsys_controller/plugin.py +5 -4
- qolsys_controller/plugin_c4.py +8 -9
- qolsys_controller/plugin_remote.py +237 -228
- qolsys_controller/settings.py +104 -8
- qolsys_controller/state.py +68 -65
- qolsys_controller/task_manager.py +3 -3
- qolsys_controller/utils_mqtt.py +14 -11
- qolsys_controller/zone.py +69 -68
- qolsys_controller/zwave_device.py +46 -43
- qolsys_controller/zwave_dimmer.py +28 -26
- qolsys_controller/zwave_garagedoor.py +1 -0
- qolsys_controller/zwave_generic.py +2 -1
- qolsys_controller/zwave_lock.py +28 -30
- qolsys_controller/zwave_outlet.py +1 -0
- qolsys_controller/zwave_thermostat.py +58 -55
- {qolsys_controller-0.0.2.dist-info → qolsys_controller-0.0.5.dist-info}/METADATA +7 -3
- qolsys_controller-0.0.5.dist-info/RECORD +62 -0
- qolsys_controller-0.0.2.dist-info/RECORD +0 -62
- {qolsys_controller-0.0.2.dist-info → qolsys_controller-0.0.5.dist-info}/WHEEL +0 -0
- {qolsys_controller-0.0.2.dist-info → qolsys_controller-0.0.5.dist-info}/licenses/LICENSE +0 -0
qolsys_controller/zone.py
CHANGED
@@ -5,67 +5,68 @@ from .observable import QolsysObservable
|
|
5
5
|
|
6
6
|
LOGGER = logging.getLogger(__name__)
|
7
7
|
|
8
|
+
|
8
9
|
class QolsysZone(QolsysObservable):
|
9
10
|
|
10
|
-
def __init__(self, data:dict) -> None:
|
11
|
+
def __init__(self, data: dict) -> None:
|
11
12
|
super().__init__()
|
12
13
|
|
13
|
-
self._zone_id = data.get("zoneid","")
|
14
|
-
self._sensorname =
|
15
|
-
self._sensorstatus:ZoneStatus = ZoneStatus(data.get("sensorstatus",""))
|
16
|
-
self._sensortype = ZoneSensorType(data.get("sensortype",""))
|
17
|
-
self._sensorgroup =
|
18
|
-
self._battery_status = data.get("battery_status","")
|
19
|
-
self._averagedBm = data.get("averagedBm","")
|
20
|
-
self._latestdBm = data.get("latestdBm","")
|
21
|
-
self._ac_status = data.get("ac_status","")
|
22
|
-
|
23
|
-
self._id = data.get("_id","")
|
24
|
-
self._zone_type = data.get("zone_type","")
|
25
|
-
self._sensor_id = data.get("sensorid","")
|
26
|
-
self._sensorstate = data.get("sensorstate","")
|
27
|
-
self._zone_physical_type = data.get("zone_physical_type","")
|
28
|
-
self._zone_alarm_type = data.get("zone_alarm_type","")
|
29
|
-
self._partition_id = data.get("partition_id","")
|
30
|
-
self._sensortts = data.get("sensortts","")
|
31
|
-
self._current_capability = data.get("current_capability","")
|
32
|
-
self._zone_rf_sensor = data.get("zone_rf_sensor","")
|
33
|
-
self._zone_supervised = data.get("zone_supervised","")
|
34
|
-
self._zone_reporting_enabled = data.get("zone_reporting_enabled","")
|
35
|
-
self._zone_two_way_voice_enabled = data.get("zone_two_way_voice_enabled","")
|
36
|
-
self._signal_source = data.get("signal_source","")
|
37
|
-
self._serial_number = data.get("serial_number","")
|
38
|
-
self._chimetype = data.get("chimetype","")
|
39
|
-
self._frame_count = data.get("frame_count","")
|
40
|
-
self._frame_type = data.get("frame_type","")
|
41
|
-
self._frame_id = data.get("frame_id","")
|
42
|
-
self._allowdisarming = data.get("allowdisarming","")
|
43
|
-
self._time = data.get("time","")
|
44
|
-
self._version = data.get("version","")
|
45
|
-
self._opr = data.get("opr","")
|
46
|
-
self._zone_equipement_code = data.get("zone_equipment_code","")
|
47
|
-
self._created_date = data.get("created_date","")
|
48
|
-
self._created_by = data.get("created_by","")
|
49
|
-
self._updated_by = data.get("updated_by","")
|
50
|
-
self._updated_date = data.get("updated_date","")
|
51
|
-
self._shortID = data.get("shortID","")
|
52
|
-
self._diag_24hr = data.get("diag_24hr","")
|
53
|
-
self._device_capability = data.get("device_capability","")
|
54
|
-
self._sub_type = data.get("sub_type","")
|
55
|
-
self._powerg_manufacture_id = data.get("powerg_manufacture_id","")
|
56
|
-
self._parent_node = data.get("parent_node","")
|
57
|
-
self._extras = data.get("extras","")
|
58
|
-
|
59
|
-
def update(self,data:dict) -> None: # noqa: C901, PLR0912, PLR0915
|
60
|
-
|
61
|
-
zone_id_update = data.get("zoneid","")
|
14
|
+
self._zone_id = data.get("zoneid", "")
|
15
|
+
self._sensorname = data.get("sensorname", "")
|
16
|
+
self._sensorstatus: ZoneStatus = ZoneStatus(data.get("sensorstatus", ""))
|
17
|
+
self._sensortype = ZoneSensorType(data.get("sensortype", ""))
|
18
|
+
self._sensorgroup = data.get("sensorgroup", "")
|
19
|
+
self._battery_status = data.get("battery_status", "")
|
20
|
+
self._averagedBm = data.get("averagedBm", "")
|
21
|
+
self._latestdBm = data.get("latestdBm", "")
|
22
|
+
self._ac_status = data.get("ac_status", "")
|
23
|
+
|
24
|
+
self._id = data.get("_id", "")
|
25
|
+
self._zone_type = data.get("zone_type", "")
|
26
|
+
self._sensor_id = data.get("sensorid", "")
|
27
|
+
self._sensorstate = data.get("sensorstate", "")
|
28
|
+
self._zone_physical_type = data.get("zone_physical_type", "")
|
29
|
+
self._zone_alarm_type = data.get("zone_alarm_type", "")
|
30
|
+
self._partition_id = data.get("partition_id", "")
|
31
|
+
self._sensortts = data.get("sensortts", "")
|
32
|
+
self._current_capability = data.get("current_capability", "")
|
33
|
+
self._zone_rf_sensor = data.get("zone_rf_sensor", "")
|
34
|
+
self._zone_supervised = data.get("zone_supervised", "")
|
35
|
+
self._zone_reporting_enabled = data.get("zone_reporting_enabled", "")
|
36
|
+
self._zone_two_way_voice_enabled = data.get("zone_two_way_voice_enabled", "")
|
37
|
+
self._signal_source = data.get("signal_source", "")
|
38
|
+
self._serial_number = data.get("serial_number", "")
|
39
|
+
self._chimetype = data.get("chimetype", "")
|
40
|
+
self._frame_count = data.get("frame_count", "")
|
41
|
+
self._frame_type = data.get("frame_type", "")
|
42
|
+
self._frame_id = data.get("frame_id", "")
|
43
|
+
self._allowdisarming = data.get("allowdisarming", "")
|
44
|
+
self._time = data.get("time", "")
|
45
|
+
self._version = data.get("version", "")
|
46
|
+
self._opr = data.get("opr", "")
|
47
|
+
self._zone_equipement_code = data.get("zone_equipment_code", "")
|
48
|
+
self._created_date = data.get("created_date", "")
|
49
|
+
self._created_by = data.get("created_by", "")
|
50
|
+
self._updated_by = data.get("updated_by", "")
|
51
|
+
self._updated_date = data.get("updated_date", "")
|
52
|
+
self._shortID = data.get("shortID", "")
|
53
|
+
self._diag_24hr = data.get("diag_24hr", "")
|
54
|
+
self._device_capability = data.get("device_capability", "")
|
55
|
+
self._sub_type = data.get("sub_type", "")
|
56
|
+
self._powerg_manufacture_id = data.get("powerg_manufacture_id", "")
|
57
|
+
self._parent_node = data.get("parent_node", "")
|
58
|
+
self._extras = data.get("extras", "")
|
59
|
+
|
60
|
+
def update(self, data: dict) -> None: # noqa: C901, PLR0912, PLR0915
|
61
|
+
|
62
|
+
zone_id_update = data.get("zoneid", "")
|
62
63
|
if zone_id_update != self._zone_id:
|
63
|
-
|
64
|
-
|
64
|
+
LOGGER.error("Updating Zone%s (%s) with Zone%s (different id)", self._zone_id, self.sensorname, zone_id_update)
|
65
|
+
return
|
65
66
|
|
66
67
|
self.start_batch_update()
|
67
68
|
|
68
|
-
|
69
|
+
# Update sensor_name
|
69
70
|
if "sensorname" in data:
|
70
71
|
self.sensorname = data.get("sensorname")
|
71
72
|
|
@@ -202,7 +203,7 @@ class QolsysZone(QolsysObservable):
|
|
202
203
|
return self._time
|
203
204
|
|
204
205
|
@property
|
205
|
-
def latestdBm(self)
|
206
|
+
def latestdBm(self) -> str:
|
206
207
|
return self._latestdBm
|
207
208
|
|
208
209
|
@property
|
@@ -210,66 +211,66 @@ class QolsysZone(QolsysObservable):
|
|
210
211
|
return self._averagedBm
|
211
212
|
|
212
213
|
@averagedBm.setter
|
213
|
-
def averagedBm(self,value:str) -> None:
|
214
|
+
def averagedBm(self, value: str) -> None:
|
214
215
|
if self._averagedBm != value:
|
215
216
|
self._averagedBm = value
|
216
217
|
self.notify()
|
217
218
|
|
218
219
|
@latestdBm.setter
|
219
|
-
def latestdBm(self,value:str) -> None:
|
220
|
+
def latestdBm(self, value: str) -> None:
|
220
221
|
if self._latestdBm != value:
|
221
222
|
self.latestdBm = value
|
222
223
|
self.notify()
|
223
224
|
|
224
225
|
@sensorstatus.setter
|
225
|
-
def sensorstatus(self, new_value:ZoneStatus) -> None:
|
226
|
+
def sensorstatus(self, new_value: ZoneStatus) -> None:
|
226
227
|
if self._sensorstatus != new_value:
|
227
|
-
LOGGER.debug("Zone%s (%s) - sensorstatus: %s",self._zone_id,self.sensorname,new_value)
|
228
|
+
LOGGER.debug("Zone%s (%s) - sensorstatus: %s", self._zone_id, self.sensorname, new_value)
|
228
229
|
self._sensorstatus = new_value
|
229
230
|
self.notify()
|
230
231
|
|
231
232
|
@battery_status.setter
|
232
|
-
def battery_status(self, value:str) -> None:
|
233
|
+
def battery_status(self, value: str) -> None:
|
233
234
|
if self._battery_status != value:
|
234
|
-
LOGGER.debug("Zone%s (%s) - battery_status: %s",self.zone_id,self.sensorname,value)
|
235
|
+
LOGGER.debug("Zone%s (%s) - battery_status: %s", self.zone_id, self.sensorname, value)
|
235
236
|
self._battery_status = value
|
236
237
|
self.notify()
|
237
238
|
|
238
239
|
@sensorname.setter
|
239
|
-
def sensorname(self, value:str) -> None:
|
240
|
+
def sensorname(self, value: str) -> None:
|
240
241
|
if self.sensorname != value:
|
241
242
|
self._sensorname = value
|
242
243
|
self.notify()
|
243
244
|
|
244
245
|
@time.setter
|
245
|
-
def time(self, value:str) -> None:
|
246
|
+
def time(self, value: str) -> None:
|
246
247
|
if self._time != value:
|
247
|
-
LOGGER.debug("Zone%s (%s) - time: %s",self.zone_id,self.sensorname,value)
|
248
|
+
LOGGER.debug("Zone%s (%s) - time: %s", self.zone_id, self.sensorname, value)
|
248
249
|
self._time = value
|
249
250
|
self.notify()
|
250
251
|
|
251
252
|
@sensortype.setter
|
252
|
-
def sensortype(self,value:ZoneSensorType) -> None:
|
253
|
+
def sensortype(self, value: ZoneSensorType) -> None:
|
253
254
|
if self._sensortype != value:
|
254
255
|
self._sensortype = value
|
255
256
|
self.notify()
|
256
257
|
|
257
258
|
@sensorgroup.setter
|
258
|
-
def sensorgroup(self,new_value:str) -> None:
|
259
|
+
def sensorgroup(self, new_value: str) -> None:
|
259
260
|
if self._sensorgroup != new_value:
|
260
261
|
|
261
262
|
# Report new values
|
262
263
|
try:
|
263
264
|
ZoneSensorGroup(new_value)
|
264
265
|
except ValueError:
|
265
|
-
LOGGER.exception("Unknown Sensor group: %s, please report",new_value)
|
266
|
+
LOGGER.exception("Unknown Sensor group: %s, please report", new_value)
|
266
267
|
|
267
268
|
self._sensorgroup = new_value
|
268
|
-
LOGGER.debug("Zone%s (%s) - sensorgroup: %s",self.zone_id,self.sensorname,new_value.name)
|
269
|
+
LOGGER.debug("Zone%s (%s) - sensorgroup: %s", self.zone_id, self.sensorname, new_value.name)
|
269
270
|
self.notify()
|
270
271
|
|
271
272
|
@partition_id.setter
|
272
|
-
def partition_id(self, value:str) -> None:
|
273
|
+
def partition_id(self, value: str) -> None:
|
273
274
|
if self.partition_id != value:
|
274
275
|
self.partition_id = value
|
275
276
|
self.notify()
|
@@ -4,36 +4,37 @@ from .observable import QolsysObservable
|
|
4
4
|
|
5
5
|
LOGGER = logging.getLogger(__name__)
|
6
6
|
|
7
|
+
|
7
8
|
class QolsysZWaveDevice(QolsysObservable):
|
8
9
|
|
9
|
-
def __init__(self,zwave_dict:dict) -> None:
|
10
|
+
def __init__(self, zwave_dict: dict) -> None:
|
10
11
|
super().__init__()
|
11
12
|
|
12
13
|
self._id = zwave_dict.get("_id")
|
13
|
-
self._node_id = zwave_dict.get("node_id","")
|
14
|
-
self._node_name = zwave_dict.get("node_name","")
|
15
|
-
self._node_type =
|
16
|
-
self._node_status = zwave_dict.get("node_status","")
|
17
|
-
self._partition_id = zwave_dict.get("partition_id","")
|
18
|
-
self._node_secure_cmd_cls = zwave_dict.get("node_secure_cmd_cls","")
|
19
|
-
self._node_battery_level = zwave_dict.get("node_battery_level","")
|
20
|
-
self._node_battery_level_value = zwave_dict.get("node_battery_level_value","")
|
21
|
-
self._is_node_listening_node = zwave_dict.get("is_node_listening_node","")
|
22
|
-
self._basic_report_value = zwave_dict.get("basic_report_value","")
|
23
|
-
self._switch_multilevel_report_value = zwave_dict.get("switch_multilevel_report_value","")
|
24
|
-
self._basic_device_type = zwave_dict.get("basic_device_type","")
|
25
|
-
self._generic_device_type = zwave_dict.get("generic_device_type","")
|
26
|
-
self._specific_device_type = zwave_dict.get("specific_device_type","")
|
27
|
-
self._num_secure_command_class = zwave_dict.get("num_secure_command_class","")
|
28
|
-
self._secure_command_class = zwave_dict.get("secure_command_class","")
|
29
|
-
self._manufacture_id = zwave_dict.get("manufacture_id","")
|
30
|
-
self._product_type = zwave_dict.get("product_type","")
|
31
|
-
self._device_protocol = zwave_dict.get("device_protocol","")
|
32
|
-
self._paired_status = zwave_dict.get("paired_status","")
|
33
|
-
self._is_device_sleeping = zwave_dict.get("is_device_sleeping","")
|
34
|
-
self._is_device_hidden = zwave_dict.get("is_device_hidden","")
|
35
|
-
self._last_updated_date = zwave_dict.get("last_updated_date","")
|
36
|
-
self._command_class_list = zwave_dict.get("command_class_list","")
|
14
|
+
self._node_id = zwave_dict.get("node_id", "")
|
15
|
+
self._node_name = zwave_dict.get("node_name", "")
|
16
|
+
self._node_type = zwave_dict.get("node_type", "")
|
17
|
+
self._node_status = zwave_dict.get("node_status", "")
|
18
|
+
self._partition_id = zwave_dict.get("partition_id", "")
|
19
|
+
self._node_secure_cmd_cls = zwave_dict.get("node_secure_cmd_cls", "")
|
20
|
+
self._node_battery_level = zwave_dict.get("node_battery_level", "")
|
21
|
+
self._node_battery_level_value = zwave_dict.get("node_battery_level_value", "")
|
22
|
+
self._is_node_listening_node = zwave_dict.get("is_node_listening_node", "")
|
23
|
+
self._basic_report_value = zwave_dict.get("basic_report_value", "")
|
24
|
+
self._switch_multilevel_report_value = zwave_dict.get("switch_multilevel_report_value", "")
|
25
|
+
self._basic_device_type = zwave_dict.get("basic_device_type", "")
|
26
|
+
self._generic_device_type = zwave_dict.get("generic_device_type", "")
|
27
|
+
self._specific_device_type = zwave_dict.get("specific_device_type", "")
|
28
|
+
self._num_secure_command_class = zwave_dict.get("num_secure_command_class", "")
|
29
|
+
self._secure_command_class = zwave_dict.get("secure_command_class", "")
|
30
|
+
self._manufacture_id = zwave_dict.get("manufacture_id", "")
|
31
|
+
self._product_type = zwave_dict.get("product_type", "")
|
32
|
+
self._device_protocol = zwave_dict.get("device_protocol", "")
|
33
|
+
self._paired_status = zwave_dict.get("paired_status", "")
|
34
|
+
self._is_device_sleeping = zwave_dict.get("is_device_sleeping", "")
|
35
|
+
self._is_device_hidden = zwave_dict.get("is_device_hidden", "")
|
36
|
+
self._last_updated_date = zwave_dict.get("last_updated_date", "")
|
37
|
+
self._command_class_list = zwave_dict.get("command_class_list", "")
|
37
38
|
|
38
39
|
@property
|
39
40
|
def node_id(self) -> str:
|
@@ -67,12 +68,14 @@ class QolsysZWaveDevice(QolsysObservable):
|
|
67
68
|
def partition_id(self) -> str:
|
68
69
|
return self._partition_id
|
69
70
|
|
70
|
-
def update_base(self,data:dict) -> None: # noqa: C901, PLR0912, PLR0915
|
71
|
+
def update_base(self, data: dict) -> None: # noqa: C901, PLR0912, PLR0915
|
71
72
|
|
72
73
|
# Check if we are updating same node_id
|
73
|
-
node_id_update = data.get("node_id","")
|
74
|
+
node_id_update = data.get("node_id", "")
|
74
75
|
if node_id_update != self._node_id:
|
75
|
-
LOGGER.error(
|
76
|
+
LOGGER.error(
|
77
|
+
"Updating ZWave%s (%s) with ZWave%s (different node_id)", self.node_id, self.node_name, node_id_update
|
78
|
+
)
|
76
79
|
return
|
77
80
|
|
78
81
|
self.start_batch_update()
|
@@ -129,55 +132,55 @@ class QolsysZWaveDevice(QolsysObservable):
|
|
129
132
|
self.end_batch_update()
|
130
133
|
|
131
134
|
@node_id.setter
|
132
|
-
def node_id(self,value:str) -> str:
|
135
|
+
def node_id(self, value: str) -> str:
|
133
136
|
self._node_id = value
|
134
137
|
|
135
138
|
@paired_status.setter
|
136
|
-
def paired_status(self,value:str) -> str:
|
139
|
+
def paired_status(self, value: str) -> str:
|
137
140
|
if self._paired_status != value:
|
138
|
-
LOGGER.debug("ZWave%s (%s) - paired_status: %s",self.node_id,self.node_name,value)
|
141
|
+
LOGGER.debug("ZWave%s (%s) - paired_status: %s", self.node_id, self.node_name, value)
|
139
142
|
self._paired_status = value
|
140
143
|
self.notify()
|
141
144
|
|
142
145
|
@node_battery_level.setter
|
143
|
-
def node_battery_level(self,value:str) -> None:
|
146
|
+
def node_battery_level(self, value: str) -> None:
|
144
147
|
if self._node_battery_level != value:
|
145
|
-
LOGGER.debug("ZWave%s (%s) - node_battery_level: %s",self.node_id,self.node_name,value)
|
148
|
+
LOGGER.debug("ZWave%s (%s) - node_battery_level: %s", self.node_id, self.node_name, value)
|
146
149
|
self._node_battery_level = value
|
147
150
|
self.notify()
|
148
151
|
|
149
152
|
@node_battery_level_value.setter
|
150
|
-
def node_battery_level_value(self,value:str) -> str:
|
153
|
+
def node_battery_level_value(self, value: str) -> str:
|
151
154
|
if self._node_battery_level_value != value:
|
152
|
-
LOGGER.debug("ZWave%s (%s) - node_battery_level_value: %s",self.node_id,self.node_name,value)
|
155
|
+
LOGGER.debug("ZWave%s (%s) - node_battery_level_value: %s", self.node_id, self.node_name, value)
|
153
156
|
self._node_battery_level_value = value
|
154
157
|
self.notify()
|
155
158
|
|
156
159
|
@node_status.setter
|
157
|
-
def node_status(self,value:str) -> str:
|
160
|
+
def node_status(self, value: str) -> str:
|
158
161
|
if self._node_status != value:
|
159
|
-
LOGGER.debug("ZWave%s (%s) - node_status: %s",self.node_id,self.node_name,value)
|
162
|
+
LOGGER.debug("ZWave%s (%s) - node_status: %s", self.node_id, self.node_name, value)
|
160
163
|
self._node_status = value
|
161
164
|
self.notify()
|
162
165
|
|
163
166
|
@node_name.setter
|
164
|
-
def node_name(self,value:str) -> str:
|
167
|
+
def node_name(self, value: str) -> str:
|
165
168
|
if self._node_name != value:
|
166
|
-
LOGGER.debug("ZWave%s (%s) - node_name: %s",self.node_id,self.node_name,value)
|
169
|
+
LOGGER.debug("ZWave%s (%s) - node_name: %s", self.node_id, self.node_name, value)
|
167
170
|
self._node_name = value
|
168
171
|
self.notify()
|
169
172
|
|
170
173
|
@node_type.setter
|
171
|
-
def node_type(self,value:str) -> str:
|
174
|
+
def node_type(self, value: str) -> str:
|
172
175
|
if self._node_type != value:
|
173
|
-
LOGGER.debug("ZWave%s (%s) - node_type: %s",self.node_id,self.node_name,value)
|
176
|
+
LOGGER.debug("ZWave%s (%s) - node_type: %s", self.node_id, self.node_name, value)
|
174
177
|
self._node_type = value
|
175
178
|
self.notify()
|
176
179
|
|
177
180
|
@partition_id.setter
|
178
|
-
def partition_id(self,value:str) -> str:
|
181
|
+
def partition_id(self, value: str) -> str:
|
179
182
|
if self._partition_id != value:
|
180
|
-
LOGGER.debug("ZWave%s (%s) - partition_id: %s",self._node_id,self._node_name,value)
|
183
|
+
LOGGER.debug("ZWave%s (%s) - partition_id: %s", self._node_id, self._node_name, value)
|
181
184
|
self._partition_id = value
|
182
185
|
self.notify()
|
183
186
|
|
@@ -4,27 +4,28 @@ from .zwave_device import QolsysZWaveDevice
|
|
4
4
|
|
5
5
|
LOGGER = logging.getLogger(__name__)
|
6
6
|
|
7
|
+
|
7
8
|
class QolsysDimmer(QolsysZWaveDevice):
|
8
9
|
|
9
|
-
def __init__(self,dimmer_dict:dict,zwave_dict:dict) -> None:
|
10
|
+
def __init__(self, dimmer_dict: dict, zwave_dict: dict) -> None:
|
10
11
|
|
11
12
|
super().__init__(zwave_dict)
|
12
13
|
|
13
14
|
self._dimmer_id = dimmer_dict.get("_id")
|
14
|
-
self._dimmer_version =
|
15
|
-
self._dimmer_opr = dimmer_dict.get("opr","")
|
16
|
-
self._dimmer_partition_id = dimmer_dict.get("partition_id","")
|
17
|
-
self._dimmer_name = dimmer_dict.get("dimmer_name","")
|
18
|
-
self._dimmer_status = dimmer_dict.get("status","")
|
19
|
-
self._dimmer_level = dimmer_dict.get("level","")
|
20
|
-
self._dimmer_node_id = dimmer_dict.get("node_id","")
|
21
|
-
self._dimmer_created_by = dimmer_dict.get("created_by","")
|
22
|
-
self._dimmer_created_date = dimmer_dict.get("created_date","")
|
23
|
-
self._dimmer_updated_by = dimmer_dict.get("updated_by","")
|
24
|
-
self._dimmer_last_updated_date = dimmer_dict.get("last_updated_date","")
|
25
|
-
self._dimmer_endpoint = dimmer_dict.get("endpoint","")
|
26
|
-
self._dimmer_power_details = dimmer_dict.get("power_details","")
|
27
|
-
self._dimmer_paired_status = dimmer_dict.get("paired_status","")
|
15
|
+
self._dimmer_version = dimmer_dict.get("version", "")
|
16
|
+
self._dimmer_opr = dimmer_dict.get("opr", "")
|
17
|
+
self._dimmer_partition_id = dimmer_dict.get("partition_id", "")
|
18
|
+
self._dimmer_name = dimmer_dict.get("dimmer_name", "")
|
19
|
+
self._dimmer_status = dimmer_dict.get("status", "")
|
20
|
+
self._dimmer_level = dimmer_dict.get("level", "")
|
21
|
+
self._dimmer_node_id = dimmer_dict.get("node_id", "")
|
22
|
+
self._dimmer_created_by = dimmer_dict.get("created_by", "")
|
23
|
+
self._dimmer_created_date = dimmer_dict.get("created_date", "")
|
24
|
+
self._dimmer_updated_by = dimmer_dict.get("updated_by", "")
|
25
|
+
self._dimmer_last_updated_date = dimmer_dict.get("last_updated_date", "")
|
26
|
+
self._dimmer_endpoint = dimmer_dict.get("endpoint", "")
|
27
|
+
self._dimmer_power_details = dimmer_dict.get("power_details", "")
|
28
|
+
self._dimmer_paired_status = dimmer_dict.get("paired_status", "")
|
28
29
|
|
29
30
|
@property
|
30
31
|
def dimmer_node_id(self) -> str:
|
@@ -43,34 +44,35 @@ class QolsysDimmer(QolsysZWaveDevice):
|
|
43
44
|
return self._dimmer_level
|
44
45
|
|
45
46
|
@dimmer_level.setter
|
46
|
-
def dimmer_level(self,value:str) -> None:
|
47
|
+
def dimmer_level(self, value: str) -> None:
|
47
48
|
if self._dimmer_level != value:
|
48
|
-
LOGGER.debug("Dimmer%s (%s) - level: %s",self.node_id,self.dimmer_name,value)
|
49
|
+
LOGGER.debug("Dimmer%s (%s) - level: %s", self.node_id, self.dimmer_name, value)
|
49
50
|
self._dimmer_level = value
|
50
51
|
self.notify()
|
51
52
|
|
52
53
|
@dimmer_status.setter
|
53
|
-
def dimmer_status(self,value:str) -> None:
|
54
|
+
def dimmer_status(self, value: str) -> None:
|
54
55
|
if self._dimmer_status != value:
|
55
|
-
LOGGER.debug("Dimmer%s (%s) - status: %s",self.node_id,self.dimmer_name,value)
|
56
|
+
LOGGER.debug("Dimmer%s (%s) - status: %s", self.node_id, self.dimmer_name, value)
|
56
57
|
self._dimmer_status = value
|
57
58
|
self.notify()
|
58
59
|
|
59
60
|
@dimmer_name.setter
|
60
|
-
def dimmer_name(self,value:str) -> None:
|
61
|
+
def dimmer_name(self, value: str) -> None:
|
61
62
|
if self._dimmer_name != value:
|
62
|
-
LOGGER.debug("Dimmer%s (%s) - name: %s",self.node_id,self.dimmer_name,value)
|
63
|
+
LOGGER.debug("Dimmer%s (%s) - name: %s", self.node_id, self.dimmer_name, value)
|
63
64
|
self._dimmer_name = value
|
64
65
|
self.notify()
|
65
66
|
|
66
67
|
def is_on(self) -> bool:
|
67
68
|
return self.dimmer_status == "On"
|
68
69
|
|
69
|
-
def update_dimmer(self,content_values:dict) -> None: # noqa: C901
|
70
|
+
def update_dimmer(self, content_values: dict) -> None: # noqa: C901
|
70
71
|
# Check if we are updating same none_id
|
71
|
-
node_id_update = content_values.get("node_id","")
|
72
|
+
node_id_update = content_values.get("node_id", "")
|
72
73
|
if node_id_update != self._dimmer_node_id:
|
73
|
-
LOGGER.error(
|
74
|
+
LOGGER.error(
|
75
|
+
"Updating Dimmer %s (%s) with dimmer %s (different id)", self._node_id, self.dimmer_name, node_id_update)
|
74
76
|
return
|
75
77
|
|
76
78
|
self.start_batch_update()
|
@@ -85,7 +87,7 @@ class QolsysDimmer(QolsysZWaveDevice):
|
|
85
87
|
self._dimmer_created_by = content_values.get("created_by")
|
86
88
|
if "created_date" in content_values:
|
87
89
|
self._dimmer_created_date = content_values.get("created_date")
|
88
|
-
if "version" in
|
90
|
+
if "version" in content_values:
|
89
91
|
self._dimmer_version = content_values.get("version")
|
90
92
|
if "opr" in content_values:
|
91
93
|
self._dimmer_opr = content_values.get("opr")
|
@@ -94,7 +96,7 @@ class QolsysDimmer(QolsysZWaveDevice):
|
|
94
96
|
if "updated_by" in content_values:
|
95
97
|
self._dimmer_updated_by = content_values.get("updated_by")
|
96
98
|
if "last_updated_date" in content_values:
|
97
|
-
self._last_updated_date= content_values.get("last_updated_date")
|
99
|
+
self._last_updated_date = content_values.get("last_updated_date")
|
98
100
|
if "endpoint" in content_values:
|
99
101
|
self._dimmer_endpoint = content_values.get("endpoint")
|
100
102
|
if "power_details" in content_values:
|
@@ -4,7 +4,8 @@ from qolsys_controller.zwave_device import QolsysZWaveDevice
|
|
4
4
|
|
5
5
|
LOGGER = logging.getLogger(__name__)
|
6
6
|
|
7
|
+
|
7
8
|
class QolsysGeneric(QolsysZWaveDevice):
|
8
9
|
|
9
|
-
def __init__(self,zwave_dict:dict) -> None:
|
10
|
+
def __init__(self, zwave_dict: dict) -> None:
|
10
11
|
super().__init__(zwave_dict)
|
qolsys_controller/zwave_lock.py
CHANGED
@@ -4,30 +4,31 @@ from .zwave_device import QolsysZWaveDevice
|
|
4
4
|
|
5
5
|
LOGGER = logging.getLogger(__name__)
|
6
6
|
|
7
|
+
|
7
8
|
class QolsysLock(QolsysZWaveDevice):
|
8
9
|
|
9
10
|
LOCK_STATUS_ARRAY = ["Locked"] # noqa: RUF012
|
10
11
|
|
11
|
-
def __init__(self,lock_dict:dict,zwave_dict:dict) -> None:
|
12
|
+
def __init__(self, lock_dict: dict, zwave_dict: dict) -> None:
|
12
13
|
|
13
14
|
super().__init__(zwave_dict)
|
14
15
|
|
15
16
|
self._lock_id = lock_dict.get("_id")
|
16
|
-
self._lock_version =
|
17
|
-
self._lock_opr = lock_dict.get("opr","")
|
18
|
-
self._lock_partition_id = lock_dict.get("partition_id","")
|
19
|
-
self._lock_name = lock_dict.get("doorlock_name","")
|
20
|
-
self._lock_status = lock_dict.get("status","")
|
21
|
-
self._lock_node_id = lock_dict.get("node_id","")
|
22
|
-
self._lock_created_by = lock_dict.get("created_by","")
|
23
|
-
self._lock_created_date = lock_dict.get("created_date","")
|
24
|
-
self._lock_updated_by = lock_dict.get("updated_by","")
|
25
|
-
self._lock_last_updated_date = lock_dict.get("last_updated_date","")
|
26
|
-
self._lock_remote_arming = lock_dict.get("remote_arming","")
|
27
|
-
self._lock_keyfob_arming = lock_dict.get("keyfob_arming","")
|
28
|
-
self._lock_panel_arming = lock_dict.get("panel_arming","")
|
29
|
-
self._lock_endpoint = lock_dict.get("endpoint","")
|
30
|
-
self._lock_paired_status = lock_dict.get("paired_status","")
|
17
|
+
self._lock_version = lock_dict.get("version", "")
|
18
|
+
self._lock_opr = lock_dict.get("opr", "")
|
19
|
+
self._lock_partition_id = lock_dict.get("partition_id", "")
|
20
|
+
self._lock_name = lock_dict.get("doorlock_name", "")
|
21
|
+
self._lock_status = lock_dict.get("status", "")
|
22
|
+
self._lock_node_id = lock_dict.get("node_id", "")
|
23
|
+
self._lock_created_by = lock_dict.get("created_by", "")
|
24
|
+
self._lock_created_date = lock_dict.get("created_date", "")
|
25
|
+
self._lock_updated_by = lock_dict.get("updated_by", "")
|
26
|
+
self._lock_last_updated_date = lock_dict.get("last_updated_date", "")
|
27
|
+
self._lock_remote_arming = lock_dict.get("remote_arming", "")
|
28
|
+
self._lock_keyfob_arming = lock_dict.get("keyfob_arming", "")
|
29
|
+
self._lock_panel_arming = lock_dict.get("panel_arming", "")
|
30
|
+
self._lock_endpoint = lock_dict.get("endpoint", "")
|
31
|
+
self._lock_paired_status = lock_dict.get("paired_status", "")
|
31
32
|
|
32
33
|
@property
|
33
34
|
def lock_node_id(self) -> str:
|
@@ -46,36 +47,37 @@ class QolsysLock(QolsysZWaveDevice):
|
|
46
47
|
return self._paired_status
|
47
48
|
|
48
49
|
@lock_status.setter
|
49
|
-
def lock_status(self,value:str) -> None:
|
50
|
+
def lock_status(self, value: str) -> None:
|
50
51
|
if self._lock_status != value:
|
51
|
-
LOGGER.debug("Lock%s (%s) - status: %s",self.node_id,self.lock_name,value)
|
52
|
+
LOGGER.debug("Lock%s (%s) - status: %s", self.node_id, self.lock_name, value)
|
52
53
|
self._lock_status = value
|
53
54
|
self.notify()
|
54
55
|
|
55
56
|
@lock_name.setter
|
56
|
-
def lock_name(self,value:str) -> None:
|
57
|
+
def lock_name(self, value: str) -> None:
|
57
58
|
if self._lock_name != value:
|
58
|
-
LOGGER.debug("Lock%s (%s) - name: %s",self.node_id,self.lock_name,value)
|
59
|
+
LOGGER.debug("Lock%s (%s) - name: %s", self.node_id, self.lock_name, value)
|
59
60
|
self._lock_name = value
|
60
61
|
self.notify()
|
61
62
|
|
62
63
|
@paired_status.setter
|
63
|
-
def paired_status(self, value:str) -> None:
|
64
|
+
def paired_status(self, value: str) -> None:
|
64
65
|
if self._paired_status != value:
|
65
|
-
LOGGER.debug("Lock%s (%s) - paired_status: %s",self.node_id,self.lock_name,value)
|
66
|
+
LOGGER.debug("Lock%s (%s) - paired_status: %s", self.node_id, self.lock_name, value)
|
66
67
|
self._lock_paired_status = value
|
67
68
|
self.notify()
|
68
69
|
|
69
|
-
def update_lock(self,data:dict) -> None: # noqa: C901, PLR0912
|
70
|
+
def update_lock(self, data: dict) -> None: # noqa: C901, PLR0912
|
70
71
|
# Check if we are updating same zoneid
|
71
|
-
node_id_update = data.get("node_id","")
|
72
|
+
node_id_update = data.get("node_id", "")
|
72
73
|
if node_id_update != self.lock_node_id:
|
73
|
-
LOGGER.error(
|
74
|
+
LOGGER.error(
|
75
|
+
"Updating Lock %s (%s) with Lock '%s' (different id)", self.lock_node_id, self.lock_name, node_id_update)
|
74
76
|
return
|
75
77
|
|
76
78
|
self.start_batch_update()
|
77
79
|
|
78
|
-
if "version" in
|
80
|
+
if "version" in data:
|
79
81
|
self._lock_version = data.get("version")
|
80
82
|
if "opr" in data:
|
81
83
|
self._lock_opr = data.get("opr")
|
@@ -124,7 +126,3 @@ class QolsysLock(QolsysZWaveDevice):
|
|
124
126
|
"endpoint": self._lock_endpoint,
|
125
127
|
"paired_status": self._lock_paired_status,
|
126
128
|
}
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|