<?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>Haustechnik &#8211; bubuxblog</title>
	<atom:link href="https://www.bubuxblog.de/category/haustechnik/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bubuxblog.de</link>
	<description></description>
	<lastBuildDate>Sat, 15 Mar 2025 09:52:58 +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>PV-Überschuss zu Warmwasser</title>
		<link>https://www.bubuxblog.de/pv-ueberschuss-zu-warmwasser/</link>
					<comments>https://www.bubuxblog.de/pv-ueberschuss-zu-warmwasser/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Fri, 27 Dec 2024 13:56:51 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Heizstab]]></category>
		<category><![CDATA[Powerfox]]></category>
		<category><![CDATA[PV-Überschuss]]></category>
		<category><![CDATA[Shelly]]></category>
		<category><![CDATA[Warmwasser]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2314</guid>

					<description><![CDATA[Meine Eltern haben eine PV-Anlage ohne Batteriespeicher. Durch Selbstaufbau mit Freunden auf einem Schuppendach war das eine sehr kostengünstige Anlage, die an sonnigen Tagen tagsüber den vom Haus benötigten Strom komplett liefert. Seit Inbetriebnahme wird Wäsche nur gewaschen, wenn auch die Sonne scheint 😉 Insgesamt wird aber im Sommer meistens zu viel Strom produziert und [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Meine Eltern haben eine PV-Anlage ohne Batteriespeicher. Durch Selbstaufbau mit Freunden auf einem Schuppendach war das eine sehr kostengünstige Anlage, die an sonnigen Tagen tagsüber den vom Haus benötigten Strom komplett liefert. Seit Inbetriebnahme wird Wäsche nur gewaschen, wenn auch die Sonne scheint <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Insgesamt wird aber im Sommer meistens zu viel Strom produziert und für 8 Cent eingespeist.</p>



<p>Auf der Suche nach einer Möglichkeit den Eigenverbrauch zu erhöhen, fiel ein Batteriespeicher aufgrund der hohen Anschaffungskosten raus. Was tun?</p>



<p>Vor einigen Jahren wurde der Kachelofen mit Wassertasche vom Schornsteinfeger wegen Umweltauflagen still gelegt (sehr schade drum). Dadurch ist aber noch der Warmwasserspeicher im Heizungsraum vorhanden. Diese hatte nach der Stilllegung des Kachelofen keine weitere Wärmequelle als die Ölheizung. Solarthermie ist leider nicht vorhanden und auch für eine Neu-Installation zu aufwändig.</p>



<p>Wir dachten dann über einen Heizstab nach. Der Wasserspeicher hat die Möglichkeit einen Heizstab von oben einzuschrauben. Leider ist es aber sehr schwierig, Heizstäbe mit entsprechend langer heiz-freier Zone zu bekommen, da das Wasser im Wasserspeicher ja nicht randvoll gefüllt ist. Bei anderen Herstellern von Warmwasserspeichern kann man den Heizstab seitlich einschrauben. Und der Heizstab vom Hersteller des Wasserspeichers ist leider raus, da er zu lang ist und wir den Warmwasserspeicher hätten kippen müssen. Es musste also eine andere Lösung her.</p>



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



<h2 class="wp-block-heading">Wärmekreislauf im Selbstbau</h2>



<p>Ein guter Freund meines Vaters ist Heizungsbauer und hat eine Vorrichtung gebaut, die analog der Wassertasche des alten Kachelofen das Wasser mittels Umwälzpumpe, an einem Heizstab vorbei, in den Warmwasserspeicher pumpt. Die Pumpe war noch vom Kachelofen vorhanden und der Heizstab ist ein günstiger ~ 2KW Heizstab mit 1 1/2 Zoll Gewinde. Dieser steckt nun in einem Eisenrohr/T-Stück mit entsprechendem Gewinde und ist über Kupferleitungen an den Warmwasserspeicher angeschlossen. Zudem wurde dieser Kreislauf noch an das Ausdehnungsgefäß des normalen Heizkreislauf angeschlossen, damit wir uns ein zweites Ausdehnungsgefäß sparen konnten.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/threema-20240830-184619200.jpg"><img fetchpriority="high" decoding="async" width="768" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/threema-20240830-184619200.jpg" alt="" class="wp-image-2315" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/threema-20240830-184619200.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/threema-20240830-184619200-225x300.jpg 225w" sizes="(max-width: 768px) 100vw, 768px" /></a></figure>



<p>Im Bild erkennt man den Heizstab, der senkrecht in dem Eisenrohr steckt, die grüne Umwälzpumpe und die entsprechende Verrohrung. Später wurde die Konstruktion noch isoliert.</p>



<p>Jetzt soll der Heizstab aber nur eingeschaltet werden, wenn auch PV-Überschuss vorhanden ist. Kauflösungen wie z.B. &#8222;intelligente&#8220; Heizstäbe von ELWA kosten > 500 €. Soviel wollten wir aber nicht ausgeben, da die Ausbeute und der Wirkungsgrad um Wasser mit elektrischer Energie mittels Heizstab zu erhitzen nicht sehr effizient ist und sich schlecht amortisiert. Eine kleine Wärmepumpe schied übrigens vorerst aus Kostengründen auch aus.</p>



<h2 class="wp-block-heading">Die Daten&#8230;woher bekommen?</h2>



<p>So, wie kommt man nun an die Daten wann die Anlage Überschuss produziert? Der SMA-Wechselrichter ist ohne &#8222;Sunny Boy&#8220; nicht wirklich auskunftsfreudig (es war ja ein Low-Budget-Selbstbau-Anlage). Aber welche Daten werden denn benötigt?</p>



<ul class="wp-block-list">
<li>den <strong>Eigenverbrauch </strong>des Hauses und</li>



<li>die <strong>aktuelle Leistung</strong>, die durch die Solaranlage geliefert wird</li>
</ul>



<p>Die Werte für den Eigenverbrauch hatten wir schon relativ schnell nach Inbetriebnahme der Solaranlage durch Einbau eines <a href="https://shop.powerfox.energy/" data-type="link" data-id="https://shop.powerfox.energy/" target="_blank" rel="noreferrer noopener">Powerfox </a>am digitalen Stromzähler erledigt. Dieser misst am Energiezähler die aktuell benötigte Leistung, sowie die elektrische Energie des Verbrauchs und der Einspeisung. Den Powerfox kann jeder einfach anbringen, da er nur mittels Magnet an der entsprechenden Stelle am Zähler befestigt wird. Hier sind keine Arbeiten im Stromkasten notwendig. Der Powerfox ist mit den meisten digitalen Stromzählern kompatibel. Ggf. in die Modell-Liste von Powerfox schauen. Ich selber nutze hier eine Selbstbaulösung, aber der Powerfox ist &#8222;adminfreundlicher&#8220;.</p>



<p>Die Messung der Leistung der Solaranlage kam dann etwas später durch den Einbau eines <a href="https://www.shelly.com/de/products/shelly-3em" target="_blank" rel="noreferrer noopener">Shelly 3EM</a> mit drei Stromzangen im Stromkasten dazu. Die Stromzangen werden einfach um die drei Phasen gelegt, die vom Wechselrichter kommen. Der 3EM kommt auf die Hutschiene im Stromkasten und benötigt noch Versorgungsspannung. Für den Einbau ggf. besser einen Elektriker zu Rate ziehen!</p>



<p>Damit hatte mein Vater schon vor der Idee mit dem Heizstab alle wichtigen Informationen der Solaranlage und des Hausverbrauches zur Verfügung. Allerdings über zwei unterschiedliche Apps und ohne zentrale Einheit wie ein Smart-Home-Server.</p>



<p>Zurück zum Heizstab. Alle Infos, um den Heizstab bei PV-Überschuss anzuschalten waren also schon vorhanden. Um nun aus diesen Infos den eigentlich Überschuss zu berechnen und den Heizstab zu schalten, kam ich nicht mehr drumherum, einen kleinen Server mit entsprechender Software aufzusetzen.</p>



<h2 class="wp-block-heading">Die Steuerung</h2>



<p>Das Erste was mir als Software in den Sinn kam war <a href="https://openwb.de/main/" target="_blank" rel="noreferrer noopener">openWB</a>. Ich habe eine openWB-Wallbox und nutze sie schon zum Überschussladen des E-Autos und hatte mich auch schon mal in das von mir nicht genutzte SmartHome-Menü der openWB verirrt. Die Software selber kann auch ohne Wallbox-Funktionalitäten auf einem RaspberryPI betrieben werden. Ich hatte noch einen Pi 3 hier liegen und die Software war schnell installiert. Der Powerfox und der Shelly 2EM (sowie andere Produkte von Shelly) werden bereits von openWB unterstützt. Die Integration funktioniert einfach mit Eingabe der Shelly-IP bzw. der Powerfox-Cloud-Daten über die Weboberfläche der OpenWB.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1.jpg"><img decoding="async" width="538" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-538x1024.jpg" alt="" class="wp-image-2318" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-538x1024.jpg 538w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-158x300.jpg 158w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-768x1463.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-806x1536.jpg 806w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-1075x2048.jpg 1075w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1.jpg 1080w" sizes="(max-width: 538px) 100vw, 538px" /></a></figure>



<p>Danach zeigt die Startseite der openWB die gemessenen Werte an. Im Screenshot aktuell sehr wenig Sonne und relativ viel Hausverbrauch.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome.jpg"><img decoding="async" width="535" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-535x1024.jpg" alt="" class="wp-image-2319" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-535x1024.jpg 535w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-157x300.jpg 157w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-768x1471.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-802x1536.jpg 802w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-1069x2048.jpg 1069w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome.jpg 1080w" sizes="(max-width: 535px) 100vw, 535px" /></a></figure>



<p>Verschiedene Smart-Home-Geräte (unter die auch der zukünftige Heizstab fällt) können nun in der openWB konfiguriert werden und mit Aktionen hinterlegt werden. Der Heizstab selber ist natürlich nicht &#8222;Smart&#8220;. Ein- und ausgeschaltet werden soll er über einen <a href="https://www.shelly.com/de/products/shelly-plug-s-gen3" target="_blank" rel="noreferrer noopener">Shelly Plug S</a>. Den Shelly sieht man auch auf dem ersten Bild oben links. Daran angeschlossen ist der Heizstab und die Umwälzpumpe. Auch dieser Shelly wird von openWB als Smart-Home-Gerät unterstützt. </p>



<p>Was jetzt noch bleibt, sind verschiedene Einstellung am Smart-Home-Gerät:</p>



<ul class="wp-block-list">
<li>Schwellenwerte (in Watt) zum Ein- und Ausschalten, </li>



<li>Nachlaufzeiten (in Sekunden) damit der Stab nicht ständig an- und ausgeht wenn Wolken aufziehen, </li>



<li>Zeiträume und Gesamtdauer pro Tag in denen überhaupt geschaltet wird (zur Sicherheit falls die openWB den Shelly Plug aus irgendwelchen Gründen nicht ausschaltet) </li>



<li>und einige andere Einstellungen. </li>
</ul>



<p>Das ist natürlich abhängig vom Heizstab, dem Warmwasserspeicher und der gesamten PV-Anlage. Hier muss ein bisschen ausprobiert werden welche Werte für die jeweilige Anlage am besten passen.</p>



<p>Zur Sicherheit wird der Shelly Plug an Pumpe und Heizstab auch noch täglich mit Sonnenuntergang durch die Shelly-App ausgeschaltet und der Heizstab besitzt noch ein eigenes Thermostat, wodurch er sich selber ab einer einstellbaren Temperatur ausschaltet. Mit diesen Mitteln und den Einstellungen in der openWB sollte ein überhitzen bzw. zu langes laufen des Heizstabes ausgeschlossen sein.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome.jpg"><img loading="lazy" decoding="async" width="562" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-562x1024.jpg" alt="" class="wp-image-2320" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-562x1024.jpg 562w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-165x300.jpg 165w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-768x1400.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-842x1536.jpg 842w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome.jpg 1080w" sizes="auto, (max-width: 562px) 100vw, 562px" /></a></figure>



<p>Die Apparatur läuft seit dem Herbst 2024. Die Tage, an denen Sonne war und der Schwellwert für den PV-Überschuss in der openWB erreicht wurde, schaltete den Heizstab und die Umwälzpumpe über den Shell Plug einwandfrei ein und aus. Den Status des Heizstabes (An/Aus) sowie die aktuell benötigte Leistung und die pro Tag in den Heizstab geflossene Energie zeigt die openWB auch auf der Startseite an.</p>



<p>Grundsätzlich funktioniert das also. Wirklich viel PV-Überschuss gab es aber leider nicht, so das wir das nächste Frühjahr abwarten müssen.</p>



<p>Wunder wird der kleine Heizstab im Warmwasserspeicher nicht vollbringen, aber auch im Sommer wird warmes Wasser benötigt und es sollte dann Wärme produziert werden, die mehr als 8 Cent wert ist. Die Ausgaben hielten sich auch sehr in Grenzen. Eigentlich war es nur der Heizstab für &lt; 100 € und der Shelly Plug für 23 €. Der Rest war schon vorhanden (Powerfox und Shelly 3EM) bzw. lag irgendwo herum (Raspi, Umwälzpumpe). Das Installations-Material kostete ein Feierabendbier.</p>



<p>Ich werde mal berichten wie das Ganze im Sommer funktioniert.</p>



<p>Gruß<br>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/pv-ueberschuss-zu-warmwasser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gasverbrauch graphisch darstellen</title>
		<link>https://www.bubuxblog.de/gasverbrauch-graphisch-darstellen/</link>
					<comments>https://www.bubuxblog.de/gasverbrauch-graphisch-darstellen/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sat, 09 Dec 2023 10:19:52 +0000</pubDate>
				<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2162</guid>

					<description><![CDATA[Im Artikel Gasverbrauch mit ESP8266 messen habe ich gezeigt, wie man den Gasverbrauch an einem Balgengaszähler mittels ESP8266 (NodeMCU) und Reed-Kontakt einfach ermitteln kann. In der Konfiguration der Software für den Mikrocontroller habe ich vorgesehen, die Daten an eine eigene API übergeben zu können. Die &#8222;Daten übergeben&#8220; ist hier etwas übertrieben, da eigentlich nichts übergeben [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Im Artikel <a href="http://blog.bubux.de/gasverbrauch-mit-esp8266-messen/" data-type="post" data-id="2070">Gasverbrauch mit ESP8266 messen</a> habe ich gezeigt, wie man den Gasverbrauch an einem Balgengaszähler mittels ESP8266 (NodeMCU) und Reed-Kontakt einfach ermitteln kann. In der Konfiguration der Software für den Mikrocontroller habe ich vorgesehen, die Daten an eine eigene API übergeben zu können. Die &#8222;Daten übergeben&#8220; ist hier etwas übertrieben, da eigentlich nichts übergeben wird. Die eigene Schnittstelle wird bei jedem erfassten Impuls aufgerufen, ohne das irgendwelche Werte mitgegeben werden (anders bei der <a href="http://blog.bubux.de/version-1030-der-zisternenmessung-jetzt-auf-github/" data-type="post" data-id="2045">Zisterne</a>). Es werden also hier nur die Impulse gezählt.</p>



<p>Das Zählen der Impulse habe ich bei mir mit einer kleinen PHP-Seite umgesetzt, die bei jedem Aufruf einen neuen Eintrag in eine Datenbank schreibt. Der Mikrocontroller ruft bei mir dazu die Seite &#8222;GasMeterImpuls.php&#8220; auf, die auf einem Webserver liegt. Das PHP-Script macht dabei nicht anderes, als bei jedem Aufruf eine neue Zeile mit Zeitstempel und einer &#8222;1&#8220; für den Impuls in eine Tabelle einer MariaDB zu speichern.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-19-25.png"><img loading="lazy" decoding="async" width="1024" height="243" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-19-25-1024x243.png" alt="" class="wp-image-2165" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-19-25-1024x243.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-19-25-300x71.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-19-25-768x182.png 768w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-19-25.png 1429w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?php
//********************************************
//Impuls vom Gaszaehler in Datenbank schreiben
//********************************************

$servername = "";
$username = "";
$password = "";
$dbname = "";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
}

$sql="INSERT INTO gaszaehler (timestamp,zaehlerstand) VALUES (CURRENT_TIMESTAMP,1)";

if ($conn->query($sql) === TRUE) {
        //echo "Neuer Eintrag erzeugt";
} else {
        echo "Fehler: " . $sql . "&lt;br>" . $conn->error;
}

$conn->close();
?></pre>



<p>Die Tabelle in der MariaDB ist sehr einfach und besteht nur aus zwei Spalten. Einmal eine Spalte mit einem Zeitstempel und eine weitere Spalte für den Impuls. Der Spaltenname &#8222;zaehlerstand&#8220; ist evtl. etwas irreführend. Hier werden nur die einzelnen Impulse und kein Gesamtzählerstand gespeichert! </p>



<figure class="wp-block-image size-medium"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-44-42.png"><img loading="lazy" decoding="async" width="300" height="198" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-44-42-300x198.png" alt="" class="wp-image-2172" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-44-42-300x198.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-44-42.png 546w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></figure>



<p>Hier das Create-Table für die Tabelle:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">CREATE TABLE `gaszaehler` (
  `timestamp` datetime NOT NULL,
  `zaehlerstand` int(11) NOT NULL
) ENGINE=InnoDB</pre>



<p>Heute würde ich anstelle der MariaDB eher eine auf Zeitreihen spezialisierte InfluxDB nehmen. InfluxDB arbeitet auch besser mit Grafana zusammen. Die Nutzung der MariaDB ist bei mir aber &#8222;historisch&#8220; bedingt ;-).</p>



<p>Die Daten aus der MariaDB stelle ich dann mit Grafana graphisch dar. Diagramm-Typ ist hier ein &#8222;Bar Chart&#8220;.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-25-06.png"><img loading="lazy" decoding="async" width="1024" height="398" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-25-06-1024x398.png" alt="" class="wp-image-2166" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-25-06-1024x398.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-25-06-300x117.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-25-06-768x299.png 768w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-25-06.png 1457w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-26-02.png"><img loading="lazy" decoding="async" width="1024" height="398" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-26-02-1024x398.png" alt="" class="wp-image-2167" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-26-02-1024x398.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-26-02-300x117.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-26-02-768x299.png 768w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-26-02.png 1457w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-27-00.png"><img loading="lazy" decoding="async" width="1024" height="398" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-27-00-1024x398.png" alt="" class="wp-image-2168" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-27-00-1024x398.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-27-00-300x117.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-27-00-768x299.png 768w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-27-00.png 1457w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Im Grafana verwende ich dazu für die Bar-Charts die drei folgenden SQL-Statements, die über Summen-Funktionen aus den einzelnen Impulsen die entsprechenden Tages-, Monats- und Jahreswerte berechnen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SELECT
  timestamp as "time",
  sum(zaehlerstand)/100 as 'jährlicher Gasverbrauch'
FROM gaszaehler
GROUP BY year(timestamp)
ORDER BY year(timestamp) ASC;</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SELECT 
  timestamp as "time",
  sum(zaehlerstand)/100 as 'monatlicher Gasverbrauch'
FROM gaszaehler
WHERE year(timestamp) >= YEAR(CURRENT_DATE - INTERVAL 7 MONTH)
GROUP BY month(timestamp), year(timestamp)
ORDER BY month(timestamp)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SELECT 
  timestamp as "time",
  sum(zaehlerstand)/100 as 'täglicher Gasverbrauch'
FROM gaszaehler
WHERE timestamp >= DATE_SUB(NOW(),INTERVAL 7 DAY)
GROUP BY day(timestamp),month(timestamp), year(timestamp)
ORDER BY year(timestamp),month(timestamp),day(timestamp) asc</pre>



<p>Die Beschriftung der X-Achse erfolgt über einen &#8222;Override&#8220; im Grafana, da die Beschriftung der X-Achse sonst eher unschön wird. Hier im Bild ist ein solcher Override z.B: für den täglichen Verbrauch dargestellt.</p>



<figure class="wp-block-image size-medium"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-11-01-43.png"><img loading="lazy" decoding="async" width="300" height="133" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-11-01-43-300x133.png" alt="" class="wp-image-2177" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-11-01-43-300x133.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-11-01-43-768x340.png 768w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-11-01-43.png 788w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></figure>



<p>Anzeigen lasse ich mir die Diagramme von Grafana dann in der TabletUI von FHEM mittels iframe. Ja, ich nutze immer noch FHEM obwohl das sooo Old School ist und ich im Home Assistant doch alles per klicki klacki machen kann. Will ich aber nicht&#8230;</p>



<p>Mit TabletUI von FHEM schaut dann die Oberfläche mit den eingebundenen Diagrammen aus Grafana auch ganz nett aus.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07.png"><img loading="lazy" decoding="async" width="1024" height="501" src="http://blog.bubux.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07-1024x501.png" alt="" class="wp-image-2170" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07-1024x501.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07-300x147.png 300w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07-768x376.png 768w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07-1536x752.png 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/12/Bildschirmfoto-vom-2023-12-09-10-29-07-2048x1002.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Viel Spaß mit den Auswertungen.</p>



<p>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/gasverbrauch-graphisch-darstellen/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Now Spinning &#8211; Now Playing</title>
		<link>https://www.bubuxblog.de/now-spinning-now-playing/</link>
					<comments>https://www.bubuxblog.de/now-spinning-now-playing/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 29 Oct 2023 17:28:18 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Now PLaying]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[Schallplatten]]></category>
		<category><![CDATA[Vinyl]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2106</guid>

					<description><![CDATA[Wohin mit der Hülle der Vinylplatte während diese auf dem Plattenspieler dreht? Bisher lag die Hülle neben dem Plattenspieler. An sich ein guter Platz und kein Problem, aber es gibt ja auch schicke Halter im Internet. Diese zeigen meistens den Schriftzug "Now playing" oder "Now spinning" und halten die Platte mittels eines entsprechend geformten Holz-, Acryl- oder Metall-Konstruktes an der Wand, auf dem Sideboard oder wo auch immer. Das fand ich langweilig und daher musste eine andere Lösung her.]]></description>
										<content:encoded><![CDATA[
<p>Bei Hipstern und Männern zwischen 45 und 54 sind Vinyl-Schallplatten ja schon länger wieder voll angesagt. Als alter CD-Sammler (und vorher auch schon Schallplatten) bin auch irgendwann wieder dazu gekommen. Aber eher zufällig (oder weil ich zur zweiten Gruppe gehöre?). Über Kleinanzeigen hatte ich ein altes Röhrenradio gekauft (Blaupunkt &#8222;Wunschklang&#8220;) und der Verkäufer hatte noch einen Technics-Plattenspieler in der Ecke stehen den ich dort nicht stehen lassen konnte. Der war technisch etwas lädiert aber nach Reinigung der verharzten Mechanik, dem Einbau eines neuen Tonabnehmers und der Einstellung des Tonarms funktioniert er wieder einwandfrei.</p>



<p><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Aber nun die drängende Frage: </mark>Wohin mit der Hülle der Vinylplatte während diese auf dem Plattenspieler dreht? Bisher lag die Hülle neben dem Plattenspieler. An sich ein guter Platz und kein Problem, aber es gibt ja auch schicke Halter im Internet. Diese zeigen meistens den Schriftzug &#8222;Now playing&#8220; oder &#8222;Now spinning&#8220; und halten die Platte mittels eines entsprechend geformten Holz-, Acryl- oder Metall-Konstruktes an der Wand, auf dem Sideboard oder wo auch immer. Das fand ich langweilig und daher musste eine andere Lösung her.</p>



<p>Wenn schon so ein Halter da rum steht, kann der auch was tun während keine Schallplattenhülle drin steht. Was liegt da näher als mal wieder einen Mikrocontroller mit einem Display zu bemühen. Heraus gekommen ist ein erster Prototyp meines &#8222;Now Spinning&#8220;-Plattenhalters.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/10/20231028_171031-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2023/10/20231028_171031-1024x768.jpg" alt="" class="wp-image-2109" style="object-fit:cover" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Genutzt habe ich wieder einen NodeMCU mit ESP8266 und acht MAX7219 LED 8&#215;8 Matrix-Module. Mittels Taster, der von der eingestellten Schallplattenhülle gedrückt bleibt, wird die Anzeige auf einen dauerhaften Text (bei mir &#8222;NOW SPINNING&#8220;) gesetzt. Das folgende kurze Video zeigt die Funktion des Tasters (Entschuldigung für die Focus-Probleme&#8230;ich werde in diesem Leben kein You-Tuber mehr&#8230;):</p>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_2.mp4"></video></figure>



<p>Wird der Taster nicht betätigt (also die Platte wieder woanders verstaut), werden auf dem Display verschiedene Informationen angezeigt deren Anzeige im 5-Sekunden-Takt wechselt. Das wäre einmal die Innentemperatur die mittels BME280-Sensor erfasst wird und dann noch verschiedene weitere Daten die nicht lokal gemessen werden, sondern durch den Aufruf eines HTTP-Endpunktes des NodeMCUs an diesen &#8222;von aussen&#8220; übergeben werden.</p>



<p>Dieser HTTP-Post erfolgt durch ein einfaches PHP-Script welches per Cron auf einem Raspberry Pi aufgerufen wird. Die anzuzeigenden Daten werden von diesen Script aus meinem FHEM (ja, ich nutze immer noch FHEM und bin weiterhin sehr zufrieden damit) ausgelesen und die URL des NodeMCUs mit den zu übergebenen Daten aufgerufen. Aktuell werden fünf übergebene Argumente verarbeitet:</p>



<ul class="wp-block-list has-vivid-cyan-blue-color has-text-color">
<li style="font-style:italic;font-weight:200">Aussentemperatur</li>



<li style="font-style:italic;font-weight:200">Akkustand der PV-Anlage</li>



<li style="font-style:italic;font-weight:200">Aktuelle Leistung der PV-Anlage</li>



<li style="font-style:italic;font-weight:200">Temperatur des Wasserpuffers oben</li>



<li style="font-style:italic;font-weight:200">Temperatur des Wasserpuffers unten</li>
</ul>



<p>Der Aufruf der URL und die Übergabe der Daten an den NodeMCU schaut beispielhaft wie folgt aus:</p>



<pre class="wp-block-code alignwide"><code>&lt;ip_des_nodemcu&gt;/receivedata?aussentemperatur=17.3&amp;akkustand=67&amp;pv=1.5&amp;pufferoben=70&amp;pufferunten=56</code></pre>



<p>Das folgende Video zeigt den Wechsel der Daten:</p>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_1-2.mp4"></video></figure>



<p class="has-text-align-left has-white-color has-vivid-cyan-blue-background-color has-text-color has-background"><strong>PHP-Script zum übermitteln der Messwerte</strong></p>



<p>Im PHP-Script (<em>nowspinning.php</em>) werden die Reading-Daten aus FHEM per <em>CURL </em>abgefragt, dann die URL mit den Messwerten zusammen gebaut und anschliesend wiederum per <em>CURL </em>vom NodeMCU aufgerufen. Warum PHP: Weil´s für mich am schnellsten ging. Wenn ich mal Muße habe ändere ich es nach Python. Es funktioniert jedenfalls bisher völlig unproblematisch.</p>



<pre class="wp-block-code alignwide has-black-color has-text-color has-background" style="background-color:#fafafa"><code><code data-enlighter-language="php" class="EnlighterJSRAW">&lt;?php
function getFhemReading($readingName, $fhemUrl) {
    $fhemCmd = "list $readingName";
    $cmd = "curl -s \"$fhemUrl/fhem?cmd=".urlencode($fhemCmd)."&amp;XHR=1\"";    
    $output = shell_exec($cmd);
    $value = null;
    $match=explode(" ", $output);
    $match=array_filter($match);
    return str_replace(array("\r","\n"),'',end($match));
}

$fhemUrl = "http://&lt;url_zum_fhem&gt;:&lt;fhem_port&gt;";

$aussentemperatur = round(getFhemReading("Aussenthermometer temperature", $fhemUrl),1);
$akkustand = round(getFhemReading("MQTT2_openWB_Client SOC",$fhemUrl),1);
$pvleistung = round(getFhemReading("MQTT2_openWB_Client SolarPower",$fhemUrl)/1000,1);
$pufferoben = round(getFhemReading("HeizungPufferOben state",$fhemUrl),1);
$pufferunten = round(getFhemReading("HeizungPufferUnten state",$fhemUrl),1);

$cmd = "curl -s \"http://&lt;ip_nodemcu&gt;/receivedata?aussentemperatur=".$aussentemperatur."&amp;akkustand=".$akkustand."&amp;pvleistung=".$pvleistung."&amp;pufferoben=".$pufferoben."&amp;pufferunten=".$pufferunten."\"";

shell_exec($cmd);
?&gt;</code></code></pre>



<p>Hier der Aufruf des Scriptes in der Crontab alle 3 Minuten:</p>



<pre class="wp-block-code alignwide"><code>*/3 * * * * php /usr/local/bin/nowspinning.php</code></pre>



<p class="has-white-color has-vivid-cyan-blue-background-color has-text-color has-background"><strong>Code für den NodeMCU</strong></p>



<p>Der Code für den NodeMCU ist bisher relativ schnörkelfrei. Die WLAN-Zugangsdaten müssen aktuell noch fest im Code vergeben werden. Für das MAX7219 nutze ich die <em>Parola</em>-Bibliothek . Für den BME280 die Bibliothek von <em>Adafruit</em>. Der Schalter hängt an D0 und GND.</p>



<pre class="wp-block-code alignwide has-black-color has-text-color has-background" style="background-color:#fafafa"><code><code data-enlighter-language="cpp" class="EnlighterJSRAW">#include &lt;MD_Parola.h&gt;
#include &lt;MD_MAX72xx.h&gt;
#include &lt;SPI.h&gt;
#include &lt;Wire.h&gt;
#include &lt;Adafruit_Sensor.h&gt;
#include &lt;Adafruit_BME280.h&gt;
#include &lt;ESP8266WebServer.h&gt;

//WLAN
const char* ssid = "&lt;wlan_ssid&gt;";
const char* pass = "&lt;wlan_passwort&gt;";
ESP8266WebServer server(80);

// Hardwaretyp des MAX7219
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

// PINs und Anzahl der MAX-Elemente
#define MAX_DEVICES 8
#define CS_PIN 15

MD_Parola display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

// BME280
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C

//Schalter um Platte zu erkennen
int pinNowSpinning = D0; 

//Warteschleifen
unsigned long startMillisTemp;
unsigned long currentMillisTemp;
unsigned long startMillisWechsel;
unsigned long currentMillisWechsel;

//Externe Daten deklarieren
String aussentemperatur = "keine Daten";
String akkustand = "keine Daten";
String puffer = "keine Daten";
String pvleistung = "keine Daten";

//Sonstiges
int anzeigennummer=0;

void setup() {

  Serial.begin(115200); 

  display.begin();
  display.setIntensity(0);
  display.displayClear();
  display.setTextAlignment(PA_CENTER);
  
  pinMode(pinNowSpinning, INPUT); 

  bool status;
  status = bme.begin(0x76);  
  if (!status) {
    Serial.println("Kann BME Sensor nicht finden. Verkabelung prüfen!");
    while (1);
  }

  startMillisTemp = millis();
  startMillisWechsel = millis();

  //WLAN
  Serial.print("Verbinde zu: ");
  Serial.println(ssid);
  display.print("Verbinde Wifi");
  WiFi.begin(ssid, pass);
   
  while(WiFi.status() != WL_CONNECTED){
    delay(500); 
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi verbunden");
  Serial.print("IP-Adresse des ESP8266: ");  
  Serial.println(WiFi.localIP());
  display.displayClear();
  display.print(WiFi.localIP());
  delay(3000);

  //Webendpunkte
  server.on("/",handleRoot);
  server.on("/receivedata", receiveData);

  server.begin();
}

void loop() {
  //Client-Anfragen abfragen
  server.handleClient(); 

  if (digitalRead(pinNowSpinning) == HIGH) {
    //Text wenn eine Platte abgestellt ist    
    display.print("NOW SPINNING");
    Serial.println("Now Spinning");  
  } else {
    currentMillisWechsel = millis();    
    if (currentMillisWechsel - startMillisWechsel &gt;= 5000) {
      startMillisWechsel = currentMillisWechsel;
      anzeigennummer++;
      Serial.print("Anzeigenummer: ");
      Serial.println(anzeigennummer);
      switch (anzeigennummer) {
        case 1:
          //Temperatur alle 30 Sekunden abfragen
          currentMillisTemp = millis();        
          if (currentMillisTemp - startMillisTemp &gt;= 10000) {
            startMillisTemp = currentMillisTemp;
            String temperatur = String(bme.readTemperature());
            display.print("&gt; "+temperatur.substring(0,temperatur.length()-1)+" \"C");

            Serial.print("Temperatur: ");
            Serial.print(bme.readTemperature());
            Serial.println(" °C");

            Serial.print("Luftfeuchte: ");
            Serial.print(bme.readHumidity());
            Serial.println(" %");
          }
          break;
        case 2:
          display.print(aussentemperatur);
          Serial.println(aussentemperatur);          
          break;
        case 3:
          display.print(akkustand);
          Serial.println(akkustand);          
          break;
        case 4:
          display.print(pvleistung);
          Serial.println(pvleistung);          
          break;
        case 5:
          display.print(puffer);
          Serial.println(puffer);          
          break;
        default:
          // statements
          break;
      }
      if (anzeigennummer&gt;=5) { 
        anzeigennummer=0; 
        Serial.println("Anzeigenummer reset");
      }
    }  
  }
}

void handleRoot() {
  String message="&lt;h1&gt;Now Spinning&lt;/h1&gt;";
  message += "Das ist die lieblose Webseite des 'Now Spinning'-Anzeigers&lt;/br&gt;&lt;/br&gt;";
  message += "Temperatur: ";
  message += bme.readTemperature();
  message += " °C&lt;br&gt;";
  message += "Luftfeuchte: ";
  message += bme.readHumidity();
  message += " rel%&lt;br&gt;";
  server.send(200, "text/html", message);
}

void receiveData() {
  String message="&lt;h1&gt;Empfange Daten&lt;/h1&gt;";
  message += "Daten werden empfangen...&lt;/br&gt;&lt;/br&gt;";
  server.send(200, "text/html", message);

  Serial.println("Daten empfangen...");
 
  //Aussentemperatur
  Serial.print(server.argName(0));
  Serial.print(F(": "));
  Serial.println(server.arg(0));
  aussentemperatur="&lt; " + server.arg(0) + " \"C";

  //Akkustand
  Serial.print(server.argName(1));
  Serial.print(F(": "));
  Serial.println(server.arg(1));
  akkustand="Akku "+ server.arg(1) + "%";

  //PV Leistung
  Serial.print(server.argName(2));
  Serial.print(F(": "));
  Serial.println(server.arg(2));
  pvleistung="PV "+ server.arg(2) + "KW";

  //Puffer oben u. unten
  Serial.print(server.argName(3));
  Serial.print(F(": "));
  Serial.println(server.arg(3));
  Serial.print(server.argName(4));
  Serial.print(F(": "));
  Serial.println(server.arg(4));
  puffer = "- " + server.arg(3) + "  _ " + server.arg(4); 
}</code></code></pre>



<p>Schaltungsplan von <em>Fritzing </em>kommt noch und wenn ich mal Zeit finde, packe ich den Code auch noch nach Github.</p>



<p class="has-white-color has-vivid-cyan-blue-background-color has-text-color has-background"><strong>Holzarbeiten</strong></p>



<p></p>



<p>Hier hat mir dankenswerterweise Arnim (der immer mit meinen Kritzeleien zurecht kommen muss) sehr geholfen und hat mir einen ersten Prototyp aus Fichte gebaut.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_170436-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="368" src="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_170436-1024x368.jpg" alt="" class="wp-image-2143" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-1024x368.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-300x108.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-768x276.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-1536x552.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-2048x735.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die Nut um die Platte zu halten, wurde mit leicht schräg gestelltem Sägeblatt der Tischkreissäge angefertigt und ist etwa 1 cm breit. Der vordere Ausschnitt um den NodeMCU und das Display unter zu bringen ist mit der Oberfräse gefräst. </p>



<p>Den Taster hab ich von unten in ein zweistufig gebohrtes Loch mit Heißkleber befestigt. Im Bild unten ist der Taster als kleines schwarzes Ding zu erkennen. Die Kabel des Schalters sind dann schräg nach vorne in die Ausfräsung verlegt.</p>



<p>Das Anschlusskabel verläuft duch eine Bohrung unter der Nut für die Platte und dann auch schräg nach oben in die Ausfräsung. Hier hab ich ein normales Micro-USB-Kabel genutzt, kurzerhand durchgeschnitten und wieder zusammengelötet.</p>



<p>Für die Unterbringung des Temperatursensors brauche ich noch eine gute Lösung. Dieser liegt aktuell einfach mit in der Ausfräsung in der Ecke. Ich kann mir aber vorstellen, dass dort durch das Display und den NodeMCU die Messung verfälscht wird.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_150153-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_150153-768x1024.jpg" alt="" class="wp-image-2123" style="aspect-ratio:0.75;object-fit:cover" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-768x1024.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-225x300.jpg 225w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-1152x1536.jpg 1152w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-1536x2048.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<p class="has-white-color has-vivid-cyan-blue-background-color has-text-color has-background has-medium-font-size"><strong>Todo´s</strong></p>



<p>Es ist ja der erste Prototyp des &#8222;Now spinning&#8220;-Plattenhüllenhalters und an der Software als auch an der Hardware (für den Mikorcontroller und den Halter selber) ist noch ein bisschen was zu tun. Spontan fällt mir da noch folgendes ein:</p>



<ul class="wp-block-list">
<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Acrylfront (dunkelrot oder milchig&#8230;muss ich mal testen) und Frage der Befestigung</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Helligkeitssensor mittels simplem LDR (wenn dunkel, dann dunkler. wenn Heller, dann heller)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Uhrzeit (entweder per POST mit den anderen Messwerten übergeben oder Echtzeituhr-Modul)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Übergabe der Messwerte etwas flexibler gestalten (ohne das bei neuen Werten der Code des NodeMCU geändert werden muss sondern nur beim Aufruf der URL)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Maximalzeit nach der &#8222;Now Spinning&#8220; wieder zu der Anzeige der anderen Daten wechselt</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">&#8222;Now spinning&#8220; abwechselnd mit einen Spektrum Analyzer (FFT) per Mikrofon aufgenommen</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Einen besseren Platz für den internen Temperatur-Sensor</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Den Halter aus Eiche anstatt Fichte (Grüße an die Fräser)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Die Luftfeuchte vom BME280 anzeigen</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Befestigung des Temperatursensors</mark></li>
</ul>



<p>Das war´s erstmal. Falls ihr Den Plattenhalter nachbauen wollt, würde ich mich über Erfahrungen, Verbesserungen, weitere Ideen und Bilder freuen. Bis dahin</p>



<p>Gruß Chris</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/now-spinning-now-playing/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		<enclosure url="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_2.mp4" length="22293629" type="video/mp4" />
<enclosure url="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_1-2.mp4" length="58765390" type="video/mp4" />

			</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>Füllstandsmessung der Zisterne mittels ESP8266 (NodeMCU) und Ultraschallsensor</title>
		<link>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/</link>
					<comments>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Fri, 28 Dec 2018 13:55:13 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Füllstand]]></category>
		<category><![CDATA[Messung]]></category>
		<category><![CDATA[NodeMCU]]></category>
		<category><![CDATA[SR04]]></category>
		<category><![CDATA[Ultraschall]]></category>
		<category><![CDATA[Zisterne]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1699</guid>

					<description><![CDATA[Update vom 14.06.2020 hier Heute nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt. Zu den alten Artikeln geht es hier und hier. Im folgenden werden alle notwendigen Schritte beschrieben [&#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 nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt.</p>



<p>Zu den alten Artikeln geht es <a rel="noreferrer noopener" aria-label="hier  (opens in a new tab)" href="http://blog.bubux.de/homematik-zisterne/" target="_blank">hier </a>und <a rel="noreferrer noopener" aria-label="hier (opens in a new tab)" href="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/" target="_blank">hier</a>.</p>



<p>Im folgenden werden alle notwendigen Schritte beschrieben um die Firmware auf den ESP8266 zu flashen und den Sensor in Betrieb zu nehmen.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



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



<p>Die benötigte Hardware besteht aus einem NodeMCU mit ESP8266 und einem HC-SR04 Ultraschallsensor. Die Beschaltung folgt weiter unten.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/20181228_125117-2-1024x643.jpg" alt="NodeMCU" class="wp-image-1755" width="256" height="161"/></figure></div>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/20181228_125052-1-1024x733.jpg" alt="HC-SR04 Ultraschallsensor" class="wp-image-1753" width="256" height="183"/></figure>



<p>Dann noch ein mindestens vieradriges Kabel und ein Gehäuse zur Unterbringung des Ultraschallsensors in der Zisterne z.B. eine kleine Aufputzdose aus dem Baumarkt.</p>



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



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Firmware installieren</h2>



<p>Zur Installation der Firmware auf dem ESP8266 muss zuerst die Arduino Software auf einem PC installiert werden. Diese ist für Linux, Windows und MAC unter <a href="https://www.arduino.cc/en/main/software">https://www.arduino.cc/en/main/software</a> verfügbar.</p>



<hr class="wp-block-separator"/>



<p>Um in der Arduino IDE den ESP8266 nutzen zu können, muss in den Einstellungen (Datei -&gt; Voreinstellungen) in das Feld „Zusätzliche Boardverwalter URLs“ folgende URL eingetragen werden: <em>http://arduino.esp8266.com/stable/package_esp8266com_index.json</em><br></p>



<hr class="wp-block-separator"/>



<p>Dann unter  „Werkzeuge -&gt; Board … -&gt; Boardverwalter&#8230;“ nach „esp8266“ suchen und „esp8266 by ESP8266 Community“ installieren. Hiermit werden u.a. die Tools zum flashen der Firmware auf den ESP8266 installiert.</p>



<hr class="wp-block-separator"/>



<p>Herunterladen der aktuellsten Firmware für die Füllstandmessung der Zisterne <a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a>.</p>



<hr class="wp-block-separator"/>



<p>Den NodeMCU mit dem Rechner verbinden. In der Arduino IDE unter  „<em>Werkzeuge -&gt; Port&#8220;</em> den COM-Port des NodeMCU ermitteln. Das Flashen der Firmware funktioniert leider nicht direkt aus der Arduino IDE heraus. Hierfür muss die Kommandozeile bemüht werden:</p>



<p><strong>Flashen des ESP8266 unter Windows</strong></p>



<p>Unter Windows dazu die Kommandozeile öffnen (cmd.exe) und dort den folgenden Befehl eingeben:</p>



<p> %USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.8\esptool.exe  -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp <em>COMXY</em> -cf <em>Pfad_zur_Firmwaredatei</em></p>



<p>Wichtig: Die Versionsnummer des <em>esptool </em>kann ggf. abweichen, das Device hinter <em>-cp</em> (<em>COMxy</em>) muss entsprechend angepasst werden sowie der Pfad zur Firmwaredatei muss entsprechend angepasst werden.</p>



<p><strong>Flashen des ESP8266 unter Linux</strong></p>



<p>Auf der Kommandozeile folgenden Befehl ausführen:</p>



<p>~/.arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp <em>/dev/ttyxxxx</em> -cf&nbsp;<em>Pfad_zur_Firmwaredatei</em></p>



<p>Wichtig: Die Versionsnummer des esptool kann ggf. abweichen, das Device hinter <em>-cp</em> muss entsprechend angepasst werden sowie der Pfad zur Firmwaredatei muss entsprechend  angepasst  werden.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Anschluss des Sensors</h2>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_nodemcu.jpg" alt="" class="wp-image-1659" width="241" height="186" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu.jpg 963w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-300x232.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-768x593.jpg 768w" sizes="auto, (max-width: 241px) 100vw, 241px" /></figure></div>



<p>Von HC-SR04 an NodeMCU:</p>



<p>Vcc an VU<br>Gnd an GND<br>Trig an D2<br>Echo an D1</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



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



<p>Ist die Firmware auf den NodeMCU geflasht und der SR04-Ultraschallsensor angeschlossen, kann die Inbetriebnahme erfolgen. Dazu den Sensor mit Strom versorgen.</p>



<hr class="wp-block-separator"/>



<p>Der Sensor versucht sich mit einem konfigurierten WLAN zu verbinden. Funktioniert dies nicht (was bei der ersten Inbetriebnahme der Fall ist), erstellt der Sensor einen WLAN Accesspoint mit dem Namen  „<em>WLAN-Zisterne</em>&#8220; der z.B. im Smartphone gefunden werden sollte. Mit diesem WLAN verbinden.</p>



<hr class="wp-block-separator"/>



<p>Nun im Browser des verbundenen Gerätes die Adresse <em>http://192.168.4.1</em> aufrufen. Diese Adresse wird in der Regel auch in den Verbindungseinstellungen des verbundenen WLAN angezeigt und verlinkt. Es öffnet sich nun die Konfigurationsseite des Sensors.</p>



<hr class="wp-block-separator"/>



<p>Dort die SSID und das Passwort des Heim-WLAN eingeben und auf &#8222;Konfiguration speichern&#8220; klicken. Die weiteren Einstellungen können später erfolgen.</p>



<hr class="wp-block-separator"/>



<p>Der Sensor startet daraufhin neu und versucht sich mit dem Heim-WLAN zu verbinden. War dies erfolgreich ist der Accesspoint nicht mehr erreichbar und des Sensor sollte eine IP-Adresse im Netzwerk zugewiesen bekommen haben. Diese kann im Router nachgeschaut werden )in der Friztbox z.B. unter &#8222;<em>Heimnetz -&gt; Netzwerk</em>&#8222;).</p>



<hr class="wp-block-separator"/>



<p>Ist der Accespoint „<em>WLAN-Zisterne</em>&#8220; weiterhin sichbar, war die Verbindung mit den Heim-WLAN nicht erfolgreich. Dann die obigen Schritte erneut ausführen.<br></p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



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



<p>Die Oberfläche des Sensor ist nun im Browser nach Eingabe der IP-Adresse verfügbar. Für den weiteren Betrieb müssen zuerst weitere Einstellungen vorgenommen werden. Dazu den Bereich &#8222;<em>Sonstiges</em>&#8220; aufklappen und auf &#8222;<em>Konfiguration&#8220;&nbsp;</em>klicken.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_sensor_all.png" alt="" class="wp-image-1703" width="260" height="443" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor_all.png 519w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor_all-176x300.png 176w" sizes="auto, (max-width: 260px) 100vw, 260px" /></figure></div>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/konfig_sensor.png" alt="" class="wp-image-1705" width="260" height="443" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/konfig_sensor.png 519w, https://www.bubuxblog.de/wp-content/uploads/2018/12/konfig_sensor-176x300.png 176w" sizes="auto, (max-width: 260px) 100vw, 260px" /></figure>



<p><strong>Einstellungen des Sensors</strong></p>



<p>Unter <em>&#8222;Abstand Sensor/Boden&#8220;</em> muss der Abstand in Zentimeter zwischen Sensor und Boden der Zisterne angegeben werden. Unter <em>&#8222;Abstand Sensor/Max. Höhe&#8220;</em> muss der Abstand zwischen Sensor und Wasseroberfläche bei maximalen Wasserstand angebenen werden. Ist die Zisterne nicht voll, kann der Wert auch jederzeit korrigiert werden</p>



<hr class="wp-block-separator"/>



<p><strong>Daten an eigene API übergeben</strong></p>



<p>Die Daten des Sensors können an eine eigene Schnittstelle übergeben werden. Hierzu kann ein Server, Port und der Pfad angegeben werden. Die Sensordaten werden als Argumente in der URL angehangen. So kann z.B. ein PHP-Script auf dem Server aufgerufen werden welches die angehangenen Argumente empfängt und weiter verarbeitet (z.B. an FHEM übergibt oder in eine Datenbank schreibt.</p>



<p>Update 20.07.2019</p>



<p>Die URL für die eigene API kann mit zwei Variablen frei definiert werden. Dazu die Variablen &#8222;_abstand&#8220; und &#8222;_fuellstand&#8220; in einer beliebigen URL nutzen. Im NodeMCU werden die beiden Platzhalter durch die echten Werte ersetzt.</p>



<p>Zum Beispiel wird aus der konfigurierten URL:<br><em>/umwelt/zisterne_neu.php?abstand=_abstand&amp;fuellstand=_fuellstand</em><br>beim Aufruf der eigenen API dann:<br><em>/umwelt/zisterne_neu.php?abstand=29&amp;fuellstand=100.00&amp;vcc=2.75 </em></p>



<p>Hier ein Beispielscript welches das Schreiben der Werte in eine Textdatei und in eine MySQL-Datenbank vornimmt sowie die Übergabe der Werte an eine FHEM-Installation:</p>



<pre class="wp-block-code"><code>&lt;?php

$fuellstand=$_GET&#91;"fuellstand"];
$abstand=$_GET&#91;"abstand"];
$vcc=$_GET&#91;"vcc"];

//*************************
// Werte in Datei schreiben
//*************************
$datum = date("d.m.Y H:i");
$handle = fopen ('zisterne.txt', 'a');
fwrite ($handle, $datum.",".$fuellstand.",".$abstand."\n");
fclose ($handle);

//****************************
//Werte in Datenbank schreiben
//****************************
$servername = "localhost";
$username = "benutzer";
$password = "passwort";
$dbname = "dbname";

$connection = new mysqli($servername, $username, $password, $dbname);
if ($connection->connect_error) {
        die("Connection failed: " . $connection->connect_error);
}
$sql = "INSERT INTO zisterne (timestamp,fuellstand,spannung) VALUES (CURRENT_TIMESTAMP,$fuellstand,$vcc)";
if ($connection->query($sql) === TRUE) {
        //echo "INSERT war erfolgreich";
} else {
        echo "Error: " . $sql . "&lt;br>" . $connection->error;
}

//***********************
//Werte an FHEM übergeben
//***********************
$fhemhost = "192.168.178.1";
$fhemport = 7072;
$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneFuellstand ".$fuellstand."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);

$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneSpannung ".$vcc."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);
?></code></pre>



<hr class="wp-block-separator"/>



<p><strong>Daten an bubux.de übergeben</strong></p>



<p>Steht kein eigener Server zur Historisierung der Daten zur Verfügung, können die gemessenen Werte an bubux.de gesendet werden. Dort ist (aktuell) eine Auswertung des letzten 30 Tage verfügbar und wird graphisch dargestellt. Nach der Aktivierung mittels der Checkbox ist ein entsprechender Link auf der Startseite des Sensors verfügbar.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378.png" alt="" class="wp-image-1704" width="389" height="422" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378.png 518w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378-277x300.png 277w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<p>Es werden der prozentuale Füllstand, die MAC-Adresse zur Zuordnung der Daten, die lokale IP des Sensors zur Verlinkung von der Webseite auf bubux.de zur Webseite des Sensors und die Version der Firmware übergeben.</p>



<hr class="wp-block-separator"/>



<p><strong>Startseite des Sensors</strong></p>



<p>Sind alle Einstellungen vorgenommen kann der Sensor genutzt werden. Auf der Startseite werden der prozentuale Füllstand und der aktuelle Abstand zwischen Sensor und Wasseroberfläche angezeigt.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286.png" alt="" class="wp-image-1702" width="389" height="463" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286.png 518w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286-252x300.png 252w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



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



<p>Da der Einbau je nach Zisterne individuell ist, will ich nicht viel Worte darüber verlieren. Nur soviel, das ich den Sensor in ein Baumarkt-Aufputzdose gepackt habe und mit Heißkleber &#8222;vergossen&#8220; haben. Harz wäre wahrscheinlich besser gewesen, aber der Sensor funktioniert bisher einwandfrei. Der Sensor hängt nach unten an einem Brett in der Zisterne. Der NodeMCU ist an ein etwa 6m langes Kabel angeschlossen und ist in einem Lagerräumchen untergebracht.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg" alt="" data-id="1653" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103325/" class="wp-image-1653" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg" alt="" data-id="1652" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103233/" class="wp-image-1652" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg" alt="" data-id="1651" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103143/" class="wp-image-1651" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>Ich würde mich über Rückmeldungen (Fehler, Verbesserungswünsche, &#8230;) bzgl. der neuen Firmwareversion freuen. Todo wäre noch die Daten per JSON abrufbar zu machen und z.B. ein Plugin für FHEM zu bauen.</p>



<p>Viel Spaß beim basteln!</p>



<p>Chris<br></p>



<p><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/feed/</wfw:commentRss>
			<slash:comments>118</slash:comments>
		
		
			</item>
		<item>
		<title>Füllstandmessung der Zisterne (2ter Ansatz)</title>
		<link>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-2ter-ansatz/</link>
					<comments>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-2ter-ansatz/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Tue, 21 Aug 2018 19:45:10 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[ESP]]></category>
		<category><![CDATA[Füllstand]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Füllstandssensor]]></category>
		<category><![CDATA[Ultraschallsensor]]></category>
		<category><![CDATA[Zisterne]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1593</guid>

					<description><![CDATA[&#160; Die aktuelle Trockenheit zum Anlass genommen, habe ich den schon länger nicht mehr funktionierenden Füllstandsensor der Zisterne von Homematic gegen eine Eigenbaulösung ausgetauscht. Leider scheint der eigentlich recht teure Homematic-Sensor &#8222;Hm-Sen-Wa-Od&#8220; den klimatischen Gegebenheiten in der Zisterne auf Dauer nicht gewachsen zu sein. Zudem hatte ich immer Empfangsprobleme bzw. war es auch extrem nervig [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>&nbsp;</p>


<p>Die aktuelle Trockenheit zum Anlass genommen, habe ich den schon länger nicht mehr funktionierenden <a href="http://blog.bubux.de/homematik-zisterne/" target="_blank" rel="noopener">Füllstandsensor der Zisterne</a> von Homematic gegen eine Eigenbaulösung ausgetauscht. Leider scheint der eigentlich recht teure Homematic-Sensor &#8222;Hm-Sen-Wa-Od&#8220; den klimatischen Gegebenheiten in der Zisterne auf Dauer nicht gewachsen zu sein. Zudem hatte ich immer Empfangsprobleme bzw. war es auch extrem nervig das Ding zu eichen. Jedenfalls hat der Sensor an Undichtigkeit gelitten und hat seinen Dienst eingestellt.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180804_124227.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-1596 size-medium" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180804_124227-300x225.jpg" alt="" width="300" height="225" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180804_124227-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180804_124227-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180804_124227-1024x768.jpg 1024w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180804_124203.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-1597 size-medium" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180804_124203-300x225.jpg" alt="Oxidiertes Homematic Funkteil" width="300" height="225" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180804_124203-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180804_124203-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180804_124203-1024x768.jpg 1024w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Die Bilder zeigen die Platine, nachdem ich sie von Grünspan befreit hatte. Speziell das Funkmodul sieht etwas mitgenommen aus.</p>
<p>Da ich nicht nochmal soviel Geld zur Füllstandmessung der Zisterne ausgeben wollte, musste eine andere Lösung her.</p>
<p><span id="more-1593"></span></p>
<h1>Füllstandmessung mittels Ultraschall</h1>
<p>Der neue Ansatz funktioniert mit einem Ultraschallsensor betrieben an einem NodeMCU mit ESP8266. Der Ultraschallsensor ist ein sehr kostengünstiger Sensor vom Typ <em>HC-SR04</em> der im Dreierpack für unter 10€ zu bekommen ist. Der Sensor kann Distanzen von 2 &#8211;&nbsp; 300 cm messen. Das sollte für die meisten Zisternen ausreichend sein. Meine Zisterne hat etwa eine Höhe von 1,60 m zwischen Boden und dem Sensor. Die Versorgungsspannung des Sensors beträgt 5V. Das kommt dem Einsatz des NodeMCU entgegen, da er mit 5V betrieben wird und die für den &#8222;integrierten&#8220; ESP8266 benötigten 3V selbst herstellt. Man spart sich somit eine separate Spannungsversorgung für den Sensor, wenn man einen &#8222;richtigen&#8220; ESP8266 nutzen würde.</p>
<p>Ich verfolge bei der Füllstandmessung bezüglich der Software den gleichen Ansatz wie beim <a href="http://blog.bubux.de/windsensor-tx20-mit-esp8266/" target="_blank" rel="noopener">Windmesser</a>. Der NodeMCU misst mittels des HC-SR04 den Abstand zu Wasseroberfläche und &#8222;übergibt&#8220; das Messergebnis an ein PHP-Script. Das Intervall kann mittels <em>sleepTimeS</em> eingestellt werden. Im unten stehenden Sketch ist es Beispielhaft auf 10 Minuten eingestellt. In der anderen Zeit befindet sich der ESP im &#8222;Deep Sleep&#8220;. Das PHP-Script wiederum macht die eigentliche Verarbeitung der Daten. Im Beispielscript werden die Messwerte in eine Textdatei geschrieben, in einer MySQL-Datenbank gespeichert und per Telnet an den FHEM-Server übermittelt.</p>
<p>Das war der Schnelldurchlauf. Hier jetzt alles nochmal etwas detaillierter&#8230;</p>
<h2>Sketch für den NodeMCU</h2>
<p>Folgender Sketch muss mittels <a href="https://www.arduino.cc/en/Main/Software" target="_blank" rel="noopener">Arduino IDE</a> auf den NodeMCU geladen werden (zu Beginn des Schreibens der Software auf den Mikrocontroller den &#8222;Flash&#8220;-Knopf am NodeMCU drücken). Das Hochladen des Sketch auf den NodeMCU ohne angeschlossenen Sensor und Verkabelung für den DeepSleep (siehe weiter unten) durchführen.</p>
<p>Vorher müssen die im folgenden Script gelb markierten Zeilen entsprechend angepasst werden: Den Wert der Variablen <em>url</em> zur Webadresse des PHP-Scriptes (siehe weiter unten) setzen, welches z.B. auf einen Webserver auf einem Raspberry PI oder einem Odroid etc. erreichbar ist.</p>
<p>Der Sketch benötigt die Bibliothek <a href="https://playground.arduino.cc/Code/NewPing" target="_blank" rel="noopener">NewPing von Tim Eckel</a> sowie die auch schon beim Windsensor genutzte <a href="https://github.com/esp8266/Arduino/tree/master/doc/esp8266wifi" target="_blank" rel="noopener">Wifi-Bibliothek</a>. Mit der Variablen <em>sleepTimeS</em> kann man ggf. variieren um den ESP in einen DeepSleep zu versetzen. Allerdings ist die Maximalzeit etwa 71 Minuten, da die Angabe von <em>ESP.deepSleep</em> in Millisekunden angegeben werden muss und die Variable ansonsten überläuft.</p>
<p>Der NodeMCU misst dann mittels des Ultraschallsensors den Abstand zur Wasseroberfläche und übermittelt diesen Wert und die Betriebsspannung als Parameter in der URL zum PHP-Script auf dem Webserver.</p>
<pre class="lang:arduino mark:19,20,22,23,107 decode:true ">/*
***********************************
* Ultraschallsensor SR04 an NodeMCU
***********************************
*/

#include &lt;ESP8266WiFi.h&gt;
#include &lt;NewPing.h&gt;


#define TRIGGER   4
#define ECHO      5
#define MAX_DIST  300
#define DEBUG true

NewPing sonar(TRIGGER, ECHO, MAX_DIST); 

// WLAN Zugangsdaten
const char* ssid      = "wlan_ssid";
const char* password  = "wlan_passwort";
// Host zum senden der Daten
const char* datahost  = "ip_des_hosts";
const int sleepTimeS = 10 * 60;  // 10 Min


int abstand;

WiFiServer server(80);
ADC_MODE(ADC_VCC);

// Verbindung zum WLAN aufbauen
void verbinden() {
  if(DEBUG) {
    delay(10);
    Serial.println("");
    Serial.print(F("Verbinde zu WLAN-Netzwerk '"));
    Serial.print(ssid);
    Serial.print("' ");
  }
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
 
  if(DEBUG) {
    Serial.println(F("-&gt; Verbunden"));  
    Serial.print(F("IP-Adresse: "));
    Serial.print(WiFi.localIP());
    Serial.println("");
  }
  //sendData();
}


void setup() {  
  Serial.begin (115200);
  //abstand = sonar.ping_cm();
  verbinden();
  if(DEBUG) {
    Serial.println("Abstand: ");
    Serial.print(abstand);
  }
  sendData();
}


void loop() {
  if(DEBUG) {
    Serial.println("");
    Serial.print("Gehe schlafen fuer ");
    Serial.print(sleepTimeS);
    Serial.print(" Sekunden");
  }
  
  ESP.deepSleep(sleepTimeS * 1000000);

  verbinden();
  sendData();
}


// Verbindung zu Host herstellen und Sensordaten übermitteln
void sendData() 
{
  Serial.println("");
  Serial.print(F("Verbinde zu '"));
  Serial.print(datahost);
  Serial.print("'");
   
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(datahost, httpPort)) {
    Serial.println(F(" Fehler beim Verbinden zum Host"));
    return;
  }

  abstand = sonar.ping_cm();  
  if(DEBUG) {
    Serial.println("Abstand: ");
    Serial.print(abstand);
  }

  // Batteriespannung auslesen
  float vcc = ESP.getVcc() / 1000.0;

  String url = "/umwelt/zisterne.php";
  url += "?abstand=";
  url += abstand;
  url += "&amp;vcc=";
  url += vcc;

  Serial.println("");
  Serial.print("URL-Anfrage: ");
  Serial.println(url);
   
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + datahost + "\r\n" + 
               "Connection: close\r\n\r\n");
  unsigned long timeout = millis();
  while (client.available() == 0) {
    if (millis() - timeout &gt; 5000) {
      Serial.println("[Client Timeout]");
      client.stop();
      return;
    }
  }
   
  // Lese alle Daten aus der Antwort des Servers
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
  Serial.println("");
  Serial.print(F("Verbindung zu '"));
  Serial.print(datahost);
  Serial.println(F("' beendet."));
}</pre>
<p>&nbsp;</p>
<h2>PHP Script</h2>
<p>Das PHP-Script muss auf einem Webserver (z.B. Apache)&nbsp; gelegt werden. Die URL, unter der diese Seite zu erreichen ist, muss ohne Hostnamen oder IP in dem obigen Arduino-Sketch eingetragen werden.</p>
<p>Das Script berechnet die Menge des enthaltenen Regenwassers nicht in m³ oder Liter sondern nur den prozentualen Füllstand. Um das auf die jeweilige Zisterne anzupassen, müssen die beiden Werte &#8222;<em>Abstand Sensor-Wasseroberfläche</em>&#8220; (bei Maximalstand) und der &#8222;<em>Abstand des Sensors zum Zisternenboden</em>&#8220; gemessen und eingetragen werden (beide Werte in cm). Das ist recht einfach und wesentlich schneller erledigt als die Eichung des Homematic-Sensors.</p>
<p>Je nachdem wie die gemessenen Daten verarbeitet werden sollen, müssen verschiedene Anpassungen im Script vorgenommen werden:</p>
<p>1) Das Script sieht aktuell eine Speicherung der Messwerte in einer Datei auf dem Server vor (Pfad &amp; Name anpassen),</p>
<p>2) Die Speicherung in einer MySQL-Datenbank (Verbindungsdaten anpassen und Tabelle in MySQL anlegen (DDL für Datenbanktabelle ist unter dem PHP-Script zu finden).</p>
<p>3) Die Übergabe der Messwerte an einen FHEM-Server (Hostname oder IP und ggf. Port eintragen). In FHEM müssen dazu zwei <a href="https://wiki.fhem.de/wiki/Dummy" target="_blank" rel="noopener">Dummy-Felder</a> <em>ZisterneFuellstand</em> und <em>ZisterneSpannung</em> eingerichtet werden.</p>
<p>Die ggf. zu ändernden Zeilen sind im Script gelb markiert.</p>
<pre class="lang:default mark:10,11,18,25,26,27,28,44 decode:true">&lt;?php

$fuellstand=$_GET["abstand"];
$abstand=$fuellstand;
$vcc=$_GET["vcc"];

//******************************************
// Umrechung des Abstandes in die Fuellhoehe
//******************************************
$abstand_sensor_wasser_max=40;  //Sensor bis Wasseroberfläche bei max. Wasserstand
$abstand_sensor_wasser_min=151; //Sensor bis Grund Zisterne
$fuellstand=(($fuellstand-$abstand_sensor_wasser_min)/($abstand_sensor_wasser_max-$abstand_sensor_wasser_min))*100;

//*************************
// Werte in Datei schreiben
//*************************
$datum = date("d.m.Y H:i");
$handle = fopen ('tmp/zisterne.txt', 'a');
fwrite ($handle, $datum.",".$fuellstand.",".$abstand."\n");
fclose ($handle);

//****************************
//Werte in Datenbank schreiben
//****************************
$servername = "dbserver";
$username = "dbuser";
$password = "dbpasswort";
$dbname = "dbname";

$connection = new mysqli($servername, $username, $password, $dbname);
if ($connection-&gt;connect_error) {
        die("Connection failed: " . $connection-&gt;connect_error);
}
$sql = "INSERT INTO zisterne (timestamp,fuellstand,spannung) VALUES (CURRENT_TIMESTAMP,$fuellstand,$vcc)";
if ($connection-&gt;query($sql) === TRUE) {
        //echo "INSERT war erfolgreich";
} else {
        echo "Error: " . $sql . "&lt;br&gt;" . $connection-&gt;error;
}

//***********************
//Werte an FHEM übergeben
//***********************
$fhemhost = "ip_fhem_host";
$fhemport = 7072;
$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneFuellstand ".$fuellstand."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);

$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneSpannung ".$vcc."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);
?&gt;
</pre>
<h3>DDL für MySQL-Tabelle</h3>
<pre class="lang:tsql decode:true">CREATE TABLE `zisterne` (
  `timestamp` datetime NOT NULL,
  `fuellstand` float NOT NULL,
  `spannung` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;</pre>
<h2>Verkabelung</h2>
<p>Die Verkabelung des Ultraschall-Sensors mit dem NodeMCU ist sehr einfach. Da der NodeMCU 5V am Pin &#8222;VU&#8220; vom USB-Anschluss durchreicht, braucht es keine weitere Beschaltung mit Widerständer etc.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_nodemcu-1.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1663" src="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_nodemcu-1.jpg" alt="" width="963" height="744" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-1.jpg 963w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-1-300x232.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-1-768x593.jpg 768w" sizes="auto, (max-width: 963px) 100vw, 963px" /></a></p>
<p>Der &#8222;<em>Trigger</em>&#8220; des Sensors ist im Arduino-Script an Pin 4 definiert. GPIO 4 entspricht beim NodeMCU dem Anschluss <em>D2 </em>(Grün).</p>
<p>&#8222;<em>Echo</em>&#8220; ist im Script an Pin 5 definiert. GPIO 5 ist beim NodeMCU der Anschluss <em>D1 </em>(Blau).</p>
<p>&#8222;<em>GND</em>&#8220; des Sensors an einen der <em>GND-Pins</em> des NodeMCU (Schwarz).</p>
<p>&#8222;<em>VCC</em>&#8220; an <em>VU</em> am NodeMCU. Hier werden die 5V des USB-Anschlusses durchgereicht (Rot).</p>
<p><strong>Wichtig:</strong> Damit der ESP auch wieder aus seinem 10-minütigem Tiefschlaf erwacht, muss der <em>RST</em>-Eingang des NodeMCU mit <em>D0</em> verbunden werden (Violett). D0 ist ein spezieller Pin mit einer Wake-Eigenschaft. Mehr dazu im Internet, wenn ihr nach &#8222;ESP8266 deepsleep&#8220; sucht. Ist diese Brücke nicht angeschlossen, übermittelt der NodeMCU genau einmal einen Wert und geht dann für immer Schlafen solange er am Strom bleibt.</p>
<p>Das war es dann auch schon mit der Verkabelung. Hier noch zwei Bilder meines NodeMCU den ich außerhalb der Zisterne in einem Nebenraum betreibe.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_102947-1.jpg"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1665" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_102947-1-1024x768.jpg" alt="" width="768" height="576" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_102947-1-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_102947-1-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_102947-1-768x576.jpg 768w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a> <a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103001-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-1666 size-large" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103001-1-1024x768.jpg" alt="NodeMCU (Oberseite)" width="768" height="576" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103001-1-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103001-1-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103001-1-768x576.jpg 768w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<h2>Einbau</h2>
<p>Der Ultraschallsensor ist nicht wasserdicht! Ich habe die Platine daher in eine kleine Aufputzdose aus dem Baumarkt gepackt und vorsichtig mit Heißkleber eingegossen. Ich hatte etwas bedenken das mir die SMD-Widerstände durch den heißen Kleber entgegen geschwommen kommen, es hat aber funktioniert. Dann noch die Kabeldurchführung und die Bohrungen rund um die beiden Sensoren mit Kleber füllen. Da der Sensor preisgünstig ersetzt werden kann, versuche ich es erstmal mit deser Lösung. Falls ich alle 3 Wochen in die Zisterne krabbeln muss um den Sensor zu erneuern, kommt vielleicht die wasserdichte Variante&nbsp;K-14WP10 zum Einsatz.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103325.jpg"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1653" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg" alt="" width="768" height="576" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-768x576.jpg 768w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a> <a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103233.jpg"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1652" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg" alt="" width="768" height="576" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-768x576.jpg 768w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Der Sensor hängt nun wie auch schon der erste Sensor von Homematic einfach an einem Brett, welches auf dem oberen Ring der Zisterne aufliegt.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103143.jpg"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1651" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg" alt="" width="768" height="576" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-768x576.jpg 768w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<h2>Ergebnis</h2>
<p>Der NodeMCU übermittelt die vom Sensor gemessen Abstände im 10 Minutentakt an das PHP-Script. Dort werden die Werte mittels der im Script hinterlegten Abstände in den aktuellen prozentualen Füllstand gerechnet und in die Datei/Datenbank/FHEM geschrieben.</p>
<p>In den folgenden Bildern sind die Graphen der TabletUI aus den FHEM-Daten zu sehen. Es sind einige Peaks zu erkennen deren Grund ich noch nicht weiß. Vielleicht verrichtet eine Spinne ihre Arbeit unterhalb des Sensors&#8230;</p>
<p>Allerdings lässt sich auch trotz dieser Peaks der Füllstand gut ablesen. Man sieht wenn es geregnet hat und wann Wasser entnommen wurde.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_füllstand.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1655" src="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_füllstand-1024x511.png" alt="" width="768" height="383" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_füllstand-1024x511.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_füllstand-300x150.png 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_füllstand-768x383.png 768w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_füllstand.png 1484w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></p>
<p>Bevor ich diesen Artikel fertig geschrieben hatte, hat es geregnet und die Zisterne war fast voll. Aktuell sind keine seltsamen Werte mehr gemessen worden. Evtl. hängt es mit dem Abstand des Sensor zur Wasseroberfläche zusammen.</p>
<p>Ich muss gießen um das heraus zu finden&#8230;</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/graph_zisterne2.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1664 size-full" src="http://blog.bubux.de/wp-content/uploads/2018/08/graph_zisterne2.png" alt="TabletUI-Graph der Zisterne 2" width="993" height="486" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/graph_zisterne2.png 993w, https://www.bubuxblog.de/wp-content/uploads/2018/08/graph_zisterne2-300x147.png 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/graph_zisterne2-768x376.png 768w" sizes="auto, (max-width: 993px) 100vw, 993px" /></a></p>
<p>In der Gesamtübersicht von TabletUI stelle ich den Füllstand als Balkendiagramm mit 2 Schwellenwerten dar. Nach dem letzten Regen schaut es wieder gut uas.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_balken.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1668" src="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_balken.png" alt="" width="176" height="269"></a></p>
<p>Mal sehen wie sich der neue Aufbau so schlägt wenn das Klima in der Zisterne wieder etwas rauer wird. Ich werde berichten!</p>
<p>Gruß Chris</p>


<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-2ter-ansatz/feed/</wfw:commentRss>
			<slash:comments>9</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>Richtiges Lüften</title>
		<link>https://www.bubuxblog.de/richtiges-lueften/</link>
					<comments>https://www.bubuxblog.de/richtiges-lueften/#respond</comments>
		
		<dc:creator><![CDATA[Oliver]]></dc:creator>
		<pubDate>Tue, 24 Mar 2015 20:16:27 +0000</pubDate>
				<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heizung]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=831</guid>

					<description><![CDATA[[avatar user=&#8220;Olli&#8220; size=&#8220;100&#8243; align=&#8220;left&#8220; /] Richtiges Lüften spart Energie und verhindert Feuchtigkeitsschäden. Eine hygienisch einwandfreie Raumluftqualität ist unverzichtbar für die Gesundheit und das Wohlbefinden der Bewohner. Was können wir tun? Kurz und kräftig lüften (Stoßlüften), und das täglich 3 &#8211; 5 mal, konsequent und regelmäßig. Kippen des Fensters im Winter unbedingt vermeiden, da sonst Fensterlaibungen und [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="page" title="Page 4">
<div class="layoutArea">
<div class="column">
<p>[avatar user=&#8220;Olli&#8220; size=&#8220;100&#8243; align=&#8220;left&#8220; /]</p>
<div class="page" title="Page 1">
<div class="layoutArea">
<div class="column">
<div class="page" title="Page 21">
<div class="section">
<div class="layoutArea">Richtiges Lüften spart Energie und verhindert Feuchtigkeitsschäden. Eine hygienisch einwandfreie Raumluftqualität ist unverzichtbar für die Gesundheit und das Wohlbefinden der Bewohner.</p>
<h2 style="text-align: justify;">Was können wir tun?</h2>
<p>Kurz und kräftig lüften (Stoßlüften), und das täglich 3 &#8211; 5 mal, konsequent und regelmäßig. Kippen des Fensters im Winter unbedingt vermeiden, da sonst Fensterlaibungen und Fenstersturz auskühlen. Es kann in weiterer Folge zur Kondensation der warmen Raumluft an den ausgekühlten Bauteilen und zur Bildung von Tauwasser kommen, was in Folge Schimmelpilz entstehen lassen kann.</p>
<p><span style="color: #999999;"><strong>Grundprinzipien:</strong></span></p>
<p><strong>Stosslüften (Händisches PRINZIP) </strong>je kälter die Außentemperatur, umso kürzer der Lüftungsvorgang (wegen der ver- stärkten Temperaturdifferenz!)</p>
<ul>
<li style="text-align: justify;">im Hochwinter etwa 4 &#8211; 7 min</li>
<li style="text-align: justify;">in der Übergangszeit 8 &#8211; 15 min</li>
<li style="text-align: justify;">im Sommer 20 &#8211; 30 min</li>
</ul>
<p>(bei ganz geöffnetem Fenster) Bereits mäßiger Wind reduziert diese Zeiten auf ungefähr die Hälfte, beim Querlüften durch mehrere Zimmer reichen ca. 3 Minuten.</p>
<p>&nbsp;</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2015/03/Lueften_gross.gif"><img loading="lazy" decoding="async" class="aligncenter wp-image-842 size-full" src="http://blog.bubux.de/wp-content/uploads/2015/03/Lueften_gross.gif" alt="Lueften_gross" width="550" height="295" /></a></p>
<div class="page" title="Page 22">
<div class="section">
<div class="layoutArea">
<div class="column"></div>
<div class="column"><strong>Tipp zum Lüften:</strong><br />
Richtiges Lüften in der Heizperiode</p>
<ul style="text-align: justify;">
<li>Mehrmals täglich bei geschlossenem Heizkörperventil lüften.</li>
<li>Beschlagene Scheiben durch zu hohe Luftfeuchtigkeit sind ein Hinweis, dass gelüftet werden soll.</li>
<li>Große Wasserdampfmengen nach Duschen, Baden und Kochen gehören sofort nach Außen gelüftet.</li>
<li>Türen zu unbeheizten Räumen geschlossen halten! (Kein Mitheizen durch andere Räume)</li>
<li>Sie können bis zu 20% an Heizkosten durch richtiges Lüften sparen, indem Sie konsequent Stoßlüften.</li>
</ul>
<p><span style="text-decoration: underline;">Richtiges Lüften von Kellerräumen im Sommer </span>Achten Sie in den heißen Sommermonaten besonders auf die Lüftungsweise ungedämmter Keller (Altbau). Lüften Sie nur, wenn es draußen kühler ist als im Keller &#8211; also in den frühen Morgenstunden. An ganz heißen Sommertagen, in denen die Luft auch nachts kaum abkühlt, bleibt der Keller am besten ganz zu.</p>
<p>&nbsp;</p>
<p><strong>Kontrollierte Wohnraumlüftung</strong></p>
<div class="page" title="Page 23">
<div class="section">
<div class="layoutArea">
<div class="column" style="text-align: justify;">Besonders beim Niedrigenergiehaus kann mit einer Lüftungsanlage der Energieverbrauch effizient gesenkt werden. Bei Passivhäusern geht es ohnehin nicht ohne Installation einer seriös geplanten Lüftungsanlage. Die verbrauchte Luft wird dabei über einen Wärmetauscher geleitet, die Wärme der Abluft wird an die frische Zuluft übertragen.</div>
<div class="column" style="text-align: justify;">Übrigens: Eine Lüftungsanlage ist keine Klimaanlage. Während bei der Klimaanlage die Gebäudekühlung im Vordergrund steht, geht es bei der Lüftungsanlage um die Sicherstellung der hygienisch notwendigen Frischluftzufuhr.</div>
<div class="column" style="text-align: justify;"></div>
<div class="column" style="text-align: justify;"></div>
<div class="column" style="text-align: justify;"></div>
<div class="column" style="text-align: justify;">Zentrale Lösung:<a href="http://blog.bubux.de/wp-content/uploads/2015/03/zws-lueftung.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-841 size-full" src="http://blog.bubux.de/wp-content/uploads/2015/03/zws-lueftung.jpg" alt="zws-lueftung" width="700" height="489" srcset="https://www.bubuxblog.de/wp-content/uploads/2015/03/zws-lueftung.jpg 700w, https://www.bubuxblog.de/wp-content/uploads/2015/03/zws-lueftung-300x210.jpg 300w" sizes="auto, (max-width: 700px) 100vw, 700px" /></a></div>
<div class="column"></div>
<div class="column">Dezentrale Lösung:</div>
<div class="column"><a href="http://blog.bubux.de/wp-content/uploads/2015/03/dezentrale_lueftungsanlage_01.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-843 size-full" src="http://blog.bubux.de/wp-content/uploads/2015/03/dezentrale_lueftungsanlage_01.jpg" alt="dezentrale_lueftungsanlage_01" width="618" height="319" srcset="https://www.bubuxblog.de/wp-content/uploads/2015/03/dezentrale_lueftungsanlage_01.jpg 618w, https://www.bubuxblog.de/wp-content/uploads/2015/03/dezentrale_lueftungsanlage_01-300x155.jpg 300w" sizes="auto, (max-width: 618px) 100vw, 618px" /></a></div>
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
<div class="column"><span style="text-decoration: underline;">Vorteile bei Verwendung einer Lüftungsanlage:</span></p>
<ol>
<li style="text-align: justify;">Es herrschen immer hygienische Luftverhältnisse im Haus. Sogar bei Windstille oder im Winter im Schlafzimmer, wo üblicherweise kaum ausreichend gelüftet werden kann, werden Schadstoffe, Feuchtigkeit und CO2 (Kohlendioxid) abtransportiert.</li>
<li style="text-align: justify;"><span style="line-height: 1.5;">Die Zuluft ist in allen Räumen sauberer. Gerade an stark befahrenen Straßen oder im Stadtbereich wird viel Straßenstaub vom Filter zurückgehalten. Für Allergiker kann die durch den Filter reduzierte Pollenbelastung hilfreich sein. Unter ungünstigen Bedingungen kann es bei Fensterlüftung sein, dass Luft aus Bad oder Küche durch das Haus gedrückt wird &#8211; dies wird mit Lüftungsanlagen vermieden.</span></li>
<li style="text-align: justify;">Weniger Lärmbelästigung von außen. Gerade an stark befahrenen Straßen wird die Lärmbelästigung stark reduziert, da trotz geschlossener Fenster gelüftet werden kann. Für eine erholsame Nachtruhe ist dies sehr vorteilhaft.</li>
<li style="text-align: justify;">Weniger Energieverbrauch. Über den Wärmetauscher kann die in der Abluft enthaltene Wärme an die Zuluft abgegeben werden. Dadurch wird weniger Energie zur Aufheizung der Frischluft benötigt.</li>
<li style="text-align: justify;">Komfortsteigerung: Im Sommer kann mit der Zuluft etwas gekühlt werden, keine Belästigung durch Insekten, Reduzierung von Geruchsbelästigung, keine Zugluft beim Lüften, keine Bauschäden durch falsches Lüften,&#8230;</li>
<li style="text-align: justify;">Die Fenster können natürlich trotzdem geöffnet werden. Die Fensterlüftung ist insbesondere außerhalb der Heizperiode empfehlenswert, da der Strom für den Ventilator eingespart werden kann. In der Heizperiode sollten die Fenster aber möglichst geschlossen bleiben.</li>
</ol>
<h2></h2>
<h2><span style="font-size: 16px; line-height: 1.5;"><img loading="lazy" decoding="async" class=" size-thumbnail wp-image-844 alignright" src="http://blog.bubux.de/wp-content/uploads/2015/03/Schimmel_XS-Kopie-Kopie-150x150.jpg" alt="Frau mit Schimmel und Händen an Ohren" width="150" height="150" />Schimmelbildung</span></h2>
<p>Schimmel hat gewöhnlich nicht eine Ursache allein, meist kommen eine schlechte Wärmedämmung und falsche Lüftungs- und Heizgewohnheiten zusammen.</p>
<p>&nbsp;</p>
<ul>
<li style="text-align: justify;">Schimmelsporen sind überall im Raum. Um jedoch austreiben zu können, benötigen Sie Feuchte und wenig bis gar keine Luftbewegung ( z.B. hinter Einbaukästen).</li>
<li style="text-align: justify;">Je wärmer die Luft ist, umso mehr Wasserdampf kann sie aufnehmen. Das bedeutet, dass sich die Luft an kalten Oberflächen (z.B. auf Außenwänden, in Ecken und an Fensterscheiben) abkühlt und sich dort der Wasserdampf in Form eines feinen Wasserfilms niederschlägt. (Vergleich: kalte Flasche aus Kühlschrank in Raum stellen &#8211; Flasche beschlägt).</li>
<li>Eine Ursache können mangelnde Wärmedämmung bzw. Wärmebrücken sein, die die Wärme wesentlicher schneller nach außen leiten.</li>
</ul>
<div class="page" title="Page 23">
<div class="section">
<div class="layoutArea">
<div class="column"><strong>Tipp zur Schimmelvermeidung:</strong></p>
<ul>
<li>Lüften reduziert die Luftfeuchtigkeit am wirkungsvollsten. An kritischen Stellen muss eine Luftzirkulation möglich sein. Möbel von der Außenwand etwas abrücken (ca. 3 &#8211; 5 cm ) und Lüftungsöffnungen in den Blenden vorsehen. Kritisch sind z.B. Einbauschränke an Außenwände gestellt.</li>
<li>Sofort nach dem Duschen oder Baden lüften, damit der Feuchtigkeit möglichst wenig Zeit bleibt, im Raum zu bleiben und in die Materialien einzudringen. Die Badezimmertür geschlossen halten, damit die Feuchtigkeit nicht in andere Räume wandern kann (vor allem nicht in wenig beheizte Räume).</li>
<li>Um die Entstehung von Schimmelpilzen dauerhaft zu verhindern, muss die Feuchtigkeitsursache (relativ niedere Oberflächentemperatur und (oder) hohe Luftfeuchtigkeit) vermieden werden.</li>
<li>allgemeiner TIPP: Messen Sie die Raumtemperatur und die Luftfeuchte mittels einem Thermo- bzw. Hygrometer. Durch dieses Messinstrument haben Sie stets eine Übersicht über Ihr Raumklima.</li>
<li>Im Winter soll die relative Luftfeuchtigkeit (bei 20°C Raumtemperatur) 65% nicht überschreiten.</li>
</ul>
<p>&nbsp;</p>
<hr />
<p><img loading="lazy" decoding="async" class="alignleft wp-image-827 " src="http://blog.bubux.de/wp-content/uploads/2015/03/unnamed-e1426523117519.png" alt="Logo Twitter" width="60" height="60" /></p>
<p><strong><span style="color: #99ccff;"><em> follow me </em></span></strong>https://twitter.com/EU_EnergyCOACH</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/richtiges-lueften/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wer die Energieeffizienz seines Hauses verbessern möchte, sollte besonders seine Heizung unter die Lupe nehmen. Heizungs-Check (DIN 4792; DIN EN15378)</title>
		<link>https://www.bubuxblog.de/wer-die-energieeffizienz-seines-hauses-verbessern-moechte-sollte-besonders-seine-heizung-unter-die-lupe-nehmen-heizungs-check-din-4792-din-en15378/</link>
					<comments>https://www.bubuxblog.de/wer-die-energieeffizienz-seines-hauses-verbessern-moechte-sollte-besonders-seine-heizung-unter-die-lupe-nehmen-heizungs-check-din-4792-din-en15378/#respond</comments>
		
		<dc:creator><![CDATA[Oliver]]></dc:creator>
		<pubDate>Tue, 24 Mar 2015 20:15:41 +0000</pubDate>
				<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[DIN EN15378]]></category>
		<category><![CDATA[DIN4792]]></category>
		<category><![CDATA[Energie]]></category>
		<category><![CDATA[Energieberatung]]></category>
		<category><![CDATA[Energieeffizienz]]></category>
		<category><![CDATA[Energiemanagement]]></category>
		<category><![CDATA[Heizung]]></category>
		<category><![CDATA[Klima]]></category>
		<category><![CDATA[Lüftung]]></category>
		<category><![CDATA[Sanitär]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=814</guid>

					<description><![CDATA[[avatar user=&#8220;Olli&#8220; size=&#8220;100&#8243; align=&#8220;left&#8220; link=&#8220;file&#8220; /] Mit dem freiwilligen Check des Heizungsfachhandwerks wird erstmals die gesamte Heizungsanlage sozusagen „auf Herz und Nieren&#8220; untersucht. Das Alter der Heizung, eine mögliche Kesselüberdimensionierung, die Dämmung von Leitungen und die Funktionstüchtigkeit von Thermostatventilen spielen beispielsweise eine wichtige Rolle bei der Bewertung. Der Fachmann kann auf dieser Grundlage sinnvolle Modernisierungsmaßnahmen [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[avatar user=&#8220;Olli&#8220; size=&#8220;100&#8243; align=&#8220;left&#8220; link=&#8220;file&#8220; /]</p>
<p style="text-align: justify;">Mit dem freiwilligen Check des Heizungsfachhandwerks wird erstmals die gesamte Heizungsanlage sozusagen „auf Herz und Nieren&#8220; untersucht. Das Alter der Heizung, eine mögliche Kesselüberdimensionierung, die Dämmung von Leitungen und die Funktionstüchtigkeit von Thermostatventilen spielen beispielsweise eine wichtige Rolle bei der Bewertung. Der Fachmann kann auf dieser Grundlage sinnvolle Modernisierungsmaßnahmen vorschlagen. Schon niedrig investive Maßnahmen steigern die Energieeffizienz der Heizungsanlage.</p>
<p style="text-align: justify;">Will der Hausbesitzer allerdings die optimale Energieeffizienz im Haus erzielen, dann sollte die fortschrittliche Brennwerttechnik mit Erdgas oder Heizöl zum Einsatz kommen. In Verbindung mit Solarthermie, lassen sich somit bis zu 40 Prozent der Heizkosten einsparen. Aber auch Zentralheizungen, die mit Wärmepumpen, Holz oder Pellets betrieben werden, bieten wirtschaftliche Lösungen.</p>
<p style="text-align: justify;">Die Inspektion erstreckt sich über:</p>
<ul style="text-align: justify;">
<li>Abgasverlust</li>
<li>Wärmeverluste über Kesseloberfläche</li>
<li>Wärmeverluste über das Abgassystem der Heizung</li>
<li>Brennwertnutzung</li>
<li>Überdimensionierung des Heizungskessels</li>
<li>Heizkesselregelung</li>
<li>Hydraulischer Abgleich der Heizungsanlage<a href="http://www.enbausa.de/heizung-warmwasser/heizungs-check/abstimmen-per-hydraulischem-abgleich.html" target="_self"><br />
</a></li>
<li>Überdimensionierung der Heizpumpe</li>
<li>Dämmung der Rohrleitung</li>
<li>Regelungseinrichtungen der Heizkörper</li>
</ul>
<p style="text-align: justify;">Pro untersuchtem Bereich vergibt der Fachhandwerker eine bestimmte Anzahl von Punkten. Je höher diese Zahl, umso weiter ist die Heizung vom energetischen Idealzustand entfernt. Viele Punkte bedeuten also ein besonders großes Verbesserungs-potenzial. Die Kosten des Heizungs-Check`s für ein Einfamilienhaus belaufen sich je nach Region zwischen 100€ und 250€ und nimmt ca. 1,5 Stunden Zeit in Anspruch! Wenn im Nachgang aus dem Heizungsscheck ein Auftrag für den Installateur entsteht, kann in der Regel dieser Betrag in Abzug gebracht werden.</p>
<p style="text-align: justify;">Entwickelt wurde der Test für Heizungsanlagen von der VdZ in Zusammenarbeit mit dem Zentralverband Sanitär Heizung Klima (ZVSHK) und dem Institut für Technische Gebäudeausrüstung Dresden. In ersten Feldtests wurden laut VdZ bereits die häufigsten Verursacher von unnötigen Energiekosten identifiziert: schlecht eingestellte Brenner, überdimensionierte Heizkessel, ungeregelte Heizungspumpen sowie zu alte Thermostate an den Heizkörpern.</p>
<p style="text-align: justify;">Bei größeren Mehrfamilienhäusern oder gar Gewerbeeinheiten sind spezielle Kenntnisse erforderlich. Diese bieten daher Ingenieur- oder Planungsbüro`s oder Messdienstleister an. Da es sich hier in der Regel nicht um Standardanlagen handelt, sich die eingesetzte Technik nicht nur auf die Heizenergie beschränkt, greift der einfache Heizungs-Check hier nicht.</p>
<p style="text-align: justify;">Neben den benannten Punkten der Inspektion, werden auch:</p>
<ul style="text-align: justify;">
<li>Lüftungsanlagen</li>
<li>Kälte- und Klimaanlagen</li>
<li>Wärmerückgewinnungssysteme</li>
<li>Trinkwassererwärmungsanlagen</li>
<li>Druckerhöhungsanlagen</li>
<li>Hausautomatisation</li>
<li>etc.</li>
</ul>
<p style="text-align: justify;">bewertet und für den Kunden und die Immobilie zugeschnittene Konzepte erstellt. Daraus resultiert auch das sich der Preis für solche Ingenieurtechnische Leistungen zwischen 1.500€ und 30.000€ bewegen kann.</p>
<p>&nbsp;</p>
<p>Anbei die Broschüre der Vereinigung der Deutschen Zentralheizungswirtschaft e.V.</p>
<p><a href="http://blog.bubux.de/wp-content/uploads/2015/03/B1NCwsCGkKGrHqIOKiwER-rdhYQBMdhkNdT_35-e1426522395546.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-823 size-full" src="http://blog.bubux.de/wp-content/uploads/2015/03/B1NCwsCGkKGrHqIOKiwER-rdhYQBMdhkNdT_35-e1426522395546.jpg" alt="" width="100" height="31" /></a>          <a href="http://blog.bubux.de/wp-content/uploads/2015/03/VdZ_HC_Leitfaden_090210.pdf">VdZ_HC_Leitfaden_090210</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr />
<p><img loading="lazy" decoding="async" class="alignleft wp-image-827 " src="http://blog.bubux.de/wp-content/uploads/2015/03/unnamed-e1426523117519.png" alt="Logo Twitter" width="60" height="60" /></p>
<h6><strong><span style="color: #99ccff;"><em> follow me </em></span></strong><span style="color: #808080;"><a style="color: #808080;" href="https://twitter.com/EU_EnergyCOACH" target="_blank">https://twitter.com/EU_EnergyCOACH</a></span></h6>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/wer-die-energieeffizienz-seines-hauses-verbessern-moechte-sollte-besonders-seine-heizung-unter-die-lupe-nehmen-heizungs-check-din-4792-din-en15378/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
