BACnet/IP-integratie
BACnet/IP (ASHRAE 135) is het standaardprotocol voor commerciële HVAC: luchtbehandelingskasten, VAV-boxen, koelmachines, warmtepompcontrollers, energiemeters en gebouwbeheersystemen. HyperVisu leest en schrijft de objecten van BACnet-apparaten — een analoge ingang voor een temperatuur, een analoge waarde voor een setpoint, een binaire waarde voor een vrijgave, een multi-state waarde voor een ventilatorstand — via UDP op het lokale netwerk. Waarden komen binnen via change-of-value (COV) abonnementen waar het apparaat dit ondersteunt, en via polling in alle andere gevallen; deze keuze wordt automatisch per object gemaakt.
Wat u nodig heeft: de BACnet/IP-service ingeschakeld (zie "Services & Protocollen"), het IP-adres van het apparaat (of het adres van de BACnet-router ervoor), de UDP-poort (standaard 47808), optioneel de device instance, en de gewenste objecten (type en instance) — of laat deze automatisch vinden door de detectie en de objectkiezer.
Verbindingen. BACnet/IP ondersteunt meerdere verbindingen: één verbinding per BACnet-apparaat (zie "Verbindingen"). De server opent één UDP-socket voor alle verbindingen gezamenlijk. Velden:
| Veld | Omschrijving |
|---|---|
| Device address | IP-adres van het BACnet-apparaat, of van de router ervoor. |
| Port | De UDP-poort waarop het apparaat luistert (standaard 47808). |
| Device instance | De instance van het BACnet-apparaatobject (0–4194302). Laat leeg om de controle over te slaan; als dit is ingesteld, wordt een apparaat met een andere instance als onjuist gemeld. |
| COV subscription lifetime | Hoe lang een change-of-value-abonnement geldig blijft voordat het wordt vernieuwd. Laat leeg voor de standaardwaarde van de service (600 s). |
| Poll Interval (seconds) | Hoe vaak punten zonder COV-abonnement opnieuw worden uitgelezen (standaard 30 s). COV is de snelle methode, dus een trage poll is hier gebruikelijk. |
De verbinding aanmaken. Selecteer in Verbinding toevoegen de kaart BACnet en voer een Instance Name en het Device address in; Port en Device instance zijn optioneel (een lege poort betekent de standaardwaarde 47808). Het dialoogvenster bevat geen netwerkscan en maakt geen verbinding aan zonder adres: als u het adres nog niet weet, voer dan een voorlopig adres in en corrigeer dit achteraf via de scan. Klik op Verbinding aanmaken; de nieuwe verbinding opent direct in de bijbehorende instellingen.
Netwerk scannen. De scanfunctie is alleen beschikbaar op een opgeslagen verbinding. Klik naast Waarmee verbinding wordt gemaakt op Netwerk scannen. Het dialoogvenster BACnet-apparaten op het netwerk stuurt een Who-Is-broadcast en toont elk apparaat dat heeft geantwoord — Device 192.168.1.255) wanneer broadcasts tussen VLAN's worden gefilterd, of rechtstreeks naar één apparaat (192.168.1.70:47808) — de enige manier om een apparaat op een niet-standaard poort te bereiken. Opnieuw scannen herhaalt de scan; het laatste resultaat blijft bewaard zolang het dialoogvenster gesloten is.
📘 Opmerking: Al geconfigureerd markeert een apparaat waarnaar al een verbinding verwijst, op basis van adres en poort of op basis van device instance. De verbinding die u bewerkt telt hierin mee, waardoor uw eigen controller deze markering kan dragen.
Test stuurt een gerichte Who-Is naar het apparaat en controleert het antwoord — inclusief de device instance, mits geconfigureerd. Het resultaat vermeldt de device instance die heeft geantwoord; als het verkeerde apparaat antwoordt, mislukt de test en worden beide instances genoemd. In het dialoogvenster Verbinding toevoegen controleert Test de ingevoerde waarden. Bij een reeds opgeslagen verbinding controleert het de opgeslagen waarden, niet de velden die u nog niet heeft opgeslagen: klik daarom eerst op Verbinding opslaan en daarna pas op Test.

