qolsys-controller 0.0.12__tar.gz → 0.0.14__tar.gz

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.
Files changed (75) hide show
  1. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/PKG-INFO +1 -1
  2. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/pyproject.toml +1 -1
  3. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_sensor.py +5 -3
  4. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/partition.py +9 -0
  5. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/plugin_remote.py +14 -13
  6. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/.github/workflows/build.yml +0 -0
  7. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/.github/workflows/publish.yml +0 -0
  8. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/.gitignore +0 -0
  9. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/Info_mqtt.md +0 -0
  10. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/LICENSE +0 -0
  11. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/README.md +0 -0
  12. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/bin/qolsys.py +0 -0
  13. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/example.py +0 -0
  14. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/info_pairing.md +0 -0
  15. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/info_qolsys.md +0 -0
  16. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/__init__.py +0 -0
  17. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/controller.py +0 -0
  18. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/db.py +0 -0
  19. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table.py +0 -0
  20. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_alarmedsensor.py +0 -0
  21. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_automation.py +0 -0
  22. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_country_locale.py +0 -0
  23. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_dashboard_msgs.py +0 -0
  24. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_dimmerlight.py +0 -0
  25. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_doorlock.py +0 -0
  26. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_eu_event.py +0 -0
  27. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_heat_map.py +0 -0
  28. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_history.py +0 -0
  29. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_iqremotesettings.py +0 -0
  30. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_iqrouter_network_config.py +0 -0
  31. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_iqrouter_user_device.py +0 -0
  32. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_master_slave.py +0 -0
  33. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_nest_device.py +0 -0
  34. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_output_rules.py +0 -0
  35. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_partition.py +0 -0
  36. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_pgm_outputs.py +0 -0
  37. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_powerg_device.py +0 -0
  38. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_qolsyssettings.py +0 -0
  39. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_scene.py +0 -0
  40. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_shades.py +0 -0
  41. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_smartsocket.py +0 -0
  42. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_state.py +0 -0
  43. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_tcc.py +0 -0
  44. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_thermostat.py +0 -0
  45. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_trouble_conditions.py +0 -0
  46. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_user.py +0 -0
  47. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_virtual_device.py +0 -0
  48. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_weather.py +0 -0
  49. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_zigbee_device.py +0 -0
  50. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_zwave_association_group.py +0 -0
  51. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_zwave_history.py +0 -0
  52. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_zwave_node.py +0 -0
  53. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/database/table_zwave_other.py +0 -0
  54. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/enum.py +0 -0
  55. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/errors.py +0 -0
  56. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/mdns.py +0 -0
  57. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/mqtt_command_queue.py +0 -0
  58. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/observable.py +0 -0
  59. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/panel.py +0 -0
  60. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/pki.py +0 -0
  61. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/plugin.py +0 -0
  62. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/plugin_c4.py +0 -0
  63. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/settings.py +0 -0
  64. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/state.py +0 -0
  65. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/task_manager.py +0 -0
  66. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/utils_mqtt.py +0 -0
  67. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zone.py +0 -0
  68. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_device.py +0 -0
  69. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_dimmer.py +0 -0
  70. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_garagedoor.py +0 -0
  71. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_generic.py +0 -0
  72. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_lock.py +0 -0
  73. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_outlet.py +0 -0
  74. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/qolsys_controller/zwave_thermostat.py +0 -0
  75. {qolsys_controller-0.0.12 → qolsys_controller-0.0.14}/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qolsys-controller
3
- Version: 0.0.12
3
+ Version: 0.0.14
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "qolsys-controller"
3
- version = "0.0.12"
3
+ version = "0.0.14"
4
4
  authors = [
5
5
  { name="Eric Hylands", email="" },
6
6
  ]
@@ -59,6 +59,7 @@ class QolsysTableSensor(QolsysTable):
59
59
  "averagedBm",
60
60
  "serial_number",
61
61
  "extras",
