Anfänger braucht HIlfe beim Strom und Balkonkraftwerk

Hallo. Ich bin seit kurzer Zeit dabei mich mit dem Thema HA auseinanderzusetzen.
Gar nicht sooo einfach.
Beim Sensor schreiben habe ich Probleme, Vielleicht kann jemand helfen.
Zum Stromauslesen habe ich einen BitShake SmartMeterReader. Die Werte kommen auch an. Das BLK wird mir einem Shelly Plug gemessen. Werte kommen auch an.

Diese Werte jetzt im Dashboard schön hinzubekommen ist meine Problem.
In dem Video “Balkonsolaranlage-in-Home-Assistant-einrichten-Energie-Dashboard” von Simon, habe ich versucht einen Sensor für die Rückgabe ins Netz zu schreiben. Leider klappt das nicht. Ich bekomme dann bei den Entitäten ein Staus Fehler.

Hier mal meine Sensoren

template:

  - sensor:
   # Stromzähler Keller Verbrauch
     - name:  "Strom-1 OG-Verbrauch"
       unique_id: "Strom-1 OGVerbrauch"
       unit_of_measurement: 'kWh'
       device_class: "energy"
       state_class: "total_increasing"
       state: >
          {{ float(states('sensor.bitshake_smartmeterreader_sml_total_in')) | round(3) }}
          
          
  - sensor:
   # Shelly Balkonkraftwerk
     - name:  "Balkonkraftwerk"
       unique_id: "Balkonkraftwerk"
       unit_of_measurement: 'kWh'
       device_class: "energy"
       state_class: "total_increasing"
       state: >
          {{ float(states('sensor.shellyplus1pm-d4d4da08a320 switch_0 energy')) | round(3) }}
          
   
  - sensor:       
   # Berechnet anhand des Stromzählers die Rückgabe ins Netz, wenn Negative Werte ausgegeben werden
     - name: "Zurück zum Netz (Watt)"
       unique_id: "BalkonsolarBackToGridSensorWatts"
       state_class: "measurement"
       icon: "mdi:transmission-tower"
       unit_of_measurement: 'W'
       device_class: "Power"
       state: >
        {% if is_nummber(states('sensor.bitshake_smartmeterreader_sml_power_curr')) and states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0) < 0 %}
           {{(states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0))*-1 | round (3) }}
        {% else %}
           {{(states ('0.0') | float(0)) |round(3) }}
        {% endif %}
        

Ein paar Fehler fallen mir auf:

  • Strom OG: keine Leerzeichen und “-” in der unique id
  • Beim Sensor “Balkonkraftwerk” sind zwei Leerzeichen im Shelly Sensor drin. Die dürfen dort nicht hin.
    Sensornamen am besten über das Zahlrad oder die entitäts-ID kopieren. Dann vermeidet man Fehler.
    Oder einen Editor mit Autovervollständigung nutzen, z.B Studio Code Server.
  • Bei “Zurück zum Netz” kannst du die Prüfung vereinfachen. Float testet selbst, ob sich der Inhalt des Sensors zur Zahl wandeln lässt und wenn nicht, nimmt es den angegebenen Defaultwert
{% if states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0) < 0 %}       

Im Else reicht es aus, wen du einfach eine 0 schreibst. Sämtliche Klammern etc. können weg.

WOW, Danke für die schnelle Bearbeitung und den Tipps.
Hab alles korrigiert.
Leider habe ich das mit dem “Else Nullwert” nicht ganz verstanden. (Schreibweise)
Ist das so richtig?

- sensor:       
   # Berechnet anhand des Stromzählers die Rückgabe ins Netz, wenn Negative Werte ausgegeben werden
     - name: "Zurück zum Netz (Watt)"
       unique_id: BalkonsolarBackToGridSensorWatts
       state_class: "measurement"
       icon: "mdi:transmission-tower"
       unit_of_measurement: 'W'
       device_class: "Power"
       state: >
          {% if states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0) < 0 %}
           {{(states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0))*-1 | round (3) }}
          {% else (0) %}
          {% endif %}

So:

- sensor:       
   # Berechnet anhand des Stromzählers die Rückgabe ins Netz, wenn Negative Werte ausgegeben werden
     - name: "Zurück zum Netz (Watt)"
       unique_id: BalkonsolarBackToGridSensorWatts
       state_class: "measurement"
       icon: "mdi:transmission-tower"
       unit_of_measurement: 'W'
       device_class: "Power"
       state: >
          {% if states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0) < 0 %}
           {{(states('sensor.bitshake_smartmeterreader_sml_power_curr') | float(0))*-1 | round (3) }}
          {% else %}
            0
          {% endif %}

OK, das war dumm von mir.

Hab nochmal zwei Kleinigkeiten gefunden, als ich die Sensoren bei Entwicklerwerkzeuge-Template geprüft habe.

Erstmal ist alles Fehlerfrei

Leider bekomme ich noch keine Werte

Das Energy Dashboard berechnet die Werte immer zur vollen Stunde. Es steht auch der Hinweis dabei, dass es bis zu 2Stunden dauern kann, bis etwas angezeigt wird. Genau genommen sind es zwei Stundenwechsel, die benötigt werden.

HAAA !!!
DANKE
endlich funktioniert es
DANKE du Retter

dann werde ich mal die nächsten Projekte bearbeiten.