qolsys-controller 0.0.16__py3-none-any.whl → 0.0.19__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.
Files changed (50) hide show
  1. qolsys_controller/database/db.py +12 -3
  2. qolsys_controller/database/table.py +44 -16
  3. qolsys_controller/database/table_alarmedsensor.py +3 -16
  4. qolsys_controller/database/table_automation.py +2 -33
  5. qolsys_controller/database/table_country_locale.py +1 -24
  6. qolsys_controller/database/table_dashboard_msgs.py +2 -18
  7. qolsys_controller/database/table_dimmerlight.py +2 -23
  8. qolsys_controller/database/table_doorlock.py +1 -23
  9. qolsys_controller/database/table_eu_event.py +2 -5
  10. qolsys_controller/database/table_heat_map.py +1 -14
  11. qolsys_controller/database/table_history.py +2 -17
  12. qolsys_controller/database/table_iqremotesettings.py +1 -13
  13. qolsys_controller/database/table_iqrouter_network_config.py +1 -6
  14. qolsys_controller/database/table_iqrouter_user_device.py +2 -6
  15. qolsys_controller/database/table_master_slave.py +1 -30
  16. qolsys_controller/database/table_nest_device.py +1 -6
  17. qolsys_controller/database/table_output_rules.py +1 -6
  18. qolsys_controller/database/table_partition.py +1 -11
  19. qolsys_controller/database/table_pgm_outputs.py +2 -6
  20. qolsys_controller/database/table_powerg_device.py +2 -6
  21. qolsys_controller/database/table_qolsyssettings.py +2 -11
  22. qolsys_controller/database/table_scene.py +2 -21
  23. qolsys_controller/database/table_sensor.py +1 -58
  24. qolsys_controller/database/table_shades.py +1 -5
  25. qolsys_controller/database/table_smartsocket.py +1 -5
  26. qolsys_controller/database/table_state.py +1 -13
  27. qolsys_controller/database/table_tcc.py +1 -8
  28. qolsys_controller/database/table_thermostat.py +1 -42
  29. qolsys_controller/database/table_trouble_conditions.py +1 -14
  30. qolsys_controller/database/table_user.py +12 -17
  31. qolsys_controller/database/table_virtual_device.py +1 -5
  32. qolsys_controller/database/table_weather.py +2 -17
  33. qolsys_controller/database/table_zigbee_device.py +1 -6
  34. qolsys_controller/database/table_zwave_association_group.py +1 -20
  35. qolsys_controller/database/table_zwave_history.py +1 -23
  36. qolsys_controller/database/table_zwave_node.py +8 -74
  37. qolsys_controller/database/table_zwave_other.py +1 -6
  38. qolsys_controller/enum_zwave.py +37 -0
  39. qolsys_controller/panel.py +21 -0
  40. qolsys_controller/plugin_remote.py +261 -8
  41. qolsys_controller/scene.py +79 -0
  42. qolsys_controller/settings.py +5 -0
  43. qolsys_controller/state.py +72 -0
  44. qolsys_controller/zone.py +1 -1
  45. qolsys_controller/zwave_thermostat.py +55 -0
  46. {qolsys_controller-0.0.16.dist-info → qolsys_controller-0.0.19.dist-info}/METADATA +2 -1
  47. qolsys_controller-0.0.19.dist-info/RECORD +68 -0
  48. qolsys_controller-0.0.16.dist-info/RECORD +0 -66
  49. {qolsys_controller-0.0.16.dist-info → qolsys_controller-0.0.19.dist-info}/WHEEL +0 -0
  50. {qolsys_controller-0.0.16.dist-info → qolsys_controller-0.0.19.dist-info}/licenses/LICENSE +0 -0
