Sonntag, 17. November 2019

Openhab - Presence Sensor

Um einige Regeln Triggern zu können, habe ich mir einen Presence Sensor gebaut. Diesen verwende ich um z.B. die Heizung nur dann einzuschalten, wenn auch jemand zu Hause ist.
Der Sensor ist ein einfacher Ping auf die Handys, die im WLAN sind.

Hierfür benötigt ihr erstmal das Network Binding.
Geht hierfür auf Paper UI, klickt auf "Configuration - Bindings - "+" - Bindings - Network Binding - INSTALL"
Nachdem es installiert wurde, klickt man auf "Configuration - Things - "+" - Network Binding - ADD MANUALLY - Pingable network device".
Gebt die IP Adresse des Geräts ein und gebt dem Kind einen Namen. Klickt nun auf das Häkchen um es hinzuzufügen.

Nun solltet Ihr unter "Configuration - Things" einen Eintrag mit eurem Gerät finden und daneben sollte "ONLINE" stehen.
Klickt euer Gerät an und speichert euch den Eintrag bei "Online" weg, den benötigen wir gleich.
Dieser sollte in etwa so aussehen: "network:pingdevice:7af75308:online"

Öffnen nun im SMB Ordner "Items" die Datei "default.items" und fügt dort eine neue Zeile hinzu:

Switch   ChristopherHandy   <network>   { channel="network:pingdevice:7af75308:online" }

Der erste Teil "Switch" sagt Openhab, dass es sich um einen Schalter (ON/OFF) handelt. "ChristopherHandy" ist in dem Fall eine Art Spitzname für diesen Schalter. "<network>" ist ein optionaler Wert. Dahinter kommt dann { channel="<network:pingdevice:7af75308:online" }, also genau der Wert, den wir uns vorher weggespeichert haben.

Nachdem wir diese Datei speichern, müssten wir nachher nicht nach network:pingdevice:7af75308:online suchen, sondern können nach "ChristopherHandy" suchen. Dies macht es besonders dann einfacher, wenn man mehrere Geräte anpingen möchte.

Hat man mehrere Personen im Haushalt und möchte eine Regel bauen, die dann greift, wenn mindestens eine Person zu hause ist, fügt man dieses Gerät wie oben beschrieben ebenfalls hinzu.
Außerdem wird noch eine Art "Dummy Schalter" in die default.items Datei hinzugefügt mit folgender Zeile:

Switch   SomeOneHome   <switch>

Damit haben wir nun einen Schalter mit den Namen "SomeOneHome" hinzugefügt, der im ersten Moment nichts tut. Dieser kommt weiter unten zum Einsatz.

HABPanel

Als nächstes wollte ich ein aussagekräftiges Icon in HABPanel haben, welches kein einfacher ON/OFF Schalter ist. Dies ist ein Icon, welches ein Haus anzeigt, wenn ich zu Hause bin, und ein Cocktail Glas, wenn ich nicht zu Hause bin

   

Dafür habe ich ein Template mit folgendem Code erstellt:

<p>Christopher</p><br>

<div ng-if="itemValue('ChristopherHandy')=='ON'">
<div class="template-contents">
<div class="row">
<div class="col-xs-25"><span><widget-icon iconset="'eclipse-smarthome-classic'" icon="'presence'" backdrop="true" center="true"/></span></div>
</div>
<div class="row">
</div>
</div>
</div>
<div ng-if="itemValue('ChristopherHandy')=='OFF'">
<div class="template-contents">
<div class="row">
<div class="col-xs-25"><span><widget-icon iconset="'eclipse-smarthome-classic'" icon="'party'" backdrop="true" center="true"/></span></div>
</div>
<div class="row">
</div>
</div>
</div>



Mehrere Personen

Ihr habt nun also einen Haushalt mit mehreren Personen und möchtet z.B. die Heizung eingeschaltet haben, solange mindestens eine Person zu Hause ist.

Gehen wir hierfür in die Paper UI unter "Rules" (hierfür müssen die Next-Gen Rules installiert sein) und erstellen eine Regel Namens "Someone Home ON"

Wir klicken bei When auf das + und wählen "an item state is updated" aus und klicken auf Next.

Wir geben dem Trigger einen Namen, z.B.: "Christopher Home". Bei Item wählen wir den erstellten Spitznamen "ChristopherHome" aus. Bei Previous State wählen wir "OFF" aus und bei "State" wählen wir "ON". Nun klicken wir auf OK.

Dies macht ihr für alle Geräte/Personen, die hierbei berücksichtigt werden sollen.

Klickt nun bei Then auf das + und wählt "send a command" aus und klickt auf Next.

Dieser Action gebt ihr wieder einen Namen z.B.: "SomeOneHome ON", wählt bei Item den erstellen Dummy Schalter "SomeOneHome" aus und wählt bei Command "ON" aus. Klickt nun auf OK.

Vergesst nicht die Regel zu speichern, indem ihr oben auf das Häkchen klickt.

Nun haben wir also eine Regel erstellt. Diese Regel bewirkt, dass der Schalter "SomeOne Home" auf ON steht, solange mindestens eine Person zu Hause ist.
Sobald niemand mehr zu Hause ist, geht der Schalter auf OFF.

SomeOne Home Schalter verwenden