62
+ "allowspeaker",
62
63
  ]
63
64
 
64
65
  self._create_table()
@@ -70,9 +71,9 @@ class QolsysTableSensor(QolsysTable):
70
71
  zone_two_way_voice_enabled, zone_reporting_enabled, battery_status,created_date,created_by,
71
72
  updated_date,updated_by,frame_count,frame_type,current_capability,shortID,diag_24hr,
72
73
  allowdisarming,device_capability,sub_type, signal_source, powerg_manufacture_id,parent_node,
73
- latestdBm,averagedBm,serial_number,extras,ac_status)
74
+ latestdBm,averagedBm,serial_number,extras,ac_status,allowspeaker)
74
75
  VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
75
- ?,?,?,?,?,?,?,?,?,?,?)""", (
76
+ ?,?,?,?,?,?,?,?,?,?,?,?)""", (
76
77
  data.get("_id"),
77
78
  data.get("version", ""),
78
79
  data.get("opr", ""),
@@ -116,6 +117,7 @@ class QolsysTableSensor(QolsysTable):
116
117
  data.get("averagedBm", ""),
117
118
  data.get("serial_number", ""),
118
119
  data.get("extras", ""),
119
- data.get("ac_status", "")))
120
+ data.get("ac_status", ""),
121
+ data.get("allowspeaker", "")))
120
122
 
121
123
  self._db.commit()
@@ -39,6 +39,7 @@ class QolsysPartition(QolsysObservable):
39
39
 
40
40
  # Other
41
41
  self._command_exit_sounds = True
42
+ self._command_silent_disarming = False
42
43
  self._command_arm_stay_instant = True
43
44
 
44
45
  @property
@@ -81,6 +82,14 @@ class QolsysPartition(QolsysObservable):
81
82
  def command_arm_stay_instant(self) -> bool:
82
83
  return self._command_arm_stay_instant
83
84
 
85
+ @property
86
+ def command_silent_disarming(self) -> bool:
87
+ return self._command_silent_disarming
88
+
89
+ @command_silent_disarming.setter
90
+ def command_silent_disarming(self, value: bool) -> None:
91
+ self._command_silent_disarming = value
92
+
84
93
  @system_status.setter
85
94
  def system_status(self, new_value: PartitionSystemStatus) -> None:
86
95
  if self._system_status != new_value:
@@ -188,15 +188,15 @@ class QolsysPluginRemote(QolsysPlugin):
188
188
  await self.aiomqtt.subscribe("iq2meid")
189
189
 
190
190
  # Subscribte to MQTT commands response
191
- await self.aiomqtt.subscribe("response_" + self.settings.random_mac, qos=2)
191
+ await self.aiomqtt.subscribe("response_" + self.settings.random_mac, qos=0)
192
192
 
193
193
  # Only log mastermeid traffic for debug purposes
194
194
  if self.log_mqtt_mesages:
195
195
  # Subscribe to MQTT commands send to panel by other devices
196
- await self.aiomqtt.subscribe("mastermeid", qos=2)
196
+ await self.aiomqtt.subscribe("mastermeid", qos=0)
197
197
 
198
198
  # Subscribe to all topics
199
- await self.aiomqtt.subscribe("#", qos=2)
199
+ #await self.aiomqtt.subscribe("#", qos=0)
200
200
 
201
201
  # Start mqtt_listent_task and mqtt_ping_task
202
202
  self._task_manager.cancel(self._mqtt_task_listen_label)
@@ -446,7 +446,7 @@ class QolsysPluginRemote(QolsysPlugin):
446
446
  LOGGER.error("MQTT Client not configured")
447
447
  raise QolsysMqttError
448
448
 
449
- await self.aiomqtt.publish(topic=topic, payload=json.dumps(json_payload), qos=2)
449
+ await self.aiomqtt.publish(topic=topic, payload=json.dumps(json_payload), qos=0)
450
450
  return await self._mqtt_command_queue.wait_for_response(request_id)