@@ -13,6 +13,8 @@ class QolsysTableScene(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.SceneContentProvider/scene"
14
14
  self._table = "scene"
15
15
  self._abort_on_error = False
16
+ self._implemented = True
17
+
16
18
 
17
19
  self._columns = [
18
20
  "_id",
@@ -32,24 +34,3 @@ class QolsysTableScene(QolsysTable):
32
34
  ]
33
35
 
34
36
  self._create_table()
35
-
36
- def insert(self, data: dict) -> None:
37
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,scene_id,name,icon,
38
- color,flags,ack,create_time,created_by,update_time,updated_by)
39
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", (
40
- data.get("_id"),
41
- data.get("version", ""),
42
- data.get("opr", ""),
43
- data.get("partition_id", ""),
44
- data.get("scene_id", ""),
45
- data.get("name", ""),
46
- data.get("icon", ""),
47
- data.get("color", ""),
48
- data.get("flags", ""),
49
- data.get("ack", ""),
50
- data.get("create_time", ""),
51
- data.get("created_by", ""),
52
- data.get("update_time", ""),
53
- data.get("updated_by", "")))
54
-
55
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableSensor(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.SensorContentProvider/sensor"
14
14
  self._table = "sensor"
15
15
  self._abort_on_error = True
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -63,61 +64,3 @@ class QolsysTableSensor(QolsysTable):
63
64
  ]
64
65
 
65
66
  self._create_table()
66
-
67
- def insert(self, data: dict) -> None:
68
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,sensorid,sensortype,sensorname,
69
- sensorgroup,chimetype,sensorstatus,time,sensorstate,sensortts,zoneid,frame_id,zone_alarm_type,
70
- zone_equipment_code,zone_physical_type,zone_type,zone_rf_sensor,zone_supervised,
71
- zone_two_way_voice_enabled, zone_reporting_enabled, battery_status,created_date,created_by,
72
- updated_date,updated_by,frame_count,frame_type,current_capability,shortID,diag_24hr,
73
- allowdisarming,device_capability,sub_type, signal_source, powerg_manufacture_id,parent_node,
74
- latestdBm,averagedBm,serial_number,extras,ac_status,allowspeaker)
75
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
76
- ?,?,?,?,?,?,?,?,?,?,?,?)""", (
77
- data.get("_id"),
78
- data.get("version", ""),
79
- data.get("opr", ""),
80
- data.get("partition_id", ""),
81
- data.get("sensorid", ""),
82
- data.get("sensortype", ""),
83
- data.get("sensorname", ""),
84
- data.get("sensorgroup", ""),
85
- data.get("chimetype", ""),
86
- data.get("sensorstatus", ""),
87
- data.get("time", ""),
88
- data.get("sensorstate", ""),
89
- data.get("sensortts", ""),
90
- data.get("zoneid", ""),
91
- data.get("frame_id", ""),
92
- data.get("zone_alarm_type", ""),
93
- data.get("zone_equipment_code", ""),
94
- data.get("zone_physical_type", ""),
95
- data.get("zone_type", ""),
96
- data.get("zone_rf_sensor", ""),
97
- data.get("zone_supervised", ""),
98
- data.get("zone_two_way_voice_enabled", ""),
99
- data.get("zone_reporting_enabled", ""),
100
- data.get("battery_status", ""),
101
- data.get("created_date", ""),
102
- data.get("created_by", ""),
103
- data.get("updated_date", ""),
104
- data.get("updated_by", ""),
105
- data.get("frame_count", ""),
106
- data.get("frame_type", ""),
107
- data.get("current_capability", ""),
108
- data.get("shortID", ""),
109
- data.get("diag_24hr", ""),
110
- data.get("allowdisarming", ""),
111
- data.get("device_capability", ""),
112
- data.get("sub_type", ""),
113
- data.get("signal_source", ""),
114
- data.get("powerg_manufacture_id", ""),
115
- data.get("parent_node", ""),
116
- data.get("latestdBm", ""),
117
- data.get("averagedBm", ""),
118
- data.get("serial_number", ""),
119
- data.get("extras", ""),
120
- data.get("ac_status", ""),
121
- data.get("allowspeaker", "")))
122
-
123
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableShades(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ShadesContentProvider/shades"
14
14
  self._table = "shades"
15
15
  self._abort_on_error = False
16
+ self._implemented = False
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -20,8 +21,3 @@ class QolsysTableShades(QolsysTable):
20
21
 
21
22
  self._create_table()
22
23
 
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,6 +13,7 @@ class QolsysTableSmartSocket(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.SmartSocketsContentProvider/smartsocket"
14
14
  self._table = "smartsocket"
15
15
  self._abort_on_error = False
16
+ self._implemented = False
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -20,8 +21,3 @@ class QolsysTableSmartSocket(QolsysTable):
20
21
 
21
22
  self._create_table()
22
23
 
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,6 +13,7 @@ class QolsysTableState(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.StateContentProvider/state"
14
14
  self._table = "state"
15
15
  self._abort_on_error = True
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -25,16 +26,3 @@ class QolsysTableState(QolsysTable):
25
26
  ]
26
27
 
27
28
  self._create_table()
28
-
29
- def insert(self, data: dict) -> None:
30
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,name,value,extraparams)
31
- VALUES (?,?,?,?,?,?,?)""", (
32
- data.get("_id"),
33
- data.get("version", ""),
34
- data.get("opr", ""),
35
- data.get("partition_id", ""),
36
- data.get("name", ""),
37
- data.get("value", ""),
38
- data.get("extraparams", "")))
39
-
40
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableTcc(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.TccContentProvider/tcc"
14
14
  self._table = "tcc"
15
15
  self._abort_on_error = False
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "tableName",
@@ -20,11 +21,3 @@ class QolsysTableTcc(QolsysTable):
20
21
  ]
