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
  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.

Einbindung in Home Assistant

Die Einbindung in Home Assistant war keine Hexerei. 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

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

10.05

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

18.05

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

30.05

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

22.06

  • 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!

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

Download: smartmeter.zip

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

Quellen

 

Alle Angaben ohne Gewähr!

 

Einen Kommentar hinterlassen

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


*


61 − 51 =