Wirkungsgrad Berechnungen mit letztem Wert in Home Assistant

Nicoslav

New member
Hallo Zusammen,

Ich bekomme von meiner Heizung die einzelnen Energiewerte in mein Home Assistant und möchte hieraus den Wirkungsgrad berechnen. Folgende Rechnungen würde ich gerne durchführen:

Gesamtenergie:

Gesamtenergie_Erzeugt = Erzeugte_Energie_Heizung + Erzeugte_Energie_Brauchwasser

Gesamtenergie_Eingebracht = Eingebrachte_Energie_Heizung + Eingebrachte_Energie_Brauchwasser

Erzeugte_Energie_Differenz:

Erzeugte_Energie_Differenz = Gesamtenergie_Erzeugt_Aktueller_Wert - Gesamtenergie_Erzeugt_Letzter_Wert

Eingebrachte_Energie_Differenz:

Eingebrachte_Energie_Differenz = Gesamtenergie_Eingebracht_Aktueller_Wert - Gesamtenergie_Eingebracht_Letzter_Wert

Wirkungsgrad:

Wirkungsgrad = Erzeugte_Energie_Differenz / Eingebrachte_Energie_Differenz

Leider bekomme ich dies nicht so recht hin. Es gibt entweder einen Fehler in der .yaml oder die Werte aktualisieren sich einfach nicht auf dem Dashboard. Wie könnte eine richtige Lösung aussehen? Hier mal mein Dashboard (Letzter Versuch, der Wert aktualisiert sich nicht) :

Code:
sensor:
  - platform: luxtronik
    sensors:
      - group: calculations
        id: ID_WEB_BIV_Stufe_akt
        friendly_name: Bivalenzstufe
        icon: mdi:step-forward-2
      - group: calculations
        id: ID_WEB_WP_BZ_akt
        friendly_name: Betriebszustand
        icon: mdi:state-machine
      - group: calculations
        id: ID_WEB_Time_WPein_akt
        friendly_name: WP läuft seit
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_ZWE1_akt
        friendly_name: ZWE1 läuft seit
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_SSPEIN_akt
        friendly_name:     SSP Ein
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_SSPAUS_akt
        friendly_name:     SSP Aus
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_VDStd_akt
        friendly_name: VD Standby Zeit
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_HRM_akt
        friendly_name: HRM Zeit
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_HRW_akt
        friendly_name:     HRW Zeit
        icon: mdi:clock-start
      - group: calculations
        id: ID_WEB_Time_LGS_akt
        friendly_name: TDI läuft seit
        icon: mdi:clock-start


  # Template-Sensoren
  - platform: template
    sensors:
      # Erzeugte Energie Differenz
       wp_erzeugte_energie_differenz:
        friendly_name: "WP Erzeugte Energie Differenz"
        unit_of_measurement: "kWh"
        value_template: >
          {% set previous = states('input_number.wp_erzeugte_energie_previous_value') | float(0) %}
          {% set current = states('sensor.wp_gesamtenergie_erzeugt') | float(0) %}
          {{ (current - previous) | round(2) }}

      # Eingesetzte Energie Differenz
       wp_eingesetzte_energie_differenz:
        friendly_name: "WP Eingesetzte Energie Differenz"
        unit_of_measurement: "kWh"
        value_template: >
          {% set previous = states('input_number.wp_eingesetzte_energie_previous_value') | float(0) %}
          {% set current = states('sensor.wp_gesamtenergie_eingebracht') | float(0) %}
          {{ (current - previous) | round(2) }}

      # Wirkungsgrad WP
       wp_wirkungsgrad_wp:
        friendly_name: "WP Wirkungsgrad"
        unit_of_measurement: ""
        value_template: >
          {% set erzeugt = states('sensor.wp_erzeugte_energie_differenz') | float(0) %}
          {% set eingesetzt = states('sensor.wp_eingesetzte_energie_differenz') | float(1) %}
          {% if eingesetzt > 0 %}
            {{ (erzeugt / eingesetzt) | round(2) }}
          {% else %}
            0
          {% endif %}

      # Bivalenzstufe Zahl
       wp_bivalenzstufe_zahl:
        friendly_name: "Bivalenzstufe Zahl"
        unit_of_measurement: ""
        value_template: >
          {% set bivalenzstufe = states('sensor.wp_bivalenzstufe') %}
          {% if bivalenzstufe == 'one compressor allowed to run' %}
            1  # one compressor allowed to run
          {% elif bivalenzstufe == 'two compressors allowed to run' %}
            2  # two compressors allowed to run
          {% elif bivalenzstufe == 'additional heat generator allowed' %}
            3  # Zusätzlicher Wärmeerzeuger darf mitlaufen
          {% else %}
            0  # Defaultwert, wenn keiner der Bedingungen zutrifft
          {% endif %}
          
          
          
automation:     
          
          
- id: '1741886598380'
  alias: Automatische Mail
  description: ''
  triggers:
  - entity_id: input_boolean.test_mail
    from: 'off'
    to: 'on'
    trigger: state
  - trigger: state
    entity_id:
    - sensor.wp_vl
    for:
      hours: 0
      minutes: 10
      seconds: 0
  conditions: []
  actions:
  - data:
      message: ***************
      title: ***************
      target: ***************
    action: ***************
  mode: single
- alias: Speichern des aktuellen Werts der Erzeugten Energie
  trigger:
  - platform: state
    entity_id: sensor.wp_gesamtenergie_erzeugt
  action:
  - service: input_number.set_value
    target:
      entity_id: input_number.wp_erzeugte_energie_previous_value
    data:
      value: '{{ states(''sensor.wp_gesamtenergie_erzeugt'') | float(0) }}'
  id: 3c4c3a58eea84c6ea9de08aa25ce2047
- alias: Speichern des aktuellen Werts der Eingesetzten Energie
  trigger:
  - platform: state
    entity_id: sensor.wp_gesamtenergie_eingebracht
  action:
  - service: input_number.set_value
    target:
      entity_id: input_number.wp_eingesetzte_energie_previous_value
    data:
      value: '{{ states(''sensor.wp_gesamtenergie_eingebracht'') | float(0)
        }}'
  id: 6a43db2ce27544ce90a9242f8bab5b7c
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.636
Beiträge
63.651
Mitglieder
6.888
Neuestes Mitglied
nahpets1
Zurück
Oben