HOWTO: SmartMeter in Home Assistant einbinden

Im April 2022 wurde bei uns der Stromzähler auf einen SmartMeter getauscht. Das habe ich gleich genutzt und den SmartMeter in Home Assistant integriert. Hier ein Bericht, auf was für Probleme ich gestoßen bin, und wie ich es mit dem „frient Electricity Meter“ gelöst habe.

Das Ziel

Nachdem bei uns der Stromzähler auf einen SmartMeter (Siemens im350) getauscht wurde, wollte ich unseren aktuellen Energieverbrauch in Home Assistant anzeigen. In weiterer Folge sollte noch der Zählerstand alle 10 Minuten in einer Datenbank gespeichert werden.

Grundsätzliche Probleme

Das größte Problem das sich mir stellte ist die Lage des Stromzählers. Wir wohnen in einem Mehrparteienhaus, der Stromzähler ist im Keller und wir im 2ten Stock. Beim Zählerkasten gibt es leider kein WLAN Signal von unserem Netzwerk und in der Nähe oder im Zählerkasten gibt es auch keinen Stromanschluss. Das sind die suboptimalen Voraussetzungen mit denen ich zu kämpfen hatte.

SmartMeter Webseite vom Stromnetzbetreiber

Der Stromnetzbetreiber Wiener Netzte GmbH bietet auch eine Seite an, auf der man sich die Daten vom Vortag anschauen und den Verbrauch auf 15 Minuten genau runter laden kann. Leider ist das nicht das was ich mir erhofft habe, um an aktuelle Verbrauchsdaten zu kommen. Noch dazu wurde der Zählerstand seit der Installation, also seit fast einem Monat, nicht übertragen, und so warte ich noch immer auf Daten.

[Update 2022-05-19]

Juhu es gibt Daten! Zwar nur bis 17.05, aber vielleicht wird das noch …

[Update 2022-05-22]

Zu früh gefreut, seit 19.05 keine neuen Daten mehr. Also noch immer Stand 17.05, somit total unzuverlässig …

Der Plan vom Aufbau

Bei Amazon bin ich über den batteriebetriebenen „frient Electricity Meter“ gestolpert, er bietet für meinen Einsatzbereich 2 Vorteile:

  1. Stromversorgung über Batterie
  2. Übertragung über Zigbee

Leider ist das Gerät nur mit LED Lesekopf verfügbar und kann so nicht für die eigentliche Kundenschnittstelle, die IR Schnittstelle, verwendet werden, was ein Nachteil sein kann.

Nachdem ich im Keller keine Verbindung zu unserem WLAN habe, habe ich gar nicht erst versucht, ob vielleicht die Reichweite vom Conbee II bis in den Keller reicht. Vielmehr habe ich die Idee geboren, meinen alten Raspberry Pi als Relay Station zu benutzen und so ergab sich folgender Plan vom Aufbau:

  • frient Electricity Meter zum auslesen vom SmartMeter (Siemens im350)
  • Übertragung mittels Zigbee zum Raspberry Pi
  • verarbeiten bzw. weiterleiten der Daten am Raspberry Pi mittels Zigbee2MQTT
  • Übertragung mittels WLAN zum MQTT Server der auf einem Home Assistant Server läuft
  • Anzeige der Daten mittels Home Assistant
  • Speichern der Daten in der Datenbank durch auslesen der Daten mit Hilfe der API von Home Assistant und PHP

Um Schritt für Schritt den Plan anzugehen, habe ich mir anfangs einen USB WiFi Dongle, einen USB Zigbee Dongle und eine USB 3 Verlängerung für den Raspberry Pi besorgt. Bevor ich mir das über 60 Euro teure Lesegerät zugelegt habe, musste noch getestet werden, ob ich einen Platz finde wo der Raspberry Pi die Zigbee Signale aus dem Zählerkasten empfangen kann und es auch einen WLAN Empfang gibt.

Glücklicherweise gibt es in unserem Keller Versorgungsräume, die Stromanschluss und auch Fenster haben. In so einem Raum wollte ich den kleinen Computer platzieren, und ich habe mich mal, mit meinem Handy, vergewissert, dass ich dort grundsätzlich mal WLAN Empfang habe.

