From f353b3fa5410842e56b69b096c204d102e6c218f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 21 Jun 2024 16:22:05 +0200 Subject: [PATCH] Add Airzone Cloud air/floor demand binary sensors (#120103) --- .../components/airzone_cloud/binary_sensor.py | 12 ++++++++++++ homeassistant/components/airzone_cloud/strings.json | 6 ++++++ tests/components/airzone_cloud/test_binary_sensor.py | 12 ++++++++++++ 3 files changed, 30 insertions(+) diff --git a/homeassistant/components/airzone_cloud/binary_sensor.py b/homeassistant/components/airzone_cloud/binary_sensor.py index f235d9b06d0..3013a2eeadc 100644 --- a/homeassistant/components/airzone_cloud/binary_sensor.py +++ b/homeassistant/components/airzone_cloud/binary_sensor.py @@ -8,8 +8,10 @@ from typing import Any, Final from aioairzone_cloud.const import ( AZD_ACTIVE, AZD_AIDOOS, + AZD_AIR_DEMAND, AZD_AQ_ACTIVE, AZD_ERRORS, + AZD_FLOOR_DEMAND, AZD_PROBLEMS, AZD_SYSTEMS, AZD_WARNINGS, @@ -77,10 +79,20 @@ ZONE_BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...] device_class=BinarySensorDeviceClass.RUNNING, key=AZD_ACTIVE, ), + AirzoneBinarySensorEntityDescription( + device_class=BinarySensorDeviceClass.RUNNING, + key=AZD_AIR_DEMAND, + translation_key="air_demand", + ), AirzoneBinarySensorEntityDescription( key=AZD_AQ_ACTIVE, translation_key="air_quality_active", ), + AirzoneBinarySensorEntityDescription( + device_class=BinarySensorDeviceClass.RUNNING, + key=AZD_FLOOR_DEMAND, + translation_key="floor_demand", + ), AirzoneBinarySensorEntityDescription( attributes={ "warnings": AZD_WARNINGS, diff --git a/homeassistant/components/airzone_cloud/strings.json b/homeassistant/components/airzone_cloud/strings.json index fe9455aa69e..daeb360719b 100644 --- a/homeassistant/components/airzone_cloud/strings.json +++ b/homeassistant/components/airzone_cloud/strings.json @@ -18,8 +18,14 @@ }, "entity": { "binary_sensor": { + "air_demand": { + "name": "Air demand" + }, "air_quality_active": { "name": "Air Quality active" + }, + "floor_demand": { + "name": "Floor demand" } }, "select": { diff --git a/tests/components/airzone_cloud/test_binary_sensor.py b/tests/components/airzone_cloud/test_binary_sensor.py index b81631728b4..8e065821057 100644 --- a/tests/components/airzone_cloud/test_binary_sensor.py +++ b/tests/components/airzone_cloud/test_binary_sensor.py @@ -41,9 +41,15 @@ async def test_airzone_create_binary_sensors(hass: HomeAssistant) -> None: assert state.attributes.get("warnings") is None # Zones + state = hass.states.get("binary_sensor.dormitorio_air_demand") + assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.dormitorio_air_quality_active") assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.dormitorio_floor_demand") + assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.dormitorio_problem") assert state.state == STATE_OFF assert state.attributes.get("warnings") is None @@ -51,9 +57,15 @@ async def test_airzone_create_binary_sensors(hass: HomeAssistant) -> None: state = hass.states.get("binary_sensor.dormitorio_running") assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.salon_air_demand") + assert state.state == STATE_ON + state = hass.states.get("binary_sensor.salon_air_quality_active") assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.salon_floor_demand") + assert state.state == STATE_OFF + state = hass.states.get("binary_sensor.salon_problem") assert state.state == STATE_OFF assert state.attributes.get("warnings") is None