Template Sensor für PV Eigenverbrauch

Hallo, ich bin noch recht neu in HA und noch etwas unbedarft was eigene Template Sensoren angeht.

Ich würde gern errechnen wie viel der produzierten Energie ich selbst verbrauche. Neben dem reinen Wert dann auch die sich daraus ergebenen Kosten.

Das Energydashboard stellt ja schon den Selbstverbrauch da. Das dürfte einfach die Differenz zwischen Gesamtproduktion und Einspeisung sein. Genauso bildet der Netzbetreiber die Kosten auch ab. Ich bekomme eine Vergütung für die Einspeisung und eine Rechnung über die selbst verbrauchte Energie.

Es existieren schon zwei notwendige Sensoren um die Differenz zu berechnen. Ich frage die Produktion vom Wechselrichter ab und die an Einspeisung über den Zähler. Im Grunde muss ich jetzt nur die Differenz berechnen und daraus dann noch die € Summe bilden.

Kann mir jemand helfen und ein Beispiel aufzeigen wie so ein einfacher Template Sensor aussieht?

#Strom
template:
  - sensor:
      - name: "Zählerstand"
        unit_of_measurement: kWh
        state_class: total_increasing
        device_class: energy
        state: >
          {% if states('sensor.zaehler_zaehlerstand') == 'unavailable' or states('sensor.zaehler_zaehlerstand') < '1' %}
            {{ states('sensor.zahlerstand') }}
          {% else %}
            {{ states('sensor.zaehler_zaehlerstand') }}
          {% endif %}
  - sensor:
    # Berechnet anhand des Stromzählers die Rückgabe ins Netz, wenn negative Werte ausgegben 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_number(states('sensor.zaehler_verbra< 0 %}
                {{(states('sensor.zae`Vorformatierter Text`hler_verbrauch') | float(0))*-1 | round (3) }}
            {% else %}
                {{(states ('0.0') | float(0)) |round(3) }}
            {% endif %}

Nachtrag:
So ist es bei mir mit einem Tasmota am Stromzähler.

:crayon:by HarryP: Zusammenführung Doppelpost

Danke. Das werde ich mal testen. Kannst du mir die Syntax unter dem State Teil beschreiben? Ich glaube wenn ich das mal verstehe komme ich Ach etwas weiter.

Könnte es analog wie du über die aktuelle Leistung ermitteln. Wüsste aber auch gern wie ich einfach über einen Template Sensor die Differenz zwischen zwei Zählern ermittelt. Bei mir halt Gesamterzeugung - Einspeisung.

Leider nicht so gut kenne ich mich noch nicht aus hab das selber gefunden

Ich habe eine Lösung gefunden und wollte diese hier kurz aufführen.

  - sensor:
      # Berechnet anhand des Stromzählers und der PV-Erzeugung den Eigenverbrauch
      - name: PV Eigenverbrauch
        unique_id: "PVEigenverbrauch"
        icon: mdi:transmission-tower
        unit_of_measurement: W
        device_class: power
        state_class: "measurement"
        state: >
          {% if is_number(states('sensor.aktuelle_leistung')) and states('sensor.aktuelle_leistung') | float(0) < 0 %}
            {{ ( (states('sensor.aktuelle_leistung') | float(0)) + (states('sensor.aktuelle_leistung_pv_anlage') | float(0))) | round (3) }}
          {% else %}
            {{ states('sensor.aktuelle_leistung_pv_anlage') | round (3) }} 
          {% endif %}

Kann mir jemand sagen wie ich den PV Eigenverbrauch als Langzeitstatistik darstellen kann? Ich habe einen Verbrauchshelfer erstellt und möchte den Eigenverbrauch pro Tag als Diagramm anzeigen.

Die Werte passen hier aber nicht. Der Eingangsensor ist der im letzten Post genannte PVEigenverbrauch. Der Sensor liefert Watt.

