Meine kleine Sammlung an Template-Senosren

Da du auf ein 7monate alten Beitrag antwortest und es die template Sensoren (im UI) erst seit irgendwann letzten Jahres gibt, wenn ich mich recht erinnere.

LG

1 „Gefällt mir“

Genau, das wollte ich auch schreiben. Wenn ich mich nicht komplett täusche, wurde der Helfer nach dem Beitrag eingeführt.

@guezli , @totow Habe mich von der Kategorie Anleitungen blenden lassen. Und der Filter war, glaube ich, auf Angesagte Themen eingestellt. Habe mir das Datum nicht angeschaut! :see_no_evil:
So habe ich zumindest den alten Thread wieder aus der Versenkung geholt. :grinning:

Gruß
Osorkon

Da sich mit 2024.3 die Handhabung der Wetterdaten für Templates ändert, habe ich mich spontan entschieden meine erstellten Sensoren aus der templates.yaml als Beispiel zu teilen:

- trigger:
    - platform: state
      entity_id: weather.home
    - platform: event
      event_type: event_template_reloaded
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.home
      data:
        type: daily
      response_variable: dwd_forecast
  sensor:
    - name: Hoechsttemperatur
      device_class: temperature
      unique_id: temp_high
      unit_of_measurement: °C
      state:  "{{ (( dwd_forecast['weather.home'].forecast |selectattr('datetime', '<=', (now().replace(hour=23,minute=59)).isoformat())| map(attribute='temperature') | list | max )) }}"
    - name: Tiefsttemperatur
      device_class: temperature
      unique_id: temp_low
      unit_of_measurement: °C
      state: "{{ dwd_forecast['weather.home'].forecast[0].templow | round(0) }}"
    - name: Tiefsttemperatur ueber 3 Tage
      unique_id: weather_templow_3_days
      unit_of_measurement: °C
      state: "{{ (( dwd_forecast['weather.home'].forecast[0].templow + dwd_forecast['weather.home'].forecast[1].templow + dwd_forecast['weather.home'].forecast[2].templow) / 3) | round(0) | float }}"
      attributes:
        forecast: "{{ dwd_forecast['weather.home'].forecast }}"

weather.home ist in diesem Falle natürlich meine spezielle Wetter-Entität und muss in dem Fall durch eure persönliche Wetter-Entität getauscht werden.
Die unique_id darf natürlich auch in eurem System noch nicht vorhanden sein und muss ggf. angepasst werden.

Ansonsten hat @simon42 das Thema ja auch beleuchet:
Die Zukunft der Wetterdaten: Vorhersagen ab Home Assistant 2024.3 verstehen (youtube.com)

1 „Gefällt mir“

Mit der HACS-DWD-Integration geht es aber auch weiterhin ohne separaten
Service-call.
Habe ich hier beschrieben:

Gut gemeint aber mit DWD ist die nächste Station zu meinem Standort zu weit weg, um verlässlich zu sein.
Und spätestens für die Berechnung der Tieftemperatur über die nächsten 3 Tage brauche ich den Servicecall :wink:

1 „Gefällt mir“

Aus irgend einem Grund erhalte ich folgende Fehlermeldung, wenn ich das in meine templates.yaml kopiere: “end of the stream or a document separator is expected (15:1)”

15:1 ist dann der Eintrag “senor:”

Was mache ich falsch?

Falls du wirklich “senor:” da stehen hast, wäre das der Fehler.
Ansonsten kontrolliere mal bitte, ob vor sensor: wirklich zwei Leerzeichen sind

nein, da steht sensor: das war ein Tippfehler hier im Forum. Es war glaube ich wirklich mal wieder ein fehlendes Leerzeichen. Kannst du mir vllt auch noch sagen, wie ich an die Uhrzeit der Tageshöchstzeit herankomme? Ich bräuchte als Rückgabe die Zeit der vorhergesagten Tageshöchsttemperatur (zu diesem Zeitpunkt möchte ich Warmwasser mit der Wärmepumpe erzeugen).

Aus irgendeinem Grund bekomme ich aber jetzt in Zeile 325 meiner templates.yaml die Fehlermeldung: ‘name’ is an invalid option for ‘template’

Ich finde einfach keinen Fehler und es ist alles exakt so aufgebaut, wie die 300 Zeilen davor auch schon. YAML Code macht mich fertig.

