zwave-js-server-python 0.35.2__tar.gz → 0.35.3__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.35.2 → zwave-js-server-python-0.35.3}/PKG-INFO +1 -1
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/setup.py +1 -1
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/exceptions.py +0 -14
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/association.py +1 -1
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/controller/__init__.py +97 -53
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/endpoint.py +18 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/log_message.py +2 -2
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/node/__init__.py +5 -2
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/PKG-INFO +1 -1
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/LICENSE +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/README.md +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/setup.cfg +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/test/test_client.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/test/test_dump.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/test/test_event.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/test/test_firmware.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/test/test_main.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/test/test_version.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/__init__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/__main__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/client.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/__init__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/__init__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/barrier_operator.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/color_switch.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/entry_control.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/humidity_control.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/lock.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/meter.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/multilevel_sensor.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/multilevel_switch.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/notification.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/power_level.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/protection.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/sound_switch.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/thermostat.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/command_class/wake_up.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/dump.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/event.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/firmware.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/__init__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/command_class.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/controller/data_model.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/controller/event_model.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/controller/inclusion_and_provisioning.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/controller/statistics.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/device_class.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/device_config.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/driver.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/firmware.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/log_config.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/node/data_model.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/node/event_model.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/node/health_check.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/node/statistics.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/notification.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/utils.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/value.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/version.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/__init__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/command_class/__init__.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/command_class/meter.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/command_class/multilevel_sensor.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/helpers.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/lock.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/multicast.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/node.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/version.py +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/SOURCES.txt +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/dependency_links.txt +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/entry_points.txt +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/not-zip-safe +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/requires.txt +0 -0
- {zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server_python.egg-info/top_level.txt +0 -0
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/exceptions.py
RENAMED
|
@@ -4,7 +4,6 @@ from typing import TYPE_CHECKING, Optional
|
|
|
4
4
|
from .const import CommandClass
|
|
5
5
|
|
|
6
6
|
if TYPE_CHECKING:
|
|
7
|
-
from .event import Event
|
|
8
7
|
from .model.value import Value
|
|
9
8
|
|
|
10
9
|
|
|
@@ -157,16 +156,3 @@ class UnknownValueData(BaseZwaveJSServerError):
|
|
|
157
156
|
"upstream issue with the driver or missing support for this data in the "
|
|
158
157
|
"library"
|
|
159
158
|
)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
class NotificationHasUnsupportedCommandClass(BaseZwaveJSServerError):
|
|
163
|
-
"""Exception raised when notification is received for an unsupported CC."""
|
|
164
|
-
|
|
165
|
-
def __init__(self, event: "Event", command_class: CommandClass) -> None:
|
|
166
|
-
"""Initialize an invalid Command Class error."""
|
|
167
|
-
self.event_data = event.data
|
|
168
|
-
self.command_class = command_class
|
|
169
|
-
super().__init__(
|
|
170
|
-
"Notification received with unsupported command class "
|
|
171
|
-
f"{command_class.name}: {event.data}"
|
|
172
|
-
)
|
|
@@ -12,7 +12,7 @@ from ...const import (
|
|
|
12
12
|
)
|
|
13
13
|
from ...event import Event, EventBase
|
|
14
14
|
from ...util.helpers import convert_base64_to_bytes, convert_bytes_to_base64
|
|
15
|
-
from ..association import
|
|
15
|
+
from ..association import AssociationAddress, AssociationGroup
|
|
16
16
|
from ..node import Node
|
|
17
17
|
from .data_model import ControllerDataType
|
|
18
18
|
from .event_model import CONTROLLER_EVENT_MODEL_MAP
|
|
@@ -420,18 +420,21 @@ class Controller(EventBase):
|
|
|
420
420
|
return cast(bool, data["failed"])
|
|
421
421
|
|
|
422
422
|
async def async_get_association_groups(
|
|
423
|
-
self,
|
|
423
|
+
self, source: AssociationAddress
|
|
424
424
|
) -> Dict[int, AssociationGroup]:
|
|
425
425
|
"""Send getAssociationGroups command to Controller."""
|
|
426
|
+
source_data = {"nodeId": source.node_id}
|
|
427
|
+
if source.endpoint is not None:
|
|
428
|
+
source_data["endpoint"] = source.endpoint
|
|
426
429
|
data = await self.client.async_send_command(
|
|
427
430
|
{
|
|
428
431
|
"command": "controller.get_association_groups",
|
|
429
|
-
|
|
432
|
+
**source_data,
|
|
430
433
|
}
|
|
431
434
|
)
|
|
432
435
|
groups = {}
|
|
433
436
|
for key, group in data["groups"].items():
|
|
434
|
-
groups[key] = AssociationGroup(
|
|
437
|
+
groups[int(key)] = AssociationGroup(
|
|
435
438
|
max_nodes=group["maxNodes"],
|
|
436
439
|
is_lifeline=group["isLifeline"],
|
|
437
440
|
multi_channel=group["multiChannel"],
|
|
@@ -441,84 +444,125 @@ class Controller(EventBase):
|
|
|
441
444
|
)
|
|
442
445
|
return groups
|
|
443
446
|
|
|
444
|
-
async def async_get_associations(
|
|
447
|
+
async def async_get_associations(
|
|
448
|
+
self, source: AssociationAddress
|
|
449
|
+
) -> Dict[int, List[AssociationAddress]]:
|
|
445
450
|
"""Send getAssociations command to Controller."""
|
|
451
|
+
source_data = {"nodeId": source.node_id}
|
|
452
|
+
if source.endpoint is not None:
|
|
453
|
+
source_data["endpoint"] = source.endpoint
|
|
446
454
|
data = await self.client.async_send_command(
|
|
447
455
|
{
|
|
448
456
|
"command": "controller.get_associations",
|
|
449
|
-
|
|
457
|
+
**source_data,
|
|
450
458
|
}
|
|
451
459
|
)
|
|
452
460
|
associations = {}
|
|
453
|
-
for key,
|
|
454
|
-
associations[key] =
|
|
455
|
-
|
|
456
|
-
|
|
461
|
+
for key, association_addresses in data["associations"].items():
|
|
462
|
+
associations[int(key)] = [
|
|
463
|
+
AssociationAddress(
|
|
464
|
+
node_id=association_address["nodeId"],
|
|
465
|
+
endpoint=association_address.get("endpoint"),
|
|
466
|
+
)
|
|
467
|
+
for association_address in association_addresses
|
|
468
|
+
]
|
|
457
469
|
return associations
|
|
458
470
|
|
|
459
471
|
async def async_is_association_allowed(
|
|
460
|
-
self,
|
|
472
|
+
self, source: AssociationAddress, group: int, association: AssociationAddress
|
|
461
473
|
) -> bool:
|
|
462
474
|
"""Send isAssociationAllowed command to Controller."""
|
|
475
|
+
source_data = {"nodeId": source.node_id}
|
|
476
|
+
if source.endpoint is not None:
|
|
477
|
+
source_data["endpoint"] = source.endpoint
|
|
478
|
+
|
|
479
|
+
association_data = {"nodeId": association.node_id}
|
|
480
|
+
if association.endpoint is not None:
|
|
481
|
+
association_data["endpoint"] = association.endpoint
|
|
463
482
|
data = await self.client.async_send_command(
|
|
464
483
|
{
|
|
465
484
|
"command": "controller.is_association_allowed",
|
|
466
|
-
|
|
485
|
+
**source_data,
|
|
467
486
|
"group": group,
|
|
468
|
-
"association":
|
|
469
|
-
"nodeId": association.node_id,
|
|
470
|
-
"endpoint": association.endpoint,
|
|
471
|
-
},
|
|
487
|
+
"association": association_data,
|
|
472
488
|
}
|
|
473
489
|
)
|
|
474
490
|
return cast(bool, data["allowed"])
|
|
475
491
|
|
|
476
492
|
async def async_add_associations(
|
|
477
|
-
self,
|
|
493
|
+
self,
|
|
494
|
+
source: AssociationAddress,
|
|
495
|
+
group: int,
|
|
496
|
+
associations: List[AssociationAddress],
|
|
497
|
+
wait_for_result: bool = False,
|
|
478
498
|
) -> None:
|
|
479
499
|
"""Send addAssociations command to Controller."""
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
500
|
+
source_data = {"nodeId": source.node_id}
|
|
501
|
+
if source.endpoint is not None:
|
|
502
|
+
source_data["endpoint"] = source.endpoint
|
|
503
|
+
|
|
504
|
+
associations_data = []
|
|
505
|
+
for association in associations:
|
|
506
|
+
association_data = {"nodeId": association.node_id}
|
|
507
|
+
if association.endpoint is not None:
|
|
508
|
+
association_data["endpoint"] = association.endpoint
|
|
509
|
+
associations_data.append(association_data)
|
|
510
|
+
|
|
511
|
+
cmd = {
|
|
512
|
+
"command": "controller.add_associations",
|
|
513
|
+
**source_data,
|
|
514
|
+
"group": group,
|
|
515
|
+
"associations": associations_data,
|
|
516
|
+
}
|
|
517
|
+
if wait_for_result:
|
|
518
|
+
await self.client.async_send_command(cmd)
|
|
519
|
+
else:
|
|
520
|
+
await self.client.async_send_command_no_wait(cmd)
|
|
494
521
|
|
|
495
522
|
async def async_remove_associations(
|
|
496
|
-
self,
|
|
523
|
+
self,
|
|
524
|
+
source: AssociationAddress,
|
|
525
|
+
group: int,
|
|
526
|
+
associations: List[AssociationAddress],
|
|
527
|
+
wait_for_result: bool = False,
|
|
497
528
|
) -> None:
|
|
498
529
|
"""Send removeAssociations command to Controller."""
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
530
|
+
source_data = {"nodeId": source.node_id}
|
|
531
|
+
if source.endpoint is not None:
|
|
532
|
+
source_data["endpoint"] = source.endpoint
|
|
533
|
+
|
|
534
|
+
associations_data = []
|
|
535
|
+
for association in associations:
|
|
536
|
+
association_data = {"nodeId": association.node_id}
|
|
537
|
+
if association.endpoint is not None:
|
|
538
|
+
association_data["endpoint"] = association.endpoint
|
|
539
|
+
associations_data.append(association_data)
|
|
540
|
+
|
|
541
|
+
cmd = {
|
|
542
|
+
"command": "controller.remove_associations",
|
|
543
|
+
**source_data,
|
|
544
|
+
"group": group,
|
|
545
|
+
"associations": associations_data,
|
|
546
|
+
}
|
|
547
|
+
if wait_for_result:
|
|
548
|
+
await self.client.async_send_command(cmd)
|
|
549
|
+
else:
|
|
550
|
+
await self.client.async_send_command_no_wait(cmd)
|
|
513
551
|
|
|
514
|
-
async def async_remove_node_from_all_associations(
|
|
552
|
+
async def async_remove_node_from_all_associations(
|
|
553
|
+
self,
|
|
554
|
+
node_id: int,
|
|
555
|
+
wait_for_result: bool = False,
|
|
556
|
+
) -> None:
|
|
515
557
|
"""Send removeNodeFromAllAssociations command to Controller."""
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
558
|
+
cmd = {
|
|
559
|
+
"command": "controller.remove_node_from_all_associations",
|
|
560
|
+
"nodeId": node_id,
|
|
561
|
+
}
|
|
562
|
+
if wait_for_result:
|
|
563
|
+
await self.client.async_send_command(cmd)
|
|
564
|
+
else:
|
|
565
|
+
await self.client.async_send_command_no_wait(cmd)
|
|
522
566
|
|
|
523
567
|
async def async_get_node_neighbors(self, node_id: int) -> List[int]:
|
|
524
568
|
"""Send getNodeNeighbors command to Controller to get node's neighbors."""
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/endpoint.py
RENAMED
|
@@ -49,6 +49,24 @@ class Endpoint(EventBase):
|
|
|
49
49
|
self.values: Dict[str, Union[ConfigurationValue, Value]] = {}
|
|
50
50
|
self.update(data, values)
|
|
51
51
|
|
|
52
|
+
def __repr__(self) -> str:
|
|
53
|
+
"""Return the representation."""
|
|
54
|
+
return f"{type(self).__name__}(node_id={self.node_id}, index={self.index})"
|
|
55
|
+
|
|
56
|
+
def __hash__(self) -> int:
|
|
57
|
+
"""Return the hash."""
|
|
58
|
+
return hash((self.client.driver, self.node_id, self.index))
|
|
59
|
+
|
|
60
|
+
def __eq__(self, other: object) -> bool:
|
|
61
|
+
"""Return whether this instance equals another."""
|
|
62
|
+
if not isinstance(other, Endpoint):
|
|
63
|
+
return False
|
|
64
|
+
return (
|
|
65
|
+
self.client.driver == other.client.driver
|
|
66
|
+
and self.node_id == other.node_id
|
|
67
|
+
and self.index == other.index
|
|
68
|
+
)
|
|
69
|
+
|
|
52
70
|
@property
|
|
53
71
|
def node_id(self) -> int:
|
|
54
72
|
"""Return node ID property."""
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/log_message.py
RENAMED
|
@@ -13,7 +13,7 @@ class LogMessageContextDataType(TypedDict, total=False):
|
|
|
13
13
|
"""Represent a log message context data dict type."""
|
|
14
14
|
|
|
15
15
|
source: Literal["config", "serial", "controller", "driver"] # required
|
|
16
|
-
type: Literal["value", "node"]
|
|
16
|
+
type: Literal["controller", "value", "node"]
|
|
17
17
|
nodeId: int
|
|
18
18
|
header: str
|
|
19
19
|
direction: Literal["inbound", "outbound", "none"]
|
|
@@ -38,7 +38,7 @@ class LogMessageContext:
|
|
|
38
38
|
return self.data["source"]
|
|
39
39
|
|
|
40
40
|
@property
|
|
41
|
-
def type(self) -> Optional[Literal["value", "node"]]:
|
|
41
|
+
def type(self) -> Optional[Literal["controller", "value", "node"]]:
|
|
42
42
|
"""Return the object type for the log message if applicable."""
|
|
43
43
|
return self.data.get("type")
|
|
44
44
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Provide a model for the Z-Wave JS node."""
|
|
2
|
+
import logging
|
|
2
3
|
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast
|
|
3
4
|
|
|
4
5
|
from ...const import (
|
|
@@ -12,7 +13,6 @@ from ...event import Event, EventBase
|
|
|
12
13
|
from ...exceptions import (
|
|
13
14
|
FailedCommand,
|
|
14
15
|
NotFoundError,
|
|
15
|
-
NotificationHasUnsupportedCommandClass,
|
|
16
16
|
UnparseableValue,
|
|
17
17
|
UnwriteableValue,
|
|
18
18
|
)
|
|
@@ -58,6 +58,9 @@ if TYPE_CHECKING:
|
|
|
58
58
|
from ...client import Client
|
|
59
59
|
|
|
60
60
|
|
|
61
|
+
_LOGGER = logging.getLogger(__package__)
|
|
62
|
+
|
|
63
|
+
|
|
61
64
|
class Node(EventBase):
|
|
62
65
|
"""Represent a Z-Wave JS node."""
|
|
63
66
|
|
|
@@ -789,7 +792,7 @@ class Node(EventBase):
|
|
|
789
792
|
self, cast(PowerLevelNotificationDataType, event.data)
|
|
790
793
|
)
|
|
791
794
|
else:
|
|
792
|
-
|
|
795
|
+
_LOGGER.info("Unhandled notification command class: %s", command_class.name)
|
|
793
796
|
|
|
794
797
|
def handle_firmware_update_progress(self, event: Event) -> None:
|
|
795
798
|
"""Process a node firmware update progress event."""
|
|
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.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/const/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/__init__.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
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/driver.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/firmware.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/log_config.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.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/utils.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/value.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/model/version.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/helpers.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/lock.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/zwave_js_server/util/multicast.py
RENAMED
|
File without changes
|
{zwave-js-server-python-0.35.2 → zwave-js-server-python-0.35.3}/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
|
|
File without changes
|
|
File without changes
|