Vorstellung⚡Energy_Power-Flow-Card (custom)

:zap:Energy_Power-Flow-Card

Energiefluss-Visualisierung mit SVG + Floorplan-Card

Heute möchte ich euch meine Custom Energy-Flow-Card vorstellen. Ich habe sie jetzt eine Woche im Einsatz und läuft sehr zuverlässig. Animiert werden die Energieflüsse so wie man es aus der Power-Flow-Card von HA kennt. Zusätzlich wird der Batterieladestand optisch angezeigt und der Punkt vom Hausnetz passt sich je nach Nutzung Solar/Netz/Batterie farblich an. Außerdem sieht man immer den aktuellen Tagesverbrauch (kWh) und die aktuelle Leistung (W) der einzelnen Stränge auf einen Blick.

Für das Projekt nutze ich eine SVG-Grafik, eine css-Datei und die custom:floorplan-card. Letztendlich müsst ihr im Beispielcode zur Card nur eure Entitäten/Sensoren austauschen und die Card sollte funktionieren. :slight_smile:

Für ausführliche Erklärungen, wie man die SVG erstellt und verknüpft schaut euch bitte die Pool-Flow-Card an. Dort habe ich alles genau erklärt.

:wrench: Voraussetzungen

  • HACS installiert
  • floorplan-card Custom Card installiert
  • Sensoren mit täglichen Energie-Werten
  • CSS-Datei (energy-flow-card.css) zur dynamischen Gestaltung

Aufbau der Card im Detail

Ihr müsst einfach in der Card eure Entitäten eintragen und könnt im Anschluss die Card nutzen. Alle Animationen und Grenzwerte habe ich soweit eingestellt. Ihr könnt sie natürlich anpassen, aber die Card sollte auf Anhieb funktionieren. Im www Ordner legt ihr bitte noch einen Unterordner an z.B. Energy_Power-Flow-Card und darin speichert/kopiert ihr die css-Datei und das SVG(Bild). Die Card wird im Dashboard erstellt und der Code sieht wie folgt aus. In den ersten Zeilen des Codes müsst ihr das Bild und die CSS entsprechend eurem erstelltem Ordner verlinken.

type: custom:floorplan-card
grid_options:
  columns: full
