mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 14:17:45 +00:00
Fix legacy Hunter Douglas PowerView devices (#35895)
These devices are missing firmware information as the 1.0 firmware did not provide it.
This commit is contained in:
parent
c2f8e0bf66
commit
b19223cb37
@ -31,9 +31,15 @@ from .const import (
|
|||||||
DEVICE_REVISION,
|
DEVICE_REVISION,
|
||||||
DEVICE_SERIAL_NUMBER,
|
DEVICE_SERIAL_NUMBER,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
|
FIRMWARE_BUILD,
|
||||||
FIRMWARE_IN_USERDATA,
|
FIRMWARE_IN_USERDATA,
|
||||||
|
FIRMWARE_SUB_REVISION,
|
||||||
HUB_EXCEPTIONS,
|
HUB_EXCEPTIONS,
|
||||||
HUB_NAME,
|
HUB_NAME,
|
||||||
|
LEGACY_DEVICE_BUILD,
|
||||||
|
LEGACY_DEVICE_MODEL,
|
||||||
|
LEGACY_DEVICE_REVISION,
|
||||||
|
LEGACY_DEVICE_SUB_REVISION,
|
||||||
MAC_ADDRESS_IN_USERDATA,
|
MAC_ADDRESS_IN_USERDATA,
|
||||||
MAINPROCESSOR_IN_USERDATA_FIRMWARE,
|
MAINPROCESSOR_IN_USERDATA_FIRMWARE,
|
||||||
MODEL_IN_MAINPROCESSOR,
|
MODEL_IN_MAINPROCESSOR,
|
||||||
@ -159,9 +165,19 @@ async def async_get_device_info(pv_request):
|
|||||||
resources = await userdata.get_resources()
|
resources = await userdata.get_resources()
|
||||||
userdata_data = resources[USER_DATA]
|
userdata_data = resources[USER_DATA]
|
||||||
|
|
||||||
main_processor_info = userdata_data[FIRMWARE_IN_USERDATA][
|
if FIRMWARE_IN_USERDATA in userdata_data:
|
||||||
MAINPROCESSOR_IN_USERDATA_FIRMWARE
|
main_processor_info = userdata_data[FIRMWARE_IN_USERDATA][
|
||||||
]
|
MAINPROCESSOR_IN_USERDATA_FIRMWARE
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
# Legacy devices
|
||||||
|
main_processor_info = {
|
||||||
|
REVISION_IN_MAINPROCESSOR: LEGACY_DEVICE_REVISION,
|
||||||
|
FIRMWARE_SUB_REVISION: LEGACY_DEVICE_SUB_REVISION,
|
||||||
|
FIRMWARE_BUILD: LEGACY_DEVICE_BUILD,
|
||||||
|
MODEL_IN_MAINPROCESSOR: LEGACY_DEVICE_MODEL,
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
DEVICE_NAME: base64_to_unicode(userdata_data[HUB_NAME]),
|
DEVICE_NAME: base64_to_unicode(userdata_data[HUB_NAME]),
|
||||||
DEVICE_MAC_ADDRESS: userdata_data[MAC_ADDRESS_IN_USERDATA],
|
DEVICE_MAC_ADDRESS: userdata_data[MAC_ADDRESS_IN_USERDATA],
|
||||||
|
@ -65,3 +65,8 @@ PV_ROOM_DATA = "pv_room_data"
|
|||||||
COORDINATOR = "coordinator"
|
COORDINATOR = "coordinator"
|
||||||
|
|
||||||
HUB_EXCEPTIONS = (asyncio.TimeoutError, PvApiConnectionError)
|
HUB_EXCEPTIONS = (asyncio.TimeoutError, PvApiConnectionError)
|
||||||
|
|
||||||
|
LEGACY_DEVICE_SUB_REVISION = 1
|
||||||
|
LEGACY_DEVICE_REVISION = 0
|
||||||
|
LEGACY_DEVICE_BUILD = 0
|
||||||
|
LEGACY_DEVICE_MODEL = "PV Hub1.0"
|
||||||
|
34
tests/fixtures/hunterdouglas_powerview/userdata_v1.json
vendored
Normal file
34
tests/fixtures/hunterdouglas_powerview/userdata_v1.json
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"userData" : {
|
||||||
|
"enableScheduledEvents" : true,
|
||||||
|
"staticIp" : false,
|
||||||
|
"sceneControllerCount" : 0,
|
||||||
|
"accessPointCount" : 0,
|
||||||
|
"shadeCount" : 5,
|
||||||
|
"ip" : "192.168.20.9",
|
||||||
|
"groupCount" : 9,
|
||||||
|
"scheduledEventCount" : 0,
|
||||||
|
"editingEnabled" : true,
|
||||||
|
"roomCount" : 5,
|
||||||
|
"setupCompleted" : false,
|
||||||
|
"sceneCount" : 18,
|
||||||
|
"sceneControllerMemberCount" : 0,
|
||||||
|
"mask" : "255.255.255.0",
|
||||||
|
"hubName" : "UG93ZXJWaWV3IEh1YiBHZW4gMQ==",
|
||||||
|
"rfID" : "0x8B2A",
|
||||||
|
"remoteConnectEnabled" : false,
|
||||||
|
"multiSceneMemberCount" : 0,
|
||||||
|
"rfStatus" : 0,
|
||||||
|
"serialNumber" : "REMOVED",
|
||||||
|
"undefinedShadeCount" : 0,
|
||||||
|
"sceneMemberCount" : 18,
|
||||||
|
"unassignedShadeCount" : 0,
|
||||||
|
"multiSceneCount" : 0,
|
||||||
|
"addressKind" : "newPrimary",
|
||||||
|
"gateway" : "192.168.20.1",
|
||||||
|
"localTimeDataSet" : true,
|
||||||
|
"dns" : "192.168.20.1",
|
||||||
|
"macAddress" : "00:00:00:00:00:eb",
|
||||||
|
"rfIDInt" : 35626
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user