Shelly 3EM in Home Assistant einbinden und dabei diverse Fehlerquellen entdecken und vermeiden

  • Die Antwortemails müssen trotzdem irgendwo angekommen sein ,ansonsten müsste ich als Absender eine Fehlermeldung gekriegt haben,
  • Der Hintergrund warum ich per email geantwortet hatte war / ist einfach der weil ich nicht meine ganzen templates Einträge veröfftlichen wollte.
  • Claudius wenn Du einverstanden bist kannst mir über xxx@xxx.de deine private emailaddresse zukommen lassen um so weiter zu machen?

Ankommen tun sie bestimmt, aber jetzt wo du es sagst habe ich glaube ich vergessen, eine automatische Antwort in diesem Postfach zu hinterlegen. Ich schau da bei Gelegenheit dieses Wochenende mal rein und prüft das :sweat_smile:

Danke euch auf jeden Fall für den Denkanstoß :blue_heart:

Habe Dir geschrieben (eMail) du kannst deine eMail-Adresse hier wieder löschen. :wink:

Vielleicht kann mir jemand Helfen, in diversen Videos wird gezeigt wie die jede einzelne Phase in den Energiemonitor als Verbrauch einfügen
Bei mir geht aber nur einmal Gesamt Aktiver Verbauch und Gesamte zurückgewonnene Energie woran liegt das wohl ?
Schönes Wochenende euch

Wenn ich es richtig im Kopf habe, dann kannst du nach der Anlage eines Verbrauchers einen weiteren anlegen.
Viel Erfolg
Claudius

@ryhoruk Danke, hab deinen Code erstmal 1:1 übernommen und nach dem Ausbessern der Sensornamen hat das auf Anhieb geklappt.

2 kleine Punkte nur.

Durch die Multiplikation mit -1 beim normierten Einspeisewert hatte ich in der Anzeige dann immer -0 Watt Einspeisung stehen, wenn nichts mehr eingespeist wurde. Hab das einfach so gelöst und in der configuration.yaml noch die Abfrage hinzugefügt ob der Wert 0 ist, damit dort dann auch +0 steht.

state: “{{ 0 if states(‘sensor.Strom_Total_Power_Einspeisung_Ausgelesen’)|float(0) == 0 else (states(‘sensor.Strom_Total_Power_Einspeisung_Ausgelesen’)|float(0) * -1 | round (3)) }}”

Und für mich war dann noch der eigentlich Stromverbrauch interessant, wenn ich sozusagen keine PV-Anlage dranhängen hätte. Also sprich was ich wirklich im Haus verbraucht habe was ja einfach die Addition der Messung vom Shelly + der erzeugte Strom der PV Anlage ist, wenn man sich hier den aktuellen Watt-Wert anzeigen lassen möchte.

- name: "Strom Total Power mit PV"
  unique_id: "Strom_Total_Power_mit_PV"
  unit_of_measurement: "W"
  device_class: power
  state_class: measurement
  state: >
    {{
    states('sensor.Strom_Total_Power')| float(0) +
    states('sensor.shelly_pv_anlage_energy_power')| float(0)
    }}
1 „Gefällt mir“

Hallo @mike4001

das -0 hatte mich auch gestört. Ich habe deshalb den Code erweitert.
Sieht jetzt fast so aus wie bei Dir.

- name: "PV Einspeisung Normiert" #Das sind die reinen Einspeisungen ins Netz in einen positiven Wert verwandelt
  unique_id: "pv_einspeisung_normiert"
  device_class: power
  unit_of_measurement: "W"
  state: >
    {% if states('sensor.pv_einspeisung_ausgelesen')| int == 0 %}
      0
    {% else %}
      {{ states('sensor.pv_einspeisung_ausgelesen')|float(0) * -1 | round(3) }}
    {% endif %}

Über einen Gesamtverbrauch habe ich auch nachgedacht, es dann aber verworfen, das mir dies ja das EnergyBoard automatisch erledigt. Finde Deinen Ansatz aber sehr interessant und überlege es mir vielleicht nochmal :wink:

Viel Spaß noch bei weiteren Umsetzungen in HA.

