home-assistant/core · error · HomeAssistantError

set_temperature_error

set_temperature_error

Error message

An error occurred while setting the temperature

What it means

HomeAssistantError raised by the bsblan water-heater entity when `client.set_hot_water(SetHotWaterParam(nominal_setpoint=temperature))` raises BSBLANError, translation key `set_temperature_error`. It makes `water_heater.set_temperature` fail visibly instead of silently keeping stale state; a coordinator refresh follows on success only.

Source

Thrown at homeassistant/components/bsblan/water_heater.py:172

    @property
    @override
    def target_temperature(self) -> float | None:
        """Return the temperature we try to reach."""
        if (target_temp := self._dhw.nominal_setpoint) is None:
            return None
        return target_temp.value

    @override
    async def async_set_temperature(self, **kwargs: Any) -> None:
        """Set new target temperature."""
        temperature = kwargs.get(ATTR_TEMPERATURE)
        try:
            await self.coordinator.client.set_hot_water(
                SetHotWaterParam(nominal_setpoint=temperature)
            )
        except BSBLANError as err:
            raise HomeAssistantError(
                translation_domain=DOMAIN,
                translation_key="set_temperature_error",
            ) from err

        await self.coordinator.async_request_refresh()

    @override
    async def async_set_operation_mode(self, operation_mode: str) -> None:
        """Set new operation mode."""
        # Base class validates operation_mode is in operation_list before calling
        bsblan_mode = HA_TO_BSBLAN_OPERATION_MODE[operation_mode]
        try:
            # Send numeric value as string - BSB-LAN API expects numeric mode values
            await self.coordinator.client.set_hot_water(
                SetHotWaterParam(operating_mode=str(bsblan_mode))
            )
        except BSBLANError as err:
            raise HomeAssistantError(

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Retry once the device is confirmed online (state data updating).
  2. Keep values within the water-heater entity's min/max temperature attributes.
  3. If persistent, test the same parameter write in the BSB-LAN web UI to see the device-side rejection reason.
Defensive patterns

Strategy: try-catch

Try / catch

try:
    await client.set_hot_water(SetHotWaterParam(nominal_setpoint=temp))
except BSBLANError as err:
    raise HomeAssistantError(translation_domain=DOMAIN, translation_key="set_temperature_error") from err

Prevention

When it happens

Trigger: Calling `water_heater.set_temperature` on a bsblan water heater while the device is unreachable, or writing a nominal setpoint outside the range the device accepts for DHW.

Common situations: Device offline when an automation or dashboard card pushes a new DHW temperature; setpoints outside the boiler's configured min/max; serial bus congestion from simultaneous polling.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/51378b3449398544. Report an issue: GitHub.