Update aioairzone-cloud to v0.6.0 (#122647)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Álvaro Fernández Rojas 2024-07-26 14:15:48 +02:00 committed by GitHub
parent 72fdcd1cb1
commit 850703824b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 79 additions and 4 deletions

View File

@ -13,9 +13,12 @@ from aioairzone_cloud.const import (
AZD_GROUPS,
AZD_HOT_WATERS,
AZD_INSTALLATIONS,
AZD_MODEL,
AZD_NAME,
AZD_SYSTEM_ID,
AZD_SYSTEMS,
AZD_THERMOSTAT_FW,
AZD_THERMOSTAT_MODEL,
AZD_WEBSERVER,
AZD_WEBSERVERS,
AZD_ZONES,
@ -69,6 +72,7 @@ class AirzoneAidooEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, aidoo_id)},
manufacturer=MANUFACTURER,
model=aidoo_data[AZD_MODEL],
name=aidoo_data[AZD_NAME],
via_device=(DOMAIN, aidoo_data[AZD_WEBSERVER]),
)
@ -111,6 +115,7 @@ class AirzoneGroupEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, group_id)},
model="Group",
manufacturer=MANUFACTURER,
name=group_data[AZD_NAME],
)
@ -154,6 +159,7 @@ class AirzoneHotWaterEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, dhw_id)},
manufacturer=MANUFACTURER,
model="Hot Water",
name=dhw_data[AZD_NAME],
via_device=(DOMAIN, dhw_data[AZD_WEBSERVER]),
)
@ -195,6 +201,7 @@ class AirzoneInstallationEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, inst_id)},
manufacturer=MANUFACTURER,
model="Installation",
name=inst_data[AZD_NAME],
)
@ -240,9 +247,11 @@ class AirzoneSystemEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, system_id)},
model=system_data.get(AZD_MODEL),
manufacturer=MANUFACTURER,
name=system_data[AZD_NAME],
via_device=(DOMAIN, system_data[AZD_WEBSERVER]),
sw_version=system_data.get(AZD_FIRMWARE),
)
def get_airzone_value(self, key: str) -> Any:
@ -270,6 +279,7 @@ class AirzoneWebServerEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
connections={(dr.CONNECTION_NETWORK_MAC, ws_id)},
identifiers={(DOMAIN, ws_id)},
model="WebServer",
manufacturer=MANUFACTURER,
name=ws_data[AZD_NAME],
sw_version=ws_data[AZD_FIRMWARE],
@ -300,9 +310,11 @@ class AirzoneZoneEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, zone_id)},
model=zone_data.get(AZD_THERMOSTAT_MODEL),
manufacturer=MANUFACTURER,
name=zone_data[AZD_NAME],
via_device=(DOMAIN, self.system_id),
sw_version=zone_data.get(AZD_THERMOSTAT_FW),
)
def get_airzone_value(self, key: str) -> Any:

View File

@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/airzone_cloud",
"iot_class": "cloud_push",
"loggers": ["aioairzone_cloud"],
"requirements": ["aioairzone-cloud==0.5.5"]
"requirements": ["aioairzone-cloud==0.6.0"]
}

View File

@ -176,7 +176,7 @@ aio-georss-gdacs==0.9
aioairq==0.3.2
# homeassistant.components.airzone_cloud
aioairzone-cloud==0.5.5
aioairzone-cloud==0.6.0
# homeassistant.components.airzone
aioairzone==0.8.1

View File

@ -161,7 +161,7 @@ aio-georss-gdacs==0.9
aioairq==0.3.2
# homeassistant.components.airzone_cloud
aioairzone-cloud==0.5.5
aioairzone-cloud==0.6.0
# homeassistant.components.airzone
aioairzone==0.8.1

View File

