Direkter Aufruf von Items in openHAB 3 (ohne Classic-UI)

Ich habe einen Anwendungsfall in unserem SmartHome, der scheinbar nicht so gängig ist. 🙂

Wenn mein BEDDI-Wecker beim Aufstehen klingelt, soll das Licht langsam gedimmt werden. Das hat mit dem Smarten Wecker und openHAB 2.x mit der Classic-UI per HTTP-Aufruf gut funktioniert. In openHAB 3.x ist die Classic-UI nun nicht mehr dabei. Der BEDDI-Wecker kann nur HTTP-Aufrufe direkt durchführen und hat sonst keine andere Schnittstelle zur Verfügung.

Ich wollte also mit openHAB 3.x wieder Items direkt per HTTP steuern und integrieren (ja mir ist das „Sicherheitsrisiko“ bewusst).

Die erste Idee habe ich hier gefunden: https://community.openhab.org/t/external-link-towards-openhab-item/48227/4. Das hat auch im Browser gut funktioniert, aber nicht auf dem BEDDI.

Dann habe ich eine Lösung auf Basis NGINX gefunden (den hatte ich wegen der HueEmulation + Alexa schon installiert). Die Lösung wird hier im Forum beschrieben: https://community.openhab.org/t/how-to-change-an-openhab-switch-with-http-commands/35063/8.

Die Lösung war aber noch auf Basis openHAB 2 und hat mit 3.x nicht direkt funktioniert. Hier ist die Lösung die ich bei mir nun im Einsatz habe:

  location ~ /statechanger/POST/([^/]+)/([^/]+) {
    proxy_pass http://IP:PORT/rest/items/$1;
    proxy_set_header content-type "text/plain";
    proxy_set_header accept "application/json";
    proxy_method POST;
    proxy_set_body $2;
  }

  location ~ /statechanger/PUT/([^/]+)/([^/]+) {
    proxy_pass http://IP:PORT/rest/items/$1/state;
    proxy_set_header content-type "text/plain";
    proxy_set_header accept "application/json";
    proxy_method PUT;
    proxy_set_body $2;
  }

Für die Verwendung mit openHAB 3.x musste ich noch die Header entsprechend anpssen. Hier waren der content-type und das accept wichtig.

So konnte man mit den vorhandenen bereits installierten Komponenten auch direkt eine HTTP-Steuerung von außen der openHAB-Items wieder reaktivieren.

Habt Ihr das Szenario bei euch im SmartHome auch? Oder bin ich der Einzige der openHAB-Items außerhalb des Systems aktivieren möchte?

Umstellung openHAB 2 auf 3.0.1 – Tipps & Tricks

Die letzten Wochen habe ich mich mit der Umstellung auf openHAB 3.x beschäftigt. Die erste Idee war eine „schleichende Umstellung“ per Remote openHAB Binding. Diesen Pfad habe ich dann wegen der Gesamtumstellung und dem Hardwarwechsel auf einem neuen Raspberry Pi 4 doch ausgeschlossen. Es war für mich einfacher beide Systeme parallel zu betreiben und Schritt für Schritt die notwendigen Konfigurationen zu übernehmen.

Den Aufwand der kompletten Übernahme und des kompletten Refactorings unserer eingesetzten Systeme habe ich dann doch etwas unterschätzt. Wir hatten noch viele openHAB 1.x Elemente im Betrieb, die nicht mehr mit der neuen Version kompatibel sind.

Der erste große Tipp: Im Idealfall gleich vorab die openHAB 2.x Systeme um die 1.x Bindings „bereinigen“.

Ich habe dann gleich auf auf openHAB 3.0.1 aktualisiert. Die Release Notes zur 3.0.1 findet ihr hier.

Ich hatte erst openHAB 3.0 im Testbetrieb und habe dann ca. 6 Wochen eine Testphase für die Umstellung aller Funktionen aus openHAB 2.x immer mal Abends und nebenbei vollzogen. Es wurden alle bestehenden Funktionen noch einmal kontrolliert und vor der Übernahme auf Notwendigkeit bzw. Weiterverwendung geprüft. Über die Jahre sammeln sich doch einige Altlasten an. 🙂

Der zweite große Tipp: Aufräumen wo es geht und nicht genutzte Funktionen aus dem Gesamtsystem entfernen.

Übernahme unserer Funktionen

  1. Die Persistence ist jetzt im Standard dabei d.h. alle Items werden langfristig in der rrd4j Round-Robin-Database gespeichert. Die Übernahme der gespeicherten Datenbankdateien geht einfach per Copy & Paste.
  2. Die KNW-Umstellung von 1.x auf 3.x hat am meisten Zeit benötigt. Wir haben im eine KNX-Installation vorhanden. Da hier etwas mehr Aufwand in der Umstellung notwendig war, habe ich das etwas länger vor mir hergeschoben. Mit ruhigen 2 Std. und etwas Konzentration war es aber dann doch nicht so aufwändig. Ich habe mich an diesen Umstellungspfad gehalten.
  3. Das Amazon Echo Control Binding verwenden wir recht intensiv. Hier hatten wir wegen diverser Umstellungen immer noch den SnapShot von 2.x im Einsatz. Jetzt hat der Wechsel auf die Release Version einfach funktioniert.
  4. Die Hue Emulation mit openHAB 3.x ist für Alexa / Amazon zwingend notwendig. Das hier jetzt NGINX auf Port 80 benötigt wird war mir unklar. Da hab ich etwas länger gesucht 🙂
  5. MQTT musste ich nur von 2.x auf 3.x umziehen. Aber man benötigt jetzt einen externen MQTT-Broker. Ich habe also auf Mosquitto gewechselt, da der „Embedded“ nicht mehr vorhanden ist.
  6. Das Weather-Binding gab es auch nicht mehr. Hier habe ich auf  Darksky-Binding umgestellt.
  7. Das FritzBox-Binding war auch noch aus alter Welt. In der neuen Welt benötigt man jetzt das TR-064-Binding und AVM FRITZ! Binding.
  8. Das CalDAV-Binding aus 1.x ist auch nicht mehr vorhanden – auf iCalendar-Binding kann man einfach umstellen

Fazit der Umstellung

Für die Umstellung hatte ich viele kleine Zwischenschritte und aufwändige Tests wegen meinem Umzug und dem kompletten Refactoring geplant. Für die meisten sollte das Update ohne Hardwarewechsel direkt und einfach möglich sein.

Viele Bindings und Funktionen die ich nicht explizit erwähne gingen sehr schnell und einfach bei der Umstellung.

Beim Einsatz von alten 1.x-Funktionen (Legacy-Bindings) sollte man auf alle Fälle vorab den Aufwand beim Wechsel auf openHAB 3.x investieren.

Mittlerweile auch schon wieder neue Erweiterungen eingebaut:

  • Tankerkönig mit Telgram-Anbindung
  • Speedtest des Glasfaseranschlusses im Up- und Download

Von den neuen openHAB 3.x Funktionen habe ich noch wenig genutzt. Mich interessiert sehr das neue „Model“ und die verbesserte Visualisierung. Habt Ihr das schon im Einsatz?

Neue Hardware für openHAB 3.x auf Basis Raspberry Pi

Unser openHAB-System ist im SmartHome schon etwas „länger am Start“. Aufgrund der Datensicherheit wäre ein Wechsel der integrierten SD-Karte bald an der Reihe gewesen. Aus diesem Grund wollte ich das gesamte System auf eine neue Hardware-Basis bringen. Außerdem soll dem openHAB 3 System nach dem Wechsel auch mehr Arbeitsspeicher zur Verfügung stehen.

Als Basis wurde ein Raspberry Pi 4 Modell B mit 4 GB Arbeitsspeicher und 32 GB SD-Karte verwendet. Das verwendete Paket kann man sich bei Amazon bestellen.

Nach dem manueller Zusammenbau der Hardware sieht das Ergebnis wie folgt aus:

Für openHAB 3.x verwende ich ein Raspberry Pi OS Lite und führe einen manuellen Neuaufbau des Systems durch.

Ich habe mich dabei für eine komplette Neuinstallation als Migrationspfad von openHAB entschieden. Da das System schon etwas länger benutzt wird, möchte ich in diesem Schritt das System bereinigen und aussortieren. Ich habe noch viele alte 1.x-Bindings im Einsatz und diese funktionieren mit openHAB 3.x nicht mehr. Bis alles umgezogen und getestet ist, wird ein Parallelbetrieb von beiden Systemen durchgeführt.

Ich werde in den nächsten Blog-Beiträgen den Umzug etwas genauer beschreiben. Welche Informationen wären hierbei für euch interessant und wichtig?

 

 

 

Veröffentlichung openHAB 3.0

Am 21.12.2020 wurde die neue Version 3.0 von openHAB als kleines „Weihnachtsgeschenk“ veröffentlicht. Ich habe mich seit Ende Dezember 2020 etwas intensiver mit dem System beschäftigt (in meinem konkreten Szenario ist der Umstieg etwas aufwändiger).

Die Ankündigung im Blog zur Version findet Ihr hier und im Community-Forum gab es auch einen schönen Beitrag dazu „openHAB 3.0 is out!“. Hier könnt Ihr die aktuelle Version beziehen. Die Release Notes mit allen Details findet man im GitHub. Bitte beachtet in der Dokumentation folgende Punkte: „structural changes, new features, enhanhancements and bug fixes“ und die Breaking Changes.

Folgende Funktionen werden in der Ankündigung als „Highlights“ benannt:

  • Evolution der Architektur
  • Vereinfachung des Gesamtsystems (manuelle Konfiguration oder UI)
  • Rules-Engine vereinheitlicht und „merged into one“ (JavaScript, Groovy und Jython auch möglich)
  • Wechsel von Java 8 auf Java 11
  • openHAB Remote Binding für die Integration von Legacy-Systemen
  • Ein komplett neues User Interface
  • Das Semantische Modell von HABot wurde integriert
  • Blockly als Code-Editor integriert
  • Neues Seitenkonzept (für Landkarten und Gebäudepläne)
  • 86 neue Add-ons (siehe Release Notes)
  • … und viele, viele Detailverbesserungen