Een object koppelen (zie "BACnet/IP koppelen" hieronder). Per object kiest u het Object type en het Instance number; het beheerplatform slaat het adres op als <verbinding>:<type>:<instance>, bijv. 5:AV:12 (Analog Value 12 op verbinding 5). Objecttypen:
| Type | BACnet-object | Waarde | Opmerkingen |
|---|---|---|---|
AI / AO / AV | Analoge ingang / uitgang / waarde | Getal | AO is aanstuurbaar. |
BI / BO / BV | Binaire ingang / uitgang / waarde | 0/1 | BO is aanstuurbaar. |
MSI / MSO / MSV | Multi-state ingang/uitgang/waarde | Geheel getal, startend bij 1 | MSO is aanstuurbaar. |
De gegevenstypereeks van het object bevat de opties die de editor biedt: [TYPE][:PROP=<id>][:PRIORITY=<1-16>][:COV=AUTO | Y | N][:SCALE=<f>][:OFFSET=<f>]:
| Veld | Opgeslagen als | Betekenis |
|---|---|---|
| Value type | REAL / BOOL / UINT / INT / ENUM | Het BACnet-gegevenstype dat bij het schrijven wordt gebruikt. Laat dit op Automatisch staan — dit wordt afgeleid van het objecttype — tenzij u een afwijkende property adresseert. |
| Property identifier | PROP= | 85 is present-value, wat voor vrijwel elke koppeling de gewenste instelling is. Wijzig dit uitsluitend voor fabrikantspecifieke properties. |
| Scale / Offset | SCALE= / OFFSET= | Lezen: waarde = ruw × scale + offset; schrijven gebruikt het omgekeerde. Dit wordt uitgevoerd binnen het protocol, vóór enige transformatie op het object (zie "Waardetransformaties & Status") — schaal niet op beide plekken. |
| Change-of-value subscription | COV= | Automatisch — abonneren, terugvallen op polling (standaard). Vereist — waarschuwen als het apparaat weigert. Nooit — altijd pollen. Een abonnement rapporteert uitsluitend property 85 (present-value); bij elke andere property wordt het punt gepolld. Zichtbaar onder Hoe updates binnenkomen, op objecten die lezen. |
| Write priority | PRIORITY= | BACnet-commandoprioriteit 1–16 voor aanstuurbare objecten. Laat leeg om geen prioriteit mee te sturen, wat het apparaat interpreteert als 16. Zichtbaar onder Aansturing, op objecten die schrijven. |
📘 Opmerking: BACnet multi-state waarden beginnen bij 1, HyperVisu modi bij 0. Stel de offset in op
-1bij een multi-state koppeling, tenzij het apparaat daadwerkelijk op 0 is gebaseerd — de editor herinnert u hieraan. De ruwe getallen op basis van 1 worden bewust behouden, zodat wat u ziet exact overeenkomt met de weergave in YABE of het gebouwbeheersysteem.
Objectkiezer. Wanneer de verbinding actief is, toont de editor Objecten op dit apparaat — de eigen objectenlijst van het apparaat met naam, type en instance, actuele waarde en eenheid (bijv. AI:0 · ToevoerluchtTemp · 21.5 °C). Gebruik Zoek een object om te zoeken op naam, beschrijving of AV:12, klik op een regel om type en instance over te nemen (evenals Eenheden, wanneer het veld nog leeg is en de controller een eenheid doorgeeft) en klik op Opnieuw uitlezen om te vernieuwen. De objectenlijst blijft één minuut bewaard; Opnieuw uitlezen forceert een nieuwe uitlezing. Type en instance blijven bewerkbaar: wanneer de lijst de melding Objectenlijst niet beschikbaar geeft of het apparaat weigert zijn objecten op te sommen, kan het punt alsnog handmatig worden gekoppeld.