Das ist meist ein Problem mit der Einrückung. Die Sensornamensblöcke sollten immer gleich eingerückt sein - sprich die gleiche Anzahl an Leerzeichen davor haben. Das scheint in Zeile 325 im Vergleich zu den vorherigen Einträgen nicht der Fall zu sein (ohne den Code gesehen zu haben).

Ja, das habe ich genau so vermutet, aber es ist eben exakt identisch eingerückt, wie auch alle Zeilen zuvor.

Zeig uns doch den Code, dann ist das Fehler finden einfacher

2 „Gefällt mir“

So, bin wieder aus dem Urlaub zurück und konnte mich endlich nochmal damit befassen, ich kann keinen Fehler finden, aber das heißt sicher nichts. Hier die komplette Templates.yaml

- trigger:
    - platform: state
      entity_id: weather.xxxx
    - platform: event
      event_type: event_template_reloaded
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.xxxx
      data:
        type: hourly 
      response_variable: stundenvorhersage

  sensor:

#Wetter
- name: Hoechsttemperatur
  device_class: temperature
  unique_id: temp_high
  unit_of_measurement: °C
  state:  "{{ (( wettervorhersage['weather.xxxx'].forecast |selectattr('datetime', '<=', (now().replace(hour=23,minute=59)).isoformat())| map(attribute='temperature') | list | max )) }}"
- name: Tiefsttemperatur
  device_class: temperature
  unique_id: temp_low
  unit_of_measurement: °C
  state: "{{ wettervorhersage['weather.xxxx'].forecast[0].templow | round(0) }}"

- name: Temperatur-Vorhersage der nächsten Stunde
  unique_id: temperature_forecast_next_hour
  state: "{{ stundenvorhersage['weather.xxxx'].forecast[1].temperature }}"
  unit_of_measurement: °C
- name: Bedingungs-Vorhersage der nächsten Stunde
  unique_id: condition_forecast_next_hour
  state: "{{ stundenvorhersage['weather.xxxx'].forecast[1].condition }}"

#PV und Akku
- name: "Bedarfsleistung"
  unit_of_measurement: 'W'
  device_class: "power"
  state_class: "measurement"
  state: '{{ (states("sensor.psupply") |float(0) + states("sensor.sn_1930030811_metering_power_absorbed") | float(0) + states("sensor.sn_3002897465_battery_power_discharge_total") | float(0) - states("sensor.sn_3002897465_battery_power_charge_total") | float(0) - states("sensor.psupply_2") | float(0) )| round (1)}}'

- name: "PV-Direktverbrauchsleistung"
  unit_of_measurement: 'W'
  device_class: "power"
  state_class: "measurement"
  state: '{{ (states("sensor.psupply") |float(0) - states("sensor.sn_3002897465_battery_power_charge_total") | float(0) - states("sensor.psupply_2") | float(0)) | round(1)}}'

- name: 'Batterieladung_gesamt_gerundet'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ states("sensor.sn_3002897465_battery_charge_total") |float(0) |round(1) }}'

- name: 'Batterieentladung_gesamt_gerundet'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ states("sensor.sn_3002897465_battery_discharge_total") |float(0) |round(1) }}'

- name: 'Batterie_Nutzungsgrad'
  unit_of_measurement: "%"
  state: >-
          {% set ladung = states('sensor.sn_3002897465_battery_charge_total') | float(0) %}
          {% set entladung = states('sensor.sn_3002897465_battery_discharge_total') | float(0) %}
          {{ ((entladung / ladung) * 100) | round(1) }}


# Tagesverbräuche/-statistik
- name: 'Gesamtverbrauch_heute'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ (states("sensor.solarproduktion_heute") |float + states("sensor.batterieentladung_heute") |float - states("sensor.batterieladung_heute") | float - states("sensor.einspeisung_heute") |float + states("sensor.netzbezug_heute_gerundet") |float) |round(1)}}'
  
- name: 'Netzbezug_heute_gerundet'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ states("sensor.Netzbezug_heute") |float |round(1) }}'

- name: 'Batterieladung_heute_gerundet'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ states("sensor.batterieladung_heute") |float |round(1) }}'

- name: 'Batterieentladung_heute_gerundet'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ states("sensor.batterieentladung_heute") |float |round(1) }}'
  
- name: 'Direktverbrauch_heute'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ (states("sensor.solarproduktion_heute") |float - states("sensor.einspeisung_heute") |float - states("sensor.batterieladung_heute") |float) |round(1) }}'
  
