Compiled from the official openHAB documentation as at October 2026. Corrections and local experience welcome.
1. Versions
On the download page the current Stable release is 5.2.3. A 5.3.0 milestone and snapshot are also listed. The docs describe stable releases as the thoroughly tested semi-annual releases, which is what I would use for anything you rely on. openHAB 5 requires Java 21.
One warning straight from the docs that is worth repeating: openHAB changes continuously, so tutorials you find online may be out of date.
2. Install options
- openHABian (recommended for Raspberry Pi) - in Raspberry Pi Imager choose Other specific-purpose OS > Home assistants and home automation and pick openHABian. Connect Ethernet, power on, then browse to http://openhabian:8080. If you use WiFi, openHABian launches a hotspot for setup. On other Debian systems you can add openHABian on top of an existing install, but the docs strongly recommend the full image on a Pi.
- APT packages (Debian/Ubuntu) - install Java 21 first, add the openHAB repository key and source, then sudo apt-get update && sudo apt-get install openhab. Optionally install openhab-addons for offline use (not needed if the box has internet access). UI is on port 8080. RPM-based distros are covered in the Linux guide.
- Docker - official image on Docker Hub; see the Docker install guide. Note the guide's sections on USB devices and UPnP if you need serial dongles or discovery.
- Manual install - download the runtime zip and run it yourself (Linux, Windows, macOS).
3. Core concepts (worth learning early)
- Bindings - add-ons that talk to a protocol or product. Installed from the Add-on Store in the UI or via config.
- Things and Channels - a Thing is a device/service; Channels are its functions (switch, temperature, etc.).
- Items - what your rules, pages and voice assistants actually use. You link Items to Channels.
- Semantic Model - tags that describe locations/equipment/points, used to build pages and for voice assistant integrations.
- Rules - the UI rule builder, Blockly, rules DSL, or scripting (JSR223) - plus YAML configuration is listed in the docs too.
- Persistence - history and charting need a persistence service configured.
4. Bindings you are likely to want first
- MQTT binding - openHAB is not an MQTT broker; it connects to one (Mosquitto, etc.) as a client. The binding does not auto-discover arbitrary topics, but by default discovery services for the Homie and Home Assistant MQTT conventions are enabled on a broker connection (switch with enableDiscovery). This is the route for Zigbee2MQTT and Tasmota devices.
- ZigBee binding - talks directly to a coordinator dongle (no separate gateway). You configure the coordinator Thing with the serial port and baud rate; on Linux the openhab user needs access to the port, and Docker users must pass the serial device through.
- Matter binding - supports Matter spec 1.5.1 and earlier, both as a client (controller) and as a bridge to expose openHAB items to Apple/Google/Amazon. It uses the matter.js runtime, which needs Node.js 22+ (downloaded automatically if missing, except on Alpine/older distros) and IPv6 routable between openHAB and the device - this is the usual cause of Docker/VLAN problems.
- IP Camera binding - ONVIF and brand-API cameras (project thread coming in this forum).
- Strengths: enormous binding catalogue, mature item/channel model with units of measurement, both UI and file-based configuration, runs on nearly anything with Java.
- Watch-outs: steeper learning curve than some platforms (Things/Channels/Items is a hurdle at first), Java memory use, and you need to match version-specific docs. Port 8080 is the default HTTP port, so it clashes with Zigbee2MQTT's frontend and Domoticz if they share a host.
Question: what are you running openHAB on, and did you start with the UI or with text files? If you moved from another platform (Home Assistant, Domoticz, SmartThings), what pushed you to openHAB?