openHAB

Uit Wikipedia, de vrije encyclopedie
Naar navigatie springen Naar zoeken springen
open Home Automation Bus (openHAB)
OpenHAB
Ontwerper(s) Kai Kreuzer
Ontwikkelaar openHAB Community
Uitgebracht 2010
Recentste versie 2.5.4 
(21 april 2020)
Besturingssysteem Linux, Windows, macOS, Unix, Solaris,OpenBSD, FreeBSD
Geschreven in Java
Categorie Domotica
Licentie Eclipse Public License
Versiebeheer github.com
Website (en) www.openhab.org
Portaal  Portaalicoon   Informatica
Vrije software

open Home Automation Bus (openHAB) is een in Java ontwikkelde softwareoplossing, die componenten voor gebouwautomatisering van verschillende aanbieders op fabrikant- en protocol-neutrale wijze in één platform met elkaar verbindt.

openHAB werd door Kai Kreuzer in 2010 opgezet en heeft vele mede-ontwikkelaars. Eind 2013 is besloten de openHAB-ontwikkeling deels als officieel Eclipse-project, onder de naam Eclipse SmartHome voort te zetten. openHAB en Eclipse SmartHome worden parallel ontwikkeld. Architectuur en functionaliteit worden overwegend in het Eclipse-SmartHome-Project ondergebracht, terwijl voor Binding-ontwikkelaars de openHAB-Website het eerst aangewezen adres is.[1]

In openHAB 2 ligt de focus op gebruikerscomfort bij het inrichten en configureren. Daarvoor zijn talrijke verbeteringen ten opzichte van de eerste versie doorgevoerd.[2].

openHAB is besturings-systeem onafhankelijk en is door het toevoegen van aanvullende Bindingen ("verbinders") met extra Technologieën/Protocollen uitbreidbaar. openHAB wordt onder de Eclipse Public License ontwikkeld en is Open Source. Als gebruikersinterfaces worden webbrowser, Android- en Apple iOS-systemen ondersteund.

Ondersteuning en verspreiding[bewerken | brontekst bewerken]

Belangrijke officiële ondersteuning zijn bijvoorbeeld KNX, EnOcean, Insteon, Homematic en Z-Wave. Op basis van Eclipse SmartHome zijn ook de eerste commerciële producten voor de massamarkt uitgekomen, zoals die van de Deutsche Telecom met QIVICON en Yetu, die beide Eclipse SmartHome als Software-Basis voor hun Gateways gebruiken.[3]

Architectuur[bewerken | brontekst bewerken]

openHAB-Architectuur

Het openHAB-Project is opgedeeld in

  • openhab-runtime: dit is het serverproces dat de acties uitvoert.
  • openhab-designer: dit is een gebruiksvriendelijke configuratie-interface op basis van Eclipse.

openHAB Runtime[bewerken | brontekst bewerken]

De openHAB Runtime is een Pakket van OSGi Bundels opgenomen in het OSGi Framework (Equinox). Het is een pure Java-oplossing waarvoor een JVM vereist is. Gebaseerd op het OSGi model, is in een zeer sterk modulaire architectuur voorzien, die het toevoegen of verwijderen van functionaliteit op de runtime mogelijk maakt zonder dat de service gestopt hoeft te worden.

Communicatie[bewerken | brontekst bewerken]

openHAB-Events

openHAB heeft twee interne communicatiekanalen:

  • een asynchrone Event-Bus
  • een Item Repository (statusgeheugen)

Event Bus[bewerken | brontekst bewerken]

De Event Bus is de Basisservice van openHAB. Alle niet status gerelateerde Bundels informeren hierlangs andere Bundels over de Status van Events.

Alle Protocol Bindings (die een fysieke Link naar de echte Hardware voorstellen) communiceren via deze Event Bus.

Als technische Basis dient de OSGi EventAdmin Service.

Item Repository[bewerken | brontekst bewerken]

