BACnet-acties voor Home Assistant automatiseringen

De integratie voegt zes acties (vroeger services genoemd) toe in het domein bacnet. Gebruik ze in automatiseringen, scripts en Developer tools → Actions. De meeste werken op een doelentiteit van deze integratie. Een paar kunnen ook objecten bereiken die je niet hebt geïmporteerd; daarvoor is een beheerdersaccount nodig, omdat ze elk object op het apparaat kunnen bereiken.

ActieWat het doet
bacnet.write_valueSchrijf één keer een waarde, met een gekozen prioriteit, of schrijf een andere property
bacnet.relinquishGeef de opdracht van Home Assistant op een object vrij
bacnet.read_propertyLees een willekeurige property en geef die terug als responsdata
bacnet.read_scheduleGeef een Schedule-object terug als responsdata
bacnet.write_scheduleWijzig delen van een Schedule-object
bacnet.read_trend_logGeef de records van een Trend Log terug

Acties die data teruggeven gebruik je met response_variable in een automatisering.

bacnet.write_value

Schrijft één keer een waarde: de present value van een object met een gekozen prioriteit, zonder de instelling Write Priority van het apparaat te wijzigen, of een andere property. Doel: elke entiteit van deze integratie. Binaire objecten nemen 0 (inactive) of 1 (active).

VeldVerplichtBeschrijvingVoorbeeld
valueJaTe schrijven waarde. Binaire objecten: 0 = inactive, 1 = active. Andere properties nemen een getal, true/false of tekst.21.5
priorityNeePrioriteitsniveau om mee te schrijven (1 tot 16). Standaard de Write Priority van het apparaat. Geldt alleen voor de present value.11
propertyNeeBACnet-property om te schrijven, op naam of nummer. Zonder dit veld: de property die een extra-property-entiteit toont, anders de present value.minimumOnTime
deviceNeeAlleen voor objecten die niet zijn geïmporteerd: het BACnet-apparaat. Geef dan ook het objecttype en de instance op; de doelentiteit wordt genegeerd.
object_typeNeeAlleen met device: type van het object, op naam of nummer.analog-value
instanceNeeAlleen met device: instancenummer van het object.12
action: bacnet.write_value
target:
  entity_id: number.meeting_room_occupancy
data:
  value: 1
  priority: 11

Schrijfacties naar andere properties hebben nooit een prioriteit; alleen de present value heeft een Priority Array. Waarden worden verstuurd in het BACnet-type van de property. Een andere property dan de present value schrijven wijzigt de configuratie van het object en is daarom alleen toegestaan voor beheerders. Zie Extra properties.

bacnet.relinquish

Geeft de opdracht van Home Assistant op een object vrij door Null te schrijven op een prioriteitsniveau, zodat lagere prioriteiten of de Relinquish Default het overnemen. Doel: een switch-, number- of climate-entiteit van deze integratie.

VeldVerplichtBeschrijvingVoorbeeld
priorityNeePrioriteitsniveau om vrij te geven (1 tot 16). Standaard de Write Priority van het apparaat.8
action: bacnet.relinquish
target:
  entity_id: switch.ahu_1_supply_fan
data:
  priority: 8

Geef altijd vrij op de prioriteit waarop je hebt geschreven. Uitschakelen of 0 schrijven geeft het object de opdracht uit te gaan; alleen bacnet.relinquish geeft het vrij. Zie Hoe schrijven werkt.

bacnet.read_property

Leest een willekeurige property van een object en geeft die terug als responsdata. Doel: elke entiteit van deze integratie.

VeldVerplichtBeschrijvingVoorbeeld
propertyNeeBACnet-property om te lezen, op naam of nummer. Zonder dit veld: de property die een extra-property-entiteit toont, anders de present value.minimumOnTime
array_indexNeeLees één element van een array-property (0 = aantal elementen).0
deviceNeeAlleen voor objecten die niet zijn geïmporteerd: het BACnet-apparaat.
object_typeNeeAlleen met device: type van het object, op naam of nummer.analog-value
instanceNeeAlleen met device: instancenummer van het object.12
action: bacnet.read_property
target:
  entity_id: switch.ahu_1_ventilation_fan
data:
  property: minimumOnTime
response_variable: result

De respons ziet eruit als {"switch.ahu_1_ventilation_fan": {"object": "4:3", "property": "minimumOnTime", "value": 300}}. Als het apparaat weigert, bijvoorbeeld met unknown-property, mislukt de actie met de foutmelding van het apparaat.

bacnet.read_schedule

Geeft een Schedule-object terug als responsdata. Doel: een Schedule-sensor. Er zijn geen velden. Details en de vorm van de respons staan in Schedules.

action: bacnet.read_schedule
target:
  entity_id: sensor.meeting_room_schedule
response_variable: schedule

bacnet.write_schedule

Wijzigt delen van een Schedule-object, in dezelfde vorm als bacnet.read_schedule teruggeeft. Velden die je weglaat blijven ongemoeid. Het schedule wordt daarna teruggelezen en de actie mislukt als het apparaat de wijziging weigerde of iets anders opsloeg. Doel: een Schedule-sensor.

VeldVerplichtBeschrijvingVoorbeeld
weekly_scheduleNeeWeekdagen (monday tot sunday) gekoppeld aan een lijst met items met een time en een value. Alleen de dagen die je meegeeft worden gewijzigd. Een value van null geeft vrij naar de standaardwaarde.{"monday": [{"time": "08:00:00", "value": 21.0}, {"time": "17:00:00", "value": 16.0}]}
exception_scheduleNeeVolledige lijst met uitzonderingen, die de bestaande lijst vervangt.[{"period": {"date": "2026-12-25"}, "priority": 10, "time_values": [{"time": "00:00:00", "value": 12.0}]}]
schedule_defaultNeeWaarde die geldt als er geen week- of uitzonderingsitem van toepassing is.16.0
effective_periodNeeBegin- en einddatum waartussen het schedule actief is.{"start": "2026-01-01", "end": "2026-12-31"}
allow_removalNeeSta toe dat het exception schedule wordt geschreven, ook als daarbij uitzonderingen verdwijnen die het apparaat nu heeft. Standaard uit.false
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 }

Lees Schedules voordat je schrijft: uitzonderingen, datums en allow_removal hebben regels die de controller beschermen.

bacnet.read_trend_log

Leest de records van een Trend Log en geeft ze terug als responsdata. Doel: een Trend Log-sensor.

VeldVerplichtBeschrijvingVoorbeeld
deviceNeeAlleen voor een Trend Log die niet is geïmporteerd: het BACnet-apparaat.
instanceNeeAlleen met device: instancenummer van het Trend Log-object.4
startNeeGeef records vanaf dit moment terug (lokale tijd van het apparaat). Zonder dit veld komen de meest recente records terug.{{ now() - timedelta(hours=24) }}
countNeeMaximaal aantal records, 1 tot 1000. Standaard 100.500
action: bacnet.read_trend_log
target:
  entity_id: sensor.ahu_1_supply_temperature_log
data:
  start: "{{ now() - timedelta(hours=24) }}"
  count: 500
response_variable: trend

Zie Trend logs voor het responsformaat.