Skip to content

Releases: confusedjoe/github-bacnet

v0.8.2 — Auto-Items & full BACnet tagging

Choose a tag to compare

@confusedjoe confusedjoe released this 22 Jun 08:03

Experimental BACnet/IP binding for openHAB 4.3.x.

Highlights of the 0.7–0.8 series:

  • Automatic discovery (Who-Is + passive + unicast subnet sweep) — finds devices that ignore Who-Is.
  • Auto-creates and links an Item for every object, removed again when the Thing is deleted.
  • Comprehensive, sortable tags per item: object type, Writable/ReadOnly, openHAB semantic class
    (Measurement/Setpoint/Switch/Status), physical quantity, unit (°C, Pa, kWh, …), device name
    (e.g. Altbau), device instance (Instance_) and a generic "BACnet" marker.
  • Supports all value-bearing object types (Analog/Binary/Multi-State, Schedule, Calendar, Loop,
    Accumulator, Pulse-Converter, *-Value types, Lighting). Infrastructure objects are skipped.
  • Alarm-state item + KBOB Notification_Class category for alarm-capable objects.
  • COV (push) first, with a 5-min fallback poll and a 60-min metadata refresh (both configurable).
  • Channels/items labelled with the device's real object names and units.

⚠️ Experimental. Technical details: ARCHITECTURE.md.

v0.6.4 — Auto-Discovery

Pre-release

Choose a tag to compare

@confusedjoe confusedjoe released this 21 Jun 11:05

Experimental BACnet/IP binding for openHAB 4.3.x — now with fully automatic discovery.

What's new in 0.6.4

  • Automatic background discovery: an initial scan starts shortly after the bridge comes
    online and repeats on a configurable interval (default 15 min). Any new IP that sends
    BACnet traffic is probed immediately. With openHAB's "auto-approve inbox" enabled,
    devices appear as Things hands-free — no manual scan needed.
  • Discovery is registered per bridge from the handler factory, so its lifecycle is
    deterministic and reliable.

Feature set

  • Pure-Java BACnet/IP (Annex J), no external library (clean-room, EPL-2.0).
  • Universal discovery: Who-Is/I-Am + passive detection + active unicast subnet sweep with
    the wildcard instance, so devices that ignore Who-Is are still found (e.g. a real
    223-object controller).
  • Read/write of analog, binary and multi-state present values; Schedule present value
    writable; intrinsic alarms as trigger channels.
  • Live updates via COV subscriptions.
  • Object-list read with an indexed fallback (handles large lists without segmentation).
  • Channels labelled with the device's real object names and units (e.g. AU_Temp_H00 [°C]).
  • Network-interface picker in the bridge config (UI).

Config (bridge)

  • broadcastAddress (required), localPort (47808), discoveryTimeout (5 s),
    backgroundDiscovery (true), discoveryInterval (15 min).

⚠️ Experimental. For a fixed installation a device can also be defined manually in a
.things file (bridge + deviceInstance + address). Technical details: ARCHITECTURE.md.

v0.5.1 — BACnet/IP Binding for openhub 4.3.x

Choose a tag to compare

@confusedjoe confusedjoe released this 18 Jun 05:40

First fully working pre-release of the experimental BACnet/IP binding for openHAB 4.3.x.

Highlights since 0.5.1

  • Single-reader socket: fixes the bug that completely blocked discovery and read/write
    (a background thread was swallowing every I-Am/ACK packet).
  • Universal discovery: Who-Is/I-Am + passive listening + active unicast sweep with the
    wildcard instance → also finds devices that don't answer Who-Is.
  • Indexed object-list fallback (no segmentation needed) — tested against a real
    controller with 223 objects.
  • Channels with real names + unit (e.g. AU_Temp_H00 [°C]), like YABE.
  • Network selection (drop-down of local interfaces) in the bridge configuration.
  • Schedule present-value is writable.

⚠️ Experimental. Manual device definition via .things is recommended for fixed installations.
Technical details: see ARCHITECTURE.md in the repo.

How to change the IP (the last item)
Edit C:\openhab-4.3.11\conf\things\bacnet.things and save — openHAB reloads it automatically, no restart needed:

Bridge bacnet:bridge:local "BACnet/IP Network" [ broadcastAddress="192.168.31.255", localPort=47808 ] {
Thing device altbau "Altbau" [ deviceInstance=1, address="192.168.31.88" ]
}
grafik

v0.1.0 — Experimental BACnet/IP Binding

Choose a tag to compare

@confusedjoe confusedjoe released this 17 Jun 17:10

This is a lightweight, dependency-free BACnet/IP binding for openHAB 4.3.x.
Discovers BACnet devices (Who-Is / I-Am), reads and writes present values,
receives live updates via COV subscriptions, and forwards intrinsic alarms as
trigger channels. No external BACnet library — pure Java, EPL-2.0.

⚠️ Experimental / work in progress. Not yet tested against real hardware.

Features

  • Discovery via Who-Is / I-Am broadcast
  • Read/write: Analog, Binary, Multi-State objects
  • COV subscriptions (live updates)
  • Intrinsic alarm forwarding
  • Schedule & Calendar (read-only)

Known limitations

  1. No segmentation — large object lists may fail
  2. COV and read/write share one UDP socket — may race under load
  3. Schedule/Calendar are read-only