Add Aidoo sensors to Airzone Cloud (#93541)
This commit is contained in:
parent
8b662dc94f
commit
6aa01e1441
7 changed files with 159 additions and 14 deletions
|
@ -4,6 +4,7 @@ from typing import Any
|
|||
from unittest.mock import patch
|
||||
|
||||
from aioairzone_cloud.const import (
|
||||
API_AZ_AIDOO,
|
||||
API_AZ_SYSTEM,
|
||||
API_AZ_ZONE,
|
||||
API_CELSIUS,
|
||||
|
@ -38,6 +39,7 @@ from aioairzone_cloud.const import (
|
|||
API_ZONE_NUMBER,
|
||||
)
|
||||
from aioairzone_cloud.device import Device
|
||||
from aioairzone_cloud.webserver import WebServer
|
||||
|
||||
from homeassistant.components.airzone_cloud import DOMAIN
|
||||
from homeassistant.const import CONF_ID, CONF_PASSWORD, CONF_USERNAME
|
||||
|
@ -46,6 +48,7 @@ from homeassistant.core import HomeAssistant
|
|||
from tests.common import MockConfigEntry
|
||||
|
||||
WS_ID = "11:22:33:44:55:66"
|
||||
WS_ID_AIDOO = "11:22:33:44:55:67"
|
||||
|
||||
CONFIG = {
|
||||
CONF_ID: "inst1",
|
||||
|
@ -88,6 +91,17 @@ GET_INSTALLATION_MOCK = {
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
API_NAME: "Aidoo Group",
|
||||
API_DEVICES: [
|
||||
{
|
||||
API_DEVICE_ID: "aidoo1",
|
||||
API_NAME: "Bron",
|
||||
API_TYPE: API_AZ_AIDOO,
|
||||
API_WS_ID: WS_ID_AIDOO,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
|
@ -98,6 +112,7 @@ GET_INSTALLATIONS_MOCK = {
|
|||
API_NAME: "House",
|
||||
API_WS_IDS: [
|
||||
WS_ID,
|
||||
WS_ID_AIDOO,
|
||||
],
|
||||
},
|
||||
],
|
||||
|
@ -120,10 +135,37 @@ GET_WEBSERVER_MOCK = {
|
|||
},
|
||||
}
|
||||
|
||||
GET_WEBSERVER_MOCK_AIDOO = {
|
||||
API_WS_TYPE: "ws_aidoo",
|
||||
API_CONFIG: {
|
||||
API_WS_FW: "3.13",
|
||||
API_STAT_SSID: "Wifi",
|
||||
API_STAT_CHANNEL: 1,
|
||||
API_STAT_AP_MAC: "00:00:00:00:00:01",
|
||||
},
|
||||
API_STATUS: {
|
||||
API_IS_CONNECTED: True,
|
||||
API_STAT_QUALITY: 4,
|
||||
API_STAT_RSSI: -77,
|
||||
API_CONNECTION_DATE: "2023-05-24 17:00:52 +0200",
|
||||
API_DISCONNECTION_DATE: "2023-05-24 17:00:25 +0200",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def mock_get_device_status(device: Device) -> dict[str, Any]:
|
||||
"""Mock API device status."""
|
||||
|
||||
if device.get_id() == "aidoo1":
|
||||
return {
|
||||
API_ERRORS: [],
|
||||
API_IS_CONNECTED: True,
|
||||
API_LOCAL_TEMP: {
|
||||
API_CELSIUS: 21,
|
||||
API_FAH: 70,
|
||||
},
|
||||
API_WARNINGS: [],
|
||||
}
|
||||
if device.get_id() == "system1":
|
||||
return {
|
||||
API_ERRORS: [],
|
||||
|
@ -151,6 +193,15 @@ def mock_get_device_status(device: Device) -> dict[str, Any]:
|
|||
}
|
||||
|
||||
|
||||
def mock_get_webserver(webserver: WebServer, devices: bool) -> dict[str, Any]:
|
||||
"""Mock API get webserver."""
|
||||
|
||||
if webserver.get_id() == WS_ID_AIDOO:
|
||||
return GET_WEBSERVER_MOCK_AIDOO
|
||||
|
||||
return GET_WEBSERVER_MOCK
|
||||
|
||||
|
||||
async def async_init_integration(
|
||||
hass: HomeAssistant,
|
||||
) -> None:
|
||||
|
@ -174,7 +225,7 @@ async def async_init_integration(
|
|||
return_value=GET_INSTALLATIONS_MOCK,
|
||||
), patch(
|
||||
"homeassistant.components.airzone_cloud.AirzoneCloudApi.api_get_webserver",
|
||||
return_value=GET_WEBSERVER_MOCK,
|
||||
side_effect=mock_get_webserver,
|
||||
), patch(
|
||||
"homeassistant.components.airzone_cloud.AirzoneCloudApi.login",
|
||||
return_value=None,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue