Automatisierung oder: DAMIT kann ich arbeiten (Teil 1)

Als großer Fan von Raspberry, Arduino und allerlei lötbarem Schnickschnack versuche ich schon seit Jahren unser Heim zu automatisieren. Aber irgendwas war immer. Alle Einzelbibliotheken, Images, und Lösungen hatten stets das Problem Flickwerk, klobiges unhandliches inkompatibles Monster, oder einfach instabil zu sein. Und was ist schlimmer, als der Frau die neue, geile Technik schmackhaft zu machen, und dann wegen “wieder abgestürzt” den schönen WAL (wife acceptance level) zu verspielen.

Aber nun gibt es home-assistant (https://home-assistant.io/), genauer die fertige Distribution hass.io, und es gibt AliExpress. Das chinesische Schlaraffenland für billige Boards und Platinen löst das zweite große Problem, die Verfügbarkeit einer großen Palette wirklich günstiger Komponenten zum steuern. Was wir hier in Deutschland für den End User angeboten bekommen ist einfach sau teuer, vor allem wenn man wirklich ein ganzes Haus ausstatten möchte. Dazu kommt, dass jeder Hersteller sein eigenes Kompatibilitäts-Süppchen kocht, und kaum eine der freien Lösung kompatibel zu all den einzelnen Controllern ist – und sein kann. Home-assistant bietet schon eine riesige Menge von kompatiblem Lösungen und glänzt dabei vor allem damit, all die Lösungen durch Eintragen in die config möglich zu machen – und eben nicht durch Compiler-Schlachten. Kann ich zwar, will ich aber bei einer solchen Lösung nicht haben.

Leichte Gegner…

Als Basis kommt bei uns nun ein Raspberry 3 zum Einsatz. Mein erstes Ziel $Damals war, all unsere 433Mhz Funksteckdosen zentral zu steuern und in unserem Haus über Temperatur und Luftfeuchtigkeit bescheid zu bekommen. Da hass.io auf dem Raspberry tatsächlich so stabil läuft, habe ich die 433Mhz Sender/Empfänger und den DHT22 Sensor endlich vom Breadbord geholt, und sauber verlötet. Naja, wenigstens eine Seite. Noch habe ich die Gehäusefrage nicht geklärt, also bleibt die Controllerseite noch ein Provisorium.

Das Einbinden in hass.io war nun wirklich ein Kinderspiel. Früher war nun die Installation von wiringPi und rf-irgendwas angesagt, danach wurden shell scripts gestrickt. Nicht so in home-assistant. Hier wählt man einfach den verwendeten GPIO Pin auf dem Pi aus, und definiert den entsprechenden Switch in der configuration.yaml von hass.io.

Das sieht dann in Etwa so aus:

switch:
   – platform: rpi_rf
     gpio: 17
     switches:
       Arbeitszimmer:
         code_on: 1361
         code_off: 1364
         signal_repetitions: 15 sensor:
   – platform: dht
     name: AZ_Temp
     sensor: DHT22
     pin: 12
     monitored_conditions:
         – temperature
         – humidity

Die RF Codes habe ich vor Ewigkeiten mit dem 433Mhz Empfänger über die besagten Bibliotheken und Scripts ausgelesen und glücklicherweise dokumentiert.

Eine Anleitung für die Löterei des DHT22 und der RF Komponenten findet sich hier:

DHT22 (das Drumherum mit der Software kann ignoriert werden): https://tutorials-raspberrypi.de/raspberry-pi-luftfeuchtigkeit-temperatur-messen-dht11-dht22/

433Mhz Sender/Empfänger (auch hier nur die Schaltung): https://tutorials-raspberrypi.de/raspberry-pi-funksteckdosen-433-mhz-steuern/

Die Einbindung in HA: https://home-assistant.io/components/switch.rpi_rf/, https://home-assistant.io/components/sensor.dht/

Ob man die Komponenten nun per AliExpress beschafft, oder z.B. den Links in den Artikeln zu Amazon & Co. folgt, entscheidet man wohl am Besten nach Geduld und Geldbeutel.

Eine gute Quelle für die RF Chips war in meinem Fall Conrad in Bremen (konnte ich fix hinfahren): https://www.conrad.de/de/funk-sender-empfaenger-set-433-mhz-am-130428.html

433Mhz – Freund und Feind!

Eingeschobenes Update: Nach ein wenig Eingewöhnungszeit stellte sich heraus, dass die RF Steckdosen nicht immer “aufs Wort” gehorcht haben. Sprich, ein Klick auf den Schalter lief ins Leere. DAS geht nicht. Mit etwas Dr. Google wurde fix klar, dass die hass.io RF Umsetzung unter bösen Verzugsproblemen leidet. Mist! Ich hatte das auf den Sender geschoben, und glatt noch einmal 6 Euro bei Amazaon eingeworfen, um ein neues 433Mhz RF Kit zu ergattern. Nun gut.

Die Lösung heißt platform: command_line, und hier: https://github.com/escoand/rpi3_codesend hat ein findiger User eine kleine binary zur Verfügung gestellt, mit der es nun flutscht! Ganz nebenbei habe ich aus einem alten 12V Netzwerkswitch Netzteil und einem 12V Auto-USV-Ladegerät eine Art “Netzteil” gebaut, aus welchem ich die 5V USB Power für den Raspberry heraus bekomme, aber eben auch die stärkeren 12V für den 422Mhz RF Sender. Der scheint mit 12V statt der bisherigen 5V tatsächlich ordentlich Reichweite, und damit auch Sicherheit, gewonnen zu haben.

Feinstaub!

Unter unserem Dach werkelt bereits ein weiterer meiner neuen Freunde: ein ESP8266 NodeMCU Chip. Das ist so einer dieser unsicheren IoT Chips die alle Security Leute (ich also auch?) grad so beschimpfen. Aber hey, der kann WLAN, verbraucht kaum Strom, und kann mit einer riesen Menge Firmware geflasht werden, und diverse GPIOs für jeden Kram steuern.

In diesem Fall einen Feinstaub Sensor, natürlich wieder mit einem DHT22 im Schlepptau. Folgt einfach dieser Anleitung, und macht mit: http://luftdaten.info/feinstaubsensor-bauen/. Auch Luftdaten.info wird von HA nativ unterstützt, so dass weitere Telemetrie Daten einfach so zur Verfügung stehen.

Die kinderleichte Einbindung unserer Tado Heizung, der Fritzbox, der Fernseher, all der Android und iOSse des Hauses und den Fritz DECT Schaltern erwähne ich mal am Rande. Was sich damit allerdings in Sachen Automatisierung in Home- Assistant anstellen lässt werde ich allerdings Stück für Stück ein Andermal berichten.

Bewegung in die Sache bringen…

Natürlich erfinde ich die Lösungen zu meinen sogenannten “Problemen” jetzt nicht alle neu. Die Community ist inzwischen riesengroß, und es gibt viele viele Menschen mit deutlich besseren Kenntnissen in Elektronik und Programmierung. So verlinke ich also fröhlich weiter zu fremden von mir gekaperten Projekten. Nächster Halt: Bewegungsmelder. Wenn ich bei uns zu Hause eine günstige Pseudo Alarmanlage realisieren möchte und bestimmte Räume ohne Lichtschalter erhellen will, dann muss PIR her!

Wieder ist NodeMCU, besser ESP8266 angesagt. Es ist unfassbar, aber die Dinger sind für rund 2$ bei Aliexpress zu bekommen. Mit der richtigen Firmware wird die Lösung dank des MQTT Protokolls mit HA wieder zum Kinderspiel.

Die Geduldsfrage führte mich in diesem Fall über Amazon, bei den PIR Sensoren schlug ich hier zu: https://www.amazon.de/gp/product/B00R2U8LLG/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1, die NodeMCU war im Vergleich teuer, nun ja: https://www.amazon.de/gp/product/B01GCK3J40/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

Um heraus zu finden, welche Pins beim Sensor was sind musste ich etwas suchen, bis China das passende .pdf auswarf: https://www.mpja.com/download/31227sc.pdf

Der Rest ist erneut einfach, wenn auch etwas Lesen zum Aufspielen der EasyESP Firmware notwendig ist: https://www.letscontrolit.com/wiki/index.php/ESPEasy. Diese habe ich direkt über den USB Anschluss flashen können, da unser Chip diesen Onboard hat. Ansonsten ist ein USB2TTL Adapter für ein paar “Pfennige” zu organisieren. Der PIR wird dann mit den GND, 3,3V und einem GPIO versorgt. Die NodeMCU lernt das WLAN, und ist einsatzbereit. In der OpenHAB Community habe ich mir dann die Einbindung des fertigen Sensors per MQTT in die HA ergaunert: https://community.openhab.org/t/setting-up-esp8266-pir-sensor-in-openhab2-with-mqtt-im-stumped/24040/12. Die spannendste Frage zum “Bau” des entsprechenden Sensors in HA war die Frage nach dem korrekten MQTT Geräte “Pfad”, bei mir “/_ESP1/pir1/Contact”.

In der configuration.yaml sieht das dann grob so aus:

binary_sensor:
   – platform: mqtt
     state_topic: „/_ESP1/pir1/Contact“
     name: „pir1“
     payload_on: „1“
     payload_off: „0“
     device_class: motion

Der Sensor wird nun von HA erkannt, und liefert sauber die Werte 0 und 1, je nach “Erkennung” durch den Bewegungssensor. Grundlegend kann man den ESP Chip in einen Deep Sleep schicken. Damit wäre es möglich z.B. mit einem USB Akkupack einen kabellosen Betrieb von bis zu 4 Jahren hinzubekommen. Ideal für die Installation ein einer Ecke eines Raumes. Anwendungsmöglichkeiten unbegrenzt. Ich schätze für uns kommt zunächst das Thema “Licht Schalten” und “Bewegung während unserer Abwesenheit” zum Einsatz, was für mich eine gewisse Arbeit in der automation.yaml und scripts.yaml bedeuten wird… Dazu später oder ein Andermal mehr. Erstmal…

220Volt Klick-Klack Spaß

Wenn ich ernsthaft ans Eingemachte, also das Haus, möchte, wird es Zeit die Stromstärke zu erhöhen. Denn nur wenn ich Lichter, Schalter, Aktoren und “richtige” Geräte schalten kann wird das Haus smart. Hier hat mir tatsächlich ein Kenner aus der FHEM Welt die Augen geöffnet, und mir SONOFFs gezeigt. Im Linux Magazin 07/17 werden diese Dinger auch schon für Home Assistant erwähnt, aber erst die Tasmota (https://github.com/arendst/Sonoff-Tasmota/wiki) Firmware, und die Sucht erzeugenden Tutorials von https://haus-automatisierung.com/sonoff-tutorial-reihe/ haben meinen Kauf-Finger aktiviert. WAS DA ALLES GEHT!!einself!1…

Die SONOFF gibt es als Steckdosenadapter, als Einfachschalter, als Mehrfachgerät für die Hutschiene im Sicherungskasten, als Hue Clone, als Taster statt Lichtschalter… Also genau das was ich im Hause brauche.  Dazu kosten die Dinger einen Bruchteil von den Closed-System Serien der anderen Hersteller und basieren auf einem, tadaaa ESP8266 Chip. Da kann man sogar Dinge dranlöten und wieder andere Dinge anklemmen! Mit der Tasmota Firmware funken die SONOFFs nicht mehr nach China, und werden zu Alleskönnern. Wow! Nun, man muss natürlich willens und in der Lage sein auch hier selbst Hand anzulegen. Flashen geht inzwischen fast bei allen Geräten per WLAN, bei der Schalterlösung T1 oder etwa der Multicolor Birne müssen noch Pins gelötet, und USB-Serial Adapter verwendet werden. Aber hey, das ist doch der Spaß dabei!

Hier habe ich an einen der SONOFF Basics die fehlenden Pins angelötet, schaut man dazu das Tutorial 06 (https://haus-automatisierung.com/hardware/sonoff/2017/12/08/sonoff-vorstellung-part-6.html) wird klar, was tatsächlich alles geht. Vom extra Relais bis zum gesteuerten LED Band geht alles.

Die Firmware habe ich über den Ubuntu Mode unter Windows 10 und python3 erledigt. Dazu muss man allerdings tatsächlich kurzfristig die Windows Firewall abschalten, ohne diesen Schritt kommt das Script beim häufigen WLAN Wechsel durcheinander und stirbt. Der Rest ist Geschichte, und im Tutorial 11 sauber erklärt: https://haus-automatisierung.com/hardware/sonoff/2018/01/04/sonoff-vorstellung-part-11.html.

Die Befehle:

python3 -m pip install –upgrade pip

git clone https://github.com/mirko/SonOTA.git
cd SonOTA

pip3 install –user -r requirements.txt
python3 sonota.py

Folgt man der Anleitung bis zum letzten Schritt und macht das Update auf die letzte Version (https://github.com/arendst/Sonoff-Tasmota/releases), kann man seine SONOFF Basic schon im WLAN begrüßen! Wie die Home Assistant Integration ablaufen soll, beschreibt der Firmwareanbieter unter https://github.com/arendst/Sonoff-Tasmota/wiki/Home-Assistant. Und dann macht es relativ fix auch schon “Klick”.

Die configuration.yaml nimmt einen Schalter in Etwa so:

platform: mqtt name: „sonoff2“ state_topic: „stat/sonoff2/POWER“  command_topic: „cmnd/sonoff2/POWER“    availability_topic: „tele/sonoff2/LWT“


Auto Klick Klack mit Sonoff Basic…

Natürlich habe ich nach dem Einlöten der fehlenden Pins in der Sonoff Basic nicht aufgehört. Ein sehr realer Anwendungsfall bei uns wird die Verwendung der Basics zur Schaltung von Licht nach Bewegung. Aber immer mit einem ESP8266 wollte ich das auch nicht machen. Also habe ich mir wie hier: https://github.com/arendst/Sonoff-Tasmota/issues/1640 beschrieben die 5V in der Basic gesucht, und einen PIR direkt mit angeschlossen. Ziel war es nun, das Sonoff Basic aus home-assistant nach Bewegung zu schalten. ABER: In der Grundeinstellung macht das System alles allein! Der PIR Sensor erkennt, das Sonoff schaltet durch, die Dauer steuert das Dreh Rad am PIR. Klappt super, war aber nicht ganz das, was ich wollte. Inzwischen traute ich der Tasmota Software so einiges zu – und wurde nicht enttäuscht.

Es gilt, den Modus der Schalter anzupassen. Eine Erklärung dazu findet sich hier: https://github.com/arendst/Sonoff-Tasmota/wiki/Understanding-SwitchMode-and-SwitchTopic. Grundlegend musste ich den an GPIO14 entstandenen Schalter zunächst in den Follow Mode schalten. Das geht in der Tasmota Konsole über ein “Switchmode1 1”. Danach muss man MQTT sagen, dass Sonoff ins Netzwerk senden soll, und nicht mehr das Relais direkt schaltet. Ich habe daher einen neuen Topic erfunden, und per “switchtopic1 /sonoff1_pir/” eine eigene Nachricht für hass.io zur Verfügung gestellt. Und Zack lässt sich das System über meine Automation ansteuern.

In der Config werden für die PIRs binäre Sensoren angelegt:

   – platform: mqtt state_topic: „/ASU19_ESP1/pir1/Contact“      name: „pir1“ payload_on: „1“ payload_off: „0“ device_class: motion    – platform: mqtt
     state_topic: „cmnd/sonoff1_pir/POWER2“
     name: „pir2_sonoff“
     payload_on: „ON“
     payload_off: „OFF“
     device_class: motion

Und über die Automation und die Scripts dann gesteuert. Ein Test bei mir sieht so aus:

automations.yaml – alias: Test pir2_sonoff
   trigger:
     – platform: mqtt
       topic: cmnd/sonoff1_pir/POWER2
       payload: ‚ON‘
   action:
     – service: homeassistant.turn_on
       entity_id: switch.sonoff1
     – service: homeassistant.turn_on
       entity_id: script.sonoff2bewegung_set_timeout

scripts.yaml sonoff1bewegung_set_timeout:
     alias: „Timeout für Sonoff1 setzen“
     sequence:
     – service: script.turn_off
       data:
         entity_id: script.sonoff1bewegung_timeout
     – service: script.turn_on
       data:
         entity_id: script.sonoff1bewegung_timeout

sonoff1bewegung_timeout:
     alias: „sonoff1bewegung nach 5 Minuten ausschalten“
     sequence:
     – delay:
          seconds: 30
     – service: switch.turn_off
       entity_id: switch.sonoff2

Die Basis für den Einbau “ins Haus” ist also soweit gelegt. Allerdings sollen ja auch Lichter und Systeme geschaltet werden, die heute und in Zukunft auch manuell verfügbar bleiben sollen. Nun, auch dafür gibt es in China etwas: Die Sonoff Touch T1

Next Level!

Im Gegensatz zu den Sonoff Basic müssen die Touch und Touch T1 tatsächlich noch über einen USB2TTL Serial Adapter geflasht werden. Aus der Bestellung meines Feinstaubsensors hatte ich noch so einen Adapter (und noch 3 weitere… was man so alles vergisst), und so ging das Update auf die Tasmota Firmware relativ schnell. Warum nur relativ? Nun ja, die eigene Dusseligkeit steht einem oft im Wege.

Das Flashen kann man mit der Arduino IDE oder mit dem Microsoft VSCode Tool und Platform.io erledigen. Der Sonoff T1 wird durch Halten des ersten Schalters und Drücken der Reset Taste in den Flash Mode gebracht. Die gesamte 230V Komponente wird abmontiert, und 3,3V, GND, Rx und Tx werden über die freigelegten Pins verbunden. Man kann sich hier: https://github.com/arendst/Sonoff-Tasmota/wiki/Sonoff-T1-UK-and-T1-EU ein Bild davon machen. Und ja: es klappt bei der T1, auch wenn die Website noch damit hadert…

Tja, wäre ich nun nicht einfach brav der Anleitung gefolgt, und hätte an meine “Ausbildung an seriellen Geräten” gedacht – wäre mir wohl aufgefallen, dass Rx und Tx auf der einen Seite nicht 1:1 auch Rx und Tx auf der anderen Seite sind *insert sticky facepalm hier*. 20 Minuten und einiges Fluchen später lief der Upload flüssig durch, und der T1 Schalter sagte dem WLAN Moin!

Der erste Plan ist, diesen Schalter für die Küche zu benutzen. Die Familie kann weiter althergebracht an der Wand schalten, und ich kann per WLAN “spielen”. Genau richtig. Ich denke ich bestelle noch 2-3 dieser feinen Schalter. Liegen bei 11-18€. Eine Einschränkung gibt es aber. Leider ist ein T1 genau so groß, wie ein Systemschalter mit Rahmen. Wenn also im Haus 2er oder 3er Kombinationen mit einer Schalterserie verbaut sind, wird es schwierig. Zumindest die Frontplatte ist dann kaum einsetzbar. Es steht der Test aus, ob man evtl. seine eigenen Plexiglas Frontplatten herstellen kann, die den eigenen Design Ansprüchen noch genügen. Ein weiteres Testprojekt…

Nicht von der Stange.

So, die groben Anwendungsfälle sind soweit getestet. Die nächsten Updates hierzu werden die Umsetzungen im Haus sein. Aber was steht noch so an? Ach ja, logisch – wer klingelt an der Tür?! Natürlich könnte ich jetzt eine normale Webcam oder eine fette Überwachungskamera ans Haus schnallen (mache ich evtl. trotzdem noch), aber da war doch was das Jahr… Genau, der Raspberry Zero W. Eine weiterentwickelte Version des Mini Pi, mit einer eigenen 5M Kamera. Klein, flach, ausreichend.

Ich musste den Zero W tatsächlich in UK bestellen, hier war überall alles ausverkauft. Kostet zum Glück nicht viel Geld. Das ist überhaupt auffällig. Die Sonoff Geräte, ESP8266 und überhaupt das ganze Elektronik Zeug ist dank AliExpress und selber löten echt günstig! Dank eines tollen Arbeitskollegen wurde mir auch noch ein eigenen Gehäuse 3D gedruckt!

Die Einbindung des mit raspbian und “motion” befeuerten Pis als Streaming Cam ist gut dokumentiert (https://www.datenreise.de/raspberry-pi-ueberwachungskamera-livestream/ und eine Zeile aus der hass.io Doku). Ich lese mich derzeit in das DoorPi Projekt ein, und google das Web nach Doorbell Pi leer. Mal sehen was daraus wird.

War noch was? Ach ja, klar. Die LED Streifen. Ich habe aus dem Baumarkt einige “normale”, nicht intelligente LED Streifen, die heute nur auf IR Befehle lauschen. Auch dafür gibt es einen Ansatz. Entweder klebt man eine IR-Sende-LED auf den Empfänger und simuliert die Signale mit einem ESP8266. Tja, oder man lötet 3 NPN Transistoren dazu und steuert direkt. Das ist der Plan für Küche und Arbeitszimmer. Wenn die Teile noch in der Ecke liegen, werden sie auch verbaut.

Gefunden hier: http://randomnerdtutorials.com/10-diy-wifi-rgb-led-mood-light-with-esp8266-step-by-step/. Ein LM7805 kostet wenige Cent, und mit der Spannungsanpassung kann ich an das Netzteil des LED Streifen dran, und dort die 5V für die NodeMCU und die 12V für die Beleuchtung abziehen. Das alles passt in die kleine Kiste, die eh an dem Streifen befestigt war.

Ich warte nur auf die Schiffe und Flugzeuge aus China, dann kann ich da auch los löten. Das gilt auch für den CO2 Sensor, den ich für das Wohnzimmer vorgesehen habe. Lustig ist, dass der Kollege bei wirres.net grad heute einen Artikel dazu veröffentlicht hat, und mir damit eine Google Session erspart. Danke! So in der Art wird das bei uns auch werden. Ich bin sehr gespannt auf die Werte mit und ohne Kaminfeuer.

Soweit für heute! Ich geh dann mal den Lötkolben anheizen, und weiter hass.io scripten! Schööööönen Sonntag!

About the Author

David Wagner

David Wagner

IT Berater, Technology Evangelist, Nerd, Geek, Daddy of Darth Tom, Star Wars, LEGO®, Foto, und Wakeboarding. Lebt im Internet, und mit der Familie in einem norddeutschen Kaff namens Hude.