Smart Home bedeutet für mich Komfort, Sicherheit und Unterstützung in meinem Alltag. Doch grade beim Komfort ist es oft eine Auslegungssache, was man darunter versteht. Ich für meinen Teil finde es zum Beispiel sehr komfortabel, wenn ich meinem Zuhause sagen kann, über welche Ereignisse ich informiert werden möchte. Aus diesem Grund entstand für mich der Bedarf, Push Notifications individualisieren zu können.

Gut an einem freien System ist es natürlich, dass das damit umsetzbar ist. OpenHAB zum Beispiel kann durch individuelle Regeln stark an die eigenen Bedürfnisse angepasst werden. So auch bei den Push Notifications, um die es in diesem Beitrag gehen soll.

 

Wann eine Push versenden?

 

Eine sehr grundsätzliche Frage, die man sich zu Beginn immer stellen sollte: Wann sollte ich eine Push Notification versenden?

Die Frage lässt sich nicht pauschal beantworten, denn die Erwartungen sind dabei viel zu individuell. So kann es sein, dass der eine Haushalt eine Benachrichtigung über die Veränderung der Temperatur wünscht, der andere Haushalt hingegen nicht.

Doch nicht nur über Haushalte hinweg treten Differenzen auf, sondern auch innerhalb eines Haushalts. Man selbst möchte Informationen zur Sicherheit des Zuhauses, die anderen Hausbewohner hingegen lieber zu Geschehnissen im Alltag, wie beispielsweise der Waschmaschine.

Um nun nicht jedes Haushaltsmitglied mit unsinnigen Benachrichtigungen zu nerven, muss ein ausgeklügeltes System her. Dieses System soll anhand vorgegebener Präferenzen entscheiden, ob eine Benachrichtigung versendet wird oder nicht.

Mit OpenHAB ist eine solche Umsetzung möglich und ich nutze sie auch in meinem Smart Home, um gezielt die richtigen Personen zu informieren.

 

Push Notifications individualisieren

 

Eine kurze Erläuterung

 

Im obigen Screenshot siehst du unterschiedliche Konfigurationsmöglichkeiten, die aufgrund eines Status im Smart Home eintreten können.

Ein gutes Beispiel ist der Zustand Waschmaschine fertig. Hier soll es grundsätzlich die Möglichkeit geben, dass eine Push Notification versendet wird. Jedoch möchte ich diese Push Notification nicht an jedes Haushaltsmitglied versenden und habe daher einen Switch eingeführt, mit dem ich diese ausschalten kann.

Für jedes Mitglied im Haushalt gibt es nun einen virtuellen Switch der darüber entscheidet, ob Push Notifications über diese Ereignis zugestellt werden sollen. Innerhalb der Regel prüfe ich nun, ob der jeweilige Switch eingeschaltet ist. Sofern dies zutrifft, wird an diese Person eine Push Notification gesendet.

Sicherlich ist es anfangs mühsam, für jedes Ereignis einen eigenen Switch einzuführen und diesen im Code zu überprüfen. Jedoch ist der Zuwachs an Komfort im Nachhinein wirklich erstaunlich. Im Alltag ist man für diese Funktion sehr schnell dankbar.

 

Checkliste Push Notifications individualisieren

 

Bevor wir starten, gebe ich dir einen schnellen Überblick über die notwendigen Schritte, die wir gleich zusammen unternehmen. Anhand dieser Schritte kannst du dann weitere Haushaltsmitglieder und individuelle Benachrichtigungen umsetzen, ohne die komplette Anleitung nochmal lesen zu müssen.

 

  • Für jedes Haushaltsmitglied einen User in der OpenHAB-Cloud anlegen
  • Benutzername und Passwort in der App hinterlegen (für jedes Haushaltsmitglied)
  • Switch-Items für jedes Ereignis und jeden Benutzer anlegen
  • Deine Regeln anpassen, damit die Abfrage nach dem Status des Switch-Items erfolgt
  • Integrieren deiner Switch-Items in die Sitemap, damit du diese konfigurieren kannst

 

Wenn dir die nachfolgende Anleitung gefällt, würde ich mich sehr über eine Rückmeldung in den Kommentaren oder das Teilen des Beitrags freuen. Das Teilen ist eine schöne und für dich kostenlose Anerkennung meiner Arbeit, die ich in diese Anleitung und in die Idee gesteckt habe.

 

Die Einrichtung des OpenHAB-Kontos

 

Ich habe meine OpenHAB-Instanz mit der OpenHAB-Cloud verbunden. Hierüber werden die unterschiedlichen Mitteilungen direkt auf das Smartphone zugestellt. Damit der Dienst nun zwischen den unterschiedlichen Hausbewohnern unterscheiden kann, gilt es etwas bei der Einrichtung zu beachten.

