qolsys-controller 0.0.5__tar.gz → 0.0.7__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.
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/PKG-INFO +2 -2
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/README.md +1 -1
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/pyproject.toml +1 -1
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/panel.py +1 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/plugin_remote.py +24 -2
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/settings.py +10 -1
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/.github/workflows/build.yml +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/.github/workflows/publish.yml +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/.gitignore +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/Info_mqtt.md +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/LICENSE +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/bin/qolsys.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/example.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/info_pairing.md +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/info_qolsys.md +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/__init__.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/controller.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/db.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_alarmedsensor.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_automation.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_country_locale.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_dashboard_msgs.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_dimmerlight.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_doorlock.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_eu_event.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_heat_map.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_history.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_iqremotesettings.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_iqrouter_network_config.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_iqrouter_user_device.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_master_slave.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_partition.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_powerg_device.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_qolsyssettings.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_scene.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_sensor.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_smartsocket.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_state.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_tcc.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_thermostat.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_trouble_conditions.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_user.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_virtual_device.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_weather.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zigbee_device.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zwave_association_group.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zwave_history.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zwave_node.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zwave_other.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/enum.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/errors.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/mdns.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/mqtt_command_queue.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/observable.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/partition.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/pki.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/plugin.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/plugin_c4.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/state.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/task_manager.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/utils_mqtt.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zone.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_device.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_dimmer.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_garagedoor.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_generic.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_lock.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_outlet.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/zwave_thermostat.py +0 -0
- {qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/requirements.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: qolsys-controller
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.7
|
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
|
@@ -16,7 +16,7 @@ Description-Content-Type: text/markdown
|
|
16
16
|
|
17
17
|
# Qolsys Controller - qolsys-controller
|
18
18
|
|
19
|
-
[](https://github.com/EHylands/QolsysController/actions/workflows/build.yml)
|
20
20
|
|
21
21
|
A Python module that emulates a virtual IQ Remote device, enabling full **local control** of a Qolsys IQ Panel over MQTT — no cloud access required.
|
22
22
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# Qolsys Controller - qolsys-controller
|
2
2
|
|
3
|
-
[](https://github.com/EHylands/QolsysController/actions/workflows/build.yml)
|
4
4
|
|
5
5
|
A Python module that emulates a virtual IQ Remote device, enabling full **local control** of a Qolsys IQ Panel over MQTT — no cloud access required.
|
6
6
|
|
@@ -818,6 +818,7 @@ class QolsysPanel(QolsysObservable):
|
|
818
818
|
LOGGER.debug("Android Version: %s", self.ANDROID_VERSION)
|
819
819
|
LOGGER.debug("Hardware Version: %s", self.HARDWARE_VERSION)
|
820
820
|
LOGGER.debug("MAC Address: %s", self.MAC_ADDRESS)
|
821
|
+
LOGGER.debug("MQTT remoteClientID: %s", self._settings.mqtt_remote_client_id)
|
821
822
|
LOGGER.debug("Unique ID: %s", self.unique_id)
|
822
823
|
LOGGER.debug("Panel Tamper State: %s", self.PANEL_TAMPER_STATE)
|
823
824
|
LOGGER.debug("AC Status: %s", self.AC_STATUS)
|
@@ -110,6 +110,9 @@ class QolsysPluginRemote(QolsysPlugin):
|
|
110
110
|
else:
|
111
111
|
self._pki.set_id(self.settings.random_mac)
|
112
112
|
|
113
|
+
# Set mqtt_remote_client_id
|
114
|
+
self.settings.mqtt_remote_client_id = "qolsys-controller-" + self._pki.formatted_id()
|
115
|
+
|
113
116
|
# Check if plugin is paired
|
114
117
|
if self.is_paired():
|
115
118
|
LOGGER.debug("Panel is Paired")
|
@@ -133,6 +136,24 @@ class QolsysPluginRemote(QolsysPlugin):
|
|
133
136
|
async def start_operation(self) -> None:
|
134
137
|
await self._task_manager.run(self.mqtt_connect_task(reconnect=True), self._mqtt_task_connect_label)
|
135
138
|
|
139
|
+
async def stop_operation(self) -> None:
|
140
|
+
LOGGER.debug("Stopping Plugin Operation")
|
141
|
+
|
142
|
+
if self.certificate_exchange_server is not None:
|
143
|
+
self.certificate_exchange_server.close()
|
144
|
+
|
145
|
+
if self.aiomqtt is not None:
|
146
|
+
await self.aiomqtt.__aexit__(None, None, None)
|
147
|
+
self.aiomqtt = None
|
148
|
+
|
149
|
+
self._task_manager.cancel(self._mqtt_task_connect_label)
|
150
|
+
self._task_manager.cancel(self._mqtt_task_listen_label)
|
151
|
+
self._task_manager.cancel(self._mqtt_task_ping_label)
|
152
|
+
self._task_manager.cancel(self._mqtt_task_config_label)
|
153
|
+
|
154
|
+
self.connected = False
|
155
|
+
self.connected_observer.notify()
|
156
|
+
|
136
157
|
async def mqtt_connect_task(self, reconnect: bool) -> None:
|
137
158
|
# Configure TLS parameters for MQTT connection
|
138
159
|
tls_params = aiomqtt.TLSParameters(
|
@@ -228,6 +249,7 @@ class QolsysPluginRemote(QolsysPlugin):
|
|
228
249
|
while True:
|
229
250
|
if self.aiomqtt is not None and self.connected:
|
230
251
|
await self.command_pingevent()
|
252
|
+
|
231
253
|
await asyncio.sleep(self.settings.mqtt_ping)
|
232
254
|
|
233
255
|
async def mqtt_listen_task(self) -> None:
|
@@ -434,7 +456,7 @@ class QolsysPluginRemote(QolsysPlugin):
|
|
434
456
|
ipAddress = self.settings.plugin_ip
|
435
457
|
eventName = "connect_v204"
|
436
458
|
macAddress = self.settings.random_mac
|
437
|
-
remoteClientID =
|
459
|
+
remoteClientID = self.settings.mqtt_remote_client_id
|
438
460
|
softwareVersion = "4.4.1"
|
439
461
|
producType = "tab07_rk68"
|
440
462
|
bssid = ""
|
@@ -646,7 +668,7 @@ class QolsysPluginRemote(QolsysPlugin):
|
|
646
668
|
|
647
669
|
topic = "mastermeid"
|
648
670
|
eventName = "disconnect"
|
649
|
-
remoteClientID =
|
671
|
+
remoteClientID = self.settings.mqtt_remote_client_id
|
650
672
|
requestID = str(uuid.uuid4())
|
651
673
|
remoteMacAddress = self.settings.random_mac
|
652
674
|
|
@@ -24,7 +24,8 @@ class QolsysSettings:
|
|
24
24
|
|
25
25
|
# MQTT
|
26
26
|
self._mqtt_timeout: int = 30
|
27
|
-
self._mqtt_ping: int =
|
27
|
+
self._mqtt_ping: int = 15
|
28
|
+
self._mqtt_remote_client_id = ""
|
28
29
|
|
29
30
|
@property
|
30
31
|
def random_mac(self) -> str:
|
@@ -89,6 +90,14 @@ class QolsysSettings:
|
|
89
90
|
def mqtt_ping(self) -> int:
|
90
91
|
return self._mqtt_ping
|
91
92
|
|
93
|
+
@property
|
94
|
+
def mqtt_remote_client_id(self) -> str:
|
95
|
+
return self._mqtt_remote_client_id
|
96
|
+
|
97
|
+
@mqtt_remote_client_id.setter
|
98
|
+
def mqtt_remote_client_id(self,client_id:str) -> None:
|
99
|
+
self._mqtt_remote_client_id = client_id
|
100
|
+
|
92
101
|
def check_panel_ip(self) -> bool:
|
93
102
|
if self._panel_ip == "":
|
94
103
|
LOGGER.debug("Invalid Panel IP: %s", self._panel_ip)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_automation.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_dimmerlight.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_doorlock.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_eu_event.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_heat_map.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_history.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_master_slave.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_partition.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_scene.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_sensor.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_smartsocket.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_state.py
RENAMED
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_thermostat.py
RENAMED
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_user.py
RENAMED
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_weather.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zwave_node.py
RENAMED
File without changes
|
{qolsys_controller-0.0.5 → qolsys_controller-0.0.7}/qolsys_controller/database/table_zwave_other.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|