Nun können wir uns bei Regeln auf diesen Schalter beziehen.
Erstellen wir also eine Regel, bei der die Heizung um 7 Uhr morgens eingeschaltet wird, aber nur wenn jemand zu hause ist.

Bei When wählen wir "it is a fixed time of the day" aus und klicken auf Next. Wir vergeben einen Namen und stellen die Uhrzeit auf 07:00 Uhr.

Bei Then stellen wir ein, dass die Heizung eingeschaltet werden soll. Dies kann je nach Hersteller anders sein. Ihr kennt euch bei eurem Gerät da besser aus.

Bei but only if wählt ihr "an item has a given state" aus und klickt auf Next. Ihr vergebt wieder einen Namen, wählt bei Item den "SomeOne Home" Schalter aus, als Operator nehmt ihr "=" und bei State "ON". Klickt nun auf OK und speichert die Regel.

Nun schaltet sich eure Heizung um 7 Uhr ein, aber nur, wenn auch jemand zu hause ist.

Hinweis:
Ich habe diese Regel zusätzlich dafür benutzt die Heizung einzuschalten, sobald jemand nach Hause kommt.
Dafür fügt man bei When einen Trigger vom Typ "an iten state is updated" hinzu, wählt bei Item den Someone Home Schalter aus und bei Previous State OFF und bei State ON aus.

Labels: , , , , , , , , , , , , ,

Openhab - Next-Gen Rules

Ich möchte euch eine kleine Einführung in die Next-Gen Rules von Openhab geben.
Next-Gen Rules sind eine einfache Möglichkeit über die Web GUI von Paper UI Regeln zu erstellen.

Da die Anleitungen, die ich bisher gefunden habe nur sehr schwammig waren, möchte ich hier einiges erklären.

Installation

Die Installation ist recht einfach:

In der Paper UI klickt ihr auf "Add-Ons - MISC - Rule Engine (Experimental) - INSTALL"
Lasst euch vom "Experimental" nicht abschrecken. Bei mir funktioniert es problemlos.

Logik

Die Oberfläche ist einfach aufgebaut.
Man kann Trigger setzen, wie eine Uhrzeit oder wenn ein bestimmter Wert erreicht wurde, Anschließend stellt man ein, was dann passieren soll. Im unteren Abschnitt könnt ihr noch Abgrenzungen einstellen, wann diese Regel ausgeführt wird. Z.B.: nur wenn ein Item einen bestimmten Wert hat oder an einem bestimmten Tag.




Wichtig zu wissen ist, dass die "When" Trigger 'OR' verknüpft sind. Wenn ihr also mehrere Trigger eingestellt habt, wird die Regel ausgeführt, sobald einer der Trigger wahr ist. Bei Triggern zu einer bestimmten Uhrzeit ist mir aufgefallen, dass diese nicht um Punkt 8:30:00 Uhr greifen, sondern einige Sekunden später, was bei mir aber nicht so wichtig ist, ob es 7 Sekunden später ausgeführt wird.

Die "Then" Regeln werden der Reihe nach abgearbeitet.

Bei "But only if" sind die Werte 'AND' verknüpft. Es müssen also alle eingestellten Bedingungen wahr sein, damit die Regel ausgeführt wird.

Labels: , , , ,

Donnerstag, 23. Mai 2019

EMUI 9.0

Es ist nun einige Zeit her, dass ich das EMUI 9.0 Update auf meinem Honor 9 bekommen habe.
Als ich die Benachrichtigung bekommen habe, habe ich mich wie ein kleines Kind gefreut.
Doch als ich es installierte, kam die große Enttäuschung:

Die Quicksettings sind auf einmal weiss???
Das ganze Internet redet von einem Dark mode und die packen ernsthaft ein weisses Theme drauf?

Ehrlich gesagt, wollte ich das Update sofort wieder deinstallieren.
Doch das konnte ich meinem IT-Geek Herz nicht antun.

Also redete ich mir ein, dass alles gut wird, ich mich daran gewöhne und ich so wenigstens in den Genuss der neuen Features komme.

Doch so war es nicht...

Also installierte ich mir ein 3rd Party Theme, damit ich wenigstens eine art Darkmode hatte. Dieses ist zwar nicht 100% perfekt, da es manchmal schwarze Schrift auf dunklen Hintergrund gibt, aber das stört mich um einiges weniger, als wenn das Theme weiss ist.

Auch die super neuen Features beeindrucken mich nicht. Es gibt kein Feature bei dem ich sage "Wow, da hat sich das Update ja gelohnt!".

Im Gegenteil:

- Akkulaufzeit hat sich verschlechtert.
- Die hauseigenen Honor/Huawei Apps sehen teilweise schrecklich aus.
- WiFi+ ist nicht mehr zuverlässig wie früher.
- HiSearch ist ultra langsam geworden, auch wenn man es nur für die Appsuche verwendet.

Das einzige, was ein bisschen besser geworden ist, ist das zusammenspiel zwischen Android Apps und meiner KeePass App.
Dies ist aber wohl eher Android 9 zuzuschreiben als EMUI.

Wie ihr seht bin ich absolut kein Fan von dem aktuellen Update. Jedoch hoffe ich, dass mit einem Update einiges wieder besser läuft. Jedoch kann ich unter diesen Umständen Honor nicht mehr ruhigen Gewissens weiterempfehlen :/