Der erste Nutzer kann innerhalb der Cloud mehrere User mit unterschiedlichen E-Mailadressen anlegen.

 

OpenHAB Users

 

Jeder Benutzer kann durch seine individuelle E-Mailadresse jederzeit gezielt benachrichtigt werden. Wenn du also in deinem Haushalt mehrere Personen hast, musst du jede Person individuell anlegen.

Für deine Kinder könntest du hingegen auch ein Sammelkonto verwenden, so dass diese sich dieses Konto in der App teilen. Ganz nach deinem Geschmack.

Auf jeden Fall solltest du dir die E-Mailadresse merken, du wirst sie später innerhalb des Codes noch brauchen.

Außerdem sollte jedes Haushaltsmitglied in den Einstellungen der OpenHAB-App seinen Benutzernamen und das Passwort angeben, das du ihm zugewiesen hast. Nur so weiß die Cloud, welches Gerät zu welchem Benutzer gehört.

 

Die Einrichtung in OpenHAB

 

Aufgrund der besseren Verständlichkeit, werden wir gemeinsam eine individuelle Push Notification für das Ereignis Waschmaschine fertig anlegen. Das Muster kannst du allerdings auch auf andere Ereignisse übertragen, da es sich jedes Mal um das gleiche Vorgehen handelt.

Du kannst außerdem mehrere Ereignisse definieren. Dabei musst du nur die Namen der jeweiligen Items gegen deine austauschen.

Wir werden außerdem gemeinsam in der Sitemap einen Bereich einrichten, über den du Benachrichtigungen aktivieren oder auch deaktivieren kannst. Theoretisch kannst du diesen Teil auch auf eine andere Sitemap auslagern oder nur innerhalb der PaperUI verändern.

 

Items definieren – Los geht’s!

 

Wir beginnen damit, innerhalb einer Items-Datei einen Switch zu definieren, den wir WaschmaschineFertigNAME nennen. Ersetze dabei NAME durch den jeweiligen Namen des Hausbewohners.

 

Switch WaschmaschineFertigLukas "Waschmaschine fertig"

 

Innerhalb dieses Switches speichern wir, ob der jeweilige Bewohner die Benachrichtigung erhalten möchte oder nicht. Ein Switch ist deshalb ratsam, da er sich schon von Haus aus auf ON oder OFF einstellen lässt. Er ist also wie geschaffen für unser Vorhaben.

 

Die Regel anpassen

 

Nun geht es an die eigentliche Einrichtung der Benachrichtigung. Dazu passe ich eine vorhandene Regel entsprechend an, die dann wie folgt aussieht:

 

rule "Waschmaschine fertig"
when
    Item WaschmaschineECurrent changed
then
    if (WaschmaschineECurrent.state > 0.15 && WaschmaschineECurrent.state < 1.00) {
        createTimer(now.plusMinutes(3), [|
            if ((WaschmaschineECurrent.state < 0.75) && (WaschmaschineECurrent.state > 0) && (told == 0)) {
                if (WaschmaschineAlexa.state == ON) {
                    Echo_AZ_TTS.sendCommand('Die Waschmaschine ist fertig.')
                    Echo_WZ_TTS.sendCommand('Die Waschmaschine ist fertig.')
                    Echo_Kueche_TTS.sendCommand('Die Waschmaschine ist fertig.')
                    Echo_Bad_TTS.sendCommand('Die Waschmaschine ist fertig.')
                }
                
                if (WaschmaschineFertigLukas.state == ON) {
                    sendNotification('MeineEmail@Domain.de', 'Die Waschmaschine ist fertig.')
                }
                }
                
                told = 1
            }
        ])
    }
end

 

Fixiere dich dabei in diesem Beispiel nicht zu stark auf den eigentlichen Code. Es geht im Grunde nur um den grün markierten Bereich innerhalb des Codes, der die Abfrage darstellt.

Wir prüfen an dieser Stelle, ob unser Switch-Item den Zustand ON hat. Sofern das der Fall ist, versenden wir eine Benachrichtigung an diesen Benutzer. Der Benutzer ist dabei einer derjenigen, die du innerhalb der OpenHAB-Cloud angelegt hast. Erinnerst du dich?

Hier wird nun auch klar, weshalb du dir die E-Mailadressen merken solltest, denn an die adressieren wir nun die Nachricht. Anders als bei eine Broadcast-Notification, die an alle Benutzer gerichtet ist.

Ist dein Switch hingegen auf OFF gestellt, würde das System keine Benachrichtigung an dich verschicken und du bleibst über den Eintritt dieses Ereignis uninformiert.

 

