Kaffee-Monitoring

Diese Woche fängt schon mal gut an, der Strommesser an der Kaffeemaschine ist anscheinend seit gestern Vormittag kaputt. Erste Auswirkung ist, dass die Kaffeemaschine nicht mehr funktioniert hat. Das kriegt man wieder hin wenn man die Kaffeemaschine einfach direkt in die Steckdose steckt. Zweite Auswirkung ist dass wir keinerlei Monitoring mehr über den häuslichen Kaffeekonsum mehr haben.

Mini-Webserver mit systemd

Manchmal rächen sich ja Kleinigkeiten erst nach einer gewissen Zeit. So ist mir jetzt mit einem Skript aus dem Dezember gegangen. Kurz vor dem Urlaub gab es einen Reboot vom Smarthome-Server  und dabei wurde ein Systemd-Diesnst für WOL nicht sauber gestartet. Ende vom Lied: eine Woche lang in Österreich und keine Möglichkeit ein Backup zu machen.
Dieses Skript startet einen kleinen Web-Server der darauf wartet dass eine bestimmte Seite aufgerufen wird und schickt dann ein WOL-Befehl, damit der Backup-Rechner im Netz hochfährt. So weit, so gut, so simpel.

#!/usr/bin/python
import os
from bottle import route, run, template
@route('/startServer')
def startServer():
    return os.system("/usr/bin/wakeonlan 00:11:22:33:44:55")
@route('/')
def hello():
    return ':-)'
run(host='0.0.0.0', port=8080)

Im Dezember hatte ich noch als host in Zeile 14 explizit eine bestimmte IP-Adresse angegeben, das hat irgendwie nicht hin gehauen und den automatischen Start verhindert. Mit „0.0.0.0“ funktioniert das jetzt. Hier noch die systemd-Datei:

[Unit]
Description=Remote Start Waffe
After=network.target
[Service]
Type=simple
ExecStart=/home/christian/docker/smarthome/remote_start/remote_start.py
[Install]
WantedBy=multi-user.target

Kaum macht man es richtig und überprüft es, dann klappt das auch.

Was zusammen gehört

Der 3D-Druck alleine ist ja schon cool, genauso wie die Hausautomatisierung – da liegt es doch auf der Hand dass man diese beiden Themen irgendwie zusammenbringt. Richtige Freaks lassen sich den Status des Drucks irgendwie vom Haus anzeigen, mir reicht Octoprint samt Octoprint-App.
Bei Octoprint gibt es ein Plugin namens MQTT Publish und mit dem kann man recht einfach in die Oberfläche Buttons einbauen und wenn man dann so einen Button drückt, dann sendet Octoprint den hinterlegten MQTT-Befehl. Was kann man damit machen? Z.B. das Licht einschalten wenn man den Druck per Web-Cam kontrollieren will. Eine feine Sache.
[Update] Drucker ein- und ausschalten, spart Energie.

So ein Workflow halt


Es schaut recht einfach aus, aber man muss sich diesen Workflow einfach mal auf der Zunge zergehen lassen: Der Bewegungsmelder erkennt eine Bewegung, sendet eine Nachricht per Zigbee an den Server, der wandelt sie in eine MQTT-Nachricht, die dann in Node-Red rein geht (das ist im Bild links). In Node Red wird sie dann in ein JSON Objekt umgewendelt, ausgewertet und das Ergebnis dann wieder in eine MQTT-Nachricht verwandelt, das ist die rechte Seite.
Der Clou ist wie es weitergeht, die MQTT-Nachricht ist nämlich ein FHEM-Befehl, der wird in FHEM interpretiert, in eine Homematic Nachricht umgewandelt und damit das Licht am Küchentresen geschalten. Volle Funktion bei absoluter Interoperabilität und tut trotzdem gehen, krass.

Heute beim IoT-Workshop


Heute war IoT-Workshop. IoT steht für Internet of Things und ist derzeit voll hip, deshalb waren auch zwei Hipster aus Berlin da. Top-Hip praktisch. Am Anfang etwas Theorie, Daten erfassen, übertragen, weiterleiten, sammeln, aggregieren und letztendlich darstellen. Zig Techniken und Standards auf jeder Ebene, die dann für einen speziellen Use-Case geschickt gewählt werden müssen. Sehr interessant.
Zum Schluss noch eine automatische Pflanzenbewässerung auf Arduino-Basis als Praxisbeispiel. Feuchte im Blumentopf mit einem Sensor (links im Bild) messen, das Ergebnis verarbeiten und dann eine kleine Pumpe (rechts) steuern. Genau mein Ding. It’s about the journey hat er gesagt der Hipster. Recht hat er gehabt, viel gelernt.

