openHAB 2.5.7 veröffentlicht

Am 23.07.2020 wurde ein neues Update für openHAB veröffentlicht.

Die Version 2.5.7 ist wie komplett kompatibel zur den vorherigen  2.5.x Versionen. Auch der monatliche Release-Zyklus spielt sich sehr gut ein. 🙂

Es gab mit der neuen Version 8 neue Add-ons und ca. 60 Erweiterungen und Bugfixes der bestehenden Plugins.

In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Ich hänge aktuell noch ein paar Minor-Releases zurück, aber es waren für unser SmartHome auch keine großartigen Neuerungen dabei. Immer im Fokus „Never change a running system!“.

Habt Ihr die Version 2.5.7 bei euch schon installiert? Gibt es schon Erfahrungswerte?

Die Karaf-Console mit openHAB

Wenn man sich etwas mehr mit openHAB beschäftigt, dann liest / hört man immer etwas von der Karaf-Console.

Karaf ist ein Enterprise-Framework von Apache und wird in OSGi-Umgebungen eingesetzt.

Zur Verwaltung der openHAB-Laufzeitumgebung ist die Karaf-Console ein sehr gutes Tool. Die Dokumentation zu dem Hilfsmittel findet Ihr auf der Hilfe-Seite.

Die Konsole kann hautsptsächlich für die Analyse von Log-Dateien in Echtzeit, zur Verwaltung der openHAB-Elemente und zur Ausführung von Befehlen zur Laufzeit verwendet werden.

An- und Abmeldung

Ihr könnt euch direkt per SSH nach einem Login auf dem Rechner wie folgt in die Karaf-Console einwählen:

ssh openhab@localhost -p 8101

Das zu verwendende Passwort könnt Ihr in der Dokumentation einsehen und sollte natürlich geändert werden.

Nach der Sitzung kann man sich wie folgt vom System abmelden:

logout

Überblick verschaffen

In der Console ist ein gutes Hilfe-System integriert d.h. mit diesen Befehlen könnt Ihr euch schnell eine Übersicht verschaffen:

help
help smarthome
help smarthome:things

Befehle ausführen

Mit den list-Parameter könnt Ihr euch eure Items oder die Inbox etwas genauer ansehen:

smarthome:things list
smarthome:inbox list

Fazit

Durch das OSGi-Framework ist eine einfache Verwaltung der Elemente in einem openHAB-System möglich.

Ich hatte den Anwendungsfall um doppelte HomeMatic-Elemente entsprechend zu entfernen (das geht auch mit den „remove“ Parametern).

Nutzt Ihr die Karaf-Console in eurem openHAB-Umfeld? Welche Funktionen nutzt Ihr davon?

Telegram als Binding in openHAB integrieren

Eine meiner ersten Aktionen mit openHAB war die Integration für mobile Benachrichtungen mit Telegram. In meinem ersten Anwendungsfall wurde Telegram per Action angebunden und eine kleine Anleitung habe ich hier abgelegt.

Seit ein paar Versionen gibt es nun ein Telegram Binding. Mit diesem Binding ist auch ein einfacheres Verschicken von Nachrichten an Gruppen möglich. Es ist also höchste Zeit meine bestehende Umgebung zu aktualisieren / anzupassen.

Vorbereitung und Struktur

Weiterführende Informationen zu dem Thema findet Ihr hier. Einen Telegram-Bot habe ich bereits erzeugt, wenn Ihr dies noch benötigt, findet Ihr hier eine Anleitung.

Folgende Gruppen habe ich mir in Telegram erstellt für unser SmartHome erstellt:

  • Eidelsburger SmtartHome (für allgemeine Nachrichten z.B. Wetterwarnungen, Müllkalender, Statusmeldungen, Rauchmelder)
  • Eidelsburger SmartHome – Admin (für technische Nachrichten z.B. Neustart des Systems)
  • Eidelsburger SmartHome – Test (für Testnachrichten und neue Konfigurationen)

Damit kann ich für mich persönlich und für die ganze Familie die jeweiligen Nachrichten entsprechen kanalisieren und priorisieren.