@ -114,6 +114,7 @@
'installation': 'installation1',
'is-connected': True,
'mode': 3,
'model': 'Aidoo',
'modes': list([
1,
2,
@ -156,6 +157,7 @@
'installation': 'installation1',
'is-connected': True,
'mode': 2,
'model': 'Aidoo Pro',
'modes': list([
1,
2,
@ -345,6 +347,7 @@
'temperature-setpoint-max': 30.0,
'temperature-setpoint-min': 15.0,
'temperature-step': 0.5,
'user-access': 'admin',
'web-servers': list([
'webserver1',
'webserver2',
@ -370,10 +373,12 @@
'_id': 'error-id',
}),
]),
'firmware': '3.35',
'id': 'system1',
'installation': 'installation1',
'is-connected': True,
'mode': 2,
'model': 'c6',
'modes': list([
2,
3,
@ -494,6 +499,8 @@
'temperature-setpoint-stop-air': 24.0,
'temperature-setpoint-vent-air': 24.0,
'temperature-step': 0.5,
'thermostat-fw': '3.52',
'thermostat-model': 'blueface',
'web-server': 'webserver1',
'ws-connected': True,
'zone': 1,
@ -557,6 +564,10 @@
'temperature-setpoint-stop-air': 24.0,
'temperature-setpoint-vent-air': 24.0,
'temperature-step': 0.5,
'thermostat-battery': 54,
'thermostat-coverage': 76,
'thermostat-fw': '3.33',
'thermostat-model': 'thinkradio',
'web-server': 'webserver1',
'ws-connected': True,
'zone': 2,

View File

@ -15,6 +15,7 @@ from .util import (
GET_INSTALLATION_MOCK,
GET_INSTALLATIONS_MOCK,
WS_ID,
mock_get_device_config,
mock_get_device_status,
mock_get_webserver,
)
@ -28,6 +29,10 @@ async def test_form(hass: HomeAssistant) -> None:
"homeassistant.components.airzone_cloud.async_setup_entry",
return_value=True,
) as mock_setup_entry,
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_config",
side_effect=mock_get_device_config,
),
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_status",
side_effect=mock_get_device_status,
@ -99,6 +104,10 @@ async def test_installations_list_error(hass: HomeAssistant) -> None:
"homeassistant.components.airzone_cloud.async_setup_entry",
return_value=True,
),
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_config",
side_effect=mock_get_device_config,
),
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_status",
side_effect=mock_get_device_status,

View File

@ -14,6 +14,7 @@ from .util import (
CONFIG,
GET_INSTALLATION_MOCK,
GET_INSTALLATIONS_MOCK,
mock_get_device_config,
mock_get_device_status,
mock_get_webserver,
)
@ -32,6 +33,10 @@ async def test_coordinator_client_connector_error(hass: HomeAssistant) -> None:
config_entry.add_to_hass(hass)
with (
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_config",
side_effect=mock_get_device_config,
) as mock_device_config,
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_status",
side_effect=mock_get_device_status,
@ -56,11 +61,13 @@ async def test_coordinator_client_connector_error(hass: HomeAssistant) -> None:
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
mock_device_config.assert_called()
mock_device_status.assert_called()
mock_installation.assert_awaited_once()
mock_installations.assert_called_once()
mock_webserver.assert_called()
mock_device_config.reset_mock()
mock_device_status.reset_mock()
mock_installation.reset_mock()
mock_installations.reset_mock()

View File

@ -3,8 +3,9 @@
from typing import Any
from unittest.mock import patch
from aioairzone_cloud.common import OperationMode
from aioairzone_cloud.common import OperationMode, UserAccessType
from aioairzone_cloud.const import (
API_ACCESS_TYPE,
API_ACTIVE,
API_AIR_ACTIVE,
API_AQ_ACTIVE,
@ -44,6 +45,8 @@ from aioairzone_cloud.const import (
API_POWER,
API_POWERFUL_MODE,
API_RAD_ACTIVE,
API_RADIO_BATTERY_PERCENT,
API_RADIO_COVERAGE_PERCENT,
API_RANGE_MAX_AIR,
API_RANGE_MIN_AIR,
API_RANGE_SP_MAX_ACS,
@ -79,8 +82,12 @@ from aioairzone_cloud.const import (
API_STAT_SSID,
API_STATUS,
API_STEP,
API_SYSTEM_FW,
API_SYSTEM_NUMBER,
API_SYSTEM_TYPE,
API_TANK_TEMP,
API_THERMOSTAT_FW,
API_THERMOSTAT_TYPE,
API_TYPE,
API_WARNINGS,
API_WS_CONNECTED,
@ -184,6 +191,7 @@ GET_INSTALLATIONS_MOCK = {
{
API_INSTALLATION_ID: CONFIG[CONF_ID],
API_NAME: "House",
API_ACCESS_TYPE: UserAccessType.ADMIN,
API_WS_IDS: [
WS_ID,
WS_ID_AIDOO,
@ -245,6 +253,30 @@ GET_WEBSERVER_MOCK_AIDOO_PRO = {
}
def mock_get_device_config(device: Device) -> dict[str, Any]:
"""Mock API device config."""
if device.get_id() == "system1":
return {
API_SYSTEM_FW: "3.35",
API_SYSTEM_TYPE: "c6",
}
if device.get_id() == "zone1":
return {
API_THERMOSTAT_FW: "3.52",
API_THERMOSTAT_TYPE: "blueface",
}
if device.get_id() == "zone2":
return {
API_THERMOSTAT_FW: "3.33",
API_THERMOSTAT_TYPE: "thinkradio",
API_RADIO_BATTERY_PERCENT: 54,
API_RADIO_COVERAGE_PERCENT: 76,
}
return {}
def mock_get_device_status(device: Device) -> dict[str, Any]:
"""Mock API device status."""
@ -470,6 +502,10 @@ async def async_init_integration(
config_entry.add_to_hass(hass)
with (
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_config",
side_effect=mock_get_device_config,
),
patch(
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_device_status",
side_effect=mock_get_device_status,