- name: 'Autarkie-Grad'
  unit_of_measurement: "%"
  state: >-
        {% if is_state('sensor.direktverbrauch_heute', '0.0') or is_state('sensor.gesamtverbrauch_heute', '0.0') or is_state('sensor.sn_3002897465_daily_yield', '0.0') %}
          0.0
        {% else %}
          {% set selfconsumption = (states('sensor.direktverbrauch_heute') | float(0) + states('sensor.sn_3002897465_daily_yield')| float(0)/1000) | float(0) %}
          {% set consumption = states('sensor.gesamtverbrauch_heute') | float(0) %}
          {{ ((selfconsumption / consumption) * 100) | round(1) }}
        {% endif %}
        
- name: 'Solare-Deckung'
  unit_of_measurement: "%"
  state: >-
        {% if is_state('sensor.solarproduktion_heute', '0.0') or is_state('sensor.gesamtverbrauch_heute', '0.0') %}
          0.0
        {% else %}
          {% set production = states('sensor.solarproduktion_heute') | float(0) %}
          {% set consumption = states('sensor.gesamtverbrauch_heute') | float(0) %}
          {{ ((production / consumption) * 100) | round(1) }}
        {% endif %}
        
- name: 'Netzeinspeisung_%'
  unit_of_measurement: "%"
  state: >-
        {% if is_state('sensor.solarproduktion_heute', '0') or is_state('sensor.einspeisung_heute', '0') %}
          0.0
        {% else %}
          {% set production = states('sensor.solarproduktion_heute') | float(0) %}
          {% set export = states('sensor.einspeisung_heute') | float(0) %}
          {{ ((export / production) * 100) | round(1) }}
        {% endif %}

- name: 'Batteriebeladung_%'
  unit_of_measurement: "%"
  state: >-
        {% if is_state('sensor.solarproduktion_heute', '0') or is_state('sensor.batterieladung_heute', '0') %}
          0.0
        {% else %}
          {% set production = states('sensor.solarproduktion_heute') | float(0) %}
          {% set battery = states('sensor.batterieladung_heute') | float(0)  | round(1)  %}
          {{ ((battery / production) * 100) | round(1) }}
        {% endif %}

- name: 'Direktverbrauch_%'
  unit_of_measurement: "%"
  state: >-
        {% if is_state('sensor.solarproduktion_heute', '0.0') or is_state('sensor.direktverbrauch_heute', '0.0') %}
          0.0
        {% else %}
          {% set production = states('sensor.solarproduktion_heute') | float(0) %}
          {% set direkt = states('sensor.direktverbrauch_heute') | float(0) %}
          {{ ((direkt / production) * 100) | round(1) }}
        {% endif %}
        
# Monatsverbräuche/-statistik
- name: 'Gesamtverbrauch_monat'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ (states("sensor.solarproduktion_monat") |float + states("sensor.batterieentladung_monat") |float - states("sensor.batterieladung_monat") | float - states("sensor.einspeisung_monat") |float + states("sensor.netzbezug_monat") |float) |round(1)}}'

- name: 'Direktverbrauch_monat'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: '{{ (states("sensor.solarproduktion_monat") |float - states("sensor.einspeisung_monat") |float - states("sensor.batterieladung_monat") |float) |round(1) }}'
  
#Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe #Wärmepumpe

 #COPs
- name: 'COP Heizung'
  state: >
    {% set total_power = (states('sensor.strom_kompressor_heizung') | float(0)) + (states('sensor.heizstab_heizung') | float(0)) %}
    
    {% if total_power == 0 %}
      -
    {% else %}
      {{ ((states('sensor.waerme_heizung_heute') | float(0)) / total_power) | round(1)}}
    {% endif %}

- name: 'COP Heizung_graph'
  unit_of_measurement: 'COP'
  state: >
    {% set total_power = (states('sensor.strom_kompressor_heizung') | float(0)) + (states('sensor.heizstab_heizung') | float(0)) %}
    
    {% if total_power == 0 %}
      0
    {% else %}
      {{ ((states('sensor.waerme_heizung_heute') | float(0)) / total_power) }}
    {% endif %}

- name: 'COP Heizung ohne Heizstab'
  state: >
    {% set total_power = (states('sensor.strom_kompressor_heizung') | float(0)) %}
    
    {% if total_power == 0 %}
      -
    {% else %}
      {{ ((states('sensor.waerme_heizung_heute') | float(0)) / total_power)|round(1) }}
    {% endif %}