21
22
 
22
23
  self._create_table()
23
-
24
- def insert(self, data: dict) -> None:
25
- # panel sends content://com.qolsys.qolsysprovider.PowerGDeviceContentProvider/powerg_device' twice
26
- self._cursor.execute(f"INSERT OR IGNORE INTO {self.table} (tableName,counter) VALUES (?,?)", (
27
- data.get("tableName"),
28
- data.get("counter", "")))
29
-
30
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableThermostat(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ThermostatsContentProvider/thermostat"
14
14
  self._table = "thermostat"
15
15
  self._abort_on_error = False
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -50,45 +51,3 @@ class QolsysTableThermostat(QolsysTable):
50
51
  ]
51
52
 
52
53
  self._create_table()
53
-
54
- def insert(self, data: dict) -> None:
55
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,thermostat_id,thermostat_name,
56
- current_temp,target_cool_temp,target_heat_temp,target_temp,power_usage,thermostat_mode,
57
- thermostat_mode_bitmask,fan_mode,fan_mode_bitmask,set_point_mode,set_point_mode_bitmask,
58
- node_id,created_by,created_date,updated_by,last_updated_date,thermostat_mode_updated_time,
59
- fan_mode_updated_time,set_point_mode_updated_time,target_cool_temp_updated_time,
60
- target_heat_temp_updated_time,current_temp_updated_time,device_temp_unit,endpoint,
61
- paired_status,configuration_parameter)
62
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", (
63
- data.get("_id"),
64
- data.get("version", ""),
65
- data.get("opr", ""),
66
- data.get("partition_id", ""),
67
- data.get("thermostat_id", ""),
68
- data.get("thermostat_name", ""),
69
- data.get("current_temp", ""),
70
- data.get("target_cool_temp", ""),
71
- data.get("target_heat_temp", ""),
72
- data.get("target_temp", ""),
73
- data.get("power_usage", ""),
74
- data.get("thermostat_mode", ""),
75
- data.get("thermostat_mode_bitmask,fan_mode", ""),
76
- data.get("fan_mode_bitmask,set_point_mode", ""),
77
- data.get("set_point_mode_bitmask", ""),
78
- data.get("node_id", ""),
79
- data.get("created_by", ""),
80
- data.get("created_date", ""),
81
- data.get("updated_by", ""),
82
- data.get("last_updated_date", ""),
83
- data.get("thermostat_mode_updated_time", ""),
84
- data.get("fan_mode_updated_time", ""),
85
- data.get("set_point_mode_updated_time", ""),
86
- data.get("target_cool_temp_updated_time", ""),
87
- data.get("target_heat_temp_updated_time", ""),
88
- data.get("current_temp_updated_time", ""),
89
- data.get("device_temp_unit", ""),
90
- data.get("endpoint", ""),
91
- data.get("paired_status", ""),
92
- data.get("configuration_parameter", "")))
93
-
94
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableTroubleConditions(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.TroubleConditionsContentProvider/trouble_conditions"
14
14
  self._table = "trouble_conditions"
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 QolsysTableTroubleConditions(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,device_id,device_name,
33
- trouble_condition,status,time) VALUES (?,?,?,?,?,?,?,?,?)""", (
34
- data.get("_id"),
35
- data.get("version", ""),
36
- data.get("opr", ""),
37
- data.get("partition_id", ""),
38
- data.get("device_id", ""),
39
- data.get("device_name", ""),
40
- data.get("trouble_condition", ""),
41
- data.get("status", ""),
42
- data.get("time", "")))
43
-
44
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableUser(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.UserContentProvider/user"
14
14
  self._table = "user"
15
15
  self._abort_on_error = False
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -27,24 +28,18 @@ class QolsysTableUser(QolsysTable):
27
28
  "lastname",
28
29
  "check_in",
29
30
  "hash_user",
31
+ "updated_date",
32
+ "updated_by",
33
+ "created_date",
34
+ "created_by",
35
+ "user_permissions",
36
+ "door_locks",
37
+ "active_duration_type",
38
+ "active",
39
+ "start_date",
40
+ "tag_flag",
41
+ "check_in_time",
30
42
  ]
31
43
 
32
44
  self._create_table()
33
45
 
34
- def insert(self, data: dict) -> None:
35
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,username,userPin,
36
- expirydate,usertype,userid,lastname,check_in,hash_user) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)""", (
37
- data.get("_id"),
38
- data.get("version", ""),
39
- data.get("opr", ""),
40
- data.get("partition_id", ""),
41
- data.get("username", ""),
42
- data.get("userPin", ""),
43
- data.get("expirydate", ""),
44
- data.get("usertype", ""),
45
- data.get("userid", ""),
46
- data.get("lastname", ""),
47
- data.get("check_in", ""),
48
- data.get("hash_user", "")))
49
-
50
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableVirtualDevice(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.VirtualDeviceContentProvider/virtual_device"
14
14
  self._table = "virtual_device"
15
15
  self._abort_on_error = False
16
+ self._implemented = False
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -20,8 +21,3 @@ class QolsysTableVirtualDevice(QolsysTable):
20
21
 
21
22
  self._create_table()
22
23
 
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)
@@ -12,7 +12,8 @@ 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 = False
15
+ self._abort_on_error = True
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -30,19 +31,3 @@ class QolsysTableWeather(QolsysTable):
30
31
 