Die 2.5.x Versionen werden für sicherheitskritische Punkte in den nächsten Monaten noch mit Updates versorgt. Alle 6 Monate soll ein Major-Release der 3.x-Linie erfolgen d.h. Sommer 2021 grob eine Version 3.1.

Ich habe mich entschieden die Hardware-Plattform von einem Raspberry Pi 3 auf 4 zu wechseln und damit das System komplett neu aufzusetzen. Über das „openHAB Remote Binding“ möchte ich meine alte 2.5.x Installation anbinden und schleichend die Konfigurationen übernehmen und testen. Das ist zwar mehr Aufwand, aber ich habe noch einige alte Konfigurationen und Bindings vor der Umstellung entsprechend testen. Außerdem „Never change a running system!“ bzw. auf das erste „Service Pack“ würde ich bei einem Major-Release immer abwarten. 🙂

Wie sehen eure Migrationspfade aus? Welche Neuerungen helfen euch in openHAB 3 weiter?

openHAB 2.5.11 und 3.0 RC1 veröffentlicht

Am 13.12.2020 gab es noch eine neue Version in der openHAB 2.5.x Versionslinie. Die Version 2.5.11 wurde als reines Bugfix-Release veröffentlicht. Die Änderungen könnt Ihr hier im Changelog einsehen.

Nachgelegt wurde dann am 14.12.2020 mit dem ersten Release Candidate von openHAB 3.0.0. Das Changelog des RC1 findet Ihr in diesem Link.

Durch das Remote openHAB Binding ist wahrscheinlich auch ein einfacher Wechsel von 2.x auf 3.x möglich. In Kombination mit einer neuen Hardware und diesem Binding könnte sich ein interessanter Migrationspfad ergeben.

Habt Ihr die neuen Versionen schon getestet? Gibt es bereits Erfahrungswerte mit dem Remote openHAB Binding?

openHAB Virtual MeetUp 2020 am 05.12.2020

Hier findet Ihr die Aufzeichnung zum openHAB Virtual MeetUp 2020. Sehr interessant waren die Infos rund um openHAB 3.x.

Fünfter Meilenstein für openHAB 3.0 (Milestone 5) veröffentlicht

Am 06.12.2020 wurde der fünfte Meilenstein von openHAB 3.0 veröffentlicht. Es geht also auf die Zielgerade mit openHAB 3.0 zu.

Den Milestone 2 + 3 + 4 hatte ich hier im Blog nicht explizit erwähnt. Folgende Anpassungen gab es in den Versionen:

Das Board zur Weiterentwicklung der Version 3.0 findet Ihr immer noch hier. In dem Meilenstein 5 sind wieder sehr viele Änderungen und Erweiterungen integriert worden.

Leider fehlen immer noch viele meiner 1.x-Addons in der 2.x-Architektur d.h. für mich werde ich nicht vom Beginn an auf die neue 3.0er-Version umsteigen können. Leider ist der Test-Aufwand dann für unser SmartHome dann doch sehr hoch.

Vielleicht gibt es ja doch zu Weihnachten eine neue Hardware für openHAB? Wie sieht es bei euch aus: Habt Ihr bereits openHAB 3.0 in euren smarten Umgebungen getestet?

openHAB 2.5.10 veröffentlicht

Am 25.10.2020 wurde ein neues Update für openHAB veröffentlicht. Die Version 2.5.9 sollte die letzte Version vor dem 3er-Zweig sein. Jetzt wurde noch einmal im Oktober eine Zwischenversion veröffentlicht. Die Version 2.5.10 ist wieder komplett kompatibel zu den vorherigen  2.5.x Versionen. Es gab mit der neuen Version ca. 30 Bugfixes der bestehenden Plugins. In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Erster Meilenstein für openHAB 3.0 (Milestone 1) veröffentlicht

Am 11.10.2020 wurde der erste Meilenstein von openHAB 3.0 veröffentlicht. Hier gibt es die ersten Änderungen zum Milestone 1 / 3.0 von openHAB.

Das Board zur Weiterentwicklung der Version 3.0 findet Ihr hier.

Beim Überfliegen des Changelogs sind mir ein paar Kleinigkeiten aufgefallen, die auch für unsere Installation relevant sind:

  1. Die „classice rule engine“ wurde gegen NGRE (einem DSLRuleProvider) ausgetauscht
  2. 1.x-Addons (Legacy Addons) werden nicht mehr unterstützt

Beim Überfliegen meiner openHAB-Installation habe ich 8 1.x-Addons gefunden. Von diesen war erst ein Addon in der 2.x-Architektur vorhanden (mein KNX-Binding müsste ich eh schon lang umziehen :-)). Durch den Wechsel der Regel-Engine müssen natürlich auch alle Skripte getestet werden.

Wie habt Ihr den späteren Umstieg auf openHAB 3.0 vor? Ich bin gerade am überlegen, ob in diesem Zug auch nicht gleich eine neue RaspberryPi-Hardware eine gute Idee wäre.