- name: 'COP WW'
  state: >
    {% set total_power = (states('sensor.strom_kompressor_ww') | float(0)) + (states('sensor.heizstab_ww') | float(0)) %}
    
    {% if total_power == 0 %}
      -
    {% else %}
      {{ ((states('sensor.warme_ww_heute') | float(0)) / total_power) | round(1)}}
    {% endif %}
    
- name: 'COP WW_graph'
  unit_of_measurement: 'COP'
  state: >
    {% set total_power = (states('sensor.strom_kompressor_ww') | float(0)) + (states('sensor.heizstab_ww') | float(0)) %}
    
    {% if total_power == 0 %}
      0
    {% else %}
      {{ ((states('sensor.warme_ww_heute') | float(0)) / total_power) }}
    {% endif %}

- name: 'COP WW ohne Heizstab'
  state: >
    {% set total_power = (states('sensor.strom_kompressor_ww') | float(0)) %}
    
    {% if total_power == 0 %}
      -
    {% else %}
      {{ ((states('sensor.warme_ww_heute') | float(0)) / total_power)|round(1) }}
    {% endif %}

- name: 'COP Shelly'
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float / states('sensor.warmepumpe_heute') |float) }}"

- name: 'COP_Shelly'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float / states('sensor.warmepumpe_heute') |float)|round(1) }}"

- name: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float(0) / states('sensor.strom_wp_gesamt_heute') |float(0)) |round(1) }}"

- name: 'COP_graph'
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float(0) / states('sensor.strom_wp_gesamt_heute') |float(0)) }}"

- name: 'COP_ungerundet'
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float(0) / states('sensor.strom_wp_gesamt_heute') |float(0)) }}"
  
- name: 'COP ohne Heizstab'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float(0) / states('sensor.strom_kompressor_gesamt_heute') |float(0)) |round(1) }}"

- name: 'COP lifetime'
  state: "{{ (states('sensor.boiler_nrgtotal') |float / states('sensor.boiler_metertotal') |float) |round(1) }}"

- name: 'COP lifetime_graph'
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.boiler_nrgtotal') |float / states('sensor.boiler_metertotal') |float) }}"

 #TAZ
- name: 'TAZ Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_heute') |float / states('sensor.warmepumpe_heute') |float) }}"

- name: 'TAZ Heizung Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_heizung_heute') |float / states('sensor.strom_wp_shelly_heute_heizen') |float) }}"

- name: 'TAZ WW Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.warme_ww_heute') |float / states('sensor.strom_wp_shelly_heute_warmwasser') |float) }}"
  
- name: 'TAZ Shelly round' 
  state: "{{ (states('sensor.waerme_gesamt_heute') |float / states('sensor.warmepumpe_heute') |float)|round(1) }}"

- name: 'TAZ Heizung Shelly round' 
  state: "{{ (states('sensor.waerme_heizung_heute') |float / states('sensor.strom_wp_shelly_heute_heizen') |float) |round(1)}}"

- name: 'TAZ WW Shelly round'
  state: >
    {% if is_state('sensor.warme_ww_heute', '0') or is_state('sensor.strom_wp_shelly_heute_warmwasser', '0.0') or is_state('sensor.strom_wp_shelly_heute_warmwasser', 'nicht verfügbar') or is_state('sensor.strom_wp_shelly_heute_warmwasser', 'unknown') %}
     -
    {% else %}
     {{ states('sensor.warme_ww_heute') | float / states('sensor.strom_wp_shelly_heute_warmwasser') | float }}
    {% endif %}
  
 #MAZ
- name: 'MAZ'
  state: "{{ (states('sensor.waerme_gesamt_monat') |float / states('sensor.strom_wp_gesamt_monat') |float) |round(1) }}"

- name: 'MAZ Heizung'
  state: "{{ (states('sensor.waerme_heizung_monat') |float / (states('sensor.strom_wp_heizung_monat') |float + states('sensor.strom_wp_hs_heizung_monat') |float))|round(1) }}"

- name: 'MAZ Heizung ohne Heizstab'
  state: "{{ (states('sensor.waerme_heizung_monat') |float / states('sensor.strom_wp_heizung_monat') |float)|round(1) }}"