31
32
  self._create_table()
32
33
 
33
- def insert(self, data: dict) -> None:
34
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,high_temp,low_temp,day_of_week,
35
- condition,icon,precipitation,current_weather_date) VALUES (?,?,?,?,?,?,?,?,?,?,?)""", (
36
- data.get("_id"),
37
- data.get("version", ""),
38
- data.get("opr", ""),
39
- data.get("partition_id", ""),
40
- data.get("high_temp", ""),
41
- data.get("low_temp", ""),
42
- data.get("day_of_week", ""),
43
- data.get("condition", ""),
44
- data.get("icon", ""),
45
- data.get("precipitation", ""),
46
- data.get("current_weather_date", "")))
47
-
48
- self._db.commit()
@@ -12,6 +12,7 @@ class QolsysTableZigbeeDevice(QolsysTable):
12
12
  super().__init__(db, cursor)
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ZigbeeDeviceContentProvider/zigbee_device"
14
14
  self._table = "zigbee_device"
15
+ self._implemented = True
15
16
  self._abort_on_error = False
16
17
 
17
18
  self._columns = [
@@ -19,9 +20,3 @@ class QolsysTableZigbeeDevice(QolsysTable):
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,6 +13,7 @@ class QolsysTableZwaveAssociationGroup(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ZwaveAssociationGroupContentProvider/zwave_association_group"
14
14
  self._table = "zwave_association_group"
15
15
  self._abort_on_error = False
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -31,23 +32,3 @@ class QolsysTableZwaveAssociationGroup(QolsysTable):
31
32
  ]
32
33
 
33
34
  self._create_table()
34
-
35
- def insert(self, data: dict) -> None:
36
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,group_name,associated_nodes,
37
- group_id,created_date,last_updated_date,group_command_class,max_supported_nodes,node_id,
38
- endpoint) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)""", (
39
- data.get("_id"),
40
- data.get("version", ""),
41
- data.get("opr", ""),
42
- data.get("partition_id", ""),
43
- data.get("group_name", ""),
44
- data.get("associated_nodes", ""),
45
- data.get("group_id", ""),
46
- data.get("created_date", ""),
47
- data.get("last_updated_date", ""),
48
- data.get("group_command_class", ""),
49
- data.get("max_supported_nodes", ""),
50
- data.get("node_id", ""),
51
- data.get("endpoint", "")))
52
-
53
- self._db.commit()
@@ -13,6 +13,7 @@ class QolsysTableZwaveHistory(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ZDeviceHistoryContentProvider/zwave_history"
14
14
  self._table = "zwave_history"
15
15
  self._abort_on_error = False
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
@@ -34,26 +35,3 @@ class QolsysTableZwaveHistory(QolsysTable):
34
35
  ]
