qolsys-controller 0.0.23__py3-none-any.whl → 0.0.25__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.

Potentially problematic release.


This version of qolsys-controller might be problematic. Click here for more details.

@@ -12,7 +12,7 @@ class QolsysTableDimmerLight(QolsysTable):
12
12
  super().__init__(db, cursor)
13
13
  self._uri = "content://com.qolsys.qolsysprovider.DimmerLightsContentProvider/dimmerlight"
14
14
  self._table = "dimmerlight"
15
- self._abort_on_error = True
15
+ self._abort_on_error = False
16
16
  self._implemented = True
17
17
 
18
18
  self._columns = [
@@ -12,7 +12,7 @@ class QolsysTableDoorLock(QolsysTable):
12
12
  super().__init__(db, cursor)
13
13
  self._uri = "content://com.qolsys.qolsysprovider.DoorLocksContentProvider/doorlock"
14
14
  self._table = "doorlock"
15
- self._abort_on_error = True
15
+ self._abort_on_error = False
16
16
  self._implemented = True
17
17
 
18
18
  self._columns = [
@@ -12,7 +12,7 @@ class QolsysTableQolsysSettings(QolsysTable):
12
12
  super().__init__(db, cursor)
13
13
  self._uri = "content://com.qolsys.qolsysprovider.QolsysSettingsProvider/qolsyssettings"
14
14
  self._table = "qolsyssettings"
15
- self._abort_on_error = True
15
+ self._abort_on_error = False
16
16
  self._implemented = True
17
17
 
18
18
 
@@ -40,6 +40,7 @@ class QolsysTableSensor(QolsysTable):
40
40
  "zone_supervised",
41
41
  "zone_two_way_voice_enabled",
42
42
  "zone_reporting_enabled",
43
+ "zone_feature1",
43
44
  "battery_status",
44
45
  "created_date",
45
46
  "created_by",
@@ -12,7 +12,7 @@ class QolsysTableWeather(QolsysTable):
12
12
  super().__init__(db, cursor)
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ForecastWeatherContentProvider/weather"
14
14
  self._table = "weather"
15
- self._abort_on_error = True
15
+ self._abort_on_error = False
16
16
  self._implemented = True
17
17
 
18
18
  self._columns = [
@@ -12,7 +12,7 @@ class QolsysTableZwaveNode(QolsysTable):
12
12
  super().__init__(db, cursor)
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ZwaveContentProvider/zwave_node"
14
14
  self._table = "zwave_node"
15
- self._abort_on_error = True
15
+ self._abort_on_error = False
16
16
  self._implemented = True
17
17
 
18
18
  self._columns = [
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import base64
2
3
  import datetime
3
4
  import json
4
5
  import logging
@@ -192,7 +193,7 @@ class QolsysPluginRemote(QolsysPlugin):
192
193
 
193
194
  await self.aiomqtt.__aenter__()
194
195
 
195
- LOGGER.debug("MQTT: Client Connected")
196
+ LOGGER.info("MQTT: Client Connected")
196
197
 
197
198
  # Subscribe to panel internal databse updates
198
199
  await self.aiomqtt.subscribe("iq2meid")
@@ -200,10 +201,13 @@ class QolsysPluginRemote(QolsysPlugin):
200
201
  # Subscribte to MQTT commands response
201
202
  await self.aiomqtt.subscribe("response_" + self.settings.random_mac, qos=self.settings.mqtt_qos)
202
203
 
203
- # Only log mastermeid traffic for debug purposes
204
+ # Subscribe to Z-Wave response
205
+ await self.aiomqtt.subscribe("ZWAVE_RESPONSE", qos=self.settings.mqtt_qos)
206
+
207
+ # Only log all traffic for debug purposes
204
208
  if self.log_mqtt_mesages:
205
209
  # Subscribe to MQTT commands send to panel by other devices
206
- await self.aiomqtt.subscribe("mastermeid", qos=self.settings.mqtt_qos)
210
+ #await self.aiomqtt.subscribe("mastermeid", qos=self.settings.mqtt_qos)
207
211
 
208
212
  # Subscribe to all topics
209
213
  await self.aiomqtt.subscribe("#", qos=self.settings.mqtt_qos)
@@ -282,6 +286,14 @@ class QolsysPluginRemote(QolsysPlugin):
282
286
  data = json.loads(message.payload.decode())
283
287
  self.panel.parse_iq2meid_message(data)
284
288
 
289
+ # Panel Z-Wave response
290
+ if message.topic.matches("ZWAVE_RESPONSE"):
291
+ data = json.loads(message.payload.decode())
292
+ zwave = data.get("ZWAVE_RESPONSE","")
293
+ decoded_payload = base64.b64decode(zwave.get("ZWAVE_PAYLOAD","")).hex()
294
+ LOGGER.debug("Z-Wave Response: Node(%s) - Status(%s) - Payload(%s)",zwave.get("NODE_ID",""),zwave.get("ZWAVE_COMMAND_STATUS",""),decoded_payload)
295
+
296
+
285
297
  except aiomqtt.MqttError as err:
286
298
  self.connected = False
287
299
  self.connected_observer.notify()
@@ -851,6 +863,67 @@ class QolsysPluginRemote(QolsysPlugin):
851
863
 
852
864
  return True
853
865
 
866
+ async def command_zwave_doorlock_set(self, node_id: int, locked:bool) -> None:
867
+ LOGGER.debug("MQTT: Sending zwave_doorlock_set command: EXPERIMENTAL")
868
+ LOGGER.debug("MQTT: Sending zwave_doorlock_set command - Node(%s) - Locked(%s)",node_id,locked)
869
+
870
+ command = 68
871
+
872
+ # 0 unlocked
873
+ # 255 lockeck
874
+ lock_mode = 0
875
+ if locked:
876
+ lock_mode = 255
877
+
878
+ ipcRequest = [{
879
+ "dataType": "int",
880
+ "dataValue": node_id,
881
+ },
882
+ {
883
+ "dataType": "int",
884
+ "dataValue": 0,
885
+ },
886
+ {
887
+ "dataType": "byteArray",
888
+ "dataValue": [command,lock_mode],
889
+ },
890
+ {
891
+ "dataType": "int",
892
+ "dataValue": 0,
893
+ },
894
+ {
895
+ "dataType": "int",
896
+ "dataValue": 106,
897
+ },
898
+ {
899
+ "dataType": "byteArray",
900
+ "dataValue": [0],
901
+ },
902
+ ]
903
+
904
+ topic = "mastermeid"
905
+ eventName = "ipcCall"
906
+ ipcServiceName = "qzwaveservice"
907
+ ipcInterfaceName = "android.os.IQZwaveService"
908
+ ipcTransactionID = 47
909
+ requestID = str(uuid.uuid4())
910
+ remoteMacAddress = self.settings.random_mac
911
+ responseTopic = "response_" + self.settings.random_mac
912
+
913
+ payload = {
914
+ "eventName": eventName,
915
+ "ipcServiceName": ipcServiceName,
916
+ "ipcInterfaceName": ipcInterfaceName,
917
+ "ipcTransactionID": ipcTransactionID,
918
+ "ipcRequest": ipcRequest,
919
+ "requestID": requestID,
920
+ "responseTopic": responseTopic,
921
+ "remoteMacAddress": remoteMacAddress,
922
+ }
923
+
924
+ await self.send_command(topic, payload, requestID)
925
+ LOGGER.debug("MQTT: Receiving zwave_doorlock_set command")
926
+
854
927
  async def command_zwave_thermostat_setpoint_set(self, node_id: int, mode:ThermostatMode, setpoint:float) -> None:
855
928
  # Command 67
856
929
  LOGGER.debug("MQTT: Sending zwave_thermostat_setpoint_set command: EXPERIMENTAL")
@@ -941,14 +1014,16 @@ class QolsysPluginRemote(QolsysPlugin):
941
1014
  remoteMacAddress = self.settings.random_mac
942
1015
  responseTopic = "response_" + self.settings.random_mac
943
1016
 
944
- payload = {"eventName": eventName,
945
- "ipcServiceName": ipcServiceName,
946
- "ipcInterfaceName": ipcInterfaceName,
947
- "ipcTransactionID": ipcTransactionID,
948
- "ipcRequest": ipcRequest,
949
- "requestID": requestID,
950
- "responseTopic": responseTopic,
951
- "remoteMacAddress": remoteMacAddress}
1017
+ payload = {
1018
+ "eventName": eventName,
1019
+ "ipcServiceName": ipcServiceName,
1020
+ "ipcInterfaceName": ipcInterfaceName,
1021
+ "ipcTransactionID": ipcTransactionID,
1022
+ "ipcRequest": ipcRequest,
1023
+ "requestID": requestID,
1024
+ "responseTopic": responseTopic,
1025
+ "remoteMacAddress": remoteMacAddress
1026
+ }
952
1027
 
953
1028
  await self.send_command(topic, payload, requestID)
954
1029
  LOGGER.debug("MQTT: Receiving zwave_thermostat_mode_set command")
@@ -53,7 +53,7 @@ class QolsysScene(QolsysObservable):
53
53
  return self._color
54
54
 
55
55
  @name.setter
56
- def name(self, value: str) -> None:
56
+ def name(self, value: str) -> None:
57
57
  if self._name != value:
58
58
  self._name = value
59
59
  self.notify()
@@ -234,8 +234,8 @@ class QolsysState(QolsysObservable):
234
234
  break
235
235
 
236
236
  # zwave node_id has changed of node_type, delete and add again
237
- # self.zwave_delete(int(state_zwave.node_id)) # noqa: ERA001
238
- # self.zwave_add(db_zwave) # noqa: ERA001
237
+ # self.zwave_delete(int(state_zwave.node_id))
238
+ # self.zwave_add(db_zwave)
239
239
 
240
240
  # Add new zwave device
241
241
  for db_zwave in db_zwaves:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qolsys-controller
3
- Version: 0.0.23
3
+ Version: 0.0.25
4
4
  Summary: A Python module that emulates a virtual IQ Remote device, enabling full local control of a Qolsys IQ Panel
5
5
  Project-URL: Homepage, https://github.com/EHylands/QolsysController
6
6
  Project-URL: Issues, https://github.com/EHylands/QolsysController/issues
@@ -11,10 +11,10 @@ qolsys_controller/partition.py,sha256=j8FrWvA19_MpQvXDLKl5VvkqX_rcs4GWfFGwyQ2VFw
11
11
  qolsys_controller/pki.py,sha256=_e0tiNF8Hypb37cHr7x8yqUZDaqbzRzP45AitTtmzk4,8663
12
12
  qolsys_controller/plugin.py,sha256=Qh0irFbuw9R2QF3jOFTJw70ceVxK1ld5_sW7VnpOrA8,819
13
13
  qolsys_controller/plugin_c4.py,sha256=71o5Y7Y13GO0vWCPIsCtpqXxrplryyqt8ua5L8F4StQ,382
14
- qolsys_controller/plugin_remote.py,sha256=ZDQ7_LRL096nnpx5RucJHQBF8SEbgmkT0cp234z2oaM,47305
15
- qolsys_controller/scene.py,sha256=inRZNpAQ0BmQoSbeCSYc4HAP97srncBj1jqZDgGEjLI,1900
14
+ qolsys_controller/plugin_remote.py,sha256=mxRu08PZ0UpIqo0zgXC3VLWD44H2AIxgOHWplLlHjZY,49792
15
+ qolsys_controller/scene.py,sha256=b_8pzAJ08L7Nc-vouzkDxZKkcDQ239pLnvSDnN4g_oQ,1899
16
16
  qolsys_controller/settings.py,sha256=ywtlSN4TNUi0NRDjw77lr28fcUD8qYPHNVP67dCuGiQ,5421
17
- qolsys_controller/state.py,sha256=TGqSO7aj3l1H__NMGmRBP2Q54OGjNSaYFUn4E8kKhOE,16906
17
+ qolsys_controller/state.py,sha256=8ZkHMY_mY--G8laxjrA96eTnPiG5AcFwE_MNgU9a3AQ,16874
18
18
  qolsys_controller/task_manager.py,sha256=IBFi1l9aId950wvRpvP6d4PHZhr3v1hnnt8NVulM3BI,1139
19
19
  qolsys_controller/utils_mqtt.py,sha256=2hf9_BnQbsWi8t0KBiK5MSsDgGjlbWVJi-Sd3H5VVt0,575
20
20
  qolsys_controller/zone.py,sha256=2CPtYHbAhPqe74yKsDFrwLYHnS27HDPrAvw85IwSMGE,11366
@@ -31,8 +31,8 @@ qolsys_controller/database/table_alarmedsensor.py,sha256=BZ6K9CQbcXRw0rf6WODS0NF
31
31
  qolsys_controller/database/table_automation.py,sha256=1qCdSIX2ALSdGxkZdMbHWT43VjqX4WgmNed4HcC7wc8,1287
32
32
  qolsys_controller/database/table_country_locale.py,sha256=OkjqGhYhYaGptZGN74eJI-dkRYSv_Cpex_zCs93v1Wo,1013
33
33
  qolsys_controller/database/table_dashboard_msgs.py,sha256=uImI4hHO-34vpTqmdXGFveiW5Nyo84nbMwFb7hB3l3w,847
34
- qolsys_controller/database/table_dimmerlight.py,sha256=XMknGgah2h7_6SpdLMe3c8lqePOg2jo9begcy0t3BXo,926
35
- qolsys_controller/database/table_doorlock.py,sha256=ebeYZcgUNKuXMjm4Y9X4QpVKLoxPyfbinfuoUT77qqo,952
34
+ qolsys_controller/database/table_dimmerlight.py,sha256=C798oSncOvr9m7E7yk7PUipzAI4DmVNZ_Rv8n1-sztk,927
35
+ qolsys_controller/database/table_doorlock.py,sha256=VQO25EyekWtLkkp7DHRVRReAjWxSNH2-cs2wpHXMD0M,953
36
36
  qolsys_controller/database/table_eu_event.py,sha256=D9tGGTX8oNBxSijcixCykOyqSOV_WbU8VqW_KYZOUGI,557
37
37
  qolsys_controller/database/table_heat_map.py,sha256=EtqlVajcMIBBN1USWyA-we76b1LsTA1UoM33TwEQaTY,747
38
38
  qolsys_controller/database/table_history.py,sha256=-8RRZGejDnF_-cNc4DoqPJZ0bbqpGPocdENpbkcsbhQ,798
@@ -45,9 +45,9 @@ qolsys_controller/database/table_output_rules.py,sha256=pYs1PQ1rv3-fIDcEI0i-jKOw
45
45
  qolsys_controller/database/table_partition.py,sha256=u1239frG6KwnXCk3-xcACZVvzrnxsdV17f175_oL9TE,672
46
46
  qolsys_controller/database/table_pgm_outputs.py,sha256=hZyR4tpTss1kP6UCVBBbJHH5LYBMNHAHbcCoeQcCc38,568
47
47
  qolsys_controller/database/table_powerg_device.py,sha256=TpXcA9nGkMeVwUG7eo7DQr9M-kHiWLtgIM3MtyMj_Fg,576
48
- qolsys_controller/database/table_qolsyssettings.py,sha256=qqqCVRAb7pQYjWCYnaavShorn-Uo_YM_tUNhW6e1E6o,684
48
+ qolsys_controller/database/table_qolsyssettings.py,sha256=ryJylcS7vthhXlzEywwLRxbkkz2gmdnadMs0FkMD2yQ,685
49
49
  qolsys_controller/database/table_scene.py,sha256=DmUuWRSRUfpXxuFh_CzgYm_GkyyNe6DKQHhgl3AFkMs,846
50
- qolsys_controller/database/table_sensor.py,sha256=UbGhMpbyfeuqknnesfpswL8pHlvpOpPou-h-c6JxI5E,1765
50
+ qolsys_controller/database/table_sensor.py,sha256=vav3YumgLpF37ARDEFiwWa1ddiiioEM0Jdugx5-Awwo,1794
51
51
  qolsys_controller/database/table_shades.py,sha256=Gzbh3VH89O9jYW-4Gf0wY14Jl6eSVGT_-IerMZ4-OHo,550
52
52
  qolsys_controller/database/table_smartsocket.py,sha256=bSBkiwbtDsQzH3teDtDmLzjqsmRcsoj70jI10vh8WhY,571
53
53
  qolsys_controller/database/table_state.py,sha256=amHZB0jFm_Z_DEg-9ChSGIxkJeXC70AW8N247GB8yww,681
@@ -56,13 +56,13 @@ qolsys_controller/database/table_thermostat.py,sha256=DIM_D_sKjMWW1Ey-awT_QOgft6
56
56
  qolsys_controller/database/table_trouble_conditions.py,sha256=2qnejp13C-WV2xdAs3xDNRT1HrnhlemmNhxV4EB72AQ,792
57
57
  qolsys_controller/database/table_user.py,sha256=VFKkQznQscanuaQG3UjFrMNx0xuv8wayQF5iBdj-Sao,1106
58
58
  qolsys_controller/database/table_virtual_device.py,sha256=AksA7HiUTIsBXtqqWcu884zr-XdS1i3WXP4MsHchEqM,580
59
- qolsys_controller/database/table_weather.py,sha256=wA3SGpGtpu75fO9OM4zokVmOWd1Fg72dcGBUV1zcsn0,816
59
+ qolsys_controller/database/table_weather.py,sha256=EsaFosgdVs4tj9SZP1Af000uCatiZQvboKpvgQzw5IM,817
60
60
  qolsys_controller/database/table_zigbee_device.py,sha256=weB-ijTNWs-rLbkVauIdiz1oPM23JAgFgRf4t1EjyqI,574
61
61
  qolsys_controller/database/table_zwave_association_group.py,sha256=B8SHPU335a2wh8vPC9iJ0iVuPOo6PqO0t6vJzlf7ioM,942
62
62
  qolsys_controller/database/table_zwave_history.py,sha256=iLCkRZOsQmc5TQT0-IngyNkrG78kQrEhITPChmNt1bM,942
63
- qolsys_controller/database/table_zwave_node.py,sha256=hAsC7Qn6riqqViAJ61cBaCs5tmD9TmIv4_KynzkJFpU,2567
63
+ qolsys_controller/database/table_zwave_node.py,sha256=5YDHwG139qLUx9BwzCJaqovMgdCcXng0dWOTTa75kQs,2568
64
64
  qolsys_controller/database/table_zwave_other.py,sha256=RzWuWMQA3czUNRWAP8SaAk6tiTeUgGl3J97npzW6AA0,573
65
- qolsys_controller-0.0.23.dist-info/METADATA,sha256=wyn7c464TqGrDHNHQqe9s68fUEIz8VpUlJUOfLGGRzc,4252
66
- qolsys_controller-0.0.23.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
67
- qolsys_controller-0.0.23.dist-info/licenses/LICENSE,sha256=GBHv9eggdA5ablDMW1xiLzGDZ2gCIhcKGW__c2aVIOc,1069
68
- qolsys_controller-0.0.23.dist-info/RECORD,,
65
+ qolsys_controller-0.0.25.dist-info/METADATA,sha256=yvDieLSgjZyFq1j-cd-CFo-seVwrALzTwce2-f_PS20,4252
66
+ qolsys_controller-0.0.25.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
67
+ qolsys_controller-0.0.25.dist-info/licenses/LICENSE,sha256=GBHv9eggdA5ablDMW1xiLzGDZ2gCIhcKGW__c2aVIOc,1069
68
+ qolsys_controller-0.0.25.dist-info/RECORD,,