home-assistant/core · error · HomeAssistantError
set_schedule_failed
set_schedule_failed
Error message
Failed to set hot water schedule: {error} What it means
HomeAssistantError raised when `client.set_hot_water_schedule(dhw_schedule)` raises BSBLANError while applying a validated weekly schedule. Translation key `set_schedule_failed` embeds the underlying error string via the `error` placeholder. Validation has already succeeded at this point, so this is purely a device-communication or device-rejection failure.
Source
Thrown at homeassistant/components/bsblan/services.py:199
translation_placeholders={"device_name": _device_name(device_entry)},
)
async def set_hot_water_schedule(service_call: ServiceCall) -> None:
"""Set hot water heating schedule."""
entry, device_entry = _resolve_config_entry(service_call)
_ensure_water_heater_device(device_entry)
client = entry.runtime_data.client
days = _build_weekly_schedule_days(service_call)
dhw_schedule = DHWSchedule(**days)
LOGGER.debug("Setting hot water schedule: %s", dhw_schedule)
try:
await client.set_hot_water_schedule(dhw_schedule)
except BSBLANError as err:
raise HomeAssistantError(
translation_domain=DOMAIN,
translation_key="set_schedule_failed",
translation_placeholders={"error": str(err)},
) from err
# Refresh the slow coordinator to get the updated schedule
await entry.runtime_data.slow_coordinator.async_request_refresh()
async def async_sync_time(service_call: ServiceCall) -> None:
"""Synchronize BSB-LAN device time with Home Assistant."""
entry, device_entry = _resolve_config_entry(service_call)
client = entry.runtime_data.client
await async_sync_device_time(
client, device_entry.name or service_call.data[ATTR_DEVICE_ID]
)
View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Confirm the device is online and state entities update, then retry the action.
- Verify the boiler actually supports a DHW schedule via the BSB-LAN web UI (try setting a schedule manually there).
- Update BSB-LAN firmware and Home Assistant so schedule payload formats match.
- Check debug logs for the embedded `error` string, which carries the library-level reason.
Defensive patterns
Strategy: try-catch
Try / catch
try:
await client.set_hot_water_schedule(dhw_schedule)
except BSBLANError as err:
raise HomeAssistantError(
translation_domain=DOMAIN, translation_key="set_schedule_failed",
translation_placeholders={"error": str(err)},
) from err Prevention
- Run schedule writes only when the device's state entities are updating.
- Verify the boiler supports DHW scheduling from its web UI first.
- Set continue_on_error on scheduled automation runs.
When it happens
Trigger: Calling `bsblan.set_hot_water_schedule` against an unreachable device, or when the device rejects the schedule payload (e.g. DHW schedule parameters not supported by the boiler's type/brand, or bus busy).
Common situations: Boiler models without DHW timer support; transient connectivity loss between validation and write; firmware that requires a different parameter format for DHW schedules.
Related errors
- set_temperature_error
- set_operation_mode_error
- set_data_error
- end_time_before_start_time
- not_a_water_heater_device
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/49eb5aa418f31b5d.
Report an issue: GitHub.