qolsys-controller 0.0.4__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.
@@ -93,22 +93,23 @@ class QolsysPanel(QolsysObservable):
93
93
  self._product_type = ""
94
94
 
95
95
  def read_users_file(self) -> bool:
96
- # Loading user_code data from users.conf file
97
- try:
98
- path = self._settings.users_file_path
99
- with path.open("r", encoding="utf-8") as file:
100
- try:
101
- users = json.load(file)
102
- for user in users:
103
- self._users.append(user)
104
-
105
- except json.JSONDecodeError:
106
- LOGGER.exception("users.conf file json error")
107
- return False
108
-
109
- except FileNotFoundError:
110
- LOGGER.exception("users.conf file not found")
111
- return False
96
+ # Loading user_code data from users.conf file if exists
97
+ if self._settings.users_file_path.is_file():
98
+ try:
99
+ path = self._settings.users_file_path
100
+ with path.open("r", encoding="utf-8") as file:
101
+ try:
102
+ users = json.load(file)
103
+ for user in users:
104
+ self._users.append(user)
105
+
106
+ except json.JSONDecodeError:
107
+ LOGGER.exception("users.conf file json error")
108
+ return False
109
+
110
+ except FileNotFoundError:
111
+ LOGGER.exception("users.conf file not found")
112
+ return False
112
113
 
113
114
  return True
114
115
 
@@ -123,4 +123,33 @@ class QolsysSettings:
123
123
  return False
124
124
 
125
125
  LOGGER.debug("Using config_directory: %s", self.config_directory.resolve())
126
+
127
+ # Create pki directory if not found
128
+ if not self.pki_directory.is_dir():
129
+ LOGGER.debug("Creating pki_directory: %s", self.pki_directory.resolve())
130
+ try:
131
+ self.pki_directory.mkdir(parents=True)
132
+ except PermissionError:
133
+ LOGGER.exception("Permission denied: Unable to create: %s", self.pki_directory.resolve())
134
+ return False
135
+ except Exception:
136
+ LOGGER.exception("Error creating pki_directory: %s", self.pki_directory.resolve())
137
+ return False
138
+
139
+ LOGGER.debug("Using pki_directory: %s", self.pki_directory.resolve())
140
+
141
+ # Create media directory if not found
142
+ if not self._media_directory.is_dir():
143
+ LOGGER.debug("Creating media_directory: %s", self._media_directory.resolve())
144
+ try:
145
+ self._media_directory.mkdir(parents=True)
146
+ except PermissionError:
147
+ LOGGER.exception("Permission denied: Unable to create: %s", self._media_directory.resolve())
148
+ return False
149
+ except Exception:
150
+ LOGGER.exception("Error creating media_directory: %s", self._media_directory.resolve())
151
+ return False
152
+
153
+ LOGGER.debug("Using media_directory: %s", self._media_directory.resolve())
154
+
126
155
  return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qolsys-controller
3
- Version: 0.0.4
3
+ Version: 0.0.5
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
@@ -14,7 +14,9 @@ Classifier: Topic :: Home Automation
14
14
  Requires-Python: >=3.12
15
15
  Description-Content-Type: text/markdown
16
16
 
