diff --git a/homeassistant/components/vicare/number.py b/homeassistant/components/vicare/number.py index f92241ceace..c0564170274 100644 --- a/homeassistant/components/vicare/number.py +++ b/homeassistant/components/vicare/number.py @@ -49,6 +49,23 @@ class ViCareNumberEntityDescription(NumberEntityDescription, ViCareRequiredKeysM stepping_getter: Callable[[PyViCareDevice], float | None] | None = None +DEVICE_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = ( + ViCareNumberEntityDescription( + key="dhw_secondary_temperature", + translation_key="dhw_secondary_temperature", + entity_category=EntityCategory.CONFIG, + device_class=NumberDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + value_getter=lambda api: api.getDomesticHotWaterConfiguredTemperature2(), + value_setter=lambda api, value: api.setDomesticHotWaterTemperature2(value), + # no getters for min, max, stepping exposed yet, using static values + native_min_value=10, + native_max_value=60, + native_step=1, + ), +) + + CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = ( ViCareNumberEntityDescription( key="heating curve shift", @@ -216,18 +233,32 @@ def _build_entities( ) -> list[ViCareNumber]: """Create ViCare number entities for a device.""" - return [ + entities: list[ViCareNumber] = [ ViCareNumber( - circuit, + device.api, device.config, description, ) for device in device_list - for circuit in get_circuits(device.api) - for description in CIRCUIT_ENTITY_DESCRIPTIONS - if is_supported(description.key, description, circuit) + for description in DEVICE_ENTITY_DESCRIPTIONS + if is_supported(description.key, description, device.api) ] + entities.extend( + [ + ViCareNumber( + circuit, + device.config, + description, + ) + for device in device_list + for circuit in get_circuits(device.api) + for description in CIRCUIT_ENTITY_DESCRIPTIONS + if is_supported(description.key, description, circuit) + ] + ) + return entities + async def async_setup_entry( hass: HomeAssistant, diff --git a/homeassistant/components/vicare/strings.json b/homeassistant/components/vicare/strings.json index 5a69cae4d29..f81d01b71cf 100644 --- a/homeassistant/components/vicare/strings.json +++ b/homeassistant/components/vicare/strings.json @@ -89,6 +89,9 @@ }, "comfort_heating_temperature": { "name": "[%key:component::vicare::entity::number::comfort_temperature::name%]" + }, + "dhw_secondary_temperature": { + "name": "DHW secondary temperature" } }, "sensor": {