zwave-js-server-python 0.68.0__tar.gz → 0.69.0__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.
- {zwave_js_server_python-0.68.0/zwave_js_server_python.egg-info → zwave_js_server_python-0.69.0}/PKG-INFO +1 -1
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/__init__.py +6 -6
- zwave_js_server_python-0.69.0/zwave_js_server/const/command_class/battery.py +14 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/lock.py +4 -4
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/notification.py +22 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/node/__init__.py +13 -7
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/notification.py +29 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0/zwave_js_server_python.egg-info}/PKG-INFO +1 -1
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server_python.egg-info/SOURCES.txt +1 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/LICENSE +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/MANIFEST.in +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/README.md +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/pyproject.toml +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/setup.cfg +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/__main__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/client.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/barrier_operator.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/basic.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/central_scene.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/color_switch.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/energy_production.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/entry_control.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/humidity_control.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/meter.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/multilevel_sensor.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/multilevel_switch.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/power_level.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/protection.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/scene_activation.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/sound_switch.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/thermostat.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/wake_up.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/command_class/window_covering.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/dump.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/event.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/exceptions.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/firmware.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/association.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/command_class.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/config_manager/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/controller/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/controller/data_model.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/controller/event_model.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/controller/inclusion_and_provisioning.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/controller/rebuild_routes.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/controller/statistics.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/device_class.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/device_config.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/driver/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/driver/firmware.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/duration.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/endpoint.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/firmware.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/log_config.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/log_message.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/node/data_model.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/node/event_model.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/node/firmware.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/node/health_check.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/node/statistics.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/statistics.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/utils.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/value.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/version.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/py.typed +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/command_class/__init__.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/command_class/energy_production.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/command_class/meter.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/command_class/multilevel_sensor.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/helpers.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/lock.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/multicast.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/node.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/version.py +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server_python.egg-info/dependency_links.txt +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server_python.egg-info/entry_points.txt +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server_python.egg-info/requires.txt +0 -0
- {zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server_python.egg-info/top_level.txt +0 -0
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/const/__init__.py
RENAMED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from dataclasses import dataclass, field
|
|
6
|
-
from enum import
|
|
6
|
+
from enum import IntEnum, StrEnum
|
|
7
7
|
import logging
|
|
8
8
|
from typing import TypedDict
|
|
9
9
|
|
|
10
10
|
PACKAGE_NAME = "zwave-js-server-python"
|
|
11
|
-
__version__ = "0.
|
|
11
|
+
__version__ = "0.69.0"
|
|
12
12
|
|
|
13
13
|
# minimal server schema version we can handle
|
|
14
14
|
MIN_SERVER_SCHEMA_VERSION = 44
|
|
15
15
|
# max server schema version we can handle (and our code is compatible with)
|
|
16
|
-
MAX_SERVER_SCHEMA_VERSION =
|
|
16
|
+
MAX_SERVER_SCHEMA_VERSION = 45
|
|
17
17
|
|
|
18
18
|
VALUE_UNKNOWN = "unknown"
|
|
19
19
|
|
|
@@ -30,7 +30,7 @@ TRANSITION_DURATION_OPTION = "transitionDuration"
|
|
|
30
30
|
VOLUME_OPTION = "volume"
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
class CommandStatus(
|
|
33
|
+
class CommandStatus(StrEnum):
|
|
34
34
|
"""Status of a command sent to zwave-js-server."""
|
|
35
35
|
|
|
36
36
|
ACCEPTED = "accepted"
|
|
@@ -39,7 +39,7 @@ class CommandStatus(str, Enum):
|
|
|
39
39
|
|
|
40
40
|
# Multiple inheritance so that LogLevel will JSON serialize properly
|
|
41
41
|
# Reference: https://stackoverflow.com/a/51976841
|
|
42
|
-
class LogLevel(
|
|
42
|
+
class LogLevel(StrEnum):
|
|
43
43
|
"""Enum for log levels used by node-zwave-js."""
|
|
44
44
|
|
|
45
45
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/log/shared.ts#L12
|
|
@@ -212,7 +212,7 @@ class NodeStatus(IntEnum):
|
|
|
212
212
|
ALIVE = 4
|
|
213
213
|
|
|
214
214
|
|
|
215
|
-
class ConfigurationValueType(
|
|
215
|
+
class ConfigurationValueType(StrEnum):
|
|
216
216
|
"""Enum for configuration value types."""
|
|
217
217
|
|
|
218
218
|
BOOLEAN = "boolean"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""Constants for the Battery CC."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from enum import IntEnum
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class BatteryReplacementStatus(IntEnum):
|
|
9
|
+
"""Enum with all (known/used) Z-Wave Battery Replacement Statuses."""
|
|
10
|
+
|
|
11
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/cc/src/lib/_Types.ts#L328
|
|
12
|
+
NO = 0
|
|
13
|
+
SOON = 1
|
|
14
|
+
NOW = 2
|
|
@@ -7,7 +7,7 @@ Includes Door Lock and Lock CCs.
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
from dataclasses import dataclass, field
|
|
10
|
-
from enum import
|
|
10
|
+
from enum import IntEnum, StrEnum
|
|
11
11
|
from typing import TypedDict
|
|
12
12
|
|
|
13
13
|
from .. import CommandClass
|
|
@@ -49,7 +49,7 @@ DOOR_LOCK_CC_UNSECURED_MAP = {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
class LatchStatus(
|
|
52
|
+
class LatchStatus(StrEnum):
|
|
53
53
|
"""Enum with all (known/used) Z-Wave latch statuses."""
|
|
54
54
|
|
|
55
55
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/cc/src/cc/DoorLockCC.ts#L854
|
|
@@ -57,7 +57,7 @@ class LatchStatus(str, Enum):
|
|
|
57
57
|
CLOSED = "closed"
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
class BoltStatus(
|
|
60
|
+
class BoltStatus(StrEnum):
|
|
61
61
|
"""Enum with all (known/used) Z-Wave bolt statuses."""
|
|
62
62
|
|
|
63
63
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/cc/src/cc/DoorLockCC.ts#L854
|
|
@@ -65,7 +65,7 @@ class BoltStatus(str, Enum):
|
|
|
65
65
|
UNLOCKED = "unlocked"
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
class DoorStatus(
|
|
68
|
+
class DoorStatus(StrEnum):
|
|
69
69
|
"""Enum with all (known/used) Z-Wave door statuses."""
|
|
70
70
|
|
|
71
71
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/cc/src/cc/DoorLockCC.ts#L854
|
|
@@ -89,6 +89,7 @@ class AccessControlNotificationEvent(NotificationEvent):
|
|
|
89
89
|
DOOR_HANDLE_STATE_WINDOW_DOOR_HANDLE_IS_OPEN = 24
|
|
90
90
|
DOOR_STATE_WINDOW_DOOR_IS_CLOSED = 23
|
|
91
91
|
DOOR_STATE_WINDOW_DOOR_IS_OPEN = 22
|
|
92
|
+
IDLE = 0
|
|
92
93
|
INVALID_CREDENTIAL_USED = 50
|
|
93
94
|
KEYPAD_LOCK_OPERATION = 5
|
|
94
95
|
KEYPAD_STATE_KEYPAD_BUSY = 17
|
|
@@ -212,6 +213,7 @@ class ApplianceNotificationEvent(NotificationEvent):
|
|
|
212
213
|
DRAINING_FAILURE = 15
|
|
213
214
|
DRYING_FAILURE = 19
|
|
214
215
|
FAN_FAILURE = 20
|
|
216
|
+
IDLE = 0
|
|
215
217
|
MAINTENANCE_STATUS_REPLACE_MAIN_FILTER = 4
|
|
216
218
|
PROGRAM_STATUS_PROGRAM_COMPLETED = 3
|
|
217
219
|
PROGRAM_STATUS_PROGRAM_IN_PROGRESS = 2
|
|
@@ -235,6 +237,7 @@ class ClockNotificationEvent(NotificationEvent):
|
|
|
235
237
|
|
|
236
238
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
237
239
|
UNKNOWN = -1
|
|
240
|
+
IDLE = 0
|
|
238
241
|
TIME_REMAINING = 3
|
|
239
242
|
TIMER_ENDED = 2
|
|
240
243
|
WAKE_UP_ALERT = 1
|
|
@@ -251,6 +254,7 @@ class CoAlarmNotificationEvent(NotificationEvent):
|
|
|
251
254
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
252
255
|
UNKNOWN = -1
|
|
253
256
|
ALARM_STATUS_ALARM_SILENCED = 6
|
|
257
|
+
IDLE = 0
|
|
254
258
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED = 4
|
|
255
259
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED_END_OF_LIFE = 5
|
|
256
260
|
PERIODIC_INSPECTION_STATUS_MAINTENANCE_REQUIRED_PLANNED_PERIODIC_INSPECTION = 7
|
|
@@ -286,6 +290,7 @@ class Co2AlarmNotificationEvent(NotificationEvent):
|
|
|
286
290
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
287
291
|
UNKNOWN = -1
|
|
288
292
|
ALARM_STATUS_ALARM_SILENCED = 6
|
|
293
|
+
IDLE = 0
|
|
289
294
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED = 4
|
|
290
295
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED_END_OF_LIFE = 5
|
|
291
296
|
PERIODIC_INSPECTION_STATUS_MAINTENANCE_REQUIRED_PLANNED_PERIODIC_INSPECTION = 7
|
|
@@ -325,6 +330,7 @@ class EmergencyAlarmNotificationEvent(NotificationEvent):
|
|
|
325
330
|
CONTACT_FIRE_SERVICE = 2
|
|
326
331
|
CONTACT_MEDICAL_SERVICE = 3
|
|
327
332
|
CONTACT_POLICE = 1
|
|
333
|
+
IDLE = 0
|
|
328
334
|
|
|
329
335
|
@classmethod
|
|
330
336
|
def _missing_(
|
|
@@ -342,6 +348,7 @@ class GasAlarmNotificationEvent(NotificationEvent):
|
|
|
342
348
|
ALARM_STATUS_GAS_ALARM_TEST = 5
|
|
343
349
|
COMBUSTIBLE_GAS_STATUS_COMBUSTIBLE_GAS_DETECTED = 2
|
|
344
350
|
COMBUSTIBLE_GAS_STATUS_COMBUSTIBLE_GAS_DETECTED_LOCATION_PROVIDED = 1
|
|
351
|
+
IDLE = 0
|
|
345
352
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED = 6
|
|
346
353
|
TOXIC_GAS_STATUS_TOXIC_GAS_DETECTED = 4
|
|
347
354
|
TOXIC_GAS_STATUS_TOXIC_GAS_DETECTED_LOCATION_PROVIDED = 3
|
|
@@ -366,6 +373,7 @@ class HeatAlarmNotificationEvent(NotificationEvent):
|
|
|
366
373
|
HEAT_SENSOR_STATUS_OVERHEAT_DETECTED_LOCATION_PROVIDED = 1
|
|
367
374
|
HEAT_SENSOR_STATUS_UNDERHEAT_DETECTED = 6
|
|
368
375
|
HEAT_SENSOR_STATUS_UNDERHEAT_DETECTED_LOCATION_PROVIDED = 5
|
|
376
|
+
IDLE = 0
|
|
369
377
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED_END_OF_LIFE = 8
|
|
370
378
|
PERIODIC_INSPECTION_STATUS_MAINTENANCE_REQUIRED_PLANNED_PERIODIC_INSPECTION = 11
|
|
371
379
|
RAPID_TEMPERATURE_FALL = 13
|
|
@@ -387,6 +395,7 @@ class HomeHealthNotificationEvent(NotificationEvent):
|
|
|
387
395
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
388
396
|
UNKNOWN = -1
|
|
389
397
|
FALL_DETECTED = 12
|
|
398
|
+
IDLE = 0
|
|
390
399
|
POSITION_STATUS_LEAVING_BED = 1
|
|
391
400
|
POSITION_STATUS_LYING_ON_BED = 3
|
|
392
401
|
POSITION_STATUS_SITTING_ON_BED = 2
|
|
@@ -452,6 +461,7 @@ class HomeMonitoringNotificationEvent(NotificationEvent):
|
|
|
452
461
|
UNKNOWN = -1
|
|
453
462
|
HOME_OCCUPANCY_STATUS_HOME_OCCUPIED = 2
|
|
454
463
|
HOME_OCCUPANCY_STATUS_HOME_OCCUPIED_LOCATION_PROVIDED = 1
|
|
464
|
+
IDLE = 0
|
|
455
465
|
|
|
456
466
|
@classmethod
|
|
457
467
|
def _missing_(
|
|
@@ -469,6 +479,7 @@ class HomeSecurityNotificationEvent(NotificationEvent):
|
|
|
469
479
|
COVER_STATUS_TAMPERING_PRODUCT_COVER_REMOVED = 3
|
|
470
480
|
GLASS_BREAKAGE = 6
|
|
471
481
|
GLASS_BREAKAGE_LOCATION_PROVIDED = 5
|
|
482
|
+
IDLE = 0
|
|
472
483
|
IMPACT_DETECTED = 10
|
|
473
484
|
MAGNETIC_INTERFERENCE_STATUS_MAGNETIC_FIELD_INTERFERENCE_DETECTED = 11
|
|
474
485
|
MOTION_SENSOR_STATUS_MOTION_DETECTION = 8
|
|
@@ -493,6 +504,7 @@ class IrrigationNotificationEvent(NotificationEvent):
|
|
|
493
504
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
494
505
|
UNKNOWN = -1
|
|
495
506
|
DEVICE_CONFIGURATION_STATUS_DEVICE_IS_NOT_CONFIGURED = 5
|
|
507
|
+
IDLE = 0
|
|
496
508
|
SCHEDULE_ID_STATUS_SCHEDULE_FINISHED = 2
|
|
497
509
|
SCHEDULE_ID_STATUS_SCHEDULE_STARTED = 1
|
|
498
510
|
VALVE_ID_RUN_STATUS_VALVE_TABLE_RUN_FINISHED = 4
|
|
@@ -511,6 +523,7 @@ class LightSensorNotificationEvent(NotificationEvent):
|
|
|
511
523
|
|
|
512
524
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
513
525
|
UNKNOWN = -1
|
|
526
|
+
IDLE = 0
|
|
514
527
|
LIGHT_COLOR_TRANSITION_DETECTED = 2
|
|
515
528
|
LIGHT_DETECTION_STATUS_LIGHT_DETECTED = 1
|
|
516
529
|
|
|
@@ -527,6 +540,7 @@ class PestControlNotificationEvent(NotificationEvent):
|
|
|
527
540
|
|
|
528
541
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
529
542
|
UNKNOWN = -1
|
|
543
|
+
IDLE = 0
|
|
530
544
|
PEST_DETECTED = 6
|
|
531
545
|
PEST_DETECTED_LOCATION_PROVIDED = 5
|
|
532
546
|
PEST_EXTERMINATED = 8
|
|
@@ -558,6 +572,7 @@ class PowerManagementNotificationEvent(NotificationEvent):
|
|
|
558
572
|
BATTERY_MAINTENANCE_STATUS_BATTERY_FLUID_IS_LOW = 17
|
|
559
573
|
BATTERY_MAINTENANCE_STATUS_REPLACE_BATTERY_NOW = 11
|
|
560
574
|
BATTERY_MAINTENANCE_STATUS_REPLACE_BATTERY_SOON = 10
|
|
575
|
+
IDLE = 0
|
|
561
576
|
LOAD_ERROR = 9
|
|
562
577
|
MAINS_STATUS_AC_MAINS_DISCONNECTED = 2
|
|
563
578
|
MAINS_STATUS_AC_MAINS_RE_CONNECTED = 3
|
|
@@ -581,6 +596,7 @@ class SirenNotificationEvent(NotificationEvent):
|
|
|
581
596
|
|
|
582
597
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
583
598
|
UNKNOWN = -1
|
|
599
|
+
IDLE = 0
|
|
584
600
|
SIREN_STATUS_SIREN_ACTIVE = 1
|
|
585
601
|
|
|
586
602
|
@classmethod
|
|
@@ -597,6 +613,7 @@ class SmokeAlarmNotificationEvent(NotificationEvent):
|
|
|
597
613
|
ALARM_STATUS_ALARM_SILENCED = 6
|
|
598
614
|
ALARM_STATUS_SMOKE_ALARM_TEST = 3
|
|
599
615
|
DUST_IN_DEVICE_STATUS_MAINTENANCE_REQUIRED_DUST_IN_DEVICE = 8
|
|
616
|
+
IDLE = 0
|
|
600
617
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED = 4
|
|
601
618
|
MAINTENANCE_STATUS_REPLACEMENT_REQUIRED_END_OF_LIFE = 5
|
|
602
619
|
PERIODIC_INSPECTION_STATUS_MAINTENANCE_REQUIRED_PLANNED_PERIODIC_INSPECTION = 7
|
|
@@ -621,6 +638,7 @@ class SystemNotificationEvent(NotificationEvent):
|
|
|
621
638
|
HARDWARE_STATUS_SYSTEM_HARDWARE_FAILURE = 1
|
|
622
639
|
HARDWARE_STATUS_SYSTEM_HARDWARE_FAILURE_WITH_FAILURE_CODE = 3
|
|
623
640
|
HEARTBEAT = 5
|
|
641
|
+
IDLE = 0
|
|
624
642
|
SOFTWARE_STATUS_SYSTEM_SOFTWARE_FAILURE = 2
|
|
625
643
|
SOFTWARE_STATUS_SYSTEM_SOFTWARE_FAILURE_WITH_FAILURE_CODE = 4
|
|
626
644
|
|
|
@@ -635,6 +653,7 @@ class WaterAlarmNotificationEvent(NotificationEvent):
|
|
|
635
653
|
|
|
636
654
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
637
655
|
UNKNOWN = -1
|
|
656
|
+
IDLE = 0
|
|
638
657
|
MAINTENANCE_STATUS_REPLACE_WATER_FILTER = 5
|
|
639
658
|
PUMP_STATUS_SUMP_PUMP_ACTIVE = 10
|
|
640
659
|
PUMP_STATUS_SUMP_PUMP_FAILURE = 11
|
|
@@ -741,6 +760,7 @@ class WaterQualityMonitoringNotificationEvent(NotificationEvent):
|
|
|
741
760
|
FILTER_PUMP_STATUS_FILTER_PUMP_OPERATION_ONGOING = 11
|
|
742
761
|
FRESHWATER_FLOW_STATUS_FRESHWATER_OPERATION_ONGOING = 12
|
|
743
762
|
HEATING_STATUS_HEATING_OPERATION_ONGOING = 10
|
|
763
|
+
IDLE = 0
|
|
744
764
|
WATER_OXIDATION_ALARM = 3
|
|
745
765
|
WATER_TANK_STATUS_WATER_TANK_IS_EMPTY = 14
|
|
746
766
|
WATER_TANK_STATUS_WATER_TANK_IS_FULL = 16
|
|
@@ -811,6 +831,7 @@ class WaterValveNotificationEvent(NotificationEvent):
|
|
|
811
831
|
|
|
812
832
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
813
833
|
UNKNOWN = -1
|
|
834
|
+
IDLE = 0
|
|
814
835
|
MASTER_VALVE_CURRENT_ALARM = 6
|
|
815
836
|
MASTER_VALVE_OPERATION = 2
|
|
816
837
|
MASTER_VALVE_SHORT_CIRCUIT = 4
|
|
@@ -901,6 +922,7 @@ class WeatherAlarmNotificationEvent(NotificationEvent):
|
|
|
901
922
|
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/registries/Notifications.ts
|
|
902
923
|
UNKNOWN = -1
|
|
903
924
|
FREEZE_ALARM = 3
|
|
925
|
+
IDLE = 0
|
|
904
926
|
MOISTURE_ALARM = 2
|
|
905
927
|
RAIN_ALARM = 1
|
|
906
928
|
|
|
@@ -25,6 +25,8 @@ from ..device_class import DeviceClass
|
|
|
25
25
|
from ..device_config import DeviceConfig
|
|
26
26
|
from ..endpoint import Endpoint, EndpointDataType
|
|
27
27
|
from ..notification import (
|
|
28
|
+
BatteryNotification,
|
|
29
|
+
BatteryNotificationDataType,
|
|
28
30
|
EntryControlNotification,
|
|
29
31
|
EntryControlNotificationDataType,
|
|
30
32
|
MultilevelSwitchNotification,
|
|
@@ -1105,22 +1107,26 @@ class Node(EventBase):
|
|
|
1105
1107
|
def handle_notification(self, event: Event) -> None:
|
|
1106
1108
|
"""Process a node notification event."""
|
|
1107
1109
|
match command_class := CommandClass(event.data["ccId"]):
|
|
1108
|
-
case CommandClass.
|
|
1109
|
-
event.data["notification"] =
|
|
1110
|
-
self, cast(
|
|
1111
|
-
)
|
|
1112
|
-
case CommandClass.SWITCH_MULTILEVEL:
|
|
1113
|
-
event.data["notification"] = MultilevelSwitchNotification(
|
|
1114
|
-
self, cast(MultilevelSwitchNotificationDataType, event.data)
|
|
1110
|
+
case CommandClass.BATTERY:
|
|
1111
|
+
event.data["notification"] = BatteryNotification(
|
|
1112
|
+
self, cast(BatteryNotificationDataType, event.data)
|
|
1115
1113
|
)
|
|
1116
1114
|
case CommandClass.ENTRY_CONTROL:
|
|
1117
1115
|
event.data["notification"] = EntryControlNotification(
|
|
1118
1116
|
self, cast(EntryControlNotificationDataType, event.data)
|
|
1119
1117
|
)
|
|
1118
|
+
case CommandClass.NOTIFICATION:
|
|
1119
|
+
event.data["notification"] = NotificationNotification(
|
|
1120
|
+
self, cast(NotificationNotificationDataType, event.data)
|
|
1121
|
+
)
|
|
1120
1122
|
case CommandClass.POWERLEVEL:
|
|
1121
1123
|
event.data["notification"] = PowerLevelNotification(
|
|
1122
1124
|
self, cast(PowerLevelNotificationDataType, event.data)
|
|
1123
1125
|
)
|
|
1126
|
+
case CommandClass.SWITCH_MULTILEVEL:
|
|
1127
|
+
event.data["notification"] = MultilevelSwitchNotification(
|
|
1128
|
+
self, cast(MultilevelSwitchNotificationDataType, event.data)
|
|
1129
|
+
)
|
|
1124
1130
|
case _:
|
|
1125
1131
|
_LOGGER.info(
|
|
1126
1132
|
"Unhandled notification command class: %s", command_class.name
|
|
@@ -9,6 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
from dataclasses import dataclass, field
|
|
10
10
|
from typing import TYPE_CHECKING, Any, Literal, TypedDict
|
|
11
11
|
|
|
12
|
+
from ..const.command_class.battery import BatteryReplacementStatus
|
|
12
13
|
from ..const.command_class.multilevel_switch import MultilevelSwitchCommand
|
|
13
14
|
from ..const.command_class.power_level import PowerLevelTestStatus
|
|
14
15
|
from ..util.helpers import parse_buffer
|
|
@@ -44,6 +45,34 @@ class BaseNotification:
|
|
|
44
45
|
self.command_class = self.data["ccId"]
|
|
45
46
|
|
|
46
47
|
|
|
48
|
+
class BatteryNotificationArgsDataType(TypedDict):
|
|
49
|
+
"""Represent args for a Battery CC notification event data dict type."""
|
|
50
|
+
|
|
51
|
+
eventType: Literal["battery low"] # required
|
|
52
|
+
urgency: int # required
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class BatteryNotificationDataType(BaseNotificationDataType):
|
|
56
|
+
"""Represent a Battery CC notification event data dict type."""
|
|
57
|
+
|
|
58
|
+
args: BatteryNotificationArgsDataType # required
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@dataclass
|
|
62
|
+
class BatteryNotification(BaseNotification):
|
|
63
|
+
"""Model for a Zwave Node's Battery CC notification event."""
|
|
64
|
+
|
|
65
|
+
data: BatteryNotificationDataType = field(repr=False)
|
|
66
|
+
event_type: str = field(init=False)
|
|
67
|
+
urgency: BatteryReplacementStatus = field(init=False)
|
|
68
|
+
|
|
69
|
+
def __post_init__(self) -> None:
|
|
70
|
+
"""Post initialize."""
|
|
71
|
+
super().__post_init__()
|
|
72
|
+
self.event_type = self.data["args"]["eventType"]
|
|
73
|
+
self.urgency = BatteryReplacementStatus(self.data["args"]["urgency"])
|
|
74
|
+
|
|
75
|
+
|
|
47
76
|
class EntryControlNotificationArgsDataType(TypedDict, total=False):
|
|
48
77
|
"""Represent args for a Entry Control CC notification event data dict type."""
|
|
49
78
|
|
|
@@ -15,6 +15,7 @@ zwave_js_server/const/__init__.py
|
|
|
15
15
|
zwave_js_server/const/command_class/__init__.py
|
|
16
16
|
zwave_js_server/const/command_class/barrier_operator.py
|
|
17
17
|
zwave_js_server/const/command_class/basic.py
|
|
18
|
+
zwave_js_server/const/command_class/battery.py
|
|
18
19
|
zwave_js_server/const/command_class/central_scene.py
|
|
19
20
|
zwave_js_server/const/command_class/color_switch.py
|
|
20
21
|
zwave_js_server/const/command_class/energy_production.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/__init__.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/association.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/duration.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/endpoint.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/firmware.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/log_config.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/log_message.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/statistics.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/utils.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/value.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/model/version.py
RENAMED
|
File without changes
|
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/helpers.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/lock.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/multicast.py
RENAMED
|
File without changes
|
{zwave_js_server_python-0.68.0 → zwave_js_server_python-0.69.0}/zwave_js_server/util/node.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|