diff --git a/homeassistant/components/airzone/__init__.py b/homeassistant/components/airzone/__init__.py index 0555b888fd8..6952ac2a42d 100644 --- a/homeassistant/components/airzone/__init__.py +++ b/homeassistant/components/airzone/__init__.py @@ -4,8 +4,15 @@ from __future__ import annotations from typing import Any from aioairzone.common import ConnectionOptions -from aioairzone.const import AZD_ID, AZD_NAME, AZD_SYSTEM, AZD_ZONES -from aioairzone.localapi_device import AirzoneLocalApi +from aioairzone.const import ( + AZD_ID, + AZD_NAME, + AZD_SYSTEM, + AZD_THERMOSTAT_FW, + AZD_THERMOSTAT_MODEL, + AZD_ZONES, +) +from aioairzone.localapi import AirzoneLocalApi from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST, CONF_PORT, Platform @@ -33,15 +40,18 @@ class AirzoneEntity(CoordinatorEntity[AirzoneUpdateCoordinator]): """Initialize.""" super().__init__(coordinator) - self._attr_device_info: DeviceInfo = { - "identifiers": {(DOMAIN, f"{entry.entry_id}_{system_zone_id}")}, - "manufacturer": MANUFACTURER, - "name": f"Airzone [{system_zone_id}] {zone_data[AZD_NAME]}", - } self.system_id = zone_data[AZD_SYSTEM] self.system_zone_id = system_zone_id self.zone_id = zone_data[AZD_ID] + self._attr_device_info: DeviceInfo = { + "identifiers": {(DOMAIN, f"{entry.entry_id}_{system_zone_id}")}, + "manufacturer": MANUFACTURER, + "model": self.get_zone_value(AZD_THERMOSTAT_MODEL), + "name": f"Airzone [{system_zone_id}] {zone_data[AZD_NAME]}", + "sw_version": self.get_zone_value(AZD_THERMOSTAT_FW), + } + def get_zone_value(self, key): """Return zone value by key.""" value = None diff --git a/homeassistant/components/airzone/climate.py b/homeassistant/components/airzone/climate.py index 763603a758b..aac53ec35db 100644 --- a/homeassistant/components/airzone/climate.py +++ b/homeassistant/components/airzone/climate.py @@ -13,6 +13,7 @@ from aioairzone.const import ( API_ZONE_ID, AZD_DEMAND, AZD_HUMIDITY, + AZD_MASTER, AZD_MODE, AZD_MODES, AZD_NAME, @@ -119,12 +120,8 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity): self.get_zone_value(AZD_TEMP_UNIT) ] self._attr_hvac_modes = [ - HVAC_MODE_LIB_TO_HASS[mode] - for mode in self.get_zone_value(AZD_MODES) - or [self.get_zone_value(AZD_MODE)] + HVAC_MODE_LIB_TO_HASS[mode] for mode in self.get_zone_value(AZD_MODES) ] - if HVAC_MODE_OFF not in self._attr_hvac_modes: - self._attr_hvac_modes.append(HVAC_MODE_OFF) self._async_update_attrs() async def _async_update_hvac_params(self, params) -> None: @@ -147,7 +144,7 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity): if hvac_mode == HVAC_MODE_OFF: params[API_ON] = 0 else: - if self.get_zone_value(AZD_MODES): + if self.get_zone_value(AZD_MASTER): mode = HVAC_MODE_HASS_TO_LIB[hvac_mode] if mode != self.get_zone_value(AZD_MODE): params[API_MODE] = mode diff --git a/homeassistant/components/airzone/config_flow.py b/homeassistant/components/airzone/config_flow.py index 47281deab73..57dde088820 100644 --- a/homeassistant/components/airzone/config_flow.py +++ b/homeassistant/components/airzone/config_flow.py @@ -5,7 +5,7 @@ from typing import Any from aioairzone.common import ConnectionOptions from aioairzone.exceptions import InvalidHost -from aioairzone.localapi_device import AirzoneLocalApi +from aioairzone.localapi import AirzoneLocalApi from aiohttp.client_exceptions import ClientConnectorError import voluptuous as vol diff --git a/homeassistant/components/airzone/coordinator.py b/homeassistant/components/airzone/coordinator.py index 40d87a16b27..f81b75b42bf 100644 --- a/homeassistant/components/airzone/coordinator.py +++ b/homeassistant/components/airzone/coordinator.py @@ -4,7 +4,7 @@ from __future__ import annotations from datetime import timedelta import logging -from aioairzone.localapi_device import AirzoneLocalApi +from aioairzone.localapi import AirzoneLocalApi from aiohttp.client_exceptions import ClientConnectorError import async_timeout diff --git a/homeassistant/components/airzone/manifest.json b/homeassistant/components/airzone/manifest.json index 49167699e42..019c3347027 100644 --- a/homeassistant/components/airzone/manifest.json +++ b/homeassistant/components/airzone/manifest.json @@ -3,7 +3,7 @@ "name": "Airzone", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/airzone", - "requirements": ["aioairzone==0.1.0"], + "requirements": ["aioairzone==0.2.1"], "codeowners": ["@Noltari"], "iot_class": "local_polling", "loggers": ["aioairzone"] diff --git a/requirements_all.txt b/requirements_all.txt index 36432c9c5ea..ce78324ce8d 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -110,7 +110,7 @@ aio_geojson_nsw_rfs_incidents==0.4 aio_georss_gdacs==0.5 # homeassistant.components.airzone -aioairzone==0.1.0 +aioairzone==0.2.1 # homeassistant.components.ambient_station aioambient==2021.11.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 0d984a4a06c..d43357bf29d 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -91,7 +91,7 @@ aio_geojson_nsw_rfs_incidents==0.4 aio_georss_gdacs==0.5 # homeassistant.components.airzone -aioairzone==0.1.0 +aioairzone==0.2.1 # homeassistant.components.ambient_station aioambient==2021.11.0