Naar de inhoud
Elausys

HyperVisu / Integraties

BACnet/IP-integratie

Lees en schrijf BACnet-objecten van HVAC-controllers via UDP — netwerkdetectie, COV-abonnementen, polling en schrijfprioriteiten.

elausys · 21 augustus 2026
Op deze pagina

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:

VeldOmschrijving
Device addressIP-adres van het BACnet-apparaat, of van de router ervoor.
PortDe UDP-poort waarop het apparaat luistert (standaard 47808).
Device instanceDe 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 lifetimeHoe 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 , adres, poort, fabrikant — met aanduidingen voor apparaten die Al geconfigureerd zijn en apparaten Achter een router. Selecteer een apparaat en klik op Dit apparaat gebruiken: adres, poort en device instance worden automatisch ingevuld. Deze zijn nog niet opgeslagen: klik op Verbinding opslaan. Gebruik Adres scannen wanneer de broadcast over het gehele netwerk niets oplevert: een subnetadres (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.

BACnet/IP-verbindingseditor met het dialoogvenster "BACnet-apparaten op het netwerk" geopend.

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:

TypeBACnet-objectWaardeOpmerkingen
AI / AO / AVAnaloge ingang / uitgang / waardeGetalAO is aanstuurbaar.
BI / BO / BVBinaire ingang / uitgang / waarde0/1BO is aanstuurbaar.
MSI / MSO / MSVMulti-state ingang/uitgang/waardeGeheel getal, startend bij 1MSO 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>]:

VeldOpgeslagen alsBetekenis
Value typeREAL / BOOL / UINT / INT / ENUMHet 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 identifierPROP=85 is present-value, wat voor vrijwel elke koppeling de gewenste instelling is. Wijzig dit uitsluitend voor fabrikantspecifieke properties.
Scale / OffsetSCALE= / 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 subscriptionCOV=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 priorityPRIORITY=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 -1 bij 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.

BACnet-objecteditor voor een Analog Value.

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).

  1. Schakel BACnet/IP in onder Services (zie "Services & Protocollen").
  2. Maak een BACnet-verbinding aan (zie "Verbindingen"): voer in Verbinding toevoegen het Device address 192.168.1.70 in 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 op 30 staan. Klik op Verbinding opslaan en vervolgens op Test: het resultaat bevestigt device instance 1234.
  3. Voeg onder Apparaten een Analoge ingang "LBK toevoerlucht" toe en selecteer uw BACnet-verbinding onder Protocol — kies in het bijbehorende waarde-object AI:0 uit de objectkiezer.
  4. Voeg een Analoge uitgang "LBK setpoint" toe: object AV:1, richting In/Uit, waardetype Automatisch.
  5. Voeg een Schakelaar "LBK vrijgave" toe: object BV:2.
  6. Voeg een apparaat van het type Analoge uitgang toe met de naam "LBK-2 Ventilatorsnelheid" voor de ventilatorstand: koppel het waarde-object aan MSV:3 met 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.
  7. 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

VeldOmschrijving
Objects on this deviceDe 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 typeAnaloge ingang / uitgang / waarde (AI/AO/AV), Binaire ingang / uitgang / waarde (BI/BO/BV), Multi-state ingang / uitgang / waarde (MSI/MSO/MSV).
Instance numberDe object-instance op het apparaat (0–4194302). Het opgeslagen adres is <verbinding>:<type>:<instance>, bijv. 5:AV:12.

Waarde en schaling

VeldOmschrijving
Value typeAutomatisch (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 identifier85 is present-value en is wat voor nagenoeg elke koppeling vereist is. Pas dit uitsluitend aan voor fabrikantspecifieke properties.
Scale / Offsetwaarde = 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

VeldOmschrijving
Change-of-value subscriptionAutomatisch — 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)

VeldOmschrijving
Write priorityBACnet-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.

De BACnet-objectinstellingen voor een multi-state ventilatorsnelheidsobject ("AHU-2 Fan Speed").

Veelgestelde vragen

Wat moet ik proberen als Netwerk scannen geen apparaten vindt?

Controleer of BACnet/IP is ingeschakeld en gebruik vervolgens Adres scannen met de subnet-broadcast of het IP-adres en de poort van het apparaat. Een niet-standaard poort vereist een gerichte scan.

Maakt elk BACnet-punt gebruik van polling?

Nee. De automatische modus gebruikt change-of-value-abonnementen waar dit wordt ondersteund en valt terug op polling wanneer deze worden geweigerd.

Waarom wijkt een multi-state waarde met één af?

BACnet-statussen beginnen gewoonlijk bij één, terwijl HyperVisu-modi bij nul beginnen. Gebruik een offset van -1, tenzij het apparaat daadwerkelijk op nul gebaseerde statussen gebruikt.

Waarom overschrijft een ander gebouwsysteem mijn commando's?

Bij aanstuurbare objecten heeft een lager prioriteitsnummer voorrang. Controleer de andere schrijver en de geconfigureerde Write priority.

Kan ik een punt koppelen wanneer de objectkiezer leeg is?

Ja. Voer het objecttype en de instance handmatig in als het apparaat weigert de objecten op te sommen.

Moet ik de waarde schalen in zowel de BACnet-instellingen als de transformaties?

Nee. BACnet-schaal en offset worden uitgevoerd vóór de transformatieketen van het object. Voorkom dat dezelfde conversie twee keer wordt toegepast.

Verder verkennen

Vind de andere handleidingen voor dit product in de documentatie.

Terug naar Integraties