Wir haben gestern sicherlich keine 357 Kw selbst verbraucht.

image

Wenn Du Dir die entsprechenden Sensoren “bastelst”, kannst Du tolle Sachen damit machen…

Mit welchen Karten hast du das gemacht?
LG

@RobertoCravallo das sieht schick aus. Erst mal muss ich aber überhaupt die richtigen Werte bekommen. Die Darstellung ist dann erst der nächste Schritt. Hast du eine Idee wo der Fehler liegen könnte?

HORSE-SHOE, MUSHROOM und CARD-MOD…

type: custom:flex-horseshoe-card
card_mod: null
style: |
  ha-card {
  left: -31%;
  width: 132%;
  } 
entities:
  - entity: sensor.sunny_boy_grid_power
    decimals: 0
    icon: mdi:solar-power-variant
    name: Solaranlage
    area: Solarstrom
  - entity: sensor.sma_strom_eigenverbrauch_prozent
    decimals: 0
    name: Eigenverbrauch
  - entity: sensor.sma_strom_autarkie_prozent
    decimals: 0
    name: Autargie
show:
  scale_tickmarks: true
  horseshoe_style: lineargradient
layout:
  hlines:
    - id: 0
      xpos: 50
      ypos: 41
      length: 70
      styles:
        - stroke: var(--primary-text-color);
        - stroke-width: 2;
        - opacity: 0.5;
        - stroke-linecap: round;
      color: '#FFF6E3'
  vlines:
    - id: 0
      xpos: 50
      ypos: 56
      length: 20
      styles:
        - stroke: var(--primary-text-color);
        - opacity: 0.5;
        - stroke-width: 2;
        - stroke-linecap: round;
  states:
    - id: 0
      entity_index: 0
      xpos: 50
      ypos: 36
      styles:
        - font-size: 2.8em;
    - id: 1
      entity_index: 1
      xpos: 48
      ypos: 56
      styles:
        - font-size: 2.2em;
        - text-anchor: end;
        - font-style: normal;
        - opacity: 0.7;
    - id: 2
      entity_index: 2
      xpos: 52
      ypos: 56
      styles:
        - font-size: 2.2em;
        - text-anchor: start;
        - font-style: normal;
        - opacity: 0.7;
  names:
    - id: 0
      entity_index: 0
      xpos: 50
      ypos: 94
      styles:
        - font-size: 1.5em;
        - text-transform: capitalize;
    - id: 1
      entity_index: 1
      xpos: 46
      ypos: 62
      styles:
        - font-size: 0.6em;
        - text-anchor: end;
        - opacity: 0.5;
        - text-transform: capitalize;
    - id: 2
      entity_index: 2
      xpos: 54
      ypos: 62
      styles:
        - font-size: 0.6em;
        - text-anchor: start;
        - opacity: 0.5;
        - text-transform: capitalize;
  areas:
    - id: 0
      entity_index: 0
      xpos: 50
      ypos: 76
      styles:
        - font-size: 1.0em;
        - opacity: 0.4;
horseshoe_state:
  color: '#43a047'
horseshoe_scale:
  min: 0
  max: 5000
  color: '#2e7031'
  width: 2
color_stops:
  '1000': '#43a047'
  '2000': '#32CD32'
  '3100': '#ADFF2F'

Sieht dann so aus…

Ich habe es so gemacht. Hoffe es hilft weiter!

####################################################
#                                                  #
#     Autarkie in %                                #
#                                                  #
####################################################
- sensor:
  - name: sma_strom_autarkie_prozent
    unit_of_measurement: "%"
    icon: mdi:percent
    unique_id: 1cc3b7d4-bc80-425c-8ce2-90a1a3ab6b3a
    state: >
      {% set sun_generated = states('sensor.sunny_boy_grid_power') | float(0) %} 
      {% if sun_generated == 0 %}
        0            
      {% else %}  
        {% set electricity_get = states('sensor.sunny_boy_metering_current_consumption') | float(0) %} 
        {% set electricity_percent = (( sun_generated * 100 ) / electricity_get ) | round(0) %} 
        {% if electricity_percent <= 0 %}
          0
        {% elif electricity_percent > 100 %}
          100 
        {% else %}   
          {{ electricity_percent }}
        {% endif %}  
      {% endif %}