Zuletzt noch die Sitemap

 

Wie bereits angesprochen, möchtest du sicherlich später einzelne Benachrichtigungen gerne aktivieren oder deaktivieren. Am besten funktioniert das, indem du dir diese Switches in eine Sitemap integrierst, so dass du auch bequem vom Handy aus die Benachrichtigung verwalten kannst.

Die Handgriffe, die hierfür notwendig sind, stellen keine große Hürde dar. Du musst im Grunde nur in deine Sitemap den entsprechenden Code platzieren. Nachfolgend findest du ein Codebeispiel für eine funktionierende Sitemap.

 

sitemap zuhause label="Smart Home" {
Frame label="Systemeinstellungen" {
Text label="Push NAME" icon="settings" {
            Switch item=WaschmaschineFertigLukas label="Waschmaschine fertig" icon="settings" mappings=[ON="Push"OFF="Kein Push"]
        }
    }
}

 

Wie du siehst, habe ich ein Frame innerhalb der Sitemap integriert. Ein Frame dient der groben Unterteilung unterschiedlicher Items in der Sitemap. In dieses Frame habe ich ein Text-Item gesetzt, welches als Einstiegspunkt in ein Untermenü geeignet ist.

So kannst du für jeden Hausbewohner ein eigenes Untermenü erstellen, so dass dieser in diesem Untermenü nur seine eigenen Einstellungen sehen und bearbeiten kann. Damit entgehst du der Gefahr, dass versehentlich ein Item für eine andere Person verändert wird.

 

Und nun?

 

Jetzt kannst du für all deine Regeln solche individuellen Push Notifications erstellen und zur Verwaltung in deine Sitemap integrieren. Hierzu musst du lediglich die gleichen Schritte nochmals befolgen. Bedenke dabei aber bitte, dass du dein Switch-Item beim nächsten Mal anders benennst, denn sonst kommt es zu Problemen.

Auch für eine andere Person kannst du nun ein neues Item anlegen und dieses in die Regel sowie in die Sitemap integrieren. Das Vorgehen ist dabei immer gleich. Du beginnst mit dem Item, modifizierst die Regel und integrierst dann das Switch-Item in deine Sitemap, so dass du es einstellen kannst.

Auf diese Weise bist du künftig dazu in der Lage, jedem Haushaltsmitglied individuelle Benachrichtigungen zuzustellen. Wenn du also eine Benachrichtigung für wenig sinnvoll hältst, kannst du sie dennoch ruhigen Gewissens einbauen. Denn du musst sie ja nicht empfangen. Solltest du dich eines Tages dennoch dazu entschließen, aktivierst du sie einfach in deiner Sitemap und sie wird dir künftig zugestellt.

 

Noch ein kleiner Tipp am Rande

 

OpenHAB speichert den Zustand von Items nicht über einen Neustart hinweg. Das bedeutet, wenn du deine Hausautomation das nächste Mal neu starten musst, bist du auch in der Pflicht, jede Push Notification erneut zu aktivieren. Andernfalls wirst du keine erhalten.

Um das zu umgehen, bietet sich die sogenannte Persistence von OpenHAB an. Hierbei werden die Werte in eine Datenbank oder eine Datenbankdatei gesichert, so dass diese nach einem Neustart wiederhergestellt werden. Der Vorteil für dich liegt darin, dass du die Switches nicht erneut aktivieren oder deaktivieren musst.

Wenn du dich hierfür interessierst, kann ich dir die offizielle Dokumentation ans Herz legen. Hier wirst du fündig.

Solltest du mehr über die Persistence wissen wollen, wirst du in meinem Artikel zum Thema rrd4j fündig. Lass dich dabei bitte nicht von den kuriosen Informatiker-Worten abschrecken. Ich habe mein Möglichstes getan, um dir die Thematik verständlich und einfach zu erklären. Inklusive Tipps zur Umsetzung deiner Speicherung.

 

Wofür wirst du diese individuellen Benachrichtigungen nutzen? Hast du Benachrichtigungen, die nicht an alle Haushaltsmitglieder gehen sollen? Lass gerne mal einen Kommentar da und sorge für weitere Inspirationen. 🙂


Lukas

Hi, mein Name ist Lukas. Seit 2016 blogge ich auf Hobbyblogging über unterschiedliche Themen des Alltags. Schwerpunkt dabei ist das Thema Smart Home, speziell mit der Open Source Software OpenHAB. Neben dem Bloggen absolviere ich derzeit mein Master-Studium im Fachbereich Wirtschaftsinformatik und arbeite als Werkstudent im Software Engineering.

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.