<?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>openHAB Archive - Das ist die Welt von Thomas</title>
	<atom:link href="https://www.schiffler.eu/thema/openhab/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.schiffler.eu/thema/openhab/</link>
	<description>meine Gedanken, mal strukturiert, mal nicht ...</description>
	<lastBuildDate>Wed, 06 May 2026 09:06:34 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://www.schiffler.eu/wp-content/uploads/2025/07/cropped-Profilfoto_2024-32x32.png</url>
	<title>openHAB Archive - Das ist die Welt von Thomas</title>
	<link>https://www.schiffler.eu/thema/openhab/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ertrag der Balkonsolaranlage 2024</title>
		<link>https://www.schiffler.eu/ertrag-der-balkonsolaranlage-2024/</link>
					<comments>https://www.schiffler.eu/ertrag-der-balkonsolaranlage-2024/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sun, 09 Feb 2025 08:41:33 +0000</pubDate>
				<category><![CDATA[Zuhause]]></category>
		<category><![CDATA[Balkonsolaranlage]]></category>
		<category><![CDATA[Energiewende]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[Photovoltaik]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2379</guid>

					<description><![CDATA[<p>Ein neues Jahr hat begonnen und als Mensch der Zahlen und Daten ist es Zeit, auf selbige zurück zu blicken. &#8230; <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-2024/" class="more-link">More <span class="screen-reader-text">Ertrag der Balkonsolaranlage 2024</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-2024/">Ertrag der Balkonsolaranlage 2024</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ein neues Jahr hat begonnen und als Mensch der Zahlen und Daten ist es Zeit, auf selbige zurück zu blicken. Im letzten Jahr ist meine Balkonsolaranlage das erste mal komplett durchgelaufen so dass die Messdaten eines gesamten Jahres vorliegen. Wie war der Ertrag der Balkonsolaranlage 2024 denn nun?</p>



<h2 class="wp-block-heading">Kleine Änderungen am Setup zum Jahresstart</h2>



<p class="wp-block-paragraph">Nachdem die Anlage <a href="https://www.schiffler.eu/flachdachgarage-mit-balkonsolaranlage-ausgestattet/">in der ersten Version 2023 installiert</a> wurde entschied ich mich im April 2024 die Anlage um 2 weitere Module zu erweitern. Platz auf der Garage ist genügend vorhanden, der Wechselrichter verfügt über die notwendigen Eingänge und ist <a href="https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/">gemäß der aktuellen Vorgaben in seiner Einspeiseleistung begrenzt</a>. Also verfügt die Anlage aktuell über 4 Module mit je ca. 400 Watt welche unterschiedlich ausgerichtet sind. 2 Module zeigen komplett nach Süden, eines nach Osten und eines nach Westen. So kann ich vermutlich nicht die maximale Ausbeute in der Leistung erzielen, habe jedoch durch die wandernde Sonneneinstrahlung den ganzen Tag eine Einstrahlung was in meinem Fall lukrativer als die Spitzenleistung ist. </p>



<h2 class="wp-block-heading">Ertrag der Balkonsolaranlage 2024 &#8211; Zahlen bitte</h2>



<p class="wp-block-paragraph">Wie auch <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/">im vergangenen Jahr</a> beginnen wir erstmal mit den nackten Zahlen:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-right" data-align="right"></td><td class="has-text-align-right" data-align="right"><strong>PV Produktion</strong></td><td class="has-text-align-right" data-align="right"><strong>PV Eigennutzung</strong></td><td class="has-text-align-right" data-align="right"><strong>PV Einspeisung</strong></td><td class="has-text-align-right" data-align="right"><strong>Eigennutzungsquote</strong></td><td class="has-text-align-right" data-align="right"><strong>Anteil am Tagesbedarf</strong></td></tr><tr><td class="has-text-align-right" data-align="right">2024-01</td><td class="has-text-align-right" data-align="right">20,86</td><td class="has-text-align-right" data-align="right">20,67</td><td class="has-text-align-right" data-align="right">0,18</td><td class="has-text-align-right" data-align="right">99,13%</td><td class="has-text-align-right" data-align="right">5,51%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-02</td><td class="has-text-align-right" data-align="right">35,21</td><td class="has-text-align-right" data-align="right">30,67</td><td class="has-text-align-right" data-align="right">4,53</td><td class="has-text-align-right" data-align="right">87,12%</td><td class="has-text-align-right" data-align="right">12,00%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-03</td><td class="has-text-align-right" data-align="right">65,19</td><td class="has-text-align-right" data-align="right">58,07</td><td class="has-text-align-right" data-align="right">7,11</td><td class="has-text-align-right" data-align="right">89,09%</td><td class="has-text-align-right" data-align="right">18,77%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-04</td><td class="has-text-align-right" data-align="right">113,45</td><td class="has-text-align-right" data-align="right">94,16</td><td class="has-text-align-right" data-align="right">19,30</td><td class="has-text-align-right" data-align="right">82,99%</td><td class="has-text-align-right" data-align="right">30,90%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-05</td><td class="has-text-align-right" data-align="right">168,80</td><td class="has-text-align-right" data-align="right">126,21</td><td class="has-text-align-right" data-align="right">39,59</td><td class="has-text-align-right" data-align="right">76,12%</td><td class="has-text-align-right" data-align="right">41,55%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-06</td><td class="has-text-align-right" data-align="right">193,07</td><td class="has-text-align-right" data-align="right">141,64</td><td class="has-text-align-right" data-align="right">51,44</td><td class="has-text-align-right" data-align="right">73,36%</td><td class="has-text-align-right" data-align="right">43,27%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-07</td><td class="has-text-align-right" data-align="right">183,52</td><td class="has-text-align-right" data-align="right">148,59</td><td class="has-text-align-right" data-align="right">34,93</td><td class="has-text-align-right" data-align="right">80,97%</td><td class="has-text-align-right" data-align="right">46,10%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-08</td><td class="has-text-align-right" data-align="right">186,12</td><td class="has-text-align-right" data-align="right">150,74</td><td class="has-text-align-right" data-align="right">35,39</td><td class="has-text-align-right" data-align="right">80,99%</td><td class="has-text-align-right" data-align="right">44,98%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-09</td><td class="has-text-align-right" data-align="right">118,14</td><td class="has-text-align-right" data-align="right">99,12</td><td class="has-text-align-right" data-align="right">19,02</td><td class="has-text-align-right" data-align="right">83,90%</td><td class="has-text-align-right" data-align="right">30,11%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-10</td><td class="has-text-align-right" data-align="right">65,87</td><td class="has-text-align-right" data-align="right">60,27</td><td class="has-text-align-right" data-align="right">5,60</td><td class="has-text-align-right" data-align="right">91,49%</td><td class="has-text-align-right" data-align="right">17,43%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-11</td><td class="has-text-align-right" data-align="right">23,77</td><td class="has-text-align-right" data-align="right">23,31</td><td class="has-text-align-right" data-align="right">0,46</td><td class="has-text-align-right" data-align="right">98,06%</td><td class="has-text-align-right" data-align="right">6,02%</td></tr><tr><td class="has-text-align-right" data-align="right">2024-12</td><td class="has-text-align-right" data-align="right">27,29</td><td class="has-text-align-right" data-align="right">26,67</td><td class="has-text-align-right" data-align="right">0,62</td><td class="has-text-align-right" data-align="right">97,73%</td><td class="has-text-align-right" data-align="right">9,57%</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>Summe</strong></td><td class="has-text-align-right" data-align="right">1.198,28</td><td class="has-text-align-right" data-align="right">980,11</td><td class="has-text-align-right" data-align="right">218,17</td><td class="has-text-align-right" data-align="right"></td><td class="has-text-align-right" data-align="right"></td></tr><tr><td class="has-text-align-right" data-align="right"><strong>Durchschnitt</strong></td><td class="has-text-align-right" data-align="right">99,86</td><td class="has-text-align-right" data-align="right">81,68</td><td class="has-text-align-right" data-align="right">18,18</td><td class="has-text-align-right" data-align="right">86,75%</td><td class="has-text-align-right" data-align="right">25,52%</td></tr></tbody></table></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.6%">
<p class="wp-block-paragraph">Das Balkonkraftwerk hat also in Summe 1.198,28 kWh produziert was einem monatliche Durchschnitt von 99,86 kWh entspricht. Hierbei gab ich 218,17 kWh an den Netzbetreiber zurück da ich diesen selbst im Haus nicht nutzen konnte. </p>



<p class="wp-block-paragraph">Kombiniert komme ich über das Jahr 2024 auf eine Eigennutzungsquote von 86,75% und konnte 25,52% des gesamten Strombedarfes meines Hauses über das Balkonkraftwerk erzeugen.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.3%">
<figure class="wp-block-image size-full has-lightbox"><img fetchpriority="high" decoding="async" width="788" height="385" src="https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvUebersicht.jpg" alt="PV Ertragsübersicht 2024" class="wp-image-2382" srcset="https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvUebersicht.jpg 788w, https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvUebersicht-300x147.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvUebersicht-768x375.jpg 768w" sizes="(max-width: 788px) 100vw, 788px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img decoding="async" width="778" height="269" src="https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvNutzungsquoten.jpg" alt="PV Nutzungsquote 2024" class="wp-image-2381" srcset="https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvNutzungsquoten.jpg 778w, https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvNutzungsquoten-300x104.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2025/01/2024_pvNutzungsquoten-768x266.jpg 768w" sizes="(max-width: 778px) 100vw, 778px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Schaut man sich die Eigennutzungsquote einmal über das Jahr verteilt an so ist das zu erwartende Muster zu Erkennen. In den Monaten in welchen wenig Sonne scheint ist die Eigennutzung bei ca. 100%, geht im Sommer dann aber bis auf 73% runter. </p>
</div>
</div>



<h2 class="wp-block-heading">persönliche Bewertung der Zahlen</h2>



<p class="wp-block-paragraph">Durch die installierte Balkonsolaranlage konnte ich im gesamten Jahr 2024 1.198,28 kWh produzieren und generierte somit 25,52% meines gesamten Strombedarfes. Dafür dass viele der Meinung sind ein Balkonkraftwerk würde nichts bringen empfinde ich es schon als sehr gut 1/4 des gesamten Strombedarfes darüber zu generieren. Ich bin erstmal zufrieden. </p>



<p class="wp-block-paragraph">Rein finanziell lohnt sich das Balkonkraftwerk noch nicht denn die Investitionskosten übersteigen den bisher eingesparten Betrag noch deutlich. Das ist, aus meiner Sicht, aber ja nur eine Momentaufnahme denn die Investitionen sind getätigt und nun gilt es den Ertrag einzusammeln. </p>



<p class="wp-block-paragraph">Beim Schreiben interessiert mich nun doch der Kassensturz &#8211; also schaue ich mal kurz rein <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-right" data-align="right"></td><td class="has-text-align-right" data-align="right"><strong>Investition</strong></td><td class="has-text-align-right" data-align="right"><strong>Ertrag</strong></td></tr><tr><td class="has-text-align-right" data-align="right">2023</td><td class="has-text-align-right" data-align="right">748,99 EUR</td><td class="has-text-align-right" data-align="right">59,77 EUR</td></tr><tr><td class="has-text-align-right" data-align="right">2024</td><td class="has-text-align-right" data-align="right">85,00 EUR</td><td class="has-text-align-right" data-align="right">306,45 EUR</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>Summe</strong></td><td class="has-text-align-right" data-align="right">833,99 EUR</td><td class="has-text-align-right" data-align="right">366,22 EUR</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Bisher habe ich 833,99 EUR in das Balkonkraftwerk investiert, der bisherige Ertrag beträgt 366,22 EUR. Damit liege ich noch mit 467,77 EUR im Minus. Setze ich den Ertrag aus 2024 mal für die Zukunft an wäre das Balkonkraftwerk also irgendwann Mitte 2026 finanziert und ich wäre in der &#8222;Gewinnzone&#8220;. Fühlt sich gut an &#8230;</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-2024/">Ertrag der Balkonsolaranlage 2024</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/ertrag-der-balkonsolaranlage-2024/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Balkonkraftwerk Einspeisung dynamisch limitieren mit openDtu und Shelly Pro 3 EM</title>
		<link>https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/</link>
					<comments>https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sat, 27 Apr 2024 10:49:39 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Balkonsolaranlage]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Energiewende]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2077</guid>

					<description><![CDATA[<p>Wie schon in diversen anderen Beiträgen auf meiner Seite zu lesen, betreibe ich bei mir ein Balkonkraftwerk auf meiner Flachdachgarage. &#8230; <a href="https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/" class="more-link">More <span class="screen-reader-text">Balkonkraftwerk Einspeisung dynamisch limitieren mit openDtu und Shelly Pro 3 EM</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/">Balkonkraftwerk Einspeisung dynamisch limitieren mit openDtu und Shelly Pro 3 EM</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wie schon in diversen anderen Beiträgen auf meiner Seite zu lesen, betreibe ich bei mir ein Balkonkraftwerk auf meiner Flachdachgarage. In den letzten Monaten war selbiges mit 2 Modulen ausgestattet, der Wechselrichter permanent auf 600 Watt limitiert. Nun habe ich günstig 2 weitere Module erhalten, welche an den vorhandenen <a href="https://amzn.to/3w5grUK" target="_blank" rel="noreferrer noopener sponsored nofollow">Hoymiles HM 1500 Wechselrichter*</a> angeschlossen werden konnten. Durch den Einsatz <a href="https://amzn.to/3QeZ2Qk" target="_blank" rel="noreferrer noopener sponsored nofollow">der openDTU*</a> und dem Shelly Pro 3EM konnte ich <a href="https://github.com/tschiffler/Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-ShellyPro3EM" target="_blank" rel="noreferrer noopener">mittels eines kleinen Scriptes</a> die Balkonkraftwerk Einspeisung dynamisch limitieren, um die generierte Energie bestmöglich zu nutzen.</p>



<h2 class="wp-block-heading">Disclaimer: Nur eine theoretische Lösung</h2>



<p class="wp-block-paragraph">Alles was hier beschrieben ist, ist eine rein theoretische Darstellung der technischen Möglichkeiten. Auch ich habe selbiges natürlich nur theoretisch in einer Laborumgebung verprobt und würde diese niemals produktiv einsetzen. Auch weise ich ganz klar darauf hin, dass die eigene Anwendung (sofern dies jemand plant) auf eigenes Risiko erfolgt. </p>



<h2 class="wp-block-heading">Worum geht es beim Thema Nulleinspeisung eigentlich?</h2>



<p class="wp-block-paragraph">Ein Balkonkraftwerk zuhause ist durch den Wechselrichtiger in der Höhe der Einspeisung limitiert. Unabhängig davon wie Leistungsstark die angeschlossenen Solarpanele sind lässt der Wechselrichter nur eine gewisse Leistung ins Hausnetz einfließen. Stand April 2024 sind maximal 600 Watt Balkonkraftwerke erlaubt. Wenn man den Medien glauben darf, sind bald 800 Watt erlaubt. Energie, welche nicht im eigenen Haus verbraucht wird, wird ohne Rückvergütung ins allgemeine Stromnetz eingespeist. </p>



<h2 class="wp-block-heading">Warum nun eine dynamische Limitierung?</h2>



<p class="wp-block-paragraph">Im Grund ist es ganz einfach. Wenn die Sonne so richtig schön scheint generieren meine 4 Module deutlich mehr als die erlaubten 600 oder 800 Watt. Mir persönlich ist es erstmal egal, ob ich Energie ins allgemeine Stromnetz einspeise, nur möchte ich mein Heimnetz nicht unnötig belasten. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img decoding="async" width="443" height="624" src="https://www.schiffler.eu/wp-content/uploads/2024/05/dynamischeEinspeisung.png" alt="" class="wp-image-2101" srcset="https://www.schiffler.eu/wp-content/uploads/2024/05/dynamischeEinspeisung.png 443w, https://www.schiffler.eu/wp-content/uploads/2024/05/dynamischeEinspeisung-213x300.png 213w" sizes="(max-width: 443px) 100vw, 443px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Schön wäre es aber doch, dass der gesamte zur Verfügung stehende Strom genutzt werden könnte, wenn er gebraucht wird, oder? Schalte ich z.B. einen Verbrauche wie einen Fön ein so möchte ich gerne, dass die Limitierung temporär gesenkt und mehr Strom zur Verfügung gestellt wird. Schalte ich den Fön wieder aus soll die Limitierung wieder greifen.</p>



<p class="wp-block-paragraph">Im dargestellten Screenshot steht die blaue Linie für den aktuellen Bezug vom Netzbetreiber (über die <a href="https://amzn.to/4dwUJKi" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly Pro 3 EM</a>* gemessen). Die grüne Linie steht für die Energie, welche vom Wechselrichter in das Haus eingespeist wird.</p>



<p class="wp-block-paragraph">Wir sehen, dass der Wechselrichter ständig ca. 600 Watt einspeist wovon ca. 100 &#8211; 150 Watt an den Netzbetreiber fliesen. Plötzlich steigt der Stromverbrauch und vom Netzbetreiber werden knapp 2.000 Watt bezogen. Das Script bemerkt dies und entfernt die Drosselung des Wechselrichters welcher nun ca. 1.100 Watt einspeist und den Netzbezug deutlich reduziert. Als der Stromverbrauch wieder sinkt aktiviert das Script die Drosselung des Wechselrichters wieder und wir sind wieder bei den 600 Watt.</p>
</div>
</div>



<h2 class="wp-block-heading">Code steht in Github bereit</h2>



<p class="wp-block-paragraph">Mein Script ist ein <a href="https://github.com/Selbstbau-PV/Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-Shelly3EM" target="_blank" rel="noreferrer noopener">Fork der Nulleinspeisung von Selbstbau-PV.de</a> und <a href="https://github.com/tschiffler/Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-ShellyPro3EM/tree/main" target="_blank" rel="noreferrer noopener">steht öffentlich in Github bereit</a>. </p>



<p class="wp-block-paragraph">Die Veränderungen zum Ursprungscode sind relativ überschaubar, für das oben beschriebene Setup jedoch zwingend notwendig. Folgende Bereiche wurden angepasst:</p>



<div class="wp-block-advgb-list"><ul class="advgblist-e75611c4-6b6c-442f-9213-65870616adc3 advgb-list advgb-list-arrow-right-alt2">
<li>Anbindung der aktuellen openDTU Firmware</li>



<li>Anbindung der Shelly Pro 3 EM</li>



<li>Umsetzung der Logik zur dynamischen Erhöhung auf das maximum</li>



<li>Einführen eines Puffers</li>
</ul></div>
<style type="text/css" class="advgb-blocks-styles-renderer">.wp-block-advgb-list ul.advgblist-e75611c4-6b6c-442f-9213-65870616adc3 > li{font-size:16px;}.wp-block-advgb-list ul.advgblist-e75611c4-6b6c-442f-9213-65870616adc3 > li{padding-left:18px;margin-left:0;}.wp-block-advgb-list ul.advgblist-e75611c4-6b6c-442f-9213-65870616adc3 > li:before{font-size:16px;color:#000;line-height:18px;margin:2px;padding:2px;margin-left:-20px}</style>


<p class="wp-block-paragraph"><strong>Noch einmal:</strong> Wer möchte, kann sich das Script gerne ansehen oder auch weiter entwickeln. Pullrequestes sind jederzeit gerne gesehen. Sämtlicher Code dient lediglich zur Veranschaulichung und Demonstration, von einem produktiven Einsatz wird abgeraten.</p>



<h2 class="wp-block-heading">Balkonkraftwerk Einspeisung dynamisch limitieren &#8211; wie ist Deine Meinung?</h2>



<p class="wp-block-paragraph">Natürlich würde mich Deine Meinung zum Thema Balkonkraftwerk Einspeisung dynamisch limitieren interessieren. Wie handhabst Du das ganze, arbeitest Du ggf. sogar mit einem <a href="https://www.schiffler.eu/akku-fuer-balkonkraftwerk-rechnet-sich-das/">Akku in deinem Balkonkraftwerk</a>? Ich freue mich auf Deine Rückmeldung.</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/">Balkonkraftwerk Einspeisung dynamisch limitieren mit openDtu und Shelly Pro 3 EM</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/balkonkraftwerk_einspeisung_dynamisch_limitieren_opendtu_shelly/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SmartHome Daten können echtes Geld sparen</title>
		<link>https://www.schiffler.eu/smarthome-daten-koennen-echtes-geld-sparen/</link>
					<comments>https://www.schiffler.eu/smarthome-daten-koennen-echtes-geld-sparen/#comments</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Thu, 01 Feb 2024 15:20:47 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[Stromverbrauch]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2059</guid>

					<description><![CDATA[<p>Meine Frau empfindet die ganzen Sensoren, welche hier zuhause verbaut sind, als unnötigen Quatsch und Spielerei. Ich persönlich sehe einen &#8230; <a href="https://www.schiffler.eu/smarthome-daten-koennen-echtes-geld-sparen/" class="more-link">More <span class="screen-reader-text">SmartHome Daten können echtes Geld sparen</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/smarthome-daten-koennen-echtes-geld-sparen/">SmartHome Daten können echtes Geld sparen</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Meine Frau empfindet die ganzen Sensoren, welche hier zuhause verbaut sind, als unnötigen Quatsch und Spielerei. Ich persönlich sehe einen Nutzen in den gesammelten SmartHome Daten, kann diesen nur leider zu selten nachweisen. Im Januar 2024 war es dann so weit &#8211; durch eine Abweichung der Daten am frühen morgen konnte ein Schaden abgewendet werden. </p>



<h2 class="wp-block-heading">Was war passiert?</h2>



<p class="wp-block-paragraph">Wie viele Geschichten zuhause begann auch diese irgendwo zwischen Toilette und erstem Kaffee. Ich schaute auf mein Handy und überflog mein <a href="https://www.schiffler.eu/thema/openhab/">openHab</a> Dashboard. Etwas erstaunt war ich als ich auf die Zahl des aktuellen Stromverbrauches schaute &#8211; über 6 kWh vor 7 Uhr morgens &#8211; das ist sehr sehr ungewöhnlich. Im Normalfall liegen wir hier unter 2 kWh, wie kommt es zu einer Abweichung von 4 kWh zu dieser frühen Zeit?</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="611" height="445" src="https://www.schiffler.eu/wp-content/uploads/2024/02/stromverbrauchErhoeht.jpg" alt="SmartHome Daten vom 16. Januar 2024" class="wp-image-2057" srcset="https://www.schiffler.eu/wp-content/uploads/2024/02/stromverbrauchErhoeht.jpg 611w, https://www.schiffler.eu/wp-content/uploads/2024/02/stromverbrauchErhoeht-300x218.jpg 300w" sizes="auto, (max-width: 611px) 100vw, 611px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="701" height="449" src="https://www.schiffler.eu/wp-content/uploads/2024/02/stromverbrauchNormal.jpg" alt="SmartHome Daten vom 17. Januar 2024" class="wp-image-2058" srcset="https://www.schiffler.eu/wp-content/uploads/2024/02/stromverbrauchNormal.jpg 701w, https://www.schiffler.eu/wp-content/uploads/2024/02/stromverbrauchNormal-300x192.jpg 300w" sizes="auto, (max-width: 701px) 100vw, 701px" /></figure>
</div>
</div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Ich schaute mit den Tagesverlauf als Graph an und sah eine recht klare und gerade Linie welche seit Tagesbeginn nach oben ging. Schnell mal einen anderen Tag angesehen &#8211; hier sieht das deutlich entspannter aus. Da stimmt doch was nicht &#8230;</p>



<h2 class="wp-block-heading">Ursachenforschung und Fehlerlokalisierung</h2>



<p class="wp-block-paragraph">Zugegeben, ich bin hier vielleicht ein wenig Strange, aber ich wollte die Ursache direkt finden. Also ging ich mit dem Handy in den Hand die einzelnen Unterverteilungen durch und schaltete Sicherung für Sicherung ab. Als ich den unteren Schuppen vom Netz nahm sank der Strombezug direkt ab, sobald die Sicherung wieder eingeschaltet wurde stieg der Stromverbrauch direkt wieder extrem an. </p>



<p class="wp-block-paragraph">Ich hatte direkt eine Vorahnung, denn die letzten Tage war es durchgehend weit unter 0 Grad dann kam gestern Regen dazu. Im Schuppen selbst steht eine <a href="https://www.schiffler.eu/tauchpumpe-mit-schwimmerschalter-zur-dachentwaesserung/">Tauchpumpe, welche mittels Schwimmerschalter zur Dachentwässerung</a> genutzt wird. Das Wasser wird über einen Schlauch weg gepumpt. Die Vermutung lag also nah: Hier ist was eingefroren und die Pumpe läuft in Dauerschleife. </p>



<p class="wp-block-paragraph">Also ab in den Schuppen und an das Fass, in welchem die Pumpe sitzt. Die Tauchpumpe läuft und das Fass ist spürbar warm. Na immerhin war die Pumpe bislang Wassergekühlt und scheint noch zu funktionieren. Pumpe vom Strom trennen und schon ist das Problem (zumindest das des hohen Stromverbrauches) erstmal gelöst. </p>



<h2 class="wp-block-heading">SmartHome Daten richtig interpretieren</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Auch wenn ich zugegeben muss dass dieser Fall eher Zufall war. Ich habe manuell auf das Dashboard gesehen und bin über die Abweichung gefallen. Dennoch ohne die Datensammlung und die entsprechende Visualisierung hätte ich weder gewusst was ein normaler Stromverbrauch ist, noch hätte ich die Möglichkeit gehabt diese Abweichung zu erkennen. </p>



<p class="wp-block-paragraph">Es genügt also nicht eine Heimautomatisierung aufzubauen, die gesammelten Daten müssen sinnvoll aggregiert und ausgewertet werden. </p>



<p class="wp-block-paragraph">Ich für meinen Teil bin auf jeden Fall erstmal zufrieden und konnte Nachweisen dass das SmartHome mehr als nur eine Spielerei ist <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br>Im hier beschriebenen Fall haben mir die Daten nicht nur beim Stromsparen geholfen sondern vermutlich auch schlimmeres verhindert. Wer weiß wie lange die arme Tauchpumpe noch durchgehalten hätte&#8230;</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="aligncenter size-medium"><img loading="lazy" decoding="async" width="197" height="300" src="https://www.schiffler.eu/wp-content/uploads/2024/02/unknown-913590_1920-197x300.jpg" alt="unknown-913590_1920" class="wp-image-2063" srcset="https://www.schiffler.eu/wp-content/uploads/2024/02/unknown-913590_1920-197x300.jpg 197w, https://www.schiffler.eu/wp-content/uploads/2024/02/unknown-913590_1920-673x1024.jpg 673w, https://www.schiffler.eu/wp-content/uploads/2024/02/unknown-913590_1920-768x1168.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2024/02/unknown-913590_1920-1010x1536.jpg 1010w, https://www.schiffler.eu/wp-content/uploads/2024/02/unknown-913590_1920.jpg 1052w" sizes="auto, (max-width: 197px) 100vw, 197px" /></figure>
</div></div>
</div>



<h2 class="wp-block-heading">Smarthome Daten automatisiert analysieren</h2>



<p class="wp-block-paragraph">Aktuell arbeite ich daran die gesammelten Daten der einzelnen Sensoren (z.B. Verbrauchswerte von Strom, Gas und Wasser) automatisiert auswerten zu lassen. Das Ziel dieser Übung ist es, starke Abweichungen automatisch zu erkennen und mich per Warnung auf selbige hinweisen zu können. Ich bin gespannt ob mich dieses Experiment zum gewünschten Ziel führt und werde darüber berichten.</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/smarthome-daten-koennen-echtes-geld-sparen/">SmartHome Daten können echtes Geld sparen</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/smarthome-daten-koennen-echtes-geld-sparen/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Ertrag der Balkonsolaranlage in 2023 (August bis Dezember)</title>
		<link>https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/</link>
					<comments>https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Tue, 16 Jan 2024 05:30:00 +0000</pubDate>
				<category><![CDATA[Zuhause]]></category>
		<category><![CDATA[Balkonsolaranlage]]></category>
		<category><![CDATA[Energiewende]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[Photovoltaik]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2042</guid>

					<description><![CDATA[<p>Das Balkonkraftwerk auf der Garage wurde im August 2023 installiert und läuft seitdem Problemlos. Zum Jahresende wurde es Zeit einmal &#8230; <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/" class="more-link">More <span class="screen-reader-text">Ertrag der Balkonsolaranlage in 2023 (August bis Dezember)</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/">Ertrag der Balkonsolaranlage in 2023 (August bis Dezember)</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Das <a href="https://www.schiffler.eu/flachdachgarage-mit-balkonsolaranlage-ausgestattet/">Balkonkraftwerk auf der Garage wurde im August 2023 installiert</a> und läuft seitdem Problemlos. Zum Jahresende wurde es Zeit einmal genauer hinzuschauen um zu prüfen wie der Ertrag der Balkonsolaranlage in 2023 denn so war &#8211; lohnt sich so ein Ding überhaupt oder eher nicht?</p>



<h2 class="wp-block-heading">Ertragsübersicht &#8211; hier die nackten Werte</h2>



<p class="wp-block-paragraph">Fangen wir zuerst einmal mit der nackten Wahrheit, den genauen Werten in der Übersicht an:</p>



<figure class="wp-block-table is-style-regular advgb-dyn-e8bf863b"><table><tbody><tr><td></td><td><strong>PV Produktion</strong></td><td><strong>PV Eigennutzung</strong></td><td><strong>PV Einspeisung</strong></td><td><strong>Eigennutzungsquote</strong></td></tr><tr><td>2023-08</td><td>86,05</td><td>76,23</td><td>9,83</td><td>88,58 %</td></tr><tr><td>2023-09</td><td>103,08</td><td>92,59</td><td>10,49</td><td>89,83 %</td></tr><tr><td>2023-10</td><td>45,78</td><td>42,86</td><td>2,93</td><td>93,71 %</td></tr><tr><td>2023-11</td><td>17,43</td><td>17,24</td><td>0,20</td><td>98,87 %</td></tr><tr><td>2023-12</td><td>10,17</td><td>10,15</td><td>0,02</td><td>99,81 %</td></tr><tr><td><strong>Summe</strong></td><td>262,52</td><td>239,06</td><td>23,46</td><td></td></tr><tr><td><strong>Durchschnitt</strong></td><td>52,50</td><td>47,81</td><td>4,69</td><td>94,14 %</td></tr></tbody></table></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">In der Summe hat das Balkonkraftwerk in den 147 Tagen in welches in Betrieb war (seit dem 6. August) 262,52 kWh produziert. Hiervon konnte ich 239,06 kWh in meinem Haushalt selbst nutzen und &#8222;verschenkte&#8220; 23,46 kWh welche ich ins Netz zurück gab.</p>



<p class="wp-block-paragraph">Kombiniert komme ich über den gesamten Zeitraum auf eine Eigennutzungsquote von 94,14 %</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="867" height="522" src="https://www.schiffler.eu/wp-content/uploads/2024/01/pv_uebersicht_2023.jpg" alt="Ertrag der Balkonsolaranlage in 2023" class="wp-image-2047" srcset="https://www.schiffler.eu/wp-content/uploads/2024/01/pv_uebersicht_2023.jpg 867w, https://www.schiffler.eu/wp-content/uploads/2024/01/pv_uebersicht_2023-300x181.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2024/01/pv_uebersicht_2023-768x462.jpg 768w" sizes="auto, (max-width: 867px) 100vw, 867px" /></figure>
</div>
</div>



<h2 class="wp-block-heading">meine persönliche Bewertung der Zahlen</h2>



<p class="wp-block-paragraph">Als ich die Solaranlage auf der Garage installierte war ich mir nicht sicher was ich genau davon erwarten soll. Eigentlich war es eher ein Versuch um zu schauen ob überhaupt etwas dabei rüber kommt. Vondaher bin ich selbst erstmal zufrieden, ohne Ausrichtung der Anlage 262 kWh erzeugt zu haben ist doch erstmal gut. </p>



<p class="wp-block-paragraph">Auf der anderen Seite interessierte mich die Eigennutzungsquote um herauszufinden in wie weit sich ein Akku lohnen kann. Natürlich ist der Auswertungszeitraum etwas trügerisch denn von den sonnigen Monaten hatte ich nicht sonderlich viele. Dennoch ist eine Eigennutzungsquote von 94,14% definitiv besser als vermutet. Mit 4,69 kWh &#8222;verschenktem&#8220; Strom würde sich aus aktueller Sicht ein Akku für ein solch kleines Balkonkraftwerk wohl niemals rechnen. Mal sehen wie das Ende 2024 aussieht wenn die Anlage einmal ein Jahr durchgelaufen ist. </p>



<p class="wp-block-paragraph">Sehr zufrieden bin ich mit der Integration der <a href="https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/">Shelly-Komponenten in meine openHab Installation</a>. Die <a href="https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/">Auswertung der Daten</a> läuft sehr rund und gibt mir immer einen aktuellen Überblick darüber was die Solaranlage so leistet. </p>
<p>Der Beitrag <a href="https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/">Ertrag der Balkonsolaranlage in 2023 (August bis Dezember)</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/ertrag-der-balkonsolaranlage-in-2023-august-bis-dezember/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Heizungssteuerung mit openHab und Google Kalender automatisieren</title>
		<link>https://www.schiffler.eu/heizungssteuerung-mit-openhab-google-kalender/</link>
					<comments>https://www.schiffler.eu/heizungssteuerung-mit-openhab-google-kalender/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Wed, 29 Nov 2023 06:20:15 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Heizung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=2001</guid>

					<description><![CDATA[<p>Alle Heizkörper hier im Haus sind mit Homematic IP Heizkörperthermostaten ausgestattet welche über die CCU3 Zentrale gesteuert wurden. Nachdem die &#8230; <a href="https://www.schiffler.eu/heizungssteuerung-mit-openhab-google-kalender/" class="more-link">More <span class="screen-reader-text">Heizungssteuerung mit openHab und Google Kalender automatisieren</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/heizungssteuerung-mit-openhab-google-kalender/">Heizungssteuerung mit openHab und Google Kalender automatisieren</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Alle Heizkörper hier im Haus sind mit <a href="https://amzn.to/3MXrkxm" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic IP Heizkörperthermostaten</a> ausgestattet welche über die <a href="https://amzn.to/40Xf99q" target="_blank" rel="noreferrer noopener sponsored nofollow">CCU3 Zentrale</a> gesteuert wurden. Nachdem die gesamte Steuerung hier über openHab durchgeführt wird war es im Winter 2023 an der Zeit die Systeme zu vereinen. Hier seht Ihr wie ich die Heizungssteuerung mit openHab auf Basis des Google Kalenders umgesetzt habe. </p>



<h2 class="wp-block-heading">openHab Zeitsteuerung über den Google Kalender?</h2>



<p class="wp-block-paragraph"><a href="https://www.schiffler.eu/thema/openhab/">OpenHab </a>ist aus meiner Sicht ein echt einfaches System zur Heimautomatisierung. Wenn es allerdings um das Thema Zeitsteuerung geht ist hier wirklich Nachholbedarf. Es existiert keine einfache Möglichkeit um flexibel Geräte zu unterschiedlichen Zeiten mit eigenen Befehlen zu versorgen. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="707" src="https://www.schiffler.eu/wp-content/uploads/2023/11/heizungssteuerungCalendarWochensicht-1024x707.png" alt="Heizungssteuerung mit openHab - Kalenderansicht" class="wp-image-2013" srcset="https://www.schiffler.eu/wp-content/uploads/2023/11/heizungssteuerungCalendarWochensicht-1024x707.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/11/heizungssteuerungCalendarWochensicht-300x207.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/11/heizungssteuerungCalendarWochensicht-768x530.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/11/heizungssteuerungCalendarWochensicht.png 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Durch den Einsatz des <a href="https://www.openhab.org/addons/bindings/icalendar/" target="_blank" rel="noreferrer noopener">iCalendar Bindings</a> und ein paar Zeilen Code ist es mir gelungen die Steuerung der Heizung über den Kalender umzusetzen. </p>



<p class="wp-block-paragraph">Das Screenshot hier zeigt, wie der aktuelle Wochenplan aussieht. Im Gegensatz zu so manch andere Lösung die man im Internet so findet habe ich mich dafür entschieden nur Statusänderungen im Kalender zu hinterlegen und auf diese Events per Script zu reagieren. </p>



<p class="wp-block-paragraph">Jeder Kalendereintrag steht also für eine gewünschte Änderung der Temperatur am Thermostat. Somit können flexibel alle Räume zu unterschiedlichen Zeiten nach meinen Wünschen gesteuert werden. </p>
</div>
</div>



<h2 class="wp-block-heading">eigenen Kalender anlegen</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Im ersten Schritt habe ich in meinem bestehenden Kalender einen neuen Kalender nur für die Steuerung meiner Heizung angelegt. Immerhin möchte ich die Einträge zur Steuerung nicht in meinem normalen Kalender sehen und getrennt verwalten. Dies funktioniert recht einfach <a href="https://calendar.google.com/calendar/u/0/r/settings/createcalendar?pli=1" target="_blank" rel="noreferrer noopener">über diesen Link</a>. </p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure data-wp-context="{&quot;galleryId&quot;:&quot;6adca79f57359&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6adca79f5741e&quot;}" data-wp-interactive="core/image" data-wp-key="6adca79f5741e" class="wp-block-image size-full has-lightbox wp-lightbox-container"><img loading="lazy" decoding="async" width="763" height="497" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="2017" src="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_1.png" alt="Kalender anlegen" class="wp-image-2017" srcset="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_1.png 763w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_1-300x195.png 300w" sizes="auto, (max-width: 763px) 100vw, 763px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Kalender anlegen</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6adca79f575a6&quot;}" data-wp-interactive="core/image" data-wp-key="6adca79f575a6" class="wp-block-image size-full has-lightbox wp-lightbox-container"><img loading="lazy" decoding="async" width="1081" height="460" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="2016" src="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_2.png" alt="iCal Adresse kopieren" class="wp-image-2016" srcset="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_2.png 1081w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_2-300x128.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_2-1024x436.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_2-768x327.png 768w" sizes="auto, (max-width: 1081px) 100vw, 1081px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">private Adresse kopieren</figcaption></figure>
</figure>
</div>
</div>



<p class="wp-block-paragraph">Wir geben dem Kalender einen Namen, die gewünschte Zeitzone und speichern diesen. Für die Einbindung in das Binding benötigen wird nur die iCal Adresse. Hierfür gibt es im unteren Bereich eine &#8222;Privatadresse im iCal-Format&#8220; welche über das entsprechende Kopieren-Icon in die Zwischenablage kopiert werden kann. </p>



<h2 class="wp-block-heading">iCalendar Binding installieren und Kalender verbinden</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="821" height="716" src="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_3.png" alt="iCalendar Binding in openHab einrichten" class="wp-image-2023" srcset="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_3.png 821w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_3-300x262.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarAnlage_3-768x670.png 768w" sizes="auto, (max-width: 821px) 100vw, 821px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Nachdem wir das <a href="https://www.openhab.org/addons/bindings/icalendar/" target="_blank" rel="noreferrer noopener">iCalendar Binding</a> in openHab installiert haben legen wir ein neues Item vom Typ &#8222;Kalender&#8220; an. Dieses Binding dient den späteren Filtern als Gateway und stellt die Verbindung zwischen openHab und dem Kalender her. </p>



<p class="wp-block-paragraph">Ins Feld &#8218;URL&#8216; tragen wir die URL ein, welche wir uns im vorherigen Schritt kopiert haben. Der Aktualisierungsintervall kann ruhig etwas länger sein, in meinem Fall sind es 30 Minuten. Dies bedeutet so viel wie dass das Plugin alle 30 Minuten nach neuen Terminen im Kalender schaut und diese herunterlädt. </p>



<p class="wp-block-paragraph">Nach dem Speichern ist das Plugin auch schon fertig konfiguriert und die Kalendereinträge werden heruntergeladen.</p>
</div>
</div>



<p class="wp-block-paragraph">Schön, doch was nun? Wir haben nun einen Google Kalender in welchen wir Termine einstellen können. Dazu ein Binding welches dafür sorgt, dass diese Termine nach openHab geladen werden. Damit nun die einzelnen Räume gesteuert werden müssen benötigen wir noch ein wenig Konfiguration für jeden einzelnen Raum &#8230;</p>



<h2 class="wp-block-heading">openHab iCalendar Filter verwenden um Räume zu steuern</h2>



<p class="wp-block-paragraph">Um die  Heizungssteuerung mit openHab umzusetzen habe ich mir im ersten Schritt Überlegt, wie ich meine Kalendereinträge gestalten möchte. Um es möglichst einfach zu halten habe ich mich dazu entschieden, je Verändungsevent einen Kalendereintrag zu erstellen. Wenn ich also z.B. im Büro die Heizung morgens um 6:30 Uhr auf 21 Grad stellen möchte und am Nachmittag um 17 Uhr wieder auf 17 Grad dann benötige ich hierfür 2 Kalendereinträge. Ich nutze hierbei den Titel des Kalendereintrages und hinterlege hier den Raum sowie die gewünschte Temperatur. Ein Eintrag mit dem Titel &#8218;Büro: 21&#8216; sorgt dafür, dass das Thermostat im Büro auf 21 Grad, ein Titel &#8218;Büro: 17&#8216; dass das Büro auf 17 Grad geändert wird.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Um die Kalendereinträge des eines Raumes in openHab verfügbar zu haben, habe ich mir je Raum ein Item vom Typ <a href="https://www.openhab.org/addons/bindings/icalendar/#configuration-for-eventfilter" target="_blank" rel="noreferrer noopener">icalendar:eventfilter</a> angelegt. </p>



<p class="wp-block-paragraph">Der Filter selbst nutzt als Bridge das zuvor angelegte Item vom Typ &#8222;Kalender&#8220;. Die Anzahl Kalendereinträge habe ich mit 1 und den Aktualisierungsinterval mit 15 Minuten definiert. Der Filter selbst wurde als Textbasierter Filter auf Basis des Betreff / Title angelegt. Der Suchausdruck entspricht in meinem Fall dem Raumname, hier also &#8218;Büro&#8216; als Text. </p>



<p class="wp-block-paragraph">Diese Konfiguration sorgt dafür, dass im neu angelegten Item 3 Channels angelegt werden. Diese Channels beinhalten die Daten des nächsten Kalendereintrages mit den Werte Startzeit, Endezeit und Titel.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="728" height="847" src="https://www.schiffler.eu/wp-content/uploads/2023/11/iCalendarEventfilter.jpg" alt="iCalendar Eventfilter anlegen" class="wp-image-2027" srcset="https://www.schiffler.eu/wp-content/uploads/2023/11/iCalendarEventfilter.jpg 728w, https://www.schiffler.eu/wp-content/uploads/2023/11/iCalendarEventfilter-258x300.jpg 258w" sizes="auto, (max-width: 728px) 100vw, 728px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="284" src="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarItemOnModel-1024x284.jpg" alt="iCalendar Eventfilter Channel in Model" class="wp-image-2029" srcset="https://www.schiffler.eu/wp-content/uploads/2023/11/calendarItemOnModel-1024x284.jpg 1024w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarItemOnModel-300x83.jpg 300w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarItemOnModel-768x213.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarItemOnModel-1536x427.jpg 1536w, https://www.schiffler.eu/wp-content/uploads/2023/11/calendarItemOnModel.jpg 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Diese Channels lege ich mir als Points in meinem Model in den jeweiligen Raum. Das ist zwar nicht zwingend notwendig, erleichtert mir aber die Übersicht und die mögliche Fehlersuche.</p>



<p class="wp-block-paragraph"><strong>Wichtig</strong>: An dieser Stelle unbedingt auf die Namensnotation achten. Das Script erwartet den Prefix &#8218;Calendar_Events__&#8216; gefolgt vom Raumname mit dem Suffix &#8218;_Titel&#8216; und &#8218;_Start&#8216;. </p>
</div>
</div>



<p class="wp-block-paragraph">Dieses Vorgehen muss nun für jeden Raum den ich steuern möchte dupliziert werden. Sprich für jeden Raum benötige ich einen eventfilter und die entsprechenden Points im Model damit das nachfolgende Script funktioniert. </p>



<h2 class="wp-block-heading">Heizungssteuerung mit openHab &#8211; das Script</h2>



<p class="wp-block-paragraph">Nachdem die Vorarbeiten nun erledigt sind benötigt es noch ein kleines Script (Rule) welches die Werte der jeweiligen Räume abruft und die Änderungen an den Thermostaten durchführt. Ich habe mich hierbei für einen cronjob entschieden welcher jede Minute läuft und die Werte überprüft:</p>



<pre class="wp-block-code"><code>import java.time.format.DateTimeFormatter
import org.openhab.core.model.script.ScriptServiceUtil

rule "Heizungssteuerung - cron"
	when
		Time cron "5 * * * * ?"
	then
		val roomList = newArrayList('Buro', 'Wohnzimmer', 'Bad_EG', 'Kinderzimmer', 'Schlafzimmer', 'Kueche')
			
		roomList.forEach&#91; itemName |
			if (itemName != "") {
				var itemToManage = "Heizung__" + itemName + "_Set_Temperature"
				
				var calValue = "Calendar_Events__" + itemName + "_Titel"
				var calStart = "Calendar_Events__" + itemName + "_Start"
				
				var newValue = ScriptServiceUtil.getItemRegistry.getItem(calValue).getState.toString
				
				if (newValue != "UNDEF") {
					newValue = newValue.substring(newValue.indexOf(" ")).trim
					
					var currentValue = ScriptServiceUtil.getItemRegistry.getItem(itemToManage).getState.toString
					currentValue = currentValue.substring(0, currentValue.indexOf(" "))

					var currentStart = ScriptServiceUtil.getItemRegistry.getItem(calStart).getStateAs(DateTimeType).zonedDateTime.withZoneSameInstant((new DateTimeType).zonedDateTime.getZone).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm"))

					if (currentStart.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm")) == now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm"))) {
						logInfo("Heizungssteuerung", "neue Temperatur " + itemToManage + "= " + newValue)
						sendCommand(itemToManage, newValue)
					} 
				}
			}			
		]
end</code></pre>



<p class="wp-block-paragraph">Das Script läuft alle 5 Minuten. Hierbei durchläuft es in einer Schleife alle definierten Räume und prüft, ob eine neue Temperatur eingestellt werden soll. Wichtig ist hierbei die bereits erwähnte Namensnotation der Items. Im ersten Schritt wird geprüft, ob ein neuer Wert eingestellt werden soll. Falls dies der Fall ist prüfen wir ob die aktuelle Uhrzeit der gewünschten Uhrzeit entspricht. Falls auch dieses Kriterium zutrifft setzen wir den entsprechenden Wert am <a href="https://amzn.to/3uGvQty" target="_blank" rel="noreferrer noopener sponsored nofollow">Heizkörperthermostat</a> über den sendCommand Befehl.</p>



<h2 class="wp-block-heading">Zeisteuerung in openHab mit dem Google Calendar &#8211; Fazit</h2>



<p class="wp-block-paragraph">Anfangs dreht ich mich ein wenig im Kreis bis ich die Funktionen der einzelnen Bindings im Detail verstanden hatte und mich langsam dem gewünschten Ziel näherte. Inzwischen läuft die Heizungssteuerung mit openHab über die <a href="https://amzn.to/46yNnkI" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic IP Komponenten</a> sehr verlässlich. Durch die Planung über meinen Kalender kann ich quasi nebenbei die Zeitpläne von überall aus bearbeiten und bin sehr flexibel geworden. </p>
<p>Der Beitrag <a href="https://www.schiffler.eu/heizungssteuerung-mit-openhab-google-kalender/">Heizungssteuerung mit openHab und Google Kalender automatisieren</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/heizungssteuerung-mit-openhab-google-kalender/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verbrauchsmessung Balkonkraftwerk mit openHab</title>
		<link>https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/</link>
					<comments>https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/#comments</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sun, 03 Sep 2023 06:50:00 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Balkonsolaranlage]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Energiewende]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[Shelly]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1924</guid>

					<description><![CDATA[<p>Im August 2023 habe ich das Balkonkraftwerk auf meiner Flachdachgarage in Betrieb genommen. Natürlich ist es schön zu wissen dass &#8230; <a href="https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/" class="more-link">More <span class="screen-reader-text">Verbrauchsmessung Balkonkraftwerk mit openHab</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/">Verbrauchsmessung Balkonkraftwerk mit openHab</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Im August 2023 habe ich das <a href="https://www.schiffler.eu/flachdachgarage-mit-balkonsolaranlage-ausgestattet/">Balkonkraftwerk auf meiner Flachdachgarage</a> in Betrieb genommen. Natürlich ist es schön zu wissen dass man nun selbst Strom erzeugt und den Bezug vom Strombetreiber reduziert, schöner ist es jedoch wenn man die Zahlen hierfür klar vor sich hat. Aus diesem Grund habe ich mich hingesetzt und einige Scripte geschrieben welche mir helfen Verbrauchsmessung Balkonkraftwerk mit openHab auszuwerten und anzeigen zu lassen. </p>



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



<p class="wp-block-paragraph">Das Balkonkraftwerk befindet sich auf meiner Flachdachgarage neben dem Haus. Das Haus und die Garage sind über ein ausreichend dimensioniertes Kabel miteinander verbunden worüber die Garage heute den Strom bezieht. In der Garage wurde eine neue Dose installiert an welche das Balkonkraftwerk angeschlossen ist. Die Dose selbst läuft über eine &#8218;<a href="https://amzn.to/3QScsmt" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly Plus 1 PM</a>*&#8216; (mit einer 1 gekennzeichnet) welche die Verbrauchsdaten misst. Am Hauptsicherungskasten im Haus ist eine &#8218;<a href="https://amzn.to/3KVCj9n" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly 3EM</a>*&#8216; installiert (mit einer 2 gekennzeichnet) welche die Verbrauchsdaten aller 3 Phasen misst. Diese Verbrauchsdaten werden bereits per MQTT an openHab gesendet (die Konfiguration hierzu ist in &#8218;<a href="https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/">Shelly Verbrauchsdaten über MQTT an openHab senden</a>&#8218; beschrieben).</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%"><div class="wp-block-image">
<figure class="aligncenter size-full has-lightbox"><img loading="lazy" decoding="async" width="1356" height="771" src="https://www.schiffler.eu/wp-content/uploads/2023/08/solarmessungAufbau.png" alt="Balkonkraftwerk Aufbau" class="wp-image-1946" srcset="https://www.schiffler.eu/wp-content/uploads/2023/08/solarmessungAufbau.png 1356w, https://www.schiffler.eu/wp-content/uploads/2023/08/solarmessungAufbau-300x171.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/08/solarmessungAufbau-1024x582.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/08/solarmessungAufbau-768x437.png 768w" sizes="auto, (max-width: 1356px) 100vw, 1356px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>
</div>



<p class="wp-block-paragraph">Um nun Dinge wie die Eigenverbrauchsquote des Balkonkraftwerkes oder den Strombezug vom Netzbetreiber zu berechnen benötigen wir einige Messpunkte anhand derer wir die notwendigen Daten halbwegs genau berechnen können. </p>



<h2 class="wp-block-heading">Verbrauchsmessung Balkonkraftwerk Messpunkte definieren</h2>



<p class="wp-block-paragraph">Die Shellys senden Events per MQTT sobald sich ein Wert verändert. Das heisst, dass wir bei jeder kleinen Änderung einen neuen Wert über den &#8222;neuen aktuellen Wert erhalten&#8220;. Merken wir uns nun den &#8222;altwert&#8220;, also den Wert der letzten Nachricht sowie den Zeitpunkt der neuen Nachricht so können wir den Verbrauch in einer Zeitspanne berechnen. Hierzu nehmen wir einfach den alten Wert und multiplizieren diesen mit der Zeit welche zwischen beiden eingegangenen Nachrichten liegt. </p>



<p class="wp-block-paragraph">Das klingt erstmal etwas &#8222;komplex&#8220;, funktioniert in der Realität aber ausgezeichnet. Für die eigentliche Berechnung der aktuellen Werte benötige ich nun also 9 Items. Dazu möchte ich gerne noch eine Übersicht über die aktuellen Tageswerte haben welche in weiteren 6 Items abgelegt werden. </p>



<pre class="wp-block-code"><code>Number		stromUpdateTimeStamp   		"letztes Stromupdate &#91;%d]"
Number		stromBezugAltwert			"Strombezug altwert &#91;%d]"
Number 		stromBezugWert			 	"Strombezug Wert &#91;%d]"
Number 		stromEinspeisungAltwert		"Stromeinspeisung Altwert &#91;%d]"
Number 		stromEinspeisungWert			"Stromeinspeisung Wert &#91;%d]"

Number		stromErzeugungAltwert			"Stromerzeugung Altwert&#91;%d]"
Number		stromErzeugungWert			"Stromerzeugung Wert&#91;%d]"
Number		stromErzeugerUpdateTimeStamp		"letzte Update Erzeugung &#91;%d]"

Number		stromErzeugungKwhToday			"Stromerzeugung &#91;%d] kWh"
Number		stromBezugKwhToday			"Strombezug &#91;%d] kWh"
Number		stromEinspeisungKwhToday		"Stromeinspeisung &#91;%d] kWh"
Number		stromVerbrauchKwhToday			"Stromverbrauch &#91;%d] kWh"
Number		stromEigennutzungProzent		"Eigennutzung &#91;%d]"
Number		stromEigennutzungKwhToday		"Eigennutzung &#91;%d] kWh"</code></pre>



<h2 class="wp-block-heading">Auswertung der MQTT-Events des Stromzählers</h2>



<p class="wp-block-paragraph">Als erstes widme ich mich den Events des Hauptstromzählers. Auf Basis des aktuellen Wertes kann ich entscheiden, ob ich gerade Strom vom Betreiber beziehe oder ob ich Strom ins Netz einspeise (positiver Wert = ich beziehe etwas vom Betreiber). Nachfolgend mein Script:</p>



<pre class="wp-block-code"><code>rule "Stromzaehler Wert Change"
	when
		Item MQTTThing_aktueller_Stromverbrauch changed
	then
		var Number aktuellerWert = MQTTThing_aktueller_Stromverbrauch.state
		val Number letztesUpdateValue = stromUpdateTimeStamp.state;
		var ZonedDateTime now = ZonedDateTime.now();
		var Number vStromBezugAltwert = stromBezugAltwert.state;
		var Number vStromBezugWert = stromBezugWert.state;
		var Number vStromEinspeisungAltwert = stromEinspeisungAltwert.state;
		var Number vStromEinspeisungWert = stromEinspeisungWert.state;
		
		if (vStromBezugWert === NULL || vStromBezugAltwert === NULL) {
			vStromBezugWert = 0;
			vStromBezugAltwert = 0;
			vStromEinspeisungAltwert = 0;
			vStromEinspeisungWert = 0;
		}
		
		var ZonedDateTime letztesUpdate;
		if (letztesUpdateValue === NULL) {
			letztesUpdate = ZonedDateTime.of(LocalDate.now(), LocalTime.MIN, ZoneId.systemDefault());
		} else {
			letztesUpdate = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(letztesUpdateValue.longValue), ZoneId.systemDefault());
		}

		var double zeitspanne = Double.valueOf(java.time.temporal.ChronoUnit.MILLIS.between(letztesUpdate, now)) / 1000;
		if (aktuellerWert &gt; 0) {
			vStromBezugWert += vStromBezugAltwert * zeitspanne;
			stromBezugAltwert.postUpdate(aktuellerWert);
			stromEinspeisungAltwert.postUpdate(0);
		} else {
			aktuellerWert = aktuellerWert * -1;
			vStromEinspeisungWert += vStromEinspeisungAltwert * zeitspanne;
			stromBezugAltwert.postUpdate(0);
			stromEinspeisungAltwert.postUpdate(aktuellerWert);
		}
		
		stromBezugWert.postUpdate(vStromBezugWert)
		stromEinspeisungWert.postUpdate(vStromEinspeisungWert)
		stromUpdateTimeStamp.postUpdate(now.toInstant().toEpochMilli())
end</code></pre>



<p class="wp-block-paragraph">Ich berechne als erstes die Zeitspanne zwischen dem aktuellen und dem letzten Event. Anschließend prüfe ich, ob ich gerade Strom vom Betreiber beziehe oder ob mein Balkonkraftwerk Strom ins Netz einspeist. Entsprechend dieser Prüfung aktualisiere ich die jeweiligen Werte der Items, setze die Altwerte auf die aktuellen Werte und setze die Timestamp auf die aktuelle Zeit. </p>



<h2 class="wp-block-heading">Auswertung der MQTT-Events des Balkonkraftwerks</h2>



<p class="wp-block-paragraph">Nachdem wir über den Stromzähler nun wissen ob wir gerade Strom einspeisen oder vom Netz beziehen fehlt uns noch die Information, wie viel Strom unser Balkonkraftwerk gerade erzeugt. Diesen Wert erhalten wir direkt von der Shelly an welche das Balkonkraftwerk angeschlossen ist. Auch hier erstmal mein Script:</p>



<pre class="wp-block-code"><code>rule "Stromerzeugung Wert Change"
    when
		Item MQTTThing_Balkonkraftwerk_Garage_Erzeugung changed
	then
		var Number aktuellerWert = MQTTThing_Balkonkraftwerk_Garage_Erzeugung.state
        	val Number letztesUpdateValue = stromErzeugerUpdateTimeStamp.state;
        	var ZonedDateTime now = ZonedDateTime.now();
		var Number vStromAltwert = stromErzeugungAltwert.state;
        	var Number vStromWert = stromErzeugungWert.state;	

			if (vStromWert === NULL || vStromAltwert === NULL) {
			vStromWert = 0;
			vStromAltwert = 0;
		}

        	var ZonedDateTime letztesUpdate;
        	if (letztesUpdateValue === NULL) {
			letztesUpdate = ZonedDateTime.of(LocalDate.now(), LocalTime.MIN, ZoneId.systemDefault());
		} else {
			letztesUpdate = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(letztesUpdateValue.longValue), ZoneId.systemDefault());
		}

        	var double zeitspanne = Double.valueOf(java.time.temporal.ChronoUnit.MILLIS.between(letztesUpdate, now)) / 1000;
        	vStromWert += vStromAltwert * zeitspanne;
       
		stromErzeugungAltwert.postUpdate(aktuellerWert);
		stromErzeugungWert.postUpdate(vStromWert);
        	stromErzeugerUpdateTimeStamp.postUpdate(now.toInstant().toEpochMilli());
end</code></pre>



<p class="wp-block-paragraph">Wer das erste Script verstanden hat, für den ist dieses Script selbsterklärend. Wir nehmen den alten Wert des Balkonkraftwerkes und multiplizieren diesen mit der Zeit zwischen dem letzten und dem aktuellen Event. Nun aktualisieren wir noch die entsprechenden Items und schon haben wir die gewünschten Werte.</p>



<h2 class="wp-block-heading">Berechnung der Tageswerte</h2>



<p class="wp-block-paragraph">Ein wenig mehr habe ich über die Berechnung der Tageswerte gegrübelt. Ich möchte gerne für jeden Kalendertag die Gesamtwerte verfügbar haben. Diese müssen täglich um 0 Uhr zurück gesetzt werden, so dass die Zählung für den neuen Tag wieder korrekt ist. Um es mit der Berechnung nicht zu übertreiben habe ich mich dazu entschieden diese nur alle 15 Minuten durchzuführen. Hierdurch kam es jedoch bei dem täglichen Reset zu einem Problem so dass ich hier eine 2te Prüfung einbaute und nicht nur beim Tageswechsel sondern auch dann wenn der Bezug &gt; 2 KwH in der erste Stunde des Tages (also zwischen 0 und 1 Uhr) ist. </p>



<p class="wp-block-paragraph">Erneut, anbei erstmal mein Script:</p>



<pre class="wp-block-code"><code>rule "Stromerzeugung Tagswerte"
    when
		Time cron "0 */15 * * * *" // alle 15 Minuten genügt
	then
		// Check if next day
		val Number letztesUpdateValue = stromUpdateTimeStamp.state;
		var ZonedDateTime letztesUpdate;
		if (letztesUpdateValue === NULL) {
			letztesUpdate = ZonedDateTime.of(LocalDate.now(), LocalTime.MIN, ZoneId.systemDefault());
		} else {
			letztesUpdate = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(letztesUpdateValue.longValue), ZoneId.systemDefault());
		}
		
		var Number stromVerbrauchKwhTodayValue = stromVerbrauchKwhToday.state
		
		if ((((stromVerbrauchKwhTodayValue === NULL) || (stromVerbrauchKwhTodayValue &gt; 2)) &amp;&amp; (letztesUpdate.toLocalTime().getHour() == 0)) || letztesUpdate.toLocalDate().isBefore(LocalDate.now())) {
			logInfo("rules.stromerzeugung.tageswerte", "Tageswechsel  reset to 0");
			
			// Tageswechsel
			stromBezugAltwert.postUpdate(0);
			stromEinspeisungAltwert.postUpdate(0);
			stromBezugWert.postUpdate(0);
			stromEinspeisungWert.postUpdate(0);
		
			stromErzeugungAltwert.postUpdate(0);
			stromErzeugungWert.postUpdate(0);

			stromUpdateTimeStamp.postUpdate(ZonedDateTime.now().toInstant().toEpochMilli());
			stromErzeugerUpdateTimeStamp.postUpdate(ZonedDateTime.now().toInstant().toEpochMilli());
			
			stromVerbrauchKwhToday.postUpdate(0);
			stromErzeugungKwhToday.postUpdate(0);
			stromEinspeisungKwhToday.postUpdate(0);
			stromBezugKwhToday.postUpdate(0);			
			
			stromEigennutzungKwhToday.postUpdate(0);
			stromEigennutzungProzent.postUpdate(100);
		} else {
			var Number stromBezug = stromBezugWert.state
			var Number stromErzeugung = stromErzeugungWert.state;
			var Number stromEinspeisung = stromEinspeisungWert.state

			if (stromBezug === NULL || stromBezug == 0) {
				stromBezug = 0;
				stromErzeugung = 0;
				stromEinspeisung = 0;
			}
			stromVerbrauchKwhToday.postUpdate((stromBezug + stromErzeugung - stromEinspeisung) / 60 / 60 / 1000);
			stromErzeugungKwhToday.postUpdate((stromErzeugung) / 60 / 60 / 1000);
			stromEinspeisungKwhToday.postUpdate((stromEinspeisung) / 60 / 60 / 1000);
			stromBezugKwhToday.postUpdate((stromBezug) / 60 / 60 / 1000);
			stromEigennutzungKwhToday.postUpdate((stromErzeugung - stromEinspeisung) / 60 / 60 / 1000);
			
			if (stromEinspeisung == 0 || stromErzeugung == 0) {
				stromEigennutzungProzent.postUpdate(100);
			} else {
				stromEigennutzungProzent.postUpdate(100 - (stromEinspeisung / stromErzeugung * 100));
			}
		}
end</code></pre>



<p class="wp-block-paragraph">Eigentlich ist auch hier keine grosse Magie zu finden. Der Tagesverbrauch ergibt sich aus dem Bezug vom Stromanbieter + dem Eigenverbrauch. Der Eigenverbrauch selbst entspricht dem Wert der Erzeugung abzgl. dem Wert der Einspeisung. Diese Werte werden alle 15 Minuten berechnet und in den entsprechenden Items abgelegt.</p>



<h2 class="wp-block-heading">Verbrauchsmessung Balkonkraftwerk Visualisierung</h2>



<p class="wp-block-paragraph">So nun haben wir also viele Items welche munter irgend welche Daten speichern und berechnen. Das ist für den ersten Schritt ja schonmal schön, besser wäre es aber doch wenn man diese nun auch noch sauber anzeigen könnte, oder? Zu diesem Zweck habe ich mir 2 neue Seiten angelegt:</p>



<h3 class="wp-block-heading">aktuelle Werte des Balkonkraftwerkes</h3>



<div class="wp-block-file alignright"><a id="wp-block-file--media-0a137940-b4de-4982-9190-b16767dec40e" href="https://www.schiffler.eu/wp-content/uploads/2023/08/openhabPvLiveansicht.txt">openhabPvLiveansicht</a><a href="https://www.schiffler.eu/wp-content/uploads/2023/08/openhabPvLiveansicht.txt" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-0a137940-b4de-4982-9190-b16767dec40e">Herunterladen</a></div>



<p class="wp-block-paragraph">Als erstes möchte ich gerne auf einen Blick sehen, wie sich der Verbrauch in meinem Haus gerade jetzt darstellt. Zu diesem Zweck habe ich ein Dashboard erstellt, welches den aktuellen Strombezug, die aktuelle Erzeugung sowie die Tageswerte bis zum aktuellen Zeitpunkt darstellt:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="369" src="https://www.schiffler.eu/wp-content/uploads/2023/08/balkonkraftwerkTagesuebersicht-1024x369.png" alt="Balkonkraftwerk Liveansicht" class="wp-image-1928" srcset="https://www.schiffler.eu/wp-content/uploads/2023/08/balkonkraftwerkTagesuebersicht-1024x369.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/08/balkonkraftwerkTagesuebersicht-300x108.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/08/balkonkraftwerkTagesuebersicht-768x277.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/08/balkonkraftwerkTagesuebersicht-1536x554.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/08/balkonkraftwerkTagesuebersicht.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Das dargestellte Beispiel ist von einem eher durchschnittlichen Tag mit einigen Wolken. Das Balkonkraftwerk hat bis 14 Uhr 2.22 kWh erzeugt wobei ich 89,32% dieser Erzeugung selbst genutzt habe. Daraus resultiert dass ich 0.24 kWh Strom &#8222;verschenkt&#8220; habe. Selbiges ist auch in einigen Graphen dargestellt.</p>
</div>
</div>



<h3 class="wp-block-heading">historische Analyse der Daten</h3>



<div class="wp-block-file alignright"><a id="wp-block-file--media-e5888701-d2ca-4e39-9574-3c3240c62355" href="https://www.schiffler.eu/wp-content/uploads/2023/08/openhabPvMonatsuebersicht.txt">openhabPvMonatsuebersicht</a><a href="https://www.schiffler.eu/wp-content/uploads/2023/08/openhabPvMonatsuebersicht.txt" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-e5888701-d2ca-4e39-9574-3c3240c62355">Herunterladen</a></div>



<p class="wp-block-paragraph">Neben der Tagesaktuellen Liveansicht ist die historische Sicht auf die Erzeugungswerte des Balkonkraftwerkes natürlich mit die interessanteste Sicht. Auch hierzu habe ich mir ein kleines Dashboard gebaut welches mit auf einen Blick alle relevanten Werte eines Monates anzeigt.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Das angezeigte Dashboard zeigt hierbei eine Kombination aus 4 Werten an. Die Gesamte Tagesproduktion des Balkonkraftwerkes in blau, die eigengenutzte Energie in grün, die ins Netz eingespeiste Energie in Gelb und die vom Stromanbieter bezogene Energie in rot. </p>



<p class="wp-block-paragraph">Die Werte des Eigenverbrauches und des Netzbezuges wurden hierbei gestapelt dargestellt um den gesamten Strombedarf eines Tages auf einen Blick zu sehen.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="551" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1024x551.png" alt="Balkonkraftwerk Auswertung -Gesamtübersicht aller täglichen Werte" class="wp-image-1972" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Balkonkraftwerk Auswertung -Gesamtübersicht aller täglichen Werte</figcaption></figure>
</div>
</div>



<p class="wp-block-paragraph">Ein weiteres schönes Feature des Diagramme ist, dass man einzelne Sichten per &#8222;Knopfdruck&#8220; deaktivieren kann. Somit ist es möglich sich z.B. nur die durch das Balkonkraftwerk erzeugte Energie anzeigen zu lassen, oder aber eben die Werte der Einspeisung oder Eigennutzung. Zusätzlich lassen sich die Diagramme von Haus aus downloaden oder als Tabelle exportieren. </p>



<p class="wp-block-paragraph">Hier einmal alle Diagramme für den August 2023 im Überblick. Hierbei bitte nicht wundern, die Auswertung beginnt in der Tat erst am 6. August &#8230; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<div aria-label="Carousel Gallery" class="wp-block-coblocks-gallery-carousel alignfull"><div class="coblocks-gallery-carousel-swiper-container is-cropped coblocks-gallery has-caption-style-dark has-lightbox"><div class="has-carousel has-carousel-xlrg swiper-container has-aligned-cells has-nav-d5e5ef38" data-swiper="{&quot;alignCells&quot;:true,&quot;autoPlay&quot;:true,&quot;autoPlaySpeed&quot;:3000,&quot;draggable&quot;:false,&quot;freeMode&quot;:false,&quot;loop&quot;:true,&quot;navigation&quot;:false,&quot;pageDots&quot;:false,&quot;pauseHover&quot;:true,&quot;responsiveHeight&quot;:false,&quot;slidesPerView&quot;:1,&quot;thumbnails&quot;:true,&quot;uuid&quot;:&quot;12345&quot;}" style="height:400px"><div class="swiper-wrapper"><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="0"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="1024" height="551" alt="Balkonkraftwerk Auswertung -Gesamtübersicht aller täglichen Werte" class="wp-image-1972" data-id="1972" data-link="https://www.schiffler.eu/pvtageswerte_gesamt/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1024x551.png" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption">Balkonkraftwerk Auswertung -Gesamtübersicht aller täglichen Werte</figcaption></div></div><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="1"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="1024" height="551" alt="Balkonkraftwerk Auswertung - tägliche Stromerzeugung" class="wp-image-1971" data-id="1971" data-link="https://www.schiffler.eu/pvtageswerte_erzeugung/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung-1024x551.png" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption">Balkonkraftwerk Auswertung &#8211; tägliche Stromerzeugung</figcaption></div></div><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="2"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="1024" height="551" alt="Balkonkraftwerk Auswertung - tägliche Eigennutzung" class="wp-image-1970" data-id="1970" data-link="https://www.schiffler.eu/pvtageswerte_eigennutzung/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung-1024x551.png" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption">Balkonkraftwerk Auswertung &#8211; tägliche Eigennutzung</figcaption></div></div><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="3"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="1024" height="551" alt="Balkonkraftwerk Auswertung - tägliche Einspeisung" class="wp-image-1969" data-id="1969" data-link="https://www.schiffler.eu/pvtageswerte_einspeisung/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung-1024x551.png" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption">Balkonkraftwerk Auswertung &#8211; tägliche Einspeisung</figcaption></div></div><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="4"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="1024" height="551" alt="Balkonkraftwerk Auswertung - täglicher Netzbezug" class="wp-image-1968" data-id="1968" data-link="https://www.schiffler.eu/pvtageswerte_netzbezug/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug-1024x551.png" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption">Balkonkraftwerk Auswertung &#8211; täglicher Netzbezug</figcaption></div></div><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="5"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="1024" height="551" alt="Balkonkraftwerk Auswertung - meine wichtigste Übersicht" class="wp-image-1967" data-id="1967" data-link="https://www.schiffler.eu/pvtageswerte_mostimportant/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant-1024x551.png" srcset="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant-1024x551.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant-300x161.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant-768x413.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant-1536x826.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption">Balkonkraftwerk Auswertung &#8211; meine wichtigste Übersicht</figcaption></div></div></div></div><div class="wp-block-coblocks-gallery-carousel-thumbnail-pagination"><button aria-label="gallery thumbnail" class="wp-block-coblocks-gallery-carousel-thumbnail wp-block-coblocks-gallery-carousel-thumbnail-0" style="height:80px;width:100px" tabindex="0"><img decoding="async" alt="Balkonkraftwerk Auswertung -Gesamtübersicht aller täglichen Werte" data-id="1972" data-link="https://www.schiffler.eu/pvtageswerte_gesamt/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_gesamt-1024x551.png" style="height:100%;width:100%"/></button><button aria-label="gallery thumbnail" class="wp-block-coblocks-gallery-carousel-thumbnail wp-block-coblocks-gallery-carousel-thumbnail-1" style="height:80px;width:100px" tabindex="0"><img decoding="async" alt="Balkonkraftwerk Auswertung - tägliche Stromerzeugung" data-id="1971" data-link="https://www.schiffler.eu/pvtageswerte_erzeugung/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_erzeugung-1024x551.png" style="height:100%;width:100%"/></button><button aria-label="gallery thumbnail" class="wp-block-coblocks-gallery-carousel-thumbnail wp-block-coblocks-gallery-carousel-thumbnail-2" style="height:80px;width:100px" tabindex="0"><img decoding="async" alt="Balkonkraftwerk Auswertung - tägliche Eigennutzung" data-id="1970" data-link="https://www.schiffler.eu/pvtageswerte_eigennutzung/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_eigennutzung-1024x551.png" style="height:100%;width:100%"/></button><button aria-label="gallery thumbnail" class="wp-block-coblocks-gallery-carousel-thumbnail wp-block-coblocks-gallery-carousel-thumbnail-3" style="height:80px;width:100px" tabindex="0"><img decoding="async" alt="Balkonkraftwerk Auswertung - tägliche Einspeisung" data-id="1969" data-link="https://www.schiffler.eu/pvtageswerte_einspeisung/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_einspeisung-1024x551.png" style="height:100%;width:100%"/></button><button aria-label="gallery thumbnail" class="wp-block-coblocks-gallery-carousel-thumbnail wp-block-coblocks-gallery-carousel-thumbnail-4" style="height:80px;width:100px" tabindex="0"><img decoding="async" alt="Balkonkraftwerk Auswertung - täglicher Netzbezug" data-id="1968" data-link="https://www.schiffler.eu/pvtageswerte_netzbezug/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_netzbezug-1024x551.png" style="height:100%;width:100%"/></button><button aria-label="gallery thumbnail" class="wp-block-coblocks-gallery-carousel-thumbnail wp-block-coblocks-gallery-carousel-thumbnail-5" style="height:80px;width:100px" tabindex="0"><img decoding="async" alt="Balkonkraftwerk Auswertung - meine wichtigste Übersicht" data-id="1967" data-link="https://www.schiffler.eu/pvtageswerte_mostimportant/" src="https://www.schiffler.eu/wp-content/uploads/2023/09/pvTageswerte_mostImportant-1024x551.png" style="height:100%;width:100%"/></button></div></div></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>
</div>



<h2 class="wp-block-heading">Verbrauchsmessung Balkonkraftwerk &#8211; ich bin gespannt</h2>



<p class="wp-block-paragraph">Noch habe ich kein wirkliches Gefühl dafür, wie lange es dauern wird bis sich das angeschaffte Balkonkraftwerk amortisieren wird. Der August war nun wirklich kein sonderlich guter Monat, es hat viel Geregnet. Dazu waren wir ein paar Tage weg was die Eigennutzungsquote leicht nach unten trieb. Ich werde das nun weiter verfolgen und bin gespannt, wie sich das ganze über das nächste Jahr entwickelt. Immerhin konnte das Balkonkraftwerk im August schonmal 86 kWh erzeugen wovon ich 76 kWh selbst nutzen konnte. Die Eigennutzungsquote im August betrug somit 88,37%, für den Anfang schonmal gar nicht so übel &#8230; </p>
<p>Der Beitrag <a href="https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/">Verbrauchsmessung Balkonkraftwerk mit openHab</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/verbrauchsmessung-balkonkraftwerk-mit-openhab/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Shelly Verbrauchsdaten über MQTT an openHab senden</title>
		<link>https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/</link>
					<comments>https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sat, 12 Aug 2023 07:18:55 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Balkonsolaranlage]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[Shelly]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1929</guid>

					<description><![CDATA[<p>Die Heimautomatisierung in unserem Zuhause basiert auf einer openHab Installation. Diese regelt alles was es hier zu regeln gibt. Bei &#8230; <a href="https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/" class="more-link">More <span class="screen-reader-text">Shelly Verbrauchsdaten über MQTT an openHab senden</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/">Shelly Verbrauchsdaten über MQTT an openHab senden</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Die <a href="https://www.schiffler.eu/thema/heimautomatisierung/" target="_blank" rel="noreferrer noopener">Heimautomatisierung</a> in unserem Zuhause basiert auf einer openHab Installation. Diese regelt alles was es hier zu regeln gibt. Bei der Überlegung ein <a href="https://www.schiffler.eu/flachdachgarage-mit-balkonsolaranlage-ausgestattet/" target="_blank" rel="noreferrer noopener">Balkonkraftwerk</a> hier zuhause zu installieren war klar, dass die Werte entsprechend protokolliert werden müssen um die Wirtschaftlichkeit des selbigen transparent zu machen. Zu diesem Zweck wurden im Haus einige Shelly Komponenten installiert. Nach der Einrichtung war es an der Zeit die Shelly Verbrauchsdaten über MQTT an <a href="https://www.schiffler.eu/thema/openhab/" target="_blank" rel="noreferrer noopener">OpenHab</a> zu senden um diese im nächsten Schritt dort auszuwerten. So weit so unklar &#8230;</p>



<h2 class="wp-block-heading">verwendete Komponenten für die Datenerfassung</h2>



<p class="wp-block-paragraph">Um sowohl den Bezug des Stromes vom Netzanbieter als auch die Erzeugung des selbigen durch das Balkonkraftwerk zu messen entschied ich mich für den Einbau 2er Komponenten.</p>



<p class="wp-block-paragraph">Der <a href="https://amzn.to/4bEdaLs" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly Pro 3EM</a> wurde direkt im Sicherungskasten verbaut. Dieser misst den Gesamtenergieverbrauch des gesamten Hauses über alle 3 Phasen. Dazu wurde direkt an der Anschlussdose das Balkonkraftwerkes ein <a href="https://amzn.to/44G1h5r" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly Plus 1PM</a> installiert welcher den Energieverbrauch des Balkonkraftwerkes erfasst.</p>



<p class="wp-block-paragraph">Das schöne an den Shelly-Komponenten ist, dass diese über das MQTT Protokoll verfügen. Durch dieses sind die Komponenten in der Lage eine Nachricht zu senden, sobald sich ein Wert verändert. Diese Nachrichten können nun wieder in openHab eingesammelt und in ein entsprechendes Item übertragen werden. Wir sind also in der Lage die aktuellen Livedaten sowohl Strombezuges des gesamten Hauses als auch der Stromerzeugung des Balkonkraftwerks nach openHab zu transportieren.</p>



<h2 class="wp-block-heading">Was ist MQTT eigentlich?</h2>



<p class="wp-block-paragraph">MQTT ist ein offenes Netzwerkprotokoll zur Übertragung von Nachrichten. Das Protokoll wurde für die Maschine zu Maschine Kommunikation und findet den Einsatz meist im Bereich IOT (Internet of Things). Hierbei senden Devices Informationen an einen Broker. Der Broker leitet diese an die entsprechenden Abonnenten weiter. Weitere Informationen zu MQTT selbst findet man am besten direkt auf <a href="https://mqtt.org/" target="_blank" rel="noreferrer noopener">MQTT.org</a>.</p>



<h2 class="wp-block-heading">Einrichtung des MQTT-Brokers auf dem Raspberry PI</h2>



<p class="wp-block-paragraph">Die Einrichtung des MQTT-Brokers auf dem Raspberry-PI ist recht schnell und mit wenigen Befehlen erledigt. Zuerst aktualisieren wir einmal die Pakete auf dem PI, anschliessend installieren wir das Paket &#8218;<a href="https://mosquitto.org/" target="_blank" rel="noreferrer noopener">mosquitto</a>&#8218;:</p>



<pre class="wp-block-code"><code># Update durchführen
sudo apt update
sudo apt upgrade

# Mosquitto installieren
sudo apt install mosquitto</code></pre>



<p class="wp-block-paragraph">Der MQTT-Broker Mosquitto ist nun auf dem System installiert. Nun müssen wir noch einige kleine Konfigurationen vornehmen damit der Zugriff auf den Broker funktioniert. Ich habe mich dazu entschieden den Broker ohne Authentifzierung laufen zu lassen, das muss selbigem jedoch beigebracht werden.</p>



<pre class="wp-block-code"><code># Konfigurationsdatei öffnen
sudo nano /etc/mosquitto/conf.d/local.conf

#Einfügen der folgenden Inhalte zur Datei
listener 1883
allow_anonymous true</code></pre>



<p class="wp-block-paragraph">Nun ist der Broker installiert und vorkonfiguriert. Der Zugriff erfolgt über den Port 1883 und es werden keine Benutzerdaten zur Authentifzierung benötigt. Wir können selbigen nun starten und dem System mitteilen, dass der Start des Services auch bei einem Reboot des Systemes automatisch wieder mitgestartet werden soll:</p>



<pre class="wp-block-code"><code># mosquitto beim Systemstart automatisch starten lassen
sudo systemctl enable mosquitto

# starten des mosquitto brokers
sudo systemctl start mosquitto</code></pre>



<h2 class="wp-block-heading">MQTT in den Shelly Komponenten einrichten</h2>



<p class="wp-block-paragraph">Nachdem der MQTT-Broker nun läuft können die Shelly-Komponenten konfiguriert werden so dass diese bei jeder Änderung eine Message an den Broker senden. Dies funktioniert über die Oberfläche des Komponenten. Der Zugriff erfolgt entweder über die interne IP (ist im Router zu finden) oder die Shelly-Cloud. Meine Screenshots stammen aus der <a href="https://home.shelly.cloud/" target="_blank" rel="noreferrer noopener">Shelly-Cloud</a>, welche bei mir allerdings inzwischen deaktiviert wurde. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="931" height="767" src="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_1.png" alt="Aktivierung der MQTT Einstellung in der Shelly" class="wp-image-1921" srcset="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_1.png 931w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_1-300x247.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_1-768x633.png 768w" sizes="auto, (max-width: 931px) 100vw, 931px" /></figure>



<p class="wp-block-paragraph"><strong>Schritt 1: </strong><br>Die MQTT Konfiguration befindet sich im Settings-Bereich unter dem Punkt Network \ MQTT</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="455" height="605" src="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_2.png" alt="Aktivierung der MQTT Einstellung in der Shelly" class="wp-image-1920" srcset="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_2.png 455w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_shelly_2-226x300.png 226w" sizes="auto, (max-width: 455px) 100vw, 455px" /></figure>



<p class="wp-block-paragraph"><strong>Schritt 2:</strong><br>MQTT selbst ist zu aktivieren. Damit openHab die Nachrichten auswerten kann sollte unbedingt die Optin &#8218;Generic status update over MQTT&#8216; aktiviert werden, ansonsten gibt es Probleme bei der Auswertung der Nachrichten. <br>Im Feld Host geben wir den Namen oder die IP unseres Rapsberry-PI zusammen mit dem konfigurierten Port 1883 an. Das FeldUsername und Passwort lassen wir einfach leer</p>
</div>
</div>



<p class="wp-block-paragraph">Nachdem die Änderungen übernommen wurden senden die Shellys bereits Nachrichten an den MQTT Broker welche nun &#8222;nur noch&#8220; ausgewertet werden müssen.</p>



<h2 class="wp-block-heading">Nachrichteneingang mit dem MQTT-Explorer prüfen</h2>



<p class="wp-block-paragraph">Nachdem ich den Shellys den Versand der MQTT Nachrichten beigebracht habe entschied ich mich, erstmal zu prüfen ob die Nachrichten auch wirklich ankommen. Hierfür setze ich einen freien MQTT-Client Namens &#8218;<a href="http://mqtt-explorer.com/" target="_blank" rel="noreferrer noopener">MQTT-Explorer</a>&#8218; ein. Nach dem Start des Tools hinterlege ich auch hier den Hostnamen des MQTT-Brokers und schon kann ich die eingehenden Nachrichten sehen. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="310" src="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_1-1024x310.png" alt="Shelly MQTT Nachricht der Shelly Pro 3em" class="wp-image-1923" srcset="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_1-1024x310.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_1-300x91.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_1-768x233.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_1.png 1199w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Nachricht des <a href="https://amzn.to/44YZasM" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly Pro 3PM</a>* aus dem Hauptverteiler. Markiert ist hierbei der Wert des aktuellen Netzbezuges.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="430" src="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_2-1024x430.png" alt="Shelly MQTT Nachricht der Shelly Plus 1 pm" class="wp-image-1922" srcset="https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_2-1024x430.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_2-300x126.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_2-768x323.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/07/mqtt_2.png 1028w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Nachricht des <a href="https://amzn.to/3KCH3k3" target="_blank" rel="noreferrer noopener sponsored nofollow">Shelly Plus 1PM</a>* des Balkonkraftwerkes. Markiert ist hier der aktuelle Wert des Stromes, welcher durch die Solarmodule erzeugt werden. </p>
</div>
</div>



<p class="wp-block-paragraph">Die Kontrolle der Nachrichten gibt zum einen ein gutes Gefühl und stellt sicher, dass die Kommunikation sauber funktioniert. Des weiteren ist diese Kontrolle relevant um zu erfahren, welche Inhalte die MQTT-Nachricht hat. Wie zu sehen ist beinhaltet die Nachricht eine Vielzahl von Werten. Für meine Zwecke sind von beiden Nachricht jedoch nur 2 Werte relevant welche im nächsten Schritt in openHab integriert werden.</p>



<h2 class="wp-block-heading">Einrichtung des MQTT-Clients in openHab</h2>



<p class="wp-block-paragraph">Etwas mehr als die Hälfte des Weges ist gemacht. Nun sollen die Nachrichten der Shellys noch in openHab ausgewertet werden. Hierzu benötigen wir als erstes einmal das <a href="https://www.openhab.org/addons/bindings/mqtt/" target="_blank" rel="noreferrer noopener">MQTT-Binding</a> in OpenHab. Nachdem selbiges installiert ist richten wir zuerst einmal einen MQTT-Client ein welcher die Verbindung zum MQTT-Broker herstellt. Als nächstes definieren wir ein MQTT-Topic (über ein Generic-MQTT-Thing) welches dazu dient, alle Nachrichten des MQTT-Brokers zu empfangen:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="751" height="525" src="https://www.schiffler.eu/wp-content/uploads/2023/08/openHabMqttBroker.png" alt="Einrichtung des MQTT-Client in openHab" class="wp-image-1938" srcset="https://www.schiffler.eu/wp-content/uploads/2023/08/openHabMqttBroker.png 751w, https://www.schiffler.eu/wp-content/uploads/2023/08/openHabMqttBroker-300x210.png 300w" sizes="auto, (max-width: 751px) 100vw, 751px" /></figure>



<p class="wp-block-paragraph"><strong>Schritt 1</strong><br>Definition eines neues Items vom Typ &#8218;MQTT Broker&#8216; welches als Client fungiert. Im Feld Hostname tragen wir die IP-Adresse des installierten Mosquitto Servers ein. In meinem Fall läuft dieser auf dem gleichen PI wie auch openHab wodurch die Angabe von 127.0.0.1 völlig genügt. Weitere Angaben sind nicht notwendig (sofern der gleiche Port und der anonyme Zugriff wie hier beschrieben gewählt wurden)</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="750" height="479" src="https://www.schiffler.eu/wp-content/uploads/2023/08/openHabMqttTopic.png" alt="Einrichtung des MQTT-Topic in openHab" class="wp-image-1937" srcset="https://www.schiffler.eu/wp-content/uploads/2023/08/openHabMqttTopic.png 750w, https://www.schiffler.eu/wp-content/uploads/2023/08/openHabMqttTopic-300x192.png 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /></figure>



<p class="wp-block-paragraph"><strong>Schritt 2</strong><br>Nachdem das Thing für den MQTT-Client eingerichtet wurde definieren wir ein weiteres Item. Dieses ist vom Typ &#8218;Generic MQTT Thing&#8216; und nutzt als Bridge den im vorherigen Schritt angelegten Client. <br>Auch hier ist keine weitere Konfiguration notwendig.</p>
</div>
</div>



<h2 class="wp-block-heading">Definition der benötigen Channels und Items in openHab</h2>



<p class="wp-block-paragraph">Nachdem beide Items angelegt sind sehen wir &#8230; nichts. Im Hintergrund passiert nun aber doch schon einiges, auch wenn wir es nicht sehen. Die Shellys senden bei jeder Änderung eine MQTT-Nachricht an den installierten Mosquitto-Broker. Das im Schritt 1 eingerichtet Item stellt die Verbindung zum Broker her. Das im Schritt 2 eingerichtet Topic nutzt den Client und empfängt alle Nachrichten. Diese werden noch nicht ausgewertet wodurch wir noch nichts sehen, also los.</p>



<p class="wp-block-paragraph">Für meinen Anwendungsfall genügen mir 2 Werte. Zum einen möchte ich gerne wissen wie viel Strom ich gerade vom Netzbetreiber beziehe. Zum zweiten möchte ich wissen wie viel Strom mein Balkonkraftwerk generiert. Aus diesen beiden Werten lassen sich alle weiteren Werte berechnen (mehr dazu in einem anderen Beitrag). </p>



<p class="wp-block-paragraph">Bevor die MQTT Nachrichten verarbeitet werden können wird ein weiteres Modul in openHab benötigt. Die eingehenden Nachrichten kommen im JSON-Format an. Damit dieses einfach verarbeitet werden kann installieren wir das &#8218;<a href="https://www.openhab.org/addons/transformations/jsonpath/" target="_blank" rel="noreferrer noopener">JsonPath Transformation</a>&#8218; Plugin. Sobald dies geschehen ist können wir die benötigten Channels anlegen.</p>



<p class="wp-block-paragraph">Als erstes benötigen wir 2 Channels auf dem eingerichteten MQTT-Topic. Diese Channels extrahieren die gewünschten Informationen aus den MQTT-Nachrichten und stellen diese für die weitere Verarbeitung bereit.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<p class="wp-block-paragraph"><strong>Channel 1: Strombezug vom Netzbetreiber</strong></p>



<p class="wp-block-paragraph">Channel Identifier: HouseEnergyCurrent&nbsp;<br>Label: aktueller Stromverbrauch<br>Channel Type: Number<br>MQTT-State Topic: shelly-sicherungskasten/status/em:0<br>Unit Of Measurement: W<br>Incoming Value Transformations: JSONPATH:$.total_act_power</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<p class="wp-block-paragraph"><strong>Channel 2: Balkonkraftwerk Stromgenerierung</strong></p>



<p class="wp-block-paragraph">Channel Identifier: GarageProduction<br>Label: Balkonkraftwerk Garage Erzeugung<br>Channel Type: Number<br>MQTT-State Topic: shelly-balkonkraftwerk-garage/status/switch:0<br>Unit Of Measurement: W<br>Incoming Value Transformations: JSONPATH:$.apower</p>
</div>
</div>



<p class="wp-block-paragraph">Nun können wir endlich die so lang ersehnten Items anlegen:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<figure class="wp-block-image size-full is-resized has-lightbox"><img loading="lazy" decoding="async" width="726" height="128" src="https://www.schiffler.eu/wp-content/uploads/2023/08/mqttThings.png" alt="MQTT Things in openHab" class="wp-image-1940" style="width:386px;height:68px" srcset="https://www.schiffler.eu/wp-content/uploads/2023/08/mqttThings.png 726w, https://www.schiffler.eu/wp-content/uploads/2023/08/mqttThings-300x53.png 300w" sizes="auto, (max-width: 726px) 100vw, 726px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>
</div>



<h2 class="wp-block-heading">aktuelle Live Stromwerte in openHab</h2>



<p class="wp-block-paragraph">Ich muss zugeben, dass mich dieser Weg einiges an Zeit gekostet hat. Jetzt, wo ich weiß wie es funktioniert, ist es alles logisch. Zu Beginn jedoch sah ich den Wald vor lauter Bäumen nicht und musste ein wenig kämpfen bis ich alle losen Enden zusammen hatte. Jetzt bin ich endlich so weit dass die Shelly Verbrauchsdaten über MQTT an openHab gesendet und dort ausgewertet werden können. </p>



<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="479" src="https://www.schiffler.eu/wp-content/uploads/2023/08/mqttItemsGraph-1024x479.png" alt="Auswertung der MQTT Verbrauchsdaten" class="wp-image-1942" srcset="https://www.schiffler.eu/wp-content/uploads/2023/08/mqttItemsGraph-1024x479.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/08/mqttItemsGraph-300x140.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/08/mqttItemsGraph-768x359.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/08/mqttItemsGraph-1536x718.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/08/mqttItemsGraph.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Die obige Grafik zeigt den Verlauf eines Tages an wobei die blaue Linie dem Bezug vom Netz (also den eingekauften Strom) darstellt. Die grüne Linie zeigt an wie viel Strom das Balkonkraftwerk produziert hat. </p>



<p class="wp-block-paragraph">Als nächstes werde ich mich der Berechnung der Tageswerte widmen. Das Ziel ist es eine genaue Übersicht darüber zu erhalten wie viel Strom ich vom Netzbetreiber beziehe, was mein Balkonkraftwerk an Strom generiert und wie der Wirkungsgrad des selbigen wirklich ist. Stichworte wie &#8222;Eigenverbrauchsquote&#8220; oder auch die Amortisierungszeit sind hierbei Fragen die mich herumtreiben. Sobald ich hier etwas brauchbares zu vermelden habe werde ich diese Scripte natürlich ebenfalls veröffentlichen.</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/">Shelly Verbrauchsdaten über MQTT an openHab senden</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/shelly-verbrauchsdaten-ueber-mqtt-an-openhab-senden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</title>
		<link>https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/</link>
					<comments>https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Sat, 03 Jun 2023 09:47:48 +0000</pubDate>
				<category><![CDATA[eigene Projekte]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1852</guid>

					<description><![CDATA[<p>Wie bereits in meinem Beitrag zum gleichen Thema in Verbindung mit FHEM geschildet, ist die automatische Benachrichtigung wenn die Waschmaschine &#8230; <a href="https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/" class="more-link">More <span class="screen-reader-text">Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/">Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wie bereits in meinem <a href="https://www.schiffler.eu/waschmaschine-statusmail-fhem-homematic/">Beitrag zum gleichen Thema in Verbindung mit FHEM</a> geschildet, ist die automatische Benachrichtigung wenn die Waschmaschine (oder auch der Trockner) fertig ist ein elementares Feature in unserer Heimautomatisierung. Der Grund hierfür ist die erhöhte Akzeptanz für meine &#8222;Spielereien&#8220; bei meiner Frau. Durch die <a href="https://www.schiffler.eu/thema/openhab/">Umstellung auf OpenHAB</a> musste also auf hierfür eine neue Lösung herbei. Durch den Einsatz von Pushsafer für Waschmaschine Statusupdates konnte eine kostengünstige Lösung umgesetzt werden, bei welcher die Waschmaschine (und auch der Wäschetrockner) uns Benachrichtigungen senden, wenn diese Ihre Arbeit verrichtet haben. Wie ich das ganze mit OpenHAB umgesetzt habe, dokumentiere ich im folgenden Artikel.</p>



<h2 class="wp-block-heading">Das Grundsetup</h2>



<p class="wp-block-paragraph">Unsere Waschmaschine und auch unser Wäschetrockner stehen im Keller im Waschkeller. Wir befinden uns irgendwo im Haus (oder Garten) und hören selbige nicht. Wir bekommen also in der Regel nicht selbst mit, ob die Geräte fertig sind. Schön wäre es doch, wenn uns das Gerät selbst bescheid sagt, wenn es fertig ist, oder?</p>



<p class="wp-block-paragraph">Hierfür analysiere ich den Stromverbrauch der jeweiligen Geräte. Ist das Gerät aktiv so ist der Stromverbrauch höher als im Ruhemodus. Also messen wir &#8222;einfach&#8220; den Stromverbrauch und prüfen, ob dieser höher ist als der Ruhemodus. Befindet sich das Gerät längere Zeit im Ruhemodus so senden wir eine Benachrichtigung und schalten das Gerät aus. </p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><a href="https://amzn.to/3E1YgTz" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/61lzoB+tG3L._AC_SX679_.jpg" alt="Homematic IP Smart Home Schalt-Mess-Steckdose" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><a href="https://amzn.to/40IDstq" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/510VI9p193L._AC_SX679_.jpg" alt="Homematic IP Smart Home Zentrale CCU3" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>
</div>



<p class="wp-block-paragraph">Hierfür wurden beide Geräte über eine eigene smarte <a href="https://amzn.to/3oipHRP" target="_blank" rel="noreferrer noopener sponsored nofollow">Steckdose mit Leistungsmessung*</a> am Stromnetz angeschlossen. Hier habe ich mich für die Steckdosen von <a href="https://amzn.to/3Iwq7L2" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic*</a> entschieden. Dazu betreibe ich die <a href="https://amzn.to/3BPxppt" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic CCU3 Zentrale*</a> welche über das entsprechende <a href="https://www.openhab.org/addons/bindings/homematic/" target="_blank" rel="noreferrer noopener nofollow">Binding</a> an meine auf dem <a href="https://amzn.to/420jA2a" target="_blank" rel="noreferrer noopener sponsored nofollow">Raspberry*</a> betriebene <a href="https://www.openhab.org/" target="_blank" rel="noreferrer noopener">OpenHAB Installation</a> angebunden ist. </p>



<h2 class="wp-block-heading">Pushsafer für Waschmaschine Statusupdate versenden &#8211; Scripte</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Im ersten Schritt benötigen wir in OpenHAB unsere Steckdose als &#8222;Thing&#8220;. Diese habe ich mir in mein Modell des Hauswirtschaftsraumes gezogen und mit 3 Items angelegt:</p>



<ul class="wp-block-list">
<li> Current -&gt; aktueller Stromverbrauch</li>



<li>Energy Counter -&gt; gesamter Stromverbrauch</li>



<li>State -&gt; Status (ein / aus)</li>
</ul>



<p class="wp-block-paragraph">Für die beschriebene Umsetzung wird der aktuelle Stromverbrauch sowie der Status benötigt. Hier aber zunächst mal das umgesetzte Script:</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="264" height="241" src="https://www.schiffler.eu/wp-content/uploads/2023/05/openhab_waschmaschine_device.png" alt="OpenHAB - Device für Stromverbrauch der Waschmaschine" class="wp-image-1857"/></figure>
</div>
</div>



<pre class="wp-block-code"><code>rule "HWR Waschmaschine - Energychange"
  when
    Item Strom__HWR__Waschmaschine_Current.state changed
  then
    val Number grenze = 50

    if((Strom__HWR__Waschmaschine_Current.state.state as DecimalType).intValue &lt; grenze) {
      if (timerHwrWaschmaschine === null) {
        timerHwrWaschmaschine = createTimer(now.plusMinutes(2), &#091;
          if((Strom__HWR__Waschmaschine_Current.state.state as DecimalType).intValue &lt; grenze &amp;&amp; Strom__HWR__Waschmaschine_State.state.toString == "ON") {
            logInfo("rules.automatic.hwr.wash", "Stromverbrauch länger als 2 Minuten unter Grenzwert - ausschalten")
            Strom__HWR__Waschmaschine_State.sendCommand(OFF)

            val actions = getActions("pushsafer", "pushsafer:pushsafer-account:gemeinsam")
            actions.sendPushsaferMessage("Homecontrol - HWR", "Waschmaschine ist aus")

            timerHwrWaschmaschine = null
          }
        ])
      }
    } else {
      timerHwrWaschmaschine?.cancel
      timerHwrWaschmaschine = null
    }
end</code></pre>



<p class="wp-block-paragraph">Das Rule &#8218;HWR Waschmaschine &#8211; Energychange&#8216; reagiert auf jede Änderung des Stromverbrauches des Items &#8218;Strom__HWR__Waschmaschine_Current&#8216; welches auf den aktuellen Stromverbrauch der Waschmaschine gemappt wurde. Bei jeder Änderung eines Wertes wird die Regel getriggert und führt den Code aus. </p>



<p class="wp-block-paragraph">Im ersten Schritt lege ich eine Variable &#8222;grenze&#8220; an welche den Schwellert definiert, ab wann das Gerät sich für mich im Ruhemodus befindet. Dieser Wert ist für jedes Gerät individuell und variiert. Bei meiner Waschmaschine liegt der Verbrauch im Ruhemodus unter 50 Watt. Diese Definition ist nicht zwingend notwendig, macht den Code aber einfach lesbarer.</p>



<p class="wp-block-paragraph">Im nächsten Schritt prüfe ich, ob der aktuelle Stromverbrauch sich unterhalb der definierten Grenze liegt. Ist die der Fall so wird ein Timer gestartet welcher 2 Minuten lang läuft. Sind die 2 Minuten erreicht wird erneut geprüft ob der aktuelle Stromverbrauch weiterhin unterhalb der Grenze liegt und ob die Steckdose noch eingeschaltet ist. Ist dies der Fall senden wir die Pushsafer Notification über das entsprechend angelegte Binding und setzen den Timer wieder auf null. </p>



<p class="wp-block-paragraph">Ist der aktuelle Stromverbrauch höher als die Grenze beenden wir eventuell laufende Timer und setzen selbige auf null. </p>



<h2 class="wp-block-heading">Warum der Timer?</h2>



<p class="wp-block-paragraph">Die wenigsten Elektrogeräte haben über die Zeit hin immer den gleichen Stromverbrauch. In den ersten Versuchen habe ich die Waschmaschine regelmäßig während dem Betrieb ausgeschaltet da ich auf einen Timer verzichten wollte. Dummerweise ist es aber so, dass die Waschmaschine auch im normalen Betrieb irgendwann mal ansatzweise gar keinen Strom zieht. Kurz danach fährt der Stromverbrauch wieder hoch und die Maschine beginnt z.B. zu schleudern nachdem das Wasser abgepumpt wurde. Um diese Zeiten zu überbrücken wurde der Time umgesetzt. Wir warten also 2 Minuten lang bevor wir die Maschine abschalten. Springt der Stromverbrauch während dieser 2 Minuten wieder über die definierte Grenze so brechen wir den Timer ab. Nur wenn wir 2 Minuten den Stromverbrauch unterhalb der definierten Grenze haben ist die Arbeit für uns beendet und wir schalten die Maschine ab und senden die Benachrichtigung.</p>



<h2 class="wp-block-heading">Pushsafer Notification für die Waschmaschine läuft verlässlich</h2>



<p class="wp-block-paragraph">Bei uns zuhause ist die hier beschriebene Lösung nun seit einiger Zeit im Einsatz. Sie läuft sehr verlässlich und informiert uns immer sobald die Arbeit beendet ist. Somit wissen wir wann wir die nächste Ladung Wäsche anstellen oder den Trockner befüllen können. Mit Sicherheit ist das hier keine Raketentechnik &#8211; sie erleichtert uns jedoch das Leben ein wenig <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Wie sind eure Erfahrungen? Habt Ihr selbst auch eine solche Lösung umgesetzt, eine andere Lösung oder ist es euch total egal und Ihr wollt von euren Maschine nicht angeschrien werden? </p>
<p>Der Beitrag <a href="https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/">Pushsafer für Waschmaschine &#8211; sag mir bescheid wenn Du fertig bist</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/pushsafer-fuer-waschmaschine-sag-mir-bescheid-wenn-du-fertig-bist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Homematic und OpenHAB &#8211; Tschüss HM-MOD-PI, Hallo CCU3</title>
		<link>https://www.schiffler.eu/homematic-und-openhab-tschuess-hm-mod-pi-hallo-ccu3/</link>
					<comments>https://www.schiffler.eu/homematic-und-openhab-tschuess-hm-mod-pi-hallo-ccu3/#comments</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 22 May 2023 06:25:21 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Homematic]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1831</guid>

					<description><![CDATA[<p>Wie schon aus einigen anderen Beiträgen bekannt setze ich in unserem Haus einen auf einem Raspberry-PI basierte OpenHAB-Installation zur Heimautomatisierung &#8230; <a href="https://www.schiffler.eu/homematic-und-openhab-tschuess-hm-mod-pi-hallo-ccu3/" class="more-link">More <span class="screen-reader-text">Homematic und OpenHAB &#8211; Tschüss HM-MOD-PI, Hallo CCU3</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/homematic-und-openhab-tschuess-hm-mod-pi-hallo-ccu3/">Homematic und OpenHAB &#8211; Tschüss HM-MOD-PI, Hallo CCU3</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wie schon aus <a href="https://www.schiffler.eu/thema/heimautomatisierung/" target="_blank" rel="noreferrer noopener">einigen anderen Beiträgen</a> bekannt setze ich in unserem Haus einen auf einem Raspberry-PI basierte OpenHAB-Installation zur Heimautomatisierung ein. Die meisten Komponenten welche hierüber gesteuert werden sind von Homematic und wurden lange Zeit über das HM-MOD-PI Funkmodul für den Raspberry betrieben. Nach einem Update brachte Homematic und OpenHAB mich jedoch in den Wahnsinn, so das ich mich zu einem radikalen Schritt entschied. </p>



<h2 class="wp-block-heading">Homematic Funkmodul für den Rapsberry PI</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Ich hasse es, unnötige Geräte herumstehen zu haben welche dumm Energie verbrauchen. Aus diesem Grund entschied ich mich vor 5 Jahren dazu, die Homematic-Komponenten über das Homematic Funkmodell an den Rapsberry PI anzubinden. Hierbei wird <a href="https://amzn.to/3BMHUd3" target="_blank" rel="noreferrer noopener sponsored nofollow">ein kleines Modul an den Raspberry angeschlossen*</a> welcher zusammen mit einem frei verfügbaren Softwarepaket Homegear als Homematic-Zentrale fungiert. Klingt erstmal toll, keine unnötige Hardwarekomponente irgendwo herumstehen sondern alles direkt auf einem Device zentralisiert. </p>



<p class="wp-block-paragraph">Die damalige Installation war dank <a href="https://blog.schmidhuber.org/openhab-mit-homematic-und-zigbee-hue-lightify-auf-dem-raspberry-pi" target="_blank" rel="noreferrer noopener">diverserer Anleitungen im Internet</a> recht schnell erledigt und funktionierte nach anfänglichen Problemen dann doch recht stabil. </p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<div aria-label="Carousel Gallery" class="wp-block-coblocks-gallery-carousel alignfull"><div class="coblocks-gallery-carousel-swiper-container is-cropped coblocks-gallery has-caption-style-dark has-lightbox has-no-thumbnails"><div class="has-carousel has-carousel-xlrg swiper-container has-aligned-cells" data-swiper="{&quot;alignCells&quot;:true,&quot;autoPlay&quot;:true,&quot;autoPlaySpeed&quot;:3000,&quot;draggable&quot;:true,&quot;freeMode&quot;:false,&quot;loop&quot;:true,&quot;navigation&quot;:true,&quot;pageDots&quot;:true,&quot;pauseHover&quot;:true,&quot;responsiveHeight&quot;:false,&quot;slidesPerView&quot;:1,&quot;thumbnails&quot;:false,&quot;uuid&quot;:&quot;12345&quot;}" style="height:400px"><div class="swiper-wrapper"><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="0"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="768" height="1024" alt="Homematic und OpenHAB - Funkmodul" class="wp-image-1836" data-id="1836" data-link="https://www.schiffler.eu/pxl_20230522_053618374/" src="https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053618374-768x1024.jpg" srcset="https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053618374-768x1024.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053618374-225x300.jpg 225w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053618374-1152x1536.jpg 1152w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053618374-1536x2048.jpg 1536w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053618374-scaled.jpg 1200w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption"></figcaption></div></div><div class="swiper-slide"><div class="coblocks-gallery--item" role="button" tabindex="1"><figure class="coblocks-gallery--figure"><img loading="lazy" decoding="async" width="768" height="1024" alt="Homematic und OpenHAB - Funkmodul" class="wp-image-1835" data-id="1835" data-link="https://www.schiffler.eu/pxl_20230522_053612600/" src="https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053612600-768x1024.jpg" srcset="https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053612600-768x1024.jpg 768w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053612600-225x300.jpg 225w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053612600-1152x1536.jpg 1152w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053612600-1536x2048.jpg 1536w, https://www.schiffler.eu/wp-content/uploads/2023/05/PXL_20230522_053612600-scaled.jpg 1200w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure><figcaption class="coblocks-gallery--caption coblocks-gallery--primary-caption"></figcaption></div></div></div><button class="nav-button__prev" id="12345-prev"><svg class="icon" style="transform:rotate(180deg)"></svg></button><button class="nav-button__next" id="12345-next"><svg class="icon"></svg></button></div><div class="wp-block-coblocks-gallery-carousel-page-dot-pagination-container"><div class="wp-block-coblocks-gallery-carousel-page-dot-wrapper"><button aria-label="view image 1 of 2 in carousel" class="wp-block-coblocks-gallery-carousel-page-dot-pagination"></button><button aria-label="view image 2 of 2 in carousel" class="wp-block-coblocks-gallery-carousel-page-dot-pagination"></button></div></div></div></div>
</div>
</div>



<h2 class="wp-block-heading">gelegentliche Neustarts des Homegear-Services notwendig</h2>



<p class="wp-block-paragraph">Ab und an war zu beobachten, dass Funktionen der Homematic-Komponenten nicht mehr über die Automatisierung zur Verfügung standen. Die Ursache hierfür war schnell gefunden, der Homegear-Service verabschiedete sich hin und wieder unangekündigt und stellte die Arbeit ein. Keine Konfigurationsänderung, kein neues Aufsetzen des gesamten Systems verhalten das Problem zu lösen. Nun gut, also wurde ein kleiner Service umgesetzt der alle paar Minuten die Funktion des Services prüfte. War der Service mal wieder &#8222;offline&#8220; wurde dieser neu gestartet. Dummerweise musste ich anschliessend das Binding der Homegear-Zentrale in OpenHAB ebenfalls neu starten, was über die Rest-API jedoch auch fix erledigt war. Somit lief das Modul eigentlich ganz rund &#8230; </p>



<h2 class="wp-block-heading">Update des Betriebssystems &#8211; Homegear kaputt</h2>



<p class="wp-block-paragraph">Im Mai 2023 bekam ich dann irgendwann vermehrt böse Blicke meiner geliebten Ehefrau zugeworfen &#8211; die Automatisierung läuft nicht mehr rund. Rolläden gehen nicht mehr hoch und runter, die Waschmaschine sagt uns nicht mehr dass diese fertig ist &#8211; da ist der Wurm drin. Kein Problem, denke ich mir, ich habe ja nur ein Update durchgeführt. Kurz die Services prüfen und gut ist. Dieses mal leider nicht &#8230; </p>



<p class="wp-block-paragraph">Der Homegear-Service verweigerte die Zusammenarbeit mit den Homematic-Komponenten vollends. Auch ein Rollback der Software brachte keine &#8222;kurzfristige&#8220; Lösung (ich habe mich gut 3 Stunden damit beschäftigt) und mein Log wurde mit Fehlermeldungen überschüttet:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:10%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:80%">
<pre class="wp-block-code"><code>openhab homematic Warning: !!!Not!!! sending packet, because init sequence is not complete</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:10%"></div>
</div>



<p class="wp-block-paragraph">Egal was ich versuchte, die Verbindung war gestört und ich bekam diese nicht (kurzfristig) zum laufen. Kurzfristig ist für mich hier eines der entscheidende Worte &#8211; ich habe keine Zeit mich um so einen Quatsch zu kümmern. Somit muss eine Lösung her &#8211; und zwar schnell. </p>



<h2 class="wp-block-heading">Homematic und OpenHAB &#8211; Update auf die CCU3 Zentrale</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><a href="https://amzn.to/40IDstq" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/510VI9p193L._AC_SX679_.jpg" alt="Homematic IP Smart Home Zentrale CCU3" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Glücklicherweise ist das <a href="https://www.openhab.org/addons/bindings/homematic/" target="_blank" rel="noreferrer noopener">OpenHAB-Binding für die Homematic-Zentrale</a> sowohl für Homegear als auch die <a href="https://amzn.to/3IsMLE4" target="_blank" rel="noreferrer noopener sponsored nofollow">CCU3 Zentrale*</a> gedacht. Was ist als naheliegender als die etwas fehleranfällige Umsetzung über das Funkmodul gegen die Homematic eigene Zentrale zu ersetzen? Ok, der Anschaffungspreis könnte ein Punkt sein denn eigentlich ist diese Investition nicht notwendig, sofern das Modul läuft. Tut es aber nicht, also Zähne zusammenbeissen und her mit der Zentrale. </p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">Die Zentrale selbst war echt fix eingerichtet. LAN-Kabel rein, mit dem Strom verbunden und los geht es. Die ersten Komponenten waren fix angelernt, auch wenn ich zugeben muss, dass die Oberfläche recht &#8222;altbacken&#8220; rüber kommt. Intuitiv ist anders <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large has-lightbox"><img loading="lazy" decoding="async" width="1024" height="363" src="https://www.schiffler.eu/wp-content/uploads/2023/05/homematicUI-1024x363.png" alt="Homematic CCU3 Bedienoberfläche" class="wp-image-1845" srcset="https://www.schiffler.eu/wp-content/uploads/2023/05/homematicUI-1024x363.png 1024w, https://www.schiffler.eu/wp-content/uploads/2023/05/homematicUI-300x106.png 300w, https://www.schiffler.eu/wp-content/uploads/2023/05/homematicUI-768x272.png 768w, https://www.schiffler.eu/wp-content/uploads/2023/05/homematicUI-1536x544.png 1536w, https://www.schiffler.eu/wp-content/uploads/2023/05/homematicUI.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>



<h2 class="wp-block-heading">3 Wochen ohne Probleme</h2>



<p class="wp-block-paragraph">Die neue <a href="https://amzn.to/3IsMLE4" target="_blank" rel="noreferrer noopener sponsored nofollow">Homematic CCU3 Zentrale*</a> ist nun seit gut 3 Wochen hier in Betrieb und arbeitet sehr zuverlässig. Bisher musste ich mich nur um neue Komponenten anzulernen dort anmelden, ansonsten liegt selbige einfach nur im Regal herum und macht seine Arbeit. Die Steuerung der Komponenten erfolgt weiterhin über den Raspberry PI mit OpenHAB und ist gefühlt schneller und stabiler als zuvor. Inzwischen sind auch erste Homematic-IP Komponenten eingezogen, welche mit der &#8222;alten Lösung&#8220; leider nicht sauber liefen. Ich werde weiter berichten <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/homematic-und-openhab-tschuess-hm-mod-pi-hallo-ccu3/">Homematic und OpenHAB &#8211; Tschüss HM-MOD-PI, Hallo CCU3</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/homematic-und-openhab-tschuess-hm-mod-pi-hallo-ccu3/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Automatische Rolladensteuerung mit openHAB, Zeitplan und Sonnensensor</title>
		<link>https://www.schiffler.eu/automatische-rolladensteuerung-mit-openhab-zeitplan-und-sonnensensor/</link>
					<comments>https://www.schiffler.eu/automatische-rolladensteuerung-mit-openhab-zeitplan-und-sonnensensor/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 18 Apr 2022 07:56:00 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Homematic]]></category>
		<category><![CDATA[openHAB]]></category>
		<category><![CDATA[werbung]]></category>
		<guid isPermaLink="false">https://www.schiffler.eu/?p=1717</guid>

					<description><![CDATA[<p>4 Jahre lang war meine Heimautomatisierung auf FHEM aufgebaut und funktionierte recht gut. Einzig allein die Datenpflege und die UI &#8230; <a href="https://www.schiffler.eu/automatische-rolladensteuerung-mit-openhab-zeitplan-und-sonnensensor/" class="more-link">More <span class="screen-reader-text">Automatische Rolladensteuerung mit openHAB, Zeitplan und Sonnensensor</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/automatische-rolladensteuerung-mit-openhab-zeitplan-und-sonnensensor/">Automatische Rolladensteuerung mit openHAB, Zeitplan und Sonnensensor</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">4 Jahre lang war meine Heimautomatisierung auf <a href="https://fhem.de/" target="_blank" rel="noreferrer noopener">FHEM</a> aufgebaut und funktionierte recht gut. Einzig allein die Datenpflege und die UI war ein wenig &#8222;nervig&#8220; so dass ich mich Anfang 2022 dazu entschied auf <a href="https://www.openhab.org/" target="_blank" rel="noreferrer noopener">openHAB</a> zu migrieren. Ein der Kernfunktionen bei meiner Heimautomatisierung ist die automatische Rolladensteuerung mit openHAB. Diese arbeitet je nach Wohnbereich über einen Zeitplan, einen Sonnensensor oder eine Kombination der selbigen. Wie ich das ganze umgesetzt habe erfahrt Ihr hier.</p>



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



<p class="wp-block-paragraph">Unser Zuhause ist mit diversen Sensoren und Aktoren von den unterschiedlichsten Herstellern ausgestattet. Sowohl der hier notwendige Sonnensensor als auch die Steuerung der Rolläden wurde über Homematic-Komponenten umgesetzt. Der <a href="https://amzn.to/37ENN0m" target="_blank" rel="noreferrer noopener sponsored nofollow">Bewegungsmelder HM-Sen-MDIR-O-2*</a> ist für außen geeignet, läuft über Batterie und verfügt über einen Sonnensor. Dazu kommen noch die <a href="https://amzn.to/3KBppem" target="_blank" rel="noreferrer noopener sponsored nofollow">Schaltaktoren für die Steuerung der Rolläden*</a> und das war es auch schon mit den Komponenten.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><a href="https://amzn.to/3Wq5CGU" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/51t78uJUCrL._AC_SX679_.jpg" alt="Homematic IP Smart Home Bewegungsmelder" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><a href="https://amzn.to/4h0FT02" target="_blank" style="text-decoration: none; color: inherit;">
    <div class="container">
        <div class="row">
            <div class="col-12 d-flex justify-content-center align-items-center">
                <img decoding="async" src="https://m.media-amazon.com/images/I/61s2kAQ2vnL._AC_SX679_.jpg" alt="Homematic Funk-Schaltaktor 1fach" class="img-fluid" style="max-height: 200px; width: auto; margin: 0 auto; display: block;">
            </div>
        </div>
        <div class="row">
            <div class="col-12 text-center">
                <center><button class="btn btn-primary btn-sm">Jetzt auf Amazon ansehen *</button></center>
            </div>
        </div>
    </div>
</a>

</div>
</div>



<p class="wp-block-paragraph">Die einzelnen Homematic-Komponenten sind über Homegear angebunden. Für die Verbindung zwischen dem Raspberry PI und den Komponenten setze ich auf das <a href="https://amzn.to/37IYqiJ" target="_blank" rel="noreferrer noopener sponsored nofollow">HM-MOD-RPI-PCB Modul*</a>. </p>



<h2 class="wp-block-heading">Grundkonfiguration in openHAB</h2>



<p class="wp-block-paragraph">Die nachfolgenden Scripte gehen davon aus, dass eine gewisse Grundkonfiguration vorliegt. Zum einen benötigten wir eine Gruppe in welcher alle zu steuernden Rolläden zusammengefasst sind. In meinem Fall trägt diese Gruppe den Namen &#8218;<em><strong>group_rolladen_wohnen</strong></em>&#8218;. Dazu benötigen wir ein thing welches die die aktuelle Helligkeit des Sonnensensors verfügbar macht. In meinem Fall trägt dieses den Namen &#8218;<strong>HomematicBewegungsmelderEingangsbereich_Brightness</strong>&#8218;. </p>



<h2 class="wp-block-heading">automatische Rolladensteuerung mit openHAB &#8211; Konfigurationsoberfläche</h2>



<p class="wp-block-paragraph">Ich möchte mich im täglichen Gebrauch nicht in Scripten finden um Werte anzupassen sondern möchte selbige über eine brauchbare UI haben. Aus diesem Grund habe ich mir eine kleine UI gebaut welche die für mich notwendigen Parameter beinhaltet:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<figure class="wp-block-image size-full has-lightbox"><img loading="lazy" decoding="async" width="879" height="635" src="https://www.schiffler.eu/wp-content/uploads/2022/04/openhabRolladensteuerungSettings.png" alt="automatische Rolladensteuerung mit openHAB" class="wp-image-1706" srcset="https://www.schiffler.eu/wp-content/uploads/2022/04/openhabRolladensteuerungSettings.png 879w, https://www.schiffler.eu/wp-content/uploads/2022/04/openhabRolladensteuerungSettings-300x217.png 300w, https://www.schiffler.eu/wp-content/uploads/2022/04/openhabRolladensteuerungSettings-768x555.png 768w" sizes="auto, (max-width: 879px) 100vw, 879px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>
</div>



<p class="wp-block-paragraph">Zum einen kann ich die Steuerung über einen globalen Switch aktivieren / deaktivieren. Als nächstes möchte ich gerne, dass die Rolläden unter der Woche zu anderen Zeiten und anderen Helligkeitswerten geschaltet werden können als am Wochenende. Auch möchte ich gerne eine Option haben den Helligkeitssensor zu deaktivieren und die Schaltung nur per Zeitplan zu steuern. Hierfür habe ich mir die folgenden items über die Datei &#8218;rolladensteuerung.items&#8216; angelegt:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:5%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:90%">
<pre class="wp-block-code"><code>Switch		rolladenWohnEnabled				"Rolladensteuerung aktiv"			&lt;switch&gt;	(gRestoreOnStartup)

Switch		rolladenWohnSunEnabledWeek		"Helligkeitssteuerung aktiv"		&lt;switch&gt;	(gRestoreOnStartup)
DateTime	rolladenWohnWeekDown			"Zeit runter &#091;%1$tH:%1$tM]"			&lt;time&gt;		(gRestoreOnStartup)
DateTime	rolladenWohnWeekUp				"Zeit hoch &#091;%1$tH:%1$tM]"			&lt;time&gt;		(gRestoreOnStartup)
Number 		rolladenWohnSunThreshWeek 		"Helligkeitsgrenze &#091;%d]"			&lt;sun&gt;		(gRestoreOnStartup)

Switch		rolladenWohnSunEnabledWeekend	"Helligkeitssteuerung aktiv"		&lt;switch&gt;	(gRestoreOnStartup)
DateTime	rolladenWohnWeekendDown			"Zeit runter &#091;%1$tH:%1$tM]"			&lt;time&gt;		(gRestoreOnStartup)
DateTime	rolladenWohnWeekendUp			"Zeit hoch &#091;%1$tH:%1$tM]"			&lt;time&gt;		(gRestoreOnStartup)
Number 		rolladenWohnSunThreshWeekend	"Helligkeitsgrenze &#091;%d]"			&lt;sun&gt;		(gRestoreOnStartup)

String		rolladenWohnCurrentState		"Status"										(gRestoreOnStartup)</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:5%"></div>
</div>



<p class="wp-block-paragraph">Alle Elemente aus der Konfiguration wurden der Gruppe &#8218;gRestoreOnStartup&#8216; zugeordnet. Diese Gruppe ist bereits im Artikel <a href="https://www.schiffler.eu/openhab-werte-speichern-konfiguration/" target="_blank" rel="noreferrer noopener">openHAB Werte speichern und laden – Persistenz einführen</a> erklärt und sorgt dafür, dass die konfigurierten Werte auch nach einem Systemneustart noch vorliegen. Die eigentliche Settings-Page habe ich mir über die Paper-UI über die Oberfläche &#8222;zusammengeklickt&#8220;. Die entsprechende yaml-Definition sieht wie folgt aus:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:5%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:90%">
<pre class="wp-block-code"><code>config:
  label: Steuerung Wohnbereich
  sidebar: false
blocks:
  - component: oh-block
    config: {}
    slots:
      default:
        - component: oh-grid-row
          config: {}
          slots:
            default:
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-toggle-card
                      config:
                        item: rolladenWohnEnabled
                        title: Rolladensteuerung aktiv
  - component: oh-block
    config:
      title: Konfiguration für Wochentage (Montag bis Freitag)
    slots:
      default:
        - component: oh-grid-row
          config: {}
          slots:
            default:
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-toggle-card
                      config:
                        item: rolladenWohnSunEnabledWeek
                        title: Helligkeitssteuerung
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-input-card
                      config:
                        clearButton: true
                        inputmode: text
                        item: rolladenWohnSunThreshWeek
                        outline: true
                        sendButton: true
                        title: Helligkeitsgrenze
                        type: number
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-input-card
                      config:
                        clearButton: true
                        footer: =items.rolladenWohnWeekUp.displayState
                        inputmode: text
                        item: rolladenWohnWeekUp
                        outline: true
                        placeholder: hh:mm:ss
                        sendButton: true
                        title: Rolladen hoch
                        type: time
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-input-card
                      config:
                        clearButton: true
                        footer: =items.rolladenWohnWeekDown.displayState
                        inputmode: text
                        item: rolladenWohnWeekDown
                        outline: true
                        placeholder: hh:mm:ss
                        sendButton: true
                        title: Rolladen runter
                        type: time
  - component: oh-block
    config:
      title: Konfiguration für Wochenende (Samstag + Sonntag)
    slots:
      default:
        - component: oh-grid-row
          config: {}
          slots:
            default:
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-toggle-card
                      config:
                        item: rolladenWohnSunEnabledWeekend
                        title: Helligkeitssteuerung
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-input-card
                      config:
                        clearButton: true
                        inputmode: text
                        item: rolladenWohnSunThreshWeekend
                        outline: true
                        sendButton: true
                        title: Helligkeitsgrenze
                        type: number
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-input-card
                      config:
                        clearButton: true
                        footer: =items.rolladenWohnWeekendUp.displayState
                        inputmode: text
                        item: rolladenWohnWeekendUp
                        outline: true
                        placeholder: hh:mm:ss
                        sendButton: true
                        title: Rolladen hoch
                        type: time
              - component: oh-grid-col
                config: {}
                slots:
                  default:
                    - component: oh-input-card
                      config:
                        clearButton: true
                        footer: =items.rolladenWohnWeekendDown.displayState
                        inputmode: text
                        item: rolladenWohnWeekendDown
                        outline: true
                        placeholder: hh:mm:ss
                        sendButton: true
                        title: Rolladen runter
                        type: time
masonry: null
grid: &#091;]
canvas: &#091;]
</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:5%"></div>
</div>



<h2 class="wp-block-heading">Rule zur automatischen Rolladensteuerung</h2>



<p class="wp-block-paragraph">Nachdem nun die Konfiguration über die UI verwaltet werden kann fehlt noch die Regel welche die eigentliche Steuerung durchführt. Natürlich könnte man nun auf die unterschiedlichsten Events hören und die Regel loslaufen lassen. Ich habe mich allerdings dazu entschieden dass es völlig genügt, wenn die Regel alle 5 Minuten prüft, ob sich etwas geändert hat. Somit basiert meine Regel auf einem Trigger per cron. </p>



<p class="wp-block-paragraph">Anbei erstmal die Regel welche in der Datei &#8218;rolladensteuerung.rules&#8216; abgelegt ist:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:5%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:90%">
<pre class="wp-block-code"><code>rule "Rolladensteuerung Wohnbereich"
when
	Time cron "0 */5 * * * *" // Prüfe alle 5 Minuten
then
	var usedGroup = group_rolladen_wohnen
	
	if (rolladenWohnEnabled.state == ON &amp;&amp; !usedGroup.allMembers.isEmpty) {
		var isWeekend = (now.dayOfWeek.getValue() == 6) || (now.dayOfWeek.getValue() == 7)
		
		// get configuration values for current weekday
		var Boolean cfgUseSunLevel = false
		var Number cfgSunLevel = -1
		var cfgTimeUp = now
		var cfgTimeDown = now
		if (isWeekend) {
			cfgUseSunLevel = rolladenWohnSunEnabledWeekend.state == ON
			cfgSunLevel = rolladenWohnSunThreshWeekend.state
			cfgTimeUp = (rolladenWohnWeekendUp.state as DateTimeType).getZonedDateTime()
			cfgTimeDown = (rolladenWohnWeekendDown.state as DateTimeType).getZonedDateTime()
		} else  {
			cfgUseSunLevel = rolladenWohnSunEnabledWeek.state == ON
			cfgSunLevel = rolladenWohnSunThreshWeek.state
			cfgTimeUp = (rolladenWohnWeekUp.state as DateTimeType).getZonedDateTime()
			cfgTimeDown = (rolladenWohnWeekDown.state as DateTimeType).getZonedDateTime()
		}
		
		// check if should go down
		var Number aktuelleHelligkeit = HomematicBewegungsmelderEingangsbereich_Brightness.state
		if (cfgUseSunLevel &amp;&amp; cfgSunLevel &gt; -1 &amp;&amp; aktuelleHelligkeit &lt;= cfgSunLevel) {
			if (rolladenWohnCurrentState.state === null || rolladenWohnCurrentState.state != "DOWN") {
				rolladenWohnCurrentState.postUpdate("DOWN")
				logInfo("rules.automatic.rolladen", "Rolladensteuerung - Wohnbereich - runter - Helligkeitssensor")
				usedGroup.allMembers.filter( m | m.state != 100).forEach&#091; i | i.sendCommand(100) ]
			}
		} else if ((now.getHour == cfgTimeDown.getHour &amp;&amp; now.getMinute &gt;= cfgTimeDown.getMinute) || (now.getHour &gt; cfgTimeDown.getHour)) {
			if (rolladenWohnCurrentState.state === null || rolladenWohnCurrentState.state != "DOWN") {
				rolladenWohnCurrentState.postUpdate("DOWN")
				logInfo("rules.automatic.rolladen", "Rolladensteuerung - Wohnbereich - runter")
				usedGroup.allMembers.filter( m | m.state != 100).forEach&#091; i | i.sendCommand(100) ]
			}
		} else if ((now.getHour == cfgTimeUp.getHour &amp;&amp; now.getMinute &gt;= cfgTimeUp.getMinute) || (now.getHour &gt; cfgTimeUp.getHour &amp;&amp; now.getHour &lt;= cfgTimeDown.getHour)) {
			if (rolladenWohnCurrentState.state === null || rolladenWohnCurrentState.state != "UP") {
				rolladenWohnCurrentState.postUpdate("UP")
				logInfo("rules.automatic.rolladen", "Rolladensteuerung - Wohnbereich - hoch")
				usedGroup.allMembers.filter( m | m.state != 0).forEach&#091; i | i.sendCommand(0) ]
			}
		} 
	}
end</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:5%"></div>
</div>



<p class="wp-block-paragraph">Die Regel scheint auf den ersten Blick vielleicht ein wenig abstrakt, hat sich aber in der Praxis bisher bewährt und funktioniert recht gut. Die hier vorgestellte Regel ist hier bei mir für 2 unterschiedliche Schaltzonen (Wohnen und Schlafen ) aktiv und arbeitet zuverlässig.</p>



<h2 class="wp-block-heading">automatische Rolladensteuerung mit openHAB &#8211; Zusammenfassung</h2>



<p class="wp-block-paragraph">Prinzipiell ist die Anforderung der automatischen Steuerung der Rolläden mit openHAB recht einfach umzusetzen. Wie immer steckt der Teufel allerdings dann doch im Detail. Anfangs hatte ich z.B. auf den Status verzichtet was sich dann schnell rächte. Als meine Frau tagsüber den Rolladen herunterfuhr um auf dem TV etwas zu erkennen fuhr dieser 5 Minuten später wieder hoch. Fühlt sich erstmal komisch an, ist aber total logisch wenn man sich die Regel mal ohne die Speicherung des aktuellen Status vorstellt. </p>



<p class="wp-block-paragraph">Inzwischen funktioniert die Steuerung wunderbar. Vielleicht hilft meine Dokumentation an dieser Stelle ja dem ein oder anderen Leser <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/automatische-rolladensteuerung-mit-openhab-zeitplan-und-sonnensensor/">Automatische Rolladensteuerung mit openHAB, Zeitplan und Sonnensensor</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/automatische-rolladensteuerung-mit-openhab-zeitplan-und-sonnensensor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 50/54 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using APC
Database Caching 14/30 queries in 0.002 seconds using APC

Served from: www.schiffler.eu @ 2026-10-24 14:42:07 by W3 Total Cache
-->