<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Stromzähler on Jonatan Miarecki</title><link>https://miarecki.eu/de/tags/stromz%C3%A4hler/</link><description>The latest posts on Jonatan Miarecki</description><language>de-de</language><managingEditor>jonatan@miarecki.eu (Jonatan Miarecki)</managingEditor><webMaster>jonatan@miarecki.eu (Jonatan Miarecki)</webMaster><lastBuildDate>Wed, 08 Apr 2026 02:29:51 +0200</lastBuildDate><atom:link href="https://miarecki.eu/de/tags/stromz%C3%A4hler/index.xml" rel="self" type="application/rss+xml"/><item><title>Smart Message Language Stromzähler auslesen</title><link>https://miarecki.eu/de/posts/ha-sml-stromzaehler/</link><pubDate>Mon, 27 Nov 2023 21:01:33 +0100</pubDate><author>jonatan@miarecki.eu (Jonatan Miarecki)</author><guid>https://miarecki.eu/de/posts/ha-sml-stromzaehler/</guid><description>In diesem Projekt geht es um das Auslesen eines Stromzählers mittels der SML-Schnittstelle und einem IR-Lesekopf für die lokale Hausautomatisierung.</description><content:encoded> 
&lt;figure class="entry-cover">
        &lt;img loading="lazy" srcset='https://miarecki.eu/de/posts/ha-sml-stromzaehler/SML-Reader-DE_hu_cda41e1f87ae99d1.jpg 360w,https://miarecki.eu/de/posts/ha-sml-stromzaehler/SML-Reader-DE_hu_28ce691c2403c0e0.jpg 480w,https://miarecki.eu/de/posts/ha-sml-stromzaehler/SML-Reader-DE_hu_c3613aedbdad9bd8.jpg 720w,https://miarecki.eu/de/posts/ha-sml-stromzaehler/SML-Reader-DE_hu_b1594908207d081f.jpg 1080w,https://miarecki.eu/de/posts/ha-sml-stromzaehler/SML-Reader-DE.jpg 1200w' src="https://miarecki.eu/de/posts/ha-sml-stromzaehler/SML-Reader-DE.jpg"
            sizes="(min-width: 768px) 720px, 100vw" width="1200" height="1084"
            alt="Ein Aufbau des Projektes, welches die Verkabelung zwischen dem W5500-EVB-Pico und dem IR-Lesekopf zeigt, welches den Stromzähler ausliest.">
