openmucextensions / bacnet

OpenMUC BACnet/IP communication driver based on bacnet4J
20 stars 7 forks source link
bacnet bacnet4j openmuc osgi

BACnet Driver Service

OpenMUC BACnet/IP communication driver based on bacnet4J. The project is licensed under GPLv3.

This project contains a communication driver for Fraunhofer's OpenMUC framework (see www.openmuc.org) that allows to communicate with BACnet communication networks. BACnet is a communication protocol mainly used in the building automation domain, specified by the American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE), see www.bacnet.org for details.

The driver is based on (uses internally) the bacnet4J library version 3.2.3, which is hosted at https://github.com/infiniteautomation/BACnet4J. The wiki of this project contains some examples for using the bacnet4J library.

Features

BACnet Interoperability Building Blocks (BIBBs)

The driver covers the following BACnet interoperability building blocks:

For further information see the project's wiki.

Example configuration

The driver is configurable via the channels.xml file. An example snippet for BACnet object server is shown here and explained in detail in the wiki.

    <driver id="bacnet">
        <device id="localserver">
            <deviceAddress>12345</deviceAddress>
            <settings>devicePort=0xBAC0;broadcastIP=172.16.162.255;isServer=true</settings>
            <connectRetryInterval>5m</connectRetryInterval>
            <channel id="FloatWert1">
                <channelAddress>L'Float1</channelAddress>
                <listening>true</listening>
                <unit>analogValue;degreesCelsius</unit>
            </channel>
            <channel id="FloatWert2">
                <channelAddress>L'Float2</channelAddress>
                <listening>true</listening>
                <unit>analogValue;degreesCelsius</unit>
            </channel>
            <channel id="BoolWert1">
                <channelAddress>L'Bool1</channelAddress>
                <unit>binaryValue;noUnits</unit>
            </channel>
            <channel id="BoolWert1_OOS">
                <channelAddress>L'Bool1#outOfService</channelAddress>
            </channel>
            <channel id="MultistateWert1">
                <channelAddress>L'Multistate1</channelAddress>
                <unit>multiStateValue;noUnits;off,nt,ht</unit>
                <description>Betriebsmodus (0=Off/1=NT/2=HT)</description>
            </channel>
        </device>
     </driver>