config:
  console_log_level: info
  defaults:
    hover_action: hover-info
    tap_action: more-info
  image: /local/energy-flow-card/energy-flow-card-small.svg
  stylesheet: /local/energy-flow-card/energy-flow-card.css
  rules:
    - element: soc
      entity: sensor.batterie_ladezustand #Batteriestand in Prozent
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " %" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: batterie100
      entity: sensor.batterie_ladezustand #Batteriestand in Prozent wird berechnet
      state_action:
        action: call-service
        service: floorplan.style_set
        service_data: |
          ${parseFloat(entity.state) > 97 ? 'display:block' : 'display:none'}
    - element: batterie80
      entity: sensor.batterie_ladezustand
      state_action:
        action: call-service
        service: floorplan.style_set
        service_data: |
          ${parseFloat(entity.state) > 80 ? 'display:block' : 'display:none'}
    - element: batterie60
      entity: sensor.batterie_ladezustand
      state_action:
        action: call-service
        service: floorplan.style_set
        service_data: |
          ${parseFloat(entity.state) > 60 ? 'display:block' : 'display:none'}
    - element: batterie40
      entity: sensor.batterie_ladezustand
      state_action:
        action: call-service
        service: floorplan.style_set
        service_data: |
          ${parseFloat(entity.state) > 40 ? 'display:block' : 'display:none'}
    - element: batterie20
      entity: sensor.batterie_ladezustand
      state_action:
        action: call-service
        service: floorplan.style_set
        service_data: |
          ${parseFloat(entity.state) > 1 ? 'display:block' : 'display:none'}
    - element: dreieckbatteriein
      entity: sensor.acpowerzubatterie_energy_power #Batterie Eingangsleistung Watt
      state_action:
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 30) ?
            'display:block' : 'display:none'}
    - element: dreieckbatterieout
      entity: sensor.acpowervonbatterie_energy_power #Batterie Ausgangsleistung Watt
      state_action:
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0.1) ?
            'opacity:1' : 'opacity:0'}
    - element: batteriein
      entity: sensor.acpowerzubatterie_energy_power #Batterie Eingangsleistung Watt
      state_action:
        - service: floorplan.class_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 30) ?
            "batteriein" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 30) ?
            "display:block" : "display:none"}
    - element: batterieoutani
      entity: sensor.acpowervonbatterie_energy_power #Batterie Ausgangsleistung Watt
      state_action:
        - service: floorplan.class_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 10) ?
            "hausin" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 10) ?
            "display:block" : "display:none"}
    - element: solaroutani
      entities:
        - sensor.total_solar_power_kombiniert #Solareingangsleistung Watt
        - sensor.total_power_kombiniert       #Hausverbauch Watt
      state_action:
        - service: floorplan.class_set
          service_data: |-
            ${(
              states['sensor.total_solar_power_kombiniert'].state !== undefined &&
              states['sensor.total_power_kombiniert'].state !== undefined &&
              parseFloat(states['sensor.total_solar_power_kombiniert'].state) >= parseFloat(states['sensor.total_power_kombiniert'].state)
            ) ? "hausin" : ""}
        - service: floorplan.style_set
          service_data: |-
            ${(
              states['sensor.total_solar_power_kombiniert'].state !== undefined &&
              states['sensor.total_power_kombiniert'].state !== undefined &&
              parseFloat(states['sensor.total_solar_power_kombiniert'].state) >= parseFloat(states['sensor.total_power_kombiniert'].state)
            ) ? "display:block" : "display:none"}
    - element: hausin
      entities:
        - sensor.total_solar_power_kombiniert #Solareingangsleistung Watt
        - sensor.total_power_kombiniert       #Hausverbauch Watt
      state_action:
        - service: floorplan.class_set
          service_data: |-
            ${(
              states['sensor.total_power_kombiniert'] &&
              states['sensor.total_solar_power_kombiniert'] &&
              parseFloat(states['sensor.total_power_kombiniert'].state) >= parseFloat(states['sensor.total_solar_power_kombiniert'].state)
            ) ? "hausin" : ""}
        - service: floorplan.style_set
          service_data: |-
            ${(
              states['sensor.total_power_kombiniert'] &&
              states['sensor.total_solar_power_kombiniert'] &&
              parseFloat(states['sensor.total_power_kombiniert'].state) >= parseFloat(states['sensor.total_solar_power_kombiniert'].state)
            ) ? "display:block" : "display:none"}
    - element: solarin
      entity: sensor.total_solar_power_kombiniert #Solareingangsleistung Watt
      state_action:
        - service: floorplan.class_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 10) ?
            "solarin" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 10) ?
            "display:block" : "display:none"}
    - element: netzin # Sensor sollte positive und negative Werte haben, Rest wird berechnet
      entity: sensor.total_power #Netzbezug Watt von extern 
      state_action:
        - service: floorplan.class_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 10) ?
            "netzin" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 10) ?
            "display:block" : "display:none"}
    - element: netzout # Sensor sollte positive und negative Werte haben, Rest wird berechnet
      entity: sensor.total_power #Netzeinspeisung Watt in extern 
      state_action:
        - service: floorplan.class_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) < 0) ?
            "netzout" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) < 0) ?
            "display:block" : "display:none"}
    - element: hausin
      entity: sensor.acpowervonbatterie_energy_power #Batterie Ausgangsleistung Watt
      state_action:
        action: call-service
        service: floorplan.class_set
        service_data: >-
          ${(parseFloat(entity.state) > 0) ? 'hausin batteriebetrieb' :
          'hausin'}    
    - element: solarleistung
      entity: sensor.erzeugzung_taglich_kombination_solaranlagen #Solareingang Heute in kWh 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " kWh" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: solarleistungwatt
      entity: sensor.total_solar_power_kombiniert  #Solareingangsleistung aktuell in Watt 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " W" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: batterie
      entity: sensor.acpowerzubatterie_energy_today #Batterieeingang Heute in kWh 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0.1) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " kWh" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: batterieinwatt
      entity: sensor.acpowerzubatterie_energy_power #Batterie Eingangsleistung Watt
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 30) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " W" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 30) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: batterieout
      entity: sensor.acpowervonbatterie_energy_today #Batterieausgang Heute in kWh 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0.1) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " kWh" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: batterieoutwatt
      entity: sensor.acpowervonbatterie_energy_power #Batterie Ausgangsleistung Watt
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " W" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: hausverbrauchwatt
      entity: sensor.total_power_kombiniert #Hausverbauch aktuell Leistung in Watt
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " W" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: hausverbrauch
      entity: sensor.verbrauch_taglich_nach_abzug #Hausverbauch Heute in kWh
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " kWh" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: netzbezug
      entity: sensor.stromverbrauch_taglich #Netzbezug Heute in kWh von extern 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " kWh" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: netztbezugwatt 
      entity: sensor.total_power #Netzbezug Watt von extern 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " W" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
    - element: netzeinspeisung
      entity: sensor.solar_netzeinspeisung_kwh_taglich #Netzeinspeisung Heute in kWh in extern 
      state_action:
        - service: floorplan.text_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0.1) ?
            (Math.round(entity.state * 10) / 10).toString().replace(".", ",") +
            " kWh" : ""}
        - service: floorplan.style_set
          service_data: >-
            ${(entity.state !== undefined && parseFloat(entity.state) > 0) ?
            'display:block' : 'display:none'}
        - service: floorplan.class_set
          service_data:
            class: static-value
