Aktualisierung openHAB 2.4 auf 2.5.1

Ich habe in den vorherigen Artikeln bereits beschrieben welche Mehrwerte und neue Funktionen openHAB 2.5.1 hat. In diesem Beitrag beschreibe ich kurz die Aktualisierung von openHAB 2.4 auf 2.5.1 und mögliche “Stolpersteine” nach dem Update.

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

Nach dem Update bzw. während des Updates kamen Meldungen, dass bestimmte Keys nicht mehr gültig sind (KEYEXPIRED-Meldungen vom openHAB-Server). Diese können wie folgt umgangen werden:

wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -
apt-key list

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

Nach der Aktualisierung kann man das System mit folgendem Befehlt komplett neu starten:

sudo shutdown -r now

Damit ist die Installation von Version 2.4 auf 2.5.1 aktualisiert. Am Ende der Installation werden jetzt auch noch die “Breaking Changes” angezeigt d.h. die Änderungen die Ihr manuell durchführen müsst.

Nach der Installation habe ich noch den Cache wie folgt geleert und das System noch einmal neu gestartet:

sudo systemctl stop openhab2.service
sudo openhab-cli clean-cache
sudo shutdown -r now

Manuelle Anpassungen der Konfigurationen

Nach der Installation werden die “Breaking Changes” in der Konsole angezeigt. Hier kann man alle Bindings kontrollieren, die man im Einsatz hat.

In meiner Systemumgebung musste ich folgende Punkte kontrollieren:

  • HueEmulation
    • Hier hatte ich noch eine alte Beta-Version installiert mit der es zu Konflikten kam (hier mussten dann auch alle Alexa-Geräte deaktiviert und neu gesucht werden)
  • RestDocs
    • Diese Thematik wird in den “Breaking Changes” beschrieben (bitte vor dem Update ändern und nicht wie bei mir erst nach der Aktualisierung)
  • Ansonsten hatte ich keine weiteren Anpassungen durchführen müssen …

Fazit

Nach etwas zwei Stunden Arbeit und etwas Vorbereitung läuft meine Installation nun auf openHAB 2.5.1. Ähnlich wie beim update auf Version 2.4 hatte ich nach diesem Update wieder Probleme mit der HueEmulation / Alexa (dieses Mal waren Sie aber von mir selbst verursacht).

Das Update alleine hat man schnell durchgeführt. Die Tests mit allen Endgeräten und Bindings benötigen bei mir doch schon etwas Zeit (FritzBox, KNX, openHAB App + Web-Client, HueEmulation, HomeMatic, MQTT, LED, Echo / Alexa, Sprachsteuerung, …).

Habt Ihr auch schon auf openHAB 2.5.1 aktualisiert? Hat es bei euch ohne Probleme funktioniert? Welche neuen Funktionen nutzt Ihr?

Eine smarte Waschmaschine mit openHAB (2)

Im vorherigen Artikel habe ich kurz die Anforderung dargestellt und eine kurzes Beispiel für eine Messung unter HomeMatic beschrieben.

Inbetriebnahme openHAB

Im ersten Schritt habe ich noch einmal meine notwendigen Räume und Variablen in der generellen Haus.items-Datei kontrolliert und ein paar neue Räume eingefügt (das ist individuell pro Installation).

Da meine HomeMatic-Anlage bereits vorhanden war, war keine Anpassung der HomeMatic.things-Datei bei mir notwendig.

Nach der Inbetriebnahme waren die neuen Items bereits in der Inbox vorhanden. Die weitere Konfiguration habe ich manuell in der Konfiguration und nicht im Webclient vorgenommen.

HomeMatic.items

In der Items-Datei habe ich folgende Kanäle für die Steckdose zugeordnet:

