zwave-js-server-python 0.29.0__tar.gz → 0.30.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.29.0 → zwave-js-server-python-0.30.0}/PKG-INFO +1 -1
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/setup.py +1 -1
- zwave-js-server-python-0.30.0/zwave_js_server/const/__init__.py +217 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/__init__.py +1 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/barrier_operator.py +21 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/color_switch.py +32 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/entry_control.py +44 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/lock.py +52 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/meter.py +102 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/multilevel_sensor.py +716 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/multilevel_switch.py +8 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/sound_switch.py +10 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/thermostat.py +109 -0
- zwave-js-server-python-0.30.0/zwave_js_server/const/command_class/wake_up.py +3 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/exceptions.py +5 -3
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/controller.py +4 -4
- zwave-js-server-python-0.30.0/zwave_js_server/util/command_class/__init__.py +1 -0
- zwave-js-server-python-0.29.0/zwave_js_server/util/command_class.py → zwave-js-server-python-0.30.0/zwave_js_server/util/command_class/meter.py +5 -19
- zwave-js-server-python-0.30.0/zwave_js_server/util/command_class/multilevel_sensor.py +35 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/util/lock.py +2 -2
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/PKG-INFO +1 -1
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/SOURCES.txt +15 -2
- zwave-js-server-python-0.29.0/zwave_js_server/const.py +0 -701
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/LICENSE +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/README.md +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/setup.cfg +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/test/test_client.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/test/test_dump.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/test/test_event.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/test/test_firmware.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/test/test_main.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/test/test_version.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/__init__.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/__main__.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/client.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/dump.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/event.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/firmware.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/__init__.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/association.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/command_class.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/device_class.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/device_config.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/driver.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/endpoint.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/firmware.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/log_config.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/log_message.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/node.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/notification.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/value.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/model/version.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/util/__init__.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/util/helpers.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/util/multicast.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/util/node.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server/version.py +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/dependency_links.txt +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/entry_points.txt +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/not-zip-safe +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/requires.txt +0 -0
- {zwave-js-server-python-0.29.0 → zwave-js-server-python-0.30.0}/zwave_js_server_python.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"""Constants for the Z-Wave JS python library."""
|
|
2
|
+
from enum import Enum, IntEnum
|
|
3
|
+
|
|
4
|
+
# minimal server schema version we can handle
|
|
5
|
+
MIN_SERVER_SCHEMA_VERSION = 8
|
|
6
|
+
# max server schema version we can handle (and our code is compatible with)
|
|
7
|
+
MAX_SERVER_SCHEMA_VERSION = 8
|
|
8
|
+
|
|
9
|
+
VALUE_UNKNOWN = "unknown"
|
|
10
|
+
|
|
11
|
+
INTERVIEW_FAILED = "Failed"
|
|
12
|
+
|
|
13
|
+
TARGET_STATE_PROPERTY = "targetState"
|
|
14
|
+
TARGET_VALUE_PROPERTY = "targetValue"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CommandStatus(str, Enum):
|
|
18
|
+
"""Status of a command sent to zwave-js-server."""
|
|
19
|
+
|
|
20
|
+
ACCEPTED = "accepted"
|
|
21
|
+
QUEUED = "queued"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# Multiple inheritance so that LogLevel will JSON serialize properly
|
|
25
|
+
# Reference: https://stackoverflow.com/a/51976841
|
|
26
|
+
class LogLevel(str, Enum):
|
|
27
|
+
"""Enum for log levels used by node-zwave-js."""
|
|
28
|
+
|
|
29
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/log/shared.ts#L12
|
|
30
|
+
# https://github.com/winstonjs/triple-beam/blame/master/config/npm.js#L14
|
|
31
|
+
ERROR = "error"
|
|
32
|
+
WARN = "warn"
|
|
33
|
+
INFO = "info"
|
|
34
|
+
HTTP = "http"
|
|
35
|
+
VERBOSE = "verbose"
|
|
36
|
+
DEBUG = "debug"
|
|
37
|
+
SILLY = "silly"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class CommandClass(IntEnum):
|
|
41
|
+
"""Enum with all known CommandClasses."""
|
|
42
|
+
|
|
43
|
+
SENSOR_ALARM = 156
|
|
44
|
+
SILENCE_ALARM = 157
|
|
45
|
+
SWITCH_ALL = 39
|
|
46
|
+
ANTITHEFT = 93
|
|
47
|
+
ANTITHEFT_UNLOCK = 126
|
|
48
|
+
APPLICATION_CAPABILITY = 87
|
|
49
|
+
APPLICATION_STATUS = 34
|
|
50
|
+
ASSOCIATION = 133
|
|
51
|
+
ASSOCIATION_COMMAND_CONFIGURATION = 155
|
|
52
|
+
ASSOCIATION_GRP_INFO = 89
|
|
53
|
+
AUTHENTICATION = 161
|
|
54
|
+
AUTHENTICATION_MEDIA_WRITE = 162
|
|
55
|
+
BARRIER_OPERATOR = 102
|
|
56
|
+
BASIC = 32
|
|
57
|
+
BASIC_TARIFF_INFO = 54
|
|
58
|
+
BASIC_WINDOW_COVERING = 80
|
|
59
|
+
BATTERY = 128
|
|
60
|
+
SENSOR_BINARY = 48
|
|
61
|
+
SWITCH_BINARY = 37
|
|
62
|
+
SWITCH_TOGGLE_BINARY = 40
|
|
63
|
+
CLIMATE_CONTROL_SCHEDULE = 70
|
|
64
|
+
CENTRAL_SCENE = 91
|
|
65
|
+
CLOCK = 129
|
|
66
|
+
SWITCH_COLOR = 51
|
|
67
|
+
CONFIGURATION = 112
|
|
68
|
+
CONTROLLER_REPLICATION = 33
|
|
69
|
+
CRC_16_ENCAP = 86
|
|
70
|
+
DCP_CONFIG = 58
|
|
71
|
+
DCP_MONITOR = 59
|
|
72
|
+
DEVICE_RESET_LOCALLY = 90
|
|
73
|
+
DOOR_LOCK = 98
|
|
74
|
+
DOOR_LOCK_LOGGING = 76
|
|
75
|
+
ENERGY_PRODUCTION = 144
|
|
76
|
+
ENTRY_CONTROL = 111
|
|
77
|
+
FIRMWARE_UPDATE_MD = 122
|
|
78
|
+
GENERIC_SCHEDULE = 163
|
|
79
|
+
GEOGRAPHIC_LOCATION = 140
|
|
80
|
+
GROUPING_NAME = 123
|
|
81
|
+
HAIL = 130
|
|
82
|
+
HRV_STATUS = 55
|
|
83
|
+
HRV_CONTROL = 57
|
|
84
|
+
HUMIDITY_CONTROL_MODE = 109
|
|
85
|
+
HUMIDITY_CONTROL_OPERATING_STATE = 110
|
|
86
|
+
HUMIDITY_CONTROL_SETPOINT = 100
|
|
87
|
+
INCLUSION_CONTROLLER = 116
|
|
88
|
+
INDICATOR = 135
|
|
89
|
+
IP_ASSOCIATION = 92
|
|
90
|
+
IP_CONFIGURATION = 154
|
|
91
|
+
IR_REPEATER = 160
|
|
92
|
+
IRRIGATION = 107
|
|
93
|
+
LANGUAGE = 137
|
|
94
|
+
LOCK = 118
|
|
95
|
+
MAILBOX = 105
|
|
96
|
+
MANUFACTURER_PROPRIETARY = 145
|
|
97
|
+
MANUFACTURER_SPECIFIC = 114
|
|
98
|
+
MARK = 239
|
|
99
|
+
METER = 50
|
|
100
|
+
METER_TBL_CONFIG = 60
|
|
101
|
+
METER_TBL_MONITOR = 61
|
|
102
|
+
METER_TBL_PUSH = 62
|
|
103
|
+
MTP_WINDOW_COVERING = 81
|
|
104
|
+
MULTI_CHANNEL = 96
|
|
105
|
+
MULTI_CHANNEL_ASSOCIATION = 142
|
|
106
|
+
MULTI_CMD = 143
|
|
107
|
+
SENSOR_MULTILEVEL = 49
|
|
108
|
+
SWITCH_MULTILEVEL = 38
|
|
109
|
+
SWITCH_TOGGLE_MULTILEVEL = 41
|
|
110
|
+
NETWORK_MANAGEMENT_BASIC = 77
|
|
111
|
+
NETWORK_MANAGEMENT_INCLUSION = 52
|
|
112
|
+
NETWORK_MANAGEMENT_INSTALLATION_MAINTENANCE = 103
|
|
113
|
+
NETWORK_MANAGEMENT_PRIMARY = 84
|
|
114
|
+
NETWORK_MANAGEMENT_PROXY = 82
|
|
115
|
+
NO_OPERATION = 0
|
|
116
|
+
NODE_NAMING = 119
|
|
117
|
+
NODE_PROVISIONING = 120
|
|
118
|
+
NOTIFICATION = 113
|
|
119
|
+
POWERLEVEL = 115
|
|
120
|
+
PREPAYMENT = 63
|
|
121
|
+
PREPAYMENT_ENCAPSULATION = 65
|
|
122
|
+
PROPRIETARY = 136
|
|
123
|
+
PROTECTION = 117
|
|
124
|
+
METER_PULSE = 53
|
|
125
|
+
RATE_TBL_CONFIG = 72
|
|
126
|
+
RATE_TBL_MONITOR = 73
|
|
127
|
+
REMOTE_ASSOCIATION_ACTIVATE = 124
|
|
128
|
+
REMOTE_ASSOCIATION = 125
|
|
129
|
+
SCENE_ACTIVATION = 43
|
|
130
|
+
SCENE_ACTUATOR_CONF = 44
|
|
131
|
+
SCENE_CONTROLLER_CONF = 45
|
|
132
|
+
SCHEDULE = 83
|
|
133
|
+
SCHEDULE_ENTRY_LOCK = 78
|
|
134
|
+
SCREEN_ATTRIBUTES = 147
|
|
135
|
+
SCREEN_MD = 146
|
|
136
|
+
SECURITY = 152
|
|
137
|
+
SECURITY_2 = 159
|
|
138
|
+
SECURITY_SCHEME0_MARK = 61696
|
|
139
|
+
SENSOR_CONFIGURATION = 158
|
|
140
|
+
SIMPLE_AV_CONTROL = 148
|
|
141
|
+
SOUND_SWITCH = 121
|
|
142
|
+
SUPERVISION = 108
|
|
143
|
+
TARIFF_CONFIG = 74
|
|
144
|
+
TARIFF_TBL_MONITOR = 75
|
|
145
|
+
THERMOSTAT_FAN_MODE = 68
|
|
146
|
+
THERMOSTAT_FAN_STATE = 69
|
|
147
|
+
THERMOSTAT_MODE = 64
|
|
148
|
+
THERMOSTAT_OPERATING_STATE = 66
|
|
149
|
+
THERMOSTAT_SETBACK = 71
|
|
150
|
+
THERMOSTAT_SETPOINT = 67
|
|
151
|
+
TIME = 138
|
|
152
|
+
TIME_PARAMETERS = 139
|
|
153
|
+
TRANSPORT_SERVICE = 85
|
|
154
|
+
USER_CODE = 99
|
|
155
|
+
VERSION = 134
|
|
156
|
+
WAKE_UP = 132
|
|
157
|
+
WINDOW_COVERING = 106
|
|
158
|
+
ZIP = 35
|
|
159
|
+
ZIP_6LOWPAN = 79
|
|
160
|
+
ZIP_GATEWAY = 95
|
|
161
|
+
ZIP_NAMING = 104
|
|
162
|
+
ZIP_ND = 88
|
|
163
|
+
ZIP_PORTAL = 97
|
|
164
|
+
ZWAVEPLUS_INFO = 94
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class ProtocolVersion(IntEnum):
|
|
168
|
+
"""Protocol version."""
|
|
169
|
+
|
|
170
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/node/Types.ts#L149
|
|
171
|
+
UNKNOWN = 0
|
|
172
|
+
VERSION_2_0 = 1
|
|
173
|
+
VERSION_4_2X_OR_5_0X = 2
|
|
174
|
+
VERSION_4_5X_OR_6_0X = 3
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class NodeStatus(IntEnum):
|
|
178
|
+
"""Enum with all Node status values."""
|
|
179
|
+
|
|
180
|
+
# https://zwave-js.github.io/node-zwave-js/#/api/node?id=status
|
|
181
|
+
UNKNOWN = 0
|
|
182
|
+
ASLEEP = 1
|
|
183
|
+
AWAKE = 2
|
|
184
|
+
DEAD = 3
|
|
185
|
+
ALIVE = 4
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class ConfigurationValueType(str, Enum):
|
|
189
|
+
"""Enum for configuration value types."""
|
|
190
|
+
|
|
191
|
+
ENUMERATED = "enumerated"
|
|
192
|
+
MANUAL_ENTRY = "manual_entry"
|
|
193
|
+
RANGE = "range"
|
|
194
|
+
UNDEFINED = "undefined"
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
# Inclusion enums
|
|
198
|
+
class InclusionStrategy(IntEnum):
|
|
199
|
+
"""Enum for all known inclusion strategies."""
|
|
200
|
+
|
|
201
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/controller/Inclusion.ts#L9-L46
|
|
202
|
+
DEFAULT = 0
|
|
203
|
+
SMART_START = 1
|
|
204
|
+
INSECURE = 2
|
|
205
|
+
SECURITY_S0 = 3
|
|
206
|
+
SECURITY_S2 = 4
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class SecurityClass(IntEnum):
|
|
210
|
+
"""Enum for all known security classes."""
|
|
211
|
+
|
|
212
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/core/src/security/SecurityClass.ts#L3-L17
|
|
213
|
+
NONE = -1
|
|
214
|
+
S2_UNAUTHENTICATED = 0
|
|
215
|
+
S2_AUTHENTICATED = 1
|
|
216
|
+
S2_ACCESS_CONTROL = 2
|
|
217
|
+
S0_LEGACY = 7
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Constants for Command Classes."""
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Constants for the Barrier Operator CC."""
|
|
2
|
+
from enum import IntEnum
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class BarrierEventSignalingSubsystemState(IntEnum):
|
|
6
|
+
"""Enum with all (known/used) Z-Wave Barrier Event Signaling Subsystem States."""
|
|
7
|
+
|
|
8
|
+
# https://github.com/zwave-js/node-zwave-js/blob/15e1b59f627bfad8bfae114bd774a14089c76683/packages/zwave-js/src/lib/commandclass/BarrierOperatorCC.ts#L46-L49
|
|
9
|
+
OFF = 0
|
|
10
|
+
ON = 255
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class BarrierState(IntEnum):
|
|
14
|
+
"""Enum with all (known/used) Z-Wave Barrier States."""
|
|
15
|
+
|
|
16
|
+
# https://github.com/zwave-js/node-zwave-js/blob/15e1b59f627bfad8bfae114bd774a14089c76683/packages/zwave-js/src/lib/commandclass/BarrierOperatorCC.ts#L107-L113
|
|
17
|
+
CLOSED = 0
|
|
18
|
+
CLOSING = 252
|
|
19
|
+
STOPPED = 253
|
|
20
|
+
OPENING = 254
|
|
21
|
+
OPEN = 255
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Constants for the Color Switch CC."""
|
|
2
|
+
from enum import IntEnum
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ColorComponent(IntEnum):
|
|
6
|
+
"""Enum with all (known/used) Color Switch CC colors."""
|
|
7
|
+
|
|
8
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/ColorSwitchCC.ts#L62
|
|
9
|
+
WARM_WHITE = 0
|
|
10
|
+
COLD_WHITE = 1
|
|
11
|
+
RED = 2
|
|
12
|
+
GREEN = 3
|
|
13
|
+
BLUE = 4
|
|
14
|
+
AMBER = 5
|
|
15
|
+
CYAN = 6
|
|
16
|
+
PURPLE = 7
|
|
17
|
+
INDEX = 8
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# Keys for the Color Switch CC combined colors value
|
|
21
|
+
# https://github.com/zwave-js/node-zwave-js/pull/1782
|
|
22
|
+
COLOR_SWITCH_COMBINED_RED = "red"
|
|
23
|
+
COLOR_SWITCH_COMBINED_GREEN = "green"
|
|
24
|
+
COLOR_SWITCH_COMBINED_BLUE = "blue"
|
|
25
|
+
COLOR_SWITCH_COMBINED_AMBER = "amber"
|
|
26
|
+
COLOR_SWITCH_COMBINED_CYAN = "cyan"
|
|
27
|
+
COLOR_SWITCH_COMBINED_PURPLE = "purple"
|
|
28
|
+
COLOR_SWITCH_COMBINED_WARM_WHITE = "warmWhite"
|
|
29
|
+
COLOR_SWITCH_COMBINED_COLD_WHITE = "coldWhite"
|
|
30
|
+
|
|
31
|
+
CURRENT_COLOR_PROPERTY = "currentColor"
|
|
32
|
+
TARGET_COLOR_PROPERTY = "targetColor"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Constants for the Entry Control CC."""
|
|
2
|
+
from enum import IntEnum
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class EntryControlEventType(IntEnum):
|
|
6
|
+
"""Entry control event types."""
|
|
7
|
+
|
|
8
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/EntryControlCC.ts#L54
|
|
9
|
+
CACHING = 0
|
|
10
|
+
CACHED_KEYS = 1
|
|
11
|
+
ENTER = 2
|
|
12
|
+
DISARM_ALL = 3
|
|
13
|
+
ARM_ALL = 4
|
|
14
|
+
ARM_AWAY = 5
|
|
15
|
+
ARM_HOME = 6
|
|
16
|
+
EXIT_DELAY = 7
|
|
17
|
+
ARM1 = 8
|
|
18
|
+
ARM2 = 9
|
|
19
|
+
ARM3 = 10
|
|
20
|
+
ARM4 = 11
|
|
21
|
+
ARM5 = 12
|
|
22
|
+
ARM6 = 13
|
|
23
|
+
RFID = 14
|
|
24
|
+
BELL = 15
|
|
25
|
+
FIRE = 16
|
|
26
|
+
POLICE = 17
|
|
27
|
+
ALERT_PANIC = 18
|
|
28
|
+
ALERT_MEDICAL = 19
|
|
29
|
+
GATE_OPEN = 20
|
|
30
|
+
GATE_CLOSE = 21
|
|
31
|
+
LOCK = 22
|
|
32
|
+
UNLOCK = 23
|
|
33
|
+
TEST = 24
|
|
34
|
+
CANCEL = 25
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class EntryControlDataType(IntEnum):
|
|
38
|
+
"""Entry control data types."""
|
|
39
|
+
|
|
40
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/EntryControlCC.ts#L83
|
|
41
|
+
NONE = 0
|
|
42
|
+
RAW = 1
|
|
43
|
+
ASCII = 2
|
|
44
|
+
MD5 = 3
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Constants for lock related CCs.
|
|
3
|
+
|
|
4
|
+
Includes Door Lock and Lock CCs.
|
|
5
|
+
"""
|
|
6
|
+
from enum import IntEnum
|
|
7
|
+
|
|
8
|
+
from .. import CommandClass
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DoorLockMode(IntEnum):
|
|
12
|
+
"""Enum with all (known/used) Z-Wave lock states for CommandClass.DOOR_LOCK."""
|
|
13
|
+
|
|
14
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/DoorLockCC.ts#L56-L65
|
|
15
|
+
UNSECURED = 0
|
|
16
|
+
UNSECURED_WITH_TIMEOUT = 1
|
|
17
|
+
INSIDE_UNSECURED = 2
|
|
18
|
+
INSIDE_UNSECURED_WITH_TIMEOUT = 3
|
|
19
|
+
OUTSIDE_UNSECURED = 4
|
|
20
|
+
OUTSIDE_UNSECURED_WITH_TIMEOUT = 5
|
|
21
|
+
UNKNOWN = 254
|
|
22
|
+
SECURED = 255
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class CodeSlotStatus(IntEnum):
|
|
26
|
+
"""Enum with all (known/used) Z-Wave code slot statuses."""
|
|
27
|
+
|
|
28
|
+
AVAILABLE = 0
|
|
29
|
+
ENABLED = 1
|
|
30
|
+
DISABLED = 2
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# Depending on the Command Class being used by the lock, the lock state is
|
|
34
|
+
# different so we need a map to track it
|
|
35
|
+
LOCK_CMD_CLASS_TO_LOCKED_STATE_MAP = {
|
|
36
|
+
CommandClass.DOOR_LOCK: DoorLockMode.SECURED,
|
|
37
|
+
CommandClass.LOCK: 1,
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# Depending on the Command Class being used by the lock, the locked state property
|
|
41
|
+
# is different so we need a map to track it
|
|
42
|
+
LOCK_CMD_CLASS_TO_PROPERTY_MAP = {
|
|
43
|
+
CommandClass.DOOR_LOCK: "targetMode",
|
|
44
|
+
CommandClass.LOCK: "locked",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
LOCK_USERCODE_PROPERTY = "userCode"
|
|
48
|
+
LOCK_USERCODE_STATUS_PROPERTY = "userIdStatus"
|
|
49
|
+
ATTR_CODE_SLOT = "code_slot"
|
|
50
|
+
ATTR_IN_USE = "in_use"
|
|
51
|
+
ATTR_NAME = "name"
|
|
52
|
+
ATTR_USERCODE = "usercode"
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""Constants for Meter CC."""
|
|
2
|
+
from enum import IntEnum
|
|
3
|
+
from typing import Dict, Set, Type, Union
|
|
4
|
+
|
|
5
|
+
CC_SPECIFIC_SCALE = "scale"
|
|
6
|
+
CC_SPECIFIC_METER_TYPE = "meterType"
|
|
7
|
+
CC_SPECIFIC_RATE_TYPE = "rateType"
|
|
8
|
+
|
|
9
|
+
RESET_METER_CC_API = "reset"
|
|
10
|
+
|
|
11
|
+
# optional attributes when calling the Meter CC reset API.
|
|
12
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/zwave-js/src/lib/commandclass/MeterCC.ts#L873-L881
|
|
13
|
+
RESET_METER_OPTION_TARGET_VALUE = "targetValue"
|
|
14
|
+
RESET_METER_OPTION_TYPE = "type"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/config/config/meters.json
|
|
18
|
+
class MeterType(IntEnum):
|
|
19
|
+
"""Enum with all known meter types."""
|
|
20
|
+
|
|
21
|
+
ELECTRIC = 1
|
|
22
|
+
GAS = 2
|
|
23
|
+
WATER = 3
|
|
24
|
+
HEATING = 4
|
|
25
|
+
COOLING = 5
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ElectricScale(IntEnum):
|
|
29
|
+
"""Enum with all known electric meter scale values."""
|
|
30
|
+
|
|
31
|
+
KILOWATT_HOUR = 0
|
|
32
|
+
KILOVOLT_AMPERE_HOUR = 1
|
|
33
|
+
WATT = 2
|
|
34
|
+
PULSE_COUNT = 3
|
|
35
|
+
VOLT = 4
|
|
36
|
+
AMPERE = 5
|
|
37
|
+
POWER_FACTOR = 6
|
|
38
|
+
KILOVOLT_AMPERE_REACTIVE = 7
|
|
39
|
+
KILOVOLT_AMPERE_REACTIVE_HOUR = 8
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class GasScale(IntEnum):
|
|
43
|
+
"""Enum with all known gas meter scale values."""
|
|
44
|
+
|
|
45
|
+
CUBIC_METER = 0
|
|
46
|
+
CUBIC_FEET = 1
|
|
47
|
+
PULSE_COUNT = 3
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class WaterScale(IntEnum):
|
|
51
|
+
"""Enum with all known water meter scale values."""
|
|
52
|
+
|
|
53
|
+
CUBIC_METER = 0
|
|
54
|
+
CUBIC_FEET = 1
|
|
55
|
+
US_GALLON = 2
|
|
56
|
+
PULSE_COUNT = 3
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class HeatingScale(IntEnum):
|
|
60
|
+
"""Enum with all known heating meter scale values."""
|
|
61
|
+
|
|
62
|
+
KILOWATT_HOUR = 0
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
CoolingScale = HeatingScale
|
|
66
|
+
|
|
67
|
+
MeterScaleType = Union[CoolingScale, ElectricScale, GasScale, HeatingScale, WaterScale]
|
|
68
|
+
|
|
69
|
+
METER_TYPE_TO_SCALE_ENUM_MAP: Dict[MeterType, Type[MeterScaleType]] = {
|
|
70
|
+
MeterType.ELECTRIC: ElectricScale,
|
|
71
|
+
MeterType.GAS: GasScale,
|
|
72
|
+
MeterType.WATER: WaterScale,
|
|
73
|
+
MeterType.HEATING: HeatingScale,
|
|
74
|
+
MeterType.COOLING: CoolingScale,
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
ENERGY_TOTAL_INCREASING_METER_TYPES: Set[MeterScaleType] = {
|
|
78
|
+
ElectricScale.KILOWATT_HOUR,
|
|
79
|
+
ElectricScale.KILOVOLT_AMPERE_HOUR,
|
|
80
|
+
ElectricScale.KILOVOLT_AMPERE_REACTIVE_HOUR,
|
|
81
|
+
HeatingScale.KILOWATT_HOUR,
|
|
82
|
+
CoolingScale.KILOWATT_HOUR,
|
|
83
|
+
ElectricScale.PULSE_COUNT,
|
|
84
|
+
}
|
|
85
|
+
POWER_METER_TYPES: Set[MeterScaleType] = {
|
|
86
|
+
ElectricScale.WATT,
|
|
87
|
+
ElectricScale.KILOVOLT_AMPERE_REACTIVE,
|
|
88
|
+
}
|
|
89
|
+
POWER_FACTOR_METER_TYPES: Set[MeterScaleType] = {ElectricScale.POWER_FACTOR}
|
|
90
|
+
VOLTAGE_METER_TYPES: Set[MeterScaleType] = {ElectricScale.VOLT}
|
|
91
|
+
CURRENT_METER_TYPES: Set[MeterScaleType] = {ElectricScale.AMPERE}
|
|
92
|
+
GAS_METER_TYPES: Set[MeterScaleType] = {
|
|
93
|
+
GasScale.CUBIC_METER,
|
|
94
|
+
GasScale.CUBIC_FEET,
|
|
95
|
+
GasScale.PULSE_COUNT,
|
|
96
|
+
}
|
|
97
|
+
WATER_METER_TYPES: Set[MeterScaleType] = {
|
|
98
|
+
WaterScale.CUBIC_METER,
|
|
99
|
+
WaterScale.CUBIC_FEET,
|
|
100
|
+
WaterScale.US_GALLON,
|
|
101
|
+
WaterScale.PULSE_COUNT,
|
|
102
|
+
}
|