card_mod:
  style: |
    ha-card {
      background: none !important;   
      box-shadow: none !important;
      border: none;
    }

Ich habe ein neues github angefangen, darin sammel ich meine custom-cards, blueprints, esp-home-projekte und emoji. Wird sich in Zukunft sicherlich noch weiter füllen. GitHub - jayjojayson/HomeAssistant-Tools_Utilities_Gadgets: Home Assistant - Tools, Utilities & Gadgets (Collection about my HA Stuff). Wer Interesse hat, kann gerne vorbeischauen, ist wie gesagt noch im Aufbau.

EDIT: Für bessere Übersicht und welcher Sensor wo eingetragen werden muss, habe ich entsprechende Notizen eingefügt.

13 „Gefällt mir“

Ergänzungen zum Thema:

Für den Hausverbrauch müsst ihr euch zwei Sensoren (kWh und Watt) anlegen, falls nicht schon vorhanden. Da das bei jedem etwas unterschiedlich ist, hatte ich kein Bespiel erstellt. Bei mir sieht der beispielsweise so aus und ich erhalte damit einen Wert für den verrechneten Hausstromverbrauch. Das ist aber halt immer Geschmacksache, der eine möchte eine verrechneten Werte der andere einen Gesamtwert. Den Sensor könnt ihr daher erstellen, wie ihr möchtet.

- sensor:
  - name: "Verbrauch taglich nach Abzug kWh"
    unique_id: verbrauch_taglich_kWh
    unit_of_measurement: "kWh"
    state_class: total_increasing
    device_class: energy
    state: >
      {% set stromverbrauch = states('sensor.stromverbrauch_taglich') | float(0) %}
      {% set batterieent = states('sensor.acpowervonbatterie_energy_today') | float(0) %}
      {% set erzeugung = states('sensor.erzeugzung_taglich_nach_abzug_einspeisung') | float(0) %}
      {% set batterie = states('sensor.acpowerzubatterie_energy_today') | float(0) %}
      {% set einspeisung = states('sensor.solar_netzeinspeisung_kwh_taglich') | float(0) %}
      {{ (stromverbrauch + batterieent + erzeugung - einspeisung - batterie) | round(2) }}

Hier noch der Sensor, wie ich den tatsächlichen Hausstrom in Watt errechne. Der Sensor total_power liefert bei mir einen verechneten Wert aus Verbrauch und Einspeisung, daher muss ich wieder hinzuaddieren.

- sensor:
  - name: "Total Power kombiniert" #Verechnet, Solar, Batterie und Verbrauch gegeneinander
    device_class: power
    unit_of_measurement: "W"
    state: > 
      {% set verbrauch = states('sensor.total_power') | float(0) %}
      {% set solar = states('sensor.growatt_outpowerwatt') | float(0) %}
      {% set solarzwei = states('sensor.opendtu_a8067c_ac_power') | float(0) %}
      {% set batterie = states('sensor.acpowervonbatterie_energy_power') | float(0) %}
      {% set kombiniert = solar + solarzwei + batterie + verbrauch %}
      {{ kombiniert | round(1) }}

Würde mich sehr über Feedback freuen, viel Spaß beim nachbauen… :slight_smile:

1 „Gefällt mir“

Super Karte gefällt mir.

Installiert habe ich sie.
Aber es scheitert bei: Welche Entität ersetzt was.
Ist mir nicht ganz klar. Für meine Balcon PV mit Anker 2 AC.
Bin da noch am Rätzeln
Gruß

2 „Gefällt mir“

Hi, freut mich, wenn sie dir gefällt. Ich habe versucht die Entitäten logisch zu benennen. Du brauchst folgende Sensoren

  • Batterieladezustand
  • Batteriein kwh
  • Batteriein watt
  • Batterieout kwh
  • Batterieout watt
  • Solarinput kwh
  • Solarinput watt
  • Hausin kwh (Gesamtverbrauch)
  • Hausin watt
  • Netzinput kwh
  • Netzinput watt
  • Netzout kwh