Claudius

Hallo zusammen,
ich bim HomeAssistant und Yaml Neuling… habe versucht den Beitrag nachzuvollziehen, aber bei mir kommen leider keine Werte raus :thinking:

- sensor:
  - name: "HausAuswertungW"
    device_class: power
    state_class: total
    unit_of_measurement: "W"
    state: >
      {{ 
      states('sensor.gesamthaus_channel_a_power')|float(2) +
      states('sensor.gesamthaus_channel_b_power')|float(2) +
      states('sensor.gesamthaus_channel_c_power')|float(2)
      }}


- sensor:
  - name: "NetzBezug" 
    device_class: power
    unit_of_measurement: "W"
    state: >
      {% if states('sensor.HausAuswertungW')|int > 0 %}
        {{ states('sensor.HausAuswertungW')|float(2) }}
      {% else %}
        0
      {% endif %}

Seht Ihr einen Fehler? Werte für HausAuswertungW erscheinen in der Statistik, Werte für NetzBezug aber nicht…

Danke

Markus

Hallo,

ich bin da auch noch nicht so bewandert, aber ich tippe darauf, daß es ein Syntax-Fehler sein könnte, also Schreibfehler, falsch eingerückt oder falsche Leerzeichen o. Ä…

Im Fileeditor wird das ggfs. angezeigt, falls es so etwas ist bzw. bei den Entwicklerwerkzeugen bei Yaml Konfiguration prüfen.

LG Pit

In welcher yaml-Datei hast du den Code eingefügt?
Prüfe mal in den Entwicklungstools ob es die Entität „sensor.HausAuswertungW“ überhaupt gibt. Ich würde behaupten die Entität heißt „sensor.hausauswertungw“ oder irgendwie anders. Die Entitäten werden durchgehend klein geschrieben. Könnte ein Problem verursachen.

Nimm mal die 2. Zeile „- sensor“ raus. Was sagt der CodeCheck in den Entwicklungstools?

Viel Erfolg
Claudius

Ich habe den Code über den File Editor in die templates.yaml geschrieben. Werte für den sensor.hausauswertungw finden sich in der Statistik und werden auch in regelmäßigen Abständen aktualisiert.
Was meine Du mit zweite Zeile -sensor? was soll ich rausnehmen?

Es gibt keine Fehler bei den Entwicklertools für den YAML Code

Hast Du Deine Formel im 2. Sensor angepasst?
Du hast da meiner Meinung nach die Entität falsch geschrieben. Entitäten werden klein geschrieben und er findet vermutlicherweise die Entität nicht mit der du im 2. Sensor rechnen möchtest!

Ja, ich habe es korrigiert… und klein geschrieben…

#Kumulierter Verbrauch des Gesamthauses
- sensor:
  - name: "HausAuswertungW"
    device_class: power
    state_class: total
    unit_of_measurement: "W"
    state: >
      {{ 
      states('sensor.gesamthaus_channel_a_power')|float(2) +
      states('sensor.gesamthaus_channel_b_power')|float(2) +
      states('sensor.gesamthaus_channel_c_power')|float(2)
      }}

#Das ist der reine Verbrauch ohne Einspeisungen ins Netz

- sensor:
  - name: "NetzBezug" 
    device_class: power
    unit_of_measurement: "W"
    state: >
      {% if states('sensor.hausauswertungw')|int > 0 %}
        {{ states('sensor.hausauswertungw')|float(2) }}
      {% else %}
        0
      {% endif %}

Fällt Euch sonst noch etwas auf?

Danke

