1
mirror of https://github.com/home-assistant/core synced 2024-09-15 17:29:45 +02:00

Set Fahrenheit reporting precision to tenths for Homekit Controller climate entities (#50415)

This commit is contained in:
jjlawren 2021-05-25 12:32:59 -05:00 committed by GitHub
parent 3d41a66673
commit fe75a1bb9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -36,7 +36,7 @@ from homeassistant.components.climate.const import (
SWING_OFF,
SWING_VERTICAL,
)
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_TENTHS, TEMP_CELSIUS
from homeassistant.core import callback
from . import KNOWN_DEVICES, HomeKitEntity
@ -323,6 +323,11 @@ class HomeKitHeaterCoolerEntity(HomeKitEntity, ClimateEntity):
"""Return the unit of measurement."""
return TEMP_CELSIUS
@property
def precision(self):
"""Return the precision of the system."""
return PRECISION_TENTHS
class HomeKitClimateEntity(HomeKitEntity, ClimateEntity):
"""Representation of a Homekit climate device."""
@ -536,6 +541,11 @@ class HomeKitClimateEntity(HomeKitEntity, ClimateEntity):
"""Return the unit of measurement."""
return TEMP_CELSIUS
@property
def precision(self):
"""Return the precision of the system."""
return PRECISION_TENTHS
ENTITY_TYPES = {
ServicesTypes.HEATER_COOLER: HomeKitHeaterCoolerEntity,

View File

@ -1,4 +1,6 @@
"""Basic checks for HomeKitclimate."""
from unittest.mock import patch
from aiohomekit.model.characteristics import (
ActivationStateValues,
CharacteristicsTypes,
@ -19,6 +21,7 @@ from homeassistant.components.climate.const import (
SERVICE_SET_SWING_MODE,
SERVICE_SET_TEMPERATURE,
)
from homeassistant.const import TEMP_FAHRENHEIT
from tests.components.homekit_controller.common import setup_test_component
@ -445,6 +448,11 @@ async def test_climate_read_thermostat_state(hass, utcnow):
state = await helper.poll_and_get_state()
assert state.state == HVAC_MODE_HEAT_COOL
# Ensure converted Fahrenheit precision is reported in tenths
with patch.object(hass.config.units, "temperature_unit", TEMP_FAHRENHEIT):
state = await helper.poll_and_get_state()
assert state.attributes["current_temperature"] == 69.8
async def test_hvac_mode_vs_hvac_action(hass, utcnow):
"""Check that we haven't conflated hvac_mode and hvac_action."""