Gruppen-ID’s aus Telegram

  • alle gewünschten Gruppen in Telegram für die weitere Verwendung erstellen
  • in der Telegram-App eine neue Gruppe erstellen und die notwendigen Benutzer hinzufügen (den Bot hatte ich bereits für die Nachrichten erstellt)
  • am Desktop-PC die URL https://web.telegram.org/ aufrufen
  • mit der zugehörigen Telefonnummer anmelden
  • den von Telegram verschickten Code vom mobilen Endgerät am Desktop-PC eingeben
  • nun die notwendige Gruppe auswählen
  • die URL in der Adressleiste sieht wie folgt aus: https://web.telegram.org/#/im?p=g1234567
  • die eindeutige Gruppen-ID befindet sich nach dem „p=g“ (in diesem Beispiel: 1234567)
  • da alle Gruppen-Nummern in Telegram negativ sind, wäre die zu verwendende Nummer aus dem Beispiel: -1234567

openHAB-Binding

Hier gibt es ein paar Informationen über die Technik:

Das Binding ist über die Oberfläche wie folgt schnell und einfach installiert:

  • PaperUI – Add-ons – ACTIONS – Telegram Action (1.14.0) – bereits installiert, also nicht notwendig
  • PaperUI – Add-ons – ACTIONS – Telegram Binding (2.5.4) – INSTALL

Telegram.things

Im nächsten Schritt wird ein Thing entsprechend erstellt:

Thing telegram:telegramBot:HA_Bot [chatIds="-<channel main>","-<channel details>","-<channel test>", botToken="<token>", parseMode="Markdown"]

Hier ergänzt man in den chatIds die aus den Telegram-Gruppen extrahierten Nummern und passt seinen botToken entsprechend dem Bot an.

Telegram.items

Nun können die Standard-Items aus der Dokumentation hinzugefügt werden. Ich habe noch drei Variablen für die Verwendung der Telegram-ID’s erstellt (um mir etwas Tipparbeit zu sparen).

// Items for Telegram Groups
String TELEGRAM_CHANNEL_SMARTHOME "-<channel main>"
String TELEGRAM_CHANNEL_SMARTHOME_ADMIN "-<channel details>"
String TELEGRAM_CHANNEL_SMARTHOME_TEST "-<channel test>"

// Items for Telegram Groups
String telegramLastMessage "Telegram Bot Last Message" { channel = "telegram:telegramBot:HA_Bot:lastMessageText" }
String telegramLastMessageURL "Telegram Bot Last Message URL" { channel = "telegram:telegramBot:HA_Bot:lastMessageURL" }
DateTime telegramlastMessageDate "Telegram Bot Last Message Date" { channel = "telegram:telegramBot:HA_Bot:lastMessageDate" }
String telegramLastMessageName "Telegram Bot Last Message Sender" { channel = "telegram:telegramBot:HA_Bot:lastMessageName" }
String telegramLastMessageUsername "Telegram Bot Last Message Username" { channel = "telegram:telegramBot:HA_Bot:lastMessageUsername" }
String telegramLastMessageChatId "Telegram Bot Last Message chatId" { channel = "telegram:telegramBot:HA_Bot:chatId" }
String telegramLastMessageReplyId "Telegram Bot Last Message replyId" { channel = "telegram:telegramBot:HA_Bot:replyId" }

Telegram.rules

Nun kann in einem Regelwerk ganz einfach eine Nachricht an eine Telegram-Gruppe verschickt werden.

val telegramAction = getActions("telegram","telegram:telegramBot:HA_Bot")
telegramAction.sendTelegram(Long::parseLong(TELEGRAM_CHANNEL_HA_DETAILS), "%s %s", "Telegram Bot", "online")

In meinen bestehenden Rules-Dateien muss ich natürlich die vorherige Konfiguration der Telegram Action noch entsprechend suchen und aktualisieren (das wird bei den meisten Lesern nicht notwendig sein).

Fazit

