{"id":1809,"date":"2020-02-25T13:01:42","date_gmt":"2020-02-25T11:01:42","guid":{"rendered":"https:\/\/ulibauer.de\/blog\/?p=1809"},"modified":"2020-02-25T13:07:10","modified_gmt":"2020-02-25T11:07:10","slug":"smart-home-steuerzentralen-unter-docker-zum-ausprobieren","status":"publish","type":"post","link":"https:\/\/blog.ulibauer.de\/?p=1809","title":{"rendered":"Smart Home Steuerzentralen  unter Docker zum Ausprobieren"},"content":{"rendered":"\n<p>Wer sich (richtig) auf das Smart Home einl\u00e4sst, steht irgendwann vor der Frage, wie sich alle Ger\u00e4te mit oft unterschiedlichen Standards unter &#8222;einem Dach&#8220; steuern und verwalten lassen. Daf\u00fcr gibt es zahlreiche kommerzielle L\u00f6sungen, die oft untereinander nicht kompatibel sind. Es gibt aber auch eine ganze Reihe von Open Source L\u00f6sung, die sowohl kostenlos sind als auch mehrere Smart Home &#8222;Welten&#8220; vereinen.  <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>In diesem Beitrag will ich kurz beschreiben, wie drei solcher L\u00f6sungen unkompliziert installiert und ausprobiert werden k\u00f6nnen. Es handelt sich um <a rel=\"noreferrer noopener\" aria-label=\"openHab (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.openhab.org\/\" target=\"_blank\">openHab<\/a>, <a rel=\"noreferrer noopener\" aria-label=\" (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.iobroker.net\/\" target=\"_blank\">ioBroker<\/a> und <a rel=\"noreferrer noopener\" aria-label=\"Home Assistant (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.home-assistant.io\/\" target=\"_blank\">Home Assistant<\/a>. Wer diese Programme nur testen will, greift am besten zur Containerl\u00f6sung <a rel=\"noreferrer noopener\" aria-label=\"Docker (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.docker.com\/\" target=\"_blank\">Docker<\/a>, die es f\u00fcr Linux, MacOS und Windows gibt. Docker ist schnell installiert und die drei Smart Home Steuerzentralen landen mit jeweils nur einem Befehl auf dem Rechner. Die Verwaltung der Docker Container erledigt die grafische Oberfl\u00e4che <a rel=\"noreferrer noopener\" aria-label=\"Portainer (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.portainer.io\/\" target=\"_blank\">Portainer<\/a>, ohne dass der Benutzer gro\u00df auf die Kommandozeile muss. Ich werde hier alles am Beispiel von Linux erl\u00e4utern, \u00e4hnliches gilt aber auch f\u00fcr MacOS und Windows.<\/p>\n\n\n\n<p>Eine Klarstellung vorweg: Dies ist kein Tutorial f\u00fcr openHab, ioBroker und Home Assistant. Beschrieben wird nur die Installation. Wer sich ernsthaft auf eine der Steuerzentralen (oder alle) f\u00fcr sein Smart Home einlassen will und Neuling ist, braucht (sehr) viel Zeit, etwas technisches Verst\u00e4ndnis und grundlegende Kenntnisse auf der Kommandozeile. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Docker<\/h2>\n\n\n\n<p>Docker ist ein Virtualisierungswerkzeug, trotz aller Unterschiede vergleichbar mit Vmware oder VirtualBox. Der gro\u00dfe Vorteil: Es verbraucht weniger Ressourcen. Container (Anwendungen) kommen schnell und unkompliziert auf den Rechner und man kriegt sie genau so schnell wieder los.<\/p>\n\n\n\n<p>Unter Linux Mint l\u00e4sst sich Docker am einfachsten so installieren und starten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt-get docker.io\nsudo systemctl start docker<\/code><\/pre>\n\n\n\n<p>Das holt zwar nicht die aktuellste Version von Docker auf den Rechner, doch zum Ausprobieren tut es auch eine etwas \u00e4ltere Version. Wer Docker auf einem Mac oder Windows-Rechner installieren will, findet bei <a rel=\"noreferrer noopener\" aria-label=\"ionos (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.ionos.de\/digitalguide\/server\/konfiguration\/docker-tutorial-installation-und-erste-schritte\/\" target=\"_blank\">ionos<\/a> eine gute Anleitung.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Portainer<\/h2>\n\n\n\n<p>Portainer erleichtert den Umgang mit Containern ungemein. Deshalb besteht der erste Schritt darin, Portainer (auch ein Container) zu installieren und zu starten. Auch dies kann mit einem einzigen Befehl im Terminal erledigt werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run -d -p 8000:8000 -p 9000:9000 -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v portainer_data:\/data portainer\/portainer\n<\/code><\/pre>\n\n\n\n<p>Portainer wird nun heruntergeladen und installiert und kann danach im Webbrowser unter der Adresse <a href=\"http:\/\/localhost:9000\/#\/home\">http:\/\/localhost:9000\/#\/home<\/a> erreicht werden.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/FireShot-Capture-001-Portainer-localhost.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"430\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/FireShot-Capture-001-Portainer-localhost-1024x430.png\" alt=\"portainer Startseite\" class=\"wp-image-1812\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-001-Portainer-localhost-1024x430.png 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-001-Portainer-localhost-300x126.png 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-001-Portainer-localhost-768x322.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-001-Portainer-localhost.png 1358w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Portainer: Start<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Container<\/h2>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\"Docker Hub (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/hub.docker.com\/\" target=\"_blank\">Docker Hub<\/a> ist die zentrale Anlaufstelle f\u00fcr Container. Rechts oben auf &#8222;Explore&#8220; klicken, auf der linken Seite &#8222;Docker Certified&#8220; ausw\u00e4hlen und dann in der Suchleiste den gew\u00fcnschten Begriff eingeben. Fangen wir mit &#8222;openhab&#8220; an.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/openhab.png\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"289\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/openhab.png\" alt=\"\" class=\"wp-image-1815\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab.png 602w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab-300x144.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/openhab_pull.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"350\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/openhab_pull-1024x350.png\" alt=\"\" class=\"wp-image-1816\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_pull-1024x350.png 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_pull-300x103.png 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_pull-768x263.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_pull.png 1269w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Der erste Suchtreffer ist richtig. Anklicken und dann auf der Folgeseite das Symbol neben &#8222;docker pull openhab\/openhab&#8220; anklicken und den kopierten  Befehl in ein Terminal einf\u00fcgen (mit &#8222;sudo&#8220; davor), best\u00e4tigen und abwarten, bis der Container heruntergeladen und eingerichtet wurde.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/docker_pull.png\"><img loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"154\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/docker_pull.png\" alt=\"\" class=\"wp-image-1823\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/docker_pull.png 666w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/docker_pull-300x69.png 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><\/figure>\n\n\n\n<p>Bei ioBroker und Home Assistant ist das Vorgehen identisch. Bei ioBroker habe ich den zweiten Treffer (buanet\/iobroker) ausgew\u00e4hlt.<\/p>\n\n\n\n<p>Wurden die Container korrekt heruntergeladen und installiert sollten sie in Portainer auftauchen. Dazu zuerst auf das Walsymbol und dann auf &#8222;Container&#8220; klicken.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/FireShot-Capture-003-Portainer-localhost.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"393\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/FireShot-Capture-003-Portainer-localhost-1024x393.png\" alt=\"\" class=\"wp-image-1818\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-003-Portainer-localhost-1024x393.png 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-003-Portainer-localhost-300x115.png 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-003-Portainer-localhost-768x295.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/FireShot-Capture-003-Portainer-localhost.png 1358w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Alle Container<\/figcaption><\/figure>\n\n\n\n<p>Sollte ein Container nicht automatisch starten kann dies in Portainer  nachgeholt werden. Den\/die Container ausw\u00e4hlen und dann oben auf &#8222;Start&#8220; klicken. Unter welcher lokalen Adresse ein Container im Browser erreichbar ist, wird meist ganz rechts angezeigt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Browser<\/h2>\n\n\n\n<p>Bei mir sind die Container unter folgenden Adressen erreichbar: openHab: <a href=\"http:\/\/localhost:8080\/start\/index\">http:\/\/localhost:8080\/start\/index<\/a>, ioBroker: <a href=\"http:\/\/0.0.0.0:8081\/\">http:\/\/0.0.0.0:8081\/<\/a>, Home Assistant: <a href=\"http:\/\/localhost:8123\/\">http:\/\/localhost:8123\/<\/a>. Die Bedienoberfl\u00e4chen sind nicht immer sofort im Browser erreichbar; einfach etwas abwarten und dann neu laden. Jetzt sollte es klappen. Im Zweifelsfall in Portainer nachsehen, ob die Container tats\u00e4chlich gestartet wurden.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/openhab_start.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/openhab_start-1024x455.png\" alt=\"\" class=\"wp-image-1819\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_start-1024x455.png 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_start-300x133.png 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_start-768x341.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/openhab_start.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/iobroker_start.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/iobroker_start-1024x455.png\" alt=\"\" class=\"wp-image-1820\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/iobroker_start-1024x455.png 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/iobroker_start-300x133.png 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/iobroker_start-768x341.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/iobroker_start.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/ha_start.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2020\/02\/ha_start-1024x455.png\" alt=\"\" class=\"wp-image-1821\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/ha_start-1024x455.png 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/ha_start-300x133.png 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/ha_start-768x341.png 768w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2020\/02\/ha_start.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Ausprobieren<\/h2>\n\n\n\n<p>Vorausgesetzt, dass alles bei den Installationen geklappt hat, kann man mit dem Testen beginnen. Eine (gar nicht so) kleine H\u00fcrde gibt es noch: Man kommt nicht umhin, sich ernsthaft mit Begrifflichkeiten und Konzepten auseinanderzusetzen. So ist wohl relativ klar, was mit Ger\u00e4ten gemeint ist. Doch was bedeuten Entit\u00e4ten, Adapter, Integrationen, Bindings, Things, Instanzen und Bereichsregister? Zum Gl\u00fcck gibt es gute Dokumentationen und zahlreiche Foren mit vielen Helfern.<\/p>\n\n\n\n<p>Viel Spass und Erfolg beim Testen. Das Container-Konzept l\u00e4sst einem dabei gro\u00dfe Freiheiten. Geht was gr\u00fcndlich schief kann der Container einfach gel\u00f6scht und neu aufgesetzt werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer sich (richtig) auf das Smart Home einl\u00e4sst, steht irgendwann vor der Frage, wie sich alle Ger\u00e4te mit oft unterschiedlichen Standards unter &#8222;einem Dach&#8220; steuern und verwalten lassen. Daf\u00fcr gibt es zahlreiche kommerzielle L\u00f6sungen, die oft untereinander nicht kompatibel sind. &hellip; <a href=\"https:\/\/blog.ulibauer.de\/?p=1809\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1809","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/1809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1809"}],"version-history":[{"count":12,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/1809\/revisions"}],"predecessor-version":[{"id":1830,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/1809\/revisions\/1830"}],"wp:attachment":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}