Knast Du mal bitte folgendes machen.
Rufe Entwicklerwerkzeuge auf und dort den Reiter “ZUSTÄNDE”.
Dann gebe bitte bei Entität und der Lupe bei “Entitäten filtern”
Haus
ein. Mache einen Screenshot und poste den hier. Dann mache das selbe gebe jedoch “Netz” als “Entität filtern” ein und poste diesen 2. Screenshot ebenfalls hier. (Bitte in einem Antwortpost"

BeispielScreenshot

dann habe ich mal meine Sensoren überprüft. Mein Sensor “Total_power_solar” etc. taucht auch nicht in “Statistik” auf.

Wenn ich meine Watt-Sensoren so anschaue, dann sehe ich folgenden Unterschied.

state_class: measurement

Ist bei den Werten nicht gesetzt die nicht in “Statistik” zu finden sind.
ACHTUNG: state_class: kann verschiedene Werte beinhalten mit unterschiedlichen Konsequenzen. Siehe auch Sensor Entity | Home Assistant Developer Docs

Kann sein, dass wir die ganze Zeit aneinander vorbei geredet haben.
Dein Sensor “Netzbezug” liefert Werte und ist sichtbar, aber er taucht nur nicht in Statistik auf?
oder
Dein Sensor “Netzbezug” liefert auch in “ZUSTÄNDE” keine Werte?

Claudius

Hallo Claudius,
danke für die Hilfe, also ich habe gesehen, dass bei meinem Code in keinem Sensor

state_class: measurement

steht…
Macht es Sinn, die Zeile einfach überall einzufügen damit die Werte auch in der Statistik sichtbar sind?
Hier die gewünschten Screenshots:



In den Zuständen sind sie ja alle Werte anscheinend sichtbar…

Markus

Wenn Du die Werte in Deiner Statistik haben möchtest, dann füge überall state_class hinzu. Ich habe es nicht gemacht. die für mich wichtige. Werte lade ich aber sowieso alle in eine influxDB und/oder sehe sie im EnergieDashboard.
Ich denke, dass man oft zu viel aufhebt, das man sowieso nie wieder wirklich anschaut. Ist also insgesamt eine „Gewissensentscheidung“.

Ich wünsche Dir hier eine gute Entscheidung
Claudius

Vielen lieben Dank, jetzt funktioniert alles soweit…

1 „Gefällt mir“

Hallo Mitstreiter, ich habe bisher nur mitgelesen und schon so einiges im HA umgesetzt.
Ich danke allen und vor allem Simon für die viele Arbeit!

Nun mal meine Frage:
Ich stehe unter dem Eindruck alles Obenstehende bildet eine Einspeisung ab. Diese findet zwar statt ist ja aber zumeist (bei BKW) „neutral“ gestellt.

Die Saldierung der 2,9 „bezogen“ mit den 1 „eingespeist“ ergibt 1,9 netto Netzbezug. Das stimmt physikalisch aber ja nicht praktisch, denn ich habe die 1 ja verschenkt und trotzdem 2,9 bezogen.

Gibt es denn die Möglichkeit diesen Wert „eingespeist“ ins „Nichts“ zu schicken? Weglassen ist ja auch keine Möglichkeit, dann ist der Hausverbrauch ja um 1 zu hoch.

Die Anzeige „Aus dem Netz“ verbraucht ist falsch.
Zumindest bei mir wie bei Dir.

Wenn ich die Monatswerte vom Netzbezug gegen die abgelesenen Werte Netzbezug beim Hauszähler lege, dann passen die. Also meine 3,8kWh passen. Die Solarproduktion stimmt ebenfalls mit den ganzen anderen Auslesetools überein, die mein Wechselrichter und die Messgeräte ausgeben.
Der Hausverbrauch paßt bei mir überschlagen zu den Messteckdosen, die ich an den Hauptverbrauchern zusätzlich den Verbrauch messen.

Der Wert im „Aus dem Netz verbraucht“ wird meiner Meinung nach schon immer falsch berechnet. Vielleicht gibt es ja mal ein Fix dafür.

Alles Gute
Claudius

Hallo Claudius,

er ist ja nicht direkt falsch, an einem rücklaufenden Zähler oder bei Verrechnung der Einspeisung würde er passen. Es fehlt eine Korrekturmöglichkeit für „ steckerfertigen Erzeugungsanlage“ bis 600 VA - die eben die Einspeisung verschenken und somit nicht Netto beziehen.
Es müsste eine Art „Ableitung“ geben:

Hilfsweise könnte man ja den Wert „Export“ vom Wert „Solar“ abziehen und diesen als Solarertrag eintragen, würde aber die Anlage nicht korrekt abbilden.

Grüße
Paul