451
451
 
452
452
  async def command_connect(self) -> dict:
@@ -733,7 +733,7 @@ class QolsysPluginRemote(QolsysPlugin):
733
733
  LOGGER.debug("MQTT: Receiving pairing_request command")
734
734
  return response
735
735
 
736
- async def command_ui_delay(self, partition_id: str) -> None:
736
+ async def command_ui_delay(self, partition_id: str,silent_disarming:bool = False) -> None:
737
737
  LOGGER.debug("MQTT: Sending ui_delay command")
738
738
 
739
739
  # partition state needs to be sent for ui_delay to work
@@ -744,6 +744,7 @@ class QolsysPluginRemote(QolsysPlugin):
744
744
  "panel_status": partition.system_status,
745
745
  "userID": 0,
746
746
  "partitionID": partition_id, # STR EXPECTED
747
+ "silentDisarming":silent_disarming,
747
748
  "operation_source": 1,
748
749
  "macAddress": self.settings.random_mac,
749
750
  }
@@ -774,23 +775,21 @@ class QolsysPluginRemote(QolsysPlugin):
774
775
  await self.send_command(topic, payload, requestID)
775
776
  LOGGER.debug("MQTT: Receiving ui_delay command")
776
777
 
777
- async def command_disarm(self, partition_id: str, user_code: str = "", exit_sounds: bool = True) -> bool:
778
- LOGGER.debug("MQTT: Sending disarm command - check_user_code:%s", self.check_user_code_on_disarm)
779
-
778
+ async def command_disarm(self, partition_id: str, user_code: str = "", silent_disarming: bool = False) -> bool:
780
779
  partition = self.state.partition(partition_id)
781
780
  if not partition:
782
781
  LOGGER.debug("MQTT: disarm command error - Unknow Partition")
783
782
  return False
784
783
 
785
784
  # Do local user code verification
786
- user_id = 0
785
+ user_id = 1
787
786
  if self.check_user_code_on_disarm:
788
787
  user_id = self.panel.check_user(user_code)
789
788
  if user_id == -1:
790
789
  LOGGER.debug("MQTT: disarm command error - user_code error")
791
790
  return False
792
791
 
793
- async def get_mqtt_disarm_command() -> str:
792
+ async def get_mqtt_disarm_command(silent_disarming:bool) -> str:
794
793
  if partition.alarm_state == PartitionAlarmState.ALARM:
795
794
  return "disarm_from_emergency"
796
795
  if partition.system_status in {PartitionSystemStatus.ARM_AWAY_EXIT_DELAY,
@@ -800,18 +799,20 @@ class QolsysPluginRemote(QolsysPlugin):
800
799
  if partition.system_status in {PartitionSystemStatus.ARM_AWAY,
801
800
  PartitionSystemStatus.ARM_STAY,
802
801
  PartitionSystemStatus.ARM_NIGHT}:
803
- await self.command_ui_delay(partition_id)
802
+ await self.command_ui_delay(partition_id,silent_disarming)
804
803
  return "disarm_the_panel_from_entry_delay"
804
+
805
805
  return "disarm_from_openlearn_sensor"
806
806
 
807
- mqtt_disarm_command = await get_mqtt_disarm_command()
807
+ mqtt_disarm_command = await get_mqtt_disarm_command(silent_disarming)
808
+ LOGGER.debug("MQTT: Sending disarm command - check_user_code:%s", self.check_user_code_on_disarm)
809
+
808
810
 
809
811
  disarm_command = {
810
812
  "operation_name": mqtt_disarm_command,
811
813
  "userID": user_id,
812
814
  "partitionID": int(partition_id), # INT EXPECTED
813
815
  "operation_source": 1,
814
- "disarm_exit_sounds": exit_sounds,
815
816
  "macAddress": self.settings.random_mac,
816
817
  }
817
818