Damit konnte ich mit relativ wenig Aufwand von den Telegram Actions auf das Telegram Binding wechseln. Die Action habe ich aktuell noch im System, wird aber von mir nicht mehr verwendet.

Jetzt kann ich meinen Bot auch an Gruppen einfach Nachrichten senden und die SmartHome-Funktion auf ein paar Anwender mehr verteilen.

Wie nutzt Ihr Telegram in eurem SmartHome? Habt Ihr ein anderes Nachrichtensystem verwendet? Mir würde ja noch eine Integration in Microsoft Teams sehr gut gefallen. 🙂

openHAB 2.5.6 veröffentlicht

Am 21.06.2020 wurde ein neues Update für openHAB veröffentlicht.

Die Version 2.5.6 ist komplett kompatibel zur den vorherigen  2.5.x Versionen.

Es gab mit der neuen Version 9 neue Add-ons und einige Erweiterungen und Bugfixes der bestehenden Plugins.

In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Habt Ihr die Version 2.5.6 bei euch schon installiert? Wer war schon so mutig?

openHAB 2.5.5 veröffentlicht

Am 18.05.2020 wurde ein neues Update für openHAB veröffentlicht.

Die Version 2.5.5 ist komplett kompatibel zur den vorherigen  2.5.x Versionen. Mit den grob einmal pro Monat geplanten neuen Versionen hat sich der Build- und Deploy-Prozess scheinbar gut eingespielt.

Es gab mit der neuen Version 4 neue Add-ons und einige Erweiterungen und Bugfixes der bestehenden Plugins.

In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Habt Ihr die Version 2.5.5 bei euch schon installiert?

Aktualisierung openHAB 2.5.1 auf 2.5.4

Ich habe hier bereits erklärt wie man von openHAB 2.4.x auf 2.5.x wechseln kann. Nun stand ein kleinerer Wechsel von openHAB 2.5.1 auf 2.5.4 an (hier handelt es sich lediglich um Bugfix-Releases).

Die Änderungen könnt Ihr hier einsehen:

Sicherung mit dem integrierten Backup

Da ich wegen den kleineren Änderungen keine komplette Image-Sicherung vornehmen wollte, habe ich die openHAB-integrierte Sicherungsfunktion wie folgt verwendet:

# openHAB stoppen
sudo systemctl stop openhab2.service
sudo $OPENHAB_RUNTIME/bin/backup

# OPTIONAL - Restore durchführen:
# sudo $OPENHAB_RUNTIME/bin/restore $OPENHAB_BACKUPS/openhab2-backup-19_01_14-17_27_42.zip

# openHAB wieder starten
sudo systemctl start openhab2.service

Das Backup wird in diesem Verzeichnis abgelegt:

/openHAB-share/openhab2-userdata/backups/

Aktualisierung der Installation

Das Update in einer Linux-Distribution auf Debian-basieren wird wie folgt durchgeführt:

sudo systemctl stop openhab2.service
sudo apt-get update
sudo apt-get upgrade

Während des „update“ Vorgangs waren Daten von raspbian nicht erreichbar. In der sources.list habe ich folgende Anpassungen vorgenommen:

sudo vi /etc/apt/sources.list

Folgenden Mirror ergänzen:
http://mirror.netcologne.de/raspbian/raspbian/

#deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://mirror.netcologne.de/raspbian/raspbian/ jessie main contrib non-free rpi

Mit dem ersten Befehl wird der openHAB-Dienst beendet. Die beiden nächsten Zeilen starten die Aktualisierung.

Mit den oben genannten Befehlen wird direkt von 2.5.1 auf 2.5.4 mit allen Abhängigkeiten aktualisiert.

Folgendes habe ich nach dem update noch durchgeführt:

# openHAB stoppen
sudo systemctl stop openhab2.service

# Cache leeren
sudo openhab-cli clean-cache

# Log-Dateien für einen sauberen Start sichern
sudo mv openhab.log openhab.log.old
sudo mv events.log events.log.old

# Neustart
sudo shutdown -r now

Funktionstest

Bei diesem update liegen keine „Breaking Changes“ vor d.h. der Funktionstest sollte recht einfach funktionieren.

