HOWTO: SMARTMETER mit Tasmota in Home Assistant einbinden

Hier mein Erfahrungsbericht für den Smartmeter IM350, wie man die Kundenschnittstelle mit Tasmota und einem WIFI IR Smartmeter Interface ausliest und in Home Assistant einbindet. (Hichi/Volkszähler)

Ausgangsituation

Im April 2022 wurden wir auf einen Smartmeter umgestellt, und seit Mai 2022 lese ich diesen mit dem „frient Electricity Meter (v1)“   aus. Das funktioniert auch ohne Probleme und hat immer sehr genaue Werte geliefert.

In diesem Jahr habe ich mir ein Update zu meinem Balkonkraftwerk geleistet und zwar mit einem 400W und 100W Panel. Seit dem besteht das Problem, dass wir über den Tag verteilt mehr Strom erzeugen, als wir Verbrauchen.

Der „frient Electricity Meter“ besitzt nur einen LED Lesekopf, und dadurch wird  bei einer Einspeisung, dieser als Verbrauch ermittelt. Es stimmen der ermittelte Gesamtverbrauch vom „frient Electricity Meter“ nicht mehr mit dem  tatsächlichen Verbrauch überein. Das ist keine Fehler vom „frient Electricity Meter“, sondern die Schnittstelle über die LED gibt nicht mehr her, oder ist falsch im Smartmeter eingestellt. (sollte man das Einstellen können).

Diesem Umstand geschuldet wurde es nötig auf die IR Kundenschnittstelle vom Smartmeter IM350 umzusteigen, und diese auszulesen und in Home Assistant einzubinden.

WIFI IR Smartmeter Interface zum Auslesen verwenden

Wenn man sich mit diesem Thema befasst, dann stolpert man unweigerlich über den Hichi Lesekopf bzw. Volkszähler Lesekopf, und zwar in den verschiedensten Ausführungen. Leider habe ich keinen Verkäufer auf Amazon gefunden, der diesen nach Österreich liefert.

Deshalb habe ich mich für den WIFI IR Smartmeter Interface von „Christians Technikshop“ entschieden, und zwar die Ausführung mit externer Antenne.  Mir war schon von der vorigen Installation klar, dass es eine Herausforderung werden wird, einen akzeptablen WLAN Empfang zu bekommen.

Start und Konfiguration

WLAN konfigurieren

Wie bei jedem Gerät mit Tasmota, wird eine WLAN Accesspoint eingerichtet, mit dem man sich verbindet. Dort kann man dann die Daten vom WLAN eingeben, mit dem sich das Gerät verbinden soll. Wenn das geschehen ist, und sich das Gerät mit dem eigenen WLAN verbunden hat, dann kann man die Seite über die IP-Adresse aufrufen.

Die zugeordnete IP-Adresse findet man über den Router oder über einen Netzwerk Scanner (zb. Net Analyzer (Android), Fing (Anroid)) heraus.

Einrichtung des Zählertyps (Siemens IM350 der Wiener Netze)

Damit die richtigen Werte ausgelesen werden, muss der richtige Smartmeter konfiguriert werden. Dafür gibt es auf GitHub eine Sammlung der verschiedensten Konfigurationen für eine Menge Smartmeter Typen. Ich werde speziell auf den IM-350 von Siemens der von den Wiener Netzen verwendet wird eingehen.

Aktivieren der Kundenschnittstelle bei Wiener Netze

Die Kundenschnittstelle kann bequem über das Smart Meter Webportal der Wiener Netze aktiviert und deaktiviert werden.

Dazu beim Abschnitt „Ihr Zählpunkt“ auf „Details“ gehen. Dann kann über „Bearbeiten“ (2024: weißes Feld mit „Bearbeiten“ im Kopf) die Kundenschnittstelle aktivieren oder deaktivieren. Einziger Wehrmutstropfen ist, dass die Änderung bis zu 24h braucht, das sie Aktiv ist.

Siehe auch: Kundenschnittstelle bei wienernetze.at

Sicherheitsschlüssel auslesen bei Wiener Netze

Der Sicherheitsschlüssel kann bequem über das Smart Meter Webportal der Wiener Netze angezeigt werden.

Dazu beim Abschnitt „Ihr Zählpunkt“ auf „Details“ gehen, danach im Abschnitt „Kundenschnittstelle“ auf „Schlüssel anzeigen“ klicken. Der Schlüssel wird ohne Abstände gebraucht! Einfach dazu auf das „kopieren“ Symbol klicken und schon ist der Schlüssel ohne Abstände in der Zwischenablage.

Siehe auch: Kundenschnittstelle bei wienernetze.at

Kopieren vom Skript und aktivieren

Um das Skript einzuspielen im Hauptmenü auf „Tools“ und dann „Edit Script“ gehen. Folgende Schritte durchführen …

  1. „Script enable“ aktivieren
  2. Skript hinein kopieren
  3. statt XXXXXXXXXX den eigenen Schlüssel kopieren
  4. „Save“ klicken

 

>D
>B
>sensor53 r
>M 1
+1,3,v,16,9600,Home
1,=so3,256
1,=so4,XXXXXXXXXXXXXXXXXXXXXX
1,020202x19UUuu@1,year,,year,0
1,020202x21ss@1,month,,month,0
1,020202x22ss@1,day,,day,0
1,020202x24ss@1,hh,,hh,0
1,020202x25ss@1,mm,,mm,0
1,020202x26ss@1,ss,,ss,0
1,020202x32UUuuUUuu@1000,+A,kWh,+A,3
1,020202x37UUuuUUuu@1000,-A,kWh,-A,3
1,020202x42UUuuUUuu@1000,+R,varh,+R,3
1,020202x47UUuuUUuu@1000,-R,varh,-R,3
1,020202x52UUuuUUuu@1,+P,W,+P,3
1,020202x57UUuuUUuu@1,-P,W,-P,3
1,020202x62UUuuUUuu@1,+Q,var,+Q,3
1,020202x67UUuuUUuu@1,-Q,var,-Q,3
#

Siehe auch: Sammlung von Skripten für verschiedene Smartmeter Modelle

Leider ist das noch nicht alles. Die Zeichenfolge „020202“ ist leider auch individuell und muss danach im Skript nochmals geändert werden.

Um die richtige Zeichenfolge heraus zu finden, muss man wie folgt vorgehen …

  1. auf „Console“ gehen
  2. mit dem Befehl „sensor53 d1“ den Dump aktivieren.
  3. warten bis ein „SML decrypted block: 74 bytes“ kommt
  4. die Ersten 3 Blöcke in der 1. Zeile (02 0a 09) im Skript oben ersetzen. Also anstatt „1,020202x…..“ wird jetzt „1,020a09x…..“ daraus.
    Damit würde es wie folgt ausschauen: (ACHTUNG: nur ein Ausschnitt!!)

    1,020a09x32UUuuUUuu@1000,+A,kWh,+A,3
    1,020a09x37UUuuUUuu@1000,-A,kWh,-A,3
    1,020a09x42UUuuUUuu@1000,+R,varh,+R,3
    1,020a09x47UUuuUUuu@1000,-R,varh,-R,3
    1,020a09x52UUuuUUuu@1,+P,W,+P,3
    1,020a09x57UUuuUUuu@1,-P,W,-P,3
    1,020a09x62UUuuUUuu@1,+Q,var,+Q,3
    1,020a09x67UUuuUUuu@1,-Q,var,-Q,3
  5. Wichtig: mit „sensor53 d0“ den Dump wieder ausschalten!
  6. Es sollten Werte im Startfenster erscheinen

Wichtigsten Werte und ihre Bedeutung

  • year, month, day, hh, mm, ss: Aktuelles Datum
  • +A: Aktueller Zählerstand in kWh vom bezogenen Strom
  • -A :Aktueller Zählerstand in kWh vom eingespeisten Strom
  • +P: Aktueller Verbrauch in W, 0W wenn mehr Strom erzeugt wird, als verbraucht wird
  • -P: Aktuelle Einspeisung in W, 0W wenn mehr Strom verbraucht wird, als erzeugt wird

Probleme mit Firmware

Das Auslesen der Daten hat bei mir erst mit der Firmware Version 14.2.0 funktioniert. Bei mir wurde der Lesekopf noch mit Firmware Version 13.1.0.3 ausgeliefert und hat am Anfang keine brauchbaren Daten auslesen können. Zu meinem Glück gab es kurz danach eine neue Firmware Version, die jetzt funktioniert.

Die neueste Firmware kann hier nachgeschaut und runtergeladen werden: GITHUB: https://github.com/Christians-Shop/CTS_tasmota_SML

Das Update hat über das eingebaute OTA  Firmware-Upgrade funktioniert.

Anbindung in Home Assistant

Ich habe noch MQTT am Gerät konfiguriert und dann wurde es auch schon automatisch als neues Gerät erkannt, und konnte über die Integration „Tasmota“ eingebunden werden.

Damit die Daten alle 10 Sekunden geschickt werden, unter „Configuration“ > „Configure Logging“ den Parameter „Telemetry period“ auf 10 setzen. Leider ist eine Zahl kleiner 10 nicht möglich. Standard sind 300 Sekunden.

Einbindung in Home Assistant

Damit die Werte im Energie-Dashboard von Home Assistant verwendet werden können, müssen eigene Sensoren hinzugefügt und die Unit angegeben werden.

# VIRTUAL SENSOR
# Daten werden von WiFi IR Smart Meter Interface Home übernommen
# DateTime: 2024-09
# Integration: Tasmota
# Gerät: INF_SMARTMETER_Strom
template:
  - sensor:
      - name: "INF_SENSOR_Electricity_TotalIn"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {% set value = states('sensor.inf_smartmeter_strom_home_a') | float %}
          {% if value > 2 %} 
            {{ (value) }} 
          {% endif %} 
  - sensor:
      - name: "INF_SENSOR_Electricity_TotalOut"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {% set value = states('sensor.inf_smartmeter_strom_home_a_2') | float %}
          {% if value > 2 %}
            {{ (value) }}                  
          {% endif %}
  - sensor:
      - name: "INF_SENSOR_Electricity_PowerIn"
        unit_of_measurement: "W"
        device_class: "energy"
        state_class: measurement
        state: >
          {% set value = states('sensor.inf_smartmeter_strom_home_p') | int %}
          {{ (value) }}                
  - sensor:
      - name: "INF_SENSOR_Electricity_PowerOut"
        unit_of_measurement: "W"
        device_class: "energy"
        state_class: measurement    
        state: >
          {% set value = states('sensor.inf_smartmeter_strom_home_p_2') | int %}
          {{ (value) }}                 
  - sensor:
      - name: "INF_SENSOR_Electricity_PowerSum"
        unit_of_measurement: "W"
        device_class: "energy"
        state_class: measurement    
        state: >
          {% set value1 = states('sensor.inf_smartmeter_strom_home_p') | int %}
          {% set value2 = states('sensor.inf_smartmeter_strom_home_p_2') | int %}
          {{ (value1 - value2) }}

Bei einem Neustart des IR Lesers, schickt das Gerät einen Totalverbrauch von 0kWh und danach erst den richtigen Wert. Homeassistant bzw. der Sensor mit „state_class: total_increasing“ ist so umgesetzt, dass er von einem neuen Smartmeter ausgeht, wenn er die 0 kWh bekommt. D.h. wenn man damit einen Verbrauchszähler für Tag/Monat füttert, dann schnellt der Verbrauchszähler auf den Gesamtverbrauch hoch und die Statistiken sind nicht zu gebrauchen. Fängt man diesen Ersten Wert aber ab (value > 1 oder 2), dann gibt es keine Probleme.

Das Energie-Dashboard von Home Assistant sollte nach einiger Zeit (Information bezüglich der 2 Stunden lesen) dann wie folgt ausschauen:

Stromversorgung über Powerbank

Ich habe es anfänglich mit einer 20000mAh Powerbank versucht, aber das hat einige Probleme mit sich gebracht.

Ein Problem war, dass nicht alle Powerbank Modelle geeignet sind. Das Modell muss über den Low-Power-Mode  verfügen, da sich sonst die Powerbank abschaltet, weil das angeschlossene Gerät zu wenig Strom verbraucht. Bei den meisten Powerbank Modellen ist es aber nur möglich, diesen Modus für 2 oder 3 Stunden einzuschalten. Danach wird wieder in den normalen Modus gewechselt.

Nachdem alles eingerichtet war, lieferte die Powerbank übrigens auch noch nach 16 Stunden Strom, schaltete sich also nicht aus. Das Gerät war erreichbar und es wurden aktuelle Daten in Home Assistant angezeigt.  Wie knapp das Ganze an der Grenze zum Ausschalten der Powerbank ist, konnte ich leider nicht feststellen, aber mir war diese Variante zu Unsicher und ich habe dann doch eine Möglichkeit gefunden, ein USB Kabel bis zum Zählerschrank verlegen zu können.

Nächstes Problem war der Verbrauch! Nach den ca 16 Stunden war die Powerbank  noch zu 85% geladen, angefangen habe ich bei 92%, also in 16h wurden 7% verbraucht. Die Powerbank habe ich extra dafür angeschafft, ist also noch ganz neu. Trotzdem hätte ich ca. alle 8 – 10 Tage die Powerbank auswechseln und aufladen müssen.

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. 

 

Einen Kommentar hinterlassen

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


*


15 − 6 =