- name: 'MAZ WW'
  state: "{{ (states('sensor.warme_ww_monat') |float / (states('sensor.strom_wp_hs_ww_monat') |float + states('sensor.strom_wp_ww_monat') |float)) |round(1) }}"

- name: 'MAZ WW ohne Heizstab'
  state: "{{ (states('sensor.warme_ww_monat') |float / states('sensor.strom_wp_ww_monat') |float ) |round(1) }}"
  
- name: 'MAZ Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_monat') |float / states('sensor.warmepumpe_monat') |float) }}"
  
- name: 'MAZ Heizung Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_heizung_monat') |float / states('sensor.strom_wp_shelly_monat_heizen') |float) }}"
  
- name: 'MAZ WW Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.warme_ww_monat') |float / states('sensor.strom_wp_shelly_monat_warmwasser') |float) }}"

- name: 'MAZ Shelly round' 
  state: "{{ (states('sensor.waerme_gesamt_monat') |float / states('sensor.warmepumpe_monat') |float) |round(1) }}"
  
- name: 'MAZ Heizung Shelly round' 
  state: "{{ (states('sensor.waerme_heizung_monat') |float / states('sensor.strom_wp_shelly_monat_heizen') |float)|round(1) }}"
  
- name: 'MAZ WW Shelly round' 
  state: "{{ (states('sensor.warme_ww_monat') |float / states('sensor.strom_wp_shelly_monat_warmwasser') |float)|round(1) }}"

 #JAZ
- name: 'JAZ'
  state: "{{ (states('sensor.waerme_gesamt_jahr') |float / states('sensor.strom_wp_gesamt_jahr') |float) |round(1) }}"

- name: 'JAZ Heizung'
  state: "{{ (states('sensor.waerme_heizung_jahr') |float / (states('sensor.strom_wp_heizung_jahr') |float + states('sensor.strom_wp_hs_heizung_jahr') |float)) |round(1) }}"

- name: 'JAZ Heizung ohne Heizstab'
  state: "{{ (states('sensor.waerme_heizung_jahr') |float / states('sensor.strom_wp_heizung_jahr') |float ) |round(1) }}"

- name: 'JAZ WW'
  state: "{{ (states('sensor.warme_ww_jahr') |float / (states('sensor.strom_wp_hs_ww_jahr') |float + states('sensor.strom_wp_ww_jahr') |float)) |round(1) }}"

- name: 'JAZ WW ohne Heizstab'
  state: "{{ (states('sensor.warme_ww_jahr') |float / states('sensor.strom_wp_ww_jahr') |float) |round(1) }}"

- name: 'JAZ Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_gesamt_jahr') |float / states('sensor.strom_wp_jahr_shelly') |float) }}"
  
- name: 'JAZ Heizung Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.waerme_heizung_jahr') |float / states('sensor.strom_wp_shelly_jahr_heizen') |float) }}"
  
- name: 'JAZ WW Shelly' 
  unit_of_measurement: 'COP'
  state: "{{ (states('sensor.warme_ww_jahr') |float / states('sensor.strom_wp_shelly_jahr_warmwasser') |float) }}"
  
- name: 'JAZ Shelly round' 
  state: "{{ (states('sensor.waerme_gesamt_jahr') |float / states('sensor.strom_wp_jahr_shelly') |float)|round(1) }}"
  
- name: 'JAZ Heizung Shelly round' 
  state: "{{ (states('sensor.waerme_heizung_jahr') |float / states('sensor.strom_wp_shelly_jahr_heizen') |float)|round(1) }}"
  
- name: 'JAZ WW Shelly round' 
  state: "{{ (states('sensor.warme_ww_jahr') |float / states('sensor.strom_wp_shelly_jahr_warmwasser') |float)|round(1) }}"
 
 #Sensoren
- name: 'TC3-TC0'
  unit_of_measurement: 'K'
  state: "{{(states('sensor.boiler_hptc3') |float - states('sensor.boiler_hptc0') | float) | round (1) }}"

- name: 'Spreizung'
  unit_of_measurement: 'K'
  state: "{{ (states('sensor.boiler_curflowtemp')|float - states('sensor.boiler_rettemp')|float)|round(1) }}"
  
- name: '∆Spreizung'
  unit_of_measurement: 'K'
  state: "{{(states('sensor.tc3_tc0') | float - states('sensor.spreizung') |float) |round(1)}}"