Voor status gerelateerde Functies biedt openHAB de Item Repository, die met de Event Bus verbonden is en de actuele Status van de Items bijhoudt. Hierdoor kan de Item Repository gebruikt worden om de actuele Status van een Item op te vragen, bijvoorbeeld voor de weergave in een visualisatie, voor de verwerking in logica of voor de Persistence (Historie) service.

De Item Repository voorkomt daarmee dat de verbonden Functie zijn Status zelf op moet slaan en stelt deze in een centrale service ter beschikking.

Sitemap[bewerken | brontekst bewerken]

openHAB heeft een generieke configureerbare gebruikersinterface (UI), de zogenaamde sitemap. De sitemap is een boomstructuur van widgets, die de verschillende pagina's en de inhoud van de UI definiëren.

Widgets kunnen items zijn, die de actuele status weergeven maar ook schakelaars of grafieken. Er kunnen verschillende Sitemaps gedefinieerd worden, bijvoorbeeld voor mobiele apparaten of andere weergave-opties.

Item aanbieders[bewerken | brontekst bewerken]

Item-aanbieders bieden de mogelijkheid om de user interface dynamisch te genereren. In de item- en groepsdefinities kunnen de afbeeldingen van de Widgets geconfigureerd worden, zodat de Sitemap van hieruit dynamisch samengesteld kan worden. Een toepassingsvoorbeeld is bijvoorbeeld om alle elementen uit een Groep in één keer weer te geven door alleen de groep in de sitefile te declareren.

openHAB Designer[bewerken | brontekst bewerken]

De openHAB Designer is een Eclipse-RCP-toepassing voor het configureren van de openHAB-runtime. Het bevat een editor voor de benodigde configuratiegegevens en bevat syntaxis-controle, auto completion en context specifieke Markeringen. Voor het maken van automatiseringslogica zijn functies gebruikt, waaraan de Technologieën Xtext, Xbase, Quartz (tijdplansturing) en Joda Time (tijd- en datumberekeningen) ten grondslag liggen.

Ondersteunde technologieën[bewerken | brontekst bewerken]

Bindingen[bewerken | brontekst bewerken]

Screenshot HABdroid

Het OSGi-platform staat vanwege de modulaire architectuur, flexibele extensietechnologieën toe. Daardoor kan de functionaliteit door het toevoegen van bindingen eenvoudig aangepast worden. De volgende bindingen zijn inmiddels beschikbaar en het aantal wordt voortdurend uitgebreid:

Asterisk, Astro (Zonnestandberekeningen), Bluetooth, Comfo Air, CUPS, digitalSTROM, Daikin, DMX512, EnOcean, eKey, Epson Projector, Exec (Execute Command), Fritz!Box, Fritz AHA, GPIO, HDAnywhere, Heatmiser, HomeMatic, HTTP, IHC / ELKO, INSTEON Hub, IRTrans, KNX, Koubachi, MAX!Cube, MiLight, LCN Gebäudeleittechnik, Leviton/HAI Omnilink, Modbus TCP und RTU, MPD, MQTT, Netatmo, Network Health, Nibe Heatpump, Nikobus, Novelan/Luxtronic Heatpump, NTP, One-Wire, Onkyo AV Receiver, Open energy monitor, OpenPaths, OpenSprinkler, OSGi Configuration Admin, Philips Hue, Piface, Pioneer AV receiver, Plex, Plugwise, PLCBus, PulseAudio, Pushover, Prowl, PulseAudio Server, RFXCOM, Samsung TV, Serial, SNMP, Squeezebox, System Info, Somfy URTSI II, Sonos, Souliss, TCP/UDP, Tellstick, Swegon ventilation, TinkerForge, Tivo, VDR, Twitter, Wake-on-LAN, XBMC, Xively, xPL, Z-Wave

Er zijn ook uitbreidingen die niet als binding geconfigureerd worden, maar als programmadeel geïntegreerd kunnen worden:

  • Dropbox Support
  • Google Calendar[4] en CalDAV-ondersteuning
  • Text to speech-Implementatie (TTS)
  • HABDroid kan via Spraaksturing Acties uitvoeren

