qolsys-controller 0.0.15__tar.gz → 0.0.18__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.15 → qolsys_controller-0.0.18}/PKG-INFO +2 -1
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/README.md +1 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/example.py +9 -9
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/pyproject.toml +1 -1
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/db.py +12 -3
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table.py +44 -16
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_alarmedsensor.py +3 -16
- qolsys_controller-0.0.18/qolsys_controller/database/table_automation.py +46 -0
- qolsys_controller-0.0.18/qolsys_controller/database/table_country_locale.py +37 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_dashboard_msgs.py +2 -18
- qolsys_controller-0.0.18/qolsys_controller/database/table_dimmerlight.py +36 -0
- qolsys_controller-0.0.18/qolsys_controller/database/table_doorlock.py +37 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_eu_event.py +2 -5
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_heat_map.py +1 -14
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_history.py +2 -17
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_iqremotesettings.py +1 -13
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_iqrouter_network_config.py +1 -6
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_iqrouter_user_device.py +2 -6
- qolsys_controller-0.0.18/qolsys_controller/database/table_master_slave.py +44 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_nest_device.py +1 -6
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_output_rules.py +1 -6
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_partition.py +1 -11
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_pgm_outputs.py +2 -6
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_powerg_device.py +2 -6
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_qolsyssettings.py +2 -11
- qolsys_controller-0.0.18/qolsys_controller/database/table_scene.py +36 -0
- qolsys_controller-0.0.18/qolsys_controller/database/table_sensor.py +66 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_shades.py +1 -5
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_smartsocket.py +1 -5
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_state.py +1 -13
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_tcc.py +1 -8
- qolsys_controller-0.0.18/qolsys_controller/database/table_thermostat.py +53 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_trouble_conditions.py +1 -14
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_user.py +12 -17
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_virtual_device.py +1 -5
- qolsys_controller-0.0.18/qolsys_controller/database/table_weather.py +33 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_zigbee_device.py +1 -6
- qolsys_controller-0.0.18/qolsys_controller/database/table_zwave_association_group.py +34 -0
- qolsys_controller-0.0.18/qolsys_controller/database/table_zwave_history.py +37 -0
- qolsys_controller-0.0.18/qolsys_controller/database/table_zwave_node.py +84 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_zwave_other.py +1 -6
- qolsys_controller-0.0.18/qolsys_controller/enum_zwave.py +37 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/panel.py +21 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/partition.py +9 -7
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/plugin_remote.py +121 -8
- qolsys_controller-0.0.18/qolsys_controller/scene.py +79 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/settings.py +5 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/state.py +72 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zone.py +1 -1
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_thermostat.py +56 -0
- qolsys_controller-0.0.15/qolsys_controller/database/table_automation.py +0 -77
- qolsys_controller-0.0.15/qolsys_controller/database/table_country_locale.py +0 -60
- qolsys_controller-0.0.15/qolsys_controller/database/table_dimmerlight.py +0 -57
- qolsys_controller-0.0.15/qolsys_controller/database/table_doorlock.py +0 -59
- qolsys_controller-0.0.15/qolsys_controller/database/table_master_slave.py +0 -73
- qolsys_controller-0.0.15/qolsys_controller/database/table_scene.py +0 -55
- qolsys_controller-0.0.15/qolsys_controller/database/table_sensor.py +0 -123
- qolsys_controller-0.0.15/qolsys_controller/database/table_thermostat.py +0 -94
- qolsys_controller-0.0.15/qolsys_controller/database/table_weather.py +0 -48
- qolsys_controller-0.0.15/qolsys_controller/database/table_zwave_association_group.py +0 -53
- qolsys_controller-0.0.15/qolsys_controller/database/table_zwave_history.py +0 -59
- qolsys_controller-0.0.15/qolsys_controller/database/table_zwave_node.py +0 -150
- qolsys_controller-0.0.15/test24.txt +0 -742
- qolsys_controller-0.0.15/test25.txt +0 -594
- qolsys_controller-0.0.15/test30.txt +0 -77
- qolsys_controller-0.0.15/text.txt +0 -181
- qolsys_controller-0.0.15/text23.txt +0 -231
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/.github/workflows/build.yml +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/.github/workflows/publish.yml +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/.gitignore +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/Info_mqtt.md +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/LICENSE +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/bin/qolsys.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/info_pairing.md +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/info_qolsys.md +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/__init__.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/controller.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/enum.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/errors.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/mdns.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/mqtt_command_queue.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/observable.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/pki.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/plugin.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/plugin_c4.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/task_manager.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/utils_mqtt.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_device.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_dimmer.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_garagedoor.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_generic.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_lock.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/zwave_outlet.py +0 -0
- {qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/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.18
|
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
|
@@ -35,6 +35,7 @@ A Python module that emulates a virtual IQ Remote device, enabling full **local
|
|
35
35
|
| **Partitions** | Arming status | ✅ |
|
36
36
|
| | Set Exit sounds | ✅ |
|
37
37
|
| | Home Instant arming | ✅ |
|
38
|
+
| | Home Silent Disarm | ✅ |
|
38
39
|
| | Alarm state and type | ✅ |
|
39
40
|
| | Disarm pictures | 🛠️ WIP |
|
40
41
|
|---|---|---|
|
@@ -19,6 +19,7 @@ A Python module that emulates a virtual IQ Remote device, enabling full **local
|
|
19
19
|
| **Partitions** | Arming status | ✅ |
|
20
20
|
| | Set Exit sounds | ✅ |
|
21
21
|
| | Home Instant arming | ✅ |
|
22
|
+
| | Home Silent Disarm | ✅ |
|
22
23
|
| | Alarm state and type | ✅ |
|
23
24
|
| | Disarm pictures | 🛠️ WIP |
|
24
25
|
|---|---|---|
|
@@ -26,7 +26,7 @@ async def main() -> None: # noqa: D103
|
|
26
26
|
|
27
27
|
# Additionnal remote plugin config
|
28
28
|
remote.plugin.check_user_code_on_disarm = False # Check user code in user.conf file
|
29
|
-
remote.plugin.log_mqtt_mesages =
|
29
|
+
remote.plugin.log_mqtt_mesages = False # Enable for MQTT debug purposes
|
30
30
|
remote.plugin.auto_discover_pki = True
|
31
31
|
|
32
32
|
# Configure remote plugin
|
@@ -70,12 +70,12 @@ async def main() -> None: # noqa: D103
|
|
70
70
|
# user_code="1111")
|
71
71
|
|
72
72
|
# ARM_STAY
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
73
|
+
await asyncio.sleep(3)
|
74
|
+
await remote.plugin.command_arm(partition_id="0",
|
75
|
+
arming_type="ARM-STAY",
|
76
|
+
user_code="1111",
|
77
|
+
exit_sounds=False,
|
78
|
+
instant_arm=True)
|
79
79
|
|
80
80
|
|
81
81
|
# ARM_AWAY
|
@@ -87,8 +87,8 @@ async def main() -> None: # noqa: D103
|
|
87
87
|
# instant_arm=True)
|
88
88
|
|
89
89
|
# DISARM
|
90
|
-
|
91
|
-
|
90
|
+
await asyncio.sleep(5)
|
91
|
+
await remote.plugin.command_disarm(partition_id="0", user_code="1111", silent_disarming=True)
|
92
92
|
|
93
93
|
|
94
94
|
# Use an asyncio.Event to keep the program running efficiently
|
@@ -132,7 +132,6 @@ class QolsysDB:
|
|
132
132
|
# content://com.qolsys.qolsysprovider.ProvisionListContentProvider/provision_list
|
133
133
|
# content://com.qolsys.qolsysprovider.PowerGSignalStrengthContentProvider/powerg_signal_strength
|
134
134
|
# content://com.qolsys.qolsysprovider.ProximityTagContentProvider/proximity_tag
|
135
|
-
# content://com.qolsys.qolsysprovider.OutputRulesContentProvider/output_rules
|
136
135
|
# content://com.qolsys.qolsysprovider.IQCameraContentProvider/iqcamera
|
137
136
|
# content://com.qolsys.qolsysprovider.CorbusDeviceContentProvider/corbus_device
|
138
137
|
# content://com.qolsys.qolsysprovider.AutomationRulesContentProvider/automation_rules
|
@@ -144,9 +143,7 @@ class QolsysDB:
|
|
144
143
|
# content://com.qolsys.qolsysprovider.AxonSignalStrengthContentProvider/axon_signal_strength
|
145
144
|
# content://com.qolsys.qolsysprovider.PanelInfoContentProvider/panel_info
|
146
145
|
# content://com.qolsys.qolsysprovider.AxonRSSIContentProvider/axon_rssi_table
|
147
|
-
# content://com.qolsys.qolsysprovider.PowerGDeviceContentProvider/powerg_device
|
148
146
|
# content://com.qolsys.qolsysprovider.PowerGRSSIContentProvider/powerg_rssi_table
|
149
|
-
# content://com.qolsys.qolsysprovider.PgmOutputsContentProvider/pgm_outputs
|
150
147
|
|
151
148
|
@property
|
152
149
|
def db(self) -> sqlite3.Connection:
|
@@ -156,6 +153,18 @@ class QolsysDB:
|
|
156
153
|
def cursor(self) -> sqlite3.Cursor:
|
157
154
|
return self._cursor
|
158
155
|
|
156
|
+
def get_scenes(self) -> list[dict]:
|
157
|
+
self.cursor.execute(f"SELECT * FROM {self.table_scene.table} ORDER BY scene_id")
|
158
|
+
self.db.commit()
|
159
|
+
|
160
|
+
scenes = []
|
161
|
+
columns = [description[0] for description in self.cursor.description]
|
162
|
+
for row in self.cursor.fetchall():
|
163
|
+
row_dict = dict(zip(columns, row, strict=True))
|
164
|
+
scenes.append(row_dict)
|
165
|
+
|
166
|
+
return scenes
|
167
|
+
|
159
168
|
def get_partitions(self) -> list[dict]:
|
160
169
|
self.cursor.execute(f"SELECT * FROM {self.table_partition.table} ORDER BY partition_id")
|
161
170
|
self.db.commit()
|
@@ -15,6 +15,7 @@ class QolsysTable:
|
|
15
15
|
self._table: str = ""
|
16
16
|
self._columns: list[str] = []
|
17
17
|
self._abort_on_error: bool = False
|
18
|
+
self._implemented:bool = False
|
18
19
|
|
19
20
|
@property
|
20
21
|
def uri(self) -> str:
|
@@ -66,22 +67,52 @@ class QolsysTable:
|
|
66
67
|
if self._abort_on_error:
|
67
68
|
raise error from err
|
68
69
|
|
69
|
-
def
|
70
|
-
|
70
|
+
def insert(self, data: dict) -> None:
|
71
|
+
try:
|
72
|
+
if not self._implemented and data is not None:
|
73
|
+
LOGGER.warning("New Table format: %s", self.uri)
|
74
|
+
LOGGER.warning("Table: %s", self.table)
|
75
|
+
LOGGER.warning(data)
|
76
|
+
LOGGER.warning("Please Report")
|
77
|
+
return
|
78
|
+
|
79
|
+
full_data = {col: data.get(col, "") for col in self._columns}
|
80
|
+
|
81
|
+
new_columns = []
|
82
|
+
for key in data:
|
83
|
+
if key not in self._columns:
|
84
|
+
new_columns.append(key)
|
85
|
+
|
86
|
+
# Warn if new column found in iq2meid database
|
87
|
+
if new_columns:
|
88
|
+
LOGGER.warning("New column found in iq2meid database")
|
89
|
+
LOGGER.warning("Table: %s", self.table)
|
90
|
+
LOGGER.warning("New Columns: %s", new_columns)
|
91
|
+
LOGGER.warning("Please Report")
|
92
|
+
|
93
|
+
col_str = ", ".join(full_data.keys())
|
94
|
+
placeholder_str = ", ".join([f":{key}" for key in full_data])
|
95
|
+
query = f"INSERT OR IGNORE INTO {self.table} ({col_str}) VALUES ({placeholder_str})"
|
96
|
+
self._cursor.execute(query, full_data)
|
97
|
+
self._db.commit()
|
71
98
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
99
|
+
except sqlite3.Error as err:
|
100
|
+
error = QolsysSqlError({
|
101
|
+
"table": self.table,
|
102
|
+
"query": query,
|
103
|
+
"columns": self._columns,
|
104
|
+
})
|
76
105
|
|
77
|
-
|
106
|
+
if self._abort_on_error:
|
107
|
+
raise error from err
|
78
108
|
|
79
|
-
|
80
|
-
#
|
81
|
-
#
|
109
|
+
def update(self, selection: str, selection_argument: str, content_value: str) -> None:
|
110
|
+
# selection: 'zone_id=?, parition_id=?'
|
111
|
+
# Firmware 4.4.1: selection_argument: '[3,1]'
|
112
|
+
# Firmware 4.6.1: selection_argument: ['3','1']
|
113
|
+
# contentValues:{"partition_id":"0","sensorgroup":"safetymotion","sensorstatus":"Idle"}"
|
82
114
|
|
83
115
|
# New Values to update in table
|
84
|
-
# To change for parametrized
|
85
116
|
db_value = ",".join([f"{key}='{value}'" for key, value in content_value.items()])
|
86
117
|
|
87
118
|
# Selection Argument
|
@@ -109,15 +140,12 @@ class QolsysTable:
|
|
109
140
|
if self._abort_on_error:
|
110
141
|
raise error from err
|
111
142
|
|
112
|
-
def insert(self) -> None:
|
113
|
-
pass
|
114
|
-
|
115
143
|
def delete(self, selection: str, selection_argument: str) -> None:
|
116
144
|
# selection: 'zone_id=?, parition_id=?'
|
117
|
-
# selection_argument: '[3,1]'
|
145
|
+
# Firmware 4.4.1: selection_argument: '[3,1]'
|
146
|
+
# Firmware 4.6.1: selection_argument: ['3','1']
|
118
147
|
|
119
148
|
# Selection Argument
|
120
|
-
# Panel send selection_argument as list in Firmware 4.6.1
|
121
149
|
if(type(selection_argument) is not list):
|
122
150
|
#Firmware 4.4.1, seletion_argument is sent as a string
|
123
151
|
selection_argument = selection_argument.strip("[]")
|
@@ -13,6 +13,8 @@ class QolsysTableAlarmedSensor(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.AlarmedSensorProvider/alarmedsensor"
|
14
14
|
self._table = "alarmedsensor"
|
15
15
|
self._abort_on_error = True
|
16
|
+
self._implemented = True
|
17
|
+
|
16
18
|
|
17
19
|
self._columns = [
|
18
20
|
"_id",
|
@@ -25,22 +27,7 @@ class QolsysTableAlarmedSensor(QolsysTable):
|
|
25
27
|
"type",
|
26
28
|
"priority",
|
27
29
|
"aseb_type",
|
30
|
+
"alarm_time",
|
28
31
|
]
|
29
32
|
|
30
33
|
self._create_table()
|
31
|
-
|
32
|
-
def insert(self, data: dict) -> None:
|
33
|
-
self._cursor.execute(f"""INSERT INTO {self.table} (_id,partition_id,silenced,zone_id,sgroup,action,timed_out,type,
|
34
|
-
priority,aseb_type) VALUES (?,?,?,?,?,?,?,?,?,?)""", (
|
35
|
-
data.get("_id"),
|
36
|
-
data.get("partition_id", ""),
|
37
|
-
data.get("silenced", ""),
|
38
|
-
data.get("zone_id", ""),
|
39
|
-
data.get("sgroup", ""),
|
40
|
-
data.get("action", ""),
|
41
|
-
data.get("timed_out", ""),
|
42
|
-
data.get("type", ""),
|
43
|
-
data.get("priority", ""),
|
44
|
-
data.get("aseb_type", "")))
|
45
|
-
|
46
|
-
self._db.commit()
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import logging # noqa: INP001
|
2
|
+
import sqlite3
|
3
|
+
|
4
|
+
from .table import QolsysTable
|
5
|
+
|
6
|
+
LOGGER = logging.getLogger(__name__)
|
7
|
+
|
8
|
+
|
9
|
+
class QolsysTableAutomation(QolsysTable):
|
10
|
+
|
11
|
+
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
12
|
+
super().__init__(db, cursor)
|
13
|
+
self._uri = "content://com.qolsys.qolsysprovider.AutomationDeviceContentProvider/automation"
|
14
|
+
self._table = "automation"
|
15
|
+
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
17
|
+
|
18
|
+
self._columns = [
|
19
|
+
"_id",
|
20
|
+
"virtual_node_id",
|
21
|
+
"version",
|
22
|
+
"opr",
|
23
|
+
"partition_id",
|
24
|
+
"end_point",
|
25
|
+
"extras",
|
26
|
+
"is_autolocking_enabled",
|
27
|
+
"device_type",
|
28
|
+
"endpoint_secure_cmd_classes",
|
29
|
+
"automation_id",
|
30
|
+
"device_name",
|
31
|
+
"protocol",
|
32
|
+
"node_battery_level_value",
|
33
|
+
"state",
|
34
|
+
"last_updated_date",
|
35
|
+
"manufacturer_id",
|
36
|
+
"endpoint_cmd_classes",
|
37
|
+
"device_id",
|
38
|
+
"nodeid_cmd_classes",
|
39
|
+
"is_device_hidden",
|
40
|
+
"nodeid_secure_cmd_classes",
|
41
|
+
"created_date",
|
42
|
+
"status",
|
43
|
+
"smart_energy_optimizer",
|
44
|
+
]
|
45
|
+
|
46
|
+
self._create_table()
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import logging # noqa: INP001
|
2
|
+
import sqlite3
|
3
|
+
|
4
|
+
from .table import QolsysTable
|
5
|
+
|
6
|
+
LOGGER = logging.getLogger(__name__)
|
7
|
+
|
8
|
+
|
9
|
+
class QolsysTableCountryLocale(QolsysTable):
|
10
|
+
|
11
|
+
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
12
|
+
super().__init__(db, cursor)
|
13
|
+
self._uri = "content://com.qolsys.qolsysprovider.CountryLocaleContentProvider/country_locale"
|
14
|
+
self._table = "country_locale"
|
15
|
+
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
17
|
+
|
18
|
+
self._columns = [
|
19
|
+
"_id",
|
20
|
+
"version",
|
21
|
+
"opr",
|
22
|
+
"partition_id",
|
23
|
+
"country",
|
24
|
+
"language",
|
25
|
+
"alpha2_code",
|
26
|
+
"language_code",
|
27
|
+
"date_format_enum",
|
28
|
+
"hour_format",
|
29
|
+
"temp_format",
|
30
|
+
"is_active",
|
31
|
+
"date_separator",
|
32
|
+
"zwave_region_frequency_code",
|
33
|
+
"zwave_region_frequency",
|
34
|
+
"zwave_region_prop_values",
|
35
|
+
]
|
36
|
+
|
37
|
+
self._create_table()
|
@@ -13,6 +13,8 @@ class QolsysTableDashboardMsgs(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.DashboardMessagesContentProvider/dashboard_msgs"
|
14
14
|
self._table = "dashboard_msgs"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
17
|
+
|
16
18
|
|
17
19
|
self._columns = [
|
18
20
|
"_id",
|
@@ -30,21 +32,3 @@ class QolsysTableDashboardMsgs(QolsysTable):
|
|
30
32
|
]
|
31
33
|
|
32
34
|
self._create_table()
|
33
|
-
|
34
|
-
def insert(self, data: dict) -> None:
|
35
|
-
self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,msg_id,title,description,
|
36
|
-
received_time,start_time,end_time,read,mime_type) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)""", (
|
37
|
-
data.get("_id"),
|
38
|
-
data.get("version"),
|
39
|
-
data.get("opr"),
|
40
|
-
data.get("partition_id"),
|
41
|
-
data.get("msg_id"),
|
42
|
-
data.get("title"),
|
43
|
-
data.get("description"),
|
44
|
-
data.get("received_time"),
|
45
|
-
data.get("start_time"),
|
46
|
-
data.get("end_time"),
|
47
|
-
data.get("read"),
|
48
|
-
data.get("mime_type")))
|
49
|
-
|
50
|
-
self._db.commit()
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import logging # noqa: INP001
|
2
|
+
import sqlite3
|
3
|
+
|
4
|
+
from .table import QolsysTable
|
5
|
+
|
6
|
+
LOGGER = logging.getLogger(__name__)
|
7
|
+
|
8
|
+
|
9
|
+
class QolsysTableDimmerLight(QolsysTable):
|
10
|
+
|
11
|
+
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
12
|
+
super().__init__(db, cursor)
|
13
|
+
self._uri = "content://com.qolsys.qolsysprovider.DimmerLightsContentProvider/dimmerlight"
|
14
|
+
self._table = "dimmerlight"
|
15
|
+
self._abort_on_error = True
|
16
|
+
self._implemented = True
|
17
|
+
|
18
|
+
self._columns = [
|
19
|
+
"_id",
|
20
|
+
"version",
|
21
|
+
"opr",
|
22
|
+
"partition_id",
|
23
|
+
"dimmer_name",
|
24
|
+
"status",
|
25
|
+
"node_id",
|
26
|
+
"level",
|
27
|
+
"created_by",
|
28
|
+
"created_date",
|
29
|
+
"updated_by",
|
30
|
+
"last_updated_date",
|
31
|
+
"endpoint",
|
32
|
+
"power_details",
|
33
|
+
"paired_status",
|
34
|
+
]
|
35
|
+
|
36
|
+
self._create_table()
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import logging # noqa: INP001
|
2
|
+
import sqlite3
|
3
|
+
|
4
|
+
from .table import QolsysTable
|
5
|
+
|
6
|
+
LOGGER = logging.getLogger(__name__)
|
7
|
+
|
8
|
+
|
9
|
+
class QolsysTableDoorLock(QolsysTable):
|
10
|
+
|
11
|
+
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
12
|
+
super().__init__(db, cursor)
|
13
|
+
self._uri = "content://com.qolsys.qolsysprovider.DoorLocksContentProvider/doorlock"
|
14
|
+
self._table = "doorlock"
|
15
|
+
self._abort_on_error = True
|
16
|
+
self._implemented = True
|
17
|
+
|
18
|
+
self._columns = [
|
19
|
+
"_id",
|
20
|
+
"version",
|
21
|
+
"opr",
|
22
|
+
"partition_id",
|
23
|
+
"doorlock_name",
|
24
|
+
"status",
|
25
|
+
"node_id",
|
26
|
+
"created_by",
|
27
|
+
"created_date",
|
28
|
+
"updated_by",
|
29
|
+
"last_updated_date",
|
30
|
+
"remote_arming",
|
31
|
+
"keyfob_arming",
|
32
|
+
"panel_arming",
|
33
|
+
"endpoint",
|
34
|
+
"paired_status",
|
35
|
+
]
|
36
|
+
|
37
|
+
self._create_table()
|
{qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_eu_event.py
RENAMED
@@ -13,6 +13,8 @@ class QolsysTableEuEvent(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.EUEventContentProvider/eu_event"
|
14
14
|
self._table = "eu_event"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = False
|
17
|
+
|
16
18
|
|
17
19
|
self._columns = [
|
18
20
|
"_id",
|
@@ -20,8 +22,3 @@ class QolsysTableEuEvent(QolsysTable):
|
|
20
22
|
|
21
23
|
self._create_table()
|
22
24
|
|
23
|
-
def insert(self, data: dict) -> None:
|
24
|
-
if data is not None:
|
25
|
-
LOGGER.error("Please Report")
|
26
|
-
LOGGER.error("Loading Table Format: %s", self.uri)
|
27
|
-
LOGGER.error(data)
|
{qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_heat_map.py
RENAMED
@@ -13,6 +13,7 @@ class QolsysTableHeatMap(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.HeatMapContentProvider/heat_map"
|
14
14
|
self._table = "heat_map"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
16
17
|
|
17
18
|
self._columns = [
|
18
19
|
"_id",
|
@@ -28,17 +29,3 @@ class QolsysTableHeatMap(QolsysTable):
|
|
28
29
|
|
29
30
|
self._create_table()
|
30
31
|
|
31
|
-
def insert(self, data: dict) -> None:
|
32
|
-
self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,userid,fragment_id,element_id,
|
33
|
-
count,time_stamp) VALUES (?,?,?,?,?,?,?,?,?)""", (
|
34
|
-
data.get("_id"),
|
35
|
-
data.get("version", ""),
|
36
|
-
data.get("opr", ""),
|
37
|
-
data.get("partition_id", ""),
|
38
|
-
data.get("userid", ""),
|
39
|
-
data.get("fragment_id", ""),
|
40
|
-
data.get("element_id", ""),
|
41
|
-
data.get("count", ""),
|
42
|
-
data.get("time_stamp", "")))
|
43
|
-
|
44
|
-
self._db.commit()
|
{qolsys_controller-0.0.15 → qolsys_controller-0.0.18}/qolsys_controller/database/table_history.py
RENAMED
@@ -13,6 +13,7 @@ class QolsysTableHistory(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.HistoryContentProvider/history"
|
14
14
|
self._table = "history"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
16
17
|
|
17
18
|
self._columns = [
|
18
19
|
"_id",
|
@@ -25,24 +26,8 @@ class QolsysTableHistory(QolsysTable):
|
|
25
26
|
"ack",
|
26
27
|
"type",
|
27
28
|
"feature1",
|
29
|
+
"feature2",
|
28
30
|
"device_id",
|
29
31
|
]
|
30
32
|
|
31
33
|
self._create_table()
|
32
|
-
|
33
|
-
def insert(self, data: dict) -> None:
|
34
|
-
self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,device,events,time,ack,type,
|
35
|
-
feature1,device_id) VALUES (?,?,?,?,?,?,?,?,?,?,?)""", (
|
36
|
-
data.get("_id"),
|
37
|
-
data.get("version", ""),
|
38
|
-
data.get("opr", ""),
|
39
|
-
data.get("partition_id", ""),
|
40
|
-
data.get("device", ""),
|
41
|
-
data.get("events", ""),
|
42
|
-
data.get("time", ""),
|
43
|
-
data.get("ack", ""),
|
44
|
-
data.get("type", ""),
|
45
|
-
data.get("feature1", ""),
|
46
|
-
data.get("device_id", "")))
|
47
|
-
|
48
|
-
self._db.commit()
|
@@ -13,6 +13,7 @@ class QolsysTableIqRemoteSettings(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.IQRemoteSettingsContentProvider/iqremotesettings"
|
14
14
|
self._table = "iqremotesettings"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
16
17
|
|
17
18
|
self._columns = [
|
18
19
|
"_id",
|
@@ -27,16 +28,3 @@ class QolsysTableIqRemoteSettings(QolsysTable):
|
|
27
28
|
|
28
29
|
self._create_table()
|
29
30
|
|
30
|
-
def insert(self, data: dict) -> None:
|
31
|
-
self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,zone_id,mac_address,name,value)
|
32
|
-
VALUES (?,?,?,?,?,?,?,?)""", (
|
33
|
-
data.get("_id"),
|
34
|
-
data.get("version", ""),
|
35
|
-
data.get("opr", ""),
|
36
|
-
data.get("partition_id", ""),
|
37
|
-
data.get("zone_id", ""),
|
38
|
-
data.get("mac_address", ""),
|
39
|
-
data.get("name", ""),
|
40
|
-
data.get("value", "")))
|
41
|
-
|
42
|
-
self._db.commit()
|
@@ -13,15 +13,10 @@ class QolsysTableIqRouterNetworkConfig(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.IQRouterNetworkConfigContentProvider/iqrouter_network_config_table"
|
14
14
|
self._table = "iqrouter_network_config_table"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = False
|
16
17
|
|
17
18
|
self._columns = [
|
18
19
|
"_id",
|
19
20
|
]
|
20
21
|
|
21
22
|
self._create_table()
|
22
|
-
|
23
|
-
def insert(self, data: dict) -> None:
|
24
|
-
if data is not None:
|
25
|
-
LOGGER.error("Please Report")
|
26
|
-
LOGGER.error("Loading Table Format: %s", self.uri)
|
27
|
-
LOGGER.error(data)
|
@@ -13,15 +13,11 @@ class QolsysTableIqRouterUserDevice(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.IQRouterUserDeviceContentProvider/iqrouter_user_device_table"
|
14
14
|
self._table = "iqrouter_user_device_table"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = False
|
17
|
+
|
16
18
|
|
17
19
|
self._columns = [
|
18
20
|
"_id",
|
19
21
|
]
|
20
22
|
|
21
23
|
self._create_table()
|
22
|
-
|
23
|
-
def insert(self, data: dict) -> None:
|
24
|
-
if data is not None:
|
25
|
-
LOGGER.error("Please Report")
|
26
|
-
LOGGER.error("Loading Table Format: %s", self.uri)
|
27
|
-
LOGGER.error(data)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import logging # noqa: INP001
|
2
|
+
import sqlite3
|
3
|
+
|
4
|
+
from .table import QolsysTable
|
5
|
+
|
6
|
+
LOGGER = logging.getLogger(__name__)
|
7
|
+
|
8
|
+
|
9
|
+
class QolsysTableMasterSlave(QolsysTable):
|
10
|
+
|
11
|
+
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
12
|
+
super().__init__(db, cursor)
|
13
|
+
self._uri = "content://com.qolsys.qolsysprovider.MasterSlaveContentProvider/master_slave"
|
14
|
+
self._table = "master_slave"
|
15
|
+
self._abort_on_error = False
|
16
|
+
self._implemented = True
|
17
|
+
|
18
|
+
self._columns = [
|
19
|
+
"_id",
|
20
|
+
"version",
|
21
|
+
"opr",
|
22
|
+
"partition_id",
|
23
|
+
"zone_id",
|
24
|
+
"ip_address",
|
25
|
+
"mac_address",
|
26
|
+
"device_type",
|
27
|
+
"created_by",
|
28
|
+
"created_date",
|
29
|
+
"updated_by",
|
30
|
+
"last_updated_date",
|
31
|
+
"status",
|
32
|
+
"device_name",
|
33
|
+
"last_updated_iq_remote_checksum",
|
34
|
+
"software_version",
|
35
|
+
"upgrade_status",
|
36
|
+
"name",
|
37
|
+
"bssid",
|
38
|
+
"ssid",
|
39
|
+
"dhcpInfo",
|
40
|
+
"topology",
|
41
|
+
"reboot_reason",
|
42
|
+
]
|
43
|
+
|
44
|
+
self._create_table()
|
@@ -13,15 +13,10 @@ class QolsysTableNestDevice(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.NestDeviceContentProvider/nest_device"
|
14
14
|
self._table = "nest_device"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = False
|
16
17
|
|
17
18
|
self._columns = [
|
18
19
|
"_id",
|
19
20
|
]
|
20
21
|
|
21
22
|
self._create_table()
|
22
|
-
|
23
|
-
def insert(self, data: dict) -> None:
|
24
|
-
if data is not None:
|
25
|
-
LOGGER.error("Please Report")
|
26
|
-
LOGGER.error("Loading Table Format: %s", self.uri)
|
27
|
-
LOGGER.error(data)
|
@@ -13,15 +13,10 @@ class QolsysTableOutputRules(QolsysTable):
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.OutputRulesContentProvider/output_rules"
|
14
14
|
self._table = "output_rules"
|
15
15
|
self._abort_on_error = False
|
16
|
+
self._implemented = False
|
16
17
|
|
17
18
|
self._columns = [
|
18
19
|
"_id",
|
19
20
|
]
|
20
21
|
|
21
22
|
self._create_table()
|
22
|
-
|
23
|
-
def insert(self, data: dict) -> None:
|
24
|
-
if data is not None:
|
25
|
-
LOGGER.error("Please Report")
|
26
|
-
LOGGER.error("Loading Table Format: %s", self.uri)
|
27
|
-
LOGGER.error(data)
|