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) :
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