&lt;/figure>
<![CDATA[<p>Die stetige Entwicklung im Bereich der Hausautomatisierung eröffnet immer neue Möglichkeiten, um den Energieverbrauch in unseren Häusern effizient zu steuern. Ein entscheidender Schritt in diese Richtung ist das Auslesen von Daten aus intelligenten Stromzählern, die den Smart Message Language verwenden, um detaillierte Einblicke in den Energieverbrauch zu gewinnen. Genau deswegen habe ich &ldquo;<dfn title="Smart Message Language">SML</dfn>-Reader&rdquo; erstellt, um die Smart Message Language Daten auszulesen und diese dann an Smart Home Systeme, wie z.B Home Assistant mittels MQTT zu senden.</p>
<h2 id="warum-dieses-projekt">Warum dieses Projekt?</h2>
<p>Die Idee für dieses Projekt entstand aus den vorhandenen Materialien. Mit einem bereits verfügbaren W5500-EVB-Pico und der Notwendigkeit einer zuverlässigen Ethernet-Verbindung im Keller, in dem das WLAN schwach ist, wurde die Motivation für die Umsetzung des Smart Message Language-Readers geboren. Der W5500-EVB-Pico, ein kostengünstiges und einfach zu verwendendes Microcontroller-Board mit Ethernet-Port, bietet die perfekte Basis für dieses Vorhaben. Darüber hinaus verfügt es über zwei Hardware-Serials, die sowohl die Verbindung zum Computer als auch zum Infrarot-Lesekopf ermöglichen.</p>
<p>Die Schwierigkeiten bei der Suche nach passender Software mit Ethernet-Unterstützung für den RP2040-Chip (der im EVB-Pico verwendet wird) verstärkten den Wunsch, eine maßgeschneiderte Lösung zu entwickeln. Z.b Tasmota oder Tasmota ist noch nicht für den RP2040-Chip mit dem W5500 verfügbar.</p>
<p>Ein weiteres Hindernis war das Ermitteln der <dfn title="Object Identification System">OBIS</dfn>-Codes, die je nach Smart Meter und Konfiguration variieren. Jedoch mittels des Programmes lässt sich dieses leicht herausfinden.</p>
<p>Dieses Projekt wurde durch die Smart Message Language ermöglicht, welche ein Standard für die Übertragung von Energieverbrauchsdaten ist. Die SML wird in Deutschland für die Kommunikation zwischen intelligenten Stromzählern und dem Smart Meter Gateway verwendet. Die SML wird auch in anderen Ländern, wie z.B Österreich, Schweiz und Niederlande verwendet.</p>
<h2 id="projektdetails">Projektdetails</h2>
<h3 id="unterstützte-smart-meter">Unterstützte Smart Meter</h3>
<p>Der SML-Reader ist kompatibel mit allen Smart Metern, die das SML-Protokoll unterstützen. Ich testete das System erfolgreich mit dem <a href="https://www.apator.com/de/produkte/strom/strommessung/moderne-messeinrichtung/picus">Apator PICUS</a>. Die angezeigten Daten hängen von den Funktionen ab, die im Smart Meter unterstützt und konfiguriert sind. Unter Umständen müssen bestimmte Einstellungen am Meter vorgenommen werden, wie das Deaktivieren der PIN oder das Aktivieren von erweiterten Betriebsarten (InF). Manche Daten brauchen auch die manuelle Aktivation durch die LMN-Schnittstelle durch den Netzbetreiber.</p>
<p>Weitere OBIS codes können durch die bearbeitung der OBIS-Handler liste hinzugefügt werden.</p>
<h3 id="hardware-und-software">Hardware und Software</h3>
<ul>
<li><a href="https://docs.wiznet.io/Product/iEthernet/W5500/w5500-evb-pico">W5500-EVB-Pico Microcontroller-Board</a></li>
<li>SML-Kompatibler Stromzähler</li>
<li>Ethernet Kabel und Anschluss</li>
<li>Stromanschluss</li>
<li>MQTT Server</li>
<li><a href="https://platformio.org/">PlatformIO</a> IDE</li>
<li><a href="https://github.com/JonatanMGit/SML-Reader">SML-Reader</a> Projekt</li>
</ul>
<h3 id="konfiguration-des-sml-readers">Konfiguration des SML-Readers</h3>
<p>Bearbeiten Sie die <code>config.h</code>-Datei im SML-Reader-Projekt, um die Verbindungsinformationen für Ihren MQTT-Server einzugeben. Hier legen Sie die MQTT Login-Daten ein. Weiter einstellungen, wie z.B eine statische IP-Adresse oder weitere OBIS-Codes, kann man in main.cpp vornehmen.</p>
<p>Nach dem Speichern der Konfigurationsdatei können Sie den SML-Reader neu flashen, um die Änderungen zu übernehmen. Die Konfigurationsdatei wird dabei beim Flashen gespeichert. Eine dynamische Konfiguration über die Web-Oberfläche ist in Arbeit.</p>
<p>Auch der Lesekopf muss korrekt angeschlossen werden. Die Anschlüsse sind bei dem W5500-EVB-Pico Board standardmäßig wie folgt:</p>
<ul>
<li>TX: GPIO04</li>
<li>RX: GPIO05</li>
<li>GND: GND</li>
<li>VCC: 3V3</li>
</ul>
<p>So sollte der Aufbau aussehen:
<figure>
    <img loading="lazy" src="/de/posts/ha-sml-stromzaehler/SML-Reader-Ger.svg"
         alt="Diagramm des Aufbaus des SML-Readers, der die verbindung zwischen dem W5500-EVB-Pico und dem IR-Lesekopf zeigt. Die Pins sind hierbei die vorher genannten Pins." width="100%"/> <figcaption>
            Diagramm des Aufbaus des SML-Readers
        </figcaption>
</figure>
</p>
<p>Diese Anschlüsse stammen von der zweiten Hardware-Serial des RP2040-Chips. Die erste Hardware-Serial wird für die Verbindung zum Computer verwendet. Die zweite Hardware-Serial wird für die Verbindung zum Lesekopf verwendet (UART0/UART1 und UART2)</p>
<h3 id="flashen-des-sml-readers-mit-platformio-in-vscode">Flashen des SML-Readers mit PlatformIO in VSCode</h3>
<!--https://github.com/JonatanMGit/SML-Reader-->
<ol>
<li>Installieren Sie PlatformIO in VSCode</li>
<li>Klonen Sie das <a href="https://github.com/JonatanMGit/SML-Reader">SML-Reader</a> Projekt</li>
<li>Öffnen Sie das Projekt in VSCode. Dort sollte PlatformIO die Möglichkeit das Projekt zu bauen direkt sehen (Upload)</li>
<li>Nach dem Kompilieren und Hochladen kann der Leser jetzt an den Stromzähler vebrunden werden</li>
</ol>
<p>Falls Probleme beim Flaschen stattfinden, kann man auch manuall die UF2 Dateien auf das Gerät kopieren (Halte dabei Bootsel gedrückt)</p>
<p>Nach dem erfolgreichen Flashen sollte der SML-Reader die Daten vom Stromzähler empfangen und diese dann an den MQTT Server senden.</p>
<h2 id="einlesen-der-mqtt-daten-in-home-assistant">Einlesen der MQTT Daten in Home Assistant</h2>
<p>Das Gerät sollte jetzt automatisch die Daten an den MQTT Server senden. Mittels <a href="https://www.home-assistant.io/integrations/mqtt#discovery-options">MQTT Discovery</a> werden die Sensoren automatisch in Home Assistant erstellt. Die Sensoren können dann in Home Assistant verwendet werden. Falls dies nicht passiert, kann mann immer manuell die Messwerte in Home Assistant durch die config.yaml einfügen.</p>
<p>Die Daten werden unter <code>homeassistant/sensor/w5500-evb-pico/&lt;Name-des-Wertes&gt;/state</code> gesendet, falls man es auch in andere Systeme einbinden möchte.</p>
<h2 id="web-oberfläche">Web-Oberfläche</h2>
<p>Das Projekt verfügt über eine Web-Oberfläche, die es ermöglicht, die gelesenen Daten des Stromzählers anzuzeigen. Die Oberfläche ist über die IP-Adresse or durch den mDNS-Namen des SML-Readers erreichbar. Die angezeigten Daten hängen von den Funktionen ab, die im Smart Meter unterstützt und konfiguriert sind.</p>
<h2 id="fazit">Fazit</h2>
<p>Das Projekt ist eine kostengünstige und einfache Lösung, um die SML-Daten aus einem Smart Meter auszulesen und diese dann an Smart Home Systeme, wie z.B Home Assistant mittels MQTT zu senden. Die Verwendung des W5500-EVB-Pico ermöglicht eine zuverlässige Ethernet-Verbindung, die für die lokale Hausautomatisierung von Vorteil ist. Die Web-Oberfläche bietet eine einfache Möglichkeit, die Daten des Stromzählers anzuzeigen. Die Verwendung von PlatformIO ermöglicht eine einfache Installation und Konfiguration des Projekts.</p>
<h3 id="weitere-informationen">Weitere Informationen</h3>
<p>Vielen Dank an die <a href="https://github.com/olliiiver/sml_parser">SML Parser</a> Biblothek welches die Grundlage für dieses Projekt bildet.</p>
<p>Mehr Infos zu SML: <a href="https://de.wikipedia.org/wiki/Smart_Message_Language">SML-Protokoll</a></p>
<p>Mehr Infos zu den OBIS-Codes: <a href="https://de.wikipedia.org/wiki/OBIS-Kennzahlen">OBIS-Codes</a></p>
]]></content:encoded></item></channel></rss>