17
- # QolsysController
17
+ # Qolsys Controller - qolsys-controller
18
+
19
+ [![Build](https://github.com/EHylands/QolsysController/actions/workflows/python-app.yml/badge.svg)](https://github.com/EHylands/QolsysController/actions/workflows/python-app.yml)
18
20
 
19
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.
20
22
 
@@ -62,7 +64,9 @@ A Python module that emulates a virtual IQ Remote device, enabling full **local
62
64
 
63
65
  ## ⚠️ Certificate Warning
64
66
 
65
- During pairing, the main panel issues **only one signed client certificate** per virtual IQ Remote. If any key files are lost or deleted, re-pairing may become impossible.
67
+ During pairing, the main panel issues **only one signed client certificate** per virtual IQ Remote. If any key files are lost or deleted, re-pairing may become impossible.
68
+
69
+ A new PKI, including a new private key, can be recreated under specific circumstances, though the precise conditions remain unknown at this time.
66
70
 
67
71
  **Important:**
68
72
  Immediately back up the following files from the `pki/` directory after initial pairing:
@@ -5,13 +5,13 @@ qolsys_controller/errors.py,sha256=Z_eVJ4XqWucdn1lu_83DPnEKEG4L3FMfjhz5iO6RuBM,1
5
5
  qolsys_controller/mdns.py,sha256=3_d-_K5Fyxc-2s0Fo1advTSpD72P369Hou1Ko0z__Ag,606
6
6
  qolsys_controller/mqtt_command_queue.py,sha256=FjSbjK3_3SXV5eQPfQ-k8HOI5Tbu2aWzAxe4uXymK64,937
7
7
  qolsys_controller/observable.py,sha256=X7uMnBHGpklPTa-RHKldXA0Rq38Cs1yOIuxl8ODeKV4,1049
8
- qolsys_controller/panel.py,sha256=2y2MUG3YUsGL25SwXBzkoVZj1ijPAhOKTdW5lzPzfLg,39255
8
+ qolsys_controller/panel.py,sha256=2EZtnA9c_yVSL3Vtszq9SLae9ykSuKrzIxssa6LoAvk,39370
9
9
  qolsys_controller/partition.py,sha256=-Fos327y3MlSWwJCbDeQM51-K8uMHANxIJ8kN9-S5CA,8045
10
10
  qolsys_controller/pki.py,sha256=OoaNtnf-ZAjG7yg-y8eu_9yvlIrZzruxuwl6dTojhQg,8663
11
11
  qolsys_controller/plugin.py,sha256=Qh0irFbuw9R2QF3jOFTJw70ceVxK1ld5_sW7VnpOrA8,819
12
12
  qolsys_controller/plugin_c4.py,sha256=71o5Y7Y13GO0vWCPIsCtpqXxrplryyqt8ua5L8F4StQ,382
13
13
  qolsys_controller/plugin_remote.py,sha256=kjPijZgNQwuX0DlCut7UIL3dnS1LWEfAUpvc---YrnM,36960
14
- qolsys_controller/settings.py,sha256=g6EjEO9AA09-CcSl-IpKQZBCHqamADVKra6dla8qV3Q,3589
14
+ qolsys_controller/settings.py,sha256=gN4DnyF6MMM0B5GoHktPXQSKWH4WulZ0qWh9VY3ra3Y,4924
15
15
  qolsys_controller/state.py,sha256=eWn4KiWN75K83CVW224zekDUeIpgjh9tDfnpaOJWV3I,14360
16
16
  qolsys_controller/task_manager.py,sha256=IBFi1l9aId950wvRpvP6d4PHZhr3v1hnnt8NVulM3BI,1139
17
17
  qolsys_controller/utils_mqtt.py,sha256=2hf9_BnQbsWi8t0KBiK5MSsDgGjlbWVJi-Sd3H5VVt0,575
@@ -56,7 +56,7 @@ qolsys_controller/database/table_zwave_association_group.py,sha256=S_tWpfzzD44rJ
56
56
  qolsys_controller/database/table_zwave_history.py,sha256=4RiCzA_XFdXXVA9X48Z4eoxA_4DFKwdjkP2N6IHHOqQ,1897
57
57
  qolsys_controller/database/table_zwave_node.py,sha256=csESJCkcg8qAPn3KSL4jO9b1oymZ5wrQiXcmWR9vSc0,7302
58
58
  qolsys_controller/database/table_zwave_other.py,sha256=HJzLd4MUfNynE9jHiCzN7j1PFDncwQHeDkP5_8_s0YE,747
59
- qolsys_controller-0.0.4.dist-info/METADATA,sha256=xVy9B_UEwcNAOT1MB_yNN2EBw5GuIBcT8wzcnZhP1Kc,3835
60
- qolsys_controller-0.0.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
61
- qolsys_controller-0.0.4.dist-info/licenses/LICENSE,sha256=GBHv9eggdA5ablDMW1xiLzGDZ2gCIhcKGW__c2aVIOc,1069
62
- qolsys_controller-0.0.4.dist-info/RECORD,,
59
+ qolsys_controller-0.0.5.dist-info/METADATA,sha256=rLyjXOBW3-GWwHEyxgHPLpzl4_6bOfA231nvuN34mOw,4184
60
+ qolsys_controller-0.0.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
61
+ qolsys_controller-0.0.5.dist-info/licenses/LICENSE,sha256=GBHv9eggdA5ablDMW1xiLzGDZ2gCIhcKGW__c2aVIOc,1069
62
+ qolsys_controller-0.0.5.dist-info/RECORD,,