Die Bezeichnungen sollten soweit klar sein, dann danach im Code suchen und entsprechend ersetzen. Kannst mir auch deine Entitäten schicken, dann setze ich sie für dich ein. :slight_smile:

1 „Gefällt mir“

schreib doch bitte deine jetzigen Entitäten (im code) noch hinten an.
Alles mit Batterie ist erledigt.
Was in deinem Code ist Leistung oder Energie. Schwer zu erkennen.
Wie soll ich an gewisse (Tägliche Werte Kommen) da diese ja bei mit vom Energie Dashboard berechnet werden.?
( Tägliche)

Muss ich noch Verbrauchs Zähler anlegen?

(type: energy-distribution
link_dashboard: true)

gruss

  • element: solaroutani ???
    entities:
    - sensor.total_solar_power_kombiniert
    - sensor.total_power_kombiniert

  • element: hausin ??
    entities:
    - sensor.total_solar_power_kombiniert
    - sensor.total_power_kombiniert

  • element: solarin ??
    entity: sensor.total_solar_power_kombiniert

1 „Gefällt mir“

Hi, sorry hatte heute keine Zeit. Ich mache dir heute eine Liste fertig und ergänze das noch im Code. :slight_smile:

2 „Gefällt mir“

Alles gut ja kein stress. :smile:

2 „Gefällt mir“

Hi, ich habe den Code jetzt ganz oben entsprechend mit Notizen für die benötigen Sensoren versehen. :slight_smile: Ist auf jeden Fall ein guter Hinweis gewesen und damit sollte klarer sein, wo welcher Sensor verlinkt werden muss. Und noch zur besseren Verständlichkeit, bis Zeile 135 werden die Sensoren für die Animationen verlinkt/aufgeführt und darunter folgen die Sensoren für die reinen Zahlenwerte im Bild.

Für den Hausverbrauch musst du dir einen Sensor anlegen, falls nicht schon vorhanden. Da das bei jedem etwas unterschiedlich ist, habe ich kein Bespiel erstellt. Bei mir sieht der beispielsweise so aus und ich erhalte damit einen Wert für den verrechneten Hausstromverbrauch:

- sensor:
  - name: "Verbrauch taglich nach Abzug kWh"
    unique_id: verbrauch_taglich_kWh
    unit_of_measurement: "kWh"
    state_class: total_increasing
    device_class: energy
    state: >
      {% set stromverbrauch = states('sensor.stromverbrauch_taglich') | float(0) %}
      {% set batterieent = states('sensor.acpowervonbatterie_energy_today') | float(0) %}
      {% set erzeugung = states('sensor.erzeugzung_taglich_nach_abzug_einspeisung') | float(0) %}
      {% set batterie = states('sensor.acpowerzubatterie_energy_today') | float(0) %}
      {% set einspeisung = states('sensor.solar_netzeinspeisung_kwh_taglich') | float(0) %}
      {{ (stromverbrauch + batterieent + erzeugung - einspeisung - batterie) | round(2) }}

Hi, bist du weitergekommen mit dem Hausverbrauch und das ich die Notizen oben hinzugefügt habe, hast du gesehen?

Ja vielen Dank habe ich gesehen.
Bin aber noch nicht dazugekommen.
Muss mir erst noch Helfer u. Verbrauchsensoren überlegen und basteln für Hausverbrauch, Täglich usw. da dieses momentan mein Energie Dashboard berechnet.
Man müsste diese Daten abgreifen können.
So wie bei der Power distribution Card.
type: energy-distribution
link_dashboard: true

Gruss

Im Prinzip brauchst du nur einen Wert für den täglichen Hausverbrauch. Die restlichen Werte werden ja durch Solar, Batterie und Stromzähler bereitgestellt. Ich schaue mal, ob ich die Berechnung direkt in der Card vielleicht hinbekomme.

Und noch andere.

z.B Hausverbrauch momentan Leistung (W)
oder Netz Einspeisung und Verbrauch täglich usw.

Und die Solar Leistung wird nicht im Floorplan angezeigt bleibt auf 10.2 W

Gruss

Für den Hausverbrauch momentan bekomme ich bei mir über den Shelly 3EM Pro einen Wert, dort ist das Solar schon schon abgezogen, also reiner Verbrauch vom Netz. Bekommst du da nicht ähnliche Werte, womit liest du deinen Stromzähler aus?

Stimmt für Netzeinspeisung habe ich mir auch auch einen Sensor angelegt. Hier so greife ich die Werte vom Shelly einschließlich Netzeinspeisung ab:

# Shelly 3em
# Stromverbrauch Shelly 3em Pro auslesen. Die aktuellen Verbräuche/Erträge je Phase werden in einen Wert zusammengefasst
- sensor:
  - name: "Total Power"
    device_class: power
    state_class: measurement
    unit_of_measurement: "W"
    state: >
      {{
        (
          states('sensor.shellypro3em_08d1f9130908_phase_a_active_power')|float(0) +
          states('sensor.shellypro3em_08d1f9130908_phase_b_active_power')|float(0) +
          states('sensor.shellypro3em_08d1f9130908_phase_c_active_power')|float(0)
        ) | round(1)
      }}

# Dann wird ermittelt ob sich der Sensor im positiven Bereich bewegt, was Verbrauch
# bedeutet. Bei negativen Werten (Netzeinspeisung), wird der Sensor auf 0 gesetzt
- sensor:
  - name: "Total Power Nur Verbrauch" #Das ist der reine Verbrauch ohne Einspeisungen ins Netz
    unique_id: Stromleistung_nur_Verbrauch
    device_class: power
    unit_of_measurement: "W"
    state: "{{ states('sensor.total_power')|float(0) if states('sensor.total_power')| int > 0 else 0 }}"

# Die folgenden beiden Sensoren ermitteln Netzeinspeisung anhand eines negativen
# Wertes. Ansonsten wird der Sensor auf 0 gestellt. In einem weiteren Sensor wird dann
# der negative Wert in einen positiven umgewandelt und wir haben den tatsächlichen
# Netzeinspeisewert
- sensor:
  - name: "Solar Einspeisung Ausgelesen-negativ" #Das sind die reinen Einspeisungen ins Netz
    device_class: power
    unit_of_measurement: "W"
    state: "{{ states('sensor.total_power')|float(0) if states('sensor.total_power')| int < 1 else 0 }}"
- sensor:
  - name: "Solar Einspeisung Normiert-positiver_wert" #Das sind die reinen Einspeisungen ins Netz in einen positiven Wert verwandelt
    device_class: power
    unit_of_measurement: "W"
    state: "{{ states('sensor.solar_einspeisung_ausgelesen_negativ')|float(0) * -1 | round (3) }}"

10.2W ist der Füllwert, der standardmäßig angezeigt wird, so lange der entsprechende Sensor nicht hinterlegt ist.

Der grüne Punkt in der Animation für Solarleistung bewegt sich aber? Dann hast du einfach noch in Zeile 192 vergessen, den Sensor ebenfalls anzupassen. (Bis Zeile 135 werden die Sensoren für die Animationen verlinkt/aufgeführt und darunter folgen die Sensoren für die reinen Zahlenwerte im Bild.)

Verständnis Problem
Unter Hausverbrauch verstehe ich was anderes .
Warum " dort ist das Solar schon schon abgezogen"
Hausverbrauch ist was verbrauche ich momentan an Strom oder Leistung.
Egal von wo. Ob PV oder Netz.

Der den Shelly 3EM benutze ich momentan nur für die „Null Einspeisung Anker 2 AC“

Welche Entität des 3EM soll das sein wo das Solar abgezogen ist?

Meine Verbrauchswerte Zähler via Tasmota (SML) Lesekopf Eigenbau (ESP)

Gruß
Wolfgang

Ihr redet bestimmt aneinander vorbei. In der Anker App wird ja der aktuelle Verbrauch vom Haus angezeigt oder besser was das Haus anfordert.

Über den Shelly kann man sich das bereinigt anzeigen lassen was Haus aktuell an verbrauch hat ( der Wert kann auch -sein wenn PV zu viel liefert und zum Energieversorger was einspeist.

Bei mir heißt die Entität
sensor.shelly_pro_3em_total_active_power


Die Anker App zeigt z.B

1 „Gefällt mir“

Total active power des 3em ist momentan Netzbezug oder Netzeinspeisung (Leistung) aber nicht mein Hausverbrauch .

Gruss

Wenn kein Netzbezug kein Hausverbruch.

Das ist nicht korrekt wenn die PV oder Speicher liefert!
Unter Hausverbrauch möchte ich sehen was ich momentan an Energie verbrauche egal wer liefert.

Gruss

für den Shelly aber oder egal. Oder stehe ich auf dem Schlauch? Dem Shelly ist es doch egal von wo der Strom kommt. Solange das Haus dann Richtung 0 verbrauch geht. Mein Stromzähler zeigt ±10 Watt genau die Werte an wie der Shelly.

Ah verstehe. Das habe ich so noch nicht hinbekommen wie du das meinst.