BACnet-schedules lezen en schrijven in Home Assistant

Een BACnet Schedule-object vertelt een controller welke waarde hij op welk moment moet aansturen. Het combineert een weekschema, uitzonderingen voor bijzondere dagen, een standaardwaarde en een geldigheidsperiode.

Schedule-sensor

Een Schedule-object wordt geïmporteerd als sensor die de waarde toont die het schedule nu aanstuurt. Het schedule zelf lees en wijzig je met twee acties die op die sensor mikken.

ActieWat het doet
bacnet.read_scheduleGeeft het schedule terug als responsdata: weekly_schedule, exception_schedule, calendars (de datums van kalenders waar de uitzonderingen naar verwijzen), schedule_default, effective_period, controlled_objects, value_type en priority_for_writing.
bacnet.write_scheduleWijzigt weekly_schedule, exception_schedule, schedule_default en/of effective_period, in dezelfde vorm als read_schedule teruggeeft. Velden die je weglaat blijven ongemoeid.

Veldgegevens staan in Acties. Voer als eerste stap altijd bacnet.read_schedule eenmalig uit in Developer tools → Actions, om te zien wat je controller teruggeeft.

Een schedule schrijven

action: bacnet.write_schedule
target:
  entity_id: sensor.ddc_heating_schedule
data:
  weekly_schedule:
    monday:
      - { time: "06:30:00", value: 21.5 }
      - { time: "22:00:00", value: null }   # null = back to the default
  exception_schedule:
    - period: { date: "2026-12-25" }
      priority: 10
      time_values:
        - { time: "00:00:00", value: 16 }
response_variable: schedule

Het schedule wordt na elke schrijfactie teruggelezen. De actie mislukt als het apparaat de wijziging weigerde of iets anders opsloeg.

Weekschema

Alleen de weekdagen die je meegeeft worden gewijzigd, met één schrijfactie per dag. Geef alle zeven dagen mee om de week in één schrijfactie te sturen, wat sommige apparaten vereisen.

Exception schedule

Stap voor stap: Feestdag in een schedule.

Een exception schedule somt bijzondere periodes op, zoals feestdagen of vergaderingen, die het weekschema overschrijven. Elke uitzondering heeft een period, een priority (1 tot 16, lager wint) en time_values.

Het exception schedule wordt altijd als geheel vervangen. Ter bescherming van de controller mislukt de actie, en somt ze op, als de schrijfactie uitzonderingen zou verwijderen die het apparaat nu heeft. Geef de volledige lijst mee, inclusief de uitzonderingen die moeten blijven, of zet allow_removal: true als verwijderen precies is wat je wilt.

Een period is een van deze:

Datums en waarden

Automatiseren

Het voorbeeld agenda-afspraken als schedule-uitzonderingen voegt elke agenda-afspraak toe aan een Schedule-object, zodat de controller er van tevoren van weet.