Use the temperature step Airzone reports (#180476)

This commit is contained in:
Franck Nijhof
2026-08-28 16:57:39 +02:00
committed by GitHub
parent e4d7d723c7
commit 01c3ee0b1b
5 changed files with 15 additions and 13 deletions
+3 -2
View File
@@ -25,6 +25,7 @@ from aioairzone.const import (
AZD_TEMP_MAX,
AZD_TEMP_MIN,
AZD_TEMP_SET,
AZD_TEMP_STEP,
AZD_TEMP_UNIT,
AZD_ZONES,
)
@@ -48,7 +49,7 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .const import API_TEMPERATURE_STEP, TEMP_UNIT_LIB_TO_HASS
from .const import TEMP_UNIT_LIB_TO_HASS
from .coordinator import AirzoneConfigEntry, AirzoneUpdateCoordinator
from .entity import AirzoneZoneEntity
@@ -150,7 +151,7 @@ class AirzoneClimate(AirzoneZoneEntity, ClimateEntity):
| ClimateEntityFeature.TURN_OFF
| ClimateEntityFeature.TURN_ON
)
self._attr_target_temperature_step = API_TEMPERATURE_STEP
self._attr_target_temperature_step = self.get_airzone_value(AZD_TEMP_STEP)
self._attr_temperature_unit = TEMP_UNIT_LIB_TO_HASS[
self.get_airzone_value(AZD_TEMP_UNIT)
]
@@ -10,7 +10,6 @@ DOMAIN: Final = "airzone"
MANUFACTURER: Final = "Airzone"
AIOAIRZONE_DEVICE_TIMEOUT_SEC: Final = 10
API_TEMPERATURE_STEP: Final = 0.5
TEMP_UNIT_LIB_TO_HASS: Final[dict[TemperatureUnit, str]] = {
TemperatureUnit.CELSIUS: UnitOfTemperature.CELSIUS,
@@ -36,6 +36,7 @@
'speed': 0,
'speeds': 3,
'systemID': 1,
'temp_step': 1,
'thermos_firmware': '3.51',
'thermos_radio': 0,
'thermos_type': 2,
@@ -446,7 +447,7 @@
'temp-max': 30.0,
'temp-min': 15.0,
'temp-set': 19.1,
'temp-step': 0.5,
'temp-step': 1.0,
'temp-unit': 0,
'thermostat-fw': '3.51',
'thermostat-model': 'Blueface Zero',
+8 -9
View File
@@ -19,7 +19,6 @@ from aioairzone.const import (
from aioairzone.exceptions import AirzoneError
import pytest
from homeassistant.components.airzone.const import API_TEMPERATURE_STEP
from homeassistant.components.airzone.coordinator import SCAN_INTERVAL
from homeassistant.components.climate import (
ATTR_CURRENT_HUMIDITY,
@@ -87,7 +86,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 1.0
assert state.attributes.get(ATTR_TEMPERATURE) == 19.4
state = hass.states.get("climate.dorm_1")
@@ -106,7 +105,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 0.5
assert state.attributes.get(ATTR_TEMPERATURE) == 19.3
state = hass.states.get("climate.dorm_2")
@@ -125,7 +124,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 0.5
assert state.attributes.get(ATTR_TEMPERATURE) == 19.5
state = hass.states.get("climate.dorm_ppal")
@@ -148,7 +147,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 0.5
assert state.attributes.get(ATTR_TEMPERATURE) == 19.2
state = hass.states.get("climate.salon")
@@ -172,7 +171,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 1.0
assert state.attributes.get(ATTR_TEMPERATURE) == 19.1
state = hass.states.get("climate.airzone_2_1")
@@ -194,7 +193,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 0.5
assert state.attributes.get(ATTR_TEMPERATURE) == 19.0
state = hass.states.get("climate.dkn_plus")
@@ -221,7 +220,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 32.2
assert state.attributes.get(ATTR_MIN_TEMP) == 17.8
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 1.0
assert state.attributes.get(ATTR_TARGET_TEMP_HIGH) == 25.0
assert state.attributes.get(ATTR_TARGET_TEMP_LOW) == 22.8
@@ -239,7 +238,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
]
assert state.attributes.get(ATTR_MAX_TEMP) == 30
assert state.attributes.get(ATTR_MIN_TEMP) == 15
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP
assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == 0.5
assert state.attributes.get(ATTR_TEMPERATURE) == 20.0
HVAC_MOCK_CHANGED = copy.deepcopy(HVAC_MOCK)
+2
View File
@@ -48,6 +48,7 @@ from aioairzone.const import (
API_SYSTEM_ID,
API_SYSTEM_TYPE,
API_SYSTEMS,
API_TEMP_STEP,
API_THERMOS_FIRMWARE,
API_THERMOS_RADIO,
API_THERMOS_TYPE,
@@ -96,6 +97,7 @@ HVAC_MOCK = {
API_ON: 0,
API_MAX_TEMP: 30,
API_MIN_TEMP: 15,
API_TEMP_STEP: 1,
API_SET_POINT: 19.1,
API_ROOM_TEMP: 19.6,
API_SLEEP: 0,