Belangrijk gedrag om te weten
- Eerst COV, polling als vangnet. Punten met een abonnement worden door het apparaat gerapporteerd zodra ze wijzigen en worden uit de polling-cyclus gehaald; het abonnement wordt vernieuwd voordat het verloopt. Een apparaat dat het abonnement weigert, wordt in plaats daarvan gepolld. Een trage verificatie-poll (elke 10 poll-intervallen) leest geabonneerde punten alsnog uit, om abonnementen op te vangen die geruisloos zijn weggevallen door een herstart van het apparaat.
- Polling gebeurt in batches (meerdere properties per verzoek) en valt terug op één uitlezing per property bij apparaten die geen batchverwerking ondersteunen.
- Schrijfterugkoppeling. Na een schrijfopdracht toont een punt zonder actief COV-abonnement direct de geschreven waarde in plaats van terug te springen tot de volgende poll; bij COV bevestigt de melding van het apparaat zelf de nieuwe waarde.
- Status. UDP kent geen vaste verbinding, dus up betekent "heeft recent geantwoord" (binnen tweemaal het poll-interval, minimaal 90 s) en down betekent dat er geen antwoord was; bij een apparaat dat stopt met antwoorden wordt de verbinding opnieuw geprobeerd (elke 30 s na vijf mislukte polls) en meldt het zichzelf weer als up zodra er contact is.
- Prioriteitenarrays. Een aanstuurbaar object bevat 16 prioriteitsposities. Een gebouwbeheersysteem dat schrijft op een lager prioriteitsnummer overruled HyperVisu, waardoor het apparaat de widget lijkt te negeren — de editor vermeldt dit bij aanstuurbare typen; Write priority biedt hiervoor de oplossing.
Typische koppelingen: een schakelaar op BV/BO; een dimmer of rolluikpositie op AV/AO (0–100); de temperatuur van een klimaatsysteem op AI (In), het bijbehorende setpoint op AV (In/Uit) en de modus op MSV met offset -1; een energiemeter op AI met de schaling afgestemd op de eenheid van het apparaat; een ventilatorstand op MSV/MSO met offset -1.
Praktijkvoorbeeld — controller van een luchtbehandelingskast
De controller is BACnet-apparaat 1234 op 192.168.1.70:47808 met toevoerluchttemperatuur AI:0, setpoint AV:1, vrijgave BV:2 en ventilatorsnelheid MSV:3 (1–4).
- Schakel BACnet/IP in onder Services (zie "Services & Protocollen").
- Maak een BACnet-verbinding aan (zie "Verbindingen"): voer in Verbinding toevoegen het Device address
192.168.1.70in en klik op Verbinding aanmaken. Klik op de opgeslagen verbinding op Netwerk scannen, kies Device 1234 en klik op Dit apparaat gebruiken; laat het poll-interval op30staan. Klik op Verbinding opslaan en vervolgens op Test: het resultaat bevestigt device instance 1234. - Voeg onder Apparaten een Analoge ingang "LBK toevoerlucht" toe en selecteer uw BACnet-verbinding onder Protocol — kies in het bijbehorende waarde-object
AI:0uit de objectkiezer. - Voeg een Analoge uitgang "LBK setpoint" toe: object
AV:1, richting In/Uit, waardetype Automatisch. - Voeg een Schakelaar "LBK vrijgave" toe: object
BV:2. - Voeg een apparaat van het type Analoge uitgang toe met de naam "LBK-2 Ventilatorsnelheid" voor de ventilatorstand: koppel het waarde-object aan
MSV:3met offset-1(BACnet-statussen 1–4 worden 0–3). Een multi-state object vereist een numerieke widget — de ventilatiewidget stuurt snelheden aan via afzonderlijke aan/uit-objecten en kan daarom geen multi-state waarde verwerken. - Klik bij elk object op Object opslaan, klik vervolgens op Wijzigingen toepassen in de zijbalk en bevestig. De toevoertemperatuur komt binnen via COV zodra deze wijzigt; de overige waarden volgen de polling-cyclus of hun eigen abonnement.
BACnet/IP koppelen
BACnet-objecten worden geconfigureerd in het dialoogvenster voor objectinstellingen (zie "Objectinstellingen, Logging & Notificaties"). De kaarten omvatten:
BACnet-object
| Veld | Omschrijving |
|---|---|
| Objects on this device | De eigen objectenlijst van het apparaat — AI:0 · naam · actuele waarde eenheid — met Zoek een object (naam, beschrijving of AV:12) en Opnieuw uitlezen. Klik op een regel om de twee onderstaande velden in te vullen. Zichtbaar wanneer de verbinding actief is en de BACnet/IP-service draait; voer anders handmatig het type en de instance in. |
| Object type | Analoge ingang / uitgang / waarde (AI/AO/AV), Binaire ingang / uitgang / waarde (BI/BO/BV), Multi-state ingang / uitgang / waarde (MSI/MSO/MSV). |
| Instance number | De object-instance op het apparaat (0–4194302). Het opgeslagen adres is <verbinding>:<type>:<instance>, bijv. 5:AV:12. |
Waarde en schaling
| Veld | Omschrijving |
|---|---|
| Value type | Automatisch (afgeleid van het objecttype — REAL voor analoog, ENUM voor binair, UINT voor multi-state) of een expliciet type REAL / BOOL / UINT / INT / ENUM, gebruikt bij het schrijven. |
| Property identifier | 85 is present-value en is wat voor nagenoeg elke koppeling vereist is. Pas dit uitsluitend aan voor fabrikantspecifieke properties. |
| Scale / Offset | waarde = ruw × scale + offset bij lezen, het omgekeerde bij schrijven. Draait binnen het protocol, vóór enige transformatie op dit object (zie "Waardetransformaties & Status") — schaal niet op beide plekken. Bij een multi-state object herinnert de editor u eraan om de offset op -1 in te stellen (BACnet-statussen starten bij 1, HyperVisu modi bij 0). |
Hoe updates binnenkomen
| Veld | Omschrijving |
|---|---|
| Change-of-value subscription | Automatisch — abonneren, terugvallen op polling (standaard), Vereist — waarschuwen als het apparaat weigert, of Nooit — altijd pollen. Abonnementen rapporteren uitsluitend present-value; een koppeling op een andere property wordt gepolld. |
Aansturing (aanstuurbare objecttypen)
| Veld | Omschrijving |
|---|---|
| Write priority | BACnet-commandoprioriteit 1–16. Laat leeg om geen prioriteit mee te sturen, wat het apparaat beschouwt als 16. Een ander systeem dat op een lager prioriteitsnummer schrijft, overruled HyperVisu waardoor het apparaat de widget lijkt te negeren. |
De objecttypen, de gegevenstypereeks en een uitgewerkt voorbeeld vindt u in het bovenstaande BACnet/IP-hoofdstuk.
