<?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>Programmierung &#8211; bubuxblog</title>
	<atom:link href="https://www.bubuxblog.de/category/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bubuxblog.de</link>
	<description></description>
	<lastBuildDate>Sat, 24 Jan 2026 14:06:39 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Gasverbrauch mit ESP8266 messen &#8211; neue Version 1008</title>
		<link>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen-neue-version-1008/</link>
					<comments>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen-neue-version-1008/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sat, 24 Jan 2026 14:06:39 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<guid isPermaLink="false">https://www.bubuxblog.de/?p=2361</guid>

					<description><![CDATA[Die Messung unseres Gasverbrauches per Reedkontakt und NodeMCU mit seinem ESP8266 funktioniert schon seit langen sehr gut und zuverlässig. Eigentlich bestand keine Notwendigkeit daran etwas zu ändern. Kleine Probleme Einzig meine gewohnte Freiluftverdrahtung mit einem Gummi der den Reedkontakt am Zähler festhält (der die Klebeband-Halterung ablöste) wurde regelmäßig porös und der Reedkontakt fiel runter. Meistens [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Die Messung unseres Gasverbrauches per Reedkontakt und NodeMCU mit seinem ESP8266 funktioniert schon seit langen sehr gut und zuverlässig. Eigentlich bestand keine Notwendigkeit daran etwas zu ändern.</p>



<p class="has-medium-font-size">Kleine Probleme</p>



<p>Einzig meine gewohnte Freiluftverdrahtung mit einem Gummi der den Reedkontakt am Zähler festhält (der die Klebeband-Halterung ablöste) wurde regelmäßig porös und der Reedkontakt fiel runter. Meistens merkte ich das erst Tage später. Da ich mir Ende letzten Jahres einen 3D-Drucker angeschafft habe, wollte ich bei diesem Projekt mein erstes ordentliches Gehäuse für meine Sensoren erstellen wo mal nichts irgendwo einfach nur herum baumelt.</p>



<figure class="wp-block-image size-large is-style-default"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-scaled.jpg"><img fetchpriority="high" decoding="async" width="1024" height="768" src="https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-1024x768.jpg" alt="Gehäuse für den Wemos und den Reed" class="wp-image-2362" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Bei Makerworld, Printables &amp; Co gibt es sehr viele fertige Modelle für entsprechende Halterungen. Danke an die kreativen Designer! Manche sind für den NodeMCU inklusive Reedkontakt, manche für einen Wemos D1 inklusive Reedkontakt und manche nur für verschiedene Reedkontakte alleine. Ich habe ein Gehäuse für beides gesucht. Nachdem ich ein passendes Model gefunden und ausgedruckt hatte, ging es an die Montage. Die meisten dieser fertig designten Gehäuse nutzen einen axialen Reedkontakt. Diese haben meistens nur einen simplen Glaskörper. Hier war schon mein erstes Problem das diese Glasreeds echt empfindlich sind wenn man mal an den Beinchen biegt. Ich bin wahrscheinlich zu grobmotorisch aber sie sind ja billig&#8230;</p>



<p>Das größere Problem war aber, dass diese Reedkontakte nicht oder <strong>unzuverlässig</strong> anziehen wenn der Magnet des Zählers vorbei kommt da dieser recht schwach ist (Stichwort Anzugsempfindlichkeit). Auch hundertmaliges Ausrichten in der Öffnung des Zählers, Ausrichten des Reedkontaktes parallel zum Magneten, testen verschiedene andere Reedkontakte (aus zylinderförmig eingegossene Exemplare) etc. war nicht zielführend und raubte mir den letzten Nerv weil alles ja schon mal gut funktionierte. <strong>Nur mein alter Meder MK471 funktionierte zuverlässig</strong>. </p>



<figure class="wp-block-image size-full"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01.png"><img decoding="async" width="377" height="218" src="https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01.png" alt="Meder MK471" class="wp-image-2364" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01.png 377w, https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01-300x173.png 300w" sizes="(max-width: 377px) 100vw, 377px" /></a></figure>



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



<p class="has-medium-font-size">Das neue Gehäuse</p>



<p>Der MK471 passt aber in fast alle fertigen Gehäusedesigns <strong>nicht</strong> rein. Und die wenigen Gehäuse die den MK471 beherbergen können, passten nicht an meinen Gaszähler. Also hab ich mir ein schönes Gehäuse für den Wemos D1 Mini als Basis gesucht und mit FreeCad (ich komme mit dem 3D-Drucker eh nicht drumherum das zu lernen) entsprechende Anpassungen gemacht damit anstatt einem axialen Reedkontakt der MK471 rein passt. Das war nicht wirklich schwer und sehr viel Mühe hab ich auch nicht rein gesteckt. Die STL-Datei muss in Freecad einen Festkörper gewandelt werden und danach einfach die Aufnahme für den axialen Reedkontakt mittels &#8222;Pocket&#8220; mit einem passenden Rechteck aus dem Sketch &#8222;durchbohrt&#8220;. Da klemmt sich der MK471 jetzt ohne Probleme fest.</p>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad.png"><img decoding="async" width="1024" height="645" src="https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-1024x645.png" alt="Resultat des Gehäuse in Freecad" class="wp-image-2363" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-1024x645.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-300x189.png 300w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-768x484.png 768w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-1536x968.png 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad.png 1562w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="has-medium-font-size">Neue Softwareversion</p>



<p>Neben dem Gehäuse hab ich dann doch noch ein bisschen den Quellcode erneuert. Ich musste ja noch die LED die im Gehäuse vorgesehen ist einprogrammieren. Bisher blinke nur die interne LED des Mikrocontrollers. Aber die sieht man ja im Gehäuse nicht mehr. Dazu gab es noch ein paar andere kleine Korrekturen und Verbesserungen. <strong>Die LED muss mit Vorwiderstand an D3, der Reedkontakt bleibt wie gehabt an D4 wo jetzt per Software auch der interne Pullup aktiviert wird.</strong> Einen Plan für die Verdrahtung hab ich dafür hier nicht gemacht.</p>



<p>Aber <strong>wirklich schlecht</strong> <strong>implementiert</strong> hatte ich das Senden der Impulse an den MQTT-Server. Hier hatte ich bei jedem Impuls eine neue Verbindung zum Server geöffnet und dann das Publish gesendet. Das dauerte gefühlt immer ewig und war auch der Grund warum in der Vergangenheit der ein oder andere Impuls in Richtung MQTT verschluckt wurde.</p>



<p>Der neue Ansatz baut nun einmal bei Start die Verbindung zum MQTT auf, prüft im Loop ob diese Verbindung noch besteht und macht ggf. ein Reconnect. Bei einem Impuls durch den Reedkontakt wird dann nur noch der Impuls per Publish an den MQTT-Server gesendet. Viel besser <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Den aktuellen Quellcode für die Version 1008 inkl. vorkompiliertem Binary gibt es wie immer auf Github:</p>



<p><a href="https://github.com/diefenbecker/opengasmeter">https://github.com/diefenbecker/opengasmeter</a></p>



<p>Viel Spaß damit<br>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen-neue-version-1008/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Version 1030 der Zisternenmessung jetzt auf github</title>
		<link>https://www.bubuxblog.de/version-1030-der-zisternenmessung-jetzt-auf-github/</link>
					<comments>https://www.bubuxblog.de/version-1030-der-zisternenmessung-jetzt-auf-github/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Thu, 16 Jun 2022 10:06:53 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Cistern]]></category>
		<category><![CDATA[Github]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2045</guid>

					<description><![CDATA[Ich bin endlich mal dazu gekommen und habe die ganzen Sourcen für die Zisternmessung mit dem ESP8266 mit einer ordentlichen readme auf github gestellt. Die Version 1030 ist dort auch als Release bereits für den NodeMCU und Wemos D1 vorkompiliert verfügbar. Hier findet ihr das Github-Repository: https://github.com/diefenbecker/zisternenmessung Aber auch bei den Funktionen gibt es Neuigkeiten. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Ich bin endlich mal dazu gekommen und habe die ganzen Sourcen für die Zisternmessung mit dem ESP8266 mit einer ordentlichen readme auf github gestellt. Die Version 1030 ist dort auch als Release bereits für den NodeMCU und Wemos D1 vorkompiliert verfügbar.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527.png"><img loading="lazy" decoding="async" width="1024" height="353" src="http://blog.bubux.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527-1024x353.png" alt="" class="wp-image-2047" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527-1024x353.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527-300x103.png 300w, https://www.bubuxblog.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527-768x265.png 768w, https://www.bubuxblog.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527-1536x529.png 1536w, https://www.bubuxblog.de/wp-content/uploads/2022/06/GitHub-Simbolo-e1655373363527-2048x705.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Hier findet ihr das Github-Repository: <a href="https://github.com/diefenbecker/zisternenmessung" target="_blank" rel="noreferrer noopener">https://github.com/diefenbecker/zisternenmessung</a></p>



<p>Aber auch bei den Funktionen gibt es Neuigkeiten. Die Version 1030 unterstützt jetzt einen schaltbaren Ausgang an D4 mit dem z.B. eine Pumpe über eine Relais-Platine angesteuert werden kann. Gesteuert wird das über zwei prozentuale Werte die in der Konfigurationsseite zu finden sind.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/06/relais.png"><img loading="lazy" decoding="async" width="463" height="107" src="http://blog.bubux.de/wp-content/uploads/2022/06/relais.png" alt="" class="wp-image-2048" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/06/relais.png 463w, https://www.bubuxblog.de/wp-content/uploads/2022/06/relais-300x69.png 300w" sizes="auto, (max-width: 463px) 100vw, 463px" /></a></figure>



<p>Hier die bin-Datei zum direkten Download:</p>



<p><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin" target="_blank" rel="noreferrer noopener">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></p>



<p>Viel Spaß damit! Das kommende Wochende verspricht wettertechnisch ja den Einsatz der Zisterne&#8230;</p>



<p>Gruß</p>



<p>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/version-1030-der-zisternenmessung-jetzt-auf-github/feed/</wfw:commentRss>
			<slash:comments>64</slash:comments>
		
		
			</item>
		<item>
		<title>Zisternenfüllstandsmessung mit Time Of Flight-Sensor</title>
		<link>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/</link>
					<comments>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sat, 17 Apr 2021 07:50:44 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Füllstandssensor]]></category>
		<category><![CDATA[Time of Flight]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1993</guid>

					<description><![CDATA[Mit Version 1028 der Software zur Messung des Zisternenfüllstandes, kommt neben dem HC-SR04 Ultraschallsensor noch ein zweiter alternativer zu nutzender Sensor dazu. Diesmal ein Time Of Flight (ToF) Laser-Entfernungsmesser vom Typ VL53L0XV2. Die erste Version der Software ist allerdings noch Beta und ich würde mich auf Rückmeldungen zu dem neuen Sensor freuen! In der Webseite [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mit Version 1028 der Software zur Messung des Zisternenfüllstandes, kommt neben dem HC-SR04 Ultraschallsensor noch ein zweiter alternativer zu nutzender Sensor dazu. Diesmal ein Time Of Flight (ToF) Laser-Entfernungsmesser vom Typ VL53L0XV2. Die erste Version der Software ist allerdings noch Beta und ich würde mich auf Rückmeldungen zu dem neuen Sensor freuen!</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/04/20210410_184256-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2021/04/20210410_184256-1024x576.jpg" alt="" class="wp-image-1994" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>In der Webseite der Software kann in den Einstellungen zwischen den beiden Sensoren gewählt werden. Neu ist zudem noch der frei wählbare Name für den Sensor welcher auf der Sensor-Webseite oben links angezeigt wird. Hiermit kann man nun beim Einsatz mehrerer Sensoren in verschiedenen Zisternen unterscheiden oder auch einen Öltank-Füllstandssensor korrekt benennen.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/04/screenshot_sensorart.png"><img loading="lazy" decoding="async" width="782" height="105" src="http://blog.bubux.de/wp-content/uploads/2021/04/screenshot_sensorart.png" alt="" class="wp-image-1995" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/04/screenshot_sensorart.png 782w, https://www.bubuxblog.de/wp-content/uploads/2021/04/screenshot_sensorart-300x40.png 300w, https://www.bubuxblog.de/wp-content/uploads/2021/04/screenshot_sensorart-768x103.png 768w" sizes="auto, (max-width: 782px) 100vw, 782px" /></a></figure>



<p>Der ToF-Sensor besitzt eine I2C-Schnittstelle und wird an die gleichen PINs wie der Ultraschallsensor angeschlossen. <span class="has-inline-color has-luminous-vivid-orange-color">Es geht aber nicht mit beiden Sensoren parallel, sondern nur der eine oder der andere!</span></p>



<p>Der ToF-Sensor wird wie folgt angeschlossen:</p>



<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>D1</td><td>SCL</td></tr><tr><td>D2</td><td>SDA</td></tr><tr><td>3,3-5V</td><td>VCC</td></tr><tr><td>Masse</td><td>GND</td></tr></tbody></table></figure>



<p>Die beiden übrigen Anschlüsse bleiben frei.</p>



<p><strong>Hier gibt es die neue Version zum Download:</strong><br><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_1028.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_1028.bin</a></p>



<p>Hier findet ihr die vorherigen Artikel zur <a href="http://blog.bubux.de/tag/zisterne/" data-type="post_tag" data-id="119">Zisterne</a> mit den grundlegenden Anleitungen und Anschlussschema.<br></p>



<p></p>



<p>Gruß<br>Chris<br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/feed/</wfw:commentRss>
			<slash:comments>39</slash:comments>
		
		
			</item>
		<item>
		<title>Update Füllstandsanzeige Zisterne v1026</title>
		<link>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1026/</link>
					<comments>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1026/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sat, 06 Mar 2021 10:05:59 +0000</pubDate>
				<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Abstandsmessung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Zisterne]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1964</guid>

					<description><![CDATA[Nachdem ich das letzte Update (v1024) bzgl. der PINs etwas verbaselt hatte, hier nun ein neues Update für die Füllstandsanzeige der Zisterne. Zudem gibt es auf mehrfachen (berechtigten) Wunsch auch nochmal ein komplettes Schaubild für die Verdrahtung aller bisher genutzten Komponenten. Hier gibt es die aktuelle Version zum Download:http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin Zur Installation etc. bitte wieder in [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Nachdem ich das letzte Update (v1024) bzgl. der PINs etwas verbaselt hatte, hier nun ein neues Update für die Füllstandsanzeige der Zisterne. Zudem gibt es auf mehrfachen (berechtigten) Wunsch auch nochmal ein komplettes Schaubild für die Verdrahtung aller bisher genutzten Komponenten.</p>



<p></p>



<p><strong><span class="has-inline-color has-luminous-vivid-orange-color">Hier gibt es die aktuelle Version zum Download:</span></strong><br><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></p>



<p><span class="has-inline-color has-vivid-cyan-blue-color">Zur Installation etc. bitte wieder in die älteren Artikeln schauen!</span></p>



<p>Das Update enthält unter anderem:</p>



<ul class="wp-block-list"><li>DHT22-Temperatur-Sensor an D5 (statt des bereits durch das Display genutzten D6)</li><li>Darstellung der Werte auf der Webseite nicht mehr als TABLE sondern als DIV-Boxen damit es auf kleinen Displays auch besser passt</li><li>Bei Erstinstallation und Einrichtung des WLAN per Access Point wird nur die Konfiguration der WLAN-Daten angezeigt was hoffeltnlich das Problem mit dem &#8222;fehlenden&#8220; Speicher-Button beseitigt. Hier wäre ich über Erfahrungen dankbar!</li><li>TITLE-Tag eingebaut</li><li>ein paar Kleinigkeiten&#8230;</li></ul>



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



<p>Hier das Schaubild der aktuellen Verdrahtung. Bei Ultraschallsensor, Display und Schalter bleibt alles wie gehabt. Der DHT22 kommt nun an D5 damit dieser mit dem Display parallel betrieben werden kann.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/zisterne_verdrahtung.png"><img loading="lazy" decoding="async" width="1024" height="673" src="http://blog.bubux.de/wp-content/uploads/2021/03/zisterne_verdrahtung-1024x673.png" alt="" class="wp-image-1965" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/zisterne_verdrahtung-1024x673.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/03/zisterne_verdrahtung-300x197.png 300w, https://www.bubuxblog.de/wp-content/uploads/2021/03/zisterne_verdrahtung-768x504.png 768w, https://www.bubuxblog.de/wp-content/uploads/2021/03/zisterne_verdrahtung-1536x1009.png 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/03/zisterne_verdrahtung.png 1827w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die Weboberfläche ist durch die Verwendung der DIVs anstatt TABLE nun auch auf kleinen Display (z.B. Handy) besser dargestellt und die Boxen passen sich der Breite des Bildschirms an.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/screenshot_zisterne_mobil.png"><img loading="lazy" decoding="async" width="374" height="691" src="http://blog.bubux.de/wp-content/uploads/2021/03/screenshot_zisterne_mobil.png" alt="" class="wp-image-1966" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/screenshot_zisterne_mobil.png 374w, https://www.bubuxblog.de/wp-content/uploads/2021/03/screenshot_zisterne_mobil-162x300.png 162w" sizes="auto, (max-width: 374px) 100vw, 374px" /></a></figure>



<p>Dann möchte ich nochmal allen Danken die etwas gespenden haben. Das Geld ging wie immer an <a rel="noreferrer noopener" href="https://www.baerenherz.de/de/" target="_blank">Bärenherz </a>in Wiesbaden.<br>Viel Spaß mit der neuen Version. Der Frühling ist ja schon im Anmarsch und die Zisterne muss für das sommerliche Bewässern startklar werden!</p>



<p>Gruß<br>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1026/feed/</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>Update Füllstandsanzeige Zisterne v1024</title>
		<link>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1024/</link>
					<comments>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1024/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Thu, 31 Dec 2020 12:55:33 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Füllstandssensor]]></category>
		<category><![CDATA[Zisterne]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1937</guid>

					<description><![CDATA[Kurz vor Ende des alten Jahres nochmal ein Update für die Software zum Auslesen des Zisternenfüllstandes mittels ESP8266. Die Neuerungen in dieser Version sind folgende: Eine weitere Zisternenbauform (liegender Zylinder) Temperatur- und Luftfeuchterfassung mittels DHT22 Literanzahl, Temperatur und Luftfeuchte mit in die MQTT-Topics aufgenommen Falls ein Temperatursensor angeschlossen und aktiviert ist, werden dessen Messwerte auf [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Kurz vor Ende des alten Jahres nochmal ein Update für die Software zum Auslesen des Zisternenfüllstandes mittels ESP8266. Die Neuerungen in dieser Version sind folgende:</p>



<ul class="wp-block-list"><li><span class="has-inline-color has-luminous-vivid-orange-color">Eine weitere Zisternenbauform (liegender Zylinder)</span></li><li><span class="has-inline-color has-luminous-vivid-orange-color">Temperatur- und Luftfeuchterfassung mittels DHT22</span></li><li><span class="has-inline-color has-luminous-vivid-orange-color">Literanzahl, Temperatur und Luftfeuchte mit in die MQTT-Topics aufgenommen</span></li></ul>



<p>Falls ein Temperatursensor angeschlossen und aktiviert ist, werden dessen Messwerte auf der Startseite angezeigt. Die Anzeige der Temperaturdaten wird alle 60 Sekunden abgefragt und zeigt daher im ersten Moment nach Neustart keine Werte an.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/startseite_1024.png"><img loading="lazy" decoding="async" width="801" height="626" src="http://blog.bubux.de/wp-content/uploads/2020/12/startseite_1024.png" alt="" class="wp-image-1938" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/startseite_1024.png 801w, https://www.bubuxblog.de/wp-content/uploads/2020/12/startseite_1024-300x234.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/startseite_1024-768x600.png 768w" sizes="auto, (max-width: 801px) 100vw, 801px" /></a></figure>



<p>Aktuell kann als Temperatursensor ein DHT22 genutzt werden (weitere Sensoren sind in Arbeit). Aktiviert wird der Sensor in der Konfiguration.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/temp_1024.png"><img loading="lazy" decoding="async" width="1024" height="85" src="http://blog.bubux.de/wp-content/uploads/2020/12/temp_1024-1024x85.png" alt="" class="wp-image-1939" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024-1024x85.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024-300x25.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024-768x64.png 768w, https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die neuen MQTT-Topics können ebenfalls in der Konfiguration hinterlegt werden.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/mqtt_1024.png"><img loading="lazy" decoding="async" width="962" height="314" src="http://blog.bubux.de/wp-content/uploads/2020/12/mqtt_1024.png" alt="" class="wp-image-1940" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/mqtt_1024.png 962w, https://www.bubuxblog.de/wp-content/uploads/2020/12/mqtt_1024-300x98.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/mqtt_1024-768x251.png 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></a></figure>



<p>Die neue Zisternenbauform ist auch in der Konfiguration zu finden. Die Berechnung funktioniert bei einer runden liegenden Zisterne. Eine ovale Form wird aktuell nicht unterstützt.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/sensordaten_1024.png"><img loading="lazy" decoding="async" width="1024" height="252" src="http://blog.bubux.de/wp-content/uploads/2020/12/sensordaten_1024-1024x252.png" alt="" class="wp-image-1941" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024-1024x252.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024-300x74.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024-768x189.png 768w, https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024.png 1126w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><span class="has-inline-color has-vivid-red-color"><strong>Hier gibt es die aktuelle Version zum Download:</strong><br><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></span></p>



<p>Für den genauen Aufbau (Anschluss Sensor, Anschluss Diplay etc.) bitte die <a href="http://blog.bubux.de/neue-version-der-fuellstandsanzeige-zisterne/" data-type="post" data-id="1868" target="_blank" rel="noreferrer noopener">vorherigen Artikel</a> beachten.</p>



<p>Dann euch noch einen guten Rutsch ins neue Jahr!</p>



<p>Gruß</p>



<p>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1024/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Netzwerkweit Werbung blockieren mit Pi-hole</title>
		<link>https://www.bubuxblog.de/werbung-blockieren-mit-pi-hole/</link>
					<comments>https://www.bubuxblog.de/werbung-blockieren-mit-pi-hole/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 06 Oct 2019 12:37:52 +0000</pubDate>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Odroid]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Adblocker]]></category>
		<category><![CDATA[Pi-hole]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[RaspberryPI]]></category>
		<category><![CDATA[Werbung]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1199</guid>

					<description><![CDATA[Habt ihr genug von flackernden Werbebannern die mehr Raum einnehmen als der eigentliche Seiteninhalt oder gefühlte 100 Ad-Server die beim Öffnen einer einzigen Webseite kontaktiert werden? Adblock &#38; Co. sind eine gute Sache, allerdings auf den Webbrowser beschränkt auf dem das Plugin installiert ist. Android oder iOS waren da meistens außen vor. Auf der Suche [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_logo.png"><img loading="lazy" decoding="async" class="size-full wp-image-1222 alignleft" src="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_logo.png" alt="pihole_logo" width="240" height="240" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_logo.png 240w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_logo-150x150.png 150w" sizes="auto, (max-width: 240px) 100vw, 240px" /></a>Habt ihr genug von flackernden Werbebannern die mehr Raum einnehmen als der eigentliche Seiteninhalt oder gefühlte 100 Ad-Server die beim Öffnen einer einzigen Webseite kontaktiert werden? Adblock &amp; Co. sind eine gute Sache, allerdings auf den Webbrowser beschränkt auf dem das Plugin installiert ist. Android oder iOS waren da meistens außen vor. Auf der Suche nach einem weiteren Beschäftigungsfeld für meinen Raspberry Pi bin ich auf ein nettes Projekt gestoßen!</p>
<p><span style="color: #ff6600;"><strong>Das ist ein Update des ursprünglichen Artikels da sich ein paar wichtige Dinge geändert haben und ich auch einen DNS-Loop eingebaut hatte&#8230;<br />
</strong></span></p>
<h1>Installation</h1>
<p>Mit einer Zeile ist er auf dem Raspberry Pi installiert: der <a href="https://pi-hole.net/" target="_blank" rel="noopener noreferrer">Werbeblocker Pi-hole</a></p>
<h1><span style="color: #0000ff;">curl -L https://install.pi-hole.net | bash</span><span id="more-1199"></span></h1>
<p><!--more-->Während der Installation wird die Konfiguration von Pi-hole durch eine grafische Oberfläche erleichtert. Die meisten Voreinstellungen kann man ohne Änderung abnicken.</p>
<p>Nach erfolgreicher Installation ist die Weboberfläche des Pi-hole unter der Adresse <em>http://&lt;servername&gt;:&lt;port&gt;/admin</em> zu erreichen.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2016/05/pihole1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1207" src="http://blog.bubux.de/wp-content/uploads/2016/05/pihole1.png" alt="" width="820" height="577" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/05/pihole1.png 820w, https://www.bubuxblog.de/wp-content/uploads/2016/05/pihole1-300x211.png 300w, https://www.bubuxblog.de/wp-content/uploads/2016/05/pihole1-768x540.png 768w" sizes="auto, (max-width: 820px) 100vw, 820px" /></a></p>
<h1>&nbsp;</h1>
<h1>Wichtige Einstellungen</h1>
<p>Unter anderem ist als DNS-Server der von Google voreingestellt. Diese Einstellung kann nach Abschluss der Installation nachträglich in der Pi-hole-Oberfläche angepasst werden. Dazu dort einloggen und unter <em>Settings -&gt; DNS</em> einen anderen voreingestellten DNS auswählen oder auf der rechten Seite einen frei wählbaren DNS-Server eintragen. Natürlich kann die Einstellung auch auf dem Google-DNS belassen werden.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_DNS_server.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1823" src="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_DNS_server-1024x685.png" alt="" width="768" height="514" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_DNS_server-1024x685.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_DNS_server-300x201.png 300w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_DNS_server-768x514.png 768w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_DNS_server.png 1992w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Neben der Weboberfläche können die Einstellungen auch über die Konsole in der Konfigurationsdatei mit</p>
<pre class="">sudo vim /etc/dnsmasq.d/01-pihole.conf</pre>
<p>angepasst werden.</p>
<h1>&nbsp;</h1>
<h1>Pi-hole als DNS im eigenen Netzwerk nutzen</h1>
<p>Damit nun der Pi-hole auch netzwerkweit als DNS genutzt wird, muss z.B. in der FritzBox unter &#8222;<em>Internet-&gt; Zugangsdaten</em>&#8220; im Reiter &#8222;<em>DNS-Server</em>&#8220; noch die IP des Pi-hole-Rechners als lokaler DNS-Server eintragen werden. Hier im Bild für IPv4 und IPv6 dargestellt. Die IPv6-Adresse des Pi-hole findet ihr u.a. auf der Weboberfläche unter <em>Settings</em> im Reiter <em>&#8222;System</em>&#8222;.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2019/10/fritzbox_dns.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1826" src="http://blog.bubux.de/wp-content/uploads/2019/10/fritzbox_dns-1024x499.png" alt="" width="768" height="374" srcset="https://www.bubuxblog.de/wp-content/uploads/2019/10/fritzbox_dns-1024x499.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2019/10/fritzbox_dns-300x146.png 300w, https://www.bubuxblog.de/wp-content/uploads/2019/10/fritzbox_dns-768x375.png 768w, https://www.bubuxblog.de/wp-content/uploads/2019/10/fritzbox_dns.png 1105w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<h1>&nbsp;</h1>
<h1>Lokale Namensauflösung</h1>
<p>Die meisten werden Pi-hole nicht als DHCP-Server nutzen, sondern DHCP dem DSL-Router überlassen. Damit der Pi-hole auch die Namensauflösung im lokalen Netzwerk kennt, muss der lokale Router unter <em>Settings-&gt;DNS</em> im Breich &#8222;<em>Conditional Forwarding</em>&#8220; eingetragen werden. Im Bild ist die entsprechende Konfiguration für eine FritzBox zu sehen. Nun sollte auch die Namensauflösung im lokalen Netzwerk wieder funktionieren.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_conditiional_forwarding.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1822" src="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_conditiional_forwarding-1024x292.png" alt="" width="768" height="219" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_conditiional_forwarding-1024x292.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_conditiional_forwarding-300x85.png 300w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_conditiional_forwarding-768x219.png 768w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_conditiional_forwarding.png 1930w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<h1>&nbsp;</h1>
<h1>Geschafft!</h1>
<p>Soviel zur Installation und Konfiguration von Pi-hole! Es kann ein paar Minuten dauern bis die Hostnamen im lokalen Netz wieder aufgelöst werden. Ab nun laufen die DNS-Anfragen aller im Heimnetz eingebundenen Geräte (LAN oder WLAN) über den Pi-hole und alles ist werbefrei!</p>
<h1>&nbsp;</h1>
<h1>Portkonflikt</h1>
<p>Die Weboberfläche von Pi-hole erreicht man standardmäßig über den HTTP-Port 80. Da bei mir auf dem Raspberry aber parallel noch ein Apache werkelt, konnt der lighttpd nicht auf Port 80 gestartet werden. Eine entsprechende Fehlermeldung kam am Ende der Installation. Daher musste ich den Port des lighttpd noch ändern. Dazu die Konfiguration des lighttpd mit</p>
<pre class="">sudo vim /etc/lighttpd/lighttpd.conf</pre>
<p>editieren (nach &#8222;80&#8220; suchen und den Wert hinter <em>server.port</em> auf den gewünschten Port stellen). Anschliessend den lighttpd-Service mit folgendem Befehl neu starten:</p>
<pre class="">sudo service lighttpd restart</pre>
<p>Leider muss diese Änderung aktuell nach jedem Update gemacht werden da die Konfiguration standardmäßig wieder den Port 80 nutzt.</p>
<h1>&nbsp;</h1>
<h1>Daten per JSON abfragen</h1>
<p>Verschiedene der in der Adminoberfläche angezeigten Information können auch sehr einfach über eine JSON-Schnittstelle abgefragt werden. Die Adresse ist http://&lt;servername&gt;:&lt;port&gt;/admin/api.php. Hier ein kurzes Beispiel um diese Abfrage in PHP zu realsieren und ein Screenshot der Implementierung in meiner Hausübersicht (links unten).</p>
<p>&nbsp;</p>
<pre class="">$json = file_get_contents('http://&lt;servername&gt;:&lt;port&gt;/admin/api.php');
$data = json_decode($json);
print "Domains blockiert: ".$data-&gt;{'domains_being_blocked'};
print "DNS-Abfragen: ".$data-&gt;{'dns_queries_today'};
print "Blockierte Werbung: ".$data-&gt;{'ads_blocked_today'};
print "Prozentuale Werbung: ".$data-&gt;{'ads_percentage_today'};</pre>
<p><a href="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_heimnetz.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1230" src="http://blog.bubux.de/wp-content/uploads/2016/08/pihole_heimnetz-1024x635.png" alt="pihole_heimnetz" width="768" height="476" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_heimnetz-1024x635.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_heimnetz-300x186.png 300w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_heimnetz-768x476.png 768w, https://www.bubuxblog.de/wp-content/uploads/2016/08/pihole_heimnetz.png 1053w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<h1>&nbsp;</h1>
<h1>Konsole anstatt Weboberfläche</h1>
<p>Neben der Weboberfläche kann man auch auf der Konsole mittels <em>pihole [option]</em> verschiedene Funktionen aufrufen.</p>
<p>So kann zum Beispiel die Liste der Werbe-Domains aktualisiert werden:</p>
<pre class="">pihole -g</pre>
<p>Update des Pi-hole:</p>
<pre class="">pihole -up</pre>
<p class="">Zeigt alle möglichen Optionen:</p>
<pre class="">pihole -h</pre>
<p>&nbsp;</p>
<p>So, und nun viel Spaß mit einem größtenteil werbefreien Internet!</p>
<p>&nbsp;</p>
<p>Gruß</p>
<p>Chris</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/werbung-blockieren-mit-pi-hole/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Füllstandsmessung der Zisterne mittels ESP8266 &#8211; UPDATE</title>
		<link>https://www.bubuxblog.de/fuellstandsmessung-der-zisterne-mittels-eps8266-update/</link>
					<comments>https://www.bubuxblog.de/fuellstandsmessung-der-zisterne-mittels-eps8266-update/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 15 Sep 2019 10:04:44 +0000</pubDate>
				<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Abstandsmessung]]></category>
		<category><![CDATA[Füllstandsanzeige]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Zisterne]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1806</guid>

					<description><![CDATA[Update vom 14.06.2020 hier Heute ein kleines Update für die Füllstandsmessung der Zisterne mittels Ultraschall und dem ESP8266. In der neuen Version v1016 gibt es jetzt eine Abfragemöglichkeit der gemessenen Werte mittels JSON. Dazu einfach /json hinter die Web-Adresse eures ESP hängen (z.B. http://zisterne/json). Folgende Werte werden aktuell übermittelt: Hier der Link zum aktuellen BIN: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><span class="has-inline-color has-luminous-vivid-orange-color">Update vom 14.06.2020 <a href="http://blog.bubux.de/neue-version-der-fuellstandsanzeige-zisterne/">hier</a></span></p>



<p>Heute ein kleines Update für die Füllstandsmessung der Zisterne mittels Ultraschall und dem ESP8266.</p>



<p>In der neuen Version v1016 gibt es jetzt eine Abfragemöglichkeit der gemessenen Werte mittels JSON.</p>



<p>Dazu einfach <em>/json</em> hinter die Web-Adresse eures ESP hängen (z.B.<a href="http://zisterne/json"> </a><em>http://zisterne/json</em>). Folgende Werte werden aktuell übermittelt:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="431" height="147" src="http://blog.bubux.de/wp-content/uploads/2019/09/grafik.png" alt="" class="wp-image-1807" srcset="https://www.bubuxblog.de/wp-content/uploads/2019/09/grafik.png 431w, https://www.bubuxblog.de/wp-content/uploads/2019/09/grafik-300x102.png 300w" sizes="auto, (max-width: 431px) 100vw, 431px" /></figure>



<p><p>Hier der Link zum aktuellen BIN: <a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a>. Im <a rel="noreferrer noopener" aria-label="vorherigen Artikel (öffnet in neuem Tab)" href="http://blog.bubux.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/" target="_blank">vorherigen Artikel</a> werden die restlichen Funktionalitäten und das Flashen auf den ESP erklärt.  </p>Auf der Todo-Liste steht jetzt noch MQTT und eine Implementierung zur (groben) Berechnung der Regenmenge pro Zeiteinheit.</p>



<p>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/fuellstandsmessung-der-zisterne-mittels-eps8266-update/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Webseite zur Darstellung der Sensordaten</title>
		<link>https://www.bubuxblog.de/webseite-zur-darstellung-der-sensordaten/</link>
					<comments>https://www.bubuxblog.de/webseite-zur-darstellung-der-sensordaten/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Mon, 09 Apr 2018 18:08:04 +0000</pubDate>
				<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Odroid]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Gaszähler]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sensordaten anzeigen]]></category>
		<category><![CDATA[Webseite]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1526</guid>

					<description><![CDATA[Da ich in der letzten Zeit sehr oft bezüglich der Erstellung einer Webseite zur Darstellung der Sensordaten (Heizung, Strom, Wasser, Gas, &#8230;) angesprochen wurde, habe ich mich entschlossen eine abgespeckte Variante meiner internen Webseite zu veröffentlichen. Die Webseite nutzt eine ältere Version der Metro UI-Oberfläche als &#8222;Framework&#8220; zur Darstellung der HTML-Seiten, sowie pChart zum Zeichnen [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Da ich in der letzten Zeit sehr oft bezüglich der Erstellung einer Webseite zur Darstellung der Sensordaten (Heizung, Strom, Wasser, Gas, &#8230;) angesprochen wurde, habe ich mich entschlossen eine abgespeckte Variante meiner internen Webseite zu veröffentlichen. Die Webseite nutzt eine ältere Version der <a href="https://metroui.org.ua/" target="_blank" rel="noopener">Metro UI-Oberfläche</a> als &#8222;Framework&#8220; zur Darstellung der HTML-Seiten, sowie <a href="http://www.pchart.net/" target="_blank" rel="noopener">pChart</a> zum Zeichnen der Graphen in den Detailansichten.</p>
<p>Meine Implementierung ist schon etwas älter und auch mit der Zeit gewachsen. Da es sich bei dieser Webseite um ein recht überschaubares Projekt handelt und ich mit dem Ergebnis zufrieden bin, habe ich mir nie die Mühe gemacht die Seite generischer zu gestalten. Daher muss bei nötigen Anpassungen der Code direkt geändert werden und es gibt auch keine Trennung von HTML und PHP, keine durchgehende allumfassende Fehlerbehandlung, evtl. &#8222;unschönes&#8220; HTML usw.</p>
<p>Der Code soll als <strong>Anregung und Grundlage</strong> für eine eigene Seite dienen&#8230;nicht mehr, nicht weniger. Wem´s ausreicht kann es natürlich auch 1:1 übernehmen. Positiv an meiner Lösung finde ich immer noch die Flexibilität in den Auswertungen die direkt auf der Datenbank mittels SQL ausgeführt werden können.</p>
<h3>Die Startseite</h3>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/04/index.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1537 size-large" src="http://blog.bubux.de/wp-content/uploads/2018/04/index-1024x538.png" alt="Übersicht Webseite Sensordaten" width="768" height="404" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/04/index-1024x538.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/04/index-300x158.png 300w, https://www.bubuxblog.de/wp-content/uploads/2018/04/index-768x404.png 768w, https://www.bubuxblog.de/wp-content/uploads/2018/04/index.png 1397w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Die Startseite wird mittels &#8222;Meta-Refresh&#8220; alle 180 Sekunden neu geladen und dient der Übersicht der wichtigsten Sensordaten. Mit Klick auf die (verlinkten) Boxen gelangt man jeweils zu einer detaillierteren Übersicht der Sensordaten. In der Übersicht werden keine komplizierten Datenbankauswertungen gemacht. Hier werden die Snapshot-Tabellen mit den aktuellen Werten ausgelesen und einige SQL-Aggregat-Funktionen genutzt. Das ging auch auf einem alten Raspi einigermaßen schnell. Das hängt natürlich von den Tabellengrößen in den Datenbanken ab. Da bei mir einige Tabellen mit den Jahren relativ groß geworden sind (~500k Zeilen), bin ich irgendwann auf einen <a href="http://blog.bubux.de/odroid-c2-vs-raspberry-pi-2/">Odroid</a> umgestiegen.</p>
<p><span id="more-1526"></span></p>
<h3>Übersicht der Außentemperaturen</h3>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/04/aussentemperatur.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1541 size-large" src="http://blog.bubux.de/wp-content/uploads/2018/04/aussentemperatur-1024x606.png" alt="AUssentemperatur Webseite" width="768" height="455" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/04/aussentemperatur-1024x606.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/04/aussentemperatur-300x178.png 300w, https://www.bubuxblog.de/wp-content/uploads/2018/04/aussentemperatur-768x455.png 768w, https://www.bubuxblog.de/wp-content/uploads/2018/04/aussentemperatur.png 1395w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Die Übersicht der Außentemperatur wird aus den Daten des Außenfühlers der Viessmann-Heizung generiert. Die Übersichten für anderen Sensoren sehen analog dieser Ansicht aus.</p>
<p>&nbsp;</p>
<h3>Die Übersicht der Heizungsdaten</h3>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/04/heizung.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1543" src="http://blog.bubux.de/wp-content/uploads/2018/04/heizung-1024x610.png" alt="" width="768" height="458" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/04/heizung-1024x610.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/04/heizung-300x179.png 300w, https://www.bubuxblog.de/wp-content/uploads/2018/04/heizung-768x458.png 768w, https://www.bubuxblog.de/wp-content/uploads/2018/04/heizung.png 1393w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Die Übersicht der Heizungsdaten stellt verschiedene Daten dar die mittels <a href="https://github.com/openv/openv/wiki">openv</a> aus der Heizung ausgelesen werden. Aktuell lese ich mit openv nur aus und setze keine Werte (z.B. Sommer-/Winterumschaltung).</p>
<p>&nbsp;</p>
<h3>Voraussetzung und Grundlagen</h3>
<p>Details zum Auslesen der verschiedenen Sensordaten findet ihr in vorangegangenen Artikeln hier im Blog:</p>
<ul>
<li><a href="http://blog.bubux.de/viessmann-heizung-auslesen/">Viessmann Heizung mittels openv auslesen</a></li>
<li><a href="http://blog.bubux.de/m-bus-wasserzaehler/">M-Bus Wasserzähler auslesen</a></li>
<li><a href="http://blog.bubux.de/gaszaehler-auslesen/">Gaszähler mit Reed auslesen</a></li>
<li><a href="http://blog.bubux.de/raspberry-pi-ehz-auslesen/">Stromzähler mit optischem Lesekopf auslesen</a></li>
</ul>
<p>Die Webseite liest die Datenbanken des Wasserzähler, des Gaszählers, der Heizung und des Stromzählers aus. Folgend nochmal eine Übersicht der Tabellenstrukturen welche auch in den Artikel oben zu finden sind. In MySQL (bzw. MariaDB) habe ich zwei Datenbanken angelegt (vito, haus) mit verschiedenen Tabellen.</p>
<h4>Die Tabellen der Datenbank &#8222;vito&#8220;:</h4>
<pre class=""> CREATE TABLE `brenner` (
 `timestamp` datetime NOT NULL,
 `brennerstarts` float NOT NULL,
 `brennerstunden` float NOT NULL,
 `brennerstatus` int(11) NOT NULL,
 KEY `timestamp` (`timestamp`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `snapshot` (
 `timestamp` datetime NOT NULL,
 `brennerstatus` float NOT NULL,
 `brennerstarts` float NOT NULL,
 `brennerstunden` float NOT NULL,
 `solarstunden` float NOT NULL,
 `solarleistung` float NOT NULL,
 `aussentemperatur` float NOT NULL,
 `warmwasser` float NOT NULL,
 `speicher_unten` float NOT NULL,
 `kollektor` float NOT NULL,
 `kesseltemperatur` float NOT NULL,
 `vorlauftemperaturM2` float NOT NULL,
 `vorlaufsolltemperaturM2` float NOT NULL,
 `raumsolltemperaturM1` float NOT NULL,
 `raumsolltemperaturM2` float NOT NULL,
 `raumsolltemperaturredM1` float NOT NULL,
 `raumsolltemperaturredM2` float NOT NULL,
 `warmwassersoll` float NOT NULL,
 `kesseltemperatursoll` float NOT NULL,
 `pumpestatusM1` float NOT NULL,
 `pumpestatusSP` float NOT NULL,
 `pumpestatussolar` float NOT NULL,
 `statusstoerung` varchar(100) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
 `systemzeit` varchar(100) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
 `error0` varchar(500) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
 `BetriebArt` varchar(20) NOT NULL,
 `BetriebArtM2` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `solar` (
 `timestamp` datetime NOT NULL,
 `solarstunden` float NOT NULL,
 `solarleistung` float NOT NULL,
 `solarpumpe` int(11) NOT NULL,
 KEY `timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `temperaturen` (
 `timestamp` datetime NOT NULL,
 `aussentemperatur` float NOT NULL,
 `warmwasser` float NOT NULL,
 `speicher_unten` float NOT NULL,
 `kollektor` float NOT NULL,
 `vorlaufsolltemperaturM2` float NOT NULL,
 KEY `timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<h3>&nbsp;</h3>
<h4>Die Tabellen der Datenbank &#8222;haus&#8220;:</h4>
<pre class="">CREATE TABLE `gaszaehler` (
 `timestamp` datetime NOT NULL,
 `zaehlerstand` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `stromzaehler` (
 `timestamp` datetime NOT NULL,
 `public_key` varchar(100) NOT NULL,
 `zaehlerstand` float DEFAULT NULL,
 `active_power` float NOT NULL,
 KEY `strom_index` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `strom_snapshot` (
 `zeitstempel` date NOT NULL,
 `zaehlerstand` float NOT NULL,
 `wirkleistung` float NOT NULL,
 `aktuelles_jahr` float NOT NULL,
 `aktueller_monat` float NOT NULL,
 `aktueller_tag` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `wasserzaehler` (
 `timestamp` datetime NOT NULL,
 `zaehlerid` int(11) NOT NULL,
 `zaehlerstand` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<pre class="">CREATE TABLE `wasser_snapshot` (
 `timestamp` date NOT NULL,
 `zaehlerstand` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre>
<h3>&nbsp;</h3>
<h3>&#8222;Installation&#8220;</h3>
<p>Einen funktionierenden Webserver (z.B. Apache) mit PHP und eine MySQL oder MariaDB vorausgesetzt, muss das unten verlinkte tar.gz in ein beliebiges Verzeichnis im www-Verzeichnis des Webservers entpackt werden.</p>
<p>Das funktioniert mit&nbsp;</p>
<pre class="toolbar:2 nums:false lang:default decode:true ">tar -xvzf webseite_sensordaten.tar.gz</pre>
<h3>&nbsp;</h3>
<h3>Konfiguration</h3>
<p>In der Datei config.inc müssen ein paar wenige Einstellungen vorgenommen werden. Folgende Einstellungen werden für die Verbindung zur Datenbank benötigt:</p>
<pre class="toolbar:2 nums:false lang:default decode:true">$mysqlhost="&lt;hostname&gt;";
$mysqluser="&lt;username&gt;";
$mysqlpwd="&lt;passwort&gt;";
$mysqldbvito="&lt;name_der_db_mit_den_vito_tabellen&gt;";
$mysqldbhaus="&lt;name_der_db_mit_den_haus_tabellen&gt;";</pre>
<p>Die folgenden Werte dienen der Auswertung des Gaszählers. Da dieser per Reed-Kontakt ausgelesen keinen Gesamtstand ausgibt und nur die einzelnen Impulse zählt, kann hier ein Startwert definiert. Auch die Werte zur Umrechnung von m³ in KW werden hier eingetragen. Diese Informationen gibt es beim Gaslieferanten.</p>
<p>Zudem kann noch definiert werden wie viel Tage in der Übersicht angezeigt werden sollen. Entsprechender Werte gibt es auch für den Wasserzähler und den Stromzähler.</p>
<pre class="toolbar:2 nums:false lang:default decode:true">$gas_startwert="2311650";
$brennwert_gas=10.097;
$zustandszahl_gas=0.9309;
$anz_tage_gas=7;

$anz_tage_wasser=7;

$anz_tage_strom=7;</pre>
<p>&nbsp;</p>
<p><strong>Wichtiger und letzter Schritt:</strong> Das Verzeichnis &#8222;tmp&#8220; muss schreibbar für den Webserver sein. Dort werden die generierten Graphen als PNG gespeichert. Das war es schon!</p>
<p><strong>Fehlt nur noch das Paket mit den PHP-Seiten: <a href="http://blog.bubux.de/wp-content/uploads/2018/04/webseite_sensordaten.tar.gz">webseite_sensordaten.tar.gz</a></strong></p>
<p>&nbsp;</p>
<p>Viel Spaß mit</p>
<p>Chris</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/webseite-zur-darstellung-der-sensordaten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Odroid C2 &#8211; Update 1 (Gas- und Wasserzähler)</title>
		<link>https://www.bubuxblog.de/odroid-c2-update-1-gas-und-wasserzaehler/</link>
					<comments>https://www.bubuxblog.de/odroid-c2-update-1-gas-und-wasserzaehler/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Wed, 25 Jan 2017 16:02:06 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Odroid]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1299</guid>

					<description><![CDATA[Ich habe zwei Raspberry Pi´s laufen. Einer &#8222;spricht&#8220; mit der Heizung, ließt den Stromzähler aus, beherbergt die MySQL-Datenbanken und präsentiert die Daten auf einer Webseite. Der zweite Raspi ließt den Wasserzähler aus, zählt die Umdrehungen des Gaszählers, beherbergt den Werbeblocker Pi-Hole und ist Videorecorder mit tvheadend im Backend. Einer der beiden Raspis soll nun dem [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ich habe zwei Raspberry Pi´s laufen. Einer &#8222;spricht&#8220; mit der <a href="http://blog.bubux.de/viessmann-heizung-auslesen/" target="_blank">Heizung</a>, ließt den <a href="http://blog.bubux.de/raspberry-pi-ehz-auslesen/" target="_blank">Stromzähler</a> aus, beherbergt die MySQL-Datenbanken und präsentiert die Daten auf einer Webseite. Der zweite Raspi ließt den <a href="http://blog.bubux.de/m-bus-wasserzaehler/" target="_blank">Wasserzähler</a> aus, zählt die Umdrehungen des <a href="http://blog.bubux.de/gaszaehler-auslesen/" target="_blank">Gaszählers</a>, beherbergt den Werbeblocker <a href="http://blog.bubux.de/werbung-blockieren-mit-pi-hole/" target="_blank">Pi-Hole</a> und ist Videorecorder mit <a href="https://tvheadend.org/" target="_blank">tvheadend</a> im Backend.</p>
<p>Einer der beiden Raspis soll nun dem neuen Odroid weichen. Dabei entschied ich mich für den zweiten Raspi, da die ganzen PHP-Scripte erstmal nicht anzupassen sind. Das scheint mir der meiste Aufwand zu werden.<br />
<span id="more-1299"></span></p>
<h2>Pi-Hole umziehen</h2>
<p>Auch wenn &#8222;Pi&#8220; im Namen steckt, läuft die Installation mit dem curl-Script auf den Odroid genauso problemlos wie auf dem Raspberry. Daher ist der <a href="http://blog.bubux.de/werbung-blockieren-mit-pi-hole/" target="_blank">Artikel über Pi-Hole</a> auch für den Odroid soweit noch aktuell. Eine positive Anmerkung ist, das man neben den bereits vorkonfigurierten DNS-Servern aus der Installationsroutine, in der aktuellen Version von Pi-Hole jetzt auch die eigene Fritzbox als DNS in den Einstellungen der Pi-Hole-Oberfläche bequem eingeben kann. Damit entfällt die manuelle Anpassung in der Datei <em><span class="crayon-o">/</span><span class="crayon-v">etc</span><span class="crayon-o">/</span><span class="crayon-v">dnsmasq</span><span class="crayon-sy">.</span><span class="crayon-v">d</span><span class="crayon-o">/</span><span class="crayon-cn">01</span><span class="crayon-o">&#8211;</span><span class="crayon-v">pihole</span><span class="crayon-sy">.</span></em><span class="crayon-v"><em>conf</em>.</span></p>
<p><span class="crayon-v">Beim Aufbau der Pi-Hole-Oberfläche ist der Odroid auch spürbar schneller als der Raspberry Pi. Im Netz merkt man keinen Unterschied.<br />
</span></p>
<p><figure id="attachment_1311" aria-describedby="caption-attachment-1311" style="width: 300px" class="wp-caption alignnone"><a href="http://blog.bubux.de/wp-content/uploads/2017/01/pi_hole_dns.png"><img loading="lazy" decoding="async" class="wp-image-1311 size-medium" src="http://blog.bubux.de/wp-content/uploads/2017/01/pi_hole_dns-300x183.png" alt="DNS-EInstellungen Pi-Hole" height="183" width="300" srcset="https://www.bubuxblog.de/wp-content/uploads/2017/01/pi_hole_dns-300x183.png 300w, https://www.bubuxblog.de/wp-content/uploads/2017/01/pi_hole_dns.png 470w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-1311" class="wp-caption-text">DNS-Einstellungen Pi-Hole</figcaption></figure></p>
<h2>&nbsp;</h2>
<h2>Das Script für den Gaszählers umziehen</h2>
<p>Beim Gaszähler nutze ich ein <a href="http://blog.bubux.de/gaszaehler-auslesen/" target="_blank">Python-Script</a>, welches die Schließimpulse eines Reed-Kontaktes mitzählt. Also einfach mal Pythonscript kopiert, gestartet und &#8230; Fehlermeldungen angeschaut! Das Python auf dem Odroid hat die von mir genutzte RPi.GIOP-Klasse angemeckert was auch verständlich ist. Auf dem Odroid muss das gegen WiringPi2 getauscht werden.</p>
<p>1. WiringPi 2 für Python installieren</p>
<pre class="code">git clone https://github.com/hardkernel/WiringPi2-Python.git
cd WiringPi2-Python
git submodule init
git submodule update</pre>
<p>2. Bauen &amp; Installieren</p>
<pre class="code">sudo python setup.py install</pre>
<p>Das angepaßte Script zum Auslesen des Gaszählers schaut dann für den Odroid wie folgt aus:</p>
<p>[cc lang=&#8220;python&#8220; tab_size=&#8220;2&#8243; lines=&#8220;50&#8243;]<br />
import wiringpi2 as wpi<br />
import time<br />
import MySQLdb<br />
import sys</p>
<p>wpi.wiringPiSetupPhys()<br />
# GPIO definieren<br />
REED_gas = 21<br />
# definierten GPIO als Eingang setzen<br />
# 0 output, 1 input, 2 PWM mode<br />
wpi.pinMode(REED_gas,0)</p>
<p>lt = time.localtime()<br />
dateiname=&#8220;gaszaehler_&#8220;+time.strftime(&#8222;%Y%m%d&#8220;,lt) +&#8220;.log&#8220;</p>
<p>logger = open(dateiname,&#8220;w&#8220;)<br />
logger.write(&#8222;gestartet&#8230;&#8220;+&#8220;\n&#8220;)<br />
logger.close()</p>
<p>status_alt=1<br />
while True:<br />
    try:<br />
        dateiname=&#8220;gaszaehler_&#8220;+time.strftime(&#8222;%Y%m%d&#8220;,lt) +&#8220;.log&#8220;<br />
        logger = open(dateiname,&#8220;a&#8220;)<br />
        status_aktuell = wpi.digitalRead(REED_gas)<br />
        # KONTAKT -&gt; geoeffnet<br />
        if status_aktuell == 1:<br />
            #logger.write(&#8222;Kontakt offen&#8220;+&#8220;\n&#8220;)<br />
            status_alt=wpi.digitalRead(REED_gas)<br />
            # KONTAKT -&gt; geschlossen<br />
        elif status_aktuell==0:<br />
            logger.write(&#8222;Kontakt geschlossen&#8220;+&#8220;\n&#8220;)<br />
            if status_alt!=status_aktuell:<br />
                logger.write(&#8222;Impuls&#8220;+&#8220;\n&#8220; )<br />
                status_alt=wpi.digitalRead(REED_gas)<br />
                # Datenbankverbindung<br />
                db = MySQLdb.connect(host=&#8220;&#8220;, user=&#8220;&#8220;, passwd=&#8220;&#8220;, db=&#8220;&#8220;)<br />
                # Impuls in Datenbank eintragen<br />
                cursor = db.cursor()<br />
                cursor.execute(&#8222;&#8220;&#8220;INSERT INTO gaszaehler (timestamp,zaehlerstand) VALUES (CURRENT_TIMESTAMP,1)&#8220;&#8220;&#8220;)<br />
                db.commit()<br />
                cursor.close()<br />
                logger.close()<br />
        except:<br />
            e = sys.exc_info()[0]<br />
            dateiname=&#8220;gaszaehler_&#8220;+time.strftime(&#8222;%Y%m%d&#8220;,lt) +&#8220;.log&#8220;<br />
            logger = open(dateiname,&#8220;a&#8220;)<br />
            logger.write(&#8222;Es ist ein Fehler aufgetreten: %s&#8220; % e)<br />
            logger.close()<br />
            time.sleep(1)<br />
[/cc]</p>
<p>Neben WiringPi habe ich auch die Verbindung zur DB in die while-Schleife gepackt. Vorher wurde die Verbindung einmal am Anfang hergestellt und in der Schleife nur noch die Daten per Insert eingetragen. Es zeigt sich aber, das der Odroid oder die Datenbank die noch auf dem anderen Pi läuft die Verbindung nach einer Zeit kappt und es zu Fehlern kam. Auch das Logging habe ich etwas abgeändert, da während das while lief nur Blockweise wenn gerade Zeit war in die Datei geschrieben wurde. Das störte bei der Fehlersuche.</p>
<p>Hier auch nochmal die Pinbelegung des Odroid C2 und deren Zusammenhang mit den PinModes von WiringPi2:</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2017/01/odroid_c2_gpio.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1309" src="http://blog.bubux.de/wp-content/uploads/2017/01/odroid_c2_gpio-1024x724.png" alt="" height="543" width="768" srcset="https://www.bubuxblog.de/wp-content/uploads/2017/01/odroid_c2_gpio-1024x724.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2017/01/odroid_c2_gpio-300x212.png 300w, https://www.bubuxblog.de/wp-content/uploads/2017/01/odroid_c2_gpio-768x543.png 768w, https://www.bubuxblog.de/wp-content/uploads/2017/01/odroid_c2_gpio.png 1246w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Das war es schon für die Anpassungen des Scriptes für den Gaszähler. Bei diesem Script gibt es keine Performanceunterschiede im Vergleich wenn es auf dem Raspi lief.</p>
<p></p>
<h2>Das Script für den Wasserzähler umziehen</h2>
<p>Als nächstes kam der <a href="http://blog.bubux.de/m-bus-wasserzaehler/" target="_blank">Wasserzähler mit M-BUS</a> an die Reihe. Hier habe ich mir die Quellen in der Version 0.8.0 von <a href="http://www.rscada.se/libmbus/" target="_blank">rScada</a> gezogen und anschliessend versucht diese zu bauen. Dies führte schon beim<em> ./configure</em> zu Fehlermeldungen. Die Quellen waren zu alt und konnten die Prozessorarchitektur des Odroid (ARM) nicht ermitteln. Um das zu beheben benötigt man aktuelle Versionen der Dateien<em> config.guess</em> und <em>config.sub</em>. Diese sind unter den beiden folgenden Links zu finden.</p>
<p><a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" target="_blank">http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD</a></p>
<p><a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" target="_blank">http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD</a></p>
<p>Die beiden Dateien einfach gegen die bereit vorhanden ersetzen und<em> ./configure</em> läuft durch. <em>make</em> und <em>make install</em> laufen dann auch fehlerfrei durch wie im <a href="http://blog.bubux.de/m-bus-wasserzaehler/" target="_blank">Artikel </a>beschrieben.</p>
<p>Die Pins zum zum Anschluss des M-BUS-Master (Tx &amp; Rx) sind gleich belegt wie auf dem Raspberry.</p>
<p>Die Scripte von rScada funktionieren identisch wie vorher. Mit<em> mbus-serial-scan</em> wurde der Wasserzähler auf fehlerfrei erkannt. Leider scheiterte anschliessend der Versuch mit <em><span class="crayon-v">mbus</span><span class="crayon-o">&#8211;</span><span class="crayon-v">serial</span><span class="crayon-o">&#8211;</span><span class="crayon-v">request</span><span class="crayon-o">&#8211;</span><span class="crayon-v">data</span></em> die Daten aus dem vorher erkannten Zähler auszulesen. Nahc den ersten ausgelesenen Bytes verabschiedete sich <em><span class="crayon-v">mbus</span><span class="crayon-o">&#8211;</span><span class="crayon-v">serial</span><span class="crayon-o">&#8211;</span><span class="crayon-v">request</span><span class="crayon-o">&#8211;</span><span class="crayon-v">data</span></em> mit einem Segmentation Fault. In den Systemlogs war nicht wirklich rauszufinden warum dem so ist. Nach ein kurzer Analyse dachte ich ein Versuch mit der vorherigen Version 0.7.0 kann nicht schaden. Damit tat es dann auch fehlerfrei. Was nun genau das Problem des Segfaults war, weiß ich nicht. Die Unterschiede zur Version 0.8.0 sind auch anscheinend nicht relevant da alles wie gewünscht funktioniert.</p>
<p>Soviel zu den ersten beiden &#8222;Umzügen&#8220;. Fehlen noch der DVB-S Empfänger mit tvheadend und dann geht´s schon an die Dinge die aktuell noch auf dem anderen Raspberry Pi laufen.</p>
<p>&nbsp;</p>
<p>Gruß</p>
<p>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/odroid-c2-update-1-gas-und-wasserzaehler/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Odroid C2 (vs Raspberry PI 2)</title>
		<link>https://www.bubuxblog.de/odroid-c2-vs-raspberry-pi-2/</link>
					<comments>https://www.bubuxblog.de/odroid-c2-vs-raspberry-pi-2/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Mon, 02 Jan 2017 11:28:44 +0000</pubDate>
				<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Odroid]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1257</guid>

					<description><![CDATA[Zuerst einmal noch ein frohes neues Jahr an alle! Die Tage habe ich ein neues Spielzeug bekommen (nein, nicht zu Weihnachten). Es ist ein Odroid C2 mit eMMC-Speicherkarte. Den gab es im Komplettpaket mit Odroid, eMMC, Gehäuse und Netzteil für 70€. Der Odroid besitzt einen Quad-Core mit 1,5 GHz, 2 GB RAM und ein Gigabit-LAN [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Zuerst einmal noch ein frohes neues Jahr an alle!</p>
<p>Die Tage habe ich ein neues Spielzeug bekommen (nein, nicht zu Weihnachten). Es ist ein Odroid C2 mit eMMC-Speicherkarte. Den gab es im Komplettpaket mit Odroid, eMMC, Gehäuse und Netzteil für 70€. Der Odroid besitzt einen Quad-Core mit 1,5 GHz, 2 GB RAM und ein Gigabit-LAN welches er sich, im Gegensatz zur Raspberry-Architektur, nicht mit den USB-Ports teilen muss. Somit sollte die Gesamtleistung in allen Belangen deutlich höher ausfallen als die des Raspberry 2 oder 3. Auf der eMMC war ein Ubuntu 16.04 LTS mit Mate Desktop vorinstalliert.</p>
<p><figure id="attachment_1259" aria-describedby="caption-attachment-1259" style="width: 768px" class="wp-caption alignnone"><a href="http://blog.bubux.de/wp-content/uploads/2016/12/IMG_9477.jpg"><img loading="lazy" decoding="async" class="wp-image-1259 size-large" src="http://blog.bubux.de/wp-content/uploads/2016/12/IMG_9477-e1482917785552-1024x739.jpg" alt="Odroid Oberseite" width="768" height="554" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/12/IMG_9477-e1482917785552-1024x739.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2016/12/IMG_9477-e1482917785552-300x216.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2016/12/IMG_9477-e1482917785552-768x554.jpg 768w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption id="caption-attachment-1259" class="wp-caption-text">Odroid Oberseite</figcaption></figure></p>
<p><span id="more-1257"></span></p>
<h2>Schneller Test versus schlampige Programmierung</h2>
<p>Ein erster schneller Test sollte die Geschwindigkeitsmessung bei der Anzeige meiner Intranet-Seite für die mitgeloggten Daten (Temperaturen, Gasverbrauch, Stromverbrauch, &#8230;) sein. Die Tabellen sind in den letzten 3 Jahren teilweise doch recht groß geworden und der Raspberry 2 tut sich mit der Anzeige der ein oder anderen Auswertung merklich schwer. Zum Beispiel dauert die Abfrage des wöchentlichen Wasserverbrauches rund 38 Sekunden&#8230;nichts für ungeduldige Gemüter.</p>
<p><figure id="attachment_1261" aria-describedby="caption-attachment-1261" style="width: 300px" class="wp-caption alignleft"><a href="http://blog.bubux.de/wp-content/uploads/2016/12/IMG_9485-e1482920354556.jpg"><img loading="lazy" decoding="async" class="wp-image-1261 size-medium" src="http://blog.bubux.de/wp-content/uploads/2016/12/IMG_9485-e1482920354556-300x216.jpg" alt="Odoid Unterseite" width="300" height="216" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/12/IMG_9485-e1482920354556-300x216.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2016/12/IMG_9485-e1482920354556-768x554.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2016/12/IMG_9485-e1482920354556-1024x738.jpg 1024w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-1261" class="wp-caption-text">Odroid Unterseite mit der eMMC-Karte (roter Aufkleber)</figcaption></figure></p>
<p>Also MySQL, Apache und PHP installiert. Dabei ließ sich MySQL nach der Installation nicht starten. Da scheint es einen bekannten <a href="https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279" target="_blank">Fehler</a> zu geben. Ich habe mich dann einen halben Tag mit Versuchen rumgeschlagen es ans laufen zu bekommen. Letztendlich habe ich mich dann geschlagen gegeben und MariaDB installiert. MariaDB funktionierte auf Anhieb inkl. des Datenimportes der Daten aus der MySQL-Datenbank des Raspberrys. Die Installation von Apache und PHP 7 funktionierte auf Anhieb. Dann die PHP-Scripte auf den Odroid kopiert, einen Browser geöffnet und &#8230; nichts gesehen außer einer weißen Seite. Nach kurzem Blick in das Apache-Log dann die Ernüchterung: Einfach die Scripte kopieren ist nicht, da ich in der Vergangenheit schlampig programmiert hatte. So unterstützt PHP 7 unter anderem nur noch M<em>ySQLi</em> (<a href="http://php.net/manual/de/book.mysqli.php" target="_blank"><em>i</em> wie improved</a>). So hatte ich mir das nicht vorgestellt, aber es ist ein guter Anlass um den kompletten Code zu überarbeiten. Und ein Downgrade auf PHP 5.x ist wohl auch <a href="https://www.heise.de/newsticker/meldung/Ende-des-aktiven-Supports-fuer-PHP-5-3583353.html" target="_blank">keine Alternative mehr</a>.</p>
<h2>Code-Korrektur</h2>
<p>Um trotzdem die Geschwindigkeit testen zu können, habe ich die Seite zur Anzeige des wöchentlichen Wasserverbrauches PHP 7-tauglich gemacht. In dieser Seite wird eine kleine Datenbanktabelle mit ~ 700 Zeilen ausgelesen (den Wasserzähler habe ich noch nicht so lange). Die beiden SQL-Statements die im Script verwendet werden sehen folgendermaßen aus:</p>
<p>Folgendes Select liest den Gesamtzählerstand aus:</p>
<pre class="">SELECT zaehlerstand FROM wasserzaehler</pre>
<p>Das etwas länglichere Select liest den Verbrauch der letzten 7 Tage, gruppiert nach Wochentag, aus:</p>
<pre class="">SELECT
CASE DATE_FORMAT(wz1.timestamp,'%w')
WHEN 0 THEN 'Sonntag'
WHEN 1 THEN 'Montag'
WHEN 2 THEN 'Dienstag'
WHEN 3 THEN 'Mittwoch'
WHEN 4 THEN 'Donnerstag'
WHEN 5 THEN 'Freitag'
WHEN 6 THEN 'Samstag'
ELSE 'fehler' END,
wz1.zaehlerstand - IFNULL(wz2.zaehlerstand, 0) AS verbrauch
FROM wasserzaehler wz1
LEFT JOIN wasserzaehler wz2
ON wz2.timestamp = (
SELECT MAX(timestamp) FROM wasserzaehler wz3 WHERE wz3.timestamp &lt; wz1.timestamp
)
WHERE DATE(wz1.timestamp) &gt;= DATE_SUB(NOW(),INTERVAL 7 DAY) GROUP BY day(wz1.timestamp)
ORDER BY wz1.timestamp";</pre>
<p>Das Ergebnis ist eine Übersicht des Gesamtverbrauch und des Wasserverbrauches der letzten 7 Tage:</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2016/12/wasserzähler.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1263" src="http://blog.bubux.de/wp-content/uploads/2016/12/wasserzähler.png" alt="" width="818" height="462" srcset="https://www.bubuxblog.de/wp-content/uploads/2016/12/wasserzähler.png 818w, https://www.bubuxblog.de/wp-content/uploads/2016/12/wasserzähler-300x169.png 300w, https://www.bubuxblog.de/wp-content/uploads/2016/12/wasserzähler-768x434.png 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></a></p>
<h2>Warpgeschwindigkeit</h2>
<p>Der Raspberry 2 benötigt bis zur Anzeige dieser Seite geschlagene 38 Sekunden. Der Odroid etwas mehr als 1 Sekunde! Diesen eklatanten Geschwindigkeitsunterschied hätte ich nicht erwartet. Allerdings weiß ich auch nicht, was den Raspberry bei der Auswertung dieser kleinen Tabelle genau überfordert. Es ist jedenfalls mal ein dicker Pluspunkt für den Odroid. Mal sehen wie er sich mit den anderen Abfragen schlägt sobald ich die restlichen PHP-Scripte angepasst habe.</p>
<p>Das wird allerdings neben der PHP-Problematik noch ein steiniger Weg werden, da ich die komplette <a href="http://blog.bubux.de/raspberry-pi-heimautomatisierung-mit-coc-und-fhem/" target="_blank">FHEM-Implementierung</a> irgendwie vom Raspberry auf den Odroid bekommen muss. Problem ist dabei wahrscheinlich weniger FHEM selber, sondern die COC-Hardware die auf den GPIOs des Raspberry sitzt und die GPIOs des Raspberry nicht kompatibel mit denen des Odroid sind. Dazu aber mehr, wenn es soweit ist.</p>
<p>Nebenbei habe ich bei dieser Gelegenheit auch noch kurz den Leistungsmesser dazwischen gehangen. Im Leerlauf (die Abfrage des Wasserzählers kann man nicht als mehr bezeichnen) konsumiert der Odroid etwa 3 Watt.</p>
<p>&nbsp;</p>
<p>Gruß Chris</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/odroid-c2-vs-raspberry-pi-2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
