<?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>Raspberry Archive - dahlen.org</title>
	<atom:link href="https://www.dahlen.org/tag/raspberry/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dahlen.org/tag/raspberry/</link>
	<description>Private Webseite der Familie Dahlen</description>
	<lastBuildDate>Wed, 06 Sep 2023 09:09:40 +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>Zigbee Hub mit Raspberry Pi und Raspbee II</title>
		<link>https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/</link>
					<comments>https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sat, 26 Dec 2020 09:31:47 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Sevelen]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Raspian]]></category>
		<category><![CDATA[Zigbee]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=3065</guid>

					<description><![CDATA[<p>Auch wenn das Jahr 2020 in Summe besser abgeschrieben wird, das ein oder andere Vorhaben konnte dennoch umgesetzt werden. Und so kam es diesmal zu einem &#8222;funktionalen&#8220; Weihnachtsgeschenk an meine Eltern: Die Vorbereitung für ein &#8222;Smart Home&#8220; auf Basis von Home-Assistant, Phoscons Raspbee II-Modul und des Zigbee Protokolls. Die Voraussetzungen zur Installation bei meinen Eltern [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/">Zigbee Hub mit Raspberry Pi und Raspbee II</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Auch wenn das Jahr 2020 in Summe besser abgeschrieben wird, das ein oder andere Vorhaben konnte dennoch umgesetzt werden. Und so kam es diesmal zu einem &#8222;funktionalen&#8220; Weihnachtsgeschenk an meine Eltern: Die Vorbereitung für ein &#8222;Smart Home&#8220; auf Basis von Home-Assistant, Phoscons Raspbee II-Modul und des Zigbee Protokolls. </p>



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



<p>Die Voraussetzungen zur Installation bei meinen Eltern könnten nicht stärker vom eigenen Haushalt abweichen: Es war nicht nur ist eine fast 30-fach größere Fläche abzudecken, sondern die Installation muss sich unauffällig, autonom und wartungsfrei verhalten. Die Abhängigkeit von Apps war (mangels geeigneter Telefone) ebenso zu vermeiden, wie proprieätere Cloud-Lösungen. </p>



<figure class="wp-block-image aligncenter size-large"><img fetchpriority="high" decoding="async" width="718" height="1024" src="https://www.dahlen.org/wp-content/uploads/2020/12/zb_logo-b_color_rgb-718x1024.png" alt="" class="wp-image-3099" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/zb_logo-b_color_rgb-718x1024.png 718w, https://www.dahlen.org/wp-content/uploads/2020/12/zb_logo-b_color_rgb-210x300.png 210w, https://www.dahlen.org/wp-content/uploads/2020/12/zb_logo-b_color_rgb-768x1096.png 768w, https://www.dahlen.org/wp-content/uploads/2020/12/zb_logo-b_color_rgb.png 984w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">Zigbee Logo</figcaption></figure>



<p>Aufgrund der deutlich größeren, abzudeckenden Fläche und den eher <a href="https://www.dahlen.org/2019/05/homegear-gateway-mit-cc1101-und-raspberry-pi-3/" target="_blank" rel="noreferrer noopener">mässigen Erfahrungen</a> mit Homematic-Hardware im eigenen Haus, wurde mit Zigbee diesmal auf ein &#8222;Mesh&#8220;-Netzwerk gesetzt. Dabei sind die Geräte auch untereinander und nicht nur mit einer zentralen Stelle (sternförmig) vernetzt. Theoretisch und praktisch sind damit auch größere Entfernungen zwischen dem adressierten Endgerät und der steuernden Einheit (Router) möglich. </p>



<p>Primäres Ziel der Installation war eine &#8222;smarte&#8220; Außenbeleuchtung von <a href="https://www.dahlen.org/projekte/muehle/" target="_blank" rel="noreferrer noopener">Mühle</a> und <a href="https://www.dahlen.org/projekte/garten/" target="_blank" rel="noreferrer noopener">Garten</a>, welche bis dato noch über Wandschalter bzw. mechanische Uhrwerke in Schaltkästen geregelt ist. Weitere Anwendungsfälle (z.B. Steuerung der Teichfilter) werden folgen.</p>



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



<h3 class="wp-block-heading">Probleme mit USB 3.0</h3>



<p>Eine Warnung vorweg, damit ich als einziger mir die Nächte um die Ohren geschlagen habe: <strong>Die Verwendung eines USB 3.0 Gerätes, z.B. eines USB-Sticks in unmittelbarer Nähe des <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Raspbee II</a> führt zu vielfältigen Problemen.</strong> Die Ursache ist <a rel="noreferrer noopener nofollow" href="https://phoscon.de/de/raspbee2/install#connection" target="_blank">bekannt</a>, scheint grundsätzlich    zu sein und lässt sich mit einer USB-Verlängerung, Alu-Folie oder der Verwendung einer SD-Karte lösen.</p>



<p>Die notwendige Hardware habe ich rechtzeitig vor Weihnachten im Versandhandel organisiert. Dass Einzelhändler vor Ort entsprechende Gerätschaften im Regal haben ist eh schon un­wahr­scheinlich, spätestens mit dem 2. Lockdown war dann auch der Weg dorthin obsolet.</p>



<p>Zigbee Koordinatoren (auch als &#8222;Hub&#8220; oder &#8222;Bridge&#8220; vermarktet) gibt es zu Hauf. Die bekannteste Variante ist sicherlich die <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Philips Hue Bridge</a>. Üblicherweise sind diese &#8222;Appliances&#8220; auf Apps und Cloud-Services des Herstellers ausgerichtet. Im Bereich Heim-Automatisierung ist Zigbee aber nur eine Komponente von vielen und darum kam auch in diesem Projekt ein alter Bekannter zum Einsatz.</p>



<h3 class="wp-block-heading">Raspberry Pi 4B 4GB</h3>



<p>Es hat sich bei meinen eigenen Installation gezeigt, das die CPU eines Raspberry Pi 3 ausreichend potent ist, aber der Speicher gerade beim Einsatz mit Home Assistant schnell an seine Grenzen gerät. Darum habe ich zum <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Raspberry Pi 4B mit 4GB</a> gegriffen, welcher für ca. 60 EUR erhältlich ist.</p>



<p>Erstmalig kamen dabei auch das Orignal <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Raspberry Pi USB-C Netzteil</a>, sowie das passende <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Gehäuse</a> zum Einsatz.</p>



<p>Der Setup erfolgte natürlich wieder &#8222;<a href="https://www.dahlen.org/2017/10/raspberry-pi-zero-w-headless-setup/">headless</a>&#8220; (via LAN), auf ein Micro-HDMI-Kabel konnte also verzichtet werden. </p>



<h3 class="wp-block-heading">Raspbee II</h3>



<p>Beim <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Raspbee II</a> handelt es sich um die on-board-Variante eines Zigbee Coordinator Moduls von <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">dresden-elektronik</a>, welches unter der Marke <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Phoscon</a> vertrieben wird. Es wird auf die <em>General Purpose IO</em> (GPIO)-Leiste eines Raspberry Pi gesteckt und als serielles Gerät angesprochen. </p>



<p>Mit an Bord ist außerdem eine batteriegestützte <em>Real Time Clock</em>, also eine Echtzeituhr. Die Einrichtung und Nutzung ist aus der Produktseite des <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Raspbee II</a> beschrieben und sei hier nur am Rande erwähnt.</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="1024" src="https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-1024x1024.jpg" alt="Phoscon Raspbee II Modul auf Produktverpackung" class="wp-image-3071" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-1536x1536.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-2048x2048.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4829-scaled-1-1568x1568.jpg 1568w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Phoscon Raspbee II</figcaption></figure>



<p>Die Installation auf dem Raspberry Pi ist denkbar einfach: Das <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Raspbee II</a>-Modul wird auf das äußerste Ende der GPIO-Leiste gesteckt, so dass die eigentliche Platine über den Raspberry kommt und in Richtung USB-C-Port zeigt. </p>



<p>Das Modul baut sehr flach, so dass sowohl der Einsatz eines moderaten CPU-Kühlkörpers, als auch eines flachen Gehäuses möglich ist. Das Gehäuse sollte aber aus Kunststoff sein, um die Reichweite der Funksignale nicht unnötig zu reduzieren. Ich habe &#8211; wie gesagt &#8211; auf das <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Original</a> gesetzt.</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="1024" src="https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-1024x1024.jpg" alt="Raspberry Pi 4B mit aufgestecktem Raspbee II Modul" class="wp-image-3072" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-1024x1024.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-300x300.jpg 300w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-150x150.jpg 150w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-768x768.jpg 768w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-1536x1536.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-2048x2048.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4839-scaled-1-1568x1568.jpg 1568w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Phoscon II auf Raspberry Pi 4B (im Bild die 4GB-Version)</figcaption></figure>



<p>Wer lieber auf eine externe Lösung setzt, der kann statt des <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Raspbee II</a> auch die USB-Variante namens <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Conbee II</a> verwenden. Dann kommen allerdings andere Einstellungen zum Einsatz, die ich hier nicht beschreibe.</p>



<h3 class="wp-block-heading">OSRAM Smart+ Classic E27 / Plug 01</h3>



<p>Die beiden &#8222;<a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Smart+ Bulbs</a>&#8220; von OSRAM wurden als Proof-of-Concept beschafft. Es handelt sich um &#8222;retrofit&#8220; Leuchtmittel für die E27 Fassung mit steuerbarer Helligkeit. Mit einem Preis von rund 10 EUR pro Stück sind sie erschwinglich, aber auch ohne Schnick-Schnack. Im Betrieb sind sie aktuell unauffällig.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-1024x768.jpg" alt="OSRAM Smart+ Classic E27 Produktverpackungen" class="wp-image-3093" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-1024x768.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-300x225.jpg 300w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-768x576.jpg 768w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-1536x1152.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-2048x1536.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4841-scaled-1-1568x1176.jpg 1568w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">OSRAM Smart+ Classic E27 Dimmable &#8211; Retrofit LED &#8222;Lampen&#8220;</figcaption></figure>



<p>Auch andere zertifizierte Zigbee-Leuchtmittel sollten funktionieren. Bei OSRAM gilt es aufzupassen, denn unter dem Schlagwort &#8222;Smart+&#8220; werden auch andere Technologien wie WLAN oder Bluetooth vermarktet.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-1024x768.jpg" alt="" class="wp-image-3128" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-1024x768.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-300x225.jpg 300w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-768x576.jpg 768w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-1536x1152.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-2048x1536.jpg 2048w, https://www.dahlen.org/wp-content/uploads/2020/12/img_4850-scaled-1-1568x1176.jpg 1568w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">OSRAM Smart+ Outdoor Plug</figcaption></figure>



<p>Ebenfalls gekauft wurde ein OSRAM Smart+ Outdoor Plug, also eine Steckdose für den Außenbereich. Ein Riesen-Trümmer (siehe Aufmacher-Bild), obwohl mit <a href="https://de.wikipedia.org/wiki/Schutzart" target="_blank" rel="noreferrer noopener">Schutzart</a> IP44 nur grundsätzlich gegen Wettereinfluß geschützt. In Zukunft kommen sicherliche schmalere Lösungen zum Einsatz, aber für den Moment war diese intern &#8222;Plug01&#8220; genante Steckdose verfügbar und preislich attraktiv &#8211; gekauft.</p>



<p>In Summe haben die oben genannten Hardware und weitere Teile wie Gehäuse, Netzteil, SD-Karte ca. 130 EUR gekostet. Deutlich mehr als ein <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#produkte">Philips Hue Starter Kit</a>, aber auch deutlich flexibler, leistungsfähiger und ohne App- oder Cloud-Zwang.</p>



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



<p>Ursprünglich hatte ich vor, erstmalig <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Home Assistant OS</a> (vormals HASS.IO) zu verwenden, eine Distribution welche auf den Betrieb von Home Assistant ausgerichtet ist und auf Docker und einen &#8222;Supervisor&#8220; setzt. </p>



<p>Leider ist es mir innerhalb der persönlichen Toleranzzeit (ca. 30min) nicht gelungen, eine nutzbare Installation zu erstellen. Durch das Supervisor-Konzept sind notwendige Eingriffe in das Betriebssystem bzw. die Kernel-Konfiguration nur aufwändig zu realisieren.</p>



<h3 class="wp-block-heading">Raspbian Linux</h3>



<p>Also kam wieder <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Raspbian</a> Linux zum Einsatz, welches auch als &#8222;<a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Raspbian Pi OS</a>&#8220; vermarktet wird. Die eigentliche Installation beschreibe ich an dieser Stelle nicht mehr, es finden sich bereits <a href="https://www.dahlen.org/tag/raspian/">entsprechende</a> Artikel in diesem Blog. Die 32-Bit &#8222;lite&#8220;-Variante ohne Desktop ist ausreichend. </p>



<p>Bevor das fertige Installationsmedium (SD-Karte) in den Raspberry gesteckt und dieser gestartet wird, sollten noch folgende Änderungen am Inhalt der ersten Partition vorgenommen werden. Dabei ist ein Editor zu verwenden, welcher Zeichenkodierung und Zeilen-Enden beibehält. Unter Windows können das z.B. Wordpad oder Visual Studio Code sein:</p>



<ol class="wp-block-list">
<li>aus der Datei <code>cmdline.txt</code> wird folgender Eintrag entfernt:<br /><code>console=serial0,115200</code> </li>



<li>die Datei <code>config.txt</code> wird um folgende Zeilen ergänzt (die Leerzeile am Dateiende muss erhalten bleiben):<br /><code>enable_uart=1<br />core_freq=250<br />dtoverlay=miniuart-bt</code></li>
</ol>



<p>Optional kann noch eine (leere) Datei namens &#8222;ssh&#8220; angelegt werden, damit ein Login via Secure Shell möglich ist. Danach kann die SD-Karte in den Raspberry Pi und dieser mit Strom versorgt werden. Nach einigen Sekunden bis Minuten sollte ein neuer Host &#8222;raspberrypi&#8220; im heimischen Netz auftauchen.</p>



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



<p><a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Docker</a> ist eine Plattform zur Prozess-Virtualisierung mithilfe von Containern. Sie erleichtert den Betrieb von Home Assistant erheblich, weil hier Abhängigkeiten auf Bibliotheken und Versionen des Betriebssystems vermieden werden.</p>



<p>Die Installation von Docker habe ich bereits in einem eigenen Artikel beschrieben: <a href="https://www.dahlen.org/2019/06/docker-und-raspbian-auf-einem-raspberry-pi/">Docker und Raspbian auf einem Raspberry Pi</a>.</p>



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



<p><a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Home Assistant</a> ist meine bevorzugte Plattform zur Heim-Automatisierung, da sie einfach zu installieren ist (insbesondere unter Verwendung von Docker). Kein Grund also nach einer Alternative für das neue Projekt zu suchen. </p>



<p>Wurden das <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Raspberry Pi OS</a> (AKA Raspbian) und die Docker-Umgebung korrekt aufgesetzt (inkl. Neustart), so ist die Ausführung von Home-Assistant ein Klacks. </p>



<p>Im Wesentlichen gibt es zu meinem Artikel &#8222;<a href="https://www.dahlen.org/2018/03/home-assistant-mit-docker-auf-raspberry-pi-betreiben/">Home Assistant mit Docker auf Raspberry Pi betreiben</a>&#8220; nur eine relevante Änderung: Der Zugriff auf das Raspbee II Modul muss durch das &#8222;mappen&#8220; des entsprechenden seriellen Devices in den Container ermöglicht werden. Der vollständige Aufruf lautet also:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker run -d \
  --name=home-assistant \
  --restart=always \
  --publish 8123:8123 \
  -v $PWD/home-assistant:/config \
  -v /etc/localtime:/etc/localtime:ro \
  --device=/dev/ttyAMA0 \
  homeassistant/home-assistant:stable</code></pre>



<p>Hinweis: Alternativ zu &#8222;&#8211;publish 8123:8123&#8220; kann &#8222;&#8211;net=host&#8220; verwendet werden. Dies bindet den den Home Assistant Container an das Netzwerk des Hosts und es werden beim Start Integrationen zu allen im Netzwerk gefundenen Geräten angeboten. </p>



<h4 class="wp-block-heading">ZHA Integration</h4>



<p>Finaler Schritt der Einrichtung ist die Installation und Konfiguration des Zigbee Coordinators in Home Assistant. Dazu gibt es für das Raspee II Modul zwei Möglichkeiten:</p>



<ol class="wp-block-list">
<li>direkte Kommunikation mit dem Modul über die &#8222;<a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">Zigbee Home </a>Automation&#8220;-Integration</li>



<li>indirekte Kommunikation über einen zwischengeschalteten deCONZ-Service und die entsprechende &#8222;<a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/#links">deCONZ</a>&#8220; Integration.</li>
</ol>



<p>Ich habe mich für Variante 1 entschieden, weil sie keine weitere Abhängig­keit erzeugt und für meine Zwecke ausreichend ist. Sie kann auch die Firmware für OSRAM/Ledvance und IKEA-Leuchten &#8222;over the air&#8220; aktualisieren.</p>



<p>Sobald Home Assistant läuft, auf Port 8123 erreichbar ist und man die Basis-Einrichtung vorgenommen hat (Benutzer, Standort, Zeitzone, etc.), geht es über den Pfad &#8222;Einstellungen -&gt; Integrationen&#8220; zur Schaltfläche &#8222;+ Integration Hinzufügen&#8220;</p>



<p>Im resultierenden Dialog sucht man nach &#8222;zig&#8220; (oder &#8222;zigbee&#8220;) und wählt das Ergebnis &#8222;Zigbee Home Automation&#8220; aus. </p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="581" height="217" src="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-1.png" alt="Dialog zur Suche einer Home Assistant Integration" class="wp-image-3083" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-1.png 581w, https://www.dahlen.org/wp-content/uploads/2020/12/grafik-1-300x112.png 300w" sizes="auto, (max-width: 581px) 100vw, 581px" /><figcaption class="wp-element-caption">Dialog zum Finden und Einrichten einer neuen Integration</figcaption></figure>



<p>Im folgenden Dialog ist das serielle Gerät für das Raspbee II Modul zu wählen. Der einzig angebotene Wert an dieser Stelle sollte <code>/dev/ttyAMA0</code> sein.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="420" height="207" src="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-2.png" alt="Konfigurationsdialog ZHA Integration (1)" class="wp-image-3086" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-2.png 420w, https://www.dahlen.org/wp-content/uploads/2020/12/grafik-2-300x148.png 300w" sizes="auto, (max-width: 420px) 100vw, 420px" /><figcaption class="wp-element-caption">Einrichtung der ZHA Integration, Auswahl des seriellen <br />Geräts</figcaption></figure>



<p>Nach der Auswahl wird das serielle Gerät analysiert und es wird automatisch das deCONZ-Protokoll für die Kommunikation zwischen Raspberry Pi und dem Modul gewählt (auch ohne dedizierte deCONZ Installation nach Variante 2). </p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="396" height="356" src="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-3.png" alt="Konfigurationsdialog ZHA Integration (2)" class="wp-image-3087" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-3.png 396w, https://www.dahlen.org/wp-content/uploads/2020/12/grafik-3-300x270.png 300w" sizes="auto, (max-width: 396px) 100vw, 396px" /><figcaption class="wp-element-caption">Einrichtung der ZHA Integration, Auswahl des Bereichs</figcaption></figure>



<p>Mit der (optionalen) Auswahl eines Bereichs (also der Position des Raspberry Pi im Haus) ist die Installation abgeschlossen. Home Assistant ist nun bereit Zigbee-Geräte abzufragen und zu steuern. </p>



<p>Natürlich müssen die Geräte noch am Coordinator angelernt werden, dies ist aber in der Dokumentation der Integration beschrieben. Der schnellste Weg ist über Einstellungen -&gt; Geräte und der Auswahl des Zigbee Coordinator. Alternativ kann auch Einstellungen -&gt; Integrationen und die Auswahl der ZHA Integration verwendet werden.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="315" height="384" src="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-4.png" alt="Dialog Übersicht Zigbee Koordinator" class="wp-image-3088" srcset="https://www.dahlen.org/wp-content/uploads/2020/12/grafik-4.png 315w, https://www.dahlen.org/wp-content/uploads/2020/12/grafik-4-246x300.png 246w" sizes="auto, (max-width: 315px) 100vw, 315px" /><figcaption class="wp-element-caption">(Eine) Möglichkeit neue Zigbee-Geräte anzulernen</figcaption></figure>



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



<p>Die Installation von Hard- und Software war &#8211; wenn man von der USB-Problematik absieht &#8211; überraschend einfach, was natürlich meinem technischen Hintergrund und den Erfahrung im eigenen Haus geschuldet ist.</p>



<p>Das Raspbee II-Modul ist in der Installation idiotensicher und im Betrieb stabil. Seine Bauform erlaubt den Aufbau eines kompakten Zigbee Hubs mit deutlichem Mehrwert gegenüber einer fertigen &#8222;Appliance&#8220;, wie der Hue-Brige. </p>



<p>Die Zigbee-Geräte verhalten sich bis dato unauffällig und funktionieren einfach. Das Anlernen und die Visualiserung des Netzes in Home Assistent sind ein absolutes Plus. </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://www.raspberrypi.org/products/raspberry-pi-4-model-b/">Produktseite Raspberry Pi 4B</a></li>



<li><a href="https://www.raspberrypi.org/software/" target="_blank" rel="noreferrer noopener">Raspbian Linux (oder auch Raspberry Pi OS)</a></li>



<li><a href="https://phoscon.de/de/raspbee2">Produktseite Phoscon Raspbee II</a></li>



<li><a href="https://www.raspberrypi.org/products/raspberry-pi-4-model-b/">Produktseite Phoscon Conbee II</a></li>



<li><a href="https://www.home-assistant.io/" target="_blank" rel="noreferrer noopener">Homepage Home Assistant</a></li>



<li><a href="https://www.home-assistant.io/hassio/installation/" target="_blank" rel="noreferrer noopener">Home Assistant OS</a></li>



<li><a href="https://www.home-assistant.io/integrations/zha/" target="_blank" rel="noreferrer noopener">Zigbee Home Automation Integration</a></li>



<li><a href="https://www.home-assistant.io/integrations/deconz/" target="_blank" rel="noreferrer noopener">Phoscon deCONZ Integration</a> </li>



<li><a href="https://zigbeealliance.org/" target="_blank" rel="noreferrer noopener nofollow">Webseite der Zigbee Home Alliance</a></li>



<li><a href="https://www.docker.com/" target="_blank" rel="noreferrer noopener nofollow">Webseite von Docker Inc.</a></li>
</ul>



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



<ul class="wp-block-list">
<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1537905414, {de : 'A-B084MK8F5M'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B084MK8F5M?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B084MK8F5M&amp;SubscriptionId=">Phoscon Raspee II kaufen</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(2077875066, {de : 'A-B07TC2BK1X'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07TC2BK1X?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07TC2BK1X&amp;SubscriptionId=">Raspberry Pi 4B 4GB kaufen</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1702642648, {de : 'A-B07TZ89BT7'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07TZ89BT7?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07TZ89BT7&amp;SubscriptionId=">Raspberry Pi Original Netzteil für Modell 4B</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(296940262, {de : 'A-B07WCKLFLP'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07WCKLFLP?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07WCKLFLP&amp;SubscriptionId=">Raspberry Pi Original Gehäuse für Modell 4B</a></li>



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(765251500, {de : 'A-B074KJ72MP'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B074KJ72MP?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B074KJ72MP&amp;SubscriptionId=">OSRAM Smart  Classic E27 Zigbee Leuchtmittel</a></li>



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



<li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(13534383, {de : 'A-B016H0R7SE'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B016H0R7SE?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B016H0R7SE&amp;SubscriptionId=">Philips Hue Starter Kit</a> mit Bridge und 2 Leuchtmitteln</li>
</ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/">Zigbee Hub mit Raspberry Pi und Raspbee II</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2020/12/26/zigbee-hub-mit-raspberry-pi-und-raspbee-ii/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Docker und Raspbian auf einem Raspberry Pi</title>
		<link>https://www.dahlen.org/2019/06/04/docker-und-raspbian-auf-einem-raspberry-pi/</link>
					<comments>https://www.dahlen.org/2019/06/04/docker-und-raspbian-auf-einem-raspberry-pi/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Tue, 04 Jun 2019 06:57:31 +0000</pubDate>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Raspian]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2892</guid>

					<description><![CDATA[<p>Docker auf einem Raspberry Pi zu installieren ist keine große Sache und auch sinnvoll, denn die kleine &#8222;Handy-Platine&#8220; ist durchaus in der Lage mehrere Anwendungen in Containern zu betreiben. Auch ich habe die Prozedur schon einige Male durchlaufen, aber bis dato noch nie niedergeschrieben. Eine Nachlässigkeit, die ich hiermit korrigiere. Bevor die eigentliche Installation beginnt, [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2019/06/04/docker-und-raspbian-auf-einem-raspberry-pi/">Docker und Raspbian auf einem Raspberry Pi</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Docker auf einem Raspberry Pi zu installieren ist keine große Sache und auch sinnvoll, denn die kleine &#8222;Handy-Platine&#8220; ist durchaus in der Lage mehrere Anwendungen in Containern zu betreiben.  Auch ich habe die Prozedur schon einige Male durchlaufen, aber bis dato noch nie niedergeschrieben. Eine Nachlässigkeit, die ich hiermit korrigiere.</p>



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



<p>Bevor die eigentliche Installation beginnt, sind Vorarbeiten auf dem Raspberry notwendig, von dem ich an dieser Stelle ausgehe, dass er bereits mit einem aktuellen Raspbian 9 (&#8222;Stretch&#8220;) bestückt ist. Auch solte der Kernel in der neuesten Version vorliegen, da es sonst zu Problemen mit den sog. Control Groups kommt.</p>



<pre class="wp-block-preformatted">sudo apt update<br>sudo apt full-upgrade<br>sudo rpi-update</pre>



<p>Vor dem jetzt notwendigen Reboot werden die Kernel-Parameter in der Datei /boot/cmdline.txt noch angepasst, so dass die Control Groups (cgroup) für Speicher und CPU aktiviert sind. Sie werden für die Ressourcen-Vergabe an Container benötigt. Am einfachsten geht das wie folgt:</p>



<pre class="wp-block-preformatted">echo -n "$(head -n1 /boot/cmdline.txt) cgroup_enable=cpuset cgroup_enable=memory" | sudo tee /boot/cmdline.txt</pre>



<p>Nun muss ein Reboot erfolgen, damit die Änderungen aktiviert werden. Danach beginnt die eigentliche Installation von Docker mit der De-Installation veralteter Versionen aus der Raspbian-Distribution. Warnungen an dieser Stelle wegen nicht installierter Pakete sind normal und können ignoriert werden:</p>



<pre class="wp-block-preformatted">sudo apt remove docker docker-engine docker.io containerd runc</pre>



<p>Direkt im Anschluß wird die &#8222;offizielle&#8220; Docker Version über das bereitgestellte &#8222;Convenience Script&#8220; installiert. Laut der Docker Webseite ist dies aktuell die einzige Alternative für Raspbian, auch wenn ich schon andere Wege gesehen habe. Letztendlich fügt das Skript auch nur die geeigneten Paketquellen hinzu und installiert die aktuelle Version des docker-ce Paketes.</p>



<pre class="wp-block-preformatted">curl -fsSL https://get.docker.com -o - | sudo sh</pre>



<p>Schließlich ist noch der eigene Nutzer der &#8222;docker&#8220; Gruppe hinzufügen, damit auf den Einsatz des root-Users weitestgehend verzichtet werden kann:</p>



<pre class="wp-block-preformatted">sudo usermod -aG docker $(id -un)</pre>



<p>Um die neue Gruppenzugehörigkeit zu aktivieren ist ein Ab- und erneutes Anmelden notwendig. Zur Überprüfung kann abschliessend ein Test gefahren werden.</p>



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



<p>Fertig.</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 href="https://docs.docker.com/install/linux/docker-ce/debian/#install-using-the-convenience-script">https://docs.docker.com/install/linux/docker-ce/debian/#install-using-the-convenience-script</a></li><li><a href="https://www.raspbian.org/">https://www.raspbian.org/</a></li></ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2019/06/04/docker-und-raspbian-auf-einem-raspberry-pi/">Docker und Raspbian auf einem Raspberry Pi</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2019/06/04/docker-und-raspbian-auf-einem-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Homegear-Gateway mit CC1101 und Raspberry Pi 3</title>
		<link>https://www.dahlen.org/2019/05/18/homegear-gateway-mit-cc1101-und-raspberry-pi-3/</link>
					<comments>https://www.dahlen.org/2019/05/18/homegear-gateway-mit-cc1101-und-raspberry-pi-3/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Sat, 18 May 2019 08:11:55 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Homegear]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Raspian]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2862</guid>

					<description><![CDATA[<p>In einem verzweifelten Versuch die Verbindungsprobleme mit meiner Homematic-Installation endlich in den Griff zu bekommen, wurde ein weiterer Raspberry Pi 3 angeschafft, um in Verbindung mit einem CC1101-Modul ein zusätzliches Homegear-Gateway zu realisieren. Dieses Mal wurde mitgeschrieben, welche Schritte dafür notwendig sind &#8230; Hardware Beim Thema Heimautomatisierung / Smart Home setze ich vorwiegend auf Bauteile [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2019/05/18/homegear-gateway-mit-cc1101-und-raspberry-pi-3/">Homegear-Gateway mit CC1101 und Raspberry Pi 3</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In einem verzweifelten Versuch die Verbindungsprobleme mit meiner Homematic-Installation endlich in den Griff zu bekommen, wurde ein weiterer Raspberry Pi 3 angeschafft, um in Verbindung mit einem CC1101-Modul ein zusätzliches Homegear-Gateway zu realisieren. Dieses Mal wurde mitgeschrieben, welche Schritte dafür notwendig sind &#8230;</p>



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



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



<p>Beim Thema Heimautomatisierung / Smart Home setze ich vorwiegend auf Bauteile der &#8222;Homematic&#8220; Serie von eq-3 bzw. ELV. Sie fügen sich diskret in den vorhandenen Wohnraum ein, weil sie als Unterputz-Lösung die klassischen Komponenten (wie Schalter und Taster) ersetzen, ohne deren Optik zu stören. Durch die Verwendung eines Funkprotokolls ist außerdem keine zusätzliche Verkabelung notwendig. </p>



<p>Leider wirken sich bautechnische Gegebenheiten  vor Ort (Stahlbeton,  Leitungen und &#8222;rustikale&#8220; Treppenläufe)  negativ auf die Übertragungsqualität aus, so dass die angeforderten Aktionen (Licht an/aus, Jalousie auf/zu) nicht ausgeführt werden. Um diesen Aussetzern zu begegnen, wurden bereits zwei Gateways für Versand und Empfang von Befehlen installiert, ein dritter soll nun die verbleibende Lücke schließen.</p>



<p>Die für die Realisierung des Vorhabens notwendigen <a href="#products">Bauteile</a> sind überschaubar und kosten insgesamt ca. 80 EUR.  Damit liegt die Bastellösung im Preisebereich des <a href="#products">Homematic LAN-Gateways</a>, aber sie ist deutlich flexibler. Die größere Antenne wird außerdem zu einer höheren Sende- und Empfangsleistung führen.  </p>



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



<p>Folgende Teile habe ich beschafft:</p>



<ul class="wp-block-list"><li>ein <a href="#products">Raspberry Pi 3</a> (3B/3B+)</li><li>ein <a href="#products">CC1101 Modul nebst Antenne</a></li><li>ein <a href="#products">USB-Stick</a> oder eine SD-Karte mit mindestens 16GB</li><li>ein <a href="#products">Steckernetzteil</a> mit 5V und mindestens 2,5A</li><li>ein einfaches <a href="#products">Gehäuse</a> aus stabilem Kunststoff</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-teile-1920x1280.jpg" alt="Raspberry Pi 3B+, CC1101 Modul, Antenne, USB und Netzteil" class="wp-image-2860"/><figcaption>Raspberry Pi 3B+, CC1101 Modul, USB Laufwerk, USB Netzteil und 18cm Antenne</figcaption></figure>



<p>Je nach Gehäuse wird der Raspberry zunächst mit der Unterseite des Gehäuses verschraubt oder dort eingesteckt. Die daraus resultierende stabile Lage macht die späteren Arbeiten einfacher. Beim hier verwendeten Gehäuse von <a href="#products">Aukru</a> waren Kühlkörper vorhanden, welche im Vorfeld aufzukleben sind.</p>



<p>Das CC1101 Modul und die Antenne habe ich von <a href="#products">cod.m GmbH</a> bezogen, wie auch bei den anderen Gateways. Der Aufbau ist sauber, die Qualität gut und der Betrieb ist problemlos. Außerdem liegt eine exzellente Dokumentation bei und im <a href="#links">Homegear-Forum</a> ist unkomplizierter Support verfügbar.</p>



<p>Das Modul wird auf die Pins 17/18 &#8211; 25/26 gesteckt. Aus Richtung der USB-Ports müssen 7 Header-Pin-Paare frei bleiben und aus der anderen Richtung 8 Paare. Dabei wird das Modul natürlich mit der Antennenbuchse  in Richtung HDMI-Buchse aufgesteckt.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-detail.jpg"><img loading="lazy" decoding="async" width="1475" height="983" src="https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-detail.jpg" alt="" class="wp-image-2881" srcset="https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-detail.jpg 1475w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-detail-300x200.jpg 300w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-detail-1024x682.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-detail-768x512.jpg 768w" sizes="auto, (max-width: 1475px) 100vw, 1475px" /></a><figcaption>Raspberry Pi mit aufgestecktem CC1101 Modul, Pins 25/26 (links) bis 17/18 (rechts)</figcaption></figure></div>



<p>Anschließend wird im Deckel des Gehäuses mit einem 6er Holzbohrer ein Loch gebohrt. Hier wird die Aufnahme für die Antenne eingesteckt und verschraubt. Die meines Erachtens ideale Position ist in Linie mit den inneren USB-Ports, zwischen CC1101 Modul und dem Chip direkt hinter dem USB-Port. Wichtig ist, dass im geschlossenen Zustand der Antennenadapter nicht gegen Bauteile des Raspberry Pi stößt.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-1024x683.jpg" alt="Raspberry Pi 3 mit CC1101 Modul verbaut" class="wp-image-2861" srcset="https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-1024x683.jpg 1024w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-300x200.jpg 300w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-768x512.jpg 768w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-1536x1024.jpg 1536w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101-1568x1045.jpg 1568w, https://www.dahlen.org/wp-content/uploads/2019/05/rpi-cc1101.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Raspberry Pi 3 mit CC1101 Modul verbaut</figcaption></figure>



<p>Ist der Antennenadapter verschraubt, wird das andere Ende auf den Anschluss des CC1101 Moduls aufgesteckt. Anschließend wird die Stab-Antenne aufgeschraubt. Dann wird das Gehäuse geschlossen, die Hardware-Arbeiten sind damit erledigt.</p>



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



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



<p>Im nächsten Schritt wird die Software eingerichtet, dabei kommt wieder <a href="#links">Raspbian 9 Lite</a> zum Einsatz, auf die Details der Installation gehe ich an dieser Stelle nicht ein und verweise auf den entsprechenden <a href="https://www.dahlen.org/2018/03/raspberry-pi-3-modell-b-fuer-usb-boot-vorbereiten/">Artikel</a> in diesem Blog. Ich verwende bei allen RPi3 übrigens USB-Sticks, weil diese mir im Gegensatz zu mancher SD-Karte noch nie kaputt gegangen sind.  </p>



<p>Der vorbereitete USB-Stick wird in einen Port des Raspberry gesteckt, dieser per LAN mit meinem Netzwerk verbunden und schließlich mit Strom versorgt. Die Anbindung via WLAN wird seitens Homegear wegen der daraus resultierenden Latenzen nicht empfohlen. Wer es dennoch tun möchte &#8211; <a href="https://www.dahlen.org/2017/10/raspberry-pi-zero-w-headless-setup/">hier</a> steht wie WLAN auch &#8222;headless&#8220; eingerichtet werden kann.</p>



<p class="has-very-dark-gray-color has-cyan-bluish-gray-background-color has-text-color has-background"><em>Aus Gründen der Einfachheit wird im Folgenden davon ausgegangen, dass alle Aktionen als &#8222;root&#8220;-User auf den Systemen ausgeführt werden.</em> </p>



<p>Nach dem Start von Raspbian auf dem Pi und dem Zugriff via SSH oder verbundener Tastatur ist über eine Einstellung das &#8222;Serial Peripheral Interface&#8220; (<a href="#links">SPI</a>) zu aktivieren. SPI ist die Schnittstelle, über welches das CC1101 Modul mit dem Raspberry Pi &#8222;Mainboard&#8220; kommuniziert.  </p>



<p>Die Aktivierung erfolgt durch den Parameter <code>dtparam=spi=on</code> in der Datei <em>/boot/config.txt</em>.  Dieser Parameter kann am einfachsten über das Programm <em>raspi-config</em> im Bereich &#8222;Interface Options&#8220; angepasst werden. Mit <em>raspi-config</em> kann bei der Gelegenheit auch der Hostname des Raspberry Pi geändert werden. Ein Neustart des &#8222;Raspi&#8220; ist auf jeden Fall fällig.</p>



<h3 class="wp-block-heading">Homegear Gateway</h3>



<p>Im nächsten Schritt wird die eigentliche <a href="#links">Homegear Gateway</a> Software installiert, dabei greife ich auf die offiziellen Paketquellen zurück und verwende die &#8222;<a href="#links">stable</a>&#8220; Version. Entsprechend der Dokumentation sind folgende Befehle auf dem Raspberry auszuführen:</p>



<pre class="wp-block-preformatted code">$ apt install apt-transport-https
$ curl https://apt.homegear.eu/Release.key | apt-key add -
$ echo 'deb https://apt.homegear.eu/Raspbian/ stretch/' | tee /etc/apt/sources.list.d/homegear.list
$ apt update
$ apt install homegear-gateway </pre>



<p>Durch die obigen Kommandos wird zunächst das Homegear-Repository der Paket-Verwaltung bekannt gemacht. Danach wird der Index aktualisiert und im letzten Schritt schließlich das Paket <em>homegear-gateway</em> mit seinen Abhängigkeiten installiert. </p>



<p>Dieser letzte Schritt nimmt einige Zeit (1-3 Minuten) in Anspruch, weil die Voraussetzungen für die spätere, verschlüsselte Kommunikation mit dem Homegear Master geschaffen werden.</p>



<p>Nun gilt es Homegear Gateway zu konfigurieren, so dass das verbaute CC1101 Modul verwendet und die Kommunikation mit Homegear ermöglicht wird. Die notwendigen Änderungen sind in der Datei <em>/etc/homegear/gateway.conf</em> vorzunehmen, welche in einem Editor (z.B. nano) zu editieren ist. </p>



<p>Basierend auf der Dokumentation zum CC1101 Modul von von cod.m zu ist der Abschnitt <code>HomeMatic TICC1101 example config</code> wie folgt zu  ändern:</p>



<pre class="wp-block-preformatted">#{{{ HomeMatic TICC1101 example config
## The device family the gateway is for.
family = HomeMaticCc1101

## The device to use
device = /dev/spidev0.0

## The interrupt pin to use. "0" for GDO0 or "2" for GDO2.
## You only need to connect one of them. Specify the GPIO
## you connected the interrupt pin to below.
interruptPin = 0

## The GPIO GDO0 or GDO2 is connected to. Specify which GDO to use above.
gpio1 = 25

#}}}</pre>



<p> Außerdem wird für die spätere Integration das automatisch generierte Konfigurationspassword (<code>configurationPassword</code>) benötigt.  Dieses bitte in der Zwischenablage oder an geeigneter Stelle notieren. </p>



<p>Nach dem Speichern der Änderungen und dem Verlassen des Editors wird homegear-gateway noch für den automatischen Start nach einem Boot angemeldet und neu gestartet.  </p>



<pre class="wp-block-preformatted">$ systemctl enable homegear-gateway
$ systemctl restart homegear-gateway</pre>



<p>Damit sind die Vorbereitungen für den Gateway abgeschlossen, mit dem notierten <code>configPassword</code>, der IP-Adresse und dem Hostnamen des Gateway-Rechners geht es nun in Richtung Homegear &#8222;Master&#8220;, um die Verbindung zu initiieren. </p>



<h3 class="wp-block-heading">Homegear Master</h3>



<p>Wie gesagt agieren die Raspberry Pi als Gateways, welche Informationen zwischen den verbundenen Homematic-Geräten und dem Master austauschen. Die Anbindung der Gateways an den Master ist in der Dokumentation von Homegear ausreichend genau beschrieben. Für diesen Artikel ist daher die Kurzfassung ausreichend, wobei davon ausgegangen wird, dass auf dem Master die Pakete homegear, homegear-homematicbidcos und homegear-management nebst Abhängigkeiten installiert und konfiguriert sind.</p>



<p>Zunächst wird via Homegear Management eine sog. <em>Certificate Authority</em> (CA) erzeugt, welche später die Zertifikate für die verschlüsselte Übertragung zwischen Master und Gateway beglaubigt:</p>



<pre class="wp-block-preformatted">homegear -e rc 'print_v($hg-&gt;managementCreateCa());'</pre>



<p>Der Befehl wird asynchron im Hintergrund ausgeführt. Der Fortschritt kann durch wiederholten Aufruf des folgenden Befehls überprüft werden. Er ist abgeschlossen, sobald das Feld <code>exitCode</code> im Ergebnis den Wert 0 hat:</p>



<pre class="wp-block-preformatted">homegear -e rc 'print_v($hg-&gt;managementGetCommandStatus());'</pre>



<p>Sobald die CA angelegt wurde, kann das notwendige Client-Zertifikat für das Gateway erzeugt werden. Dabei ist der Platzhalter &lt;HOSTNAME&gt; durch den Hostnamen des Gateway-Raspberry zu ersetzen:</p>



<pre class="wp-block-preformatted">homegear -e rc 'print_v($hg-&gt;managementCreateCert("&lt;HOSTNAME&gt;"));'</pre>



<p>Auch dieser Befehl wird asynchron im Hintergrund abgearbeitet. Wieder kann der Fortschritt über <em>$hg-&gt;managementGetCommandStatus()</em> (s.o.) überprüft werden. </p>



<p>Ist auch dieser Vorgang abgeschlossen, können alle erzeugten und notwendigen Zertifikate an das Gateway übertragen werden, welches unmittelbar danach seine Arbeit aufnimmt und für eingehende Verbindungen zur Verfügung steht. </p>



<p>Die Platzhalter sind wie folgt zu ersetzen:</p>



<ul class="wp-block-list"><li>&lt;IP&gt; mit der IP des Gateways</li><li>&lt;HOSTNAME&gt; mit dem Hostnamen des Gateways</li><li>&lt;PASSWORD&gt; mit dem oben notierten Wert des Parameters  <br><code>configurationPassword</code> aus der <em>gateway.conf</em> Datei.</li></ul>



<pre class="wp-block-preformatted">homegear -e rc '$hg-&gt;configureGateway("&lt;IP&gt;", 2018, file_get_contents("/etc/homegear/ca/cacert.pem"), file_get_contents("/etc/homegear/ca/certs/&lt;HOSTNAME&gt;.crt"), file_get_contents("/etc/homegear/ca/private/&lt;HOSTNAME&gt;.key"), "&lt;PASSWORD&gt;");'</pre>



<p>Vor einem Neustart von Homegear auf dem Master sind die Details des neuen Gateways noch in die Konfiguration der Homematic/BidCoS-Gerätefamilie einzutragen, welche unter <em>/etc/homegear/families/homematicbidcos.conf</em> abgelegt ist. Wieder sind die Platzhalter entsprechend zu ersetzen:</p>



<pre class="wp-block-preformatted">#######################################
########## Homegear Gateway  ##########
#######################################

## The device family this interface is for
[Homegear Gateway]

## Specify an unique id here to identify this device in Homegear
id = &lt;HOSTNAME&gt;

## When default is set to "true" Homegear will assign this device
## to new peers.
default = false

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb, homegeargateway
deviceType = homegeargateway

## The host name or IP address of the gateway
host = &lt;IP&gt;

## The port of the gateway
port = 2017

## The CA certificate
caFile = /etc/homegear/ca/cacert.pem

## The client certificate
certFile = /etc/homegear/ca/certs/&lt;HOSTNAME&gt;.crt

## The client key file
keyFile = /etc/homegear/ca/private/&lt;HOSTNAME&gt;.key

## Use the ID defined above to verify the common name of the certificate
## Default: false
useIdForHostnameVerification = true

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101, "98" for Homegear Gateway and "60" for HM-CFG-LAN or HM-LGW
responseDelay = 98</pre>



<p>Abschließend muss ein letztes Mal homegear auf dem Master neu gestartet werden und wenn alles korrekt installiert und konfiguriert wurde, sollten nach wenigen Minuten BidCoS Pakete über das neue Gateway empfangen werden. Entsprechende Logmeldungen in /var/log/homegear/homegear.log folgen dabei diesem Muster:</p>



<pre class="wp-block-preformatted">HomeMatic BidCoS packet received (&lt;HOSTNAME&gt;, RSSI: -45 dBm)</pre>



<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://doc.homegear.eu/homegear/installation.html#create-homegear-s-certificate-authority">Certificate Authoritfy für Homegear einrichten</a></li><li>Einen <a id="hg-gw" aria-label=" (öffnet in neuem Tab)" href="https://doc.homegear.eu/homegear-homematicbidcos/configuration.html#homegear-gateway" target="_blank" rel="noreferrer noopener">Homegear-Gateway verbinden</a></li><li><a aria-label="Homegear: Pakete für Rasbpian 9 (Stretch), &quot;stable&quot; (öffnet in neuem Tab)" rel="noreferrer noopener" href="https://homegear.eu/downloads.html?version=0.7&amp;system=raspbian_stretch" target="_blank">Homegear: Pakete für Rasbpian 9 (Stretch), &#8222;stable&#8220;</a></li><li>Homepage von <a href="https://homegear.eu/">Homegear</a></li><li>Support im <a href="https://forum.homegear.eu/">Homegear Forum</a></li><li><a href="https://de.wikipedia.org/wiki/Serial_Peripheral_Interface">Wikipedia: Serial Peripheral Interface</a></li></ul>



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



<ul class="wp-block-list"><li><a id="cc1101" href="https://shop.codm.de/automation/homegear/3/cc1101-raspberry-pi-spi-modul-v0.4">cod.m CC1101 SPI Bundle 18cm/3.0dBi</a></li><li id="rpi3"><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1505371370, {de : 'A-B07BFH96M3'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07BFH96M3?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07BFH96M3&amp;SubscriptionId=">Raspberry Pi 3 Modell B</a></li><li li="charger"><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(702278554, {de : 'A-B01566WOAG'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01566WOAG?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01566WOAG&amp;SubscriptionId=">Aukru Micro-USB Netzteil, 5V 3A</a></li><li id="case"><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1690890092, {de : 'A-B00UCSO6SW'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B00UCSO6SW?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B00UCSO6SW&amp;SubscriptionId=">Aukru Gehäuse für Raspberry Pi 3</a></li><li id="usb"><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1335584586, {de : 'A-B01GK9921C'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01GK9921C?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01GK9921C&amp;SubscriptionId=">SanDisk Ultra Fit 16GB USB 3.0 Stick</a></li><li id="langw"><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(2115010670, {de : 'A-B00H8XIIME'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B00H8XIIME?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B00H8XIIME&amp;SubscriptionId=">Homematic LAN Gateway</a> </li></ul>



<p></p>
<p>Der Beitrag <a href="https://www.dahlen.org/2019/05/18/homegear-gateway-mit-cc1101-und-raspberry-pi-3/">Homegear-Gateway mit CC1101 und Raspberry Pi 3</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2019/05/18/homegear-gateway-mit-cc1101-und-raspberry-pi-3/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<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 loading="lazy" 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="auto, (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 loading="lazy" 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="auto, (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(992128049, {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(1595691056, {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>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(289402612, {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(610543141, {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(578129062, {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(698998392, {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(2029187534, {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(930572811, {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(814973386, {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(907916375, {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>