Communities[5][6] uit de IoT-wereld stellen op Arduino-gebaseerde platformen ter beschikking, die via seriële-, MQTT- of Souliss-bindingen op openHAB aangesloten kunnen worden.

Persistence[bewerken | brontekst bewerken]

De Persistence Service regelt de opslag van statusveranderingen van de verschillende items. Hiermee kan het Verloop van een waarde worden gevisualiseerd, historische gegevens worden opgevraagd of bij een herstart van het systeem de oorspronkelijke stand weer worden ingenomen.

De volgende services zijn momenteel beschikbaar:

  • db4o – een Java-Object-Database
  • rrd4j – een Java-Versie van de round-robin-Database RRDtool.
  • MySQL – een interface naar een MySQL-database.
  • Open.Sen.Se – een Internet-of-Things-platform
  • logging using Logback – schrijft itemstatus naar een logfile met flexibele syntaxdefinitie

Interfaces[bewerken | brontekst bewerken]

User Interfaces[bewerken | brontekst bewerken]

  • Classic UI – klassieke Webinterface
  • Apple iOS Client
  • Android Client – HABDroid is een Open Source Android User Interface voor openHAB
  • Windows 10 Client
  • CometVisu

NFC (Near Field Communicatie)[bewerken | brontekst bewerken]

De Android-Client HABDroid is in staat NFC-tags te beschrijven en te lezen. Hierdoor kan door het scannen van een specifieke NFC-tags een bijbehorende actie uitgevoerd worden.

OSGi Console[bewerken | brontekst bewerken]

Jabber Console

openHAB kan via de OSGi-Console bediend worden.

Daarmee kunnen commando's over de Eventbus verzonden worden, om bijvoorbeeld Items in- of uit te schakelen of de Status op te vragen.

  ---openHAB commands---
  	openhab send <item> <command> – zend een opdracht naar een Item (bijv. Licht aan)
  	openhab status <item> – vraagt  de aktuele Status van een Item op
  	openhab say <sentence to say> – spreekt een Bericht uit met behulp van de TTS Speech-Engine

Spraaksturing[bewerken | brontekst bewerken]

Door middel van de mobiele Applicatie HABDroid is spraakbesturing beschikbaar, hiervoor wordt gebruikgemaakt van de Google Speech Engine. Ook kan de Amazon Spraakdienst (Alexa) met Amazon Echo of Amazon Dot op openHAB aangesloten worden. Dit wordt via HUE-emulatie uitgevoerd, maar zal in de toekomst ook via Alexa Skill aangeboden worden.

XMPP Instant Messaging Console[bewerken | brontekst bewerken]

openHAB ondersteunt toegang op afstand via XMPP (Jabber). Daarmee kan via een persoonlijk Jabber-account met de huisautomatisering „gechat“ worden. Commando's zijn vergelijkbaar met die van de OSGi-console.

Google Calender Console[bewerken | brontekst bewerken]

Andere mogelijkheden, openHAB-commando's te geven, kan tijdgestuurd via een bijbehorende instructie in Google Calendar of via CalDav-kalender (bijv. ownCloud).

REST-API[bewerken | brontekst bewerken]

De RESTful Interface voorziet in een open interface om openHAB te laten communiceren met andere systemen.

my.openHAB[bewerken | brontekst bewerken]

De Cloud-dienst my.openHAB maakt het mogelijk om met de Android app (HABDroid) zonder poort ontsluiting of DynDNS toegang op afstand en directe Push-Notificies te verwezenlijken. De service IFTTT is geïntegreerd in my.openHAB.

MQTT[bewerken | brontekst bewerken]

Door middel van de MQTT-binding kunnen Item- Statussen tussen de MQTT-broker en openHAB uitgewisseld worden.

Externe links[bewerken | brontekst bewerken]

Referenties[bewerken | brontekst bewerken]