// 14.01.2020 - Steckdose Waschmaschine mit Leistungsmessung
Number hmSteckdose_KG_Heizungsraum_Washingmachine_SIGNAL_STRENTH                                    "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - Signal Strength"       (gKG_Heizungsraum)                                                                                  {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:0#SIGNAL_STRENGTH"}
Switch hmSteckdose_KG_Heizungsraum_Washingmachine_STATE                                             "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - State [%d]"            (gKGgKG_HeizungsraumgSteckdosegSteckdose_KGgSteckdose_KG_Heizungsraum)  [ "Lighting" ]      {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:1#STATE"}
Number:Energy hmSteckdose_KG_Heizungsraum_Washingmachine_ENERGY_COUNTER                             "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - Energy Counter"        (gKG_Heizungsraum)                                                                                  {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:2#ENERGY_COUNTER"}
Number:Frequency hmSteckdose_KG_Heizungsraum_Washingmachine_FREQUENCY                               "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - Frequency"             (gKG_Heizungsraum)                                                                                  {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:2#FREQUENCY"}
Number:Power hmSteckdose_KG_Heizungsraum_Washingmachine_POWER                                       "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - Power"                 (gKG_Heizungsraum)                                                                                  {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:2#POWER"}
Number hmSteckdose_KG_Heizungsraum_Washingmachine_CURRENT                                           "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - Current"               (gKG_Heizungsraum)                                                                                  {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:2#CURRENT"}
Number:ElectricPotential hmSteckdose_KG_Heizungsraum_Washingmachine_VOLTAGE                         "Waschmaschine Funk-Steckdose KG - Heizungsraum (HM-ES-PMSw1-Pl-DN-R1) - Voltage"               (gKG_Heizungsraum)                                                                                  {channel="homematic:HM-ES-PMSw1-Pl-DN-R1:ccu:SERIAL:2#VOLTAGE"}

Number hmSteckdose_KG_Heizungsraum_Washingmachine_OpState                                           "Waschmaschine Status [MAP(HomeMatic.map):%s]"

Die ersten 7 Variablen stellen die Kanäle des Aktors dar. Die letzte Variable nutze ich für die Visualisierung des Status in der Oberfläche.

Aus dem Beispiel bitte die SERIAL mit der entsprechenden Seriennummer des Aktors austauschen.

HomeMatic.map

Die Mapping-Datei für die Oberfläche kann mit folgenden Statuswerten versehen werden:

0=Aus
1=Standby
2=Aktiv
3=Fertig
NULL=Unbekannt

Leistungswerte herausfinden

Nun kann man je nach Systemumgebung die Leistungswerte des Verbrauchers bzw. der Waschmaschine herausfinden. Dazu lässt man den Aktor entsprechend einen Waschgang in Betrieb und kann per grep-Befehl unter Linux entsprechend die erfassten Werte aus den Log-Dateien lesen:

grep "Washingmachine_POWER changed" /var/log/openhab2/events.log | sed 's/.[0-9]* \[ItemStateChangedEvent.* to /;/'

Danach habe ich die Ergebnisse in Notepad++ als CSV-Datei kopiert und etwas für die weitere Excel-Auswertung vereinfacht. In Excel lädt man die CSV-Datei entsprechend der Trennzeichen oder festen Breite entsprechend in die Applikation und fügt ein Diagramm für die Visualisierung des Stromverbrauchs in dem definierten Zeitraum ein.

Ein einfaches Beispiel-Ergebnis kann wie folgt aussehen:

Hier sind klar die Leistungsspitzen und die geringeren Aktivitäten erkennbar. Abgeleitet ergeben sich daraus folgende Werte:

  • > 10 W = ACTIVE d.h. Waschmaschine läuft
  • < 4,5 W = STANDBY d.h. Waschmaschine ist fertig, aber eingeschalten
  • < 0,2 W = OFF d.h. Waschmaschine ist aus

Integration Alexa

Das Amazon Echo Control Binding ist bei mir bereits eingebunden. Folgendes Item ist für “Text to Speech” bereits bei mir vorhanden und muss evtl. ergänzt werden:

String Echo_Living_Room_TTS                   "Text to Speech"                        (Alexa_Living_Room) {channel="amazonechocontrol:echo:acc:dev1:textToSpeech"}
String Echo_Office_TTS                   "Text to Speech"                        (Alexa_Office) {channel="amazonechocontrol:echo:add:dev2:textToSpeech"}

acc bitte entsprechend eures Accounts ändern und dev1 bzw. dev2 an eure Endgeräte anpassen.

HomeMatic.rules

Eine einfache Automatisierung kann wie folgt hinzugefügt werden:

val Number MODE_OFF = 0
val Number MODE_STANDBY = 1
val Number MODE_ACTIVE = 2
val Number MODE_FINISHED = 3

rule "Washingmachine Consumption State Machine"
when
    Item hmSteckdose_KG_Heizungsraum_Washingmachine_POWER changed
then
    if (hmSteckdose_KG_Heizungsraum_Washingmachine_POWER.state < 0.2) {
        hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.postUpdate(MODE_OFF)
        logInfo("INFO","Waschmaschine: MODE_OFF")
}
    else if (hmSteckdose_KG_Heizungsraum_Washingmachine_POWER.state > 10) {
        hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.postUpdate(MODE_ACTIVE)
        logInfo("INFO","Waschmaschine: MODE_ACTIVE")
}
    else if (hmSteckdose_KG_Heizungsraum_Washingmachine_POWER.state < 4.5) {
        if (hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.state == MODE_OFF) {
            hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.postUpdate(MODE_STANDBY)
            logInfo("INFO","Waschmaschine: MODE_STANDBY")
}
        else if (hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.state == MODE_ACTIVE) {
            hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.postUpdate(MODE_FINISHED)
            logInfo("INFO","Waschmaschine: MODE_FINISHED")
}
}
end

rule "Washingmachine Notifications"
when
    Item hmSteckdose_KG_Heizungsraum_Washingmachine_OpState changed
then
    if (hmSteckdose_KG_Heizungsraum_Washingmachine_OpState.state == MODE_FINISHED) {
        Echo_Living_Room_TTS.sendCommand('Die Waschmaschine ist fertig.')
        Echo_Office_TTS.sendCommand('Die Waschmaschine ist fertig.')
        logInfo("INFO","Waschmaschine fertig")
}
end

Wenn die Waschmaschine fertig ist, wird entsprechend in die Log-Datei geschrieben und eine Status-Information per Alexa ausgegeben. Nachträglich habe ich noch eine Information per Telegram eingebaut.

Haus.sitemap

Nun müssen in der App und im Webclient noch die Ergebnisse visualisiert werden. Ein einfaches Beispiel kann so aussehen:

Frame label="Verbraucher" {
    Text label="Waschmaschine" item=hmSteckdose_KG_Heizungsraum_Washingmachine_OpState icon=whitegood
}

Ein paar Bilde für die “weiße Ware” können hier zur optischen Verbesserung auch noch verwendet werden: https://www.openhab.org/docs/configuration/iconsets/classic/

Fazit

Mit den zur Verfügung stehenden Informationen ist es recht einfach einen Verbraucher im Haushalt in das SmartHome zu integrieren. Das Beispiel mit openHAB, HomeMatic und Alexa ist recht einfach und schnell umgesetzt.

Welche Szenarien fallen euch bei der Leistungsüberwachung im SmartHome ein? Gibt es noch weitere Ideen und Verbesserungen für das Szenario?

Eine smarte Waschmaschine mit openHAB (1)

Ich hatte die Anforderung, dass unsere Waschmaschine im Keller ein Signal geben soll, wenn die Wäsche fertig ist (man hört im Erdgeschoss das Signal zum Teil nicht z.B. wenn Türen geschlossen sind).

Eine Umsetzung mit der vorhandenen Infrastruktur sollte ja recht einfach möglich sein.

Was wird benötigt?

Drei Elemente sind bereits vorhanden:

  • openHAB Software
  • HomeMatic Steckdosen
  • Alexa / Echo Geräte

Für die Leistungsüberwachung der Waschmaschine kann ein Funk-Schaltaktor mit Überwachung für ca. 40 Euro verwendet werden (eine HomeMatic-Steuereinheit ist aber auch notwendig).

Ein Sprachassistent der im Wohnbereich eine Rückmeldung geben soll ist auch bereits im Betrieb und in openHAB bereits konfiguriert.

Weiterführende Informationen

Die Anforderung ist ja nicht neu d.h. ich habe mich hier an diesen beiden Informationsquellen bedient:

Inbetriebnahme HomeMatic

Die Inbetriebnahme des neuen Funk-Schlataktors mit Leistungsmessung direkt in HomeMatic und der erste Test ist recht einfach:

  • Anmeldung am HomeMatic-Webinterface
  • Auswahl Geräte anlernen bzw. Homematic Gerät direkt anlernen
  • Den Schalter am Endgerät 4 Sekunden drücken und den Anlernmodus aktivieren
  • Danach befindet sich ein neues Gerät im Posteingang – hier ein HM-ES-PMSw1-PI-DN-R1
  • Ich habe noch die Protokollierung am Endgerät aktiviert und einen sprechenden Namen incl. Zuordnung zu Gewerk / Raum vorgenommen

Nun kann auch schon die Leistungsmessung an einem Endgerät durchgeführt und getestet werden.

Ausblick

Im nächsten Artikel stelle ich kurz dar wie ich den Funk-Schaltaktor mit Leistungsmessung in openHAB + Alexa integriert habe.

 

openHAB 2.5.1 veröffentlicht

Am 12.01.2020 wurde ein kleines Update / Patch von openHAB veröffentlicht.

Die Version 2.5.1 ist komplett kompatibel zur Version 2.5.1 und enthält den Core in der Version 2.5.0.

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

Ich hatte noch auf den ersten “Bugfix-Release” für die Aktualisierung auf 2.5.x gewartet. Wie sieht es bei euch aus, habt Ihr schon aktualisiert?

Vorbereitungen Aktualisierung openHAB 2.5

Hier habe ich schon einmal über die neuen Funktionen von openHAB 2.5 geschrieben. Wenn es eine neue Version gibt will man natürlich auch die neuen Funktionalitäten nutzen.

Wie man für openHAB ein Backup durchführen kann, habe ich bereits hier beschrieben.

Der Blog-Eintrag beschreibt noch einmal die neuen Features der Version (hier gibt es auch eine Artikel in Deutsch auf jaxenter.de dazu). Etwas genauer kann man sich in den Release Notes zu den einzelnen Änderungen einlesen.

Im Vorfeld habe ich mir noch die “Breaking Changes” in den Release Notes angesehen und mit meiner vorhandenen Haus-Installation abgeglichen. Vor der Aktualisierung habe ich auch noch ein paar Foren nach gängigen Problemen abgesucht.

Mit diesen Vorbereitungen sollte bei einer Aktualisierung von openHAB 2.4 auf 2.5 nichts schief gehen 🙂

Welche Vorbereitungen trefft Ihr vor einem openHAB-Update?

Müllkalender 2020 im Landkreis Dachau

Ich hatte hier schon einmal geschrieben wie ich meinen Müllkalender in openHAB integriert habe.

Ich habe dafür den Entsorgungskalender des Landkreises Dachau bzw. speziell des Markt Altomünster verwendet.

In 2019 hatte ich damit noch Probleme. Die Kalenderdatei (ICS) hatte fehlende Tags (die Suche nach dem “DTEND” hat mich doch etwas Zeit gekostet).

Diese Unschönheiten sind im 2020 Kalender nicht mehr vorhanden d.h. ich kann ohne manuelle Anpassungen nun meine Daten im Kalendersystem (ownCloud) und Hausautomatisierungssystem (openHAB) verwenden 🙂

Veröffentlichung openHAB 2.5

Am 15.12.2019 wurde die neue Version 2.5 von openHAB veröffentlicht. Die Ankündigung im Blog zur Version findet Ihr hier. In dem Artikel wird auch ein kurzer Ausblick auf openHAB 3 gegeben. Hier könnt Ihr die aktuelle Version beziehen.

Normalerweise sind zwei Veröffentlichungen pro Jahr geplant, aber wegen größeren Änderungen ist dieses Mal der Sommer-Release ausgefallen.

Folgende Funktionen werden in der Ankündigung als „Highlights“ benannt:Neue text-to-speech / Sprachfunktionen

  • Re-Integration of the Eclipse SmartHome code (dieser Punkt steht für viel Änderungen im Hintergrund – also für die Entwickler und weniger für den Endanwender)
  • 46 neue Addons wurden integriert (siehe die Release-Notes)
  • Ephemeris Feature
  • Tesla und Shelly Binding
  • Apps und Skills (openHAB Alexa Skill, openHAB Google Assistant, openHAB iOS App, openHAB Android App)

Die gesamten Release Notes (mit allen Details) findet Ihr hier.

Habt Ihr schon auf openHAB 2.5 aktualisiert? Welche neuen Funktionen nutzt Ihr?

openHAB 2.5

Der Release der SmartHome-Software openHAB 2.5 steht in den Startlöchern. Über die neuen Funktionen der Version 2.5 habe ihc nur einen DRAFT der Release Notes gefunden (dort stehen aber aktuell nur die “Breaking Changes” beschrieben).

Aktuell gibt es den Milestone 6 (M6) zum herunterladen.

Die Planung der Veröffentlichung sieht den 15.12.2019 als Termin vor. Am 08.12.2019 soll der RC1 erscheinen.

Hat jemand schon eine Aktualisierung auf die Testversionen 2.5 durchgeführt? Welche neuen Funktionen sind enthalten?

Steuerung der Weihnachtsbeleuchtung mit openHAB 2.4

Hier hatte ich 2016 schon einmal beschrieben wie ich über EIB / KNX und damals über Mr. House einfach die Weihnachtsbeleuchtung automatisiert habe. Mittlerweile sind ein paar mehr Steckdosen im Haus und außerhalb notwendig. Auch wurde das System von Mr. House auf openHAB portiert.

In vorherigen Artikeln hatte ich beschrieben für was ich EIB-Steckdosen und warum ich MQTT-Steckdosen nutze. Eine übergreifende Steuerung der verschiedenen Technologien habe ich einfach per Uhrzeit mit folgender Regel erstellt:

rule "Weihnachtsbeleuchtung Morgen Ein"
    when
        Time cron "0 30 5 * * ?"
    then

        Steckdose_Garage_xxx.sendCommand(ON)

        actions.publishMQTT("cmnd/sonoff-111111/POWER","ON")    // Büro
        actions.publishMQTT("cmnd/sonoff-222222/POWER","ON")    // Wohnzimmer
        actions.publishMQTT("cmnd/sonoff-333333/POWER","ON")    // Bad
        
        logInfo("INFO","Weihnachtsbeleuchtung eingeschalten")
end

rule "Weihnachtsbeleuchtung Morgen Aus"
    when
        Time cron "0 0 8 * * ?"
    then
        Steckdose_Garage_xxx.sendCommand(OFF)

        actions.publishMQTT("cmnd/sonoff-111111/POWER","OFF")
        actions.publishMQTT("cmnd/sonoff-222222/POWER","OFF")
        actions.publishMQTT("cmnd/sonoff-333333/POWER","OFF")

        logInfo("INFO","Weihnachtsbeleuchtung ausgeschalten")
end

rule "Weihnachtsbeleuchtung Abend Ein"
    when
        Time cron "0 0 17 * * ?"
    then
        Steckdose_Garage_xxx.sendCommand(ON)

        actions.publishMQTT("cmnd/sonoff-111111/POWER","ON")
        actions.publishMQTT("cmnd/sonoff-222222/POWER","ON")
        actions.publishMQTT("cmnd/sonoff-333333/POWER","ON")
        
        logInfo("INFO","Weihnachtsbeleuchtung eingeschalten")
end

rule "Weihnachtsbeleuchtung Abend Aus"
    when
        Time cron "0 0 22 * * ?"
    then
        Steckdose_Garage_xxx.sendCommand(OFF)

        actions.publishMQTT("cmnd/sonoff-111111/POWER","OFF")
        actions.publishMQTT("cmnd/sonoff-222222/POWER","OFF")
        actions.publishMQTT("cmnd/sonoff-333333/POWER","OFF")

        logInfo("INFO","Weihnachtsbeleuchtung ausgeschalten")
end
Hier sieht man wie die EIB-Steckdose außen an der Garage und die In-House MQTT-Steckdosen von 05:30 – 08:00 Uhr und von 17:00 – 22:00 Uhr eingeschalten werden. Die Regel könnte natürlich noch um Astronomische Werte wie z.B. Sonnenaufgang oder Sonnenuntergang ergänzt werden.
Welche Regeln nutzt Ihr noch in eurem SmartHome? Habt Ihr noch Ideen zur Ergänzung?