Handleiding - een feestdag toevoegen aan een BACnet-schedule
Doel: op één datum volgt de controller een andere waarde dan het weekschema, door een uitzondering toe te voegen aan een Schedule-object.
Voordat je begint
- Het Schedule-object is geïmporteerd. Het verschijnt als sensor die de waarde toont die het schedule op dat moment commandeert.
- Elk BACnet-apparaat is een eigen entry, met de apparaatnaam als titel, onder Settings → Devices & Services → BACnet IP; de schedule-sensor staat op de apparaatpagina van je apparaat.
- Je kent de entiteits-ID van die sensor, bijvoorbeeld
sensor.ddc_heating_schedule. - Lees Schedules: het exception schedule wordt altijd als geheel vervangen.
Stappen
- Ga naar Developer tools → Actions en voer
bacnet.read_scheduleuit op de schedule-sensor. Zo zie je wat jouw controller teruggeeft, inclusief het bestaandeexception_schedule. Developer tools toont het antwoord zelf.response_variableis alleen nodig in een automatisering of script.action: bacnet.read_schedule target: entity_id: sensor.ddc_heating_schedule
- Kopieer de bestaande uitzonderingen. Je moet ze opnieuw meegeven, anders mislukt de schrijfactie.
- Voer
bacnet.write_scheduleuit met de volledige lijst: de bestaande uitzonderingen en de nieuwe. De waarde wordt geschreven in het datatype van het schedule zelf.priorityloopt van 1 tot en met 16; lager wint. Na het schrijven wordt het schedule teruggelezen. Je ziet geen foutmelding. Voerbacnet.read_scheduleopnieuw uit om te bevestigen dat de uitzondering er is.action: bacnet.write_schedule target: entity_id: sensor.ddc_heating_schedule data: exception_schedule: # ...plus every existing exception you want to keep - period: { date: "2026-12-25" } priority: 10 time_values: - { time: "00:00:00", value: 16 }
Als het niet werkt
- De actie mislukt en somt uitzonderingen op: de schrijfactie zou uitzonderingen verwijderen die het apparaat heeft. Geef de volledige lijst mee, of zet
allow_removal: trueals verwijderen precies is wat je wilt. - De actie mislukt na het schrijven: het apparaat weigerde de wijziging of sloeg iets anders op.
- De datums zien er anders uit als je ze terugleest: datums worden teruggegeven met ruwe BACnet-getallen (maand 13 en 14 betekenen oneven en even maanden, dag 32 de laatste dag van de maand).
Meer details: Schedules en bacnet.write_schedule. Een automatische versie: Agenda-afspraken als schedule-uitzonderingen.