Xioami Gedönse

Letzte Woche kam eine Lieferung Xioami Gedönse direkt aus China: Zwei Xiaomi Aqara Thermometer und ein Bewegungsmelder, die Teile gibt es immer mal wieder für unter 10 €, man muss halt etwas Zeit haben. Sie sind relativ klein (das Bild ist ziemlich genau die Originalgröße), sind batteriebetrieben, formschön, lassen sich schnell integrieren und funktionieren einfach. Für das Geld baut man sich auf ESP8266 Basis nix selbst.
Damit man was von seinem Geld sieht, wurden gestern ein paar Grafen mit Grafana gebaut. Als nächstes soll dann der Bewegungsmelder irgendwas schalten, irgendwas wo die Chefin sofort sag: Wie konnten wir bisher nur ohne Leben? Das ist ein gutes Ziel.

Kommando Roter Norbert #2 – ein epochaler Meilenstein

In dem Listing unten sieht man den Befehl, den es braucht um eine Ikea TRÅDFRI Lampe über zigbee2mqtt zu steuern. Wenn man genau hinsieht, dann besteht es nicht aus einem Befehl, sondern gleich aus drei: Zeile 2 schaltet ein, Zeile 3 regelt die Helligkeit und in den Zeilen 5 – 7 wird die Farbe eingestellt.

{
  "state": "ON",
  "brightness": 255,
  "color": {
    "r": 46,
    "g": 102,
    "b": 193
  }
} 

Will diesen Befehl jetzt über eine GUI zusammen bauen, dann braucht man auch drei verschiedene Eingabequellen, einen Schalter für An/Aus, einen Slider für die Helligkeit und eine RGB-Farbauswahl für die Farbe. Wenn man sich dessen bewusst ist, dann ist man ganz weit vorne. Dann noch etwas Node Red Gedönse und schwubs funktioniert es auch. Ein wegweisender Meilenstein für das Kommando Roter Norbert!
[Update] Das Endergebnis schaut dann so aus. Links die Logik, rechts das Ergebnis. Top!

Kommando Roter Norbert

Beim Thema Heimautomatisierung geht der Trend ganz klar hin zu Node Red. Und wer sich einmal mit den DOIFs aus FHEM die Finger gebrochen hat, der kann eigentlich nur applaudieren! Es grenzt schon fast an Luxus und das schönste daran ist, dass man es zusätzlich verwenden kann – alles was schon geht, funktioniert weiter und was man im Hinterkopf hat, wird einfacher!
Bei all dem Swing, den Node Red verbreitet, muss man natürlich bedenken dass auch Node Red kein Selbstläufer ist, sondern ein Expertensystem und in Expertensystemen muss man sich einarbeiten. Es gibt aber hier ein paar wirklich gute Videos, das Projekt Roter Norbert ist zum Erfolg verdammt.

Gehäuse gedruckt


Geile Scheiße. Dieser Zigbee-USB-Stick ist ja relativ nackt ohne Gehäuse, in dem Beitrag hier ist ein Plan für einen 3D-Druck verlinkt. Den hab ich an nen Kollegen weitergegeben und der hat gleich heute geliefert. Keine große Sache, sagt er. Das ist mein erstes Stück 3D-Druck, echt super!
Falls die Chefin irgendwann mal auf die Idee kommt dass ich mehr mit dem Kind 2 machen soll, dann 3D-Druck, das passt gut zu Lego.

Viele Wege führen zur Erleuchtung


Das Thema Beleuchtung ist ja ganz interessant, hat einen hohen WAF, ist aber im Detail nicht immer einfach. In irgendeinem Forum stand was über zigbee2mqtt, damit kann man das ganze Zigbee Geraffel in MQTT einbinden, was das Handling enorm vereinfacht. Zusammengefasst: Zigbee macht Heimautomatisierung frauenfreundlich.
Der Clou an der Sache ist, dass man kein teueres Zigbee Gateway von Philips Hue, Ikea oder Xiaomi braucht, sondern einen 5 € Zigbee USB Adapter. Auf diesen Stick muss dann nur noch die richtige Firmware und fertig ist der Lack. Bei Ebay oder Ebay-Kleinanzeigen findet man auch schon Sticks mit der geflashten Firmware, das reduziert den Aufwand nochmal und die Software gibt es auch als Docker-Image. Wie man das Ganze dann mit einer Ikea TRÅDFRI Lampe zum Laufen bekommt ist dann noch hier beschrieben. Das Ganze ist schon erschreckend einfach. Nächster Halt: Lichtwecker für die Kids ihren Papa.