Blieb noch die Frage offen, ob ich im ausgewählten Raum auch das Zigbee Signal vom Zählerkasten empfangen kann.

Der Aufbau

  1. Raspberry OS installieren
    Anleitung: https://projects.raspberrypi.org/de-DE/projects/raspberry-pi-setting-up/2
  2. WIFI einrichten
  3. Zigbee2MQTT auf dem Raspberry installieren und konfigurieren
    Anleitung: https://nerdiy.de/howto-zigbee-installation-von-zigbee2mqtt-auf-dem-raspberry-pi/

    • IP-Adresse vom MQTT Server ist mein Home Assistant Server, ggf. Parameter „user“ und „password“ hinzufügen, wenn am MQTT Server Benutzername und Passwort konfiguriert sind!
    • Wenn mit dem Befehlt „ls /dev/serial/by-id/“ nachdem ZigBee Dongle gesucht wird, unter port dann das Ergebnis wie folgt eintragen:
      „/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_de0000000c45ec11a9c0000d6f000f06-if00-port0“
    • Wenn die Fehlermeldung „Error: Coordinator failed to start, probably the panID is already in use, try a different panID or channel“ kommt und Zigbee2MQTT abbricht, in der Konfiguration folgendes hinzufügen bzw. Paramter pan_id ändern: „pan_id: GENERATE“ und danach starten
    • Wenn Zigbee2MQTT nicht als Service startet, wegen der Fehlermeldung: „zigbee2mqtt.service failed to determine user credentials no such process“
      Bei mir war unter „/etc/systemd/system/zigbee2mqtt.service“ folgender Paramter angegeben: „User=pi“. Ich musste diesen Eintrag ändern, und zwar in den User, den ich beim Einrichten des Raspberry Pi angegeben habe. Dann funktioniert das Starten als Service!
  4. USB Zigbee Dongle anhängen und testen ob es funktioniert

Glücklicherweise hatte ich noch einen alten Zigbee Schalter von IKEA herum liegen, dieser diente als Testobjekt für den Verbindungstest. Dazu habe ich einfach den Zigbee Schalter zu Hause an Zigbee2MQTT angelernt (also Schalter und Zigbee2MQTT verbinden). Danach ging es in den Keller und der Raspberry Pi wurde an den zukünftigen Aufstellungsort platziert und der Zigbee Schalter in den Zählerschrank gelegt und die Türen des Zählerschranks  wieder geschlossen.

Jetzt kam das große Zittern, und das Resultat des Tests war das was ich mir erhofft hatte. Die Verbindungsqualität ist nicht berauschend, aber der Raspberry Pi hat eine Verbindung zum Zigbee Schalter und auch die WLAN Verbindung ist ausreichend stabil! Deswegen …

5. frient Electricity Meter besorgt
6. frient Electricity Meter am Zigbee2MQTT angelernt
7. LED Lesekopf über die LED (1000lmp/kwH) geklebt

Nachdem der Aufbau abgeschlossen war, und ich den frient Electricity Meter im Dashboard vom Zigbee2MQTT gesehen habe, blieb noch übrig, die Daten zu kontrollieren. Der Vergleich der Daten vom Zigbee2MQTT Dashboard mit der Anzeige vom SmartMeter stimmte mich äußerst positiv!

  • Anzeige Smart Meter: 0,12KW
  • Anzeige Zigbee2MQTT: 124W

frient Electricity Meter/Develco ZHEMI101

Der „frient Electricity Meter“ dürfte baugleich  oder ein rebranding vom Develco ZHEMI101 sein. In Zigbee2MQTT wird er zu mindestens als „Devcelco ZHEMI101“ erkannt und in den Kommentaren bei Amazon wird auch auf diesen Umstand hin gewiesen.

Sollte die LED des SmartMeters nicht den Wert für 1000lmp/kwH haben, kann man über Zigbee2MQTT den Wert dafür am „frient Electricity Meter“ ändern. Da habe ich aber leider keine Erfahrung, weil der eingestellt Wert beim SmartMeter Siemens im350 gepasst hat.

Wie mache ich einen Reset?

Dazu das Case aufmachen, auf der gegenüberliegenden Seite von den Batterien gibt es eine Taste. Die Taste 10 Sekunden gedrückt halten, bis die LED schnell blinkt! Achtung, kurz nachdem man die Taste drückt, blinkt die LED kurz auf, da ist das Gerät aber noch nicht zum verbinden mit einem Netzwerk bereit.

Einbindung in Home Assistant

Die Einbindung in Home Assistant war keine Hexerei. In der configuration.yaml folgenden Parameter hinzufügen: „homeassistant: true“ (ohne Hochkomma) Nach einem ggf. Neustart, hat die Integration „MQTT“ hatte das Device „SmartMeterZigBee“ schon als neues Gerät erkannt und in Home Assistant zur Verfügung gestellt.

Der Name der in Home Assistant erscheint (bei mir also „SmartMeterZigBee“) kann man übrigens in Zigbee2MQTT konfigurieren. Dazu im Reiter „Über“ einfach das Gerät umbenennen (links unten blaues Viereck mit Symbol Stift anklicken)

Wie genau sind die Werte?

Nachdem ich erst vor kurzem mit den Aufzeichnungen begonnen habe, sind die Angaben noch nicht wirklich aussagekräftig, aber trotzdem eine kleine Auswertung von abgelesenen und errechneten Werten.

05.05.2022

  • errechneter Wert um 17:50: 78,96 kWh
  • abgelesener Wert um 17:53: 79 kWh

10.05.2022

  • errechneter Wert um 07:50: 110,90 kWh
  • abgelesener Wert um 07:58: 111 kWh

18.05.2022

  • errechneter Wert um18:30: 170,82 kWh
  • abgelesener Wert um 18:32: 171 kWh

30.05.2022

  • errechneter Wert um 18:50: 242.89 kWh
  • abgelesenen Wert um 18:48: 243 kWh

22.06.2022

  • errechneter Wert um 09:22: 404,88 kWh
  • abgelesener Wert um 09:20: 405,00 kWh
  • Information: Fast kein Unterschied, trotz mehr stündigen Stromausfall nach einem Gewitter vor 8 Tagen!

03.09.2022

  • errechneter Wert um 14:40: 818.67 kWh
  • abgelesener Wert um 14:49: 818.00 kWh
  • zwischen 22.06 und 03.09 keine Werte eingetragen. Unterschied kommt höchstwahrscheinlich durch Rundung bei der Anzeige am Smart Meter zustande.

12.01.2023

  • errechneter Wert um 12:33: 1640,82 kWh
  • abgelesener Wert um 12:30: 1641.00 kWh
  • zwischen 03.09.2022 und 12.01.2023 musste ich den Raspi neu aufsetzen, weil die Installation den Geist aufgegeben hat. (siehe Update 2022-11-25 etwas weiter unten.

Skript zum Sammeln der Daten

Um die Daten anzuzeigen und mir einmal pro Woche per Mail zuschicken zu lassen, habe ich ein kleines PHP Skript geschrieben. Das ich hier gleich teilen möchte.

Anzeige des aktuellen Verbrauchs der Tage pro Stunde und zwar der letzten 31 Tage.

Eingabe des aktuellen Zählerstands, um etwaige Messungenauigkeiten auszugleichen

Daten in der MySQL Datenbank

Anpassen der config.inc.php.template und in config.inc.php umbenennen.

  • SQLConnectionString: Connection String zur MySQL oder MariaDB
  • SQLUsername: Username mit der man auf die DB zugreifen kann
  • SQLPassword: Passwort mit der man auf die DB zugreifen kann
  • HAAuthToken: Permanentes Token um auf HA zugreifen zu können
  • HAAddress: Adresse zur API von HA
  • HASensorName: Sensorname in Home Assistant

Der Sensor in Home Assistant kann man wie folgt ermitteln:

Um die Daten von Home Assistant in die MariaDB Datenbank zu bekommen, rufe ich das Skript „getDataFromHomeAssistant.php“ alle 10 Minuten auf. Dadurch werden die aktuellen Werte in die Datenbank gespeichert.

Um sich den Bericht per Mail zuschicken zu lassen, braucht man zum Beispiel PHPMAILER, das man seperat runter laden muss. Der Abschnitt MAIL in config.inc.php ist dann dafür gedacht.

Ich rufe per cronjob, einmal pro Woche das Script mit „?sendmail=true“ auf, und damit wird dann der Bericht per Mail an „TO_MAILADDRESS“ geschickt.

Einkaufsliste

  • Raspberry Pi 3 oder 4, Gehäuse und Netzgerät
  • USB 3 Verlängerungskabel damit ich den WIFI Dongle besser platzieren kann
  • FILOWA USB WIFI Dongle
  • SONOFF Zigbee 3 Dongle
  • frient Electricity Meter Interface

Update 2022-11-25

Leider lässt sich der Raspberry seit einigen Tagen nicht mehr starten. Kernel Panik ist die letzte Ausgabe am Bildschirm. Deshalb mußte ich das ganze System neu aufsetzen. Im Zuge dessen bei der Installtion von Zigbee2MQTT habe ich den Eintrag etwas erweitert, weil bei der Neuinstalltion ein paar Probleme aufgetreten sind.

Zigbee Pairing-Modus vom frient Electricity aktivieren funktioniert wie folgt: Gehäuse öffnen und die Batterien heraus nehmen und wieder hinein geben. Der frient Electricty beginnt in den Pairing-Modus zu wechseln. In Zigbee2MQTT „Anlernen aktivieren“ und nachdem das Gerät wieder gefunden , und ggf. umbenannt, wurde, kann es weiter gehen. Der letzte interne Zählerstand geht übrigens nicht verloren, wenn man die Batterien entfernt.

Update 2023-07-05

Die Batterien waren leer und mussten getauscht werden.

Update 2023-10-14

Das Modell gibt es leider seit einiger Zeit nicht mehr zu kaufen. Aber es gibt jetzt einen Nachfolger, auch wieder von Frient. Ich denke das das Verhalten änlich der alten Version sein wird. Ist aber von mir NICHT getestet!

Update 2024-09-24

Ich bin jetzt auf die Kundenschnittstelle mit IR Schreib-Lesekopf umgestiegen. Warum, weshalb und wieso gibt es hier zum Nachlesen: HOWTO: SMARTMETER mit Tasmota in Home Assistant einbinden

AMAZON Links

Quellen

 

Alle Angaben ohne Gewähr!

In diesem Artikel sind Partnerlinks enthalten.
Durch einen Klick darauf ge­lan­gt man direkt zum Anbieter. 

2 Kommentare zu "HOWTO: SmartMeter in Home Assistant einbinden"

  1. Warum nicht die Daten über die optische Schnittstelle links daneben auslesen. Dort bekommt man mehr und genauere Daten, auch ohne Code kann man dort immer den Zählerstände lesen. Als Hardware empfehle ich dan ein ESP mit Tasmota der sendet direkt via Mqtt die daren. Koste liegen hier bei 5€.

    • Hallo, danke für den Kommentar. Leider wohne ich in einem Mehrparteienhaus, und beim bzw. im Zählerkasten gibt es keinen Stromanschluss. Des weiteren gibt es keine Möglichkeit Kabel in den Zählerkasten zu führen, ohne das man selber Löcher in den Stahlschrank bohrt und unser WLAN funktioniert dort auch nicht. Somit alles etwas suboptimal!
      Des wegen war ich froh eine Möglichkeit gefunden zu haben, die mit Batterie und über Funk (in diesem Fall Zigbee) funktioniert. Außerdem ist alles schnell und ohne irgendwelche Rückstände zu hinterlassen wieder entfernt.
      Aber bezüglich Genauigkeit der Messungen, kann ich bis jetzt überhaupt nicht meckern!
      Michael

Einen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


− 3 = 7