- name: 'Spreizung HK1'
  unit_of_measurement: 'K'
  state: "{{ (states('sensor.esphome_waermepumpe_vorlauf_hk1')|float - states('sensor.esphome_waermepumpe_r_cklauf_hk1')|float)|round(1) }}"

- name: 'Spreizung HK1 (T0-RL.HK1)'
  unit_of_measurement: 'K'
  state: "{{ (states('sensor.boiler_curflowtemp')|float - states('sensor.esphome_waermepumpe_r_cklauf_hk1')|float)|round(1) }}"

- name: 'Heizstab Heizung'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: >
    {% set denominator = states('sensor.strom_heizstab_ww_berechnet_heute') |float + states('sensor.strom_heizstab_heizung_berechnet_heute') |float %}
    {% if denominator == 0 %}
      0
    {% else %}
      {{ (states('sensor.strom_heizstab_gesamt_heute') |float * states('sensor.strom_heizstab_heizung_berechnet_heute') |float / denominator) }}
    {% endif %}

- name: 'Heizstab WW'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: >-
   {% set nenner = states('sensor.strom_heizstab_ww_berechnet_heute') | float(0) + states('sensor.strom_heizstab_heizung_berechnet_heute') | float(0) %}
    {% if nenner != 0 %}
     {{ states('sensor.strom_heizstab_gesamt_heute') | float(0) * states('sensor.strom_heizstab_ww_berechnet_heute') | float(0) / nenner }}
    {% else %}
      0
    {% endif %} 

- name: 'Strom Kompressor Heizung'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: "{{ (states('sensor.strom_kompressor_gesamt_heute') |float(0) * states('sensor.strom_kompressor_heizung_berechnet_heute') |float(0) / (states('sensor.strom_kompressor_heizung_berechnet_heute') |float(0) + states('sensor.strom_kompressor_ww_berechnet_heute') |float(0))) |round(2) }}"  

- name: 'Strom Kompressor WW'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: "{{ (states('sensor.strom_kompressor_gesamt_heute') |float * states('sensor.strom_kompressor_ww_berechnet_heute') |float / (states('sensor.strom_kompressor_heizung_berechnet_heute') |float + states('sensor.strom_kompressor_ww_berechnet_heute') |float)) |round(2) }}"

- name: 'Waerme Abtauen heute'
  unit_of_measurement: 'kWh'
  device_class: 'energy'
  state_class: 'total_increasing'
  state: "{{ (states('sensor.warme_gesamt_heute') |float(0) - states('sensor.waerme_gesamt_heute') |float(0)) |round(2) }}"

- name: 'LeistungWaermepumpe_kW'
  unit_of_measurement: 'kW'
  device_class: 'power'
  state_class: 'measurement'
  state: "{{ (states('sensor.shellypro3em_3ce90e6f715c_total_active_power') | float(0)/1000)| round(1)}}"

Alles nach der Zeile
sensor:
muss 4 Leerzeilen nach rechts.

  sensor:
    - name: Hoechsttemperatur
      device_class: temperature
.
.
.

Ab Zeile
#PV und Akku
musst Du erneut mit sensor beginnen, das sind ja neue Template Sensoren die nicht zum dem Trigger Based Template Sensor dazu gehören.

- sensor:
    - name: "Bedarfsleistung"
      unit_of_measurement: 'W'

Gruß
Osorkon

1 „Gefällt mir“

Werde ich gleich testen. Vielen Dank :slightly_smiling_face:

So, es funktioniert :slight_smile: Vielen Dank nochmal. Könnte mir vllt. noch jemand die Frage beantworten, wie ich an die Uhrzeit der Tageshöchsttemperatur herankomme? Ich bräuchte als Rückgabe die Zeit der vorhergesagten Tageshöchsttemperatur (zu diesem Zeitpunkt möchte ich Warmwasser mit der Wärmepumpe erzeugen).

Vielleicht hat jemand einen quick-tipp? Ich habe einen Helfer, Typ Schalter (hier: input_boolean.ventilator_terrasse). Dieser soll beim Tageswechsel (Mitternacht o.ä.) immer auf AN / EIN zurückgesetzt werden, damit die Automatisierungen dazu am nächsten Tag wieder greifen :thinking:
Danke für einen Hinweis :grinning:

Eine einfache Automatisierung.
Auslöser Uhrzeit ist 00:00 Uhr
Aktion Input Boolean XYZ Einschalten.

Gruß
Osorkon

KISS … Danke für den Hinweis :grinning: