SmartMeterReader teilweise ohne Einheit

Hi,

ich habe ein Problem mit meinem Smart Meter Reader. bitShake Tasmota.

In der Konsole/Skript von Tasmota muss ja eingeben was man auslesen will. Soweit habe ich es auch verstanden das es auf Englisch sein muss das HA es auch erkennt was es ist und die Einheit dazu stellt.

Da fangen aber die Probleme an und ja, es ist nur für die Schönheit.

Der Skript ist bei mir folgend.

>D
>B
->sensor53 r
>M 1
+1,5,s,16,9600,iMSysOG
1,77070100010800ff@1000,Gesamtverbrauch,kWh,Total,2
1,77070100020800ff@1000,Gesamteinspeisung,kWh,Supply,2
1,77070100100700ff@1,Gesamtleistung,W,Power,0
1,77070100200700ff@1,Spannung L1,V,Voltage,0
1,77070100340700ff@1,Spannung L2,V,Voltage_L2,0
1,77070100480700ff@1,Spannung L3,V,Voltage_L3,0
1,770701001f0700ff@1,Strom L1,A,Current,2
1,77070100330700ff@1,Strom L2,A,Current_l2,2
1,77070100470700ff@1,Strom L3,A,Current_L3,2
1,77070100240700ff@1,Leistung L1,W,Power_L1,0
1,77070100380700ff@1,Leistung L2,W,Power_L2,0
1,770701004c0700ff@1,Leistung L3,W,Power_L3,0
1,770701000e0700ff@1,Frequenz,Hz,Freq,1
#

Soweit alles gut. In HA wird der Wert von Power, Current, Voltage auch mit der Einheit angezeigt. Aber sobald ich z.B. Curren_L2, Power_L3 auslesen will bekomme ich nur die Zahl aber keine Einheit. Also das _l2 oder _l3 macht den Unterschied wie es angezeigt wird. Es ist nur ein Schönheitsfehler den ich aber gerne verbessern will.

Wenn ich jetzt aber im Dashboard folgendes erstellen will bekomme ich auch die gewünschten Werte angezeigt mit Einheit, nur die Wert bei denen L2, L3 dabei ist wird nur der Wert aber nicht die Einheit angezeigt.

type: entities
entities:
  - entity: sensor.bitshake_smartmeterreader_imsysog_current
    name: Strom L1
  - entity: sensor.bitshake_smartmeterreader_imsysog_current_l2
    name: Strom L2
  - entity: sensor.bitshake_smartmeterreader_imsysog_current_l3
    name: Strom L3
  - entity: sensor.bitshake_smartmeterreader_imsysog_power_l1
    name: Leistung L1
  - entity: sensor.bitshake_smartmeterreader_imsysog_power_l2_2
    name: Leistung L2
  - entity: sensor.bitshake_smartmeterreader_imsysog_power_l3
    name: Leistung L3
  - entity: sensor.bitshake_smartmeterreader_imsysog_power
    name: Leistung Gesamt
  - entity: sensor.bitshake_smartmeterreader_imsysog_total
    name: Verbrauch
  - entity: sensor.bitshake_smartmeterreader_imsysog_supply
    name: Einspeisung
title: Stromzähler
state_color: false
show_header_toggle: true

Jetzt dachte ich mir, die Einheit kann man ja bestimmt mit unit_of_measurement: W oder eben A ergänzen, dem ist aber nicht so.
Ich bekomme dann die folgende Fehlermeldung mit der ich absolut nichts anfangen kann.

Visueller Editor wird für diese Konfiguration nicht unterstützt:

  • Der Schlüssel „entities.1.unit_of_measurement“ wird vom visuellen Editor nicht erwartet oder nicht unterstützt.

  • Der angegebene Wert für „entities.1“ wird vom visuellen Editor nicht unterstützt. Wir unterstützen (string), haben aber ({“entity”:“sensor.bitshake_smartmeterreader_imsysog_current_l2”,“name”:“Strom L2”,“unit_of_measurement”:“W”}) erhalten.

Du kannst deine Konfiguration weiterhin in YAML bearbeiten.

Mache Dir entweder in der configuration.yaml oder wie bei mir wo die Sensoren ausgelagert sind Sensoren in dieser Art.
Mußt dann die Sensoren für Dich anpassen.
Evtl. schau mal das Video an.

sensor:
  # Stromzähler Haus Verbrauch
  - name: "Stromzähler Haus Verbrauch"
    unique_id: "StromzVerbrauch"
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "total_increasing"
    state: >-
      {{ float(states('sensor.tasmota_sm_1_8_0')) | round(3) }}

    # Stromzähler Haus Erzeugung
  - name: "Stromzähler Haus Erzeugung"
    unique_id: "StromzErzeugung"
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "total_increasing"
    state: >-
      {{ float(states('sensor.tasmota_sm_2_8_0')) | round(3) }}

    # Stromzähler aktuelle Leistung
  - name: "Stromzähler Haus aktuelle Leistung"
    unique_id: "StromzLeistung"
    unit_of_measurement: "W"
    state: >-
      {{ float(states('sensor.tasmota_sm_16_7_0')) | round(0) }}

Um die Einheiten hinzuzufügen müssen keine neuen Sensoren angelegt werden. Es reicht aus, eine customize.yaml zu erstellen und die Sensoren darüber mit den gewünschten Attributen zu versehen:
In die configuration.yaml ganz zu Beginn

homeassistant:
  customize: !include customize.yaml

In die customize.yaml

# Anpassung Einheiten für Tasmota Stromzähler
sensor.stromzaehler_og_leistung_aktuell_16_7_0:
  unit_of_measurement: W
  device_class: power
  state_class: measurement
sensor.stromzaehler_og_bezug_1_8_0:
  unit_of_measurement: kWh
  device_class: energy
  state_class: total_increasing

Die Sensoren natürlich auf deine anpassen.

@bigmirror

Bei mir scheint da was nicht zu funktionieren.
In der config habe ich wie beschrieben folgendes eingegeben.

homeassistant:
  customize: !include customize.yaml

dann habe ich eine Datei erstell mit customize.yaml
In die habe ich Folgens eingegeben.

sensor.bitshake_smartmeterreader_imsysog_current_l2:
  unit_of_measurement: A
  device_class: current
  state_class: measurement

Ich kann unter Entwicklungswerkzeug/Zustände sehen das da jetzt der Code drin ist, aber als Wert bekomme ich jetzt ein “unbekannt”

Die Entität wird auch so angezeigt. Also kann es kein Schreibfehler sein.

sensor.bitshake_smartmeterreader_imsysog_current_l2

@coregatab
Homeassistent Yaml neu gestartet?

@Tialk OK, warum auch immer. Jetzt geht es. Ich hatte die Infos in custom nochmal gelöscht und da war der Wert immer noch unbekannt. Also hatte ich nicht nur HA sondern auch den Smart Meter neu gestartet (direkt über die IP des Gerätes) und auf einmal wurde mir der Wert wieder angezeigt.
Jetzt habe ich nochmal den Code in custom eingetragen und siehe da, es geht.