35
36
 
36
37
  self._create_table()
37
-
38
- def insert(self, data: dict) -> None:
39
- self._cursor.execute(f"""INSERT INTO {self.table} (_id,version,opr,partition_id,node_id,device_name,source,event,
40
- request,response,created_date,updated_date,last_updated_by,field_type,ack,protocol)
41
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", (
42
- data.get("_id"),
43
- data.get("version", ""),
44
- data.get("opr", ""),
45
- data.get("partition_id", ""),
46
- data.get("node_id", ""),
47
- data.get("device_name", ""),
48
- data.get("source", ""),
49
- data.get("event", ""),
50
- data.get("request", ""),
51
- data.get("response", ""),
52
- data.get("created_date", ""),
53
- data.get("updated_date", ""),
54
- data.get("last_updated_by", ""),
55
- data.get("field_type", ""),
56
- data.get("ack", ""),
57
- data.get("protocol", "")))
58
-
59
- self._db.commit()
@@ -13,11 +13,12 @@ class QolsysTableZwaveNode(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ZwaveContentProvider/zwave_node"
14
14
  self._table = "zwave_node"
15
15
  self._abort_on_error = True
16
+ self._implemented = True
16
17
 
17
18
  self._columns = [
18
19
  "_id",
19
20
  "version",
20
- "opr TEXT",
21
+ "opr",
21
22
  "partition_id",
22
23
  "node_id",
23
24
  "node_name",
@@ -72,79 +73,12 @@ class QolsysTableZwaveNode(QolsysTable):
72
73
  "device_protocol",
73
74
  "is_device_hidden",
74
75
  "ime_data",
76
+ "device_status",
77
+ "device_id",
78
+ "all_command_classes",
79
+ "sound_switch_info",
80
+ "long_range_nodeid",
81
+ "hide_device_info",
75
82
  ]
76
83
 
77
84
  self._create_table()
78
-
79
- def insert(self, data: dict) -> None:
80
- self._cursor.execute(
81
- f"""INSERT INTO {self.table} (_id,version,opr,partition_id,node_id,node_name,node_type,node_status,
82
- node_secure_cmd_cls,node_battery_level,node_battery_level_value,is_node_listening_node,basic_report_value,
83
- switch_multilevel_report_value,basic_device_type,generic_device_type,specific_device_type,num_secure_command_class,
84
- secure_command_class,manufacture_id,product_type,product_id,library_type_version,protocol_version,protocol_sub_version,
85
- application_version,application_sub_version,capability,command_class_list,lenof_command_class_list,security,library_type,
86
- last_updated_date,node_battery_level_updated_time,basic_report_updated_time,switch_multilevel_report_updated_time,
87
- multi_channel_details,rediscover_status,last_rediscover_time,neighbour_info,last_node_test_time,endpoint,endpoint_details,
88
- device_wakeup_time,role_type,is_device_sleeping,counters_passed,counters_failed,group_id,command_classes_version,
89
- paired_status,device_dsk,endpoint_secure_cmd_cls,s2_security_keys,device_protocol,is_device_hidden,ime_data)
90
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
91
- ?,?,?,?,?,?,?,?)""",
92
- (
93
- data.get("_id"),
94
- data.get("version", ""),
95
- data.get("opr", ""),
96
- data.get("partition_id", ""),
97
- data.get("node_id", ""),
98
- data.get("node_name", ""),
99
- data.get("node_type", ""),
100
- data.get("node_status", ""),
101
- data.get("node_secure_cmd_cls", ""),
102
- data.get("node_battery_level", ""),
103
- data.get("node_battery_level_value", ""),
104
- data.get("is_node_listening_node", ""),
105
- data.get("basic_report_value", ""),
106
- data.get("switch_multilevel_report_value", ""),
107
- data.get("basic_device_type", ""),
108
- data.get("generic_device_type", ""),
109
- data.get("specific_device_type", ""),
110
- data.get("num_secure_command_class", ""),
111
- data.get("secure_command_class", ""),
112
- data.get("manufacture_id", ""),
113
- data.get("product_type", ""),
114
- data.get("product_id", ""),
115
- data.get("library_type_version", ""),
116
- data.get("protocol_version", ""),
117
- data.get("protocol_sub_version", ""),
118
- data.get("application_version", ""),
119
- data.get("application_sub_version", ""),
120
- data.get("capability", ""),
121
- data.get("command_class_list", ""),
122
- data.get("lenof_command_class_list", ""),
123
- data.get("security", ""),
124
- data.get("library_type", ""),
125
- data.get("last_updated_date", ""),
126
- data.get("node_battery_level_updated_time", ""),
127
- data.get("basic_report_updated_time", ""),
128
- data.get("switch_multilevel_report_updated_time", ""),
129
- data.get("multi_channel_details", ""),
130
- data.get("rediscover_status", ""),
131
- data.get("last_rediscover_time", ""),
132
- data.get("neighbour_info", ""),
133
- data.get("last_node_test_time", ""),
134
- data.get("endpoint", ""),
135
- data.get("endpoint_details", ""),
136
- data.get("device_wakeup_time", ""),
137
- data.get("role_type", ""),
138
- data.get("is_device_sleeping", ""),
139
- data.get("counters_passed", ""),
140
- data.get("counters_failed", ""),
141
- data.get("group_id", ""),
142
- data.get("command_classes_version", ""),
143
- data.get("paired_status", ""),
144
- data.get("device_dsk", ""),
145
- data.get("endpoint_secure_cmd_cls", ""),
146
- data.get("s2_security_keys", ""),
147
- data.get("device_protocol", ""),
148
- data.get("is_device_hidden", ""),
149
- data.get("ime_data", "")))
150
- self._db.commit()
@@ -13,15 +13,10 @@ class QolsysTableZwaveOther(QolsysTable):
13
13
  self._uri = "content://com.qolsys.qolsysprovider.ZwaveOtherDeviceContentProvider/zwave_other"
14
14
  self._table = "zwave_other"
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)
@@ -0,0 +1,37 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ThermostatMode(Enum):
5
+ OFF: 0x0001
6
+ HEAT: 0x0002
7
+ COOL: 0x0004
8
+ AUTO: 0x0008
9
+ AUX_HEAT: 0x0010
10
+ RESUME: 0x0020
11
+ FAN_ONLY: 0x0040
12
+ FURNACE: 0x0080
13
+ DRY_AIR: 0x0100
14
+ MOIST_AIR: 0x0200
15
+ AUTO_CHANGEOVER: 0x0400
16
+ ENERGY_SAVE_HEAT: 0x0800
17
+ ENERGY_SAVE_COOL: 0x1000
18
+ AWAY: 0x2000
19
+ FULL_POWER: 0x4000
20
+ MANUFACTURER_SPECEFIC: 0x8000
21
+
22
+
23
+ class ThermostatFanMode(Enum):
24
+ AUTO_LOW: 0x0001
25
+ LOW: 0x0002
26
+ AUTO_HIGH: 0x0004
27
+ HIGH: 0x0008
28
+ AUTO_MEDIUM: 0x0010
29
+ MEDIUM: 0x0020
30
+ CIRCULATION: 0x4000
31
+ HUMIDITY_CIRCULATION: 0x0080
32
+ LEFT_RIGHT: 0x0100
33
+ UP_DOWN: 0x0200
34
+ QUIET: 0x0400
35
+ EXTERNAL_CIRCULATION: 0x0800
36
+ MANUFACTURER_SPECEFIC: 0x1000
37
+
@@ -9,6 +9,7 @@ from .enum import (
9
9
  )
10
10
  from .observable import QolsysObservable
11
11
  from .partition import QolsysPartition
12
+ from .scene import QolsysScene
12
13
  from .settings import QolsysSettings
13
14
  from .state import QolsysState
14
15
  from .zone import QolsysZone
@@ -346,6 +347,7 @@ class QolsysPanel(QolsysObservable):
346
347
  self._state.sync_partitions_data(self.get_partitions_from_db())
347
348
  self._state.sync_zones_data(self.get_zones_from_db())
348
349
  self._state.sync_zwave_devices_data(self.get_zwave_devices_from_db())
350
+ self._state.sync_scenes_data(self.get_scenes_from_db())
349
351
 
350
352
  # Parse panel update to database
351
353
  def parse_iq2meid_message(self, data: dict) -> bool: # noqa: C901, PLR0912, PLR0915
@@ -498,6 +500,15 @@ class QolsysPanel(QolsysObservable):
498
500
  self.db.table_iqremotesettings.update(selection, selection_argument, content_values)
499
501
  # No action needed
500
502
 
503
+ # Update Scene Content Provider
504
+ case self.db.table_scene.uri:
505
+ self.db.table_scene.update(selection, selection_argument, content_values)
506
+ scene_id = content_values.get("scene_id", "")
507
+ scene = self._state.scene(scene_id)
508
+ if scene is not None and isinstance(node, QolsysScene):
509
+ scene.update(content_values)
510
+
511
+
501
512
  case _:
502
513
  LOGGER.debug("iq2meid updating unknow uri:%s", uri)
503
514
  LOGGER.debug(data)
@@ -772,6 +783,16 @@ class QolsysPanel(QolsysObservable):
772
783
 
773
784
  return devices
774
785
 
786
+ def get_scenes_from_db(self) -> list[QolsysScene]:
787
+ scenes = []
788
+ scenes_list: list[dict] = self.db.get_scenes()
789
+
790
+ # Create scenes array
791
+ for scene_info in scenes_list:
792
+ scenes.append(QolsysScene(scene_info))
793
+
794
+ return scenes
795
+
775
796
  def get_zones_from_db(self) -> list[QolsysZone]:
776
797
  zones = []
777
798
  zones_list: list[dict] = self.db.get_zones()