openHAB 2.5.2 veröffentlicht

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

Die Version 2.5.2 ist “fast” komplett kompatibel zur Version 2.5.1 und 2.5.0 (laut Changelog ist eine Änderung nicht abwärtskompatibel). Wenn man das EXEC-Binding im Einsatz hat, sollte man nach dem Update einmal die Dokumentation lesen (hier ein paar Infos zu der Sicherheitslücke).

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

Habt Ihr die Version 2.5.2 bei euch schon installiert?

Batteriewechsel bei einem Surface Pen (hier Surface Pro 3)

Wenn jemand für seinen Surface Pen einen Batteriewechsel vornehmen möchte, dann ist dieses Video recht sehenswert:

Was mir nicht bewusst war, dass der Surface Pen neben den AAAA-Batterien für die Schrift auch noch zwei 319 Uhrenbatterien für die Bluetooth-Verbindung hat (die findet man auch nur durch Zufall oder als Information in diesem Video).

Das erklärt jetzt, warum seit Jahren meine Tasten des Stifts nicht funktionieren (diese “funken” über Bluetooth) 🙂

Waren euch in eurem Surface Pen die 319er-Batterien bekannt?

 

RAM-Verbrauch beim neuen Edge-Chromium-Browser

Nach der Umstellung vom “klassischen” Microsoft Edge Browser auf den neuen Microsoft Edge (Chromium) Browser ist mir im Vergleich zu Google Chrome der erhöhte Arbeitsspeicherverbrauch aufgefallen.

Der Microsoft-Browser hat bei gefühlt einer ähnlichen technologischen Basis mit weniger offenen Tabs das doppelte an Arbeitsspeicher benötigt.

Bei der Ursachenforschung bin ich auf diesem Beitrag bzw. die experimentelle Funktion “Tab Freeze” gestoßen. Es werden Seiten / Tabs nach 5 Minuten Inaktivität eingefroren und sollen damit weniger Speicher benötigen.

Die Option kann im Edge-Browser wie folgt gesetzt werden:

edge://flags/#proactive-tab-freeze

Im Menü kann man die Einstellung auf “Enabled” setzen.

Nach dem Neustart der Browser-Instanzen benötigt Edge auch fast die Hälfte weniger Arbeitsspeicher. Ich denke die Option “Tab Freeze” ist für meinen Anwendungsfall mit vielen offenen Tabs über längere Sitzungen vorteilhaft.

Habt Ihr schon Erfahrungswerte für den Arbeitsspeicherverbrauch mit dem neuem Edge-Browser gemacht?

Was versteht man unter “SmartHome”?

Unter dem Begriff “Smart Home” versteht man im allgemeinen ein vernetztes Zuhause das mit Sensoren, Technologien und Systemen erweitert wurde. Im Vordergrund steht die Verbesserung der Wohn- und Lebensqualität, Sicherheit und die effiziente Energienutzung und die Automatisierung von Abläufen.

Von Vorteil ist es, wenn alle eingesetzten Technologien unabhängig vom Anbieter miteinander kommunizieren können. Um alle Technologien einfach zu implementieren kann eine Heimautomatisierungssoftware (wie openHAB) unterstützen und Schnittstellen vereinheitlichen.

Die Teilaspekte des SmartHome definiert Wikipedia wie folgt:

  • Hausautomation
  • Smart Metering
  • Haushaltsgeräte-Automation
  • Vernetzte Unterhaltungselektronik
  • Sicherheit / Peace of Mind

Vernachlässigen darf man bei allem Komfortgewinn aber auch nicht die IT-Sicherheit einer eingesetzten Lösung oder das Thema Überwachung und Privatsphäre.

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?