mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Bump zwave-js-server-python to 0.64.0 (#147176)
This commit is contained in:
parent
33bde48c9c
commit
46aea5d9dc
@ -32,19 +32,19 @@ from zwave_js_server.exceptions import (
|
|||||||
NotFoundError,
|
NotFoundError,
|
||||||
SetValueFailed,
|
SetValueFailed,
|
||||||
)
|
)
|
||||||
from zwave_js_server.firmware import controller_firmware_update_otw, update_firmware
|
from zwave_js_server.firmware import driver_firmware_update_otw, update_firmware
|
||||||
from zwave_js_server.model.controller import (
|
from zwave_js_server.model.controller import (
|
||||||
ControllerStatistics,
|
ControllerStatistics,
|
||||||
InclusionGrant,
|
InclusionGrant,
|
||||||
ProvisioningEntry,
|
ProvisioningEntry,
|
||||||
QRProvisioningInformation,
|
QRProvisioningInformation,
|
||||||
)
|
)
|
||||||
from zwave_js_server.model.controller.firmware import (
|
|
||||||
ControllerFirmwareUpdateData,
|
|
||||||
ControllerFirmwareUpdateProgress,
|
|
||||||
ControllerFirmwareUpdateResult,
|
|
||||||
)
|
|
||||||
from zwave_js_server.model.driver import Driver
|
from zwave_js_server.model.driver import Driver
|
||||||
|
from zwave_js_server.model.driver.firmware import (
|
||||||
|
DriverFirmwareUpdateData,
|
||||||
|
DriverFirmwareUpdateProgress,
|
||||||
|
DriverFirmwareUpdateResult,
|
||||||
|
)
|
||||||
from zwave_js_server.model.endpoint import Endpoint
|
from zwave_js_server.model.endpoint import Endpoint
|
||||||
from zwave_js_server.model.log_config import LogConfig
|
from zwave_js_server.model.log_config import LogConfig
|
||||||
from zwave_js_server.model.log_message import LogMessage
|
from zwave_js_server.model.log_message import LogMessage
|
||||||
@ -2340,8 +2340,8 @@ def _get_node_firmware_update_progress_dict(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def _get_controller_firmware_update_progress_dict(
|
def _get_driver_firmware_update_progress_dict(
|
||||||
progress: ControllerFirmwareUpdateProgress,
|
progress: DriverFirmwareUpdateProgress,
|
||||||
) -> dict[str, int | float]:
|
) -> dict[str, int | float]:
|
||||||
"""Get a dictionary of a controller's firmware update progress."""
|
"""Get a dictionary of a controller's firmware update progress."""
|
||||||
return {
|
return {
|
||||||
@ -2370,7 +2370,8 @@ async def websocket_subscribe_firmware_update_status(
|
|||||||
) -> None:
|
) -> None:
|
||||||
"""Subscribe to the status of a firmware update."""
|
"""Subscribe to the status of a firmware update."""
|
||||||
assert node.client.driver
|
assert node.client.driver
|
||||||
controller = node.client.driver.controller
|
driver = node.client.driver
|
||||||
|
controller = driver.controller
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_cleanup() -> None:
|
def async_cleanup() -> None:
|
||||||
@ -2408,21 +2409,21 @@ async def websocket_subscribe_firmware_update_status(
|
|||||||
)
|
)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def forward_controller_progress(event: dict) -> None:
|
def forward_driver_progress(event: dict) -> None:
|
||||||
progress: ControllerFirmwareUpdateProgress = event["firmware_update_progress"]
|
progress: DriverFirmwareUpdateProgress = event["firmware_update_progress"]
|
||||||
connection.send_message(
|
connection.send_message(
|
||||||
websocket_api.event_message(
|
websocket_api.event_message(
|
||||||
msg[ID],
|
msg[ID],
|
||||||
{
|
{
|
||||||
"event": event["event"],
|
"event": event["event"],
|
||||||
**_get_controller_firmware_update_progress_dict(progress),
|
**_get_driver_firmware_update_progress_dict(progress),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def forward_controller_finished(event: dict) -> None:
|
def forward_driver_finished(event: dict) -> None:
|
||||||
finished: ControllerFirmwareUpdateResult = event["firmware_update_finished"]
|
finished: DriverFirmwareUpdateResult = event["firmware_update_finished"]
|
||||||
connection.send_message(
|
connection.send_message(
|
||||||
websocket_api.event_message(
|
websocket_api.event_message(
|
||||||
msg[ID],
|
msg[ID],
|
||||||
@ -2436,8 +2437,8 @@ async def websocket_subscribe_firmware_update_status(
|
|||||||
|
|
||||||
if controller.own_node == node:
|
if controller.own_node == node:
|
||||||
msg[DATA_UNSUBSCRIBE] = unsubs = [
|
msg[DATA_UNSUBSCRIBE] = unsubs = [
|
||||||
controller.on("firmware update progress", forward_controller_progress),
|
driver.on("firmware update progress", forward_driver_progress),
|
||||||
controller.on("firmware update finished", forward_controller_finished),
|
driver.on("firmware update finished", forward_driver_finished),
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
msg[DATA_UNSUBSCRIBE] = unsubs = [
|
msg[DATA_UNSUBSCRIBE] = unsubs = [
|
||||||
@ -2447,17 +2448,13 @@ async def websocket_subscribe_firmware_update_status(
|
|||||||
connection.subscriptions[msg["id"]] = async_cleanup
|
connection.subscriptions[msg["id"]] = async_cleanup
|
||||||
|
|
||||||
connection.send_result(msg[ID])
|
connection.send_result(msg[ID])
|
||||||
if node.is_controller_node and (
|
if node.is_controller_node and (driver_progress := driver.firmware_update_progress):
|
||||||
controller_progress := controller.firmware_update_progress
|
|
||||||
):
|
|
||||||
connection.send_message(
|
connection.send_message(
|
||||||
websocket_api.event_message(
|
websocket_api.event_message(
|
||||||
msg[ID],
|
msg[ID],
|
||||||
{
|
{
|
||||||
"event": "firmware update progress",
|
"event": "firmware update progress",
|
||||||
**_get_controller_firmware_update_progress_dict(
|
**_get_driver_firmware_update_progress_dict(driver_progress),
|
||||||
controller_progress
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -2559,9 +2556,9 @@ class FirmwareUploadView(HomeAssistantView):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
if node.client.driver.controller.own_node == node:
|
if node.client.driver.controller.own_node == node:
|
||||||
await controller_firmware_update_otw(
|
await driver_firmware_update_otw(
|
||||||
node.client.ws_server_url,
|
node.client.ws_server_url,
|
||||||
ControllerFirmwareUpdateData(
|
DriverFirmwareUpdateData(
|
||||||
uploaded_file.filename,
|
uploaded_file.filename,
|
||||||
await hass.async_add_executor_job(uploaded_file.file.read),
|
await hass.async_add_executor_job(uploaded_file.file.read),
|
||||||
),
|
),
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"integration_type": "hub",
|
"integration_type": "hub",
|
||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"loggers": ["zwave_js_server"],
|
"loggers": ["zwave_js_server"],
|
||||||
"requirements": ["pyserial==3.5", "zwave-js-server-python==0.63.0"],
|
"requirements": ["pyserial==3.5", "zwave-js-server-python==0.64.0"],
|
||||||
"usb": [
|
"usb": [
|
||||||
{
|
{
|
||||||
"vid": "0658",
|
"vid": "0658",
|
||||||
|
2
requirements_all.txt
generated
2
requirements_all.txt
generated
@ -3193,7 +3193,7 @@ ziggo-mediabox-xl==1.1.0
|
|||||||
zm-py==0.5.4
|
zm-py==0.5.4
|
||||||
|
|
||||||
# homeassistant.components.zwave_js
|
# homeassistant.components.zwave_js
|
||||||
zwave-js-server-python==0.63.0
|
zwave-js-server-python==0.64.0
|
||||||
|
|
||||||
# homeassistant.components.zwave_me
|
# homeassistant.components.zwave_me
|
||||||
zwave-me-ws==0.4.3
|
zwave-me-ws==0.4.3
|
||||||
|
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@ -2625,7 +2625,7 @@ zeversolar==0.3.2
|
|||||||
zha==0.0.60
|
zha==0.0.60
|
||||||
|
|
||||||
# homeassistant.components.zwave_js
|
# homeassistant.components.zwave_js
|
||||||
zwave-js-server-python==0.63.0
|
zwave-js-server-python==0.64.0
|
||||||
|
|
||||||
# homeassistant.components.zwave_me
|
# homeassistant.components.zwave_me
|
||||||
zwave-me-ws==0.4.3
|
zwave-me-ws==0.4.3
|
||||||
|
@ -32,7 +32,7 @@ from zwave_js_server.model.controller import (
|
|||||||
ProvisioningEntry,
|
ProvisioningEntry,
|
||||||
QRProvisioningInformation,
|
QRProvisioningInformation,
|
||||||
)
|
)
|
||||||
from zwave_js_server.model.controller.firmware import ControllerFirmwareUpdateData
|
from zwave_js_server.model.driver.firmware import DriverFirmwareUpdateData
|
||||||
from zwave_js_server.model.node import Node
|
from zwave_js_server.model.node import Node
|
||||||
from zwave_js_server.model.node.firmware import NodeFirmwareUpdateData
|
from zwave_js_server.model.node.firmware import NodeFirmwareUpdateData
|
||||||
from zwave_js_server.model.value import ConfigurationValue, get_value_id_str
|
from zwave_js_server.model.value import ConfigurationValue, get_value_id_str
|
||||||
@ -3501,7 +3501,7 @@ async def test_firmware_upload_view(
|
|||||||
"homeassistant.components.zwave_js.api.update_firmware",
|
"homeassistant.components.zwave_js.api.update_firmware",
|
||||||
) as mock_node_cmd,
|
) as mock_node_cmd,
|
||||||
patch(
|
patch(
|
||||||
"homeassistant.components.zwave_js.api.controller_firmware_update_otw",
|
"homeassistant.components.zwave_js.api.driver_firmware_update_otw",
|
||||||
) as mock_controller_cmd,
|
) as mock_controller_cmd,
|
||||||
patch.dict(
|
patch.dict(
|
||||||
"homeassistant.components.zwave_js.api.USER_AGENT",
|
"homeassistant.components.zwave_js.api.USER_AGENT",
|
||||||
@ -3544,7 +3544,7 @@ async def test_firmware_upload_view_controller(
|
|||||||
"homeassistant.components.zwave_js.api.update_firmware",
|
"homeassistant.components.zwave_js.api.update_firmware",
|
||||||
) as mock_node_cmd,
|
) as mock_node_cmd,
|
||||||
patch(
|
patch(
|
||||||
"homeassistant.components.zwave_js.api.controller_firmware_update_otw",
|
"homeassistant.components.zwave_js.api.driver_firmware_update_otw",
|
||||||
) as mock_controller_cmd,
|
) as mock_controller_cmd,
|
||||||
patch.dict(
|
patch.dict(
|
||||||
"homeassistant.components.zwave_js.api.USER_AGENT",
|
"homeassistant.components.zwave_js.api.USER_AGENT",
|
||||||
@ -3557,7 +3557,7 @@ async def test_firmware_upload_view_controller(
|
|||||||
)
|
)
|
||||||
mock_node_cmd.assert_not_called()
|
mock_node_cmd.assert_not_called()
|
||||||
assert mock_controller_cmd.call_args[0][1:2] == (
|
assert mock_controller_cmd.call_args[0][1:2] == (
|
||||||
ControllerFirmwareUpdateData(
|
DriverFirmwareUpdateData(
|
||||||
"file", b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
|
"file", b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -4415,7 +4415,7 @@ async def test_subscribe_controller_firmware_update_status(
|
|||||||
event = Event(
|
event = Event(
|
||||||
type="firmware update progress",
|
type="firmware update progress",
|
||||||
data={
|
data={
|
||||||
"source": "controller",
|
"source": "driver",
|
||||||
"event": "firmware update progress",
|
"event": "firmware update progress",
|
||||||
"progress": {
|
"progress": {
|
||||||
"sentFragments": 1,
|
"sentFragments": 1,
|
||||||
@ -4424,7 +4424,7 @@ async def test_subscribe_controller_firmware_update_status(
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client.driver.controller.receive_event(event)
|
client.driver.receive_event(event)
|
||||||
|
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
assert msg["event"] == {
|
assert msg["event"] == {
|
||||||
@ -4439,7 +4439,7 @@ async def test_subscribe_controller_firmware_update_status(
|
|||||||
event = Event(
|
event = Event(
|
||||||
type="firmware update finished",
|
type="firmware update finished",
|
||||||
data={
|
data={
|
||||||
"source": "controller",
|
"source": "driver",
|
||||||
"event": "firmware update finished",
|
"event": "firmware update finished",
|
||||||
"result": {
|
"result": {
|
||||||
"status": 255,
|
"status": 255,
|
||||||
@ -4447,7 +4447,7 @@ async def test_subscribe_controller_firmware_update_status(
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client.driver.controller.receive_event(event)
|
client.driver.receive_event(event)
|
||||||
|
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
assert msg["event"] == {
|
assert msg["event"] == {
|
||||||
@ -4464,13 +4464,13 @@ async def test_subscribe_controller_firmware_update_status_initial_value(
|
|||||||
ws_client = await hass_ws_client(hass)
|
ws_client = await hass_ws_client(hass)
|
||||||
device = get_device(hass, client.driver.controller.nodes[1])
|
device = get_device(hass, client.driver.controller.nodes[1])
|
||||||
|
|
||||||
assert client.driver.controller.firmware_update_progress is None
|
assert client.driver.firmware_update_progress is None
|
||||||
|
|
||||||
# Send a firmware update progress event before the WS command
|
# Send a firmware update progress event before the WS command
|
||||||
event = Event(
|
event = Event(
|
||||||
type="firmware update progress",
|
type="firmware update progress",
|
||||||
data={
|
data={
|
||||||
"source": "controller",
|
"source": "driver",
|
||||||
"event": "firmware update progress",
|
"event": "firmware update progress",
|
||||||
"progress": {
|
"progress": {
|
||||||
"sentFragments": 1,
|
"sentFragments": 1,
|
||||||
@ -4479,7 +4479,7 @@ async def test_subscribe_controller_firmware_update_status_initial_value(
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client.driver.controller.receive_event(event)
|
client.driver.receive_event(event)
|
||||||
|
|
||||||
client.async_send_command_no_wait.return_value = {}
|
client.async_send_command_no_wait.return_value = {}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user