####################################################
#                                                  #
#     Eigenverbrauch in %                          #
#                                                  #
####################################################
- sensor:
  - name: sma_strom_eigenverbrauch_prozent
    unit_of_measurement: "%"
    icon: mdi:transmission-tower-import  
    unique_id: 89526d8d-ce87-44b5-a071-33cb25472761
    state: >
      {% set sun_generated = states('sensor.sunny_boy_grid_power') | float(0) %} 
        {% if sun_generated == 0 %}
          0            
        {% else %}  
          {% set electricity_get = states('sensor.sunny_boy_metering_current_consumption') | float(0) %} 
          {% set electricity_percent = (( electricity_get * 100 ) / sun_generated ) | round(0) %} 
          {% if electricity_percent <= 0 %}
            0
          {% elif electricity_percent > 100 %}
            100 
          {% else %}   
            {{ electricity_percent }}
          {% endif %}  
      {% endif %}

2 „Gefällt mir“

super danke!

grafik

bei mir sieht der Template Sensor so aus…

    - name: eigenverbrauch_pv
      device_class: power
      unit_of_measurement: W
      state: "{{ (states('sensor.gesamt_pv') | float) - (states('sensor.power_grid_producing') | float)}}"


Bei 100% wird es eng werden… :wink:

Danke für eure Antworten und interessant Darstellung. Die Kacheln werde ich auch noch versuchen einzubauen. Das sieht echt schick aus.

Leider hilft mir das aber nicht bei meinem Problem der falschen Werte @RobertoCravallo du errechnest Prozentwerte, das ist eine andere Gleichung und hilft mir auch nicht zu erkennen warum das Diagramm falsche Werte anzeigt. Habe ich noch einen Denkfehler das ich aus einem Sensor der Class Power, der mit Livewerte anzeigt keine Daten für eine Langzeitstatistik abnehmen kann?

Bei mir war es recht einfach, die SMA-Integration stellt viele Sensoren aus meinem WR und EM zur Verfügung. Mit welchem WR arbeitet denn Dein System?

Ich habe einen alten Wechselrichter von Danfoss. Die Daten frage ich per Node Red über die Webseite ab. Genau das was Simon auch auf seinem Blogeintrag gemacht hat. Funktioniert gut und stabil. Am Ende sollte es aber egal sein welcher WR dahinter steht. Die Daten kommen ja an und werden als Sensor bereitgestellt.

Ich glaube das Problem ist das der Verbrauchshelfer nicht richtig rechnet. Der Sensor liefert ja sekündlich eine bestimmte Wattzahl und die summiert der Helfer einfach auf. Daher ergeben sich viel zu große Werte. Ich möchte am Ende nur irgendwie darstellen wie viel Energie auf z.B. auf Monatsbasis selbst verbraucht wurden.

Hast Du das Energie Dashboard eingebunden? Dann brauchst Du nur oben einen Zeitraum auswählen…

Die Ansicht kenne ich. Ich möchte nur gern zusätzlich den errechneten Wert als separates Statistik Diagramm direkt auf einem Dashboard anzeigen. Leider scheint HA die errechneten Daten nicht als Entität bereitzustellen.

Hilf da vielleicht der SOLAR-LOG weiter?

Sorry, hatte ich falsch verstanden. Da braucht man wohl spezielle Hardware.

Hi,
wie füge ich die Karte hinzu?
Sorry für die Frage, ich bin relativ neu hier.

@RobertoCravallo
Welche coole Anzeige hast denn da für die Solaranlage genommen?
Hab die Energy flow card aber das ist irgendwie kompakter .)