Add entity translations to incomfort (#118876)
This commit is contained in:
parent
60c06732b1
commit
c4cfd9adf0
6 changed files with 83 additions and 127 deletions
|
@ -32,7 +32,7 @@ class IncomfortBinarySensorEntityDescription(BinarySensorEntityDescription):
|
|||
SENSOR_TYPES: tuple[IncomfortBinarySensorEntityDescription, ...] = (
|
||||
IncomfortBinarySensorEntityDescription(
|
||||
key="failed",
|
||||
name="Fault",
|
||||
translation_key="fault",
|
||||
device_class=BinarySensorDeviceClass.PROBLEM,
|
||||
value_key="is_failed",
|
||||
extra_state_attributes_fn=lambda status: {"fault_code": status["fault_code"]},
|
||||
|
|
|
@ -22,10 +22,6 @@ from . import InComfortConfigEntry
|
|||
from .coordinator import InComfortDataCoordinator
|
||||
from .entity import IncomfortBoilerEntity
|
||||
|
||||
INCOMFORT_HEATER_TEMP = "CV Temp"
|
||||
INCOMFORT_PRESSURE = "CV Pressure"
|
||||
INCOMFORT_TAP_TEMP = "Tap Temp"
|
||||
|
||||
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class IncomfortSensorEntityDescription(SensorEntityDescription):
|
||||
|
@ -33,15 +29,11 @@ class IncomfortSensorEntityDescription(SensorEntityDescription):
|
|||
|
||||
value_key: str
|
||||
extra_key: str | None = None
|
||||
# IncomfortSensor does not support UNDEFINED or None,
|
||||
# restrict the type to str
|
||||
name: str = ""
|
||||
|
||||
|
||||
SENSOR_TYPES: tuple[IncomfortSensorEntityDescription, ...] = (
|
||||
IncomfortSensorEntityDescription(
|
||||
key="cv_pressure",
|
||||
name=INCOMFORT_PRESSURE,
|
||||
device_class=SensorDeviceClass.PRESSURE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
native_unit_of_measurement=UnitOfPressure.BAR,
|
||||
|
@ -49,7 +41,6 @@ SENSOR_TYPES: tuple[IncomfortSensorEntityDescription, ...] = (
|
|||
),
|
||||
IncomfortSensorEntityDescription(
|
||||
key="cv_temp",
|
||||
name=INCOMFORT_HEATER_TEMP,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
|
@ -58,7 +49,7 @@ SENSOR_TYPES: tuple[IncomfortSensorEntityDescription, ...] = (
|
|||
),
|
||||
IncomfortSensorEntityDescription(
|
||||
key="tap_temp",
|
||||
name=INCOMFORT_TAP_TEMP,
|
||||
translation_key="tap_temperature",
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
|
|
|
@ -52,5 +52,17 @@
|
|||
"title": "YAML import failed because of timeout issues",
|
||||
"description": "Configuring {integration_title} using YAML is being removed but there was a timeout while connecting to your {integration_title} while importing your existing configuration.\nSetup will not proceed.\n\nVerify that your {integration_title} is operating correctly and restart Home Assistant to attempt the import again.\n\nAlternatively, you may remove the `{domain}` configuration from your configuration.yaml entirely, restart Home Assistant, and add the {integration_title} integration manually."
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"binary_sensor": {
|
||||
"fault": {
|
||||
"name": "Fault"
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
"tap_temperature": {
|
||||
"name": "Tap temperature"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
'platform': 'incomfort',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'translation_key': 'fault',
|
||||
'unique_id': 'c0ffeec0ffee_failed',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
|
@ -47,50 +47,3 @@
|
|||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platforms[binary_sensor.boiler_fault-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'binary_sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'binary_sensor.boiler_fault',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': 'Fault',
|
||||
'platform': 'incomfort',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': 'c0ffeec0ffee_failed',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platforms[binary_sensor.boiler_fault-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'fault_code': None,
|
||||
'friendly_name': 'Boiler Fault',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'binary_sensor.boiler_fault',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# serializer version: 1
|
||||
# name: test_setup_platform[sensor.boiler_cv_pressure-entry]
|
||||
# name: test_setup_platform[sensor.boiler_pressure-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
|
@ -13,7 +13,7 @@
|
|||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.boiler_cv_pressure',
|
||||
'entity_id': 'sensor.boiler_pressure',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
|
@ -25,7 +25,7 @@
|
|||
}),
|
||||
'original_device_class': <SensorDeviceClass.PRESSURE: 'pressure'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'CV Pressure',
|
||||
'original_name': 'Pressure',
|
||||
'platform': 'incomfort',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
|
@ -34,23 +34,23 @@
|
|||
'unit_of_measurement': <UnitOfPressure.BAR: 'bar'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_cv_pressure-state]
|
||||
# name: test_setup_platform[sensor.boiler_pressure-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'pressure',
|
||||
'friendly_name': 'Boiler CV Pressure',
|
||||
'friendly_name': 'Boiler Pressure',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfPressure.BAR: 'bar'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.boiler_cv_pressure',
|
||||
'entity_id': 'sensor.boiler_pressure',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '1.86',
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_cv_temp-entry]
|
||||
# name: test_setup_platform[sensor.boiler_tap_temperature-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
|
@ -64,7 +64,7 @@
|
|||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.boiler_cv_temp',
|
||||
'entity_id': 'sensor.boiler_tap_temperature',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
|
@ -76,7 +76,59 @@
|
|||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'CV Temp',
|
||||
'original_name': 'Tap temperature',
|
||||
'platform': 'incomfort',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'tap_temperature',
|
||||
'unique_id': 'c0ffeec0ffee_tap_temp',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_tap_temperature-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'Boiler Tap temperature',
|
||||
'is_tapping': False,
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.boiler_tap_temperature',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '30.21',
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_temperature-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.boiler_temperature',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Temperature',
|
||||
'platform': 'incomfort',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
|
@ -85,72 +137,20 @@
|
|||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_cv_temp-state]
|
||||
# name: test_setup_platform[sensor.boiler_temperature-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'Boiler CV Temp',
|
||||
'friendly_name': 'Boiler Temperature',
|
||||
'is_pumping': False,
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.boiler_cv_temp',
|
||||
'entity_id': 'sensor.boiler_temperature',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '35.34',
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_tap_temp-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.boiler_tap_temp',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Tap Temp',
|
||||
'platform': 'incomfort',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': 'c0ffeec0ffee_tap_temp',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_setup_platform[sensor.boiler_tap_temp-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'Boiler Tap Temp',
|
||||
'is_tapping': False,
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.boiler_tap_temp',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '30.21',
|
||||
})
|
||||
# ---
|
||||
|
|
|
@ -41,7 +41,7 @@ async def test_coordinator_updates(
|
|||
assert state.attributes["current_temperature"] == 21.4
|
||||
mock_incomfort().mock_room_status["room_temp"] = 20.91
|
||||
|
||||
state = hass.states.get("sensor.boiler_cv_pressure")
|
||||
state = hass.states.get("sensor.boiler_pressure")
|
||||
assert state is not None
|
||||
assert state.state == "1.86"
|
||||
mock_incomfort().mock_heater_status["pressure"] = 1.84
|
||||
|
@ -54,7 +54,7 @@ async def test_coordinator_updates(
|
|||
assert state is not None
|
||||
assert state.attributes["current_temperature"] == 20.9
|
||||
|
||||
state = hass.states.get("sensor.boiler_cv_pressure")
|
||||
state = hass.states.get("sensor.boiler_pressure")
|
||||
assert state is not None
|
||||
assert state.state == "1.84"
|
||||
|
||||
|
@ -77,7 +77,7 @@ async def test_coordinator_update_fails(
|
|||
) -> None:
|
||||
"""Test the incomfort coordinator update fails."""
|
||||
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
||||
state = hass.states.get("sensor.boiler_cv_pressure")
|
||||
state = hass.states.get("sensor.boiler_pressure")
|
||||
assert state is not None
|
||||
assert state.state == "1.86"
|
||||
|
||||
|
@ -88,6 +88,6 @@ async def test_coordinator_update_fails(
|
|||
async_fire_time_changed(hass)
|
||||
await hass.async_block_till_done(wait_background_tasks=True)
|
||||
|
||||
state = hass.states.get("sensor.boiler_cv_pressure")
|
||||
state = hass.states.get("sensor.boiler_pressure")
|
||||
assert state is not None
|
||||
assert state.state == STATE_UNAVAILABLE
|
||||
|
|
Loading…
Add table
Reference in a new issue