{"id":58,"date":"2022-03-03T16:52:23","date_gmt":"2022-03-03T15:52:23","guid":{"rendered":"https:\/\/www.solarkie.ch\/?p=58"},"modified":"2022-04-09T16:05:03","modified_gmt":"2022-04-09T15:05:03","slug":"2-iot-stack","status":"publish","type":"post","link":"https:\/\/www.solarkie.ch\/?p=58","title":{"rendered":"#2: IoT Stack"},"content":{"rendered":"\n<p>Oder &#8211; wie erreiche ich Automation?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"403\" src=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2-1024x403.png\" alt=\"\" class=\"wp-image-63\" srcset=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2-1024x403.png 1024w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2-300x118.png 300w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2-768x302.png 768w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2-1536x604.png 1536w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2-1200x472.png 1200w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/IoT-Overview-2.png 1938w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>IoT &#8211; Meine Interpretation (Grafik Axel T.)<\/figcaption><\/figure>\n\n\n\n<p>Schaut man sich nochmal meine IoT Grafik an, wird schnell klar, dass es etwas komplexer ist, als man im ersten Moment vermutet und gleichzeitig nicht zu komplex ist, dass man es nicht mehr versteht.<\/p>\n\n\n\n<p>Um etwas zu schalten oder zu automatisieren kann man jetzt verschiedenen Strategien w\u00e4hlen.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Je Topic oder Ger\u00e4te-Typ kann man die vom Hersteller bereitgestellte App verwenden und \u00fcber dessen Cloud-Angebot auf die Ger\u00e4te zugreifen und je Hersteller dessen Automation nutzen.<br \/><em>Bsp.: Shelly oder Sonoff Produkte in Verbindung mit der Hersteller Cloud.<\/em><\/li><li>Je Funktions-Gruppe (Haustechnik, Licht, &#8230;) kann man versuchen einen Hersteller oder Standard finden und innerhalb dieser Funktions-Gruppe die Automationsaufgaben l\u00f6sen.<br \/><em>Bsp.: KNX mit einer Server-Installation f\u00fcr die Haustechnik und Apple-Home f\u00fcr z.B. die Lichtsteuerung<\/em><\/li><li>Alle Funktions-Gruppen werden auf einem einzigen Layer (Message Broker) f\u00fcr den Informations-Austausch integriert. \u00dcber diesen Layer werden die Automations-Aufgabe durch Sensor- und Aktor Nachrichten (Telemetrie) und mit einem geeigneten Automations-System gel\u00f6st.<br \/><em>Bsp.: <a href=\"https:\/\/de.wikipedia.org\/wiki\/MQTT\">MQTT<\/a> als Telemetrie Protokoll und <a data-type=\"URL\" data-id=\"https:\/\/de.wikipedia.org\/wiki\/Node-RED\" href=\"https:\/\/de.wikipedia.org\/wiki\/Node-RED\">Node-Red<\/a> als Entwicklungswerkzeug f\u00fcr die Automation<\/em><\/li><\/ol>\n\n\n\n<p>Schaut man sich diese drei M\u00f6glichkeiten an, so k\u00f6nnte man argumentieren, dass die erste M\u00f6glichkeit vielleicht als die am einfachsten umzusetzende M\u00f6glichkeit erscheint, aber wenig oder keine Automation Horizontal &#8211; also \u00fcber die Grenzen eines Ger\u00e4te-Typs oder Herstellers erlaubt.<\/p>\n\n\n\n<p>Die zweite M\u00f6glichkeit ist besser, da sich Funktions-Gruppen zusammenfassen und eine Horizontale Integration so m\u00f6glich wird, jedoch zum Preis einer propiet\u00e4ren L\u00f6sung, f\u00fcr deren Konfiguration man Software kaufen muss. Bei Apple-Home gibt es die M\u00f6glichkeit, mit OpenSource Software eine Br\u00fccke zu schlagen.<\/p>\n\n\n\n<p>Die dritte M\u00f6glichkeit bietet mit Hilfe von MQTT vertikale (Anzahl Ger\u00e4te) und horizontale (Ger\u00e4te Typen) Integration und Skalierbarkeit, da es als Industrie-Standard auf Masse und Robustheit sowie Sicherheit ausgelegt ist. Der Preis ist jedoch, dass man f\u00fcr jeden Ger\u00e4te-Typ eine MQTT-Integration haben muss, was aber f\u00fcr dass, was man im Homeautomation Umfeld machen m\u00f6chte, gegeben ist.<\/p>\n\n\n\n<p>Meine gesamte Homeautomation basiert auf dem MQTT zentrierten Ansatz.<\/p>\n\n\n\n<p>Was braucht es jetzt? Wie die \u00dcberschrift schon vermuten l\u00e4sst &#8211; einen IoT-Stack &#8211; also eine Softwarelandschaft, die auf einem (kleinen) Server 24h * 7Tage im Betrieb ist.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"569\" height=\"949\" src=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/MQTT-Stack2.png\" alt=\"\" class=\"wp-image-72\" srcset=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/MQTT-Stack2.png 569w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/MQTT-Stack2-180x300.png 180w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><figcaption>MQTT-Stack R-Pi (Grafik Axel T.)<\/figcaption><\/figure>\n\n\n\n<p>Den MQTT-Stack habe ich mir nicht selbst ausgedacht. Das haben andere Entwickler aus der OpenSource Community \u00fcbernommen. Unter folgendem Link findet man alles Lesenswerte, was man f\u00fcr einen ersten eigenen IoT-Stack ben\u00f6tigt.<\/p>\n\n\n\n<p><a href=\"https:\/\/sensorsiot.github.io\/IOTstack\/\">https:\/\/sensorsiot.github.io\/IOTstack\/<\/a><\/p>\n\n\n\n<p>Unbedingt sehenswert sind die folgenden Videos von Anderas Spiess aus der Schweiz:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"#295 Raspberry Pi Server based on Docker, with VPN, Dropbox backup, Influx, Grafana, etc: IOTstack\" width=\"580\" height=\"326\" src=\"https:\/\/www.youtube.com\/embed\/a6mjt8tWUws?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"#352 Raspberry Pi4 Home Automation Server (incl. Docker, OpenHAB, HASSIO, NextCloud)\" width=\"580\" height=\"326\" src=\"https:\/\/www.youtube.com\/embed\/KJRMjUzlHI8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Was braucht es hier zu? Eingentlich nicht viel. Neugier, Willen etwas Neues zu lernen, ein wenig Linux und Computer Kenntnisse und ca. 150CHF an Hardware. Ich w\u00fcrde mit einem Raspberry Pi starten, der von einer SSD bootet anstatt der SD-Card. <\/p>\n\n\n\n<p>Mein Test- und Experimentier-Setup sieht wie folgt aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-1024x768.jpeg\" alt=\"\" class=\"wp-image-73\" srcset=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-1024x768.jpeg 1024w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-300x225.jpeg 300w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-768x576.jpeg 768w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-1536x1152.jpeg 1536w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-2048x1536.jpeg 2048w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-1200x900.jpeg 1200w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/8A3A44B5-6681-4627-8DB9-BE5254946F23-1980x1485.jpeg 1980w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Raspberry Pi 3, PoE HAT (B) und SSD Shield \/ Foto Axel T. <\/figcaption><\/figure>\n\n\n\n<p>Die Implementation f\u00fcr meine produktive Homeautomation habe ich mit einem HP Microserver Gen8 Umgesetzt. Mit einem Geh\u00e4use von knapp 30cm x 30cm x 30cm passt der noch gut \u00fcberall hin und ist dabei noch grade so ertr\u00e4glich vom L\u00e4rm.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"948\" src=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/MQTT-Stack1.png\" alt=\"\" class=\"wp-image-71\" srcset=\"https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/MQTT-Stack1.png 570w, https:\/\/www.solarkie.ch\/wp-content\/uploads\/2022\/03\/MQTT-Stack1-180x300.png 180w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><figcaption>MQTT-Stack HP Microserver Gen8 (Grafik Axel T.)<\/figcaption><\/figure>\n\n\n\n<p>Als Betriebssystem l\u00e4uft auf beiden Systemen ein Linux System.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Docker<\/h2>\n\n\n\n<p>Docker ist eine Container Management Software und damit ein Sicherheits-Feature, auf das ich nicht verzichten m\u00f6chte. Docker sperrt Software in einen Container und regelt den Zugriff auf andere Container, den Host oder Ressourcen wie Netzwerk. Und es senkt in diesem Fall die Komplexit\u00e4t massiv, wie man im Video von Andreas sch\u00f6n sehen kann!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Portainer<\/h2>\n\n\n\n<p>Portainer managed und verwaltet die Container. Es hilft beim Einarbeiten in diese Materie. Portainer selbst sitzt in einem Docker-Container, hat aber weitreichende Rechte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mosquitto<\/h2>\n\n\n\n<p>Nein &#8211; kein Stechm\u00fccke sondern der Message-Brocker &#8211; also die Nachrichtendrehscheibe, an der sich alle Beteiligten Softwaren beteiligen und bedienen.<\/p>\n\n\n\n<p>An dieser Stelle unbeding der folgende Buch-Tip: &#8220;Das MQTT-Praxisbuch &#8211; Mit ESP8266 und Node-Red&#8221; von Walter Trojan (<a href=\"https:\/\/www.amazon.de\/Das-MQTT-Praxisbuch-Mit-ESP8266-Node-RED\/dp\/3895763241\/ref=sr_1_1?keywords=das+mqtt-praxisbuch&amp;qid=1646413604&amp;sprefix=das+mq%2Caps%2C90&amp;sr=8-1\">Link zu Amazon<\/a>). Es erschl\u00e4gt gleich drei Fliegen mit einer Klappe! Es erkl\u00e4rt MQTT, Node-Red und die ESP8266 Microcontroller Familie in einem gut gemachten Buch (Ja richtig &#8211; die Dinger aus Papier&#8230;). <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">InfluxDB<\/h2>\n\n\n\n<p>InfluxDB ist ein Datenbanksystem speziell ausgerichtet f\u00fcr das Speichern von Zeitreihen. Also das Sammeln von Datenpunkten \u00fcber der Zeitlichen Verlauf. Ich sammel damit Temperaturen, Wasserst\u00e4nde, Bewegungsmeldungen, Stromverbr\u00e4uche, etc. &#8211; Diese Datenbest\u00e4nde sind die Grundlage f\u00fcr jede Auswertung und Darstellung. Wie war noch mal der Stromverbrauch letzten Jahr im November? Wissen Sie es? Nein? Dann hilft InfluxDB.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Grafana<\/h2>\n\n\n\n<p>Ich liebe Grafiken und Darstellungen von Datenpunkten. Grafana ist ein geniales Werkzeug zur Darstellung der Zeitreihen in InfluxDB. Also in meinem Fall dann auch f\u00fcr die Darstellung des Stromverbrauchs, der Stromproduktion, dem Delta, der Einspiesung etc. . Klar &#8211; bekommt man auch vom Hersteller des Wechselrichters. Aber was ist, wenn das Internet NICHT funktioniert? You get the Idea&#8230; . Cloud ist gut, aber in diesem Fall ist on premise besser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Node-Red<\/h2>\n\n\n\n<p>Node-Red ist ein Programmiersystem, was durch Grafische Darstellung von Funktionsbausteienen und deren Verkn\u00fcpfung erlaubt diverse Funktionen er realisieren. In meinem Fall \u00fcbernimmt es zum einen das Auslesen von Sensoren und Speichern von Daten in InfluxDB, aber auch Automationsaufgaben (Licht auf der Auffahrt im Zeitraum zwischen Sonnenuntergang und Sonnenaufgang einschalten, wenn der Bewegungsmelder XY ausgel\u00f6st wurde und dann nach 5 Minuten wieder Licht auszuschalten.) Da die Sonne nicht jeden Tag gleich auf und untergeht, ist es nicht ganz trivial mit z.B. PHP oder C\/C++ zu realisieren.<br \/>Node-Red bietet die passenden Bausteine.<\/p>\n\n\n\n<p>Das alles ist der IoT-Stack, den ich verwende.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oder &#8211; wie erreiche ich Automation? Schaut man sich nochmal meine IoT Grafik an, wird schnell klar, dass es etwas komplexer ist, als man im ersten Moment vermutet und gleichzeitig nicht zu komplex ist, dass man es nicht mehr versteht. Um etwas zu schalten oder zu automatisieren kann man jetzt verschiedenen Strategien w\u00e4hlen. Je Topic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-iot"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=58"}],"version-history":[{"count":10,"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":189,"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions\/189"}],"wp:attachment":[{"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.solarkie.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}