Folgende Punkte habe ich nach dem Update kontrolliert:

  • Legacy Add-ons – keine Änderungen notwendig
  • Discontinued Add-ons – keine Änderungen notwendig
  • Visual Studio Code
  • Weboberflächen testen (BasicUI, ClassicUI, HabBot, PaperUI)

Danach habe ich noch alle individuellen Bindings und Funktionen aus unserem SmartHome auf Funktionsfähigkeit getestet.

Fazit

Nach ca. einer Stunde arbeit war das kleine Update auf openHAB 2.5.4 in unserem SmartHome erledigt. Großartige Neuerungen gibt es keine, aber dafür sind wieder einige Fehler gefixt worden.

Habt Ihr auch schon auf openHAB 2.5.4 aktualisiert? Hat es bei euch ohne Probleme funktioniert?

Die Sitemap in openHAB

Eine Sitemap in openHAB präsentiert die Things und Items des SmartHome-Systems. Abhängig vom Kundenwunsch muss das entsprechende User Interface (UI) ausgewählt und parametriert werden.

Die Sitemap ist die Visualisierung für den Endanwender, also der Client für den Browser / Web oder die SmartPhone-App.

Hier ist an einem Beispiel meine Struktur in der Android-App dargestellt (auf der höchsten Ebene):

Meine Idee hinter der Struktur war folgender Ansatz:

  • Abbildung der Räume des „Haus“ als höchstes Navigationselement (pro Raum sind dann alle im Raum enthaltenen Funktionalitäten abgebildet z.B. Licht, Steckdosen, Dimmer, Rollladen etc.)
  • In den „Zentralfunktionen“ sind alle Funktionen für den regelmäßigen Betrieb zusammengefasst z.B. MomeMatic, Tor, LED, Tasmota
  • Im Bereich „Sicherheit“ sind die Rauchwarnmelder hinterlegt
  • Bei den „Verbrauchern“ gibt es eine übersicht z.B. über die Waschmaschine
  • Bei den vielen „Alexa“-Komponenten (bzw. Echo-Geräten) habe ich eine eigene Kategorie eingefügt
  • Für die ganzen Umwelt-Daten gibt es die Kategorie „Wetter“ z.B. Astrologie, Wetter und Wetterwarnungen
  • Meine Anwesenheiten und den Müllkalender regle ich unter „Informationen“
  • Im Bereich „Eigene Funktionen“ sind spezielle Multimedia-System z.B. Wecker, Fritzbox, SamsungTV, Onkyo AVR, Kodi (Fire TV Stick) abgelegt

Ich habe die Sitemap.map bei mir manuell erstellt bzw. aus dem Beispiel von openHAB aufgebaut. Das habe ich diese Dokumentation verwendet.

Welche Funktionen interessieren euch aus der Sitemap im Detail (dann gehe ich auf diese Funktion / Visualisierung noch einmal genauer ein)? Auf der zweiten Ebene der Sitemap habe ich dann eher die Detailfunktionen und größeren Visualisierungen hinterlegt. 🙂

openHAB 2.5.4 veröffentlicht

Am 19.04.2020 wurde ein neues Update für openHAB veröffentlicht.

Die Version 2.5.4 ist komplett kompatibel zur den vorherigen  2.5.x Versionen.

Es gab mit der neuen Version 13 neue Add-ons und einige Erweiterungen und Bugfixes der bestehenden Plugins.

In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Habt Ihr die Version 2.5.4 bei euch schon installiert?

openHAB 2.5.3 veröffentlicht

Am 19.03.2020 wurde ein neues Update für openHAB veröffentlicht.

Die Version 2.5.3 ist komplett kompatibel zur Version 2.5.x.

Es gab mit der neuen Version 3 neue Add-ons und einige Erweiterungen und Bugfixes der bestehenden Softwarekomponenten.

In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Habt Ihr die Version 2.5.3 bei euch schon installiert?

Ich bin aktuell noch auf 2.5.1 und bei der Taktzahl an Updates warte ich ggf. noch ein paar „Fixes“ ab. 🙂