"""Tests for the Airzone integration.""" from unittest.mock import patch from aioairzone.const import ( API_ACS_MAX_TEMP, API_ACS_MIN_TEMP, API_ACS_ON, API_ACS_POWER_MODE, API_ACS_SET_POINT, API_ACS_TEMP, API_AIR_DEMAND, API_COLD_ANGLE, API_COLD_STAGE, API_COLD_STAGES, API_COOL_MAX_TEMP, API_COOL_MIN_TEMP, API_COOL_SET_POINT, API_DATA, API_ERRORS, API_FLOOR_DEMAND, API_HEAT_ANGLE, API_HEAT_MAX_TEMP, API_HEAT_MIN_TEMP, API_HEAT_SET_POINT, API_HEAT_STAGE, API_HEAT_STAGES, API_HUMIDITY, API_MAC, API_MAX_TEMP, API_MIN_TEMP, API_MODE, API_MODES, API_NAME, API_ON, API_POWER, API_ROOM_TEMP, API_SET_POINT, API_SLEEP, API_SPEED, API_SPEEDS, API_SYSTEM_FIRMWARE, API_SYSTEM_ID, API_SYSTEM_TYPE, API_SYSTEMS, API_THERMOS_FIRMWARE, API_THERMOS_RADIO, API_THERMOS_TYPE, API_UNITS, API_VERSION, API_WIFI_CHANNEL, API_WIFI_RSSI, API_WS_AZ, API_WS_TYPE, API_ZONE_ID, ) from homeassistant.components.airzone import DOMAIN from homeassistant.const import CONF_HOST, CONF_ID, CONF_PORT from homeassistant.core import HomeAssistant from tests.common import MockConfigEntry CONFIG = { CONF_HOST: "192.168.1.100", CONF_PORT: 3000, } CONFIG_ID1 = { **CONFIG, CONF_ID: 1, } HVAC_MOCK = { API_SYSTEMS: [ { API_DATA: [ { API_SYSTEM_ID: 1, API_ZONE_ID: 1, API_NAME: "Salon", API_THERMOS_TYPE: 2, API_THERMOS_FIRMWARE: "3.51", API_THERMOS_RADIO: 0, API_ON: 0, API_MAX_TEMP: 30, API_MIN_TEMP: 15, API_SET_POINT: 19.1, API_ROOM_TEMP: 19.6, API_SLEEP: 0, API_MODES: [1, 4, 2, 3, 5], API_MODE: 3, API_COLD_STAGES: 1, API_COLD_STAGE: 1, API_HEAT_STAGES: 1, API_HEAT_STAGE: 1, API_HUMIDITY: 34, API_UNITS: 0, API_ERRORS: [], API_AIR_DEMAND: 0, API_FLOOR_DEMAND: 0, API_HEAT_ANGLE: 0, API_COLD_ANGLE: 0, API_SPEED: 0, API_SPEEDS: 3, }, { API_SYSTEM_ID: 1, API_ZONE_ID: 2, API_NAME: "Dorm Ppal", API_THERMOS_TYPE: 4, API_THERMOS_FIRMWARE: "3.33", API_THERMOS_RADIO: 1, API_ON: 1, API_MAX_TEMP: 30, API_MIN_TEMP: 15, API_SET_POINT: 19.2, API_ROOM_TEMP: 21.1, API_SLEEP: 30, API_MODE: 3, API_COLD_STAGES: 1, API_COLD_STAGE: 1, API_HEAT_STAGES: 3, API_HEAT_STAGE: 3, API_HUMIDITY: 39, API_UNITS: 0, API_ERRORS: [], API_AIR_DEMAND: 1, API_FLOOR_DEMAND: 1, API_HEAT_ANGLE: 1, API_COLD_ANGLE: 2, API_SPEED: 0, API_SPEEDS: 2, }, { API_SYSTEM_ID: 1, API_ZONE_ID: 3, API_NAME: "Dorm #1", API_THERMOS_TYPE: 4, API_THERMOS_FIRMWARE: "3.33", API_THERMOS_RADIO: 1, API_ON: 1, API_MAX_TEMP: 30, API_MIN_TEMP: 15, API_SET_POINT: 19.3, API_ROOM_TEMP: 20.8, API_SLEEP: 0, API_MODE: 3, API_COLD_STAGES: 1, API_COLD_STAGE: 1, API_HEAT_STAGES: 2, API_HEAT_STAGE: 2, API_HUMIDITY: 35, API_UNITS: 0, API_ERRORS: [], API_AIR_DEMAND: 0, API_FLOOR_DEMAND: 0, API_HEAT_ANGLE: 0, API_COLD_ANGLE: 0, }, { API_SYSTEM_ID: 1, API_ZONE_ID: 4, API_NAME: "Despacho", API_THERMOS_TYPE: 4, API_THERMOS_FIRMWARE: "3.33", API_THERMOS_RADIO: 1, API_ON: 0, API_MAX_TEMP: 86, API_MIN_TEMP: 59, API_SET_POINT: 66.92, API_ROOM_TEMP: 70.16, API_SLEEP: 0, API_MODE: 3, API_COLD_STAGES: 1, API_COLD_STAGE: 1, API_HEAT_STAGES: 1, API_HEAT_STAGE: 1, API_HUMIDITY: 36, API_UNITS: 1, API_ERRORS: [ { "Zone": "Low battery", }, ], API_AIR_DEMAND: 0, API_FLOOR_DEMAND: 0, API_HEAT_ANGLE: 0, API_COLD_ANGLE: 0, }, { API_SYSTEM_ID: 1, API_ZONE_ID: 5, API_NAME: "Dorm #2", API_THERMOS_TYPE: 4, API_THERMOS_FIRMWARE: "3.33", API_THERMOS_RADIO: 1, API_ON: 0, API_MAX_TEMP: 30, API_MIN_TEMP: 15, API_SET_POINT: 19.5, API_ROOM_TEMP: 20.5, API_SLEEP: 0, API_MODE: 3, API_COLD_STAGES: 1, API_COLD_STAGE: 1, API_HEAT_STAGES: 1, API_HEAT_STAGE: 1, API_HUMIDITY: 40, API_UNITS: 0, API_ERRORS: [], API_AIR_DEMAND: 0, API_FLOOR_DEMAND: 0, API_HEAT_ANGLE: 0, API_COLD_ANGLE: 0, }, ] }, { API_DATA: [ { API_SYSTEM_ID: 2, API_ZONE_ID: 1, API_ON: 0, API_MAX_TEMP: 30, API_MIN_TEMP: 15, API_SET_POINT: 19, API_ROOM_TEMP: 22.299999, API_COLD_STAGES: 1, API_COLD_STAGE: 1, API_HEAT_STAGES: 1, API_HEAT_STAGE: 1, API_HUMIDITY: 62, API_UNITS: 0, API_ERRORS: [], API_SPEED: 0, API_SPEEDS: 4, }, ] }, { API_DATA: [ { API_SYSTEM_ID: 3, API_ZONE_ID: 1, API_NAME: "DKN Plus", API_ON: 1, API_COOL_SET_POINT: 77, API_COOL_MAX_TEMP: 90, API_COOL_MIN_TEMP: 64, API_HEAT_SET_POINT: 73, API_HEAT_MAX_TEMP: 86, API_HEAT_MIN_TEMP: 50, API_MAX_TEMP: 90, API_MIN_TEMP: 64, API_SET_POINT: 73, API_ROOM_TEMP: 71, API_MODES: [4, 2, 3, 5, 7], API_MODE: 7, API_SPEEDS: 5, API_SPEED: 2, API_COLD_STAGES: 0, API_COLD_STAGE: 0, API_HEAT_STAGES: 0, API_HEAT_STAGE: 0, API_HUMIDITY: 0, API_UNITS: 1, API_ERRORS: [], API_AIR_DEMAND: 1, API_FLOOR_DEMAND: 0, }, ] }, ] } HVAC_DHW_MOCK = { API_DATA: { API_SYSTEM_ID: 0, API_ACS_TEMP: 43, API_ACS_SET_POINT: 45, API_ACS_MAX_TEMP: 75, API_ACS_MIN_TEMP: 30, API_ACS_ON: 1, API_ACS_POWER_MODE: 0, } } HVAC_SYSTEMS_MOCK = { API_SYSTEMS: [ { API_SYSTEM_ID: 1, API_POWER: 0, API_SYSTEM_FIRMWARE: "3.31", API_SYSTEM_TYPE: 1, } ] } HVAC_VERSION_MOCK = { API_VERSION: "1.62", } HVAC_WEBSERVER_MOCK = { API_MAC: "11:22:33:44:55:66", API_WS_TYPE: API_WS_AZ, API_WIFI_CHANNEL: 6, API_WIFI_RSSI: -42, } async def async_init_integration( hass: HomeAssistant, ) -> None: """Set up the Airzone integration in Home Assistant.""" config_entry = MockConfigEntry( data=CONFIG, entry_id="6e7a0798c1734ba81d26ced0e690eaec", domain=DOMAIN, unique_id="airzone_unique_id", ) config_entry.add_to_hass(hass) with patch( "homeassistant.components.airzone.AirzoneLocalApi.get_dhw", return_value=HVAC_DHW_MOCK, ), patch( "homeassistant.components.airzone.AirzoneLocalApi.get_hvac", return_value=HVAC_MOCK, ), patch( "homeassistant.components.airzone.AirzoneLocalApi.get_hvac_systems", return_value=HVAC_SYSTEMS_MOCK, ), patch( "homeassistant.components.airzone.AirzoneLocalApi.get_version", return_value=HVAC_VERSION_MOCK, ), patch( "homeassistant.components.airzone.AirzoneLocalApi.get_webserver", return_value=HVAC_WEBSERVER_MOCK, ): await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done()