zwave-js-server-python 0.70.0__tar.gz → 0.71.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.
Files changed (84) hide show
  1. {zwave_js_server_python-0.70.0/zwave_js_server_python.egg-info → zwave_js_server_python-0.71.0}/PKG-INFO +13 -1
  2. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/README.md +12 -0
  3. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/__init__.py +2 -2
  4. zwave_js_server_python-0.71.0/zwave_js_server/const/command_class/access_control.py +87 -0
  5. zwave_js_server_python-0.71.0/zwave_js_server/model/access_control.py +885 -0
  6. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/endpoint.py +6 -0
  7. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/node/__init__.py +65 -0
  8. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/node/event_model.py +91 -1
  9. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/value.py +9 -0
  10. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/helpers.py +29 -2
  11. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0/zwave_js_server_python.egg-info}/PKG-INFO +13 -1
  12. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server_python.egg-info/SOURCES.txt +2 -0
  13. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/LICENSE +0 -0
  14. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/MANIFEST.in +0 -0
  15. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/pyproject.toml +0 -0
  16. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/setup.cfg +0 -0
  17. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/__init__.py +0 -0
  18. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/__main__.py +0 -0
  19. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/client.py +0 -0
  20. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/__init__.py +0 -0
  21. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/barrier_operator.py +0 -0
  22. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/basic.py +0 -0
  23. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/battery.py +0 -0
  24. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/central_scene.py +0 -0
  25. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/color_switch.py +0 -0
  26. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/energy_production.py +0 -0
  27. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/entry_control.py +0 -0
  28. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/humidity_control.py +0 -0
  29. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/lock.py +0 -0
  30. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/meter.py +0 -0
  31. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/multilevel_sensor.py +0 -0
  32. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/multilevel_switch.py +0 -0
  33. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/notification.py +0 -0
  34. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/power_level.py +0 -0
  35. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/protection.py +0 -0
  36. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/scene_activation.py +0 -0
  37. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/sound_switch.py +0 -0
  38. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/thermostat.py +0 -0
  39. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/wake_up.py +0 -0
  40. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/const/command_class/window_covering.py +0 -0
  41. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/dump.py +0 -0
  42. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/event.py +0 -0
  43. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/exceptions.py +0 -0
  44. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/firmware.py +0 -0
  45. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/__init__.py +0 -0
  46. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/association.py +0 -0
  47. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/command_class.py +0 -0
  48. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/config_manager/__init__.py +0 -0
  49. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/controller/__init__.py +0 -0
  50. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/controller/data_model.py +0 -0
  51. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/controller/event_model.py +0 -0
  52. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/controller/inclusion_and_provisioning.py +0 -0
  53. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/controller/rebuild_routes.py +0 -0
  54. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/controller/statistics.py +0 -0
  55. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/device_class.py +0 -0
  56. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/device_config.py +0 -0
  57. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/driver/__init__.py +0 -0
  58. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/driver/firmware.py +0 -0
  59. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/duration.py +0 -0
  60. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/firmware.py +0 -0
  61. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/log_config.py +0 -0
  62. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/log_message.py +0 -0
  63. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/node/data_model.py +0 -0
  64. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/node/firmware.py +0 -0
  65. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/node/health_check.py +0 -0
  66. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/node/statistics.py +0 -0
  67. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/notification.py +0 -0
  68. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/statistics.py +0 -0
  69. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/utils.py +0 -0
  70. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/model/version.py +0 -0
  71. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/py.typed +0 -0
  72. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/__init__.py +0 -0
  73. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/command_class/__init__.py +0 -0
  74. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/command_class/energy_production.py +0 -0
  75. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/command_class/meter.py +0 -0
  76. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/command_class/multilevel_sensor.py +0 -0
  77. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/lock.py +0 -0
  78. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/multicast.py +0 -0
  79. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/util/node.py +0 -0
  80. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server/version.py +0 -0
  81. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server_python.egg-info/dependency_links.txt +0 -0
  82. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server_python.egg-info/entry_points.txt +0 -0
  83. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server_python.egg-info/requires.txt +0 -0
  84. {zwave_js_server_python-0.70.0 → zwave_js_server_python-0.71.0}/zwave_js_server_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zwave-js-server-python
3
- Version: 0.70.0
3
+ Version: 0.71.0
4
4
  Summary: Python wrapper for zwave-js-server
5
5
  Author-email: Home Assistant Team <hello@home-assistant.io>
6
6
  License-Expression: Apache-2.0
@@ -56,3 +56,15 @@ try:
56
56
  except zwave_js_server.client.FailedCommand as err:
57
57
  print("Command failed with", err.error_code)
58
58
  ```
59
+
60
+ ## Access control
61
+
62
+ Schema 48 adds typed access-control helpers exposed via the `AccessControlAPI`
63
+ wrapper:
64
+
65
+ - `node.access_control`: shortcut for the root endpoint API.
66
+ - `endpoint.access_control`: API for a specific endpoint.
67
+ - Call `await endpoint.access_control.is_supported()` before using other
68
+ methods.
69
+ - Credential payloads accept `str | bytes`; binary credentials are converted to
70
+ the websocket Buffer transport shape internally.
@@ -32,3 +32,15 @@ try:
32
32
  except zwave_js_server.client.FailedCommand as err:
33
33
  print("Command failed with", err.error_code)
34
34
  ```
35
+
36
+ ## Access control
37
+
38
+ Schema 48 adds typed access-control helpers exposed via the `AccessControlAPI`
39
+ wrapper:
40
+
41
+ - `node.access_control`: shortcut for the root endpoint API.
42
+ - `endpoint.access_control`: API for a specific endpoint.
43
+ - Call `await endpoint.access_control.is_supported()` before using other
44
+ methods.
45
+ - Credential payloads accept `str | bytes`; binary credentials are converted to
46
+ the websocket Buffer transport shape internally.
@@ -8,12 +8,12 @@ import logging
8
8
  from typing import TypedDict
9
9
 
10
10
  PACKAGE_NAME = "zwave-js-server-python"
11
- __version__ = "0.70.0"
11
+ __version__ = "0.71.0"
12
12
 
13
13
  # minimal server schema version we can handle
14
14
  MIN_SERVER_SCHEMA_VERSION = 47
15
15
  # max server schema version we can handle (and our code is compatible with)
16
- MAX_SERVER_SCHEMA_VERSION = 47
16
+ MAX_SERVER_SCHEMA_VERSION = 48
17
17
 
18
18
  VALUE_UNKNOWN = "unknown"
19
19
 
@@ -0,0 +1,87 @@
1
+ """Constants for access control related command classes."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import IntEnum
6
+
7
+
8
+ class UserCredentialType(IntEnum):
9
+ """Credential types supported by User Credential CC."""
10
+
11
+ NONE = 0
12
+ PIN_CODE = 1
13
+ PASSWORD = 2
14
+ RFID_CODE = 3
15
+ BLE = 4
16
+ NFC = 5
17
+ UWB = 6
18
+ EYE_BIOMETRIC = 7
19
+ FACE_BIOMETRIC = 8
20
+ FINGER_BIOMETRIC = 9
21
+ HAND_BIOMETRIC = 10
22
+ UNSPECIFIED_BIOMETRIC = 11
23
+ DESFIRE = 12
24
+
25
+
26
+ class UserCredentialUserType(IntEnum):
27
+ """User types supported by User Credential CC."""
28
+
29
+ GENERAL = 0
30
+ PROGRAMMING = 3
31
+ NON_ACCESS = 4
32
+ DURESS = 5
33
+ DISPOSABLE = 6
34
+ EXPIRING = 7
35
+ REMOTE_ONLY = 9
36
+
37
+
38
+ class UserCredentialRule(IntEnum):
39
+ """Credential rules supported by User Credential CC."""
40
+
41
+ SINGLE = 1
42
+ DUAL = 2
43
+ TRIPLE = 3
44
+
45
+
46
+ class UserCredentialLearnStatus(IntEnum):
47
+ """Credential learn statuses supported by User Credential CC."""
48
+
49
+ STARTED = 0
50
+ SUCCESS = 1
51
+ ALREADY_IN_PROGRESS = 2
52
+ ENDED_NOT_DUE_TO_TIMEOUT = 3
53
+ TIMEOUT = 4
54
+ STEP_RETRY = 5
55
+ INVALID_ADD_OPERATION_TYPE = 254
56
+ INVALID_MODIFY_OPERATION_TYPE = 255
57
+
58
+
59
+ class SetUserResult(IntEnum):
60
+ """Result for set_user / delete_user / delete_all_users commands."""
61
+
62
+ OK = 0
63
+ ERROR_ADD_REJECTED_LOCATION_OCCUPIED = 1
64
+ ERROR_MODIFY_REJECTED_LOCATION_EMPTY = 2
65
+ ERROR_UNKNOWN = 255
66
+
67
+
68
+ class SetCredentialResult(IntEnum):
69
+ """Result for set_credential / delete_credential commands."""
70
+
71
+ OK = 0
72
+ ERROR_ADD_REJECTED_LOCATION_OCCUPIED = 1
73
+ ERROR_MODIFY_REJECTED_LOCATION_EMPTY = 2
74
+ ERROR_DUPLICATE_CREDENTIAL = 3
75
+ ERROR_MANUFACTURER_SECURITY_RULES = 4
76
+ ERROR_DUPLICATE_ADMIN_PIN_CODE = 5
77
+ ERROR_WRONG_USER_UNIQUE_IDENTIFIER = 6
78
+ ERROR_UNKNOWN = 255
79
+
80
+
81
+ class AssignCredentialResult(IntEnum):
82
+ """Result for assign_credential commands."""
83
+
84
+ OK = 0
85
+ ERROR_INVALID_CREDENTIAL = 1
86
+ ERROR_INVALID_USER = 2
87
+ ERROR_UNKNOWN = 255