qolsys-controller 0.0.15__py3-none-any.whl → 0.0.18__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.
- qolsys_controller/database/db.py +12 -3
- qolsys_controller/database/table.py +44 -16
- qolsys_controller/database/table_alarmedsensor.py +3 -16
- qolsys_controller/database/table_automation.py +2 -33
- qolsys_controller/database/table_country_locale.py +1 -24
- qolsys_controller/database/table_dashboard_msgs.py +2 -18
- qolsys_controller/database/table_dimmerlight.py +2 -23
- qolsys_controller/database/table_doorlock.py +1 -23
- qolsys_controller/database/table_eu_event.py +2 -5
- qolsys_controller/database/table_heat_map.py +1 -14
- qolsys_controller/database/table_history.py +2 -17
- qolsys_controller/database/table_iqremotesettings.py +1 -13
- qolsys_controller/database/table_iqrouter_network_config.py +1 -6
- qolsys_controller/database/table_iqrouter_user_device.py +2 -6
- qolsys_controller/database/table_master_slave.py +1 -30
- qolsys_controller/database/table_nest_device.py +1 -6
- qolsys_controller/database/table_output_rules.py +1 -6
- qolsys_controller/database/table_partition.py +1 -11
- qolsys_controller/database/table_pgm_outputs.py +2 -6
- qolsys_controller/database/table_powerg_device.py +2 -6
- qolsys_controller/database/table_qolsyssettings.py +2 -11
- qolsys_controller/database/table_scene.py +2 -21
- qolsys_controller/database/table_sensor.py +1 -58
- qolsys_controller/database/table_shades.py +1 -5
- qolsys_controller/database/table_smartsocket.py +1 -5
- qolsys_controller/database/table_state.py +1 -13
- qolsys_controller/database/table_tcc.py +1 -8
- qolsys_controller/database/table_thermostat.py +1 -42
- qolsys_controller/database/table_trouble_conditions.py +1 -14
- qolsys_controller/database/table_user.py +12 -17
- qolsys_controller/database/table_virtual_device.py +1 -5
- qolsys_controller/database/table_weather.py +2 -17
- qolsys_controller/database/table_zigbee_device.py +1 -6
- qolsys_controller/database/table_zwave_association_group.py +1 -20
- qolsys_controller/database/table_zwave_history.py +1 -23
- qolsys_controller/database/table_zwave_node.py +8 -74
- qolsys_controller/database/table_zwave_other.py +1 -6
- qolsys_controller/enum_zwave.py +37 -0
- qolsys_controller/panel.py +21 -0
- qolsys_controller/partition.py +9 -7
- qolsys_controller/plugin_remote.py +121 -8
- qolsys_controller/scene.py +79 -0
- qolsys_controller/settings.py +5 -0
- qolsys_controller/state.py +72 -0
- qolsys_controller/zone.py +1 -1
- qolsys_controller/zwave_thermostat.py +56 -0
- {qolsys_controller-0.0.15.dist-info → qolsys_controller-0.0.18.dist-info}/METADATA +2 -1
- qolsys_controller-0.0.18.dist-info/RECORD +68 -0
- qolsys_controller-0.0.15.dist-info/RECORD +0 -66
- {qolsys_controller-0.0.15.dist-info → qolsys_controller-0.0.18.dist-info}/WHEEL +0 -0
- {qolsys_controller-0.0.15.dist-info → qolsys_controller-0.0.18.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 =
|
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
|
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 ThermostateFanMode(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
|
+
|
qolsys_controller/panel.py
CHANGED
@@ -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()
|