<?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>Tutorial</title>
	<atom:link href="https://sowasvonsmart.de/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>https://sowasvonsmart.de/tutorial/</link>
	<description>SmartHome und Technik</description>
	<lastBuildDate>Sun, 22 Jun 2025 10:47:48 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://sowasvonsmart.de/wp-content/uploads/2024/10/cropped-Appcicon-32x32.jpg</url>
	<title>Tutorial</title>
	<link>https://sowasvonsmart.de/tutorial/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Namecheap-Domain mit All-Inkl-Webhosting verbinden</title>
		<link>https://sowasvonsmart.de/namecheap-domain-mit-all-inkl-webhosting-verbinden/</link>
					<comments>https://sowasvonsmart.de/namecheap-domain-mit-all-inkl-webhosting-verbinden/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Sun, 22 Jun 2025 09:40:39 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Vorgestellt]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Webseite]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=5120</guid>

					<description><![CDATA[<p>Wenn du deine Domain bei&#160;Namecheap&#160;registriert hast, aber dein Webhosting bei&#160;All-Inkl.com&#160;nutzen möchtest, stehst du vor der Frage:&#160;Wie bringe ich beides zusammen?&#160;In diesem Artikel zeige ich dir, wie du ganz einfach deine externe Domain mit All-Inkl verbindest – verständlich erklärt, Schritt für Schritt. Warum All-Inkl.com? Bevor wir in die Technik einsteigen, ein kurzer persönlicher Einblick:Ich bin seit [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/namecheap-domain-mit-all-inkl-webhosting-verbinden/">Namecheap-Domain mit All-Inkl-Webhosting verbinden</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn du deine Domain bei&nbsp;<strong>Namecheap</strong>&nbsp;registriert hast, aber dein Webhosting bei&nbsp;<strong>All-Inkl.com</strong>&nbsp;nutzen möchtest, stehst du vor der Frage:&nbsp;<em>Wie bringe ich beides zusammen?</em>&nbsp;In diesem Artikel zeige ich dir, wie du ganz einfach deine externe Domain mit All-Inkl verbindest – verständlich erklärt, Schritt für Schritt.</p>






<h3 class="wp-block-heading">Warum All-Inkl.com?</h3>



<p>Bevor wir in die Technik einsteigen, ein kurzer persönlicher Einblick:<br>Ich bin seit fast&nbsp;<strong>20 Jahren Kunde bei All-Inkl</strong>&nbsp;– und das aus gutem Grund. Der Hoster überzeugt mich seit Tag eins mit einer stabilen Erreichbarkeit, einem klar und einfach strukturierten KAS-Interface (Kundenadministrationssystem) und einem&nbsp;<strong>Support, der seinen Namen verdient</strong>: schnell, freundlich und kompetent – auch nachts oder am Wochenende.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<a>All-Inkl </a><a href="https://all-inkl.com/PA16ABD8ABFF40D">Partnerlink</a></p>



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



<h3 class="wp-block-heading">Warum die Domain bei Namecheap?</h3>



<p>Meine aktuelle Domain habe ich bei&nbsp;<strong>Namecheap</strong>&nbsp;registriert, da&nbsp;<strong>All-Inkl die gewünschte Domainendung nicht anbietet</strong>. Namecheap unterstützt eine breite Auswahl an Domain-TLDs, darunter viele exotische und neue Endungen, die bei deutschen Hostern (noch) nicht verfügbar sind.<br>Zudem sind die Preise dort&nbsp;<strong>durchaus attraktiv</strong>, was für künftige Projekte ebenfalls interessant sein könnte.</p>



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



<h2 class="wp-block-heading">Schritt-für-Schritt: Namecheap-Domain bei All-Inkl nutzen</h2>



<p>Du hast also deine Wunschdomain bei&nbsp;<strong>Namecheap</strong>&nbsp;gekauft und willst diese mit deinem All-Inkl-Webspace verbinden. So gehst du vor:</p>



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



<h3 class="wp-block-heading">1. Nameserver von All-Inkl bei Namecheap eintragen</h3>



<p>Damit deine Domain auf deinen Webspace bei All-Inkl zeigt, musst du die Nameserver ändern.</p>



<p><strong>So geht&#8217;s:</strong></p>



<ol class="wp-block-list">
<li>Logge dich bei&nbsp;<a class="" href="https://www.namecheap.com/">Namecheap.com</a>&nbsp;ein.</li>



<li>Gehe zu&nbsp;<strong>&#8222;Domain List&#8220;</strong>&nbsp;(linke Seitenleiste).</li>



<li>Klicke bei der betreffenden Domain auf&nbsp;<strong>&#8222;Manage&#8220;</strong>.</li>



<li>Im Reiter&nbsp;<strong>&#8222;Nameservers&#8220;</strong>&nbsp;wählst du&nbsp;<strong>&#8222;Custom DNS&#8220;</strong>&nbsp;aus.</li>



<li>Trage dort die Nameserver von All-Inkl ein: <code>ns5.kasserver.com ns6.kasserver.com</code></li>



<li>Speichern – fertig!</li>
</ol>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="803" src="https://sowasvonsmart.de/wp-content/uploads/2025/06/Namecheap-Nameserver-1024x803.png" alt="" class="wp-image-5117" srcset="https://sowasvonsmart.de/wp-content/uploads/2025/06/Namecheap-Nameserver-1024x803.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2025/06/Namecheap-Nameserver-300x235.png 300w, https://sowasvonsmart.de/wp-content/uploads/2025/06/Namecheap-Nameserver-768x602.png 768w, https://sowasvonsmart.de/wp-content/uploads/2025/06/Namecheap-Nameserver-1536x1204.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2025/06/Namecheap-Nameserver.png 1712w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Hinweis:</strong>&nbsp;Es kann bis zu 24 Stunden dauern, bis die Änderungen weltweit aktiv sind (DNS-Propagation).</p>



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



<h3 class="wp-block-heading">2. Domain bei All-Inkl hinzufügen</h3>



<p>Jetzt geht&#8217;s ins&nbsp;<strong>KAS (Kundenadminbereich)</strong>&nbsp;von All-Inkl:</p>



<ol class="wp-block-list">
<li>Melde dich bei&nbsp;<a>kas.all-inkl.com</a>&nbsp;an.</li>



<li>Gehe zu&nbsp;<strong>&#8222;Domains&#8220; → &#8222;Neue Domain anlegen&#8220;</strong>.</li>



<li>Gib deine bei Namecheap registrierte Domain ein (z. B.&nbsp;<code>meineseite.de</code>).</li>



<li>Wähle aus, ob du die Domain direkt auf dein Hauptverzeichnis zeigen lassen oder ein separates Verzeichnis anlegen willst (z. B.&nbsp;<code>/meineseite</code>/).</li>



<li>Abschicken – das war’s.</li>
</ol>



<p></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="577" src="https://sowasvonsmart.de/wp-content/uploads/2025/06/All-inkl-KAS-Domainverwaltung-1024x577.png" alt="" class="wp-image-5118" srcset="https://sowasvonsmart.de/wp-content/uploads/2025/06/All-inkl-KAS-Domainverwaltung-1024x577.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2025/06/All-inkl-KAS-Domainverwaltung-300x169.png 300w, https://sowasvonsmart.de/wp-content/uploads/2025/06/All-inkl-KAS-Domainverwaltung-768x433.png 768w, https://sowasvonsmart.de/wp-content/uploads/2025/06/All-inkl-KAS-Domainverwaltung-1536x865.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2025/06/All-inkl-KAS-Domainverwaltung.png 1882w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Sobald die DNS-Änderung wirksam ist, zeigt deine Domain auf deinen All-Inkl-Webspace.</p>



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



<h3 class="wp-block-heading">3. Volle Kontrolle über die Domain bei All-Inkl</h3>



<p>Mit der Umstellung der Nameserver liegt die&nbsp;<strong>technische Verwaltung der Domain vollständig bei All-Inkl</strong>. Das bedeutet konkret:</p>



<ul class="wp-block-list">
<li>Du kannst&nbsp;<strong>beliebig Subdomains</strong>&nbsp;anlegen (z. B.&nbsp;<code>blog.deinedomain.xyz</code>,&nbsp;<code>shop.deinedomain.xyz</code>).</li>



<li>Du hast die Möglichkeit, eigene&nbsp;<strong>E-Mail-Adressen</strong>&nbsp;zu erstellen (z. B.&nbsp;<code>kontakt@deinedomain.xyz</code>).</li>



<li>Auch Weiterleitungen, DNS-Einstellungen (z. B. für externe Dienste) und SSL-Zertifikate lassen sich zentral im KAS verwalten.</li>
</ul>



<p>Damit fühlt sich die Domain im Alltag nicht „extern“ an – obwohl sie technisch weiterhin bei Namecheap registriert ist.</p>



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



<h2 class="wp-block-heading">Fazit: Flexible Kombination – zuverlässig umgesetzt</h2>



<p>Die Kombination einer bei&nbsp;<strong>Namecheap</strong> (oder bei einem anderen Anbieter)&nbsp;registrierten Domain mit einem Webhosting bei&nbsp;<strong>All-Inkl</strong>&nbsp;funktioniert problemlos und ist in wenigen Minuten eingerichtet. Auch wenn die Domainregistrierung bei einem anderen Anbieter erfolgt ist, lässt sich das Hosting durch die richtigen Nameserver-Einstellungen nahtlos nutzen.</p>



<p>Wer wie ich auf eine spezielle Domainendung angewiesen ist, die beim Webhoster nicht verfügbar ist, findet mit Anbietern wie Namecheap eine gute Ergänzung. Und: Ein Blick auf die Preise lohnt sich dort ebenfalls – vor allem bei ungewöhnlicheren TLDs.</p>



<p></p>
<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/namecheap-domain-mit-all-inkl-webhosting-verbinden/">Namecheap-Domain mit All-Inkl-Webhosting verbinden</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/namecheap-domain-mit-all-inkl-webhosting-verbinden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Von Zigbee zu ESPHome: SmartHome Bett-Sensor mit dauerhafter Stromversorgung</title>
		<link>https://sowasvonsmart.de/mit-bett-sensor-dein-smart-home-steuern/</link>
					<comments>https://sowasvonsmart.de/mit-bett-sensor-dein-smart-home-steuern/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Mon, 30 Sep 2024 19:21:22 +0000</pubDate>
				<category><![CDATA[Bastelkammer]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ESPHome]]></category>
		<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[Sensor]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Zigbee]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=5003</guid>

					<description><![CDATA[<p>Seit längerem habe ich einen Bettsensor, welches meinem SmartHome bescheid gibt, wann alle Bewohner im Bett liegen. Dies hatte ich mit einem Zigbee-Sensor gelöst. Da es hier eine dauerhafte Stromversorgung gab, musste ich eine andere Lösung suchen. In einem meiner früheren Artikel&#160;„Einfache&#160;Modifikation&#160;zum&#160;Zigbee-Drucksensor“&#160;habe ich gezeigt, wie man einen Zigbee-Sensor modifizieren kann, um Druckveränderungen, wie z.B. das [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/mit-bett-sensor-dein-smart-home-steuern/">Von Zigbee zu ESPHome: SmartHome Bett-Sensor mit dauerhafter Stromversorgung</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Seit längerem habe ich einen Bettsensor, welches meinem SmartHome bescheid gibt, wann alle Bewohner im Bett liegen. Dies hatte ich mit einem Zigbee-Sensor gelöst. Da es hier eine dauerhafte Stromversorgung gab, musste ich eine andere Lösung suchen. In einem meiner früheren Artikel&nbsp;<a href="https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/">„Einfache&nbsp;Modifikation&nbsp;zum&nbsp;Zigbee-Drucksensor“</a>&nbsp;habe ich gezeigt, wie man einen Zigbee-Sensor modifizieren kann, um Druckveränderungen, wie z.B. das Liegen im Bett, zu erkennen und Aktionen im Smart Home auszulösen.</p>



<p>Obwohl Zigbee eine fantastische Lösung ist, bin ich in der Praxis auf ein Problem gestoßen:&nbsp;<strong>Die Batterien des Zigbee-Bett-Sensors gehen schnell leer</strong>, besonders bei häufigem Einsatz als Schlafsensor. Daher habe ich mich entschlossen, auf eine Lösung mit permanenter Stromversorgung zu setzen. In diesem Tutorial zeige ich dir, wie du mithilfe von&nbsp;<strong>ESPHome</strong>&nbsp;und einem&nbsp;<strong>ESP8266</strong>&nbsp;einen Bett-Schlafsensor realisieren kannst, der zuverlässig läuft und nicht von Batterien abhängig ist.</p>






<h2 class="wp-block-heading" id="h-warum-ein-wechsel-von-zigbee-zu-esphome">Warum ein Wechsel von Zigbee zu ESPHome?</h2>



<p>Zigbee ist praktisch, weil es ein robustes Funkprotokoll ist und wenig Strom verbraucht. Jedoch ist gerade bei Sensoren, die über längere Zeiträume Daten liefern sollen, die Batterie ein Schwachpunkt. Vor allem, wenn der Sensor regelmäßig einen Status übertragen muss, um den Zustand zu überwachen, entlädt sich die Batterie schnell.</p>



<p><strong>ESPHome</strong>&nbsp;bietet hier eine ideale Lösung. Es läuft auf kleinen, kostengünstigen Mikrocontrollern wie dem&nbsp;<strong>ESP8266</strong>&nbsp;und unterstützt MQTT oder direkte Integrationen in&nbsp;<strong>ioBroker</strong>&nbsp;oder&nbsp;<strong>Home Assistant</strong>. Durch den Betrieb über eine konstante Stromquelle entfällt das Problem des Batterieverschleißes, und der Sensor ist immer online.</p>



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



<h2 class="wp-block-heading" id="h-was-brauchst-du-fur-die-neue-losung">Was brauchst du für die neue Lösung?</h2>



<p>Für den Wechsel von Zigbee auf eine ESPHome-Lösung benötigst du folgende Komponenten:</p>



<ul class="wp-block-list">
<li><strong>ESP8266 (z.B. Wemos D1 Mini)</strong>: Dies ist ein kleines, WLAN-fähiges Mikrocontroller-Board, das perfekt für ESPHome-Anwendungen geeignet ist.</li>



<li><strong>Alarmmatte oder druckempfindlicher Sensor</strong>: Eine Matte oder ein Sensor, der erkennt, ob jemand auf dem Bett liegt.</li>



<li><strong>USB-Netzteil</strong>: Um den ESP8266 dauerhaft mit Strom zu versorgen.</li>



<li><strong>ESPHome</strong>: Zum Flashen und Konfigurieren des ESP8266.</li>
</ul>



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



<h3 class="wp-block-heading" id="h-schritt-1-alarmmatte-statt-zigbee-drucksensor">Schritt 1: Alarmmatte statt Zigbee-Drucksensor</h3>



<p>In meinem früheren Artikel habe ich einen Zigbee-Drucksensor verwendet, um zu erkennen, ob jemand auf dem Bett liegt. Diese Funktion übernimmt nun eine Alarmmatte oder ein druckempfindlicher Sensor, den du einfach unter die Matratze oder den Topper legst. Die Alarmmatte wird über den&nbsp;<strong>GPIO-Pin</strong>&nbsp;des ESP8266 angeschlossen und registriert Druckveränderungen, sobald sich jemand ins Bett legt.</p>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B06Y1JNGGC/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B06Y1JNGGC|VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/51WRrCsmgRL._AC_SL500_QL70_ML2_.jpg" alt="VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte mit Alarmfunktion (Alarmmatte, Alarmfussmatte, Hund)">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B06Y1JNGGC/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B06Y1JNGGC|VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte"					>
					<div class='afxshop-title'>
					VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte mit Alarmfunktion (Alarmmatte, Alarmfussmatte, Hund)					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B06Y1JNGGC/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B06Y1JNGGC|VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
																																														<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>31. März 2026 16:56</span>
								</p>
			</div>
		</div>
	</div>
	


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



<h3 class="wp-block-heading" id="h-schritt-2-esp8266-mit-esphome-flashen">Schritt 2: ESP8266 mit ESPHome flashen</h3>



<p>Damit der ESP8266 die Daten der Alarmmatte auswerten und an dein Smart Home senden kann, musst du ihn mit ESPHome flashen und konfigurieren. Hier eine grobe Anleitung:</p>



<ol class="wp-block-list">
<li><strong>ESPHome installieren</strong>: Wenn du ESPHome noch nicht installiert hast, kannst du dies einfach über&nbsp;<strong>Home Assistant</strong>&nbsp;oder&nbsp;<strong>ioBroker</strong>&nbsp;tun.Falls du Home Assistant nutzt, findest du ESPHome als Add-on im offiziellen Add-on-Store. Bei ioBroker installierst du das ESPHome-Plugin direkt über die Adapterverwaltung.</li>



<li><strong>ESP8266 flashen</strong>: Verbinde deinen&nbsp;<strong>ESP8266</strong>&nbsp;(z.B. Wemos D1 Mini) über USB mit deinem Computer und flashe ESPHome mit den richtigen WLAN-Einstellungen.</li>



<li><strong>MQTT einrichten</strong>: Richte MQTT ein, damit der ESP8266 über das WLAN mit deinem Smart Home kommunizieren kann.</li>
</ol>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B0754N794H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B0754N794H|AZDelivery 3 x D1"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/51bpF6RAYCL._SL500_QL70_ML2_.jpg" alt="AZDelivery 3 x D1 Mini NodeMcu mit ESP8266-12F WLAN Module">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B0754N794H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B0754N794H|AZDelivery 3 x D1"					>
					<div class='afxshop-title'>
					AZDelivery 3 x D1 Mini NodeMcu mit ESP8266-12F WLAN Module CH340G Lua kompatibel mit Arduino inklusive E-Book!					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B0754N794H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B0754N794H|AZDelivery 3 x D1">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
																																														<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>31. März 2026 16:56</span>
								</p>
			</div>
		</div>
	</div>
	


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



<h3 class="wp-block-heading" id="h-schritt-3-die-alarmmatte-an-den-esp8266-anschliessen">Schritt 3: Die Alarmmatte an den ESP8266 anschließen</h3>



<p>Nun verbindest du die Alarmmatte mit dem ESP8266:</p>



<ul class="wp-block-list">
<li><strong>GPIO-Pin D5</strong>&nbsp;wird mit einem der beiden Drähte der Alarmmatte für&nbsp;<strong>Bewohner 1</strong>&nbsp;verbunden.</li>



<li><strong>GPIO-Pin D6</strong>&nbsp;wird mit einem der beiden Drähte der Alarmmatte für&nbsp;<strong>Bewohner 2</strong>&nbsp;verbunden.</li>



<li>Der zweite Draht der Matte (für beide Bewohner) kommt an&nbsp;<strong>Ground (GND)</strong>&nbsp;des ESP8266.</li>
</ul>



<p>Hierdurch kann der ESP8266 den Zustand der Matte überwachen und feststellen, ob jemand im Bett liegt.</p>



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



<h3 class="wp-block-heading" id="h-schritt-4-esphome-konfiguration-fur-den-schlafsensor">Schritt 4: ESPHome Konfiguration für den Schlafsensor</h3>



<p>Der ESP8266 wird nun so konfiguriert, dass er den Status der Alarmmatte überwacht und per MQTT an ioBroker oder Home Assistant sendet. Hier ist die angepasste Konfiguration, die sowohl&nbsp;<code>Bewohner1</code>&nbsp;als auch&nbsp;<code>Bewohner2</code>&nbsp;berücksichtigt:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="esphome:
  name: bett_status
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: &quot;Dein_WLAN_SSID&quot;
  password: &quot;Dein_WLAN_PASSWORT&quot;  # Platzhalter für dein WLAN-Passwort

  # Optional: statische IP konfigurieren
  # manual_ip:
  #   static_ip: 192.168.1.XX
  #   gateway: 192.168.1.1
  #   subnet: 255.255.255.0

  # Fallback hotspot (wird aktiviert, wenn keine WLAN-Verbindung möglich ist)
  ap:
    ssid: &quot;Bett Status Fallback Hotspot&quot;
    password: &quot;Dein_Fallback_Hotspot_Passwort&quot;  # Platzhalter für dein Fallback-Hotspot-Passwort

mqtt:
  broker: &quot;192.168.XXX.XXX&quot;  # IP oder Hostname deines MQTT-Brokers
  # username: &quot;&quot;     # Optional: MQTT-Benutzername
  # password: &quot;&quot;     # Optional: MQTT-Passwort

# Logging aktivieren
logger:

# Aktivierung des OTA (Over the Air Updates)
ota:

# GPIO Pins für die Taster (D1 Mini: D5 und D6)
binary_sensor:
  - platform: gpio
    id: button_bewohner1
    pin:
      number: D5
      mode: INPUT_PULLUP
      inverted: true
    name: &quot;Bett Bewohner1&quot;
    filters:
      - delayed_on: 1s  # 1 Sekunde Timeout nach Tasterdruck
      - delayed_off: 1s
    on_press:
      - mqtt.publish:
          topic: &quot;bett/bewohner1&quot;
          payload: &quot;true&quot;
    on_release:
      - mqtt.publish:
          topic: &quot;bett/bewohner1&quot;
          payload: &quot;false&quot;

  - platform: gpio
    id: button_bewohner2
    pin:
      number: D6
      mode: INPUT_PULLUP
      inverted: true
    name: &quot;Bett Bewohner2&quot;
    filters:
      - delayed_on: 1s  # 1 Sekunde Timeout nach Tasterdruck
      - delayed_off: 1s
    on_press:
      - mqtt.publish:
          topic: &quot;bett/bewohner2&quot;
          payload: &quot;true&quot;
    on_release:
      - mqtt.publish:
          topic: &quot;bett/bewohner2&quot;
          payload: &quot;false&quot;
" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9FF">esphome</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">bett_status</span></span>
<span class="line"><span style="color: #D8DEE9FF">  platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ESP8266</span></span>
<span class="line"><span style="color: #D8DEE9FF">  board</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">d1_mini</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">wifi</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  ssid</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Dein_WLAN_SSID</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">  password</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Dein_WLAN_PASSWORT</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">  # </span><span style="color: #D8DEE9">Platzhalter</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">für</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">dein</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">WLAN</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Passwort</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">  # Optional</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">statische</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">IP</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">konfigurieren</span></span>
<span class="line"><span style="color: #D8DEE9FF">  # manual_ip</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  #   static_ip</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">192.168</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9FF">1</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">XX</span></span>
<span class="line"><span style="color: #D8DEE9FF">  #   gateway</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">192.168</span><span style="color: #ECEFF4">.</span><span style="color: #B48EAD">1.1</span></span>
<span class="line"><span style="color: #D8DEE9FF">  #   subnet</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">255.255</span><span style="color: #ECEFF4">.</span><span style="color: #B48EAD">255.0</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">  # </span><span style="color: #D8DEE9">Fallback</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">hotspot</span><span style="color: #D8DEE9FF"> (</span><span style="color: #D8DEE9">wird</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">aktiviert</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">wenn</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">keine</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">WLAN</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Verbindung</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">möglich</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ist</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">  ap</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    ssid</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Bett Status Fallback Hotspot</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    password</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Dein_Fallback_Hotspot_Passwort</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">  # </span><span style="color: #D8DEE9">Platzhalter</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">für</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">dein</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Fallback</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Hotspot</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Passwort</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">mqtt</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  broker</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">192.168.XXX.XXX</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">  # </span><span style="color: #D8DEE9">IP</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">oder</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Hostname</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">deines</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">MQTT</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Brokers</span></span>
<span class="line"><span style="color: #D8DEE9FF">  # username</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;&quot;</span><span style="color: #D8DEE9FF">     # Optional</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">MQTT</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Benutzername</span></span>
<span class="line"><span style="color: #D8DEE9FF">  # password</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;&quot;</span><span style="color: #D8DEE9FF">     # Optional</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">MQTT</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">Passwort</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #D8DEE9">Logging</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">aktivieren</span></span>
<span class="line"><span style="color: #D8DEE9FF">logger</span><span style="color: #ECEFF4">:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #D8DEE9">Aktivierung</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">des</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">OTA</span><span style="color: #D8DEE9FF"> (</span><span style="color: #D8DEE9">Over</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Air</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Updates</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">ota</span><span style="color: #ECEFF4">:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #D8DEE9">GPIO</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Pins</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">für</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">die</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">Taster</span><span style="color: #D8DEE9FF"> (</span><span style="color: #D8DEE9">D1</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Mini</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">D5</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">und</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">D6</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">binary_sensor</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">gpio</span></span>
<span class="line"><span style="color: #D8DEE9FF">    id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">button_bewohner1</span></span>
<span class="line"><span style="color: #D8DEE9FF">    pin</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      number</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">D5</span></span>
<span class="line"><span style="color: #D8DEE9FF">      mode</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">INPUT_PULLUP</span></span>
<span class="line"><span style="color: #D8DEE9FF">      inverted</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">    name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Bett Bewohner1</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    filters</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delayed_on</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 1</span><span style="color: #D8DEE9">s</span><span style="color: #D8DEE9FF">  # </span><span style="color: #B48EAD">1</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Sekunde</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Timeout</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">nach</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Tasterdruck</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delayed_off</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 1</span><span style="color: #D8DEE9">s</span></span>
<span class="line"><span style="color: #D8DEE9FF">    on_press</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">mqtt</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">publish</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">          topic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">bett/bewohner1</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">          payload</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">true</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    on_release</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">mqtt</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">publish</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">          topic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">bett/bewohner1</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">          payload</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">false</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">gpio</span></span>
<span class="line"><span style="color: #D8DEE9FF">    id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">button_bewohner2</span></span>
<span class="line"><span style="color: #D8DEE9FF">    pin</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      number</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">D6</span></span>
<span class="line"><span style="color: #D8DEE9FF">      mode</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">INPUT_PULLUP</span></span>
<span class="line"><span style="color: #D8DEE9FF">      inverted</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">    name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Bett Bewohner2</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    filters</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delayed_on</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 1</span><span style="color: #D8DEE9">s</span><span style="color: #D8DEE9FF">  # </span><span style="color: #B48EAD">1</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Sekunde</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Timeout</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">nach</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Tasterdruck</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delayed_off</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 1</span><span style="color: #D8DEE9">s</span></span>
<span class="line"><span style="color: #D8DEE9FF">    on_press</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">mqtt</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">publish</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">          topic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">bett/bewohner2</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">          payload</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">true</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    on_release</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">mqtt</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">publish</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">          topic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">bett/bewohner2</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"><span style="color: #D8DEE9FF">          payload</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">false</span><span style="color: #ECEFF4">&quot;</span></span>
<span class="line"></span></code></pre></div>



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



<h3 class="wp-block-heading" id="h-schritt-5-automatisierungen-in-iobroker-oder-home-assistant-einrichten">Schritt 5: Automatisierungen in ioBroker oder Home Assistant einrichten</h3>



<p>Nun, da der Sensor betriebsbereit ist, kannst du in deinem Smart Home verschiedene Automatisierungen festlegen, die auf dem Status der Sensoren basieren. So kannst du etwa Lichter ausschalten, die Nachtbeleuchtung einschalten oder die Temperatur der Heizung auf Nachtbetrieb umstellen, sobald jemand im Bett liegt.</p>



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



<h2 class="wp-block-heading" id="h-fazit-zuverlassiger-schlafsensor-mit-konstanter-stromversorgung">Fazit: Zuverlässiger Schlafsensor mit konstanter Stromversorgung</h2>



<p>Die Umstellung von Zigbee auf ESPHome bietet eine stabile und langfristig wartungsfreie Lösung für die Schlafüberwachung. Anstatt ständig Batterien zu wechseln, hast du mit dem ESP8266 und der Alarmmatte eine zuverlässige Methode, um dein Smart Home genau dann in den „Schlafmodus“ zu versetzen, wenn es nötig ist.</p>



<p>Dank der Integration in ioBroker oder Home Assistant kannst du zahlreiche Automatisierungen umsetzen, von der Lichtsteuerung bis hin zur Temperaturregelung. Die Umstellung mag anfangs etwas aufwändiger erscheinen, lohnt sich jedoch durch den hohen Komfortgewinn und die Vermeidung häufiger Batteriewechsel.</p>



<p>Wenn du mehr über die ursprüngliche Zigbee-Lösung erfahren möchtest, schau dir gerne meinen Artikel&nbsp;<a href="https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/">„EinfacheModifikation&nbsp;zum&nbsp;Zigbee-Drucksensor“</a>&nbsp;an.</p>



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



<p>Mit dieser Anleitung kannst du deinen eigenen Schlafsensor mit konstanter Stromversorgung umsetzen und dein Smart Home auf einfache Weise erweitern. Viel Erfolg beim Nachbauen!</p>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B06Y1JNGGC/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B06Y1JNGGC|VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/51WRrCsmgRL._AC_SL500_QL70_ML2_.jpg" alt="VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte mit Alarmfunktion (Alarmmatte, Alarmfussmatte, Hund)">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B06Y1JNGGC/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B06Y1JNGGC|VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte"					>
					<div class='afxshop-title'>
					VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte mit Alarmfunktion (Alarmmatte, Alarmfussmatte, Hund)					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B06Y1JNGGC/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B06Y1JNGGC|VisorTech Alarmtrittmatte: Batteriebetriebene Klingel-Trittmatte">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
																																														<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>31. März 2026 16:56</span>
								</p>
			</div>
		</div>
	</div>
	


<p></p>
<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/mit-bett-sensor-dein-smart-home-steuern/">Von Zigbee zu ESPHome: SmartHome Bett-Sensor mit dauerhafter Stromversorgung</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/mit-bett-sensor-dein-smart-home-steuern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial: Zigbee Tür/-Fensterkontakt in ein Zigbee Drucksensor umbauen</title>
		<link>https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/</link>
					<comments>https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:32:01 +0000</pubDate>
				<category><![CDATA[Bastelkammer]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=1836</guid>

					<description><![CDATA[<p>Nach diesem kurzen Tutorial erstellst du dir mit einer kleinen Modifikation einen Zigbee Drucksensor. Dieser kann z.B. unter deinem Bett, Stuhl, Sofa oder Teppichen gelegt werden. Sobald der Sensor mit einem Gewicht belastet wird, löst dieser aus und sendet ein Signal zu deiner SmartHome-Zentrale. Was benötigt wird für einen Zigbee Drucksensor Bei dieser Anleitung wird [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/">Tutorial: Zigbee Tür/-Fensterkontakt in ein Zigbee Drucksensor umbauen</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Nach diesem kurzen Tutorial erstellst du dir mit einer kleinen Modifikation einen Zigbee Drucksensor. Dieser kann z.B. unter deinem Bett, Stuhl, Sofa oder Teppichen gelegt werden. Sobald der Sensor mit einem Gewicht belastet wird, löst dieser aus und sendet ein Signal zu deiner SmartHome-Zentrale.</p>






<h2 class="wp-block-heading" id="h-was-benotigt-wird-fur-einen-zigbee-drucksensor">Was benötigt wird für einen Zigbee Drucksensor</h2>



<ul class="wp-block-list">
<li>Lötkolben / Lötzinn / Seitenschneider</li>



<li>Dünner Schlitzschraubendreher</li>



<li>2-adriges Kabel</li>



<li><a href="https://amzn.to/3MCDCfa" data-type="URL" data-id="https://amzn.to/3MCDCfa" target="_blank" rel="noreferrer noopener">Zigbee Fenster-/Türkontakt</a></li>



<li><a href="https://amzn.to/3KU4Ix6" data-type="URL" data-id="https://amzn.to/3KU4Ix6">Universeller Autositz-</a><a href="https://amzn.to/3KU4Ix6" data-type="URL" data-id="https://amzn.to/3KU4Ix6" target="_blank" rel="noreferrer noopener">Drucksensor</a></li>



<li>Optional Bohrer</li>



<li>10-15 Minuten Zeit</li>
</ul>


<div class="wp-block-image is-style-default">
<figure class="aligncenter size-large" id="wp-block-themeisle-blocks-image-d97417e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-scaled.jpeg"><img decoding="async" width="1024" height="768" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-1024x768.jpeg" alt="Zigbee Drucksensor" class="wp-image-2887" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-1024x768.jpeg 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-300x225.jpeg 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-768x576.jpeg 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-1536x1152.jpeg 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-2048x1536.jpeg 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-100x75.jpeg 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-600x450.jpeg 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-1600x1200.jpeg 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-1180x885.jpeg 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-1680x1260.jpeg 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-650x488.jpeg 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-680x510.jpeg 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8166-scaled.jpeg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p><code><em>Bei dieser Anleitung wird der Sensor geöffnet. Hierdurch kann dieser beschädigt werden. </em></code></p>



<h3 class="wp-block-heading">Vorhandenen Tür/Fenster-Sensor auseinander bauen mit Zigbee Drucksensor</h3>



<p>Zunächst muss der eigentliche Zigbee Fenster-/Türkontakt zerlegt werden. Im Grunde müssen wir den vorhandenen Reed-Kontakt gegen den Zigbee Drucksensor austauschen.</p>



<p>Hierzu nehmen wir als Beispiel den <a href="http://amzn.to/3MCDCfa" data-type="URL" data-id="amzn.to/3MCDCfa" target="_blank" rel="noreferrer noopener">Tuya Fensterkontakt</a>. Dieser wird mithilfe eines dünnen Schlitzschraubendrehers geöffnet. An den jeweiligen Seiten befinden sich kleine Plastiknasen. (Achtung bitte breche diese nicht ab, da sonst ggf. das Gehäuse nicht mehr fest aufliegt)</p>



<h3 class="wp-block-heading">Reed-Kontakt entfernen</h3>



<p>Anschließend entnehmen wir die Platine. Auf an der Seite sehen wir in dem Glasröhrchen den Reedschalter. Dieser löst aus, sobald ein Magnet in die Nähe kommt. Dies wird mithilfe zweier Metallplatten die den Kontakt schließen gelöst.&nbsp;</p>



<p>Der Reed-Kontakt wird mit dem Lötkolbens entfernt. (Achtung der Reed-Kontakt besteht aus einem Glaszylinder dieser kann brechen). Für unseren modifizierten Zigbee Drucksensor benötigen wir nun diesen Kontakt nicht mehr und tauschen diesen mit dem Drucksensor aus.</p>


<div class="wp-block-image is-style-default">
<figure class="aligncenter size-large" id="wp-block-themeisle-blocks-image-a4c71206"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44.png"><img loading="lazy" decoding="async" width="1024" height="579" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-1024x579.png" alt="Zigbee Drucksensor zerlegt" class="wp-image-2888" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-1024x579.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-300x169.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-768x434.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-1536x868.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-2048x1157.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-100x56.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-700x395.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-1600x904.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-1180x667.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-1680x949.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-650x367.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-680x384.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44-600x339.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-13.55.44.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<h3 class="wp-block-heading">Drucksensor anlöten</h3>



<p>Jetzt nehmen wir uns ein 2-Adriges Kabel und isolieren die Enden mithilfe eines Seitenschneiders ab. An den Kontaktflächen des Reed-Kontakts löten wir nun das Kabel an. Sollte die Länge des Kabels vom Drucksensor bereits ausreichen, kann der Sensor auch direkt angelötet werden. Stelle ggf. sicher, dass das Kabel nicht abgerissen werden kann. Hier kann zum Beispiel eine Zugentlastung durch einen Knoten im Kabel im Gehäuse dienen.</p>



<h3 class="wp-block-heading">Kabel herausführen</h3>



<p>Fast geschafft! Um das Kabel sauber aus dem Gehäuse herauszuführen, habe ich mich entschlossen eine kleine Bohrung in das Gehäuse zu setzen. Anschließend kann der Tür-/Fensterkontakt wieder zusammen montiert werden.</p>



<h3 class="wp-block-heading">Zigbee Drucksensor anlernen</h3>



<p>Jetzt kann der Fensterkontakt in das SmartHome-System angelernt werden. Sobald Druck auf den Autositz-Drucksensor ausgeübt wird, wird der Kontakt geschlossen und der Sensor meldet dies an die SmartHome-Zentrale.&nbsp;</p>



<h2 class="wp-block-heading">Beispiele für Automationen</h2>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<ul class="wp-block-list">
<li>Der Zigbee Drucksensor wird in/unter den Sitzflächen im Sofa intrigiert. Sobald platz genommen wird, wird das Licht gedämmt. Zusätzlich wird der Fernseher eingeschaltet. Sobald der Platz auf dem Sofa verlassen wird, Pausiert der aktuell laufende Film, um nichts zu verpassen.</li>
</ul>



<ul class="wp-block-list">
<li>Der Zigbee Drucksensor wird unter dem Bettbezug platziert. Hiermit kann die Präsenz im Bett erfasst werden. Sobald die Person sich im Bett befindet, wird das SmartHome schlafen gelegt (Rollos fahren runter, Lichter werden ausgeschaltet, Wecker werden gestellt)</li>
</ul>
</div>
<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/">Tutorial: Zigbee Tür/-Fensterkontakt in ein Zigbee Drucksensor umbauen</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/tutorial-einfache-modifikation-zum-zigbee-drucksensor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hausgemachter mmWave-Präsenzmelder HLK-LD2410</title>
		<link>https://sowasvonsmart.de/ld2410/</link>
					<comments>https://sowasvonsmart.de/ld2410/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:32:01 +0000</pubDate>
				<category><![CDATA[Bastelkammer]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=2406</guid>

					<description><![CDATA[<p>Erfahre, wie du ein mmWave Präsenzmelder Selbstbauen kannst! Ein Smarthome braucht so viele Daten wie möglich. Nachdem mein Smarthome mit Bewegungsmeldern in jedem Raum ausgestattet war, konnte ich das Licht beim Betreten des Raumes automatisieren. Allerdings stand ich schnell vor einem Problem bzw. im Dunkeln. Der Bewegungsmelder erkennt nicht, wenn sich eine Person im Raum [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/ld2410/">Hausgemachter mmWave-Präsenzmelder HLK-LD2410</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Erfahre, wie du ein mmWave Präsenzmelder Selbstbauen kannst! </p>



<p>Ein Smarthome braucht so viele Daten wie möglich. Nachdem mein Smarthome mit Bewegungsmeldern in jedem Raum ausgestattet war, konnte ich das Licht beim Betreten des Raumes automatisieren.</p>



<p>Allerdings stand ich schnell vor einem Problem bzw. im Dunkeln. Der Bewegungsmelder erkennt nicht, wenn sich eine Person im Raum befindet, aber z.B. still auf dem Sofa sitzt. Das Licht ging aus – ich saß im dunklen. Hier hilft ein LD2410 mmWave Präsenzmelder!</p>



<p>Wie das Wort schon sagt, reagiert dieser nicht auf Bewegungen, sondern meldet die Anwesenheit im Raum. Dies erschreckend genau. Auf mehrere Meter entfernen wird sogar ein Atmen erkannt.</p>



<p>Diese Aufgabe lösen wir mit einem mmWave-Radarsensor.</p>





<div class="wp-block-image">
<figure class="aligncenter size-large" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28.png"><img loading="lazy" decoding="async" width="1024" height="628" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-1024x628.png" alt="mmWave Präsenzmelder" class="wp-image-2845" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-1024x628.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-300x184.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-768x471.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-1536x942.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-2048x1255.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-100x61.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-700x429.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-1600x981.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-1180x723.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-1680x1030.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-650x398.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-680x417.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28-600x368.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-17-um-12.33.28.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<h2 class="wp-block-heading" id="h-was-ist-ein-mmwave-prasenzmelder">Was ist ein mmWave Präsenzmelder</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-text-align-left has-background" style="background-color:#f2f2f2">Ein mmWave-Sensor sendet elektromagnetische Wellen im Millimeterwellenbereich aus, die von Objekten in der Umgebung reflektiert oder gestreut werden. Der Sensor empfängt die reflektierten oder gestreuten Wellen und analysiert ihre Eigenschaften wie Laufzeit, Phasenverschiebung und Intensität.</p>



<p class="has-text-align-left has-background" style="background-color:#f2f2f2">Basierend auf diesen Eigenschaften werden Informationen über die Umgebung, wie Entfernung, Geschwindigkeit, Richtung und Größe von Objekten, gewonnen. Die Laufzeit der Wellen ermöglicht die Messung der Entfernung von Objekten, während die Phasenverschiebung die Messung der Geschwindigkeit ermöglicht.</p>



<p class="has-text-align-left has-background" style="background-color:#f2f2f2">Die Intensität der reflektierten oder gestreuten Wellen gibt Aufschluss über die Größe oder Beschaffenheit von Objekten. Zusammen ermöglicht die Analyse dieser Welleneigenschaften dem mmWave-Sensor präzise Erfassung und Detektion von Objekten und Informationen über die Umgebung.</p>
</blockquote>



<p></p>



<p>Neben der vorgestellten Selbstbaulösung gibt es z.B. das Fertigprodukt Aqara FP1. Eine selbstgebaute Variante hat zum einen den Preisvorteil (ca. 10€). Zum anderen kann diese einfach per MQTT in das Smathome System eingebunden werden.</p>



<p></p>



<h2 class="wp-block-heading" id="h-was-wird-benotigt-fur-einen-mmwave-prasenzmelder">Was wird benötigt für einen mmWave Präsenzmelder</h2>



<ul class="wp-block-list">
<li><a href="https://amzn.to/3KA26Df" data-type="URL" data-id="https://amzn.to/3KA26Df" target="_blank" rel="noreferrer noopener">Wemos D1 Mini</a>: Ein günstiger, aber leistungsstarker ESP8266-basierter Mikrocontroller</li>



<li><a href="https://de.aliexpress.com/item/1005004883200214.html" data-type="URL" data-id="https://de.aliexpress.com/item/1005004883200214.html" target="_blank" rel="noreferrer noopener">HLK-LD2410-Modul</a>: ein mmWave Sensor der besonders günstig ist</li>



<li>Kabel: Zum Verbinden der Komponenten.</li>



<li>USB-Kabel: Zum Flashen der Firmware auf den Wemos D1 Mini.</li>



<li>Lötkolben / Lötzinn / Seitenschneider</li>



<li>Optional: Jumper-Kabel</li>



<li>Optional: <a rel="noreferrer noopener" href="https://www.printables.com/de/model/366944-case-for-ld2410-radar-module-and-d1-mini" target="_blank">Ein 3D gedrucktes Gehäuse</a></li>
</ul>



<h3 class="wp-block-heading" id="h-schritt-1-hardware">Schritt 1 &#8211; Hardware</h3>



<p>Als erstes wird die Platine HLK-LD2410 mit dem Wemos D1 Mini verbunden. Das Herzstück des mmWave Präsenzmelder. Beim Kauf des Moduls empfiehlt es sich, die Platine mit angelöteten Pins zu bestellen.</p>



<p>Der Sensor ist erstaunlich klein. Mit einem Lochabstand von nur 1,27 mm wird es eine knifflige Angelegenheit, die Kabel anzulöten.</p>



<ol class="wp-block-list">
<li>Verbinde den <strong>VCC-Pin</strong> des HLK-LD2410-Moduls mit dem <strong>5V-Pin</strong> des Wemos D1 Mini.</li>



<li>Verbinde den <strong>GND-Pin</strong> des HLK-LD2410-Moduls mit dem <strong>GND-Pin</strong> des Wemos D1 Mini.</li>



<li>Verbinde den <strong>RX-Pin</strong> des HLK-LD2410-Moduls mit dem <strong>TX-Pin</strong> des Wemos D1 Mini.</li>



<li>Verbinde den <strong>TX-Pin</strong> des HLK-LD2410-Moduls mit dem <strong>RX-Pin</strong> des Wemos D1 Mini.</li>



<li>Verbinde den <strong>OUT-Pin</strong> des HLK-LD2410-Moduls mit dem <strong>D1-Pin</strong> des Wemos D1 Mini.</li>
</ol>



<p>Stelle sicher, dass du die Verbindungen fest und korrekt machst, um eine zuverlässige Kommunikation zwischen den Komponenten sicherzustellen.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large" id="wp-block-themeisle-blocks-image-0d7786cb"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1.jpg"><img loading="lazy" decoding="async" width="1024" height="682" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-1024x682.jpg" alt="mmWave Präsenzmelder HLK-LD2410 Schaltplan " class="wp-image-2872" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-1024x682.jpg 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-300x200.jpg 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-768x512.jpg 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-1536x1024.jpg 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-100x67.jpg 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-675x450.jpg 675w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-1600x1066.jpg 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-1180x786.jpg 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-1680x1120.jpg 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-650x433.jpg 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-680x453.jpg 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-375x249.jpg 375w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1-600x400.jpg 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/verkabelung-1.jpg 1772w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p></p>



<h3 class="wp-block-heading" id="h-schritt-2-yaml-erstellen">Schritt 2 &#8211; yaml erstellen</h3>



<p>Als nächstes erstellen wir die Firmware für den Wemos. Hier wecken wir den mmWave Präsenzmelder zum leben. Da wir ESPHome verwenden, müssen wir eine yaml-Datei erstellen. Hier kürzen wir ab. Denn im ioBroker Forum bin ich auf einen <a data-type="URL" data-id="https://forum.iobroker.net/topic/63310/tasmota-esphome-presence-sensor-ld2410/30?_=1681315752712" href="https://forum.iobroker.net/topic/63310/tasmota-esphome-presence-sensor-ld2410/30?_=1681315752712" target="_blank" rel="noreferrer noopener">Beitrag</a> gestoßen, wo ein User das Script bereits erstellt hat.</p>



<p>Neben dem Script wird noch die <a href="https://forum.iobroker.net/assets/uploads/files/1677915021316-uart_read_line_sensor_ld2410v3.h" data-type="URL" data-id="https://forum.iobroker.net/assets/uploads/files/1677915021316-uart_read_line_sensor_ld2410v3.h">uart_read_line_sensor_ld2410v3.h</a> benötigt. Diese muss im ioBroker in den Pfad <em>/opt/iobroker/iobroker-data/esphome.0</em> kopiert werden.</p>



<p>Nachdem dies geschehen ist, öffnen wir ESPHome. Danach erstellen wir eine Standard ESP-Home yaml, welcher nachher auf den mmWave Präsenzmelder gespielt wird.</p>



<figure class="wp-block-image size-large" id="wp-block-themeisle-blocks-image-1f31ac1d"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1.png"><img loading="lazy" decoding="async" width="1024" height="275" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-1024x275.png" alt="ESPHome New Device" class="wp-image-2438" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-1024x275.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-300x81.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-768x207.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-1180x317.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-800x215.png 800w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-650x175.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-440x118.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1-600x161.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.47.00-1.png 1398w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Anschließend wird dem Sensor ein Name gegeben.</p>



<figure class="wp-block-image size-large is-resized" id="wp-block-themeisle-blocks-image-553d7ad0"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1.png"><img loading="lazy" decoding="async" width="1024" height="1014" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-1024x1014.png" alt="EspHome vorbereiten" class="wp-image-2439" style="width:512px;height:507px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-1024x1014.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-300x297.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-150x150.png 150w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-768x761.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-800x792.png 800w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-650x644.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-440x436.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-600x594.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1-100x100.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.46.04-1.png 1060w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="has-text-align-left">Hier wählen wir ESP8266 für einen Wemos d1 mini.</p>



<figure class="wp-block-image size-large is-resized is-style-default" id="wp-block-themeisle-blocks-image-126b96b5"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39.png"><img loading="lazy" decoding="async" width="1024" height="244" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-1024x244.png" alt="ESPHome Edit" class="wp-image-2444" style="width:512px;height:122px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-1024x244.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-300x71.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-768x183.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-800x190.png 800w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-650x155.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-440x105.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39-600x143.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-17.49.39.png 1034w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading" id="h-bearbeiten-und-ersetzen-des-codes">Bearbeiten und Ersetzen des Codes</h2>



<p>Nun editieren wir diese und ersetzen den Code mit dem aus dem <a href="https://forum.iobroker.net/topic/63310/tasmota-esphome-presence-sensor-ld2410/30?_=1681315752712" target="_blank" rel="noreferrer noopener">ioBroker Beitrag</a>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" style="font-size:.875rem;line-height:1.25rem"><span role="button" tabindex="0" data-code="esphome:
 name: ld2410m3d1
 includes:
   - uart_read_line_sensor_ld2410v3.h
 on_boot:
    priority: -100
    then:
     - script.execute: get_config
esp8266:
     board: esp01_1m
# Enable logging
logger:
 baud_rate: 0
 logs:
   sensor: INFO # DEBUG level with uart_target_output = overload!
   binary_sensor: INFO
   text_sensor: INFO
# Enable Home Assistant API
api:
ota:
 
wifi:
 ssid: &quot;yyyyyyyyy1&quot;
 password: &quot;xxxxxxxxxxxxxx2&quot;
 use_address: 192.168.178.67
substitutions:
 device_name: dev-sensor
mqtt:
 broker: 192.168.178.59
 port: 1506
 topic_prefix: ld2410motion/motion3
 
 
web_server:
 port: 80
 version: 2
 include_internal: true
 ota: false
captive_portal:
uart:
 id: uart_bus
 tx_pin:
   number: GPIO1
 rx_pin: 
   number: GPIO3
 baud_rate: 256000
 parity: NONE
 stop_bits: 1
switch:
 - platform: safe_mode
   name: use_safe_mode
   
 - platform: template
   name: configmode
   id: configmode
   optimistic: true
   # assumed_state: false
   turn_on_action:
     # - switch.turn_off: engineering_mode
     - lambda: 'static_cast<LD2410 *>(ld2410)->setConfigMode(true);&#8216;
     &#8211; delay: 100ms
     &#8211; script.execute: clear_targets
   turn_off_action:
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->setConfigMode(false);&#8216;
 &#8211; platform: template
   name: show_target_stats
   id: show_stats
   optimistic: true
   internal: true
   turn_off_action:
     &#8211; script.execute: clear_targets
text_sensor:
 &#8211; platform: template
   name: uptime_human_readable
   id: uptime_human_readable
   icon: mdi:clock-start
   update_interval: 60s
sensor:
 &#8211; platform: uptime
   name: uptime_sensor
   id: uptime_sensor
   update_interval: 60s
   internal: true
   on_raw_value:
     then:
       &#8211; text_sensor.template.publish:
           id: uptime_human_readable
           state: !lambda |-
                     int seconds = round(id(uptime_sensor).raw_state);
                     int days = seconds / (24 * 3600);
                     seconds = seconds % (24 * 3600);
                     int hours = seconds / 3600;
                     seconds = seconds % 3600;
                     int minutes = seconds /  60;
                     seconds = seconds % 60;
                     return (
                       (days ? to_string(days)+&quot;:&quot; : &quot;00:&quot;) +
                       (hours ? to_string(hours)+&quot;:&quot; : &quot;00:&quot;) +
                       (minutes ? to_string(minutes)+&quot;:&quot; : &quot;00:&quot;) +
                       (to_string(seconds))
                     ).c_str();
 &#8211; platform: custom # currently crashes ESP32
   lambda: |-
     auto uart_component = static_cast<LD2410 *>(ld2410);
     //return {uart_component->movingTargetDistance,uart_component->movingTargetEnergy,uart_component->stillTargetDistance,uart_component->stillTargetEnergy,uart_component->detectDistance};
     return {};
   sensors:
   
 &#8211; platform: template
   name: movingTargetDistance
   id: movingTargetDistance
   unit_of_measurement: &quot;cm&quot;
   accuracy_decimals: 0
   internal: true
   
 &#8211; platform: template
   name: movingTargetEnergy
   id: movingTargetEnergy
   unit_of_measurement: &quot;%&quot;
   accuracy_decimals: 0
   internal: true
   
 &#8211; platform: template
   name: stillTargetDistance
   id: stillTargetDistance
   unit_of_measurement: &quot;cm&quot;
   accuracy_decimals: 0
   internal: true
   
 &#8211; platform: template
   name: stillTargetEnergy
   id: stillTargetEnergy
   unit_of_measurement: &quot;%&quot;
   accuracy_decimals: 0
   internal: true
   
 &#8211; platform: template
   name: detectDistance
   id: detectDistance
   unit_of_measurement: &quot;cm&quot;
   accuracy_decimals: 0
   internal: true
   
custom_component:
 &#8211; lambda: |-
     return {new LD2410(id(uart_bus))};
   components:
     &#8211; id: ld2410
     
binary_sensor:
 &#8211; platform: gpio
   name: mmwave_presence_ld2410
   id: mmwave_presence_ld2410
   pin: GPIO5
   device_class: motion
   on_state:
     then:
       &#8211; if: 
           condition: 
             &#8211; binary_sensor.is_off: mmwave_presence_ld2410
           then: 
             &#8211; delay: 150ms
             &#8211; script.execute: clear_targets
number:  
 &#8211; platform: template
   name: configMaxDistance
   id: maxconfigDistance
   unit_of_measurement: &quot;M&quot;
   min_value: 0.75
   max_value: 6
   step: 0.75
   update_interval: never
   optimistic: true
   set_action:
     &#8211; switch.turn_on: configmode
     &#8211; delay: 50ms
     &#8211; lambda: |-
         auto uart_component = static_cast<LD2410 *>(ld2410);
         uart_component->setMaxDistancesAndNoneDuration(x/0.75,x/0.75,id(noneDuration).state);
     &#8211; delay: 50ms
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->queryParameters();&#8216;
     &#8211; delay: 50ms
     &#8211; switch.turn_off: configmode
 &#8211; platform: template
   name: &quot;sensitivity_threshold_(%)&quot;
   id: allSensitivity
   min_value: 10
   max_value: 100
   step: 5
   mode: box
   update_interval: never
   optimistic: true
   set_action:
     &#8211; switch.turn_on: configmode
     &#8211; delay: 50ms
     &#8211; lambda: |-
         auto uart_component = static_cast<LD2410 *>(ld2410);
         uart_component->setAllSensitivity(x);
     &#8211; delay: 50ms
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->queryParameters();&#8216;
     &#8211; delay: 50ms
     &#8211; switch.turn_off: configmode
     
 &#8211; platform: template
   name: &quot;motion_hold_(sec)&quot;
   id: noneDuration
   min_value: 0
   # max_value: 32767
   max_value: 900
   step: 1
   mode: box
   update_interval: never
   optimistic: true
   set_action:
     &#8211; switch.turn_on: configmode
     &#8211; delay: 50ms
     &#8211; lambda: |-
         auto uart_component = static_cast<LD2410 *>(ld2410);
         uart_component->setMaxDistancesAndNoneDuration(id(maxconfigDistance).state, id(maxconfigDistance).state, x);
     &#8211; delay: 50ms
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->queryParameters();&#8216;
     &#8211; delay: 50ms
     &#8211; switch.turn_off: configmode
button:
 &#8211; platform: restart
   name: &quot;reset/restart_ESP/MCU&quot;
   entity_category: diagnostic
   on_press:
     &#8211; switch.turn_on: configmode
     &#8211; delay: 50ms
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->factoryReset();&#8216;
     &#8211; delay: 150ms
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->reboot();&#8216;
     &#8211; delay: 150ms
script:
 &#8211; id: get_config
   then:
     &#8211; switch.turn_on: configmode
     &#8211; delay: 500ms
     &#8211; lambda: &#8217;static_cast<LD2410 *>(ld2410)->queryParameters();&#8216;
     &#8211; delay: 500ms
     &#8211; switch.turn_off: configmode
     
 &#8211; id: clear_targets
   then:
     &#8211; lambda: |-
         //id(hasTarget).publish_state(0);
         //id(hasMovingTarget).publish_state(0);
         //id(hasStillTarget).publish_state(0);
         id(movingTargetDistance).publish_state(0);
         id(movingTargetEnergy).publish_state(0);
         id(stillTargetDistance).publish_state(0);
         id(stillTargetEnergy).publish_state(0);
         id(detectDistance).publish_state(0);&#8220; style=&#8220;color:#d8dee9ff;display:none&#8220; aria-label=&#8220;Copy&#8220; class=&#8220;code-block-pro-copy-button&#8220;><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff"><code><span class="line"><span style="color: #D8DEE9FF">esphome</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ld2410m3d1</span></span>
<span class="line"><span style="color: #D8DEE9FF"> includes</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_read_line_sensor_ld2410v3</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">h</span></span>
<span class="line"><span style="color: #D8DEE9FF"> on_boot</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">    priority</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #B48EAD">100</span></span>
<span class="line"><span style="color: #D8DEE9FF">    then</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">script</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">execute</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">get_config</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">esp8266</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     board</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">esp01_1m</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #D8DEE9">Enable</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">logging</span></span>
<span class="line"><span style="color: #D8DEE9FF">logger</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> baud_rate</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF"> logs</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">   sensor</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">INFO</span><span style="color: #D8DEE9FF"> # </span><span style="color: #D8DEE9">DEBUG</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">level</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">with</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_target_output</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">overload</span><span style="color: #81A1C1">!</span></span>
<span class="line cbp-see-more-line "><span style="color: #D8DEE9FF">   binary_sensor</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">INFO</span></span>
<span class="line"><span style="color: #D8DEE9FF">   text_sensor</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">INFO</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"># </span><span style="color: #D8DEE9">Enable</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Home</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Assistant</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">API</span></span>
<span class="line"><span style="color: #D8DEE9FF">api</span><span style="color: #ECEFF4">:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">ota</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">wifi</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> ssid</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">yyyyyyyyy1</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF"> password</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">xxxxxxxxxxxxxx2</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF"> use_address</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">192.168</span><span style="color: #ECEFF4">.</span><span style="color: #B48EAD">178.67</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">substitutions</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> device_name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">dev</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">sensor</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">mqtt</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> broker</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">192.168</span><span style="color: #ECEFF4">.</span><span style="color: #B48EAD">178.59</span></span>
<span class="line"><span style="color: #D8DEE9FF"> port</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1506</span></span>
<span class="line"><span style="color: #D8DEE9FF"> topic_prefix</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ld2410motion</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">motion3</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">web_server</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> port</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">80</span></span>
<span class="line"><span style="color: #D8DEE9FF"> version</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">2</span></span>
<span class="line"><span style="color: #D8DEE9FF"> include_internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF"> ota</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">captive_portal</span><span style="color: #ECEFF4">:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">uart</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_bus</span></span>
<span class="line"><span style="color: #D8DEE9FF"> tx_pin</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">   number</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">GPIO1</span></span>
<span class="line"><span style="color: #D8DEE9FF"> rx_pin</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">   number</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">GPIO3</span></span>
<span class="line"><span style="color: #D8DEE9FF"> baud_rate</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">256000</span></span>
<span class="line"><span style="color: #D8DEE9FF"> parity</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">NONE</span></span>
<span class="line"><span style="color: #D8DEE9FF"> stop_bits</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #81A1C1">switch</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">safe_mode</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">use_safe_mode</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">   optimistic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   # assumed_state</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false</span></span>
<span class="line"><span style="color: #D8DEE9FF">   turn_on_action</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     # </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_off</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">engineering_mode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;setConfigMode(true);</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 100</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">script</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">execute</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">clear_targets</span></span>
<span class="line"><span style="color: #D8DEE9FF">   turn_off_action</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;setConfigMode(false);</span><span style="color: #ECEFF4">'</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">show_target_stats</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">show_stats</span></span>
<span class="line"><span style="color: #D8DEE9FF">   optimistic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   turn_off_action</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">script</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">execute</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">clear_targets</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">text_sensor</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uptime_human_readable</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uptime_human_readable</span></span>
<span class="line"><span style="color: #D8DEE9FF">   icon</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> mdi</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9">clock</span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">start</span></span>
<span class="line"><span style="color: #D8DEE9FF">   update_interval</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 60</span><span style="color: #D8DEE9">s</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">sensor</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uptime</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uptime_sensor</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uptime_sensor</span></span>
<span class="line"><span style="color: #D8DEE9FF">   update_interval</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 60</span><span style="color: #D8DEE9">s</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   on_raw_value</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     then</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">       </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">text_sensor</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">template</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">publish</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">           id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uptime_human_readable</span></span>
<span class="line"><span style="color: #D8DEE9FF">           state</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">!</span><span style="color: #D8DEE9">lambda</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">int</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">round</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">uptime_sensor</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">raw_state</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">int</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">days</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9FF"> (</span><span style="color: #B48EAD">24</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">3600</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9FF"> (</span><span style="color: #B48EAD">24</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">3600</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">int</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hours</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">3600</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">3600</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">int</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">minutes</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9FF">  </span><span style="color: #B48EAD">60</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">60</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> (</span></span>
<span class="line"><span style="color: #D8DEE9FF">                       (</span><span style="color: #D8DEE9">days</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">?</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">to_string</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">days</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">+</span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">:</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">00:</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF">) </span><span style="color: #81A1C1">+</span></span>
<span class="line"><span style="color: #D8DEE9FF">                       (</span><span style="color: #D8DEE9">hours</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">?</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">to_string</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">hours</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">+</span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">:</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">00:</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF">) </span><span style="color: #81A1C1">+</span></span>
<span class="line"><span style="color: #D8DEE9FF">                       (</span><span style="color: #D8DEE9">minutes</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">?</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">to_string</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">minutes</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">+</span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">:</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">00:</span><span style="color: #ECEFF4">"</span><span style="color: #D8DEE9FF">) </span><span style="color: #81A1C1">+</span></span>
<span class="line"><span style="color: #D8DEE9FF">                       (</span><span style="color: #88C0D0">to_string</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">seconds</span><span style="color: #D8DEE9FF">))</span></span>
<span class="line"><span style="color: #D8DEE9FF">                     )</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">c_str</span><span style="color: #D8DEE9FF">()</span><span style="color: #81A1C1">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">custom</span><span style="color: #D8DEE9FF"> # </span><span style="color: #D8DEE9">currently</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">crashes</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ESP32</span></span>
<span class="line"><span style="color: #D8DEE9FF">   lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #D8DEE9">auto</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_component</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">static_cast</span><span style="color: #81A1C1">&lt;</span><span style="color: #D8DEE9">LD2410</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*&gt;</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">ld2410</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #ECEFF4">     </span><span style="color: #616E88">//return {uart_component-&gt;movingTargetDistance,uart_component-&gt;movingTargetEnergy,uart_component-&gt;stillTargetDistance,uart_component-&gt;stillTargetEnergy,uart_component-&gt;detectDistance};</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">{}</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">   sensors</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">movingTargetDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">movingTargetDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   unit_of_measurement</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">cm</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   accuracy_decimals</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">movingTargetEnergy</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">movingTargetEnergy</span></span>
<span class="line"><span style="color: #D8DEE9FF">   unit_of_measurement</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">%</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   accuracy_decimals</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">stillTargetDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">stillTargetDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   unit_of_measurement</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">cm</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   accuracy_decimals</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">stillTargetEnergy</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">stillTargetEnergy</span></span>
<span class="line"><span style="color: #D8DEE9FF">   unit_of_measurement</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">%</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   accuracy_decimals</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">detectDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">detectDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   unit_of_measurement</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">cm</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   accuracy_decimals</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF">   internal</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   </span></span>
<span class="line"><span style="color: #D8DEE9FF">custom_component</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">{</span><span style="color: #D8DEE9FF">new </span><span style="color: #88C0D0">LD2410</span><span style="color: #ECEFF4">(</span><span style="color: #D8DEE9">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">uart_bus</span><span style="color: #ECEFF4">)</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">}</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">   components</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ld2410</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span></span>
<span class="line"><span style="color: #D8DEE9FF">binary_sensor</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">gpio</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">mmwave_presence_ld2410</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">mmwave_presence_ld2410</span></span>
<span class="line"><span style="color: #D8DEE9FF">   pin</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">GPIO5</span></span>
<span class="line"><span style="color: #D8DEE9FF">   device_class</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">motion</span></span>
<span class="line"><span style="color: #D8DEE9FF">   on_state</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     then</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">       </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF">: </span></span>
<span class="line"><span style="color: #D8DEE9FF">           condition</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">             </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">binary_sensor</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">is_off</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">mmwave_presence_ld2410</span></span>
<span class="line"><span style="color: #D8DEE9FF">           then</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">             </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 150</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">             </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">script</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">execute</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">clear_targets</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">number</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF">  </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">configMaxDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">maxconfigDistance</span></span>
<span class="line"><span style="color: #D8DEE9FF">   unit_of_measurement</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">M</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   min_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.75</span></span>
<span class="line"><span style="color: #D8DEE9FF">   max_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">6</span></span>
<span class="line"><span style="color: #D8DEE9FF">   step</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.75</span></span>
<span class="line"><span style="color: #D8DEE9FF">   update_interval</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">never</span></span>
<span class="line"><span style="color: #D8DEE9FF">   optimistic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   set_action</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_on</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #D8DEE9">auto</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_component</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">static_cast</span><span style="color: #81A1C1">&lt;</span><span style="color: #D8DEE9">LD2410</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*&gt;</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">ld2410</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #D8DEE9">uart_component</span><span style="color: #81A1C1">-&gt;</span><span style="color: #88C0D0">setMaxDistancesAndNoneDuration</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">x</span><span style="color: #81A1C1">/</span><span style="color: #B48EAD">0.75</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9">x</span><span style="color: #81A1C1">/</span><span style="color: #B48EAD">0.75</span><span style="color: #ECEFF4">,</span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">noneDuration</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">state</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;queryParameters();</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_off</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">sensitivity_threshold_(%)</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">allSensitivity</span></span>
<span class="line"><span style="color: #D8DEE9FF">   min_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">10</span></span>
<span class="line"><span style="color: #D8DEE9FF">   max_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">100</span></span>
<span class="line"><span style="color: #D8DEE9FF">   step</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">5</span></span>
<span class="line"><span style="color: #D8DEE9FF">   mode</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">box</span></span>
<span class="line"><span style="color: #D8DEE9FF">   update_interval</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">never</span></span>
<span class="line"><span style="color: #D8DEE9FF">   optimistic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   set_action</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_on</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #D8DEE9">auto</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_component</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">static_cast</span><span style="color: #81A1C1">&lt;</span><span style="color: #D8DEE9">LD2410</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*&gt;</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">ld2410</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #D8DEE9">uart_component</span><span style="color: #81A1C1">-&gt;</span><span style="color: #88C0D0">setAllSensitivity</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">x</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;queryParameters();</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_off</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">template</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">motion_hold_(sec)</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">noneDuration</span></span>
<span class="line"><span style="color: #D8DEE9FF">   min_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span></span>
<span class="line"><span style="color: #D8DEE9FF">   # max_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">32767</span></span>
<span class="line"><span style="color: #D8DEE9FF">   max_value</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">900</span></span>
<span class="line"><span style="color: #D8DEE9FF">   step</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1</span></span>
<span class="line"><span style="color: #D8DEE9FF">   mode</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">box</span></span>
<span class="line"><span style="color: #D8DEE9FF">   update_interval</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">never</span></span>
<span class="line"><span style="color: #D8DEE9FF">   optimistic</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span></span>
<span class="line"><span style="color: #D8DEE9FF">   set_action</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_on</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #D8DEE9">auto</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">uart_component</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">static_cast</span><span style="color: #81A1C1">&lt;</span><span style="color: #D8DEE9">LD2410</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*&gt;</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">ld2410</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #D8DEE9">uart_component</span><span style="color: #81A1C1">-&gt;</span><span style="color: #88C0D0">setMaxDistancesAndNoneDuration</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">maxconfigDistance</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">state</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">maxconfigDistance</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">state</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">x</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;queryParameters();</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_off</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">button</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> platform</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">restart</span></span>
<span class="line"><span style="color: #D8DEE9FF">   name</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">reset/restart_ESP/MCU</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">   entity_category</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">diagnostic</span></span>
<span class="line"><span style="color: #D8DEE9FF">   on_press</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_on</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 50</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;factoryReset();</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 150</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;reboot();</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 150</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF">script</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">get_config</span></span>
<span class="line"><span style="color: #D8DEE9FF">   then</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_on</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 500</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">static_cast&lt;LD2410 *&gt;(ld2410)-&gt;queryParameters();</span><span style="color: #ECEFF4">'</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> delay</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> 500</span><span style="color: #D8DEE9">ms</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">switch</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">turn_off</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">configmode</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> id</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">clear_targets</span></span>
<span class="line"><span style="color: #D8DEE9FF">   then</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> lambda</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|-</span></span>
<span class="line"><span style="color: #ECEFF4">         </span><span style="color: #616E88">//id(hasTarget).publish_state(0);</span></span>
<span class="line"><span style="color: #ECEFF4">         </span><span style="color: #616E88">//id(hasMovingTarget).publish_state(0);</span></span>
<span class="line"><span style="color: #ECEFF4">         </span><span style="color: #616E88">//id(hasStillTarget).publish_state(0);</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">movingTargetDistance</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">publish_state</span><span style="color: #D8DEE9FF">(</span><span style="color: #B48EAD">0</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">movingTargetEnergy</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">publish_state</span><span style="color: #D8DEE9FF">(</span><span style="color: #B48EAD">0</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">stillTargetDistance</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">publish_state</span><span style="color: #D8DEE9FF">(</span><span style="color: #B48EAD">0</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">stillTargetEnergy</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">publish_state</span><span style="color: #D8DEE9FF">(</span><span style="color: #B48EAD">0</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #88C0D0">id</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">detectDistance</span><span style="color: #D8DEE9FF">)</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">publish_state</span><span style="color: #D8DEE9FF">(</span><span style="color: #B48EAD">0</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span></code></pre><div class="cbp-see-more-container" style="display:flex;flex-direction:column;align-items:center;width:100%;font-size:12px;line-height:1;position:relative;padding-top:4px;margin-bottom:-16px;height:32px"><div style="background-color:#2e3440;height:50%;position:absolute;top:0;left:0;right:0" aria-hidden="true"></div><span role="button" tabindex="0" class="cbp-see-more-simple-btn cbp-see-more-simple-btn-hover" style="color:#ffffff;background-color:#434c5e;padding:6px 14px;cursor:default;position:relative;border-radius:6px">Erweitern</span></div></div>



<p>Hier müssen wir noch folgende Änderungen vornehmen:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span role="button" tabindex="0" data-code="wifi:
 ssid: &quot;yyyyyyyyy1&quot;
 password: &quot;xxxxxxxxxxxxxx2&quot;
 use_address: 192.168.178.67" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9FF">wifi</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> ssid</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">yyyyyyyyy1</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF"> password</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">xxxxxxxxxxxxxx2</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF"> use_address</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">192.168</span><span style="color: #ECEFF4">.</span><span style="color: #B48EAD">178.67</span></span></code></pre></div>



<p>Hier müssen die WLAN-Zugangsdaten eingegeben werden. Soll der Sensor eine feste IP erhalten, so kann diese hier eingetragen werden. Falls keine vergeben werden soll, muss die Zeile gelöscht werden.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span role="button" tabindex="0" data-code="mqtt:
 broker: 192.168.178.59
 port: 1506
 topic_prefix: ld2410motion/motion3" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9FF">mqtt</span><span style="color: #ECEFF4">:</span></span>
<span class="line"><span style="color: #D8DEE9FF"> broker</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">192.168</span><span style="color: #ECEFF4">.</span><span style="color: #B48EAD">178.59</span></span>
<span class="line"><span style="color: #D8DEE9FF"> port</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1506</span></span>
<span class="line"><span style="color: #D8DEE9FF"> topic_prefix</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ld2410motion</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">motion3</span></span></code></pre></div>



<p>Hier werden die Zugangsdaten für die MQTT-Verbindung festgelegt. Die IP des MQTT Brokers und der Port müssen angegeben werden. Im Topic geben wir an, in welchem Kanal der Sensor seine Werte ablegen soll.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large" id="wp-block-themeisle-blocks-image-b1ad557b"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-scaled.jpeg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-1024x768.jpeg" alt="Der mmWave Präsenzmelder zusammengebaut" class="wp-image-2855" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-1024x768.jpeg 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-300x225.jpeg 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-768x576.jpeg 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-1536x1152.jpeg 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-2048x1536.jpeg 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-100x75.jpeg 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-600x450.jpeg 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-1600x1200.jpeg 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-1180x885.jpeg 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-1680x1260.jpeg 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-650x488.jpeg 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-680x510.jpeg 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8160-1-scaled.jpeg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<h3 class="wp-block-heading" id="h-schritt-3-konfigurieren-des-mmwave-prasenzmelder">Schritt 3 &#8211; Konfigurieren des mmWave Präsenzmelder</h3>



<p>Jetzt können wir den Wemos flashen. Wir speichern die Datei und gehen auf „Install“ jetzt wählen wir mit welcher Methode wir flashen wollen. Ich bevorzuge es die Datei herunterzuladen und mit dem <a href="https://github.com/esphome/esphome-flasher" data-type="URL" data-id="https://github.com/esphome/esphome-flasher" target="_blank" rel="noreferrer noopener">ESPHome-Flasher</a> zu flashen.</p>



<figure class="wp-block-image size-large is-resized" id="wp-block-themeisle-blocks-image-ec455315"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35.png"><img loading="lazy" decoding="async" width="912" height="1024" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-912x1024.png" alt="ESPHome flashvorgang" class="wp-image-2502" style="width:456px;height:512px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-912x1024.png 912w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-267x300.png 267w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-768x862.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-1369x1536.png 1369w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-1180x1324.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-800x898.png 800w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-650x729.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-440x494.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35-600x673.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-20.34.35.png 1472w" sizes="(max-width: 912px) 100vw, 912px" /></a></figure>



<p>Sobald der Flashvorgang abgeschlossen ist, sollte der Sensor mit dem WLAN und dem MQTT Broker kommunizieren.</p>



<p>Über die &lt;&lt;ip-adresse:80&gt;&gt; kann die Webkonfiguration geöffnet werden.</p>



<figure class="wp-block-image size-large" id="wp-block-themeisle-blocks-image-9c6dcc34"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel.png"><img loading="lazy" decoding="async" width="1024" height="631" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-1024x631.png" alt="mmWave Präsenzmelder - ESPHome Übersicht" class="wp-image-2510" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-1024x631.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-300x185.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-768x473.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-1536x947.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-1180x727.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-800x493.png 800w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-650x401.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-440x271.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-600x370.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel.png 1906w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Hier können wir die Empfindlichkeit, die Entfernung und die Zeit einstellen, nach der der mmWave Präsenzmelder wieder den Wert &#8222;off&#8220; ausgibt.</p>



<p>Hier hilft nur ausprobieren. Platziere den Sensor an der Stelle, an der er später sein soll. Dann stelle die Werte so ein, dass der Sensor die Anwesenheit erkennt.</p>



<p>Nun kontrollieren wir noch, ob die Werte über MQTT ankommen. Dazu gehen wir im ioBroker in die Objekte und öffnen den MQTT Adapter.</p>



<figure class="wp-block-image size-large" id="wp-block-themeisle-blocks-image-6c011d6e"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1.png"><img loading="lazy" decoding="async" width="1024" height="116" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-1024x116.png" alt="" class="wp-image-2478" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-1024x116.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-300x34.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-768x87.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-1536x174.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-2048x232.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-1180x134.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-800x91.png 800w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-650x74.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-440x50.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1-600x68.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-12-um-19.45.25-1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Optional kann der mmWave Präsenzmelder auch in einem 3D gedruckten Gehäuse untergebracht werden. Mir hat <a data-type="URL" data-id="https://www.printables.com/de/model/366944-case-for-ld2410-radar-module-and-d1-mini" href="https://www.printables.com/de/model/366944-case-for-ld2410-radar-module-and-d1-mini" target="_blank" rel="noreferrer noopener">dieses</a> Gehäuse sehr gut gefallen, da der Sensor so noch leicht in seiner Position verstellt werden kann.</p>



<figure class="wp-block-image size-large is-resized" id="wp-block-themeisle-blocks-image-283d896f"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited.png"><img loading="lazy" decoding="async" width="764" height="573" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited.png" alt="mmWave Präsenzmelder - 3D Druck Gehäuse" class="wp-image-2492" style="width:382px;height:287px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited.png 764w, https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited-300x225.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited-650x488.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited-440x330.png 440w, https://sowasvonsmart.de/wp-content/uploads/2023/04/fb9c4ada-206f-402b-b9ec-cea23aa327d6-edited-600x450.png 600w" sizes="(max-width: 764px) 100vw, 764px" /></a></figure>



<p></p>



<h2 class="wp-block-heading"><strong>Beispiele für Automationen</strong></h2>



<ul class="wp-block-list">
<li>Beim Verlassen des Raumes wird das Licht ausgeschaltet.</li>



<li>Beim Betreten des Arbeitszimmers an Werktagen morgens werden Monitore, Drucker und der Heimarbeitsplatz-Computer eingeschaltet. Beim Verlassen des Raumes werden die Minitore ausgeschaltet, um Energie zu sparen.</li>
</ul>



<p></p>
<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/ld2410/">Hausgemachter mmWave-Präsenzmelder HLK-LD2410</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/ld2410/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>So gehts: Switchbot lokal und ohne Hub per MQTT steuern</title>
		<link>https://sowasvonsmart.de/so-gehts-switchbot-lokal-und-ohne-hub-per-mqtt-steuern/</link>
					<comments>https://sowasvonsmart.de/so-gehts-switchbot-lokal-und-ohne-hub-per-mqtt-steuern/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:32:01 +0000</pubDate>
				<category><![CDATA[Bastelkammer]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ioBroker]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=2982</guid>

					<description><![CDATA[<p>Switchbot lokal -Wer die Produkte von Switchbot kennt, weiß, dass diese leider über Bluetooth gesteuert werden. Das hat den Nachteil, dass die Geräte nicht ohne Umwege in das Smarthome-System ioBroker oder HomeAssistant eingebunden werden können. Hierfür gibt es zwei Möglichkeiten. Zum einen verfügt der Switchbot-Hub über eine API-Schnittstelle, über die die Geräte eingebunden werden können. [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/so-gehts-switchbot-lokal-und-ohne-hub-per-mqtt-steuern/">So gehts: Switchbot lokal und ohne Hub per MQTT steuern</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Switchbot lokal -Wer die Produkte von Switchbot kennt, weiß, dass diese leider über Bluetooth gesteuert werden. Das hat den Nachteil, dass die Geräte nicht ohne Umwege in das Smarthome-System ioBroker oder HomeAssistant eingebunden werden können.</p>



<p>Hierfür gibt es zwei Möglichkeiten. Zum einen verfügt der Switchbot-Hub über eine API-Schnittstelle, über die die Geräte eingebunden werden können. Hier laufen die Anfragen leider nicht lokal und es ist immer eine Cloudanbindung notwendig.</p>



<p>Wer mich kennt weiß, dass ich Cloudanbindungen gerne vermeide. Zu oft gibt es Änderungen, Verbindungsprobleme oder die Cloud wird sogar abgeschaltet. Die Überschritt verspricht ja eine Lösung, welche lokal läuft. Welche ist das nun?</p>



<p>Das ganze Projekt heißt SwitchBot-MQTT-BLE-ESP32 von devWaves auf Github. Hier kann man sich quasi einen eigenen Switchbot-Hub auf Basis des ESP32 bauen, die von jedem mit etwas technischem Verständnis umgesetzt werden kann.</p>



<p>Allerdings kann es auch Nachteile geben. Manchmal muss die Verbindung zwischen dem ESP32 Mikrocontroller und den SwitchBot Geräten länger aufgebaut werden, was zu Verzögerungen führen kann. Dadurch kann es 10-20 Sekunden dauern, bis die SwitchBot-Geräte die gewünschte Aktion ausführen. Dies tritt bei mir ab und zu auf. Woran dies liegt konnte ich noch nicht identifizieren.</p>



<p>Nichtsdestotrotz ist das SwitchBot-MQTT-BLE-ESP32-Projekt eine interessante Alternative zum Hub von SwitchBot, die mehr Flexibilität bietet. Durch die Verwendung von MQTT und BLE wird eine schnelle und sichere Verbindung zwischen den Geräten hergestellt, die von jedem mit etwas technischem Verständnis implementiert werden kann.</p>





<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/61UXMZkYBGL._AC_SL500_QL70_ML2_.jpg" alt="SwitchBot Smart Curtain Opener- Wireless App Automate Timer Control, Add">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-"					>
					<div class='afxshop-title'>
					SwitchBot Smart Curtain Opener- Wireless App Automate Timer Control, Add SwitchBot Hub, to make it compatible with Alexa, google home, IFTTT, Homekit (Rod2.0 version, White)					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
																																														<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>31. März 2026 16:56</span>
								</p>
			</div>
		</div>
	</div>
	


<h2 class="wp-block-heading" id="h-switchbot-lokal-was-wir-benotigen">Switchbot lokal &#8211; Was wir benötigen</h2>



<ul class="wp-block-list">
<li><a data-eafl-id="3007" data-eafl-text="ESP32" href="https://www.amazon.de/AZDelivery-NodeMCU-Development-Nachfolgermodell-ESP8266" class="eafl-link">ESP32</a> &#8211; Board, welches mit dem Skript die Kommunikation durchführt </li>



<li>Switchbot-Gerät &#8211; In diesem Beispiel <a data-eafl-id="3010" data-eafl-text="Switchbot-Curtains" href="https://www.amazon.de/SwitchBot-Curtain-Smart-Electric-Motor/" class="eafl-link">Switchbot-Curtains</a></li>



<li>MQTT Broker &#8211; Nachrichtenprotokoll im SmartHome-Netzwerk</li>



<li><a rel="noreferrer noopener" href="https://www.arduino.cc/en/software" data-type="URL" data-id="https://www.arduino.cc/en/software" target="_blank">Arduino IDE</a> &#8211; Zum flashen des ESP32</li>



<li><a rel="noreferrer noopener" href="https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32" data-type="URL" data-id="https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32" target="_blank">Github-Projekt</a> &#8211; SwitchBot-MQTT-BLE-ESP32</li>
</ul>



<h3 class="wp-block-heading" id="h-schritt-1-vorbereitung">Schritt 1 &#8211; Vorbereitung</h3>



<p>Als erstes laden wir uns das <a rel="noreferrer noopener" href="https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32" data-type="URL" data-id="https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32" target="_blank">Github-Projekt</a> herunter. Als nächstes, wenn noch nicht vorhanden, das Programm <a rel="noreferrer noopener" href="https://www.arduino.cc/en/software" data-type="URL" data-id="https://www.arduino.cc/en/software" target="_blank">Arduino IDE</a>. Mit diesem Programm können wir den Code anpassen und auf dem ESP flashen.</p>



<p>Zuerst laden wir das <a rel="noreferrer noopener" href="https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32" data-type="URL" data-id="https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32" target="_blank">Github-Projekt</a> herunter. Danach, falls noch nicht vorhanden, das Programm <a rel="noreferrer noopener" href="https://www.arduino.cc/en/software" data-type="URL" data-id="https://www.arduino.cc/en/software" target="_blank">Arduino IDE</a>. Mit diesem Programm können wir den Code anpassen und auf das ESP flashen.</p>



<h3 class="wp-block-heading" id="h-schritt-2-board-und-bibilothekverwaltung">Schritt 2 &#8211; Board- und Bibilothekverwaltung</h3>



<p>Nun können wir im heruntergeladenen Projekt im Ordner &#8222;Arduino IDE Files&#8220; die Datei &#8222;SwitchBot-BLE2MQTT-ESP32.ino&#8220; öffnen. Danach müssen wir einige Pakete in der Arduino IDE installieren</p>



<p>Um mit dem ESP32 sprechen zu können, fügen wir zunächst in den Einstellungen unter &#8222;Zusätzliche Boardverwalter-URLs&#8220; folgende URL ein und bestätigen mit OK:</p>



<pre class="wp-block-preformatted">https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json</pre>



<p>Wenn bereits ein Eintrag vorhanden ist, kann der neue Eintrag nach einem Komma erfolgen.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11.png"><img loading="lazy" decoding="async" width="1024" height="680" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-1024x680.png" alt="" class="wp-image-2989" style="width:512px;height:340px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-1024x680.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-300x199.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-768x510.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-1536x1020.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-100x66.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-678x450.png 678w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-1600x1062.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-1180x783.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-650x432.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-680x451.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-375x249.png 375w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-600x398.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11-1320x876.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.34.11.png 1666w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>Anschließend installieren wir das ESP32 Board</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48.png"><img loading="lazy" decoding="async" width="1024" height="783" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-1024x783.png" alt="" class="wp-image-2990" style="width:512px;height:392px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-1024x783.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-300x229.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-768x587.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-100x76.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-589x450.png 589w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-650x497.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-680x520.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48-600x459.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.37.48.png 1062w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06.png"><img loading="lazy" decoding="async" width="1024" height="631" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1024x631.png" alt="" class="wp-image-2988" style="width:512px;height:316px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1024x631.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-300x185.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-768x473.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1536x947.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-100x62.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-700x431.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1600x986.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1180x727.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1680x1035.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-650x401.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-680x419.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-600x370.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06-1320x813.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.38.06.png 1824w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>Sobald dies geschehen ist, gehen wir zur Bibliotheksverwaltung und installieren die folgenden Bibliotheken:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>NimBLE-Arduino</strong>&nbsp;library (Tested working with version 1.4.0)</p>



<p><strong>EspMQTTClient</strong>&nbsp;library (Tested working with version 1.13.3)</p>



<p><strong>ArduinoJson</strong>&nbsp;library (Tested working with version 6.19.4)</p>



<p><strong>CRC32</strong>&nbsp;library (by <strong>Christopher Baker</strong>) (Tested working with version 2.0.0)</p>



<p><strong>ArduinoQueue</strong>&nbsp;library (Tested working with version 1.2.5)</p>
</blockquote>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14.png"><img loading="lazy" decoding="async" width="1024" height="599" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-1024x599.png" alt="" class="wp-image-2991" style="width:512px;height:300px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-1024x599.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-300x175.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-768x449.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-100x58.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-700x409.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-650x380.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-680x398.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14-600x351.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.40.14.png 1098w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<h3 class="wp-block-heading" id="h-schritt-3-anpassung-am-code">Schritt 3 &#8211; Anpassung am Code</h3>



<p>Super! Alle Vorbereitungen sind abgeschlossen. Jetzt können wir den Code anpassen:</p>



<h4 class="wp-block-heading"><strong>Wlan</strong></h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span role="button" tabindex="0" data-code="/* Wifi Settings */
static const char* host = &quot;esp32&quot;;                          //  Unique name for ESP32. The name detected by your router and MQTT. If you are using more then 1 ESPs to control different switchbots be sure to use unique hostnames. Host is the MQTT Client name and is used in MQTT topics
static const char* ssid = &quot;WLAN-NAME&quot;;                           //  WIFI SSID
static const char* password = &quot;WLAN-PASSWORT&quot;;                   //  WIFI Password" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #616E88">/* Wifi Settings */</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">char</span><span style="color: #D8DEE9FF">* host </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">esp32</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                          </span><span style="color: #616E88">//  Unique name for ESP32. The name detected by your router and MQTT. If you are using more then 1 ESPs to control different switchbots be sure to use unique hostnames. Host is the MQTT Client name and is used in MQTT topics</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">char</span><span style="color: #D8DEE9FF">* ssid </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">WLAN-NAME</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                           </span><span style="color: #616E88">//  WIFI SSID</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">char</span><span style="color: #D8DEE9FF">* password </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">WLAN-PASSWORT</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                   </span><span style="color: #616E88">//  WIFI Password</span></span></code></pre></div>



<p>Hier gibst du deinen Wlan-Namen und dein Wlan-Passwort ein.</p>



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



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span role="button" tabindex="0" data-code="/* MQTT Settings */
/* MQTT Client name is set to WIFI host from Wifi Settings*/
static const char* mqtt_host = &quot;MQTT-BROKER-IP&quot;;                       //  MQTT Broker server ip
static const char* mqtt_user = &quot;MQTT-USERNAME&quot;;                         //  MQTT Broker username. If empty or NULL, no authentication will be used
static const char* mqtt_pass = &quot;MQTT-PASSWORT&quot;;                         //  MQTT Broker password
static const int mqtt_port = 1883;                                  //  MQTT Port
static const std::string mqtt_main_topic = &quot;esp-switchbot&quot;;             //  MQTT main topic" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #616E88">/* MQTT Settings */</span></span>
<span class="line"><span style="color: #616E88">/* MQTT Client name is set to WIFI host from Wifi Settings*/</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">char</span><span style="color: #D8DEE9FF">* mqtt_host </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">MQTT-BROKER-IP</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                       </span><span style="color: #616E88">//  MQTT Broker server ip</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">char</span><span style="color: #D8DEE9FF">* mqtt_user </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">MQTT-USERNAME</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                         </span><span style="color: #616E88">//  MQTT Broker username. If empty or NULL, no authentication will be used</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">char</span><span style="color: #D8DEE9FF">* mqtt_pass </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">MQTT-PASSWORT</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                         </span><span style="color: #616E88">//  MQTT Broker password</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">int</span><span style="color: #D8DEE9FF"> mqtt_port </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1883</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">                                  </span><span style="color: #616E88">//  MQTT Port</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">std</span><span style="color: #81A1C1">::string</span><span style="color: #D8DEE9FF"> mqtt_main_topic </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">esp-switchbot</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF">             </span><span style="color: #616E88">//  MQTT main topic</span></span></code></pre></div>



<p>In diesem Segment wird der MQTT Broker eingetragen. Falls dieser mit einem Passwort versehen ist, kann dieses ebenfalls angepasst werden. Achte darauf, dass der richtige Port angegeben ist, da sonst keine Verbindung aufgebaut werden kann.</p>



<p>Im Bereich Topic kann der Pfad angegeben werden, in dem der ESP senden soll. Dieser kann im Zweifelsfall wie voreingestellt belassen werden.</p>



<h4 class="wp-block-heading"><strong>Mac-Adressen</strong></h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span role="button" tabindex="0" data-code="/* Switchbot Curtain Settings */
static const int curtainClosedPosition = 10; // When 2 curtains are controlled (left -&gt; right and right -&gt; left) it's possible one of the curtains pushes one of the switchbots more open. Change this value to set a position where a curtain is still considered closed
static std::map allCurtains = {
{ &quot;curtainone&quot;, &quot;C1:39:13:XX:XX:XX&quot; },
{ &quot;curtaintwo&quot;, &quot;CD:A6:17:XX:XX:XX&quot; }" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #616E88">/* Switchbot Curtain Settings */</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">const</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">int</span><span style="color: #D8DEE9FF"> curtainClosedPosition </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">10</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88">// When 2 curtains are controlled (left -&gt; right and right -&gt; left) it&#39;s possible one of the curtains pushes one of the switchbots more open. Change this value to set a position where a curtain is still considered closed</span></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> std</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF">:</span><span style="color: #D8DEE9">map</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">allCurtains</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #ECEFF4">{</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">curtainone</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">C1:39:13:XX:XX:XX</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">},</span></span>
<span class="line"><span style="color: #ECEFF4">{</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">curtaintwo</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">CD:A6:17:XX:XX:XX</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">}</span></span></code></pre></div>



<p>Nun müssen wir dem ESP noch mitteilen, auf welche Bluetooth-Geräte es hören soll. Dazu müssen wir die MAC Adresse der Switchbot Produkte angeben.</p>



<p>Wenn du sie nicht kennst, kannst du sie in der Switchbot App nachschauen:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1024x768.gif" alt="" class="wp-image-3051" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1024x768.gif 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-300x225.gif 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-768x576.gif 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1536x1152.gif 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-100x75.gif 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-600x450.gif 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1600x1200.gif 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1180x885.gif 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1680x1260.gif 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-650x488.gif 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-680x510.gif 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/untitled-1320x990.gif 1320w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Anschließend wird der Code entsprechend angepasst.</p>



<p>In diesem Beispiel füge ich meine <a data-eafl-id="3010" data-eafl-text="Switchbot-Curtains" href="https://www.amazon.de/SwitchBot-Curtain-Smart-Electric-Motor/" class="eafl-link">Switchbot-Curtains</a> unter &#8222;<em>Switchbot Curtain Settings</em>&#8220; hinzu. </p>



<p>Solltest du ein <a data-eafl-id="3023" data-eafl-text="Switchbot-Switch" href="https://www.amazon.de/SwitchBot-mechanisch-Wippschalter-programmierbar-App-gesteuert/dp/B07B7NXV4R/" class="eafl-link">Switchbot-Switch</a> verwenden musst du die Mac-Adressen in dem Bereich &#8222;<em>Switchbot Bot Settings</em>&#8220; eingeben. </p>



<p>Bei Bedarf kann in der Switchbot App noch ein Gerätepasswort eingegeben werden. So kann verhindert werden, dass Externe deine Geräte steuern können. Dies muss ggf. im Bereich Passwort hinterlegt werden -Switchbot lokal.</p>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/61UXMZkYBGL._AC_SL500_QL70_ML2_.jpg" alt="SwitchBot Smart Curtain Opener- Wireless App Automate Timer Control, Add">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-"					>
					<div class='afxshop-title'>
					SwitchBot Smart Curtain Opener- Wireless App Automate Timer Control, Add SwitchBot Hub, to make it compatible with Alexa, google home, IFTTT, Homekit (Rod2.0 version, White)					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
																																														<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>31. März 2026 16:56</span>
								</p>
			</div>
		</div>
	</div>
	


<h3 class="wp-block-heading" id="h-schritt-4-esp32-flashen">Schritt 4 &#8211; ESP32 flashen</h3>



<p>Sind alle Einstellungen vorgenommen, kann der Code auf das ESP32 geflasht werden. Dazu wird das ESP mit einem Micro-USB-Kabel an den Computer angeschlossen. Anschließend wählen wir unter Werkzeuge die richtigen Einstellungen des Boards aus.</p>



<p>Diese erfahrt ihr von dem Händler, bei dem ihr das ESP32 gekauft habt.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48.png"><img loading="lazy" decoding="async" width="662" height="810" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48.png" alt="" class="wp-image-2987" style="width:331px;height:405px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48.png 662w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48-245x300.png 245w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48-82x100.png 82w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48-368x450.png 368w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48-650x795.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.55.48-600x734.png 600w" sizes="(max-width: 662px) 100vw, 662px" /></a></figure>
</div>


<p>Anschließend kann der Code mit dem Button Hochladen übertragen werden.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.57.07.png"><img loading="lazy" decoding="async" width="628" height="192" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.57.07.png" alt="" class="wp-image-2986" style="width:314px;height:96px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.57.07.png 628w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.57.07-300x92.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.57.07-100x31.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-21.57.07-600x183.png 600w" sizes="(max-width: 628px) 100vw, 628px" /></a></figure>
</div>


<p>Tritt während des Flashens ein Problem auf, wird dies auf der Konsole angezeigt. Mit Hilfe der Fehlercodes und einer Suchmaschine kann das Problem schnell identifiziert und behoben werden.</p>



<h3 class="wp-block-heading" id="h-schritt-5-daten-werden-per-mqtt-ubertragen">Schritt 5 &#8211; Daten werden per MQTT übertragen</h3>



<p>Wenn der Flashvorgang erfolgreich war, sollte sich der ESP32 nun mit dem SwitchBot-MQTT-BLE-ESP32 in das Netzwerk einwählen. Wenn die IP im Browser geöffnet ist, kann hier ein Update für die Zukunft eingespielt werden.</p>



<p>In deiner Smarthome Zentrale sollte das ESP nun die Daten des Switchbot gerätes ausgeben. (In meinem Fall im Ordner MQTT im ioBroker im angegebenen Topic)</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized" id="wp-block-themeisle-blocks-image-adcfb7e2"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12.png"><img loading="lazy" decoding="async" width="1024" height="311" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1024x311.png" alt="" class="wp-image-2985" style="width:512px;height:156px" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1024x311.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-300x91.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-768x233.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1536x467.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-2048x622.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-100x30.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-700x213.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1600x486.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1180x358.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1680x510.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-650x197.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-680x207.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-600x182.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12-1320x401.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-23-um-22.02.12.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>Mit dem Objekt state können die Vorhänge entweder mit einer Zahl (Prozentsatz) oder mit CLOSE bzw. OPEN bewegt werden Switchbot lokal.</p>



<p></p>



<h2 class="wp-block-heading"><strong>Beispiele für Automationen</strong></h2>



<ul class="wp-block-list">
<li>Vorhänge werden mit dem <a href="https://www.amazon.de/SwitchBot-Curtain-Smart-Electric-Motor/" data-eafl-id="3010" data-eafl-text="Switchbot-Curtain" class="eafl-link">Switchbot-Curtain</a> je nach Anwesenheit und Helligkeitswert geschlossen</li>



<li>Mit einem <a data-eafl-id="3023" data-eafl-text="Switchbot-Bot" href="https://www.amazon.de/SwitchBot-mechanisch-Wippschalter-programmierbar-App-gesteuert/dp/B07B7NXV4R/" class="eafl-link">Switchbot-Switch</a> lässt sich die Haustür öffnen nach dem erkannten klingen öffnen, indem der Bot auf die Öffnungstaste drückt</li>
</ul>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/61UXMZkYBGL._AC_SL500_QL70_ML2_.jpg" alt="SwitchBot Smart Curtain Opener- Wireless App Automate Timer Control, Add">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-"					>
					<div class='afxshop-title'>
					SwitchBot Smart Curtain Opener- Wireless App Automate Timer Control, Add SwitchBot Hub, to make it compatible with Alexa, google home, IFTTT, Homekit (Rod2.0 version, White)					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B09Y5ZF81H/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B09Y5ZF81H|SwitchBot Smart Curtain Opener-">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
																																														<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>31. März 2026 16:56</span>
								</p>
			</div>
		</div>
	</div>
	<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/so-gehts-switchbot-lokal-und-ohne-hub-per-mqtt-steuern/">So gehts: Switchbot lokal und ohne Hub per MQTT steuern</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/so-gehts-switchbot-lokal-und-ohne-hub-per-mqtt-steuern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ioBroker &#8211; Netatmo Wetterstation abgreifen für aktuelle, lokale Wetterdaten</title>
		<link>https://sowasvonsmart.de/iobroker-aktuelle-lokale-wetterdaten/</link>
					<comments>https://sowasvonsmart.de/iobroker-aktuelle-lokale-wetterdaten/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:32:00 +0000</pubDate>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Adapter]]></category>
		<category><![CDATA[Server]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=3972</guid>

					<description><![CDATA[<p>Aktuelle Daten wie Temperaturen und Niederschlagsmengen liefern in Deutschland rund 200 Wetterstationen. Diese werden von den Wetterdiensten ausgelesen und ausgewertet. Hier gibt es unzählige Anbieter. Ein Anbieter, Netatmo, ioBroker stellt die Wetterdaten seiner Kunden in einer Karte zur Verfügung. Einige Daten sind daher Hochrechnungen und geben nicht exakt den aktuellen Wert wieder. Abhilfe kann hier [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/iobroker-aktuelle-lokale-wetterdaten/">ioBroker &#8211; Netatmo Wetterstation abgreifen für aktuelle, lokale Wetterdaten</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Aktuelle Daten wie Temperaturen und Niederschlagsmengen liefern in Deutschland rund 200 Wetterstationen. Diese werden von den Wetterdiensten ausgelesen und ausgewertet. Hier gibt es unzählige Anbieter. Ein Anbieter, Netatmo, ioBroker stellt die Wetterdaten seiner Kunden in einer Karte zur Verfügung.</p>



<p>Einige Daten sind daher Hochrechnungen und geben nicht exakt den aktuellen Wert wieder. Abhilfe kann hier eine eigene Wetterstation schaffen.</p>



<p></p>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B0098MGWA8/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B0098MGWA8|Netatmo Smarte Wetterstation -"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/51MahNPZK0L._AC_SL500_QL70_ML2_.jpg" alt="Netatmo Smarte Wetterstation - WLAN, Funk, Innen- und Außensensor, Wettervorhersage,">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B0098MGWA8/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B0098MGWA8|Netatmo Smarte Wetterstation -"					>
					<div class='afxshop-title'>
					Netatmo Smarte Wetterstation &#8211; WLAN, Funk, Innen- und Außensensor, Wettervorhersage, Amazon Alexa &#038; Apple HomeKit, Hygrometer, Luftqualität, NWS01-EC					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B0098MGWA8/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B0098MGWA8|Netatmo Smarte Wetterstation -">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
										119.18 €																		<span class='afxshop-discount'>
										-30%									</span>
																											<span class='afxshop-old-price'>
										169.99 €									</span>
																											<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>2. April 2026 13:09</span>
								</p>
			</div>
		</div>
	</div>
	


<p>Mit Hilfe der Netatmo Wetterstationen können Daten wie Temperatur, Luftfeuchtigkeit, Regenmenge und Windgeschwindigkeit abgelesen werden. Weltweit gibt es in fast jeder Region Wetterstationen, die diese Daten liefern.</p>



<p>Ich zeige dir nun, wie du die Daten einfach auslesen und in deinen ioBroker integrieren kannst. Sodass du im ioBroker aktuelle Wetterdaten bekommst.</p>



<p>Als erstes installieren wir den Netatmo-Crawler Adapter und öffnen anschließend die Einstellungen des Adapters. Nun werden wir aufgefordert, die URL der Station einzugeben.</p>



<p>Dazu öffnen wir die Webseite: <a href="https://weathermap.netatmo.com" target="_blank" rel="noreferrer noopener">https://weathermap.netatmo.com</a></p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz.png"><img loading="lazy" decoding="async" width="1024" height="515" src="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1024x515.png" alt="Netatmo Wetterkarte welche im ioBroker zu aktuellen Wetterdaten bringt" class="wp-image-3987" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1024x515.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-300x151.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-768x386.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1536x773.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-2048x1030.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-100x50.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-700x352.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1600x805.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1180x594.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1680x845.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-650x327.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-680x342.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-600x302.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz-1320x664.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-Ganz.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Auf dieser Karte werden alle Standorte der Netatmo Wetterstationen angezeigt, die netterweise ihre Daten öffentlich teilen.</p>



<p>Hier suchen wir uns nun eine Wetterstation, die möglichst nahe an unserem Standort ist, möglichst viele Werte anbietet und plausible Werte liefert.</p>



<p>Ich hatte zum Beispiel mal eine Station genommen, bei der ein Baum gefällt wurde. Dadurch war der Temperatursensor nicht mehr im Schatten, sondern in der Sonne. Hier sind mir unplausible Werte aufgefallen, sobald keine Wolken am Himmel zu sehen waren.</p>



<p>Haben wir eine Wetterstation gefunden, klicken wir auf <strong>Teilen</strong> -&gt; <strong>Link kopieren</strong>. Dies ist bereits die URL, die wir nun im ioBroker in den Adapter Netatmo-Crawler einfügen.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL.png"><img loading="lazy" decoding="async" width="1024" height="638" src="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-1024x638.png" alt="Netatmo Wetterkarte" class="wp-image-3984" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-1024x638.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-300x187.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-768x479.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-1536x957.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-100x62.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-700x436.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-1600x997.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-1180x736.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-650x405.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-680x424.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-600x374.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL-1320x823.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Weathermap-URL.png 1678w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Es können auch mehrere Stationen gecrawlt werden. Dazu muss jeder Link in eine eigene Zeile eingefügt werden.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter.png"><img loading="lazy" decoding="async" width="1024" height="437" src="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1024x437.png" alt="ioBroker Netatmo Adapter" class="wp-image-3985" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1024x437.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-300x128.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-768x327.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1536x655.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-2048x873.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-100x43.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-700x298.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1600x682.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1180x503.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1680x716.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-650x277.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-680x290.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-600x256.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter-1320x563.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-ioBrokerAdapter.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Standardmäßig erhalten wir dann alle 20 Minuten neue Daten von der Wetterstation in unserer Umgebung.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker.png"><img loading="lazy" decoding="async" width="1024" height="311" src="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1024x311.png" alt="ioBroker Netatmo Adapter - ioBroker aktuelle Wetterdaten" class="wp-image-3996" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1024x311.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-300x91.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-768x233.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1536x466.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-2048x622.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-100x30.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-700x213.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1600x486.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1180x358.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1680x510.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-650x197.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-680x206.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-600x182.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker-1320x401.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Daten-im-Iobroker.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die Abrufhäufigkeit kann mit Hilfe des Cronejobs angepasst werden. Es wird jedoch empfohlen, die Standardeinstellung von 20 Minuten beizubehalten, da es sonst zu Problemen kommen kann. So erhältst du alle 20 Minuten im ioBroker aktuelle Wetterdaten.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob.png"><img loading="lazy" decoding="async" width="1024" height="147" src="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1024x147.png" alt="ioBroker Loglevel" class="wp-image-3986" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1024x147.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-300x43.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-768x110.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1536x221.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-2048x294.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-100x14.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-700x101.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1600x230.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1180x170.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1680x241.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-650x93.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-680x98.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-600x86.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob-1320x190.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/05/Netatmo-Crawler-Cronejob.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>


<div class='afxshop afxshop-box'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B0098MGWA8/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B0098MGWA8|Netatmo Smarte Wetterstation -"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/51MahNPZK0L._AC_SL500_QL70_ML2_.jpg" alt="Netatmo Smarte Wetterstation - WLAN, Funk, Innen- und Außensensor, Wettervorhersage,">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B0098MGWA8/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B0098MGWA8|Netatmo Smarte Wetterstation -"					>
					<div class='afxshop-title'>
					Netatmo Smarte Wetterstation &#8211; WLAN, Funk, Innen- und Außensensor, Wettervorhersage, Amazon Alexa &#038; Apple HomeKit, Hygrometer, Luftqualität, NWS01-EC					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B0098MGWA8/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B0098MGWA8|Netatmo Smarte Wetterstation -">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
										119.18 €																		<span class='afxshop-discount'>
										-30%									</span>
																											<span class='afxshop-old-price'>
										169.99 €									</span>
																											<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>2. April 2026 13:09</span>
								</p>
			</div>
		</div>
	</div>
	<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/iobroker-aktuelle-lokale-wetterdaten/">ioBroker &#8211; Netatmo Wetterstation abgreifen für aktuelle, lokale Wetterdaten</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/iobroker-aktuelle-lokale-wetterdaten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Smarter Gas-/Wasserzähler &#8211; Künstliche Intelligenz macht es möglich</title>
		<link>https://sowasvonsmart.de/smarter-gas-wasserzahler-kunstliche-intelligenz-macht-es-moglich/</link>
					<comments>https://sowasvonsmart.de/smarter-gas-wasserzahler-kunstliche-intelligenz-macht-es-moglich/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:31:59 +0000</pubDate>
				<category><![CDATA[Bastelkammer]]></category>
		<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ioBroker]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=3062</guid>

					<description><![CDATA[<p>Smarter Gas- Da ich mein Smarthome immer mehr mit Daten füttere, um weitere Aktionen auszuführen, bin ich bei der Erfassung von Strom/Gas angekommen. So war es mir wichtig die Verbräuche zu verfolgen, automatisiert zu dokumentieren und mir täglich die Verbräuche zur Verfügung zu stellen. Als erstes habe ich versucht, die Impulse des Gaszählers auszuwerten. Dies [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/smarter-gas-wasserzahler-kunstliche-intelligenz-macht-es-moglich/">Smarter Gas-/Wasserzähler &#8211; Künstliche Intelligenz macht es möglich</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Smarter Gas- Da ich mein Smarthome immer mehr mit Daten füttere, um weitere Aktionen auszuführen, bin ich bei der Erfassung von Strom/Gas angekommen.</p>



<p>So war es mir wichtig die Verbräuche zu verfolgen, automatisiert zu dokumentieren und mir täglich die Verbräuche zur Verfügung zu stellen.</p>






<p>Als erstes habe ich versucht, die Impulse des Gaszählers auszuwerten. Dies ist möglich, da jeder moderne Gaszähler bei jeder Umdrehung einen magnetischen Impuls abgibt.</p>



<p>Ich testete dies mit einem Zigbee-Fensterkontakt. Dieser erwies sich im Betrieb als zuverlässig. Das Problem war jedoch, dass die Impulse verloren gingen, wenn die Smarthome-Zentrale offline war (z.B. bei einem Backup oder einem Stromausfall). Dadurch driftete der tatsächliche Zählerstand vom gespeicherten Zählerstand ab.</p>



<p>Daher suchte ich nach einer Möglichkeit, diese Impulse mit einem ESP zu trocknen. Sollte die Smarthome Zentrale die gesendeten Werte nicht annehmen, würden diese gespeichert werden. Aber auch das hat sich in der Praxis als nicht zuverlässig erwiesen.</p>


<div class='afxshop afxshop-box afxshop-review'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B089MDKBWG/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B089MDKBWG|AZDelivery ESP32 Cam Modul"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/41KoKjDl0HL._SL500_QL70_ML2_.jpg" alt="AZDelivery ESP32 Cam Modul + Bluetooth ESP32 5V Dual Core">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B089MDKBWG/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B089MDKBWG|AZDelivery ESP32 Cam Modul"					>
					<div class='afxshop-title'>
					AZDelivery ESP32 Cam Modul + Bluetooth ESP32 5V Dual Core 32-bit CPU mit 2MP Kamera Entwicklungsboard kompatibel mit Arduino inklusive E-Book!					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B089MDKBWG/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B089MDKBWG|AZDelivery ESP32 Cam Modul">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
										14.99 €																		<span class='afxshop-discount'>
										-9%									</span>
																											<span class='afxshop-old-price'>
										16.49 €									</span>
																											<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>2. April 2026 13:09</span>
								</p>
			</div>
		</div>
	</div>
	


<p>Deshalb zeige ich jetzt den besten und sichersten Weg. Wir ignorieren die Impulse und erfassen den Zählerstand direkt mit einer Kamera. Das aufgenommene Foto wird analysiert und per KI ausgelesen und in Zahlen umgewandelt.</p>



<h2 id="h-ai-on-the-edge-device-smarter-gas" class="wp-block-heading">AI-on-the-edge-device -Smarter Gas</h2>



<p>Das Programm von jomjol auf Github läuft auf einem ESP mit einem Kameramodul.</p>





<figure class="wp-block-image size-large is-resized"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-scaled.jpeg"><img loading="lazy" decoding="async" class="wp-image-3077" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1024x768.jpeg" alt="" width="1024" height="768" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1024x768.jpeg 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-300x225.jpeg 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-768x576.jpeg 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1536x1152.jpeg 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-2048x1536.jpeg 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-100x75.jpeg 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-600x450.jpeg 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1600x1200.jpeg 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1180x885.jpeg 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1680x1260.jpeg 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-650x488.jpeg 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-680x510.jpeg 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-1320x990.jpeg 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8354-scaled.jpeg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 id="h-was-wird-benotigt" class="wp-block-heading">Was wird benötigt</h3>



<p><a data-eafl-id="3086" data-eafl-text="ESP32" href="https://www.amazon.de/gp/product/B089MDKBWG/" class="eafl-link">ESP32</a> mit Kamera-Modul (Ich hatte ein paar ESP ausprobiert. Nur mit diesem hatte ich keine Probleme)</p>



<p><a data-eafl-id="3087" data-eafl-text="USB-Adapter" href="https://www.amazon.de/BerryBase-ESP32-CAM-MB-Schnittstelle-ESP32-CAM-Bluetooth/dp/B0BZWHV65H/" class="eafl-link">USB-Adapter</a> oder <a data-eafl-id="3088" data-eafl-text="affiliate link" href="https://www.amazon.de/AZDelivery-Adapter-FT232RL-Serial-gratis/dp/B01N9RZK6I/" class="eafl-link">FTTI-Adapter</a> (vorzugsweise die USB-Adapter Platine)</p>



<p><a data-eafl-id="3089" data-eafl-text="Jumper-Kabel" href="https://www.amazon.de/Female-Female-Male-Female-Male-Male-Steckbrücken-Drahtbrücken-bunt/dp/B01EV70C78/" class="eafl-link">Jumper-Kabel</a> (wenn der FTTI-Adapter verwendet wird)</p>



<p><a data-eafl-id="3090" data-eafl-text="5V-Netzteil" href="https://www.amazon.de/MEROM-Universelles-Ladekabel-Babyphone-Bluetooth-Lautsprecher/dp/B08QVV8J5T/" class="eafl-link">5V-Netzteil</a> (Zur Stromversorgung)</p>



<p><a href="https://www.amazon.de/SanDisk-microSDHC-Speicherkarte-SD-Adapter-App-Leistung/dp/B08GY9NYRM/" data-eafl-id="3109" data-eafl-text="Micro SD-Karte" class="eafl-link">Micro SD-Karte</a></p>



<p><a href="https://www.thingiverse.com/thing:5224101" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://www.thingiverse.com/thing:5224101">3D-Gehäuse</a></p>



<p>&nbsp;</p>



<h2 id="h-installation" class="wp-block-heading">Installation</h2>



<p>Im Laufe der Zeit ist es den Entwicklern gelungen, die Installation zu vereinfachen. So muss man den ESP32 nur noch richtig verkabeln oder sich diesen Schritt mit einem USB-Modul erleichtern. Der ESP32 muss dann nur noch auf das Modul gesteckt werden und kann sofort mit dem Flashen beginnen.</p>



<p>Da ich dieses Modul nicht habe, habe ich es mit einem <a href="https://www.amazon.de/AZDelivery-Adapter-FT232RL-Serial-gratis/dp/B01N9RZK6I/" data-eafl-id="3088" data-eafl-text="FTTI-Adapter" class="eafl-link">FTTI-Adapter</a> verkabelt.</p>



<p>Nun wechseln wir in den Chrome Browser. Dort rufen wir die Webseite zum <a href="https://jomjol.github.io/AI-on-the-edge-device/index.html" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://jomjol.github.io/AI-on-the-edge-device/index.html">Online-Flasher</a> auf und verbinden der ESP32 mit dem Computer.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53.png"><img loading="lazy" decoding="async" width="1024" height="1016" class="wp-image-3067" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-1024x1016.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-1024x1016.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-300x298.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-150x150.png 150w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-768x762.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-1536x1524.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-100x100.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-453x450.png 453w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-120x120.png 120w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-1209x1200.png 1209w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-1180x1171.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-650x645.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-680x675.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-600x595.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53-1320x1310.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-10.11.53.png 1580w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Nun kann der Button Connect ausgeführt werden. Nach erfolgreicher Verbindung beginnt die Installation.</p>



<h3 class="wp-block-heading">Hardware vorbereiten</h3>



<p>Zuerst müssen wir die Kamera scharf stellen. Das ist der riskanteste Teil. Denn die Kameras der ESP-Module haben einen kleinen Klebepunkt, der den Fokusring an der Kamera fixiert.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-scaled.jpeg"><img loading="lazy" decoding="async" width="1024" height="768" class="wp-image-3078" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1024x768.jpeg" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1024x768.jpeg 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-300x225.jpeg 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-768x576.jpeg 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1536x1152.jpeg 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-2048x1536.jpeg 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-100x75.jpeg 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-600x450.jpeg 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1600x1200.jpeg 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1180x885.jpeg 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1680x1260.jpeg 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-650x488.jpeg 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-680x510.jpeg 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-1320x990.jpeg 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/IMG_8359-scaled.jpeg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Da die Kamera von Haus aus auf größere Entfernungen eingestellt ist, müssen wir diesen Klebepunkt vorsichtig! mit einem scharfen Messer entfernen. Danach können wir den Fokus der Kamera in die Nähe verschieben. Die genaue Einstellung nehmen wir später vor.</p>



<h3 id="h-sd-karte-vorbereiten" class="wp-block-heading">SD-Karte vorbereiten</h3>



<p>Da das Programm noch weitere Daten benötigt, laden wir die Datei AI-on-the-edge-device__manual-setup__vXXXXXX.zip von Github herunter.</p>



<p>Im heruntergeladenen Ordner befindet sich die Datei sd-card.zip. Diese wird nun auf eine <a href="https://www.amazon.de/SanDisk-microSDHC-Speicherkarte-SD-Adapter-App-Leistung/dp/B08GY9NYRM/" data-eafl-id="3109" data-eafl-text="Micro-SD-Karte" class="eafl-link">Micro-SD-Karte</a> kopiert. Anschließend müssen die Wlan-Daten in die wlan.ini eingetragen werden.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43.png"><img loading="lazy" decoding="async" width="1024" height="351" class="wp-image-3096" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-1024x351.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-1024x351.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-300x103.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-768x263.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-100x34.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-700x240.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-1180x405.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-650x223.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-680x233.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-600x206.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43-1320x453.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-12.44.43.png 1476w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<div class="wp-block-kevinbatdorf-code-block-pro" style="font-size: .875rem; font-family: Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; line-height: 1.25rem;" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono">
<pre class="shiki nord" style="background-color: #2e3440ff;" tabindex="0"><code><span class="line"><span style="color: #d8dee9;">ssid</span> <span style="color: #81a1c1;">=</span> <span style="color: #eceff4;">"</span><span style="color: #a3be8c;">DEINE-SSID</span><span style="color: #eceff4;">"</span></span>
<span class="line"><span style="color: #d8dee9;">password</span> <span style="color: #81a1c1;">=</span> <span style="color: #eceff4;">"</span><span style="color: #a3be8c;">DEIN-PASSWORD</span><span style="color: #eceff4;">"</span></span></code></pre>
</div>



<p>&nbsp;</p>



<h3 id="h-esp-an-dem-gaszahler-montieren" class="wp-block-heading">ESP an dem Gaszähler montieren</h3>



<p>Dafür habe ich mir viele 3D-gedruckte Gehäuse angeschaut. Leider hat mich keines überzeugt, da sich der Gaszähler bei mir in einer kleinen Nische in der Wohnung befindet, wo auch der Staubsauger und andere Reinigungsutensilien stehen. Die Gehäuse sind zu groß, da der ESP frontal auf den Zähler schaut. Durch Zufall bin ich auf <a href="https://www.thingiverse.com/thing:5224101" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://www.thingiverse.com/thing:5224101">dieses Gehäuse</a> gestoßen. Es ist viel kompakter und der ESP kann auf der Oberseite montiert werden, da innen ein Spiegel aufgeklebt ist, der um die Ecke schaut.</p>



<p>Ich habe das Gehäuse in weiß gedruckt. Auf dem ESP32 befindet sich ein Blitz, der ausgelöst wird, wenn der Zählerstand fotografiert wird. Dies scheint durch das weiße Gehäuse durch. Da ich es schon bedruckt hatte, habe ich es von innen mit schwarzer Farbe besprüht.</p>



<p>So leuchtet das Gehäuse nicht mehr im Dunkeln und der Kontrast ist besser.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2.png"><img loading="lazy" decoding="async" width="1024" height="908" class="wp-image-3079" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1024x908.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1024x908.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-300x266.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-768x681.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1536x1362.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-2048x1816.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-100x89.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-508x450.png 508w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1353x1200.png 1353w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1180x1046.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1680x1490.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-650x576.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-680x603.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-600x532.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2-1320x1170.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Ohne-Titel-2.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 id="h-einrichtung" class="wp-block-heading">Einrichtung</h3>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42.png"><img loading="lazy" decoding="async" width="1024" height="951" class="wp-image-3070" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1024x951.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1024x951.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-300x278.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-768x713.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1536x1426.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-2048x1901.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-100x93.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-485x450.png 485w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1293x1200.png 1293w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1180x1095.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1680x1560.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-650x603.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-680x631.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-600x557.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42-1320x1225.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-00.21.42.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Sobald der EPS32 mit Strom versorgt wird, kann mit der Konfiguration über die IP-Adresse begonnen werden. Dabei ist es wichtig, dass der EPS32 fest mit dem Gaszähler verbunden ist und sich nicht mehr bewegen kann.</p>



<h3 id="h-referenzbild" class="wp-block-heading"><strong>Referenzbild</strong></h3>



<p>Die Installationsschritte sind einfach und mit Erklärungen versehen. Der erste Schritt ist die Erstellung eines Referenzbildes. Dazu wählen wir &#8222;Create New Reference&#8220;. Mit den jeweiligen Punkten &#8222;Mirror Image&#8220;, &#8222;Pre-Rotate Angle&#8220;, &#8222;Bringhtness&#8220; und &#8222;LEDIntensity&#8220; kann das Bild gerade ausgerichtet und im Kontrast verstärkt werden.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52.png"><img loading="lazy" decoding="async" width="1024" height="914" class="wp-image-3071" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-1024x914.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-1024x914.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-300x268.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-768x686.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-100x89.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-504x450.png 504w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-1344x1200.png 1344w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-1180x1053.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-650x580.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-680x607.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-600x536.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52-1320x1178.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.39.52.png 1360w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 id="h-referenzpunkte" class="wp-block-heading"><strong>Referenzpunkte</strong></h3>



<p>Anschließend fragt das AI-on-the-edge-Gerät nach Referenzpunkten. Anhand dieser Referenzpunkte wird das aufgenommene Bild ausgerichtet. Hier empfehle ich zwei Punkte zu nehmen, die entweder am oberen und unteren Rand oder schräg versetzt liegen. In meinem Beispiel nehme ich die Zahl 2019 und auf der rechten Seite die m3.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51.png"><img loading="lazy" decoding="async" width="969" height="1024" class="wp-image-3072" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-969x1024.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-969x1024.png 969w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-284x300.png 284w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-768x812.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-95x100.png 95w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-426x450.png 426w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-1135x1200.png 1135w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-1180x1247.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-650x687.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-680x719.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-600x634.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51-1320x1395.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.42.51.png 1332w" sizes="(max-width: 969px) 100vw, 969px" /></a></figure>



<p>Über die Select Reference Auswahl kann zwischen den Punkten gewählt werden. Vergessen Sie nicht, dies mit dem Update Button zu bestätigen und zu speichern.</p>



<h3 id="h-digitale-werte" class="wp-block-heading"><strong>Digitale Werte</strong></h3>



<p>Im nächsten Schritt erstellen wir die einzelnen Bereiche der zu lesenden Zahlen. Zuerst wählen wir die erste Zahl aus. Dazu muss sich die Zahl vollständig in dem kleinen Kästchen befinden. Nimm dir dafür viel Zeit. Je genauer, desto besser.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04.png"><img loading="lazy" decoding="async" width="1024" height="788" class="wp-image-3073" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1024x788.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1024x788.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-300x231.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-768x591.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1536x1183.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-100x77.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-585x450.png 585w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1559x1200.png 1559w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1180x908.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1680x1293.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-650x500.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-680x524.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-600x462.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04-1320x1016.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-09.49.04.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Weitere Zahlen können über &#8222;Neue ROI&#8220; erstellt werden. Wenn die Zahlen nicht perfekt aneinander liegen, deaktiviere die Checkbox Synchronize. So kannst du die Zahlen einzeln in Größe und Position verschieben.</p>



<h3 id="h-analoge-werte" class="wp-block-heading"><strong>Analoge Werte</strong></h3>



<p>Im nächsten Schritt können noch analoge Zähler (z.B. auf Wasseruhren) angelegt werden. Da mein Gaszähler dies nicht hat, wähle ich diese nicht aus.</p>



<p>Nach diesem Schritt startet der ESP32 neu.</p>



<h2 id="h-konfiguration-uberprufen" class="wp-block-heading"><strong><span style="vertical-align: inherit;"><span style="vertical-align: inherit;">Konfiguration überprüfen</span></span></strong></h2>



<p>Jetzt heißt es warten. In der Standardkonfiguration erstellt das Programm alle 5 Minuten ein neues Bild und analysiert es. Warte lieber ein paar Minuten länger. Dein Zählerstand sollte nun erkannt und in Text (Zahlen) umgewandelt werden. Sollte dies nicht der Fall sein, kann die Konfiguration über den Reiter Settings nochmals angepasst werden.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06.png"><img loading="lazy" decoding="async" width="1024" height="784" class="wp-image-3074" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1024x784.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1024x784.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-300x230.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-768x588.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1536x1176.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-2048x1568.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-100x77.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-588x450.png 588w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1567x1200.png 1567w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1180x904.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1680x1287.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-650x498.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-680x521.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-600x459.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06-1320x1011.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.06.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 id="h-weitere-einstellungen" class="wp-block-heading"><strong><span style="vertical-align: inherit;"><span style="vertical-align: inherit;">Weitere Einstellungen</span></span></strong></h3>



<p>Im letzten Schritt gehen wir nun auf Settings &gt; Configuartion.</p>



<p>Den Punkt Decimal Shift stelle ich auf &#8222;-2&#8220;, da ich zwei Nachkommastellen auslesen möchte (dig5 und dig6).</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09.png"><img loading="lazy" decoding="async" width="1024" height="482" class="wp-image-3075" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1024x482.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1024x482.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-300x141.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-768x362.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1536x723.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-100x47.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-700x330.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1600x754.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1180x556.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1680x791.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-650x306.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-680x320.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-600x283.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09-1320x622.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.04.09.png 1962w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Im Bereich MQTT trage ich meinen MQTT-Broker und ggf. die Anmeldedaten ein.</p>



<h2 id="h-integration-im-iobroker" class="wp-block-heading">Integration im ioBroker</h2>



<p>Nach einem Neustart von AI-on-the-edge-device überträgt dieser tolle Helfer alle 5 Minuten die Werte per MQTT an meinen ioBroker. Zuverlässig und immer genau. Für mich also die beste Lösung, um einen Wasser- oder Gaszähler auszulesen!</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1.png"><img loading="lazy" decoding="async" width="1024" height="438" class="wp-image-3098" src="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1024x438.png" alt="" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1024x438.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-300x128.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-768x329.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1536x657.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-2048x876.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-100x43.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-700x300.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1600x685.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1180x505.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1680x719.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-650x278.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-680x291.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-600x257.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1-1320x565.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/04/Bildschirmfoto-2023-04-27-um-11.22.32-1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>


<div class='afxshop afxshop-box afxshop-review'>
		<ul class='afxshop-list'>
							<li class='afxshop-item ' tabindex=0
			>
			
			<div class='afxshop-header' 
			>				
				<a 
									href="https://www.amazon.de/dp/B089MDKBWG/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				   data-amzn="B089MDKBWG|AZDelivery ESP32 Cam Modul"					>
								<div class='afxshop-image'>
					<img decoding="async" src="https://m.media-amazon.com/images/I/41KoKjDl0HL._SL500_QL70_ML2_.jpg" alt="AZDelivery ESP32 Cam Modul + Bluetooth ESP32 5V Dual Core">
									</div>
				

				</a>
			</div>
			<div class='afxshop-content' 
			>
				<a 
									href="https://www.amazon.de/dp/B089MDKBWG/?tag=svs0fa-21" target="_blank" rel="nofollow noopener" 				    data-amzn="B089MDKBWG|AZDelivery ESP32 Cam Modul"					>
					<div class='afxshop-title'>
					AZDelivery ESP32 Cam Modul + Bluetooth ESP32 5V Dual Core 32-bit CPU mit 2MP Kamera Entwicklungsboard kompatibel mit Arduino inklusive E-Book!					</div>
					
										
									</a>
			</div>		
			<div class='afxshop-side'>
								<div class='afxshop-offer
										' 
					 >
					<a 
											 href="https://www.amazon.de/dp/B089MDKBWG/?tag=svs0fa-21" target="_blank" rel="nofollow noopener"
																 data-amzn="B089MDKBWG|AZDelivery ESP32 Cam Modul">
						<div class="afxshop-wrap afx-flat">
							
														<div class='afxshop-details'>
																  
								<span class='afxshop-price' 
								>
										14.99 €																		<span class='afxshop-discount'>
										-9%									</span>
																											<span class='afxshop-old-price'>
										16.49 €									</span>
																											<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='#fff' class='afx-chevron-right' viewBox='0 0 16 16'>
									  <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
									</svg>
								</span>

															</div>
														
														<div class='afxshop-btn'>
								<div class='afxshop-button' data-cta="Auf Amazon anschauen">
								</div>
							</div>
													</div>
					</a>
				</div>
												
								
			</div>
		</li>
				</ul>
</div>
		<div class="afxshop-mentions">
		<div class="afx-tooltip">
			<span>
				<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245.334 245.334" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 245.334 245.334">
				  <g>
					<path d="M122.667,0C55.028,0,0,55.028,0,122.667s55.027,122.667,122.666,122.667s122.667-55.028,122.667-122.667   S190.305,0,122.667,0z M122.667,215.334C71.57,215.334,30,173.764,30,122.667S71.57,30,122.667,30s92.667,41.57,92.667,92.667   S173.763,215.334,122.667,215.334z" fill="#555"/>
					<rect width="30" x="107.667" y="109.167" height="79" fill="#555"/>
					<rect width="30" x="107.667" y="57.167" height="29" fill="#555"/>
				  </g>
				</svg>
			</span>
			<div class="afx-bottom">
				<div class="mtn_close"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2716.png" alt="✖" class="wp-smiley" style="height: 1em; max-height: 1em;" /></div>
				<p class="mtn_content">
								<br><span>2. April 2026 13:09</span>
								</p>
			</div>
		</div>
	</div>
	<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/smarter-gas-wasserzahler-kunstliche-intelligenz-macht-es-moglich/">Smarter Gas-/Wasserzähler &#8211; Künstliche Intelligenz macht es möglich</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/smarter-gas-wasserzahler-kunstliche-intelligenz-macht-es-moglich/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ioBroker Fehler: Wenn keine Adapter mehr gefunden werden</title>
		<link>https://sowasvonsmart.de/iobroker-fehler-wenn-keine-adapter-mehr-gefunden-werden/</link>
					<comments>https://sowasvonsmart.de/iobroker-fehler-wenn-keine-adapter-mehr-gefunden-werden/#respond</comments>
		
		<dc:creator><![CDATA[sowasvonsmart]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:31:59 +0000</pubDate>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[ioBroker]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://sowasvonsmart.de/?p=4066</guid>

					<description><![CDATA[<p>Nach dem Einspielen eines Backups hatte ich ein ioBroker Fehler. Ich wollte einen neuen Adapter einspielen. Allerdings konnte ich diesen bei der Suche im ioBroker nicht finden. Was mich auch wunderte war, dass die Zusammenfassung im Adapter Tab folgendes anzeigte: Die Anzahl der ausgewählten Adapter entsprach der Anzahl der installierten Adapter. Außerdem war der Stern-Button [&#8230;]</p>
<p>Der Beitrag <a href="https://sowasvonsmart.de/iobroker-fehler-wenn-keine-adapter-mehr-gefunden-werden/">ioBroker Fehler: Wenn keine Adapter mehr gefunden werden</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Nach dem Einspielen eines Backups hatte ich ein ioBroker Fehler. Ich wollte einen neuen Adapter einspielen. Allerdings konnte ich diesen bei der Suche im ioBroker nicht finden.</p>



<p>Was mich auch wunderte war, dass die Zusammenfassung im Adapter Tab folgendes anzeigte:</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter.png"><img loading="lazy" decoding="async" width="1024" height="219" src="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1024x219.png" alt="iobroker Adapterliste" class="wp-image-4068" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1024x219.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-300x64.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-768x164.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1536x329.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-2048x438.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-100x21.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-700x150.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1600x342.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1180x252.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1680x359.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-650x139.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-680x145.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-600x128.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter-1320x282.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Adapter.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die Anzahl der ausgewählten Adapter entsprach der Anzahl der installierten <a href="https://en.wikipedia.org/wiki/Adapter#:~:text=An%20adapter%20or%20adaptor%20is,of%20one%20connector%20to%20another.">Adapter</a>. Außerdem war der Stern-Button (&#8222;Nur installierte Adapter anzeigen&#8220;) nicht aktiv.</p>



<p>Als erstes habe ich folgendes versucht um den ioBroker Fehler zu beseitigen:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="iobroker stop
iobroker fix
iobroker update
iobroker upgrade
iobroker start" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">stop</span></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">fix</span></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">update</span></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">upgrade</span></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">start</span></span></code></pre></div>



<p>Der iobroker fix, welcher ioBroker Fehler beheben kann, brachte leider kein Ergebnis. Ich habe dann einen weiteren Blick in die Einstellungen des ioBroker geworfen. Hier waren unter dem Reiter Repository keine Quellen mehr zu finden.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository.png"><img loading="lazy" decoding="async" width="1024" height="255" src="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1024x255.png" alt="iobroker fehler" class="wp-image-4069" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1024x255.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-300x75.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-768x191.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1536x383.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-2048x510.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-100x25.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-700x174.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1600x399.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1180x294.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1680x419.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-650x162.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-680x169.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-600x150.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository-1320x329.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Keine-repository.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Eine manuelle Erstellung der Quellen für die Adapterinstallation konnte nicht gespeichert werden. Nach dem Speichern waren die Quellen sofort wieder verschwunden.</p>



<p>Was mir geholfen hat:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="iobroker stop
iobroker setup first
iobroker start
iobroker repo list" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">stop</span></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">setup</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">first</span></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">start</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9">iobroker</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">repo</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">list</span></span></code></pre></div>



<p>Mit dem Befehl &#8222;iobroker setup first&#8220; werden die Konfigurationen neu erstellt. Bestehende werden jedoch nicht überschrieben.</p>



<p>Nach dem Start des iobroker sind die Quellen wieder verfügbar und alle Adapter werden wieder gefunden. Der ioBroker Fehler wurde beseitigt. Im Terminal kann mit &#8222;iobroker repo List&#8220; überprüft werden, welche Quellen der ioBroker abruft.</p>



<figure class="wp-block-image size-large"><a href="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1.png"><img loading="lazy" decoding="async" width="1024" height="216" src="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1024x216.png" alt="iobroker Standart Repo " class="wp-image-4071" srcset="https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1024x216.png 1024w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-300x63.png 300w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-768x162.png 768w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1536x325.png 1536w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-2048x433.png 2048w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-100x21.png 100w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-700x148.png 700w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1600x338.png 1600w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1180x249.png 1180w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1680x355.png 1680w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-650x137.png 650w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-680x144.png 680w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-600x127.png 600w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1-1320x279.png 1320w, https://sowasvonsmart.de/wp-content/uploads/2023/06/ioBroker-Repository-1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
<div style='text-align:center' class='yasr-auto-insert-visitor'></div><p>Der Beitrag <a href="https://sowasvonsmart.de/iobroker-fehler-wenn-keine-adapter-mehr-gefunden-werden/">ioBroker Fehler: Wenn keine Adapter mehr gefunden werden</a> erschien zuerst auf <a href="https://sowasvonsmart.de">Sowas von Smart</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sowasvonsmart.de/iobroker-fehler-wenn-keine-adapter-mehr-gefunden-werden/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

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk

Served from: sowasvonsmart.de @ 2026-04-02 13:09:38 by W3 Total Cache
-->