<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Internet of Things Archive - dahlen.org</title>
	<atom:link href="https://www.dahlen.org/tag/internet-of-things/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dahlen.org/tag/internet-of-things/</link>
	<description>Private Webseite der Familie Dahlen</description>
	<lastBuildDate>Tue, 13 Jun 2023 08:51:53 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>ESP8266 via esphomelib mit Home Assistant verbinden</title>
		<link>https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/</link>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Wed, 22 Aug 2018 20:16:57 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Smart Home]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2690</guid>

					<description><![CDATA[<p>In zwei der vergangenen Posts habe ich beschrieben, wie einfach sich Home Assistant als Steuerzentrale für Heimautomatisierung einrichten lässt und wie man mit einem ESP8266 und der ESPeasy-Firmware ein Relais via WLAN schalten kann. Es liegt nahe einen weiteren Artikel über die Verbindung dieser beiden Elemente zu schreiben, um den ESP direkt aus Home Assistant [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/">ESP8266 via esphomelib mit Home Assistant verbinden</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>
In zwei der vergangenen Posts habe ich beschrieben, wie einfach sich Home Assistant als Steuerzentrale für Heimautomatisierung einrichten lässt und wie man mit einem ESP8266 und der ESPeasy-Firmware ein Relais via WLAN schalten kann. Es liegt nahe einen weiteren Artikel über die Verbindung dieser beiden Elemente zu schreiben, um den ESP direkt aus Home Assistant anzusprechen &#8211; und dank esphomelib wird es noch einfacher, als erwartet.

</p>



<span id="more-2690"></span>



<p>Laut der <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#esphomelibgithub">Projektbeschreibung</a> auf Github handelt es sich bei <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#esphomelib">esphomelib</a> von Otto Winter um &#8222;a framework for using your ESP8266/ESP32 devices with Home Assistant&#8220;. Und tatsächlich ist esphomelib mehr als eine weitere Firmware für ESP8266/ESP32 <abbr title="Microcontroller Unit">MCUs</abbr>: Neben entsprechenden Bibliotheken werden auch Werkzeuge geliefert, welche das Erstellen und Einspielen angepasster Firmware zum Kinderspiel machen. Vor allem aber ist esphomelib auf die einfache Verbindung mit Home Assistant ausgerichtet und nutzt hierfür das MQTT-Discovery Feature von <abbr title="Home Assistant">HA</abbr></p>



<h2 class="wp-block-heading">Home Assistant MQTT Discovery</h2>



<p>Bei MQTT-Discovery wird die MQTT-Anbindung von Home Assistant aktiviert und es wird auf eingehende (Konfigurations-) Nachrichten auf vorgegebenen Kanälen (<em>Topics</em>) gelauscht. Die so gewonnenen Informationen werden von HA genutzt um automatisch neue Geräte (<em>Entity</em>) einzurichten. Details finden sich in der <a href="https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery" target="_blank" rel="noreferrer noopener">Dokumentation</a> von Home Assistant.</p>



<p>Um MQTT-Discovery mithilfe des in HA eingebetteten MQTT Brokers zu aktivieren, ist folgende Ergänzung in der <em>configuration.yaml</em> von Home Assistant vorzunehmen:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">mqtt: 
  discovery: true
  username: homeassistant
  password: mypassword
</code></pre>



<p>Sollte ein externer Broker eingesetzt oder weitere Einstellungen vorgenommen werden, ist entsprechend der <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#hamqtt">Anleitung</a> zu verfahren. Ein Passwort ist seit Home Assistant 0.76 Pflicht.</p>



<p>Anschließend ist Home Assistant neu zu starten. Wer &#8211; <a href="https://www.dahlen.org/2018/03/home-assistant-mit-docker-auf-raspberry-pi-betreiben/">wie ich</a> &#8211; Home Assistant in einem Docker-Container laufen lässt, muss entweder den Port 1883 durchschleifen (<span class="tt">docker -p 1883:1883 &#8230;</span>) oder das Host-Network verwenden (<span class="tt">docker &#8211;net=host &#8230;</span>). War die Konfiguration korrekt und der Neustart erfolgreich, taucht ein neues Symbol in den Entwickler-Werkzeugen von HA auf ().</p>



<h2 class="wp-block-heading">esphomelib / esphomeyaml</h2>



<p>Um die Installation und Verwendung von esphomelib erheblich zu vereinfachen, stellt Otto Winter ein Werkzeug namens esphomeyaml zur Verfügung. esphomeyaml unterstützt bei der Erzeugung einer esphomelib-Konfiguration auf <abbr title="Yet another meta language">YAML</abbr>-Basis, sowie bei der Erzeugung und Übertragung der der daraus abgeleiteten Firmware. Es wird auch ein Docker-Image angeboten, welches alle Abhängigkeiten für esphomelib enthält.</p>



<h3 class="wp-block-heading">Anlegen einer Konfiguration mit Docker und esphomeyaml</h3>



<p>Der folgende Abschnitt ist im Wesentlichen eine Zusammenfassung der <q><a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#esphomeyaml"><em>Getting Started with esphomeyaml</em></a></q> Anleitung für die Verwendung mit Docker. Zunächst wird der <q>Wizard</q> von esphomeyaml verwendet, um eine Basis-Konfiguration zu erstellen.</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">docker run --rm -v "$PWD":/config -it ottowinter/esphomeyaml myfile.yaml wizard</code></pre>



<p>Der Befehl startet einen temporären Docker-Container, in welchem der esphomeyaml-Assistent ausgeführt wird und interaktiv bei der Erstellung einer Konfiguration (Dateiname myfile.yaml) unterstützt. Die (aktuell) 5 Bereiche mit teilweise mehreren Fragen sind ausführlich dokumentiert, daher hier in aller Kürze:</p>



<h4 class="wp-block-heading">Core und Platform</h4>



<dl>
<dt>name</dt>
<dd>Ein symbolischer Name, welcher u.a. in Home Assistant Verwendung findet. Erlaubt sind Buchstaben, Ziffern und der Unterstrich. Empfohlen wird der Raumname, in welchem der MCU zum Einsatz kommt (z.B. wohnzimmer)</dd>
<dt>ESP32/ESP8266</dt>
<dd>Plattform, welcher der MCU zugeordnet wird. Neben ESP8266 werden auch die moderneren ESP32-Module unterstützt. Die Frage dient der Vorauswahl für die möglichen Antworten der nächsten Frage. Für den <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#wemos">Wemos D1 Mini</a> ist hier ESP8266 zu wählen.</dd>
<dt>board</dt>
<dd>Hier ist das verwendete Board genauer zu spezifizieren. Eine Liste der unterstützten Boards (und der jeweiligen Kürzel) findet sich bei <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#esphomelibcomponents">platform.io</a>. Für den <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#wemos">Wemos D1 Mi</a>ni ist hier <em>d1_mini</em> anzugeben.</dd>
</dl>



<h4 class="wp-block-heading">Wifi</h4>



<p>Der nächste Satz an Fragen beschäftigt sich mit dem zu nutzenden WLAN Netzwerk. Es werden nacheinander die Netzwerk-Kennung (SSID), sowie das Passwort (<abbr title="Pre-Shared-Key">PSK</abbr>) abgefragt.</p>



<h4 class="wp-block-heading">MQTT</h4>



<p>Schließlich werden Details zum zu nutzenden MQTT-Broker abgefragt, im Detail</p>



<ul class="wp-block-list">
<li>die IP-Adresse des MQTT-Brokers</li>



<li>ein eventueller Benutzername für den Zugriff</li>



<li>ein Passwort für den Zugriff auf den MQTT-Broker</li>
</ul>



<p>Wird &#8211; wie in diesem Beispiel &#8211; der interne MQTT-Broker von Home Assistant verwendet, entspricht die IP-Adresse der des (Docker-) HA-Hosts, Username und Password sind entsprechend der MQTT-Konfiguration in Home Assistant vorzunehmen.</p>



<h4 class="wp-block-heading">Over-the-Air</h4>



<p>Ein weiteres cooles Feature ist die Möglichkeit zum Over-the-Air-Update (OTA), welches genutzt werden kann, sobald die esphomelib-Firmware erstmalig erfolgreich (via USB) auf die MCU überspielt wurde. Aus Sicherheitsgründen kann hierfür ein Kennwort vergeben werden.</p>



<h3 class="wp-block-heading">Anpassen der Konfiguration</h3>



<p>Als Ergebnis des vorherigen Abschnitts findet sich im aktuellen Verzeichnung nun eine Datei namens <em>myfile.yaml</em>, welche die <q>Basics</q> der Firmware definiert. Nun gilt es die mit dem Board verbundenen Geräte einzutragen und somit via MQTT (und damit über Home Assistant) steuerbar zu machen.</p>



<p>Für das auf dem Wemos D1 verbundene <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#wemosrelay">Relais</a> aus dem letzten Post ist folgender Abschnitt in <em>myfile.yaml</em> zu ergänzen:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell">switch:
  - platform: gpio
    name: "steckdose"
    pin: D1</code></pre>



<p>Damit wird esphomelib konfiguriert, gegenüber Home Assistant einen Schalter (<em>switch</em>) auszuweisen und eingehende Schaltbefehle über den GPIO-Pin D1 des <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#wemos">Wemos D1 Mini</a> abzubilden. Sind weitere Geräte (z.B. Sensoren) mit dem ESP8266 verbunden, ist die <em>myfile.yaml</em> entsprechend zu erweitern. Eine Liste der unterstützten Komponenten und entsprechende Konfigurationsbeispiele finden sich in der <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#esphomeyaml">esphomeymal-</a>Dokumentation.</p>



<h3 class="wp-block-heading">Firmware erstellen und übertragen</h3>



<p>Ist die Konfiguration vollständig, kommt wieder Docker zum Einsatz, um die Firmware zu erstellen, zu übertragen und auf dem ESP auszuführen. Vorher ist die MCU natürlich mit dem PC via USB zu verbinden. Unter Linux wird dabei ein serielles Device (z.B. /dev/ttyUSB0) angelegt, welches an den Docker-Container durchgeleitet werden muss. Außerdem muss der Container im &#8222;privileged&#8220; Modus laufen, um die Firmware übertragen zu können. Alles nicht weiter schwierig:</p>



<pre class="wp-block-code"><code lang="shell" class="language-shell"> docker run --rm -v "$PWD:/config" -v /dev/ttyUSB0:/dev/ttyUSB0 \
  --privileged -it ottowinter/esphomeyaml myfile.yaml run</code></pre>



<p>Der Prozess läuft weitestgehend automatisch ab. Lediglich der Weg zur Firmware-Übertragung ist zu wählen. Bei erstmaliger Bespielung ist hier der USB-zu-serielle Port zu wählen, sollte esphomelib bereits auf dem MCU sein, kann auch OTA gewählt werden.</p>



<p><code>Found multiple serial port options, please choose one:<br>
  [0] /dev/ttyUSB0 (USB2.0-Serial)<br>
  [1] Over The Air (d1mini_1.local)</code></p>



<p>Nach der Übertragung bleibt die Verbindung zum <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#wemos">Wemos D1 Mini</a> offen und das Gerät wird neu gestartet. Boot und andere Meldungen (z.B. die Verbindung zum WLAN und zum MQTT-Broker) werden via Docker-Container ausgegeben, bis dieser beendet wird (mittels Strg-c). Die eigentliche Firmware läuft natürlich auch danach weiter.</p>



<h3 class="wp-block-heading">Nutzung in Home Assistant</h3>



<p>Durch die Verwendung von MQTT-Discovery wird der an den Wemos angeschlossen Switch (das Relais) direkt in Home Assistant angelegt. In der Zustandsansicht () wird es &#8211; gemäß meinem Beispiel als <em>switch.steckdose</em> geführt. Dort besteht auch die Möglichkeit über das -Symbol einen Test-Dialog zu öffnen und sich vom (hoffentlich) erfolgreichen Ergebnis der Operation zu überzeugen.</p>



<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image"><a href="https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-off.png"><img fetchpriority="high" decoding="async" width="363" height="208" data-id="2717" src="https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-off.png" alt="" class="wp-image-2717" srcset="https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-off.png 363w, https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-off-300x172.png 300w" sizes="(max-width: 363px) 100vw, 363px" /></a><figcaption class="wp-element-caption">HA &#8222;switch&#8220; ausgeschaltet</figcaption></figure>



<figure class="wp-block-image"><a href="https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-on.png"><img decoding="async" width="363" height="208" data-id="2718" src="https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-on.png" alt="" class="wp-image-2718" srcset="https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-on.png 363w, https://www.dahlen.org/wp-content/uploads/2018/08/home-assistant-switch-preview-on-300x172.png 300w" sizes="(max-width: 363px) 100vw, 363px" /></a><figcaption class="wp-element-caption">HA &#8222;switch&#8220; angeschaltet</figcaption></figure>
</figure>



<h4 class="wp-block-heading">Latenz</h4>



<p>Das nachfolgende Video demonstriert die geringe Latenz zwischen der Anforderung in Home Assistant und der Umsetzung durch esphomelib. Home Assistant inkl. des eingebetteten MQTT-Brokers laufen dabei auf einem Raspberry Pi 3B. Das Mobiltelefon und der D1 Mini sind im gleichen WLAN, also per Access Point und Gigabit-LAN mit dem Raspberry verbunden. Das sichtbare Kabel geht zu einer USB Power-Bank. Eine Verzögerung zwischen Antippen des User Interfaces und Schalten des Relais (rote LED) ist faktisch nicht feststellbar.</p>


<div style="width: 1280px;" class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-2690-1" width="1280" height="720" preload="metadata" controls="controls"><source type="video/mp4" src="https://services.dahlen.org/wp-content/uploads/2018/08/esphomelib-mqtt-homeassistant.mp4?_=1" /><a href="https://services.dahlen.org/wp-content/uploads/2018/08/esphomelib-mqtt-homeassistant.mp4">https://services.dahlen.org/wp-content/uploads/2018/08/esphomelib-mqtt-homeassistant.mp4</a></video></div>



<h2 class="wp-block-heading">Fazit</h2>



<p>Die Verwendung von esphomelib bzw. esphomeyaml für ESP-Module in Verbindung mit dem MQTT-Discovery-Feature von Home Assistent ist aktuell die einfachste, mir bekannte Möglichkeit diverse Aktoren oder Sensoren zu kontrollieren und zu steuern. Die vom esphomelib-Projekt bereitgestellten Werkzeuge greifen sehr gut ineinander und erlauben die Konfiguration und Übertragung der Firmware auch ohne Programmier-Kenntnisse.</p>



<p>Für Verwender von <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/#hassio">HASS.io</a>, der &#8222;Appliance&#8220;-Variante von Home Assistant existiert sogar ein entsprechendes Add-On, um esphomelib/esphomeyaml direkt aus HASS.IO anzusteuern. Sogar eine web-basierte Variante des <em>Wizards</em> wird hier geboten.</p>



<h2 class="wp-block-heading">Weiterführende Informationen</h2>



<h3 class="wp-block-heading">Software und Dokumentation</h3>



<ul class="wp-block-list">
<li><a rel="noopener" href="http://esphomelib.com" target="_blank">esphomelib-Homepage</a></li>



<li> <a rel="noreferrer noopener" href="https://github.com/OttoWinter/esphomelib" target="_blank">esphomelib-Projekt auf Github</a></li>



<li> <a rel="noreferrer noopener" href="https://esphomelib.com/esphomeyaml/guides/getting_started_command_line.html" target="_blank">Getting Started with esphomeyaml</a> </li>



<li> <a rel="noreferrer noopener" href="http://docs.platformio.org/en/latest/platforms/espressif8266.html#boards" target="_blank">durch esphomelib/platform.io unterstützte Komponenten</a> </li>



<li> <a href="https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery" target="_blank" rel="noreferrer noopener">Home-Assistant MQTT Auto-Discovery</a> </li>



<li> <a rel="noreferrer noopener" href="https://www.home-assistant.io/hassio/" target="_blank">HASS.IO</a> </li>
</ul>



<h3 class="wp-block-heading">Produkte<a href="https://www.dahlen.org/impressum#affiliate">*</a></h3>



<p>Die folgenden Produkte wurden im Artikel besprochen bzw. verwendet:</p>



<ul class="wp-block-list">
<li><a id="wemos" href="https://www.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20180324011322&amp;SearchText=wemos+D1+mini" target="_blank" rel="noopener">Wemos D1 Mini bei Ali Express</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1618189568, {de : 'A-B01N9RXGHY'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01N9RXGHY?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01N9RXGHY&amp;SubscriptionId=">Wemos D1 Mini bei Amazon</a></li>



<li><a id="wemosrelay" href="https://www.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20180324013754&amp;SearchText=Wemos+Relay+Shield" target="_blank" rel="noopener">Wemos Relay Shield (und Nachbauten) bei Ali Express</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(607898232, {de : 'A-B075MD6N5Y'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B075MD6N5Y?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B075MD6N5Y&amp;SubscriptionId=">Wemos Relay Shield bei Amazon</a></li>
</ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/08/22/esp8266-via-esphomelib-mit-home-assistant-verbinden/">ESP8266 via esphomelib mit Home Assistant verbinden</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
		
		<enclosure url="https://services.dahlen.org/wp-content/uploads/2018/08/esphomelib-mqtt-homeassistant.mp4" length="4757812" type="video/mp4" />

			</item>
		<item>
		<title>WLAN-Steckdose mit ESP8266 und ESPEasy</title>
		<link>https://www.dahlen.org/2018/03/26/wlan-steckdose-mit-esp8266-und-espeasy/</link>
					<comments>https://www.dahlen.org/2018/03/26/wlan-steckdose-mit-esp8266-und-espeasy/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Mon, 26 Mar 2018 09:00:27 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[ESPEasy]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2519</guid>

					<description><![CDATA[<p>Heim-Automatisierung ist mein Ding. Im Thema Smart Home lassen sich unendlich viel Zeit und Geld unterbringen und jeden Tag funktioniert etwas anderes (nicht). Doch zumindest der finanzielle Aufwand lässt sich reduzieren. Mit günstigen ESP8266 Komponenten "vom Chinesen" und der freien Software ESPEasy.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/03/26/wlan-steckdose-mit-esp8266-und-espeasy/">WLAN-Steckdose mit ESP8266 und ESPEasy</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Heim-Automatisierung ist mein Ding. Im Thema <q>Smart Home</q> lassen sich unendlich viel Zeit und Geld unterbringen und jeden Tag funktioniert etwas anderes (nicht). Doch zumindest der finanzielle Aufwand lässt sich reduzieren. Mit günstigen ESP8266-Komponenten <q>vom Chinesen</q> und der freien Software ESPEasy.<br></p>



<span id="more-2519"></span>



<h2 class="wp-block-heading">ESP8266</h2>



<p>Mit dem <a href="#links">ESP8266</a> hat die chinesische Firma espressif eine Mikro-Controller-Familie im Programm, aus welchem sich günstige Boards mit CPU, RAM, Flash Speicher und WLAN erstellen lassen. Dazu kommen &#8211; je nach Version &#8211; bis zu 12 <abbr title="General Purpose I/O">GPIO</abbr>-Pins zum Messen, Regeln und Schalten. Die Programmierung kann in (Arduino-) C, Python oder Lua erfolgen, doch für eine einfache via WLAN schaltbare Steckdose ist das nicht notwendig. Die lästige Konfiguration wird für uns die freie Software <a href="#links">ESPEasy</a> übernehmen.</p>



<h3 class="wp-block-heading">Wemos D1 Mini</h3>



<p>In meinem Haushalt befinden sich aktuell 2 Boards mit ESP8266 CPU:</p>



<ol class="wp-block-list">
<li>ein <a href="#produkte">NodeMCU</a> Board als <q>Entwickler-Platine</q> auf einem <a href="#produkte">Steckbrett</a> und</li>



<li>ein <a href="#produkte">Wemos D1 Mini</a> für den praktischen Einsatz.</li>
</ol>



<p>Das D1 Mini Board gibt es für ca. 3 USD z.B. bei <a href="#produkte">Ali Express</a> aus China oder für ca. 8 EUR von <a href="#produkte">Amazon</a>. Es bietet 4MB Flash Speicher, 11 digitale und 1 analogen Ein/Ausgang und natürlich WLAN (802.11 b/g/n, 2,4GHz). Über eine Micro-USB-Buchse kann der D1 mit Strom und frischer Firmware versorgt werden. Auch serielle Kommunikation ist hierüber möglich.</p>



<h3 class="wp-block-heading">Wemos Relay Shield</h3>



<p>Für eine echte WLAN-Steckdose braucht es natürlich mehr als 5V Gleichstrom, ein Relais wird benötigt, um auch eine 230V Wechselstrom-Phase zu schalten. Hier kommt das Wemos Relay Shield für den D1 ins Spiel. Es schaltet das an der mittleren Schraubklemme anliegende Potential (den <q>Strom</q>) wechselseitig auf einen der beiden äußeren Ausgänge.</p>



<hr class="wp-block-separator has-css-opacity"/>



<figure class="wp-block-image alignleft"><img decoding="async" width="166" height="145" src="https://www.dahlen.org/wp-content/uploads/2018/03/166px-ISO_7010_W012.svg_.png" alt="" class="wp-image-2564"/></figure>



<p><strong>Wichtiger Hinweis:</strong> Die unsachgemäße Handhabung von 230V Wechselstrom birgt die <strong>Gefahr schwerer oder gar tödlicher Verletzungen</strong>. Personen ohne entsprechende Sachkenntnis sollten von entsprechenden <q>Experimenten</q> absehen und stattdessen sich an eine qualifizierte Fachkraft wenden.</p>



<hr class="wp-block-separator has-css-opacity"/>



<p>Das Relay Shield ist für unter einen Dollar bei <a href="#produkte">Ali Express</a> bestellbar oder für ca. 7 EUR bei <a href="#produkte">Amazon</a>. Sowohl der D1 als auch das Relay Shield kommen ohne montierte Pfostenleiste bzw. -stecker, sie liegen allerdings bei. Wer nicht Löten möchte, kann auch mit Kabelbrücken oder einem <a href="#produkte">Breadboard</a> arbeiten. Es sind die Pins GND, +5V und D1 zu verbinden.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image"><a href="https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="2523" src="https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-768x1024.jpg" alt="Wemos D1 Mini mit aufgelöteter Pfostenleiste" class="wp-image-2523" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-768x1024.jpg 768w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-225x300.jpg 225w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-1152x1536.jpg 1152w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-1536x2048.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-1568x2091.jpg 1568w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3581-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">Wemos D1 Mini mit Pfostenleiste</figcaption></figure>



<figure class="wp-block-image"><a href="https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="2520" src="https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-768x1024.jpg" alt="Wemos D1 Relay Shield" class="wp-image-2520" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-768x1024.jpg 768w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-225x300.jpg 225w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-1152x1536.jpg 1152w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-1536x2048.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-1568x2091.jpg 1568w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3582-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">Wemos D1 Relay Shield</figcaption></figure>



<figure class="wp-block-image"><a href="https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="2521" src="https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-768x1024.jpg" alt="Wemos D1 Mini mit Relay Shield" class="wp-image-2521" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-768x1024.jpg 768w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-225x300.jpg 225w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-1152x1536.jpg 1152w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-1536x2048.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-1568x2091.jpg 1568w, https://www.dahlen.org/wp-content/uploads/2018/03/img_3584-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption class="wp-element-caption">Wemos D1 Mini mit Relay Shield im Größenvergleich</figcaption></figure>
</figure>



<p>Mit ungefähr gleichen Ausmaßen wie der D1 ergibt sich eine kompakte Einheit, welche z.B. in einem Auf- oder Unterputz-Gehäuse neben der eigentlichen Steckdose untergebracht werden kann.</p>



<p>Investiert man etwas Geduld und bestellt die Komponenten in China, zahlt man für D1 Mini, das Relais und Versand unter 5 EUR. Hinzuzurechnen sind die eigentliche Steckdose, ein 230V/5V AC/DC Netzteil (extern oder als Bauteil) und ggfs. ein Gehäuse. Ich glaube, dass man letztendlich in der Nähe von 10-12 Euro landen wird. Fertige Steckdosen wie die <a href="#produkte">HS100</a> von TP-Link kosten rund 20 Euro.</p>



<h2 class="wp-block-heading">ESPEasy</h2>



<p><a href="#links">ESPEasy</a> ist eine freie Firmware für ESP8266-Boards. Sie vereinfacht die Konfiguration des ESP8266 durch ein schlankes Web-Interface. Via ESPEasy können eine Menge Sensoren und Aktoren (Schalter) mit einem ESP8266-Board verbunden werden, ohne das Programmierung notwendig ist.</p>



<p>ESPEasy ist aktuell in mehren Versionen erhältlich:</p>



<ul class="wp-block-list">
<li><em>master</em> beinhaltet die stabile Version 1.x, welche allerdings keine Aktualisierung mehr erhält</li>



<li><em>mega</em> ist der aktuelle Entwicklungszweig, welcher auf die Veröffentlichung der Version 2.0.0 abziehlt</li>



<li><em>v2.0</em> sind sog. <q>release candidates</q>, also Test-Abzüge des mega-Zweigs, welche für die meisten Anwendungen ausreichend stabil sein sollten</li>
</ul>



<h3 class="wp-block-heading">Installation</h3>



<p>Ich verwende aktuell die Version 2.0-20180322, welche direkt von <a href="#links">Github</a> heruntergeladen wurde. Auf den Prozess des <q>flashens</q> und die Konfiguration für das heimische WLAN gehe ich hier im Detail nicht ein. Der Vorgang ist im ESPEasy Wiki unter <a>Get Started</a> ausreichend beschrieben und wirklich einfach:</p>



<ol class="wp-block-list">
<li>D1 Mini per USB mit PC verbinden</li>



<li>das Firmware-Archiv herunterladen und entpacken</li>



<li>enthaltenes Programm ESPEasy Flasher (FlashESP8266.exe) starten</li>



<li>COM-Port und Firmware-Variante wählen und flashen &#8211; fertig</li>
</ol>



<figure class="wp-block-image aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2018/03/ESP-Easy-Flasher.png"><img loading="lazy" decoding="async" width="794" height="414" src="https://www.dahlen.org/wp-content/uploads/2018/03/ESP-Easy-Flasher.png" alt="" class="wp-image-2552" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/ESP-Easy-Flasher.png 794w, https://www.dahlen.org/wp-content/uploads/2018/03/ESP-Easy-Flasher-300x156.png 300w, https://www.dahlen.org/wp-content/uploads/2018/03/ESP-Easy-Flasher-768x400.png 768w" sizes="auto, (max-width: 794px) 100vw, 794px" /></a></figure>



<p>Bei einem initialen ESPEasy Flash verbindet man sich dann mit dem WLAN ESP_Easy_0 (Passwort <q>configesp</q>) und gibt im sog. <a href="#links"><em>Captive Portal</em></a> (oder unter http://192.168.4.1) die Zugangsdaten für das heimische WLAN ein. Bei nachfolgenden Firmware-Updates bleibt die Konfiguration bestehen und der D1 bleibt im eigenen WLAN.</p>



<h3 class="wp-block-heading">Steuerung</h3>



<p>Bereits jetzt ist eine Steuerung des GPIO Pins D1 und damit des Relais möglich. ESPEasy stellt dazu eine HTTP-basierte Schnittstelle zur Verfügung, welche in der <a href="#links" target="_blank" rel="noopener noreferrer">Command Reference</a> beschrieben ist.</p>



<figure class="wp-block-image aligncenter size-full wp-image-2568"><img loading="lazy" decoding="async" width="2048" height="989" src="https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte.jpg" alt="" class="wp-image-2568" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte-300x145.jpg 300w, https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte-1024x495.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte-768x371.jpg 768w, https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte-1536x742.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2018/03/wemos-relay-shield-kontakte-1568x757.jpg 1568w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /><figcaption class="wp-element-caption">Wemos Relay Shield Ansicht der Kontakte</figcaption></figure>



<p>Unter der Annahme, das der D1 mini im eigenen WLAN die IP 192.168.0.2 zugewiesen bekommen hat, sind folgende URLs im Browser oder mit cURL aufzurufen:</p>



<ul class="wp-block-list">
<li><strong>http://192.168.0.2/control?cmd=GPIO,5,0</strong> schaltet den GPIO Pin D1 auf low und das Relais stromlos. Entsprechend sind der mittlere (Eingang) und der rechte Kontakt (Ausgang R) der Schraubklemme verbunden</li>



<li><strong>http://192.168.0.2/control?cmd=GPIO,5,1</strong> schaltet den GPIO Pin D1 auf high und das Relais zieht an. Der mittlere Kontakt ist jetzt mit dem linken Kontakt (Ausgang L) der Schraubklemme verbunden</li>
</ul>



<p>Während es sich bei GPIO D1 um den GPIO <em>Namen</em> handelt, ist für den Schaltvorgang die logische GPIO <em>Nummer</em> zu übergeben. Für GPIO D1 ist dies Pin Nummer 5. Eine Tabelle, welche GPIO Name und Nummer aufführt, ist in der ESPEasy Dokumentation unter <a href="#links">Configuration</a> zu finden.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p>Einfache, günstige ESP8266-Hardware und eine frei verfügbare, mächtige und dennoch einfach zu bedienende Software sind für den Aufbau einer WLAN-Steckdose erhältlich. Die Hardware-Arbeiten sind überschaubar, Programmierung und Konfiguration werden von ESPEasy übernommen.</p>



<p>Auch wenn kommerziell erhältliche Lösungen wie der <a href="#produkte">HS100</a> schicker und einfacher in der Handhabung sind &#8211; sie haben ihren Preis. Und wohin und an wen die oftmals notwendigen <q>Apps</q> unsere Daten schicken, wissen wohl nur die Autoren selbst.</p>



<p>Der erste Schritt zur Verwendung der ESP8266-Steckdosen im <a href="/tag/smart-home/">Smart Home</a> ist am Ende dieses Beitrags erreicht. In einem Folgeartikel werde ich auf die Anbindung an Home Assistant via REST und MQTT eingehen. Stay tuned!</p>



<h2 class="wp-block-heading">Weiterführende Informationen</h2>



<h3 class="wp-block-heading" id="links">Software und Dokumentation</h3>



<ul class="wp-block-list">
<li><a rel="noopener noreferrer" href="https://docs.wemos.cc/en/latest/d1/d1_mini.html" target="_blank">Wemos D1 Mini Produktseite</a></li>



<li><a rel="noopener noreferrer" href="https://docs.wemos.cc/en/latest/d1_mini_shield/relay.html" target="_blank">Wemos D1 Relay Shield Produktseite</a></li>



<li><a rel="noopener noreferrer" href="https://www.letscontrolit.com/wiki/index.php/ESPEasy#Get_started" target="_blank">ESP Easy: Get Started</a></li>



<li><a rel="noopener noreferrer" href="https://www.letscontrolit.com/wiki/index.php/Basics:_Connecting_and_flashing_the_ESP8266#Flashing_the_nodeMCU_.2F_WeMOS_D1_mini" target="_blank">ESP Easy: Flashing NodeMCU &amp; Wemos D1 mini</a></li>



<li><a rel="noopener noreferrer" href="https://www.letscontrolit.com/wiki/index.php/ESPEasy_Command_Reference" target="_blank">ESP Easy: Command Reference</a></li>



<li><a rel="noopener noreferrer" href="https://www.letscontrolit.com/wiki/index.php/Configuration" target="_blank">ESP Easy: Hardware Configuration</a></li>



<li><a rel="noopener noreferrer" href="https://github.com/letscontrolit/ESPEasy/releases/tag/v2.0-20180322" target="_blank">ESP Easy v2.0-20180322 auf github.com</a></li>



<li><a rel="noopener noreferrer" href="https://de.wikipedia.org/wiki/Captive_Portal" target="_blank">Wikipedia: Captive Portal</a></li>



<li><a href="/2018/03/home-assistant-mit-docker-auf-raspberry-pi-betreiben/">Home Assistant auf einem Raspberry Pi betreiben</a></li>
</ul>



<h3 class="wp-block-heading">Produkte<a href="/impressum#affiliate">*</a></h3>



<ul class="wp-block-list">
<li><a href="https://www.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20180324011322&amp;SearchText=wemos+D1+mini" target="_blank" rel="noopener noreferrer">Wemos D1 Mini bei Ali Express</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(899557525, {de : 'A-B01N9RXGHY'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01N9RXGHY?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01N9RXGHY&amp;SubscriptionId=">Wemos D1 Mini bei Amazon</a></li>



<li><a href="https://www.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20180324013754&amp;SearchText=Wemos+Relay+Shield" target="_blank" rel="noopener noreferrer">Wemos Relay Shield (und Nachbauten) bei Ali Express</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(939643326, {de : 'A-B075MD6N5Y'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B075MD6N5Y?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B075MD6N5Y&amp;SubscriptionId=">Wemos Relay Shield bei Amazon</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(758926284, {de : 'A-B06Y1ZPNMS'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B06Y1ZPNMS?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B06Y1ZPNMS&amp;SubscriptionId=">NodeMCU bei Amazon</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(2099319579, {de : 'A-B01J79YG8G'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01J79YG8G?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01J79YG8G&amp;SubscriptionId=">Elegoo Electronic Fun Kit</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(455230061, {de : 'A-B06W586CDZ'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B06W586CDZ?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B06W586CDZ&amp;SubscriptionId=">TP Link HS100 WLAN Steckdose</a></li>
</ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/03/26/wlan-steckdose-mit-esp8266-und-espeasy/">WLAN-Steckdose mit ESP8266 und ESPEasy</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2018/03/26/wlan-steckdose-mit-esp8266-und-espeasy/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Home Assistant mit Docker auf Raspberry Pi betreiben</title>
		<link>https://www.dahlen.org/2018/03/23/home-assistant-mit-docker-auf-raspberry-pi-betreiben/</link>
					<comments>https://www.dahlen.org/2018/03/23/home-assistant-mit-docker-auf-raspberry-pi-betreiben/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Fri, 23 Mar 2018 19:35:41 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2432</guid>

					<description><![CDATA[<p>Als Angesteller einer IT- und Management-Beratung beschäftige ich mich viel mit den Themen Cloud, Microservices und dem Internet der Dinge. </p>
<p>Im privaten Umfeld stehen die verwandten Themen Heimautomatisierung und "Smart Home" im Fokus. Eine sehr gute Basis dafür sind ein Raspberry Pi 3, Docker und Home-Assistant ...</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/03/23/home-assistant-mit-docker-auf-raspberry-pi-betreiben/">Home Assistant mit Docker auf Raspberry Pi betreiben</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Als Angesteller einer IT- und Management-Beratung beschäftige ich mich viel mit den Themen Cloud, Microservices und dem Internet der Dinge.</p>



<p>Im privaten Umfeld stehen die verwandten Themen Heimautomatisierung und <q>Smart Home</q> im Fokus. Eine sehr gute Basis dafür sind ein Raspberry Pi 3, Docker und Home Assistant &#8230;<br><br>In den letzten beiden Jahren habe ich viel Zeit (und Geld) in die Vernetzung unseres Heims gesteckt. Bereits vorhandene Gerätschaften (wie Computer, AV-Receiver und Fernseher) wurden um neue <q>Aktoren</q> zum Schalten und Sensoren zum Messen ergänzt.</p>



<span id="more-2432"></span>



<div class="wp-block-image size-full wp-image-2437"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1005" height="955" src="https://www.dahlen.org/wp-content/uploads/2018/03/Home-Assistant.png" alt="Home Assistant Raumansicht" class="wp-image-2437" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/Home-Assistant.png 1005w, https://www.dahlen.org/wp-content/uploads/2018/03/Home-Assistant-300x285.png 300w, https://www.dahlen.org/wp-content/uploads/2018/03/Home-Assistant-768x730.png 768w" sizes="auto, (max-width: 1005px) 100vw, 1005px" /><figcaption>Home Assistant Raumansicht</figcaption></figure></div>



<p>Im Mittelpunkt der Installation stehen dabei ein Raspberry Pi 3 und <a href="#links">Home Assistant</a>.</p>



<h2 class="wp-block-heading">Raspberry Pi 3</h2>



<p>Der Raspberry Pi 3 ist die ideale Plattform für Heimautomatisierung, nicht nur für Home Assistant. Er ist ausreichend schnell, bietet ausreichend Speicher und seine USB- und <abbr title="General Purpose I/O">GPIO</abbr>-Ports können für die Anbindung diverser Systeme und Standards (ZWave, Zigbee) genutzt werden. Außerdem verbraucht er minimal Strom und kann daher ohne Belastung des Öko-Gewissens <q>24/7</q> betrieben werde.</p>



<p>Dieser Artikel geht entsprechend davon aus, dass ein Raspberry Pi 3 mit einem aktuellen <a href="#links">Raspbian Linux</a> versorgt wurde und im heimischen Netz via LAN der WLAN erreichbar ist. Für Unterstützung bei der Einrichtung kann auf meine <a href="#links">anderen Artikel</a> zu diesem Thema zurückgegriffen werden.</p>



<p>Die Zusammenführung der teilweise isolierten Systeme übernimmt dabei die Software <a href="#links">Home Assistant</a>. Es gibt viele Wege Home Assistant auf einem Raspberry Pi zu installieren und alle sind hervorragend dokumentiert. Allerdings habe ich mich weder für eine direkte Installation via pip, noch für die Verwendung von hass.io entschieden, sondern für einen Mittelweg: Docker.</p>



<h2 class="wp-block-heading">Docker</h2>



<p>Der Grund ist einfach: Ich verwende auf dem Raspberry Pi Raspbian, also ein Debian Derrivat. Und die Paketverwaltung von Debian ist apt. Die Verwendung anderer Paketmanager, wie pip für Python oder npm für NodeJS, führt m.E. nur zu Chaos.</p>



<p>Andererseits möchte ich den <q>Raspi</q> nicht in eine <q>Appliance</q> verwandeln, sondern durchaus auch mit anderen Aufgaben bedenken. Ansätze wie HASS.IO oder Hassbian erschwerden dies durch die notwendige Abschottung des unterliegenden Betriebssystems.</p>



<p>Software, welche nicht per apt zur Verfügung steht wird also in einem Docker Container betrieben, um die Auswirkungen auf das Hostsystem zu minimieren.</p>



<h3 class="wp-block-heading">Installation von Docker</h3>



<p>Docker ist aktuell in den Raspbian Repositories vorhanden (Paket docker.io) und könnte somit direkt via apt installiert werden. Doch die Entwicklung von Docker läuft schneller als die Release-Zyklen von Raspbian, so dass ich das <q>offizielle</q> Docker-Respository nutze, um die aktuellste Version via apt installieren zu können.</p>



<pre class="wp-block-code"><code>$ curl -sSL https://get.docker.com | sh</code></pre>



<p>Wer sich in das ausgeführte <a href="https://get.docker.com" target="_blank" rel="noopener">Skript</a> einarbeitet erkennt, dass hier lediglich die Schritte zur Anbindung des Docker Debian Respositories inkl. GPG-Key Download automatisiert werden. Sie können alle auch manuell ausgeführt werden, aber das Skript ist einfach <q>convenient</q>.</p>



<p>Damit wir docker als regulärer Benutzer ohne sudo ausführen können, fügen wir &#8211; wie empfohlen &#8211; den aktuellen Benutzer der Gruppe docker hinzu. Der hier bespielhaft genannte Account <em>pi</em> ist durch den tatsächlichen Benutzernamen zu ersetzen:</p>



<pre class="wp-block-code"><code>$ sudo usermod -aG docker pi</code></pre>



<p>Nach einer Ab- und Anmeldung sollte sich nun ein erster Docker Container ausführen lassen:</p>



<pre class="wp-block-code"><code>$ docker run --rm hello-world</code></pre>



<h2 class="wp-block-heading">Home Assistant</h2>



<p>Nun da Docker einsatzbereit ist, können wir Home Assistant installieren und im Container betreiben. Für diese Einführung belasse ich die Konfiguration von Home Assistant unverändert, d.h.:</p>



<ul class="wp-block-list"><li>es wird die integrierte SQLite Datenbank verwendet</li><li>die Home Assistant Oberfläche ist auf Port 8123 zu erreichen</li><li>die discovery-Komponente durchsucht das lokale Netz nach bekannten IoT-Geräten</li></ul>



<h3 class="wp-block-heading">Installation von Home Assistant mit Docker</h3>



<p>Docker Container sind vergänglich (<q>ephemeral</q>), ebenso wie die in ihnen verwendeten Daten. Um Konfiguration und andere Laufzeitdaten zu persistieren, müssen wir Docker einen Platz zum Speichern außerhalb des Containers zuweisen. Dort wird Home Assistant seine initiale Konfiguration erzeugen und dauerhaft verwenden.</p>



<p>Zunächst erstellen wir ein lokales Verzeichnis (der Name ist beliebig):</p>



<pre class="wp-block-code"><code>$ cd ~
$ mkdir home-assistant</code></pre>



<p><span id="docker_start">Anschließend</span> starten wir unseren Container auf Basis des <a href="#links">offiziellen</a> Home-Assistant Images für den Raspberry Pi 3:</p>



<pre class="wp-block-code"><code>$ docker run -d  \
  --name=hass --net=host --restart=always \
  -v $PWD/home-assistant:/config \
  -v /etc/localtime:/etc/localtime:ro \
  homeassistant/raspberrypi3-homeassistant:latest</code></pre>



<p>Durch obigen Befehl wird die aktuelle Version des Docker Image (und seine Basis) von Home Assistant für Raspberry Pi 3 heruntergeladen und ein darauf aufbauender Container namens &#8222;hass&#8220; wird gestartet. Das lokale Verzeichnis <tt>home-assistant</tt> und die Zeitzone werden in den Container eingebunden. Die genaue Bedeutung der Parameter kann per <tt>$ docker run --help</tt> ermittelt werden.</p>



<p>Der Vorgang dauert ein wenig, aber nach einigen Sekunden sollte das Web-Interface von Home Assistant über den DNS-Namen oder die IP-Adresse des Raspberry zugänglich sein, z.B. http://raspberrypi:8123/.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.dahlen.org/wp-content/uploads/2018/03/Home-Assistant-Welcome-700x626.png" alt="" class="wp-image-2448"/><figcaption>Home Assistant Standard-Ansicht</figcaption></figure>



<p>Der tatsächliche Inhalt des Willkommen-Bereichs kann sich unterscheiden, da die in Home Assistant enthaltene <a href="#links">Discovery</a> Komponente möglicherweise Geräte (z.B. Philips Hue, Google Home oder Sonos Lautsprecher) bereits aufgespürt und eingebunden hat.</p>



<h4 class="wp-block-heading">Konfiguration von Home Assistant</h4>



<p>Das lokale Verzeichnis (<tt>home-assistant</tt>) wurde dem Container zur Verfügung gestellt. Entsprechend hat Home Assistant hier seine initiale Konfiguration abgelegt. Da der Container mit den Rechten des aktuellen Benutzers gestartet wurde, sind auch die Konfigurationsdateien in seinem Besitz. So kann jetzt mit einem Editor (z.B. vi oder nano) die grundsätzliche Konfiguration unter <tt>home-assistant/configuration.yaml</tt> bearbeitet werden. Beispielhaft kann der Eintrag &#8222;introduction:&#8220; (ca. Zeile 17) entfernt werden, um den Einführungstext zu verwerfen.</p>



<h3 class="wp-block-heading">Neustart von Home Assistant</h3>



<p>Bei Änderung der <q>Core</q>-Konfiguration ist Home Assistant neu zu starten. Auch wenn dies über die Web-Oberfläche möglich ist (unter <q>Einstellungen</q>), ist der Neustart des Docker Containers oft die schnellere Lösung:</p>



<pre class="wp-block-code"><code>$ docker restart hass</code></pre>



<h3 class="wp-block-heading">Aktualisierung des Containers</h3>



<p>Etwa alle 2 Wochen erscheint eine neue Version von Home Assistant, dazwischen werden <q>Minor Releases</q> mit Korrekturen veröffentlicht. Auch die Docker Images werden dabei zeitnah aktualisiert und können für neue Container-Instanzen verwendet werden. Existierende Container verwenden jedoch immer ihr ursprüngliches Image, daher ist die laufende Instanz zunächst zu löschen (keine Sorge, die Konfiguration im lokalen Verzeichnis bleibt bestehen):</p>



<pre class="wp-block-code"><code>$ docker rm -f hass</code></pre>



<p>Anschließend kann ein neuer Container wie <a href="#docker_start">oben</a> beschrieben gestartet werden.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p>Der Einstieg in die Heim-Automatisierung ist einfach und kostengünstig möglich. Viele Geräte im Haushalt sind bereits netzwerk-fähig und können über diese Schnittstelle überwacht oder gesteuert werden. Andere dienen als einfache Sensoren, so kann ein Router zur Erkennung anwesender Mobiltelefone beitragen. Und nicht zuletzt existiert bereits eine Fülle von Internet-Diensten, welche als Signale in der Steuerung des Smart Home genutzt werden können.</p>



<p><a href="#links">Home Assistant</a> ist eine einfach zu installierende und leicht zu verwendende Software, welche wie geschaffen für einen Raspberry Pi (3) ist. Die gute <a href="#links">Dokumentation</a> und eine aktive Community erleichtern den Einstieg und stehen für Fragen und Ratschläge zur Verfügung.</p>



<h2 class="wp-block-heading">Weiterführende Informationen</h2>



<h3 class="wp-block-heading" id="links">Software und Dokumentation</h3>



<ul class="wp-block-list"><li><a href="https://home-assistant.io/" target="_blank" rel="noopener">Home Assistant</a></li><li><a href="https://home-assistant.io/getting-started/" target="_blank" rel="noopener">Home Assistant: Getting Started</a></li><li><a href="https://home-assistant.io/hassio/" target="_blank" rel="noopener">Home Assistant: HASS.IO</a></li><li><a href="https://community.home-assistant.io/" target="_blank" rel="noopener">Home Assistant Forum</a></li><li><a href="https://raspbian.org/" target="_blank" rel="noopener">Raspbian Linux</a></li><li><a href="/2018/03/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/">Raspberry Pi 3 Modell B für USB Boot vorbereiten</a></li><li><a href="/2017/10/raspberry-pi-zero-w-headless-setup/">Raspberry Pi Zero W <q>headless</q> Setup &#8211; so geht&#8217;s</a></li><li><a href="https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/" target="_blank" rel="noopener">Docker Comes to Raspberry Pi</a></li><li><a href="https://store.docker.com/community/images/homeassistant/raspberrypi3-homeassistant/tags" target="_blank" rel="noopener">Home Assistant: Docker Image für Raspberry Pi 3</a></li></ul>



<h3 class="wp-block-heading" id="produkte">Produkte<a href="/impressum#affiliate">*</a></h3>



<p>Die folgenden Produkte wurden im Artikel besprochen bzw. verwendet:</p>



<ul class="wp-block-list"><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1992302446, {de : 'A-B07BDR5PDW'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07BDR5PDW?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07BDR5PDW&amp;SubscriptionId=">Raspberry Pi 3 Modell B</a></li></ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/03/23/home-assistant-mit-docker-auf-raspberry-pi-betreiben/">Home Assistant mit Docker auf Raspberry Pi betreiben</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2018/03/23/home-assistant-mit-docker-auf-raspberry-pi-betreiben/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi 3 Modell B für USB Boot vorbereiten</title>
		<link>https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/</link>
					<comments>https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sun, 18 Mar 2018 10:28:32 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Smart Home]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2278</guid>

					<description><![CDATA[<p>Seit dem 14. März 2018 ist mit dem Raspberry Pi 3 Modell B+ eine leicht überarbeite Version des Raspberry Pi 3B verfügbar. Bereits einen Tag vorher wurde eine aktuelle Version des auf Debian basierenden Raspbian Linux bereitgestellt, welches die neuen Funktionen des Modells B+ unterstützt. Für mich Grund genug ein Exemplar zu kaufen und das [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/">Raspberry Pi 3 Modell B für USB Boot vorbereiten</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Seit dem 14. März 2018 ist mit dem Raspberry Pi 3 Modell B+ eine leicht überarbeite Version des Raspberry Pi 3B verfügbar. Bereits einen Tag vorher wurde eine aktuelle Version des auf Debian basierenden Raspbian Linux bereitgestellt, welches die neuen Funktionen des Modells B+ unterstützt. Für mich Grund genug ein Exemplar zu kaufen und das Booten von USB zu verproben &#8211; und endlich auch zu dokumentieren &#8230;<br />
<span id="more-2278"></span></p>
<h3>Raspberry Pi 3B+</h3>
<p><figure id="attachment_2277" aria-describedby="caption-attachment-2277" style="width: 1980px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114.png"><img loading="lazy" decoding="async" class="size-full wp-image-2277" src="https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114.png" alt="Raspberry Pi3 B+, Verpackung und Mobiltelefon" width="1980" height="1189" srcset="https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114.png 1980w, https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114-300x180.png 300w, https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114-1024x615.png 1024w, https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114-768x461.png 768w, https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114-1536x922.png 1536w, https://www.dahlen.org/wp-content/uploads/2018/03/rpi3b-e1521305745114-1568x942.png 1568w" sizes="auto, (max-width: 1980px) 100vw, 1980px" /></a><figcaption id="caption-attachment-2277" class="wp-caption-text">Raspberry Pi3 B+ im Größenvergleich zum iPhone SE</figcaption></figure></p>
<p>Beim neuen Modell 3B+ wurde im Wesentlichen Modellpflege betrieben, in der Automobilindustrie wäre vermutlich die Rede von einem <q>Facelift</q>:</p>
<ul>
<li>die CPU Geschwindigkeit wurde von 1,2GHz auf 1,4GHz erhöht</li>
<li>die Anbindung des LAN-Ports erlaubt jetzt bis zu 300MBit/s</li>
<li>WLAN funkt jetzt nach 802.11ac auch im 5GHz Band</li>
<li>Bluetooth 4.2 wird jetzt unterstützt</li>
</ul>
<p>Weitere Details lassen sich der entsprechenden <a href="https://www.raspberrypi.org/blog/raspberry-pi-3-model-bplus-sale-now-35/" target="raspberrypi" rel="noopener">Ankündigung</a> der <a href="https://www.raspberrypi.org/" target="raspberrypi" rel="noopener">Raspberry Pi</a> Foundation entnehmen.</p>
<h3>Booten von USB</h3>
<p><span style="text-decoration: line-through;">Auch der 3B+ kann ab Werk nicht von USB-Medien booten. Doch analog zum Modell 3B (ohne Plus) kann dies mit wenigen Handgriffen geändert werden. Im Gegenteil, die für den 3B+ notwendige aktuelle Raspbian-Version macht den Vorgang sogar noch einfacher.</span></p>
<hr />
<p><strong>An dieser Stelle irrt der Autor, das 3B+ Modell des Raspberry Pi kann offenbar ohne Vorbereitung direkt von USB (und sicherlich auch via Netzwerk) booten. Die unten beschriebene Vorbereitung ist also für das <q>Plus</q>-Modell nicht notwendig, sondern nur für das Modell 3. Allerdings wird auch kein Schaden angerichtet, falls das Vorgehen für den 3B+ angewendet wird.</strong></p>
<hr />
<p>Für die Durchführung sind ein aktuelles <a href="http://raspbian.org/" target="_blank" rel="noopener">Raspbian Linux</a>, <a href="https://etcher.io/" target="_blank" rel="noopener">Etcher</a>, ein <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">guter USB-Stick</a> (ab 16GB) und temporär eine <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">Micro-SD</a>-Karte (4GB) notwendig. Ich habe <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">Produkte</a> von <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">SanDisk</a> eingesetzt, welche noch in diversen Schubladen zu finden waren. Da der RPi 3B+ etwas stromhungriger ist, sollte außerdem auf ein <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">gutes Netzteil</a> (5,1V, 2,5A) geachtet werden.</p>
<h4>Vorbereitung</h4>
<p>Zunächst sind die aktuelle <a href="https://www.raspberrypi.org/software/operating-systems/" target="_blank" rel="noopener">Raspbian (Lite)</a>-Version und <a href="https://etcher.io/" target="_blank" rel="noopener">Etcher (Portable)</a> herunterzuladen. Anschliessend sind die SD-Karte und der USB-Stick mit dem PC zu verbinden und Etcher zu starten. <strong>Evtl. Inhalte auf Stick und Karte müssen gesichert werden, denn ihr Inhalt geht durch das Flashen unwiderruflich verloren!</strong></p>
<p>In Etcher wählt man folgendes Vorgehen:</p>
<ul>
<li>Über <q>Select Image</q> wählt man das heruntergeladene Raspbian-Abbild aus, z.B. 2018-03-13-raspbian-stretch-lite.zip. Das Archiv kann von Etcher direkt verarbeitet werden und muss nicht entpackt werden.</li>
<li>Mittels <q>Select Drive</q> wählt man das zu beschreibende Medium aus. Für diesen Artikel wurde mit dem USB-Stick begonnen, aber die Reihenfolge ist letztendlich egal.</li>
<li>Durch die Option <q>Flash</q> startet der Schreibvorgang, der je nach Rechnerleistung, Mediengröße und Lesegerät einige Sekunden bis Minuten dauert.</li>
<li>Nach erfolgreicher Durchführung wählt man die Option <q>Flash Another</q> und beginnt mit der Vorbereitung des verbleibenden Speichermediums. In meinem Beispiel ist das die SD-Karte, welche in einem <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">Lexar</a> Lesegerät steckt.</li>
<li>Wieder startet ein Klick auf <q>Flash</q> den eigentlichen Schreibvorgang. Nach Abschluss kann Etcher beendet werden.</li>
</ul>
<p>Die Etcher-Dialog-Folge anbei nochmal in Bildern. Wie gesagt: Die Reihenfolge zwischen SD-Karte und USB-Stick ist unbedeutend, solange beide Medien mit dem selben Raspbian-Abbild beschrieben werden.</p>
<p>
<a href='https://www.dahlen.org/wp-content/uploads/2018/03/etcher-1.png'><img loading="lazy" decoding="async" width="150" height="150" src="https://www.dahlen.org/wp-content/uploads/2018/03/etcher-1-150x150.png" class="attachment-thumbnail size-thumbnail" alt="Etcher Oberfläche im Schritt &quot;Select Image&quot;" /></a>
<a href='https://www.dahlen.org/wp-content/uploads/2018/03/etcher-2.png'><img loading="lazy" decoding="async" width="150" height="150" src="https://www.dahlen.org/wp-content/uploads/2018/03/etcher-2-150x150.png" class="attachment-thumbnail size-thumbnail" alt="Etcher Oberfläche im Schritt &quot;Select Drive&quot;" /></a>
<a href='https://www.dahlen.org/wp-content/uploads/2018/03/etcher-7.png'><img loading="lazy" decoding="async" width="150" height="150" src="https://www.dahlen.org/wp-content/uploads/2018/03/etcher-7-150x150.png" class="attachment-thumbnail size-thumbnail" alt="Etcher Oberfläche im Schritt &quot;Select Drive&quot;, Laufwerksauswahl" /></a>
<a href='https://www.dahlen.org/wp-content/uploads/2018/03/etcher-4.png'><img loading="lazy" decoding="async" width="150" height="150" src="https://www.dahlen.org/wp-content/uploads/2018/03/etcher-4-150x150.png" class="attachment-thumbnail size-thumbnail" alt="Etcher Oberfläche im Schritt &quot;Flash&quot;" /></a>
<a href='https://www.dahlen.org/wp-content/uploads/2018/03/etcher-5.png'><img loading="lazy" decoding="async" width="150" height="150" src="https://www.dahlen.org/wp-content/uploads/2018/03/etcher-5-150x150.png" class="attachment-thumbnail size-thumbnail" alt="Etcher Oberfläche im Schritt &quot;Flash Complete&quot;" /></a>
<a href='https://www.dahlen.org/wp-content/uploads/2018/03/etcher-3.png'><img loading="lazy" decoding="async" width="150" height="150" src="https://www.dahlen.org/wp-content/uploads/2018/03/etcher-3-150x150.png" class="attachment-thumbnail size-thumbnail" alt="Etcher Oberfläche im Schritt &quot;Select Drive&quot;, Laufwerksauswahl" /></a>
</p>
<p>Wer den Raspberry &#8222;headless&#8220; betreiben möchte, d.h. ohne Monitor und Tastatur, der kann jetzt auf dem USB-Stick noch die entsprechenden Vorbereitungen treffen, analog zu <a href="https://www.dahlen.org/2017/10/raspberry-pi-zero-w-headless-setup/">diesem Artikel</a>. Andernfalls ist der Stick damit vorbereitet, er kann ausgeworfen, abgezogen und zur Seite gelegt werden.</p>
<h4>Konfiguration</h4>
<p>Der Inhalt der SD-Karte muss noch geändert werden, sie verbleibt zunächst im Lesegerät. Je nach Betriebssystem ist es evtl. notwendig die Karte zunächst zu entnehmen und dann wieder einzustecken, damit die Änderungen erkannt werden.</p>
<p>Auf der SD-Karte befindet sich nach dem Beschreiben eine Partition im DOS-Format (<q>boot</q>) und auf dieser wiederrum die Datei <tt>config.txt</tt>. In dieser Datei ist eine Zeile hinzuzufügen, wobei auf die Beibehaltung der Zeilenenden geachtet werden muss. Unter Windows ist daher Wordpad zu verwenden und nicht der Editor (Notepad).</p>
<p>Ans Ende der Datei fügen wir die Zeile <tt>program_usb_boot_mode=1</tt> an, so dass (Stand 19.03.2018) die letzten 3 Zeilen von <tt>config.txt</tt> wie folgt aussehen:</p>
<pre># Enable audio (loads snd_bcm2835)
dtparam=audio=on
program_usb_boot_mode=1
</pre>
<p>Durch die neue Zeile werden beim nächsten Start des Raspberry Pi 3 (B/B+) unwiderruflich die USB- und Netzwerk- (<abbr title="Preboot Execution Environment">PXE</abbr>) Boot-Option aktiviert. Der Prozess ist nicht umkehrbar, da die Änderung im <abbr title="One Time Programmable">OTP</abbr>-Speicher des RPi eingetragen wird. Details sind der <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md" target="_blank" rel="noopener">Dokumentation</a> zu entnehmen. Der Einsatz von SD-Karten ist allerdings unverändert möglich, die neue Boot-Reihenfolge lautet nun:</p>
<ol>
<li>SD-Karte</li>
<li>USB-Medium</li>
<li>Netzwerk-Boot (PXE)</li>
</ol>
<h4>Aktivierung</h4>
<p>Jetzt ist auch die SD-Karte fertig vorbereitet und kann ausgeworfen bzw. entnommen werden. Anschließend ist sie in den Raspberry einzustecken und dieser mit Strom zu versorgen. Der Startvorgang und die Aktivierung des USB-Boots läuft ohne manuellen Eingriff ab. Ein eindeutiges Zeichen für einen abgeschlossenen Boot-Vorgang gibt es leider nicht, bei meinem 3B blinkt die grüne LED jede Sekunde, beim 3B+ <q>blitzt</q> sie. Es ist wichtig, dass die rote LED dauerhaft leuchtet, andernfalls ist die Stromversorgung zu schwach.</p>
<p>Gebt dem <q>Raspi</q> einfach 1-2 Minuten, bevor er wieder vom Strom getrennt wird. Eventuellen Datenverlust der SD-Karte nehmen wir hin, denn sie wird nicht mehr benötigt.</p>
<p>Nun wird der USB-Stick in einen beliebigen Port des Raspberrys gesteckt und wieder mit Strom versorgt. Der Start sollte jetzt von USB erfolgen, wobei auch hier beim ersten Start zunächst das Filesystem auf die volle Partitionsgröße erweitert und dann automatisch neu gestartet wird.</p>
<p>Somit wurde der Raspberry Pi 3 auf USB-Boot umgestellt und kann nun dauerhaft ohne SD-Karte betrieben werden.</p>
<h3>tl;dr;</h3>
<p>Hier nochmal die Zusammenfassung:</p>
<ul>
<li>Für das Modell 3B+
<ol>
<li>aktuelles <a href="https://www.raspberrypi.org/software/operating-systems/" target="raspbian" rel="noopener">Raspbian Lite</a> via <a href="https://etcher.io" target="etcher" rel="noopener">Etcher</a> auf <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">USB</a>-Stick flashen</li>
<li><a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">USB-Stick</a> einstecken und <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">Raspberry Pi 3</a> starten und konfigurieren</li>
</ol>
</li>
<li>Für das Modell 3B:
<ol>
<li>aktuelles <a href="https://www.raspberrypi.org/software/operating-systems/" target="raspbian" rel="noopener">Raspbian Lite</a> via <a href="https://etcher.io" target="etcher" rel="noopener">Etcher</a> auf <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">SD-Karte</a> <strong>und</strong> <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">USB</a>-Stick flashen</li>
<li>Zeile <tt>program_usb_boot_mode=1</tt> an Datei <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md" target="raspberrypi" rel="noopener">config.txt</a> auf <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">SD-Karte</a> anfügen</li>
<li><a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">SD-Karte</a> in <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">Raspberry Pi 3</a> einstecken, starten und wieder runterfahren</li>
<li><a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">SD-Karte</a> entfernen, <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">USB-Stick</a> einstecken und <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/#produkte">Raspberry Pi 3</a> starten und konfigurieren</li>
</ol>
</li>
</ul>
<h4>Links</h4>
<ol>
<li><a href="https://www.raspberrypi.org/blog/raspberry-pi-3-model-bplus-sale-now-35/" target="_blank" rel="noopener">Raspberry Pi Foundation: Ankündigung Raspberry Pi 3B+</a></li>
<li><a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md" target="_blank" rel="noopener">Raspberry Pi Foundation: Dokumentation Boot-Modi</a></li>
<li><a href="https://www.raspberrypi.org/software/operating-systems/" target="_blank" rel="noopener">Raspbian Linux (Übersicht)</a></li>
<li><a href="https://www.raspberrypi.org/software/operating-systems/" target="_blank" rel="noopener">Raspbian Linux Lite (Download)</a></li>
<li><a href="https://etcher.io/" target="_blank" rel="noopener">Etcher</a></li>
<li><a href="https://www.dahlen.org/2017/10/raspberry-pi-zero-w-headless-setup/" target="_blank" rel="noopener">Raspberry Pi Headless Setup</a></li>
</ol>
<h4 id="produkte">Produkte<a href="https://www.dahlen.org/impressum#affiliate">*</a></h4>
<p>Die folgenden Produkte wurden im Artikel besprochen bzw. verwendet:</p>
<ul>
<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(569102907, {de : 'A-B07BDR5PDW'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07BDR5PDW?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07BDR5PDW&amp;SubscriptionId=">Raspberry Pi 3 Modell B+</a></li>
<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1876991944, {de : 'A-B00LLEN5FQ'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B00LLEN5FQ?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B00LLEN5FQ&amp;SubscriptionId=">SanDisk Ultra Fit USB Stick, 16GB, USB 3.0</a></li>
<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(294051149, {de : 'A-B073S8LQSL'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B073S8LQSL?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B073S8LQSL&amp;SubscriptionId=">SanDisk Ultra 16GB microSDHC Speicherkarte</a></li>
<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1090605665, {de : 'A-B00GYM7H3G'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B00GYM7H3G?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B00GYM7H3G&amp;SubscriptionId=">RAVPower 4-Port USB Ladegerät 40W 5V /8A</a></li>
<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(946170617, {de : 'A-B004P8J1DU'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B004P8J1DU?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B004P8J1DU&amp;SubscriptionId=">Lexar SD- und CF-Kartenleser USB 3.0</a></li>
</ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/">Raspberry Pi 3 Modell B für USB Boot vorbereiten</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2018/03/18/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi Zero W &#8222;headless&#8220; Setup &#8211; so geht&#8217;s</title>
		<link>https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/</link>
					<comments>https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Thu, 12 Oct 2017 06:30:33 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Raspian]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2154</guid>

					<description><![CDATA[<p>Der Raspberry Pi Zero W kommt für wenig Geld daher. Er verfügt ab Werk über WLAN (und Bluetooth). Sind Adapter für Mini-HDMI und Micro-USB nicht im Haus, kommt ein Setup mit Monitor und Tastatur nicht infrage. Und die fehlende LAN-Buchse am Zero bedeutet: Der Kaugummistreifen muß erstmal ins WLAN. Eine lösbare Herausforderung &#8230; Den Zero&#160;W [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/">Raspberry Pi Zero W &#8222;headless&#8220; Setup &#8211; so geht&#8217;s</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Der Raspberry Pi Zero W kommt für wenig Geld daher. Er verfügt <q>ab Werk</q> über WLAN (und Bluetooth). Sind Adapter für Mini-HDMI und Micro-USB nicht im Haus, kommt ein Setup mit Monitor und Tastatur nicht infrage. Und die fehlende LAN-Buchse am Zero bedeutet: Der <q>Kaugummistreifen</q> muß erstmal ins WLAN.</p>



<p>Eine lösbare Herausforderung &#8230;<br>
<br>
Den Zero&nbsp;W gibt es für unter 15 EUR (ohne Zubehör) bzw. für unter 30 Euro als <q>Essential</q> Paket (z.B. bei <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1424991045, {de : 'A-B06XCYGP27'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B06XCYGP27?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B06XCYGP27&amp;SubscriptionId=">Amazon</a>). Für die Installation wird eine <a title="Dokumentation SD-Karten" href="https://www.raspberrypi.org/documentation/installation/sd-cards.md" target="_blank" rel="noopener">geeignete</a> Micro-SD-Karte mit mindestens 8GB Kapazität benötigt. Außerdem ein Kartenleser (z.B. von Lexar, bei <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(961151886, {de : 'A-B00V3IEMNO'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B00V3IEMNO?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B00V3IEMNO&amp;SubscriptionId=">Amazon</a>), welcher an einen weiteren Rechner angeschlossen wird.</p>



<span id="more-2154"></span>



<h2 class="wp-block-heading">Vorbereitung</h2>



<p>Das Bespielen der SD-Karte mit <a title="Raspian Downloads" href="https://www.raspberrypi.org/software/operating-systems/" target="_blank" rel="noopener">Raspbian</a> lt. <a title="Installations-Anleitung" href="https://www.raspberrypi.org/documentation/installation/installing-images/README.md" target="_blank" rel="noopener">Install Guide</a> ist schnell erledigt und mündet folgender Partitionierung:</p>



<ol class="wp-block-list"><li>die boot-Partition, welche das DOS-Dateisystem nutzt und</li><li>die root-Partition, welche das Linux Ext-Dateisystem nutzt.</li></ol>



<p>Wir werden ausschließlich den Inhalt der <b>boot</b>-Partition erweitern, dank DOS-Dateisystem sind die folgenden Änderungen unter allen populären Betriebssystemen möglich.</p>



<h3 class="wp-block-heading">OpenSSH-Service aktivieren</h3>



<p>Gemäß offizieller <a href="https://www.raspberrypi.org/documentation/remote-access/ssh/README.md" target="_blank" rel="noopener">Anleitung</a> (Abs.&nbsp;3) ist im Stammverzeichnis der boot-Partition eine Datei namens <span class="tt">ssh</span> zu erstellen. Die reine Existenz dieser Datei führt im Raspian-Boot-Prozess dazu, dass der OpenSSH Server automatisch aktiviert wird und eingehende Verbindungen auf Port 22 annimmt.</p>



<h3 class="wp-block-heading">WLAN-Konfiguration vorbereiten</h3>



<p>Der zweite Schritt ist etwas umfangreicher. Ebenfalls im Stammverzeichnis der boot-Partition wird die Datei <span class="tt">wpa_supplicant.conf</span> erstellt. Lt. ungeprüfter Aussagen muss sie Linux-Zeilenenden aufweisen. Wie in den <a title="Raspberry Pi Blog Post" href="https://www.raspberrypi.org/blog/another-update-raspbian/" target="_blank" rel="noopener">Hintergrundinformationen</a> angekündigt, wird diese Datei beim Start automatisch an die <q>richtige</q> Stelle <span class="tt">/etc/wpa_supplicant/</span> verschoben.</p>



<p>Die Datei hat folgenden Inhalt:
</p>



<pre class="wp-block-code"><code>country=DE 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev 
update_config=1 
network={
     ssid="WLAN SSID"
     scan_ssid=1
     psk="WLAN PASSWORT"
     key_mgmt=WPA-PSK
}</code></pre>



<p>Die Werte <span class="tt">WLAN SSID</span> und <span class="tt">WLAN PASSWORT</span> sind natürlich durch die tatsächlichen Angaben zu ersetzen. Befindet man sich nicht in Deutschland, ist <span class="tt">DE</span> durch den ISO-Code des aktuellen Landes zu ersetzen.</p>



<h2 class="wp-block-heading">Start</h2>



<p>Damit sind die Vorbereitungen für den ersten Start abgeschlossen. Die SD-Karte wird nun in den Raspberry Pi gesteckt und dieser mit Energie versorgt. Nach einigen Sekunden sollte der Raspberry&nbsp;Pi im WLAN auftauchen, als Standard-Hostname wird dabei <em>raspberrypi</em> verwendet. Im WLAN-Access Point sollte sich auch die vergebene IP-Adresse ermitteln lassen. </p>



<p>Mittels eines geeigneten SSH-Clients kann nun die Anmeldung erfolgen. Das Passwort zum Standard-Benutzer <span class="tt">pi</span> ist in der offiziellen Dokumentation zu finden und sollte nach der 1. Anmeldung unbedingt geändert werden. </p>



<p>Das Verfahren zur WLAN-Client-Definition kann übrigens wiederholt werden und eignet sich somit auch, um eine nachträgliche Änderung <q>headless</q> durchzuführen.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/">Raspberry Pi Zero W &#8222;headless&#8220; Setup &#8211; so geht&#8217;s</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/feed/</wfw:commentRss>
			<slash:comments>30</slash:comments>
		
		
			</item>
		<item>
		<title>Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)</title>
		<link>https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/</link>
					<comments>https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sun, 24 Feb 2013 15:27:13 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=999</guid>

					<description><![CDATA[<p>Im ersten und zweiten Teil dieser Blog-Post-Serie bin ich auf die Installation der Cloud-Software ownCloud auf der eigenen, schwachbrüstigen Hardware eingegangen. Dabei wurde auf den Mini-Computer Raspberry PI, die Web-Server-Software lighttpd, Verschlüsselung via Transport Layer Security (TLS) und schließlich ownCloud gesetzt. In diesem dritten und vorerst letzten Teil wird auf die Anbindung von stationären und [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/">Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-1/" title="Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)">ersten</a> und <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-2/" title="Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)">zweiten</a> Teil dieser Blog-Post-Serie bin ich auf die Installation der Cloud-Software <a href="http://owncloud.org" title="ownCloud Website besuchen">ownCloud</a> auf der eigenen, schwachbrüstigen Hardware eingegangen. Dabei wurde auf den Mini-Computer <a href="http://www.raspberrypi.org/" title="Raspberry PI Foundation">Raspberry PI</a>, die Web-Server-Software <a href="http://lighttpd.net/" title="LigHTTPd Website">lighttpd</a>, Verschlüsselung via Transport Layer Security (TLS) und schließlich ownCloud gesetzt. </p>
<p>In diesem dritten und vorerst letzten Teil wird auf die Anbindung von stationären und mobilen Clients eingegangen. Dabei kommen vorerst iOS und Mozilla Thunderbird zum Einsatz. Der fiktive ownCloud Server ist dabei unter der URL <em>https://owncloud.dahlen.org/</em> mit dem Benutzer <em>cloudmaster</em> zu erreichen.<br />
<span id="more-999"></span></p>
<h3>Client-Geräte und -Software</h3>
<p>Die Nutzungsmöglichkeiten von ownCloud via iPhone oder anderen mobilen Geräten sind vielfältig. Neben einem Zugriff über die entsprechende ownCloud App können Kontakte und Kalenderdaten über das CardDAV resp. CalDAV Protokoll verwaltet werden, welches von iOS direkt unterstützt wird.</p>
<h4>Geräte mit Apples iOS</h4>
<p>Die entsprechenden Assistenten zur Einrichung in iOS sind recht <q>straight-forward</q>, benötigen aber etwas Vorarbeit auf der Server-Seite. Zur automatischen Erkennung der Möglichkeiten fragt iOS zunächst die Pfade </p>
<ul>
<li><tt>/.well-known/carddav</tt> bzw.</li>
<li><tt>/.well-known/caldav</tt> ab.</li>
</ul>
<p>Diese existieren in ownCloud nicht, ihre Funktionalität allerdings sehr wohl, nur an anderer Stelle. Am einfachsten ist es jetzt, die Anfragen per HTTP Redirect umzuleiten. Dazu wird die Konfiguration unter <tt>/etc/lighttpd/lighttpd.conf</tt> um einen Eintrag ergänzt, z.B. ab Zeile 22:</p>
<blockquote><p>
url.access-deny = ( &#8222;~&#8220;, &#8222;.inc&#8220; )<br />
url.redirect = (<br />
 &#8222;^/.well-known/carddav$&#8220; => &#8222;/remote.php/carddav/&#8220;,<br />
 &#8222;^/.well-known/caldav$&#8220; => &#8222;/remote.php/caldav/&#8220;<br />
)
</p></blockquote>
<p>Außerdem ist es wichtig, daß man den eigenen Kalender in ownCloud über den Browser mindestens 1x aufruft. Erst dann werden die notwendigen Strukturen in ownClouds CalDAV-Server eingerichtet.</p>
<p>Dann kann die Anbindung via iPhone beginnen. Die Assistenten befinden sich in <q>Einstellungen</q> &#8211; <q>Mail, Kontakte, Kalender</q> &#8211; <q>Account hinzufügen &#8230;</q>. Aus der Liste der Möglichen Anbieter (iCloud, Exchange usw.) wählt man den letzten Punkt (<q>Andere</q>):<br />
<figure id="attachment_1009" aria-describedby="caption-attachment-1009" style="width: 217px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-1.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-1-217x300.png" alt="Neuen CardDAV / CalDAV Account wählen" width="217" height="300" class="size-medium wp-image-1009" /></a><figcaption id="caption-attachment-1009" class="wp-caption-text">Neuen CardDAV / CalDAV Account wählen</figcaption></figure></p>
<p>Die Dialoge für CardDAV und CalDAV sind im Wesentlichen identisch. Durch unsere Vorbereitung reicht es, den Namen des Server (<em>owncloud.dahlen.org</em>, <strong>ohne</strong> https://), den Benutzernamen und das Paßwort einzutragen. Alles andere wird bei Wahl von <q>Weiter</q> oben rechts automatisch ermittelt.</p>
<p><figure id="attachment_1010" aria-describedby="caption-attachment-1010" style="width: 208px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2-208x300.png" alt="Assistent CalDAV / CardDAV" width="208" height="300" class="size-medium wp-image-1010" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2-208x300.png 208w, https://www.dahlen.org/wp-content/uploads/2013/02/iOS-CardDAV-2.png 320w" sizes="auto, (max-width: 208px) 100vw, 208px" /></a><figcaption id="caption-attachment-1010" class="wp-caption-text">Assistent CalDAV / CardDAV</figcaption></figure></p>
<p>Und das war es dann auch schon. Der neue Kalender taucht in der Kalender-App auf und nimmt Termine entgegen. Die Enrichtung eines Kontakt-Accounts geschieht völlig analog und wird hier nicht weiter beschrieben.</p>
<h4>Mozilla Thunderbird mit Lightning Add-On</h4>
<p>Mozillas Mail-Client <a href="http://www.mozilla.org/de/thunderbird/?flang=de" title="Mozilla Thunderbird Website">Thunderbird</a> wird durch das Kalender-AddOn Lightning in die Richtung eines Personal Information Assistents, wie z.B. Outlook gerückt. Als Vertreter der Open Source Idee war zu erwarten, daß eine Anbindung an offene Standards möglich ist. </p>
<p>Zumindest für den Kalender gilt das auch. Nach der Installation von Lightning und dem Neustart von Thunderbird wird über das Menü <q>Datei</q> &#8211; <q>Neu</q> &#8211; <q>Kalender</q> der Assistent für einen neuen Kalender gestartet. Zunächst entscheidet man sich für einen Kalender im Netzwerk.</p>
<p><figure id="attachment_1016" aria-describedby="caption-attachment-1016" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1-300x242.png" alt="Assistent zur Anlage eines Kalenders" width="300" height="242" class="size-medium wp-image-1016" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1-300x242.png 300w, https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-1.png 498w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-1016" class="wp-caption-text">Assistent zur Anlage eines Kalenders</figcaption></figure></p>
<p>Im folgenden Dialog wählt man das Kalender-Format, was hier CalDAV ist. Der Dialog erwartet auch die Adresse, unter welcher der Kalender erreichbar ist. An dieser Stelle ist es leider nicht ausreichend einfach nur die URL des ownCloud-Servers anzugeben. Vielmehr wird hier die vollständige URL zum persönlichen Kalender erwartet.</p>
<p>Diese URL kann in ownCloud ausgelesen werden. Dazu wählt man in der Web-Oberfläche von ownCloud den Kalender und klickt dann oben rechts auf das Kalender-Symbol. Ein weiterer Klick auf das Weltkugel-Symbol offenbart dann den CalDAV-Link.<br />
<figure id="attachment_1021" aria-describedby="caption-attachment-1021" style="width: 277px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link.png" alt="Die CalDAV-Adresse des gewählten Kalenders." width="277" height="279" class="size-full wp-image-1021" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link.png 277w, https://www.dahlen.org/wp-content/uploads/2013/02/CalDAV-Link-150x150.png 150w" sizes="auto, (max-width: 277px) 100vw, 277px" /></a><figcaption id="caption-attachment-1021" class="wp-caption-text">Die CalDAV-Adresse des gewählten Kalenders.</figcaption></figure></p>
<p>Gemäß den Beispieldaten in diesem Artikel lautet die CalDAV-Adresse meines Default-Kalenders<br />
<em>https://owncloud.dahlen.org/remote.php/caldav/principals/cloudmaster/defaultcalendar</em>. Diese trägt man in den offenen Dialog ein und bestätigt mit <q>Weiter</q>.<br />
<figure id="attachment_1017" aria-describedby="caption-attachment-1017" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-2.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-2-300x239.png" alt="Auswahl des Kalendertyps und -quelle" width="300" height="239" class="size-medium wp-image-1017" /></a><figcaption id="caption-attachment-1017" class="wp-caption-text">Auswahl des Kalendertyps und -quelle</figcaption></figure></p>
<p>Im nächsten Dialog-Schritt hat man noch die Möglichkeit die Darstellung des Kalendars zu personalisieren und eine <nobr>E-Mail-</nobr><wbr>Adresse zuzuordnen. Außerdem werden in einem Popup die Anmeldedaten abgefragt.<br />
<figure id="attachment_1018" aria-describedby="caption-attachment-1018" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-3.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-3-300x241.png" alt="Beschriftung in der Kalenderansicht" width="300" height="241" class="size-medium wp-image-1018" /></a><figcaption id="caption-attachment-1018" class="wp-caption-text">Beschriftung in der Kalenderansicht</figcaption></figure></p>
<p>Schließlich kommt es zum letzten Schritt des Dialogs, in welchem man einfach nur auf <q>Fertigstellen</q> klickt. Das war&#8217;s.<br />
<figure id="attachment_1019" aria-describedby="caption-attachment-1019" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-4.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/thunderbird-lightning-caldav-4-300x240.png" alt="Beenden des Assistenten" width="300" height="240" class="size-medium wp-image-1019" /></a><figcaption id="caption-attachment-1019" class="wp-caption-text">Beenden des Assistenten</figcaption></figure></p>
<p>Damit hat mein Protokoll zur Einrichtung des eigenen, abgesicherten ownCloud-Servers auf dem Raspberry PI und die Anbindung an Clients sein vorläufiges Ende erreicht. Es ist nicht ausgeschlossen, daß Ergänzungen für weiter Clients wie Android oder Outlook folgen. </p>
<p>Ich hoffe, daß meine Ausführungen dem ein oder anderem zur Hilfe reichen und freue mich auf Feedback.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/">Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2013/02/24/die-eigene-cloud-3/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)</title>
		<link>https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/</link>
					<comments>https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sat, 23 Feb 2013 15:31:35 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=959</guid>

					<description><![CDATA[<p>Im ersten Teil meines Protokolls zum Thema Die eigene Cloud bin ich auf die Installation und Absicherung des Servers eingegangen. In diesem Teil geht es um die eigentliche Installation von ownCloud. Ziel ist es, Kalender- und Kontaktdaten weltweit im Zugriff zu haben, wobei sie dennoch auf eigener Hardware bleiben. Dazu wurde die Web-Server-Software lighttpd installiert [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/">Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-1/" title="Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)">ersten</a> Teil meines Protokolls zum Thema <q>Die eigene Cloud</q> bin ich auf die Installation und Absicherung des Servers eingegangen. In diesem Teil geht es um die eigentliche Installation von <a href="http://owncloud.org/" title="ownCloud Homepage besuchen">ownCloud</a>. Ziel ist es, Kalender- und Kontaktdaten weltweit im Zugriff zu haben, wobei sie dennoch auf eigener Hardware bleiben.</p>
<p>Dazu wurde die Web-Server-Software <a href="http://www.lighttpd.net/" title="Lighttpd Website besuchen">lighttpd</a> installiert und die Kommunikation via <em>Transport Layer Security</em> (TLS) abgesichert. Mein (fiktiver) Web-Server ist nun ausschließlich unter https://owncloud.dahlen.org/ erreichbar.<br />
<span id="more-959"></span></p>
<h3>Installation von ownCloud</h3>
<p>Wegen der begrenzten Ressourcen des <a href="http://www.raspberrypi.org/" title="Raspberry PI Foundation">Raspberry PI</a> wurde nicht auf das ownCloud-Paket der Distribution (Raspian) zurückgegriffen, da hier eine Abhängigkeit zum Apache 2 http-Server besteht. Dennoch kann das Gros der notwendigen Software aus den Paketquellen der Distribution genommen werden, z.B. <a href="http://php.net/" title="PHP 5">PHP5</a> mit seinen Modulen:<br />
<code>$ sudo apt-get install php5-gd php5-curl php5-sqlite php5-cgi</code></p>
<h4>PHP5</h4>
<p>Nach der Installation von PHP5 sind bei Bedarf zwei Einstellungen anzupassen, welche Auswirkung auf den gleichen Aspekt haben: Die maximale Größe für Uploads nach ownCloud. Es handelt sich um folgende Parameter, die sich in der Datei <tt>/etc/php5/cgi/php.ini</tt> befinden:</p>
<ul>
<li><tt>upload_max_filesize</tt></li>
<li><tt>post_max_size</tt></li>
</ul>
<p>Ich habe beide Werte auf <tt>16M</tt> gesetzt. In erster Linie möchte ich ownCloud für Kalender- und Kontaktdaten nutzen, aber mit 16MB sind auch mal ein Bild oder ein größeres Dokument drin.</p>
<p>Vor dem Beginn der eigentlichen Installation von ownCloud muß PHP5 noch via FastCGI angebunden werden. Dazu ist auch ein Neustart des Web-Servers notwendig:<br />
<code>$ sudo lighttpd-enable-mod fastcgi-php<br />$ sudo service lighttpd force-reload</code></p>
<h4>ownCloud</h4>
<p>Jetzt kann das ownCloud-Setup-Skript direkt vom Anbieter gezogen werden. Abgelegt wird es im Document-Root des Web-Servers <tt>/var/www/</tt>:<br />
<code>$ sudo wget -O /var/www/setup-owncloud.php \<br />  https://download.owncloud.com/download/community/setup-owncloud.php</code></p>
<p>Außerdem sind noch Berechtigungen anzupassen, damit ownCloud Daten nachladen und installieren kann:<br />
<code>$ sudo chown www-data:www-data /var/www /var/www/setup-owncloud.php</code></p>
<p>Schließlich wird das Skript im Browser aufgerufen, gemäß Beispiel lautet die URL zum Setup https://owncloud.dahlen.org/setup-owncloud.php. </p>
<p>Es erscheint der Begrüßungsbildschirm der Installation. Dieser kann ohne Änderungen per <q>Next</q> bestätigt werden.<br />
<a class="lightbox" rel="oc" href="https://www.dahlen.org/wp-content/uploads/2013/02/oc1.png"></a> Der Startbildschirm der OwnCloud Installation</p>
<p>Im folgenden Dialog kann man das Zielverzeichnis der Installation auswählen, relativ zum Document Root. Auch hier reicht ein Klick auf <q>Next</q>, auch wenn man mit <tt>owncloud</tt> nicht einverstanden ist (dazu später mehr):<br />
<figure id="attachment_934" aria-describedby="caption-attachment-934" style="width: 300px" class="wp-caption aligncenter"><a class="lightbox" rel="oc" href="https://www.dahlen.org/wp-content/uploads/2013/02/oc2.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/oc2-300x271.png" width="300" height="271" class="size-medium wp-image-934" alt="Screenshot ownCloud Web-Interface 2" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/oc2-300x271.png 300w, https://www.dahlen.org/wp-content/uploads/2013/02/oc2.png 626w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-934" class="wp-caption-text">Auswahl des Zielverzeichnisses der Installation</figcaption></figure></p>
<p>Im Hintergrund lädt ownCloud nun die aktuelle Version vom ownCloud-Server und entpackt sie im vorhin gewählten Zielverzeichnis. Je nach Internet-Anbindung kann dieser Schritt etwas dauern. Sein Abschluß wird durch den dritten Dialog berichtet, den man wieder über <q>Next</q> bestätigt.<br />
<figure id="attachment_935" aria-describedby="caption-attachment-935" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/oc3.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/oc3-300x277.png" width="300" height="277" class="size-medium wp-image-935" alt="Screenshot ownCloud Web-Interface 3" srcset="https://www.dahlen.org/wp-content/uploads/2013/02/oc3-300x277.png 300w, https://www.dahlen.org/wp-content/uploads/2013/02/oc3.png 610w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-935" class="wp-caption-text">OwnCloud meldet den Vollzug der Installation</figcaption></figure></p>
<p>Schließlich wird nach den Anmeldedaten des ersten Benutzers gefragt. Dieser wird automatisch zum Administrator. Nachdem man Benutzernamen und Passwort eingetragen hat, kann die Installation über die entsprechende Schaltfläche abgeschlossen werden.<br />
<figure id="attachment_936" aria-describedby="caption-attachment-936" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2013/02/oc4.png"><img loading="lazy" decoding="async" src="https://www.dahlen.org/wp-content/uploads/2013/02/oc4-240x300.png" width="300" height="370" class=size-medium wp-image-936" alt="Screenshot ownCloud Web-Interface 4" /></a><figcaption id="caption-attachment-936" class="wp-caption-text">OwnCloud verlangt nach den Daten des Administrators</figcaption></figure></p>
<p>Im letzten Dialog war ein roter Textabschnitt zu sehen. Sinngemäß wird dadrin darauf hingewiesen, daß alle Daten, die man ownCloud anvertraut ohne jede Zugangskontrolle abrufbar sind. Darum wird lighttpd (und damit ownCloud) jetzt erstmal runtergefahren:<br />
<code>$ sudo service lighttpd stop</code></p>
<p>Nun zu Ursache und Beseitigung der Warnung: ownCloud speichert die meisten seiner Daten in einem Unterverzeichnis namens <tt>data</tt>. Dieses Verzeichnis wird in der Regel über eine Datei namens <tt>.htaccess</tt> vor direkten Zugriffen aus dem Internet geschützt. Nur indirekt, über die ownCloud-Software und das dort integrierte Rechtemanagement soll der Zugriff erfolgen. </p>
<p>lighttpd bietet aber keine Unterstützung für die Anweisungen in der .htaccess-Datei, darum besteht auch kein Zugriffsschutz. Zwar bietet auch lighttpd ähnliche Mechanismen, aber ich wähle einen anderen Weg.</p>
<p>Als erstes ersetze ich /var/www/owncloud durch /var/www, weil ich keine weitere Anwendung auf dem Raspberry PI laufen lassen werde.<br />
<code>$ sudo mv /var/www /var/www.off<br />
$ sudo mv /var/www.off/owncloud /var/www<br />
$ sudo rm -r /var/www.off</code></p>
<p>Dann verschiebe ich das data-Verzeichnis aus dem Bereich des Webservers.<br />
<code>$ sudo mkdir -p /srv/owncloud<br />
$ sudo chown www-data:www-data /srv/owncloud<br />
$ sudo mv /var/www/data /srv/owncloud</code></p>
<p>Den neuen Ort des data-Verzeichnisses müssen wir ownCloud bekannt machen, dazu wird der alte Wert in der Konfigurationsdatei <tt>/var/www/config/config.php</tt> geändert.</p>
<p>Aus<br />
<code>'datadirectory' => '/var/www/owncloud/data',</code><br />
wird also<br />
<code>'datadirectory' => '/srv/owncloud/data',</code></p>
<p>Zeit lighttpd (und damit owncloud) neu zu starten.<br />
<code>$ sudo service lighttpd start</code></p>
<p>Damit ist die Installation von ownCloud abgeschlossen. Sie steht (nur lt. meinem Beispiel) jetzt direkt unter https://owncloud.dahlen.org/ zur Verfügung. </p>
<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-3/" title="Die eigene Cloud auf dem Raspberry PI (Teil 3: Anbindung von Clients)">nächsten</a> Teil gehe ich auf die Anbindung von Kontakten und Kalender via iOS und anderen Clients ein.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/">Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2013/02/23/die-eigene-cloud-2/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
			</item>
		<item>
		<title>Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)</title>
		<link>https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/</link>
					<comments>https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sat, 23 Feb 2013 15:00:57 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=929</guid>

					<description><![CDATA[<p>Bereits vor einiger Zeit habe ich mir einen Raspberry Pi gekauft, einen Ein-Platinen-Computer in der Größe einer Scheckkarte. Es stand nicht wirklich eine Notwendigkeit dahinter, eher technische Neugier gepaart mit einer relativ niedrigen Kaufschwelle von rund 25&#160;USD. Jetzt habe ich auch endlich eine Verwendung für die Himbeere 3,1415 gefunden: Meine eigene, kleine Cloud &#8211; mein [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/">Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bereits vor einiger Zeit habe ich mir einen <a title="Raspberry Pi" href="http://www.raspberrypi.org/">Raspberry Pi</a> gekauft, einen Ein-Platinen-Computer in der Größe einer Scheckkarte. Es stand nicht wirklich eine Notwendigkeit dahinter, eher technische Neugier gepaart mit einer relativ niedrigen Kaufschwelle von rund 25&#160;USD. </p>
<p>Jetzt habe ich auch endlich eine Verwendung für die Himbeere 3,1415 gefunden:  Meine eigene, kleine Cloud &#8211; mein Wölkchen also.<br />
<span id="more-929"></span></p>
<h3>Motivation</h3>
<p>Zunächst möchte ich noch meine Zielsetzung schärfen: Trotz der Auswahl von <a href="https://owncloud.com/" title="ownCloud">ownCloud</a> als Server-Software geht es mir primär nicht um die Einrichtung einer Dateiablage oder ähnlichem. Vielmehr steht der weltweite Zugriff auf Kontakte und Kalenderdaten via Browser oder mobilem Endgerät im Vordergrund. Die dafür notwendigen Protokolle <a href="http://de.wikipedia.org/wiki/CalDAV" title="CalDAV bei Wikipedia nachschlagen">CalDAV</a> und CardDAV sind in ownCloud integriert und die Installation der ownCloud-Software ist um ein Vielfaches einfacher als der dedizierten Varianten (z.B. <a href="http://www.davical.org/" title="DaviCAL">DaviCAL</a>). </p>
<p>Zwar kann man alle Leistungen kostenlos bei Google bekommen, doch liegen die persönlichen Daten dann eben bei Google. Natürlich muß das nicht zwangsläufig zu Mißbrauch führen (<q>Don&#8217;t be evil</q>, sagt Google). Aber ab und an wird Google sicherlich mal einen Blick auf die Daten werden, um <q>die Benutzererfahrung</q> zu verbessern. Anders wären Dienste wie <a href="http://www.google.com/landing/now/" title="Google Now">Google Now</a> gar nicht möglich.</p>
<h3>Hard- und Software-Basis</h3>
<p>Meine Beschreibung orientiert sich dabei an den Möglichkeiten eines Raspberry Pi, Modell&nbsp;B, 256MB Variante. Als Betriebssystem kommt die Debian Wheezy basierte <q><a href="http://www.raspberrypi.org/downloads" title="Raspbian">Raspbian</a></q>-Distribution zum Einsatz.  Wegen der begrenzten Ressourcen wird nicht auf das ownCloud-Paket der Distribution zurückgegriffen, da hier eine Abhängigkeit zum Apache&nbsp;2 http-Server besteht. Stattdessen wird auf <a href="http://www.lighttpd.net/" title="ligHTTPd">LigHTTPd</a> zurückgegriffen:<br />
<code>$ sudo apt-get install lighttpd</code></p>
<p>Damit ist der Webserver bereits installiert und liefert sein Platzhalter-Seite über HTTP aus. Allerdings handelt es sich um eine unverschlüsselte Verbindung. Die später notwendigen Anmelde-, meine Kontakt- und Kalenderdaten sollen so nicht verschickt werden. Vielmehr muß eine Absicherung über <a href="http://de.wikipedia.org/wiki/Transport_Layer_Security" title="Transport Layer Security (TLS)"><abbr title="Transport Layer Security">TLS</abbr></a>, besser bekannt als <abbr title="Secure Socket Layer">SSL</abbr>.</p>
<h3>Absicherung der Kommunikation</h3>
<p>Ich will erreichen, daß die Kommunikation mit den Clients (iPhone, Browser, etc.) verschlüsselt abläuft. Dazu würde theoretisch ein einfaches, selbst-signiertes Zertifikat reichen. Allerdings würden dann unbedarfte Anwender mit Dialogen konfrontiert werden, in denen Begriffe wie <q>Gefahr</q>, <q>Sicherheitshinweis</q> und <q>nicht empfohlen</q> vorkommen.</p>
<p>Der Grund ist, daß ein selbst-signiertes Zertifikat zwar für den Aufbau einer verschlüsselten Verbindung ausreicht, aber die Identität des Servers nicht bestätigt. Dies geht nur über eine Zertifikatskette, welche ausschließlich aus dem Client bekannten <q>Certification Authorities</q> (CA) besteht. Das heißt: Eine dem Client bekannte und als vertrauenswürdig eingestufte CA hat die Validität meines Server-Zertifikats mit ihrer Signatur bestätigt. </p>
<blockquote><p>In meiner Beschreibung verwende ich als Hostnamen <em>owncloud.dahlen.org</em> und einen Benutzer namens <em>cloudmaster</em>. Weder die Domäne, noch der Benutzer existieren in der Realität.</p></blockquote>
<p>Leider verlangen die im Browser vorinstallierten CAs teilweise horrende Gebühren für ihre Signatur. Doch es gibt kostenlose Ausnahmen, welche für meinen Anwendungsfall auch völlig ausreichend sind. Eine davon ist die Firma StartSSL. </p>
<p>Wichtig: Für die Erstellung eines durch StartSSL-signierten Zertifikats wird die eigene Domäne benötigt (wie dahlen.org). Ohne diese Domäne bleibt euch nur die Möglichkeit eines selbst-signierten Zertifikats. Auch muß der ownCloud-Host über einen <em>Fully Qualified Domain Name</em> (FQDN) erreichbar sein, also über einen Namen wie owncloud.dahlen.org.</p>
<p>Das erforderliche Software (OpenSSL) sollte bereits bei der Installation von Raspian mitgekommen sein, ansonsten schadet eine erneuter Versuch auch nicht.<br />
<code>$ sudo apt-get install openssl</code></p>
<h4>Schlüssel und Zertifikate</h4>
<p>Zunächst erstellt man einen privaten Schlüssel, mit welchem das spätere Server-Zertifikat abgesichert ist. Auf die Möglichkeit, diesen private key mit einem weiteren Kennwort abzusichern wird bewußt verzichtet:<br />
<code>$ openssl genrsa -out server.key 2048</code></p>
<p>Dann erstellt man einen <em>Certificate Signing Request</em> (CSR), eigentlich ist das der öffentliche Teil des privaten Schlüssels, welcher zur Signatur bei der CA eingereicht wird (oder eben selbst signiert wird):<br />
<code>$ openssl req -new -key server.key -out server.csr</code></p>
<p>Die gestellten Fragen sind gemäß der eigenen Umgebung anzugeben. Wichtig dabei: Das Feld <em>Common Name</em> (CN) muß den Namen und die Domäne (<em>Fully Qualified Domain Name</em>, FQDN) des eigenen ownCloud-Servers beinhalten. Der vollständige Dialog kann also wie folgt aussehen:</p>
<blockquote><p>
Country Name (2 letter code) [AU]:DE<br />
State or Province Name (full name) [Some-State]:Nordrhein-Westfalen<br />
Locality Name (eg, city) []:Toenisvorst<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dahlen.org<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (e.g. server FQDN or YOUR name) []:owncloud.dahlen.org<br />
Email Address []:cloudmaster@dahlen.org
</p></blockquote>
<p>Der erzeugte CSR wird jetzt bei StartSSL zur Signatur eingereicht. Diesen Prozeß muß ich glücklicherweise nicht beschreiben, denn das haben die Kollegen auf <a href="http://www.heise.de/security/artikel/Die-Praxis-881280.html" title="heise Security">heise Security</a> bereits getan. Im Ergebnis wird das signierte Zertifikat angezeigt, welches man kopiert und eine Datei namens server.crt speichert. Es ist dabei enorm wichtig, daß der Inhalt der Datei nicht durch Umbrüche oder ähnliches verändert wird.</p>
<p>Drei Dateien befinden sich nun im aktuellen Verzeichnis:</p>
<ul>
<li>server.key &#8211; der private Schüssel zum Zertifikat</li>
<li>server.csr &#8211; der öffentliche, unsignierte Schlüssel</li>
<li>server.crt &#8211; das öffentliche, signierte und damit &#8222;zertifizierte&#8220; Schlüssel</li>
</ul>
<p>Der CSR wird nicht mehr benötigt und kann gelöscht werden. Eine weitere Datei muss noch besorgt werden, um die Kette der Zertifikat-Signaturen zu schliessen: Das Intermediate Certificate von StartSSL. Diese lässt sich direkt abrufen:<br />
<code>$ wget -O ca.pem http://www.startssl.com/certs/sub.class1.server.ca.pem</code></p>
<p>Damit ist die Zertifikatskette geschlossen und die Gültigkeit des eigenen Server-Zertifikats kann überprüft werden:<br />
<code>$ openssl verify -CAfile ca.pem server.crt</code><br />
Erwartetes Ergebnis:</p>
<blockquote><p>server.crt: OK</p></blockquote>
<p>Als letzten Schritt der Zertifikat-Vorbereitung müssen jetzt noch der private Schlüssel und das Zertifikat in eine Datei überführt werden.<br />
<code>$ cat server.key server.crt > server.pem</code></p>
<h4>Installation in <a name="lighttpd-ssl">lighttpd</a></h4>
<p>Nun ist es Zeit, die generierten Teile der SSL-Infrastruktur dem Webserver bekannt zu machen:<br />
<code>$ sudo cp server.pem /etc/lighttpd/<br />
$ sudo cp ca.pem /etc/lighttpd/</code> </p>
<p>Außerdem muß die Konfiguration unter <tt>/etc/lighttpd/lighttpd.conf</tt> angepasst werden. Die Änderungen beginnen mit der Änderung der Port-Nummer (ca. ab Zeile 15). Aus<br />
<code>server.port                 = 80</code><br />
wird<br />
<code>server.port                 = 443<br />
ssl.engine                  = "enable"<br />
ssl.pemfile                 = "/etc/lighttpd/server.pem"<br />
ssl.ca-file                 = "/etc/lighttpd/ca.pem"</code></p>
<p>Letztendlich wird damit der Zugriff über einfaches, unverschlüsseltes HTTP abgeschaltet. Durch einen Neustart wird dies aktiviert:<br />
<code>$ sudo service lighttpd restart</code></p>
<p>Danach ist der Dienst nur noch über HTTPS auf Port 443 zu erreichen, also https://owncloud.dahlen.org/.</p>
<p>Im <a href="https://www.dahlen.org/2013/02/die-eigene-cloud-2/" title="Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)">nächsten</a> Teil beschreibe ich, wie jetzt ownCloud ins Spiel kommt.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/">Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2013/02/23/die-eigene-cloud-1/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
