Stromzähler auslesen

In meinem Hausanschlusskasten ist ein ‘smarter Stromzähler’ vom Typ MT 175 des slowenischen Herstellers Iskraemeco verbaut. Ich besitze also eine moderne Messeinrichtung (mMe), wie man auf Neudeutsch sagt. Der Zähler hat eine optische Infrarotschnittstelle nach DIN EN 62056-21. Auf dieser Schnittstelle stellt der Zähler das Smart Meter Language (SML) Protokoll zur Verfügung. Der Zähler hat also ideale Voraussetzungen um ihn in mein Smart Home einzubinden.

MT 175

Das Bild oben ist schon etwas älter, inzwischen bin ich mit meinen verbrauchten Kilowattstunden fünfstellig. Bei der Suche nach Informationen, wie man einen Stromzähler entsprechend einbindet, bin ich schnell auf der Seite volkszaehler.org gelandet. Hier gibt es ein Wiki mit sehr viel Lesestoff, gerade die Grundlagen sind gut beschrieben.

Lesekopf + Wemos D1 mini

Ich habe mich für einen TTL-Lesekopf entschieden. die Bauanleitung findet man im Wiki unter IR-Schreib-Lesekopf-TTL-Ausgang. Ich bin allerdings den einfachen Weg gegangen, und habe mir den Lesekopf fertig zusammengebaut von Bitshake auf Amazon gekauft. Der Kopf hat einen Neodym-Magneten verbaut, mit dem man den Lesekopf an der vorgesehenen Stelle am Stromzähler befestigen kann.

Man man den Lesekopf auch fertig im Bundle mit einem vorgeflashten Wemos D1 mini bekommen. Der Wemos ist dann mit Tasmota geflasht. Ich setze bei der Firmware allerdings auf ESP Home.

Schaltung

Der Lesekopf kann mit Signalpegeln zwischen 3V und 5V umgehen. Je nachdem, ob man VCC mit 3,3V oder mit 5V beteiben möchte. Die Wemos Ein-/Ausgabe-Pins arbeiten mit 3,3V. Meine Verkabelung sieht so aus:

  • Lesekopf VCC - Wemos Pin 3V3
  • Lesekopf GND - Wemos Pin G
  • Lesekopf TX - Wemos Pin D2 (GPIO4, RX-Pin in der Konfig)
  • Lesekopf RX - nicht verdrahtet / konfiguriert

Als Spannungsversorgung dient ein altes Handy-Netzteil, welches direkt an die Micro-USB-B-Buchse des Wemos angeschlossen wird.

OBIS Kennzahlen

Die OBIS-Kennzahlen geben die Datenpunkte an, die der Zähler an seiner Schnittstelle ausgibt. Ohne die PIN werden nur wenige Datenpunkte über die Schnittstelle ausgegeben. Mein Stromzähler gibt folgende Daten aus:

Kennzahl Beschreibung Einheit
1-0:1.8.0 Stromzählerstand Bezug Summe kWh
1-0:1.8.1 Stromzählerstand Bezug Tarif 1 kWh
1-0:1.8.2 Stromzählerstand Bezug Tarif 2 kWh
129-129:199.130.3 Hersteller
129-129:199.130.5 Public Key

Mit der PIN würde der Zähler auch noch die momentane Leistung ausgeben. Eine Übersicht der Datenpunkte die der MT 175 findet man im Wiki auf Volkszaehler.org.

ESP Home

Um für selbstgebaute IOT-Komponenten eine Firmware zu erstellen und sie auf den ESP8266 zu flashen, ist bisher ESP Home meine erste Wahl. Ich benutze im Moment die Version 2025.7.1 in einem Docker Container. Der zu flashende ESP8266 sitzt auf einem entsprechenden Board, dass via USB mit dem Computer verbunden wird. Bei mir ist das meistens ist das ein Wemos D1 mini. Das erste Flashen erfolgt noch kabelgebunden. Weitere Änderungen können dann über ein OTA-Update erfolgen.

Auf den ESP Home Seiten findet man gute Beschreibungen zu den Themen SML und UART. Meine daraus entstandene Konfiguationsdatei sieht so aus:

 1esphome:
 2  name: stromzahler
 3  friendly_name: Stromzähler
 4
 5esp8266:
 6  board: d1_mini
 7
 8# Enable logging
 9logger:
10
11# Enable Home Assistant API
12api:
13
14ota:
15  - platform: esphome
16    password: "123456789"
17
18wifi:
19  networks:
20    - ssid: !secret ssid
21      password: !secret password
22    
23  manual_ip:
24    static_ip: 192.168.1.3
25    gateway: 192.168.1.1
26    subnet: 255.255.255.0
27    dns1: 192.168.1.1
28
29#captive_portal:
30uart:
31  id: uart_bus
32  rx_pin: GPIO4
33  baud_rate: 9600
34  data_bits: 8
35  parity: NONE
36  stop_bits: 1
37
38sml:
39  id: mysml
40  uart_id: uart_bus
41
42sensor:
43
44  - platform: sml
45    name: "Zahlerstand"
46    sml_id: mysml
47    server_id: !secret stromzahler_server_id
48    obis_code: "1-0:1.8.0"
49    unit_of_measurement: kWh
50    device_class: energy
51    state_class: total_increasing

Mein Lesekopf lief nicht gleich auf Anhieb. Ich hatte meinen Lesekopf nicht richtig ausgerichtet und daher keine Daten. Nachdem ich den Kopf etwas verdreht hatte, liefen die ersten Daten ein.

Log

Der Stromzähler kann zwei verschieden Stromtarife verarbeiten. Diese Daten werden über die OBIS-Kennzahlen 1-0:1.8.1 und 1-0:1.8.2 zur Verfügung gestellt. Beide Tarife werden dann unter 1-0:1.8.0 aufsummiert ausgegeben. In meinem Fall haben 1-0:1.8.0 und 1-0:1.8.1 den gleichen Wert. Die OBIS-Kennzahl 1-0:1.8.2 liefert den Wert 0. Unter 129-129:199.130.5 wird immer der Public Key ausgegeben, auch wenn man die Ausgabe nicht konfiguriert hat.

Home Assistant

Die gewonnenen Daten in Home Assistant einzuspielen ist dank der ESP Home Integration sehr einfach. Die Integration benötigt nur eine IP-Adresse und eine Portnummer. In der Konfigurationsdatei vergebe ich daher eine feste IP-Adresse. Home Assistant legt dann entsprechende Entitäten an.

Energy Dashboard

Über die Konfiguration des Energy Dashboards habe ich, unter Stromnetz > Netzbezug, die oben eingerichtete Entität Zahlerstand hinzugefügt. Für den Strompreis habe ich einen Helfer vom Type ‘Zahlenwert-Eingabe’ eingerichtet. Hier hinterlege ich den Preis/kWh.

Strom Nutzung

Home Assistant bekommt es gut hin die Daten optisch aufzubereiten. In der Grafik oben wird der Netzbezug blau dargestellt, der über die Balkonsolaranlage erzeuge Strom orange.

Der Lesekopf funktioniert technisch wunderbar. Die Daten laufen zuverlässig in Home Assistant ein. Der Stromzähler liefert bei jeder Abfrage den Endzählerstand und Home Assistant errechnet daraus die verbrauchte Energy in kWh. Den Zeitraum kann man für die Darstellung so anpassen wie man möchte. Meine Solaranlage liefert ebenfalls einen Gesamtzählerstand mit dem Ertrag in kWh. Dieser Zählerstand wird vom Wechselrichter erzeugt, wie genau er allerdings ist, ist fraglich. Ertrag der Solaranlage und Netzbezug werden gegeneinander verrechnet. Hier können natürlich auch fehlerhafte Werte entstehen, wenn erbrachte Solarenergie ins Netz eingespeist wird und dort verpufft.

Mein größtes Manko ist daher die fehlende Ausgabe der Momentanleistung (OBIS Kennzahl 1-0:16.7.0). Diese wird nur mit PIN, die ich nicht habe, ausgegeben. Mein Netzanbieter sieht sich nicht in der Lage mir die PIN zuzustellen, auch nach mehrmaligem Mailverkehr. Die PIN kann auch durch eine Taste eingegeben werden. Nach mehreren Fehlversuchen erfolgt keine Sperrung. Mein Lösungsansatz wäre also die möglichen PINs über die Infrarotschnittstelle durchiterieren zu lassen. Aber das ist ein Projekt für den Winter…