Wetter-Daten & Vorhesagen; Entitäten werden nicht angelegt

Hallo zusammen! Ich habe das template in meine templates.yaml integriert (ausgelagert aus der configuration.yaml). Leider werden die Entitäten nicht angelegt (Neustart natürlich gemacht).
Den Eintrag habe ich so begonnen:

 # Der neue Weg (forcasts mit s)
  # Tägliche Wettervorhersagen
template:
  - trigger:
      - platform: time_pattern
        minutes: /1

aber auch ohne “template:” kommt nichts… Hat jemand eine Idee?
Vielen Dank!

:crayon:by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)

Hi,
was man im Code lediglich sehen kann, ist dass du minütlich einen Trigger sitzt.
Was interessant wäre, sind die dazugehörige action und der sensor.

Desweiteren schreibst du, der Eintrag wäre in der templates.yaml und somit ist template: nicht nötig.
Ergo würde es so Sinn machen:

# Der neue Weg (forcasts mit s)
  # Tägliche Wettervorhersagen
- trigger:
    - platform: time_pattern
      minutes: /1
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.irgendwas       # dein Wetter-Anbieter
      data:
        type: daily
      response_variable: deine_selbstdefinierte_variable   # definierst du selbst 
  sensor:
    - name: und_jetzt_brauchen_wir_deinen_input_was_hier_noch_steht

Ich hatte es auch ohne “template:” versucht, aber ohne Erfolg. Auch sind mit diesem Code alle anderen Entitäten aus der templates.yaml nicht verfügbar.
Muss ich die response_variable irgendwo anlegen?


  # Der neue Weg (forcasts mit s)
  # Tägliche Wettervorhersagen
  - trigger:
      - platform: time_pattern
        minutes: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
            - weather.forecast_kirchzarten
        data:
          type: daily
        response_variable: tagesvorhersage
    sensor:
      # Hier ein Template-Sensor, der verschieden Daten der Täglichen Vorhersage als Attribute gespeichert hat
      - name: Wetter-Vorhersage des nächsten Tages
        unique_id: forecast_next_1_day
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          condition: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
          cloud_coverage: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].cloud_coverage }}"
          temperature: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
          datetime: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].datetime }}"
          precipitation: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
      # Die gute, alte Wetterentität (Nur die Vorhersage)
      - name: Wettervorhersage OldSchool-Entität
        unique_id: weather_entity_forecast_oldschool
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          forecast: "{{ tagesvorhersage['weather.forecast_home_2'].forecast }}"
  # Stündliche Wettervorhersagen
  - trigger:
      - platform: time_pattern
        hours: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
        data:
          type: hourly
        response_variable: stundenvorhersage
    sensor:
      # Hier ein Template-Sensor, der verschieden Daten der stündlichen Vorhersage als Attribute gespeichert hat
      - name: Wetter-Vorhersage der nächsten Stunde
        unique_id: forecast_next_1_hour
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          condition: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
          cloud_coverage: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].cloud_coverage }}"
          temperature: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
          precipitation: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
      # Alternativ ein Template-Sensor, der die Temperatur der stündlichen Vorhersage Status hat (Vorteile bei Verlauf, Automationen, etc.)
      - name: Temperatur-Vorhersage der nächsten Stunde
        unique_id: temperature_forecast_next_hour
        state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        unit_of_measurement: °C
      - name: Bedingungs-Vorhersage der nächsten Stunde
        unique_id: condition_forecast_next_hour
        state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"

Ok.
Ich gehe davon aus, dass dieses jetzt dein benutzter Code ist und weather.forecast_home_2 und weather.forecast_kirchzarten als Entitäten auf deinem System existieren?

Die Variable brauchst du nur an dieser Stelle für den weiteren Abruf deklarieren bzw. anlegen

Ja genau! Diese beiden existieren, bei home_2 kommen diese Attribute bei Abruf täglich:

forecast:
  - condition: cloudy
    datetime: "2024-04-25T10:00:00+00:00"
    wind_bearing: 226.1
    temperature: 8.8
    templow: 7.4
    wind_speed: 15.8
    precipitation: 0
    humidity: 55
  - condition: cloudy
    datetime: "2024-04-26T10:00:00+00:00"
    wind_bearing: 228.9
    temperature: 13.8
    templow: 5
    wind_speed: 20.5
    precipitation: 0
    humidity: 54
  - condition: cloudy
    datetime: "2024-04-27T10:00:00+00:00"
    wind_bearing: 169.3
    temperature: 17.6
    templow: 6.2
    wind_speed: 22.3
    precipitation: 1.3
    humidity: 66

Als Zustand kommt aber:

temperature: 8.8
dew_point: 0.4
temperature_unit: °C
humidity: 55
cloud_coverage: 100
pressure: 1004.5
pressure_unit: hPa
wind_bearing: 226.1
wind_speed: 14
wind_speed_unit: km/h
visibility_unit: km
precipitation_unit: mm
attribution: Weather forecast from met.no, delivered by the Norwegian Meteorological Institute.
friendly_name: Forecast Home
supported_features: 3

Vor alle die precepitation, die ich im template ergänzt hatte, bleibt leer - auch wenn sie in der Entität nach Abruf angegeben wird.

Gebe dir recht - das ist kurios! Gib das irgendeinen Fehler zurück, den man in den Logs sehen kann?
Vom Aufbau her sieht das eigentlich gut aus…
Was mir aufgefallen ist: die Daten scheinen cloud_coverage für die tägliche Vorhersage nicht zu unterstützen.
Eigentlich kannst du auch - weather.forecast_kirchzarten im Abschnitt # Tägliche Wettervorhersagen entfernen, da du im weiteren Ablauf diese Daten nicht weiterverwendest. Das sollte aber nicht den Rest beeinflussen.
Auch wenn die Werte von precipitation = 0 sind, müsste das angezeigt werden.

Basierend auf deiner YAML müsste das dann so aussehen:

# Der neue Weg (forcasts mit s)
  # Tägliche Wettervorhersagen
  - trigger:
      - platform: time_pattern
        minutes: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2            
        data:
          type: daily
        response_variable: tagesvorhersage
    sensor:
      # Hier ein Template-Sensor, der verschieden Daten der Täglichen Vorhersage als Attribute gespeichert hat
      - name: Wetter-Vorhersage des nächsten Tages
        unique_id: forecast_next_1_day
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          condition: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
          temperature: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
          datetime: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].datetime }}"
          precipitation: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
      # Die gute, alte Wetterentität (Nur die Vorhersage)
      - name: Wettervorhersage OldSchool-Entität
        unique_id: weather_entity_forecast_oldschool
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          forecast: "{{ tagesvorhersage['weather.forecast_home_2'].forecast }}"
  # Stündliche Wettervorhersagen
  - trigger:
      - platform: time_pattern
        hours: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
        data:
          type: hourly
        response_variable: stundenvorhersage
    sensor:
      # Hier ein Template-Sensor, der verschieden Daten der stündlichen Vorhersage als Attribute gespeichert hat
      - name: Wetter-Vorhersage der nächsten Stunde
        unique_id: forecast_next_1_hour
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          condition: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
          temperature: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
          precipitation: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
      # Alternativ ein Template-Sensor, der die Temperatur der stündlichen Vorhersage Status hat (Vorteile bei Verlauf, Automationen, etc.)
      - name: Temperatur-Vorhersage der nächsten Stunde
        unique_id: temperature_forecast_next_hour
        state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        unit_of_measurement: °C
      - name: Bedingungs-Vorhersage der nächsten Stunde
        unique_id: condition_forecast_next_hour
        state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"

PS: wenn du Änderungen an der templates.yaml machst, brauchst du nicht zwingend einen Neustart. Du kannst auch regulär über Entwicklerwerkzeuge > YAML > Template-Entitäten die Änderungen neu einlesen. Vorher kannst du natürlich immer auf Nummer sicher gehen und Konfiguration überprüfen wählen

Vielen dank schon mal! Habe deinen Code mal eingefügt, aber precepitation bleibt bei 0. Auch die Einrückung habe ich angepasst. Folgende Ausgaben:

Unter Dienst ausführen:



weather.forecast_home_2:
  forecast:
    - condition: cloudy
      datetime: "2024-04-26T10:00:00+00:00"
      wind_bearing: 251.7
      temperature: 14
      templow: 7.4
      wind_speed: 19.4
      precipitation: 0.2
      humidity: 58
    - condition: cloudy
      datetime: "2024-04-27T10:00:00+00:00"
      wind_bearing: 176.7
      temperature: 17.5
      templow: 5.7
      wind_speed: 24.5
      precipitation: 0.3
      humidity: 64

und in der Entität weather.forecast_home_2 folgende Attribute:


temperature: 8.5
dew_point: 3.4
temperature_unit: °C
humidity: 70
cloud_coverage: 89.1
pressure: 1004.3
pressure_unit: hPa
wind_bearing: 187.4
wind_speed: 17.3
wind_speed_unit: km/h
visibility_unit: km
precipitation_unit: mm
attribution: Weather forecast from met.no, delivered by the Norwegian Meteorological Institute.
friendly_name: Forecast Home
supported_features: 3

Ich verstehe auch nicht, warum die Daten nicht übereinstimmen. Die Entität forecast_next_1_hour existiert weiterhin nicht.
Wo sehe ich denn im Log eventuelle Fehler?

Und alle anderen templates aus der .yaml stehene dann wieder auf nicht verfügbar. Also muss doch hier ein Fehler sein?!

Hier mal die ganze template.yaml (recht lang :slight_smile:


sensor:
  - name: "stromverbrauch_gesamt"
    unique_id: stromverbrauch_gesamt
    device_class: energy
    state_class: total
    unit_of_measurement: "kWh"
    state: >
      {{ (states("sensor.shellyem3_xxxcab41a918_channel_b_power") |float + states("sensor.shellyem3_xxxcab41a918_channel_a_power") | float + states("sensor.shellyem3_xxxcab41a918_channel_c_power") | float ) | round(2) }}

  - name: "energie_gesamt"
    unique_id: energie_gesamt
    device_class: energy
    state_class: total
    unit_of_measurement: "kWh"
    state: >
      {{ (states("sensor.shellyem3_xxxcab41a918_channel_b_energy") |float + states("sensor.shellyem3_xxxcab41a918_channel_a_energy") | float + states("sensor.shellyem3_xxxcab41a918_channel_c_ernergy") | float ) | round(2) }}

  - name: "strombezug_grid"
    unique_id: strombezug_grid
    unit_of_measurement: "W"
    device_class: power
    state: >
      {{ (states("sensor.shellyem3_xxx454717949_channel_b_power") |float + states("sensor.shellyem3_xxx454717949_channel_a_power") | float + states("sensor.shellyem3_xxx454717949_channel_c_power") | float ) | round(2) }}

  # - name: "energie_gesamt_grid"
  #   unique_id: energie_gesamt_grid
  #   device_class: energy
  #   state_class: total
  #   unit_of_measurement: "kWh"
  #   state: >
  #     {{ (states("sensor.shellyem3_xxx454717949_channel_b_energy") |float + states("sensor.shellyem3_xxx454717949_channel_a_energy") | float + states("sensor.shellyem3_xxx454717949_channel_c_energy") | float ) | round(2) }}

  - name: "energie_gesamt_grid"
    unique_id: energie_gesamt_grid
    device_class: energy
    state_class: total
    unit_of_measurement: "kWh"
    state: >
      {{ (states("sensor.westnetz_zahler") | float ) | round(2) }}

  - name: "tagesstromerzeugung_wr1_wr2"
    unique_id: strom_pv_tag
    device_class: energy
    state_class: total
    unit_of_measurement: "kWh"
    #    device_class: power
    state: >
      {{ states("sensor.daily_pv_generation") |float + states("sensor.daily_pv_generation_2_2") | float }}

  - name: "real_batt_power"
    unique_id: real_batt_power
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ ((states("sensor.battery_level_2") |float - states("sensor.reserved_soc_for_backup") | float)*25.6/100) | round(2) }}

  - name: "real_batt_power_2"
    unique_id: real_batt_power_2
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ ((states("sensor.battery_level_2_2") |float - states("sensor.reserved_soc_for_backup_2") | float)*7.7/100) | round(2) }}

  - name: "real_batt_power_ges"
    unique_id: real_batt_power_ges
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ states("sensor.real_batt_power") | float + states("sensor.real_batt_power_2") | float }}

  - name: "real_batt_power_neu"
    unique_id: real_batt_power_neu
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{  states("sensor.battery_level_2") | float *25.6/100 - states("sensor.reserved_soc_for_backup") | float *25.6/100 }}

  - name: "real_batt_power_neu_2"
    unique_id: real_batt_power_neu_2
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{  states("sensor.battery_level_2_2") | float *7.7/100 - states("sensor.reserved_soc_for_backup_2") | float *7.7/100 }}

  - name: "real_batt_power_ges_2"
    unique_id: real_batt_power_ges_2
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ ((states("sensor.real_batt_power_neu") | float + states("sensor.real_batt_power_neu_2") | float) | float ) | round(2) }}

  - name: "ladung_5h"
    unique_id: ladung_5h
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ states('input_number.real_batt_power_ges_2') | float }}

  - name: "real_batt_power_ges_pz"
    unique_id: real_batt_power_ges_pz
    unit_of_measurement: "%"
    device_class: battery
    state: >
      {{ ((states("sensor.real_batt_power_ges_2") | float / (((states("sensor.max_soc") | float - states("sensor.reserved_soc_for_backup") | float) / 100 * 25.6 | float) + ((states("sensor.max_soc_2_2") | float - states("sensor.reserved_soc_for_backup_2") | float) / 100 * 7.7 | float))) * 100) | round(2) }}

  - name: "aktuelle Batteriekapazität"
    unique_id: actual_batt_capacity
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ (((states("sensor.max_soc") | float - states("sensor.reserved_soc_for_backup") | float) / 100 * 25.6 | float) + ((states("sensor.max_soc_2_2") | float - states("sensor.reserved_soc_for_backup_2") | float) / 100 * 7.7 | float)) | round(2) }}

  - name: "pv_aktuell"
    unique_id: pv_aktuell
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ ((states("sensor.total_dc_power") | float + states("sensor.total_dc_power_2_2") | float) /1000) | round (2) }}

  # Stromzähler PV + grid seit letztem reset
  - name: "stromverbrauch_alltime"
    unique_id: stromverbrauch_alltime
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ (states("sensor.shellyem3_xxxcab41a918_channel_a_energy") |float + states("sensor.shellyem3_xxxcab41a918_channel_b_energy") | float + states("sensor.shellyem3_xxxcab41a918_channel_c_energy") | float ) | round(2) }}

  - name: "stromverbrauch_24h_grid"
    unique_id: stromverbrauch_24h_grid
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('variable.2359h') | float | round(2) }}

  - name: "stromverbrauch_24h_wb"
    unique_id: stromverbrauch_24h_wb
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('variable.2359wb') | float | round(2) }}

  - name: "stromverbrauch_24h_all"
    unique_id: stromverbrauch_24h_all
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('sensor.stromverbrauch_alltime') | float - states('variable.tagesverbrauchstrom') |float }}

  - name: "pv_tagesueberschuss"
    unique_id: pv_tagesueberschuss
    unit_of_measurement: "kWh"
    device_class: battery
    state: >
      {{ states("sensor.solcast_forecast_remaining_today") | float - states("sensor.stromverbrauch_nachts") | float - states("sensor.stromverbrauch_tags") | float | round (2) }}

  # Stromverbrauch letzte 24h (bis zum letzten Sonnenuntergang)
  - name: "strom_24h_ohne_pv"
    unique_id: strom_24h_ohne_pv
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ (states("stromverbrauch_tags") | float - states("sensor.wallbox_ladung_24h") | float) | round (2) }}

  # Differenz PV-Ertrag und Vorhersage
  - name: "diff_pv_forecast"
    unique_id: diff_pv_forecast
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.diff_pv") | float | round (2) }}

  # Stromverbrauch nachts
  - name: "strom_v1_nachts"
    unique_id: strom_v1_nachts
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_v1") | float | round (2) }}

  # Stromverbrauch tags
  - name: "strom_v2_tags"
    unique_id: strom_v2_tags
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_v2") | float | round (2) }}

  # Stromverbrauch nachts gesamt
  - name: "strom_v1_nachts_ges"
    unique_id: strom_v1_nachts_ges
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_v1g") | float | round (2) }}

  # Stromverbrauch tags gesamt
  - name: "strom_v2_tags_ges"
    unique_id: strom_v2_tags_ges
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_v2g") | float | round (2) }}

  # Stromverbrauch 5h bis SA
  - name: "strom_5h_sa"
    unique_id: strom_5h_sa
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_5h") | float | round (2) }}

  # Batterieüberschuss 5h bis SA
  - name: "batt_5h_sa"
    unique_id: batt_5h_sa
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.batt_5h_sa") | float | round (2) }}

  # Stromverbrauch Monat gesamt
  - name: "strom_monat_ges"
    unique_id: strom_monat_ges
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_monat_ges") | float | round (2) }}

  # Stromverbrauch Monat gesamt RT
  - name: "strom_monat_ges_rt"
    unique_id: strom_monat_ges_rt
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('sensor.zahler_strom_gesamt') | float -
        states('variable.strom_1_monat_ges') | float | round(3) }}

  # Stromverbrauch Monat grid
  - name: "strom_monat_grid"
    unique_id: strom_monat_grid
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_monat_grid") | float | round (2) }}

  # Stromverbrauch Monat grid RT
  - name: "strom_monat_grid_rt"
    unique_id: strom_monat_grid_rt
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('sensor.westnetz_zahler') | float -
        states('variable.strom_1_monat_grid') | float | round(3) }}

  # Stromverbrauch Monat Wallbox
  - name: "strom_monat_wb"
    unique_id: strom_monat_wb
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_monat_wb") | float | round (2) }}

  # Stromverbrauch Monat Wallbox RT
  - name: "strom_monat_wb_rt"
    unique_id: strom_monat_wb_rt
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('sensor.wallbox_zahlerstand') | float -
        states('variable.strom_1_monat_wb') | float | round(3) }}

  # Stromverbrauch Monat Export
  - name: "strom_monat_export"
    unique_id: strom_monat_export
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_monat_export") | float | round (2) }}

  # Stromexport Monat RT
  - name: "strom_monat_export_rt"
    unique_id: strom_monat_export_rt
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states('sensor.westnetz_einspeisung') | float -
        states('variable.strom_1_monat_export') | float | round(3) }}

  # Stromverbrauch Tag Wallbox
  - name: "strom_wb_00"
    unique_id: strom_wb_00
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.strom_wb_00") | float | round (2) }}

  # Stromverbrauch Wallbox heute realtime
  - name: "strom_wb_heute"
    unique_id: strom_wb_heute
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ (states('sensor.wallbox_zahlerstand') | float - states("variable.0000wb") | float) | round (2) }}

  # Stromverbrauch grid heute realtime
  - name: "strom_grid_heute"
    unique_id: strom_grid_heute
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ (states('sensor.westnetz_zahler') | float - states("variable.0000h") | float) | round (2) }}

  # Batterieladung bei Sonnenaufgang
  - name: "batterie_sa"
    unique_id: batterie_sa
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.batterie_sa") | float | round (2) }}

  # Tage mit Batterieladung morgens >10kWh
  - name: "batterie_sa_zaehler_ueber"
    unique_id: batterie_sa_zaehler_ueber
    device_class: energy
    state: >
      {{ states("variable.batterie_sa_zaehler_ueber") | float | int(0) }}

  # Tage mit Batterieladung morgens <10kWh
  - name: "batterie_sa_zaehler_unter"
    unique_id: batterie_sa_zaehler_unter
    device_class: energy
    state: >
      {{ states("variable.batterie_sa_zaehler_unter") | float | int(0) }}

  # Heizstab Tag
  - name: "heizstab_heute"
    unique_id: heizstab_heute
    unit_of_measurement: "kWh"
    device_class: energy
    # state: >
    #   {{ (states('sensor.heizstab_3') | float) - states("variable.var_heizstab_3") | float | round(2) }}
    state: >
      {{ ((states('sensor.heizstab_3') | float) - (states("variable.var_heizstab_3") | float)) | round(2) }}

  # Heizstab Shelly WW 3 Phasen
  - name: "heizstab_3"
    unique_id: heizstab_3
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ (states('sensor.heizstab_abc') | float) *3 | round(2) }}

  # Heizstab gesamt
  - name: "heizstab_gesamt"
    unique_id: heizstab_gesamt
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("variable.var_heizstab_gesamt") | float | round(2) }}

  # PV kWh bis zur vollen Stunde
  - name: "rem_minutes"
    unique_id: rem_minutes
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("sensor.solcast_forecast_this_hour") | int * (states("sensor.time")[-2:] | int) / 60000 | int(0) }}

  # PV forecast verbleibend heute realtime
  - name: "batt_su_forecast"
    unique_id: batt_su_forecast
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("sensor.solcast_forecast_remaining_today") | float - states("sensor.rem_minutes") | float }}

  # Batterieladung bis max
  - name: "batt_su_forecast_2"
    unique_id: batt_su_forecast_2
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("sensor.aktuelle_batteriekapazitat") | float - states("sensor.real_batt_power_ges_2") | float +5 }}

  # Pulsecounter uptime
  - name: "pc_uptime"
    unique_id: pc_uptime
    device_class: energy
    state: >
      {{ (states("sensor.uptime") | float /3600 /24) | round(2) }}

  # PV Tag + forecast RT
  - name: "pv_rt_tag_forecast"
    unique_id: pv_rt_tag_forecast
    unit_of_measurement: "kWh"
    device_class: energy
    state: >
      {{ states("sensor.tageserzstromeugung_wr1_wr2") | float + states("sensor.batt_su_forecast") | float }}

  # Bewässerung Beet
  - name: "bew_beet"
    unique_id: bew_beet
    unit_of_measurement: "l"
    device_class: energy
    state: >
      {{ states("variable.var_bew_beet2") | float *1000 | round(2) }}

  # Bewässerung Hecke
  - name: "bew_hecke"
    unique_id: bew_hecke
    unit_of_measurement: "l"
    device_class: energy
    state: >
      {{ states("variable.var_bew_hecke2") | float *1000 | round(2) }}

  # Bewässerung Rasen
  - name: "bew_rasen"
    unique_id: bew_rasen
    unit_of_measurement: "l"
    device_class: energy
    state: >
      {{ (states("variable.var_bew_rasen2") | float + states("variable.var_bew_rasen4") | float) *1000 | round(2) }}

  # Bewässerung Tag
  - name: "bew_tag"
    unique_id: bew_tag
    unit_of_measurement: "l"
    device_class: energy
    state: >
      {{ (states('sensor.w_counter_4') | float - states("variable.var_bew_tag") | float) *1000 | round(2) }}

  # Regenmenge gestern
  - name: "regenmenge_gestern"
    unique_id: regenmenge_gestern
    unit_of_measurement: "mm"
    device_class: energy
    state: >
      {{ states("variable.var_regen_gestern") | float }}

  # Regenmenge vorgestern
  - name: "regenmenge_vorgestern"
    unique_id: regenmenge_vorgestern
    unit_of_measurement: "mm"
    device_class: energy
    state: >
      {{ states("variable.var_regen_vorgestern") | float }}

  # Zisterne Liter
  - name: "Zisterne Liter"
    unique_id: zisterne_liter
    unit_of_measurement: "l"
    device_class: energy
    state: >
      {{ states("sensor.zisterne_fullstand") | float *50 }}

  # Ersparnis Batterie
  - name: "Ersparnis Batterie"
    unique_id: ersparnis_batterie
    unit_of_measurement: "€"
    device_class: energy
    state: >
      {{ (states("sensor.total_battery_discharge") | float + states("sensor.total_battery_discharge_2_2") | float) * 0.35 }}

  - name: Rainfall today
    unit_of_measurement: mm
    state_class: total_increasing
    unique_id: rainfall_today
    state: >-
      {% set count = states('sensor.rainsensor_flips') | int(0) %}
      {% set mm = count * 0.30303 %}
      {% if count >= 0 %}
        {{ mm|round(1, 'floor') }}
      {% endif %}
    # If you have issues with the history sensor doubling after restarting HA, add the line below (@BigG)
    availability: "{{ (states('sensor.rainsensor_flips') not in ('unknown', 'unavailable')) }}"

  - name: spezifische_feuchte_mori
    unique_id: spez_feuchte_mori
    unit_of_measurement: "g/kg"
    state: >
      {% set temperatur = states('sensor.temperature_sensor_2') | float %}
      {% set relative_luftfeuchtigkeit = states('sensor.temperature_sensor_humidity_sensor_2') | float %}
      {% set luftdruck = states('sensor.openweathermap_pressure') | float %}
      {% set es = 6.112 * (10 ** (7.5 * temperatur / (temperatur + 237.7))) %}
      {% set e = es * (relative_luftfeuchtigkeit / 100) %}
      {% set q = 0.622 * (e / (luftdruck - e)) * 1000 %}
      {{ q | round(2) }}

  # - name: taupunkt_sensor_mori
  #   unique_id: taupunkt_mori
  #   unit_of_measurement: "°C"
  #   state: >-
  #     {% set specific_humidity = states('sensor.spezifische_feuchte_mori') | float %}
  #     {% set temperature = states('sensor.temperature_sensor_2') | float %}
  #     {% set dewpoint = temperature - ((100 - specific_humidity) / 5) %}
  #     {{ dewpoint }}

  - name: temperatur_differenz_sensor_mori
    unique_id: taupunkt_temp_mori
    unit_of_measurement: "°C"
    state: >-
      {{ states('sensor.temperature_sensor_2') | float - states('sensor.taupunkt_mori') | float }}

  - name: spezifische_feuchte_bad_keller
    unique_id: spez_feuchte_bad_keller
    unit_of_measurement: "g/kg"
    state: >
      {% set temperatur = states('sensor.sz_keller_8') | float %}
      {% set relative_luftfeuchtigkeit = states('sensor.sz_keller_humidity_sensor_8') | float %}
      {% set luftdruck = states('sensor.openweathermap_pressure') | float %}
      {% set es = 6.112 * (10 ** (7.5 * temperatur / (temperatur + 237.7))) %}
      {% set e = es * (relative_luftfeuchtigkeit / 100) %}
      {% set q = 0.622 * (e / (luftdruck - e)) * 1000 %}
      {{ q | round(2) }}

  - name: temperatur_differenz_sensor_bad_keller
    unique_id: taupunkt_temp_bad_keller
    unit_of_measurement: "°C"
    state: >-
      {{ states('sensor.sz_keller_8') | float - states('sensor.taupunkt_keller') | float }}

  - name: wasseruhr_heute
    unique_id: wasseruhr_heute
    unit_of_measurement: "l"
    state: >-
      {{ (states('sensor.wassermesser_value') | float - states('variable.var_wasseruhr_0h') | float) * 1000 | round (0) }}

  - name: "Minimale Leistung"
    state: >
      {{ [states('sensor.shellyplus1pm_xxx32ab8bcec_switch_0_power') | float, 
      states('sensor.min_leistung') | float] | min }}
    unit_of_measurement: "W"
    state_class: "measurement"

  # Der neue Weg (forcasts mit s)
  # Tägliche Wettervorhersagen
  - trigger:
      - platform: time_pattern
        minutes: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
        data:
          type: daily
        response_variable: tagesvorhersage
    sensor:
      # Hier ein Template-Sensor, der verschieden Daten der Täglichen Vorhersage als Attribute gespeichert hat
      - name: Wetter-Vorhersage des nächsten Tages
        unique_id: forecast_next_1_day
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          condition: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
          temperature: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
          datetime: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].datetime }}"
          precipitation: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
      # Die gute, alte Wetterentität (Nur die Vorhersage)
      - name: Wettervorhersage OldSchool-Entität
        unique_id: weather_entity_forecast_oldschool
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          forecast: "{{ tagesvorhersage['weather.forecast_home_2'].forecast }}"
  # Stündliche Wettervorhersagen
  - trigger:
      - platform: time_pattern
        hours: /1
    action:
      - service: weather.get_forecasts
        target:
          entity_id:
            - weather.forecast_home_2
        data:
          type: hourly
        response_variable: stundenvorhersage
    sensor:
      # Hier ein Template-Sensor, der verschieden Daten der stündlichen Vorhersage als Attribute gespeichert hat
      - name: Wetter-Vorhersage der nächsten Stunde
        unique_id: forecast_next_1_hour
        state: "{{ now().isoformat() }}"
        icon: mdi:hours-24
        attributes:
          condition: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
          temperature: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
          precipitation: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
      # Alternativ ein Template-Sensor, der die Temperatur der stündlichen Vorhersage Status hat (Vorteile bei Verlauf, Automationen, etc.)
      - name: Temperatur-Vorhersage der nächsten Stunde
        unique_id: temperature_forecast_next_hour
        state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        unit_of_measurement: °C
      - name: Bedingungs-Vorhersage der nächsten Stunde
        unique_id: condition_forecast_next_hour
        state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Ich hatte da an die regulären Protokolle gedacht sprich Einstellungen > System > Protokolle.

Kannst du bitte einmal folgende Anpassung versuchen:

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

Habe mir nämlich gerade noch einmal meinen Eintrag angeschauen und das müsste so passen.

Ich habe meine templates.yaml mal geleert und nur den Code eingefügt:


# Der neue Weg (forcasts mit s)
# Tägliche Wettervorhersagen
- trigger:
    - platform: time_pattern
      minutes: /1
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.forecast_home_2
      data:
        type: daily
      response_variable: tagesvorhersage
  sensor:
    # Hier ein Template-Sensor, der verschieden Daten der Täglichen Vorhersage als Attribute gespeichert hat
    - name: Wetter-Vorhersage des nächsten Tages
      unique_id: forecast_next_1_day
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        condition: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
        temperature: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        datetime: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].datetime }}"
        precipitation: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
    # Die gute, alte Wetterentität (Nur die Vorhersage)
    - name: Wettervorhersage OldSchool-Entität
      unique_id: weather_entity_forecast_oldschool
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        forecast: "{{ tagesvorhersage['weather.forecast_home_2'].forecast }}"
# Stündliche Wettervorhersagen
- trigger:
    - platform: time_pattern
      hours: /1
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.forecast_home_2
      data:
        type: hourly
      response_variable: stundenvorhersage
  sensor:
    # Hier ein Template-Sensor, der verschieden Daten der stündlichen Vorhersage als Attribute gespeichert hat
    - name: Wetter-Vorhersage der nächsten Stunde
      unique_id: forecast_next_1_hour
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        condition: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
        temperature: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        precipitation: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
    # Alternativ ein Template-Sensor, der die Temperatur der stündlichen Vorhersage Status hat (Vorteile bei Verlauf, Automationen, etc.)
    - name: Temperatur-Vorhersage der nächsten Stunde
      unique_id: temperature_forecast_next_hour
      state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[0].temperature }}"
      unit_of_measurement: °C
    - name: Bedingungs-Vorhersage der nächsten Stunde
      unique_id: condition_forecast_next_hour
      state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[0].condition }}"

Das funktioniert! Wenn ich dann meine alten Sensoren wieder reinkopiere, kommt der Fehler (auch ohne die —)

Konfigurationsfehler
Error loading /config/configuration.yaml: expected a single document in the stream
  in "/config/templates.yaml", line 3, column 1
but found another document
  in "/config/templates.yaml", line 63, column 1
---
sensor:
  - name: "stromverbrauch_gesamt"
    unique_id: stromverbrauch_gesamt
    device_class: energy
    state_class: total
    unit_of_

Ich sehe gerade, dass ich mir doch die komplette templates.yaml hätte anschauen sollen.
Interessant, dass die so funktioniert hat - habe ich auch was dazu gelernt :joy:

Das Konstrukt kam jedoch wohl ins Wanken durch den trigger und wäre es wahrscheinlich auch bei einem binary_sensor… egal.
Also… mein letzter Versuch nach einem Frühjahrsputz deiner nahezu 600 Zeilen Template Datei (und ich hoffe ich habe nichts übersehen…

- sensor:
    - name: "stromverbrauch_gesamt"
      unique_id: stromverbrauch_gesamt
      device_class: energy
      state_class: total
      unit_of_measurement: "kWh"
      state: >
        {{ (states("sensor.shellyem3_xxxcab41a918_channel_b_power") |float + states("sensor.shellyem3_xxxcab41a918_channel_a_power") | float + states("sensor.shellyem3_xxxcab41a918_channel_c_power") | float ) | round(2) }}

    - name: "energie_gesamt"
      unique_id: energie_gesamt
      device_class: energy
      state_class: total
      unit_of_measurement: "kWh"
      state: >
        {{ (states("sensor.shellyem3_xxxcab41a918_channel_b_energy") |float + states("sensor.shellyem3_xxxcab41a918_channel_a_energy") | float + states("sensor.shellyem3_xxxcab41a918_channel_c_ernergy") | float ) | round(2) }}

    - name: "strombezug_grid"
      unique_id: strombezug_grid
      unit_of_measurement: "W"
      device_class: power
      state: >
        {{ (states("sensor.shellyem3_xxx454717949_channel_b_power") |float + states("sensor.shellyem3_xxx454717949_channel_a_power") | float + states("sensor.shellyem3_xxx454717949_channel_c_power") | float ) | round(2) }}

  # - name: "energie_gesamt_grid"
  #   unique_id: energie_gesamt_grid
  #   device_class: energy
  #   state_class: total
  #   unit_of_measurement: "kWh"
  #   state: >
  #     {{ (states("sensor.shellyem3_xxx454717949_channel_b_energy") |float + states("sensor.shellyem3_xxx454717949_channel_a_energy") | float + states("sensor.shellyem3_xxx454717949_channel_c_energy") | float ) | round(2) }}

    - name: "energie_gesamt_grid"
      unique_id: energie_gesamt_grid
      device_class: energy
      state_class: total
      unit_of_measurement: "kWh"
      state: >
        {{ (states("sensor.westnetz_zahler") | float ) | round(2) }}

    - name: "tagesstromerzeugung_wr1_wr2"
      unique_id: strom_pv_tag
      device_class: energy
      state_class: total
      unit_of_measurement: "kWh"
    #    device_class: power
      state: >
        {{ states("sensor.daily_pv_generation") |float + states("sensor.daily_pv_generation_2_2") | float }}

    - name: "real_batt_power"
      unique_id: real_batt_power
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ ((states("sensor.battery_level_2") |float - states("sensor.reserved_soc_for_backup") | float)*25.6/100) | round(2) }}

    - name: "real_batt_power_2"
      unique_id: real_batt_power_2
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ ((states("sensor.battery_level_2_2") |float - states("sensor.reserved_soc_for_backup_2") | float)*7.7/100) | round(2) }}

    - name: "real_batt_power_ges"
      unique_id: real_batt_power_ges
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ states("sensor.real_batt_power") | float + states("sensor.real_batt_power_2") | float }}

    - name: "real_batt_power_neu"
      unique_id: real_batt_power_neu
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{  states("sensor.battery_level_2") | float *25.6/100 - states("sensor.reserved_soc_for_backup") | float *25.6/100 }}

    - name: "real_batt_power_neu_2"
      unique_id: real_batt_power_neu_2
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{  states("sensor.battery_level_2_2") | float *7.7/100 - states("sensor.reserved_soc_for_backup_2") | float *7.7/100 }}

    - name: "real_batt_power_ges_2"
      unique_id: real_batt_power_ges_2
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ ((states("sensor.real_batt_power_neu") | float + states("sensor.real_batt_power_neu_2") | float) | float ) | round(2) }}

    - name: "ladung_5h"
      unique_id: ladung_5h
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ states('input_number.real_batt_power_ges_2') | float }}

    - name: "real_batt_power_ges_pz"
      unique_id: real_batt_power_ges_pz
      unit_of_measurement: "%"
      device_class: battery
      state: >
        {{ ((states("sensor.real_batt_power_ges_2") | float / (((states("sensor.max_soc") | float - states("sensor.reserved_soc_for_backup") | float) / 100 * 25.6 | float) + ((states("sensor.max_soc_2_2") | float - states("sensor.reserved_soc_for_backup_2") | float) / 100 * 7.7 | float))) * 100) | round(2) }}

    - name: "aktuelle Batteriekapazität"
      unique_id: actual_batt_capacity
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ (((states("sensor.max_soc") | float - states("sensor.reserved_soc_for_backup") | float) / 100 * 25.6 | float) + ((states("sensor.max_soc_2_2") | float - states("sensor.reserved_soc_for_backup_2") | float) / 100 * 7.7 | float)) | round(2) }}

    - name: "pv_aktuell"
      unique_id: pv_aktuell
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ ((states("sensor.total_dc_power") | float + states("sensor.total_dc_power_2_2") | float) /1000) | round (2) }}

  # Stromzähler PV + grid seit letztem reset
    - name: "stromverbrauch_alltime"
      unique_id: stromverbrauch_alltime
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ (states("sensor.shellyem3_xxxcab41a918_channel_a_energy") |float + states("sensor.shellyem3_xxxcab41a918_channel_b_energy") | float + states("sensor.shellyem3_xxxcab41a918_channel_c_energy") | float ) | round(2) }}

    - name: "stromverbrauch_24h_grid"
      unique_id: stromverbrauch_24h_grid
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('variable.2359h') | float | round(2) }}

    - name: "stromverbrauch_24h_wb"
      unique_id: stromverbrauch_24h_wb
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('variable.2359wb') | float | round(2) }}

    - name: "stromverbrauch_24h_all"
      unique_id: stromverbrauch_24h_all
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('sensor.stromverbrauch_alltime') | float - states('variable.tagesverbrauchstrom') |float }}

    - name: "pv_tagesueberschuss"
      unique_id: pv_tagesueberschuss
      unit_of_measurement: "kWh"
      device_class: battery
      state: >
        {{ states("sensor.solcast_forecast_remaining_today") | float - states("sensor.stromverbrauch_nachts") | float - states("sensor.stromverbrauch_tags") | float | round (2) }}

  # Stromverbrauch letzte 24h (bis zum letzten Sonnenuntergang)
    - name: "strom_24h_ohne_pv"
      unique_id: strom_24h_ohne_pv
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ (states("stromverbrauch_tags") | float - states("sensor.wallbox_ladung_24h") | float) | round (2) }}

  # Differenz PV-Ertrag und Vorhersage
    - name: "diff_pv_forecast"
      unique_id: diff_pv_forecast
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.diff_pv") | float | round (2) }}

  # Stromverbrauch nachts
    - name: "strom_v1_nachts"
      unique_id: strom_v1_nachts
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_v1") | float | round (2) }}

  # Stromverbrauch tags
    - name: "strom_v2_tags"
      unique_id: strom_v2_tags
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_v2") | float | round (2) }}

  # Stromverbrauch nachts gesamt
    - name: "strom_v1_nachts_ges"
      unique_id: strom_v1_nachts_ges
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_v1g") | float | round (2) }}

  # Stromverbrauch tags gesamt
    - name: "strom_v2_tags_ges"
      unique_id: strom_v2_tags_ges
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_v2g") | float | round (2) }}

  # Stromverbrauch 5h bis SA
    - name: "strom_5h_sa"
      unique_id: strom_5h_sa
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_5h") | float | round (2) }}

  # Batterieüberschuss 5h bis SA
    - name: "batt_5h_sa"
      unique_id: batt_5h_sa
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.batt_5h_sa") | float | round (2) }}

  # Stromverbrauch Monat gesamt
    - name: "strom_monat_ges"
      unique_id: strom_monat_ges
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_monat_ges") | float | round (2) }}

  # Stromverbrauch Monat gesamt RT
    - name: "strom_monat_ges_rt"
      unique_id: strom_monat_ges_rt
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('sensor.zahler_strom_gesamt') | float -
        states('variable.strom_1_monat_ges') | float | round(3) }}

  # Stromverbrauch Monat grid
    - name: "strom_monat_grid"
      unique_id: strom_monat_grid
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_monat_grid") | float | round (2) }}

  # Stromverbrauch Monat grid RT
    - name: "strom_monat_grid_rt"
      unique_id: strom_monat_grid_rt
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('sensor.westnetz_zahler') | float -
        states('variable.strom_1_monat_grid') | float | round(3) }}

  # Stromverbrauch Monat Wallbox
    - name: "strom_monat_wb"
      unique_id: strom_monat_wb
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_monat_wb") | float | round (2) }}

  # Stromverbrauch Monat Wallbox RT
    - name: "strom_monat_wb_rt"
      unique_id: strom_monat_wb_rt
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('sensor.wallbox_zahlerstand') | float -
        states('variable.strom_1_monat_wb') | float | round(3) }}

  # Stromverbrauch Monat Export
    - name: "strom_monat_export"
      unique_id: strom_monat_export
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_monat_export") | float | round (2) }}
 
  # Stromexport Monat RT
    - name: "strom_monat_export_rt"
      unique_id: strom_monat_export_rt
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states('sensor.westnetz_einspeisung') | float -
        states('variable.strom_1_monat_export') | float | round(3) }}

  # Stromverbrauch Tag Wallbox
    - name: "strom_wb_00"
      unique_id: strom_wb_00
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.strom_wb_00") | float | round (2) }}

  # Stromverbrauch Wallbox heute realtime
    - name: "strom_wb_heute"
      unique_id: strom_wb_heute
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ (states('sensor.wallbox_zahlerstand') | float - states("variable.0000wb") | float) | round (2) }}

  # Stromverbrauch grid heute realtime
    - name: "strom_grid_heute"
      unique_id: strom_grid_heute
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ (states('sensor.westnetz_zahler') | float - states("variable.0000h") | float) | round (2) }}

  # Batterieladung bei Sonnenaufgang
    - name: "batterie_sa"
      unique_id: batterie_sa
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.batterie_sa") | float | round (2) }}

  # Tage mit Batterieladung morgens >10kWh
    - name: "batterie_sa_zaehler_ueber"
      unique_id: batterie_sa_zaehler_ueber
      device_class: energy
      state: >
        {{ states("variable.batterie_sa_zaehler_ueber") | float | int(0) }}

  # Tage mit Batterieladung morgens <10kWh
    - name: "batterie_sa_zaehler_unter"
      unique_id: batterie_sa_zaehler_unter
      device_class: energy
      state: >
        {{ states("variable.batterie_sa_zaehler_unter") | float | int(0) }}

  # Heizstab Tag
    - name: "heizstab_heute"
      unique_id: heizstab_heute
      unit_of_measurement: "kWh"
      device_class: energy
    # state: >
    #   {{ (states('sensor.heizstab_3') | float) - states("variable.var_heizstab_3") | float | round(2) }}
      state: >
        {{ ((states('sensor.heizstab_3') | float) - (states("variable.var_heizstab_3") | float)) | round(2) }}

  # Heizstab Shelly WW 3 Phasen
    - name: "heizstab_3"
      unique_id: heizstab_3
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ (states('sensor.heizstab_abc') | float) *3 | round(2) }}

  # Heizstab gesamt
    - name: "heizstab_gesamt"
      unique_id: heizstab_gesamt
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("variable.var_heizstab_gesamt") | float | round(2) }}

  # PV kWh bis zur vollen Stunde
    - name: "rem_minutes"
      unique_id: rem_minutes
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("sensor.solcast_forecast_this_hour") | int * (states("sensor.time")[-2:] | int) / 60000 | int(0) }}

  # PV forecast verbleibend heute realtime
    - name: "batt_su_forecast"
      unique_id: batt_su_forecast
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("sensor.solcast_forecast_remaining_today") | float - states("sensor.rem_minutes") | float }}

  # Batterieladung bis max
    - name: "batt_su_forecast_2"
      unique_id: batt_su_forecast_2
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("sensor.aktuelle_batteriekapazitat") | float - states("sensor.real_batt_power_ges_2") | float +5 }}

  # Pulsecounter uptime
    - name: "pc_uptime"
      unique_id: pc_uptime
      device_class: energy
      state: >
        {{ (states("sensor.uptime") | float /3600 /24) | round(2) }}

  # PV Tag + forecast RT
    - name: "pv_rt_tag_forecast"
      unique_id: pv_rt_tag_forecast
      unit_of_measurement: "kWh"
      device_class: energy
      state: >
        {{ states("sensor.tageserzstromeugung_wr1_wr2") | float + states("sensor.batt_su_forecast") | float }}

  # Bewässerung Beet
    - name: "bew_beet"
      unique_id: bew_beet
      unit_of_measurement: "l"
      device_class: energy
      state: >
        {{ states("variable.var_bew_beet2") | float *1000 | round(2) }}

  # Bewässerung Hecke
    - name: "bew_hecke"
      unique_id: bew_hecke
      unit_of_measurement: "l"
      device_class: energy
      state: >
        {{ states("variable.var_bew_hecke2") | float *1000 | round(2) }}

  # Bewässerung Rasen
    - name: "bew_rasen"
      unique_id: bew_rasen
      unit_of_measurement: "l"
      device_class: energy
      state: >
        {{ (states("variable.var_bew_rasen2") | float + states("variable.var_bew_rasen4") | float) *1000 | round(2) }}

  # Bewässerung Tag
    - name: "bew_tag"
      unique_id: bew_tag
      unit_of_measurement: "l"
      device_class: energy
      state: >
        {{ (states('sensor.w_counter_4') | float - states("variable.var_bew_tag") | float) *1000 | round(2) }}

  # Regenmenge gestern
    - name: "regenmenge_gestern"
      unique_id: regenmenge_gestern
      unit_of_measurement: "mm"
      device_class: energy
      state: >
        {{ states("variable.var_regen_gestern") | float }}

  # Regenmenge vorgestern
    - name: "regenmenge_vorgestern"
      unique_id: regenmenge_vorgestern
      unit_of_measurement: "mm"
      device_class: energy
      state: >
        {{ states("variable.var_regen_vorgestern") | float }}

  # Zisterne Liter
    - name: "Zisterne Liter"
      unique_id: zisterne_liter
      unit_of_measurement: "l"
      device_class: energy
      state: >
        {{ states("sensor.zisterne_fullstand") | float *50 }}

  # Ersparnis Batterie
    - name: "Ersparnis Batterie"
      unique_id: ersparnis_batterie
      unit_of_measurement: "€"
      device_class: energy
      state: >
        {{ (states("sensor.total_battery_discharge") | float + states("sensor.total_battery_discharge_2_2") | float) * 0.35 }}

    - name: Rainfall today
      unit_of_measurement: mm
      state_class: total_increasing
      unique_id: rainfall_today
      state: >-
        {% set count = states('sensor.rainsensor_flips') | int(0) %}
        {% set mm = count * 0.30303 %}
        {% if count >= 0 %}
          {{ mm|round(1, 'floor') }}
        {% endif %}
    # If you have issues with the history sensor doubling after restarting HA, add the line below (@BigG)
    availability: "{{ (states('sensor.rainsensor_flips') not in ('unknown', 'unavailable')) }}"

    - name: spezifische_feuchte_mori
      unique_id: spez_feuchte_mori
      unit_of_measurement: "g/kg"
      state: >
        {% set temperatur = states('sensor.temperature_sensor_2') | float %}
        {% set relative_luftfeuchtigkeit = states('sensor.temperature_sensor_humidity_sensor_2') | float %}
        {% set luftdruck = states('sensor.openweathermap_pressure') | float %}
        {% set es = 6.112 * (10 ** (7.5 * temperatur / (temperatur + 237.7))) %}
        {% set e = es * (relative_luftfeuchtigkeit / 100) %}
        {% set q = 0.622 * (e / (luftdruck - e)) * 1000 %}
        {{ q | round(2) }}

  # - name: taupunkt_sensor_mori
  #   unique_id: taupunkt_mori
  #   unit_of_measurement: "°C"
  #   state: >-
  #     {% set specific_humidity = states('sensor.spezifische_feuchte_mori') | float %}
  #     {% set temperature = states('sensor.temperature_sensor_2') | float %}
  #     {% set dewpoint = temperature - ((100 - specific_humidity) / 5) %}
  #     {{ dewpoint }}

    - name: temperatur_differenz_sensor_mori
      unique_id: taupunkt_temp_mori
      unit_of_measurement: "°C"
      state: >-
        {{ states('sensor.temperature_sensor_2') | float - states('sensor.taupunkt_mori') | float }}

    - name: spezifische_feuchte_bad_keller
      unique_id: spez_feuchte_bad_keller
      unit_of_measurement: "g/kg"
      state: >
        {% set temperatur = states('sensor.sz_keller_8') | float %}
        {% set relative_luftfeuchtigkeit = states('sensor.sz_keller_humidity_sensor_8') | float %}
        {% set luftdruck = states('sensor.openweathermap_pressure') | float %}
        {% set es = 6.112 * (10 ** (7.5 * temperatur / (temperatur + 237.7))) %}
        {% set e = es * (relative_luftfeuchtigkeit / 100) %}
        {% set q = 0.622 * (e / (luftdruck - e)) * 1000 %}
        {{ q | round(2) }}

    - name: temperatur_differenz_sensor_bad_keller
      unique_id: taupunkt_temp_bad_keller
      unit_of_measurement: "°C"
      state: >-
        {{ states('sensor.sz_keller_8') | float - states('sensor.taupunkt_keller') | float }}

    - name: wasseruhr_heute
      unique_id: wasseruhr_heute
      unit_of_measurement: "l"
      state: >-
        {{ (states('sensor.wassermesser_value') | float - states('variable.var_wasseruhr_0h') | float) * 1000 | round (0) }}

    - name: "Minimale Leistung"
      state: >
        {{ [states('sensor.shellyplus1pm_xxx32ab8bcec_switch_0_power') | float, 
        states('sensor.min_leistung') | float] | min }}
      unit_of_measurement: "W"
      state_class: "measurement"

# Der neue Weg (forcasts mit s)
# Tägliche Wettervorhersagen
- trigger:
    - platform: time_pattern
      minutes: /1
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.forecast_home_2
      data:
        type: daily
      response_variable: tagesvorhersage
  sensor:
    # Hier ein Template-Sensor, der verschieden Daten der Täglichen Vorhersage als Attribute gespeichert hat
    - name: Wetter-Vorhersage des nächsten Tages
      unique_id: forecast_next_1_day
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        condition: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
        temperature: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        datetime: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].datetime }}"
        precipitation: "{{ tagesvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
    # Die gute, alte Wetterentität (Nur die Vorhersage)
    - name: Wettervorhersage OldSchool-Entität
      unique_id: weather_entity_forecast_oldschool
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        forecast: "{{ tagesvorhersage['weather.forecast_home_2'].forecast }}"
# Stündliche Wettervorhersagen
- trigger:
    - platform: time_pattern
      hours: /1
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.forecast_home_2
      data:
        type: hourly
      response_variable: stundenvorhersage
  sensor:
    # Hier ein Template-Sensor, der verschieden Daten der stündlichen Vorhersage als Attribute gespeichert hat
    - name: Wetter-Vorhersage der nächsten Stunde
      unique_id: forecast_next_1_hour
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        condition: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].condition }}"
        temperature: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].temperature }}"
        precipitation: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[1].precipitation }}"
    # Alternativ ein Template-Sensor, der die Temperatur der stündlichen Vorhersage Status hat (Vorteile bei Verlauf, Automationen, etc.)
    - name: Temperatur-Vorhersage der nächsten Stunde
      unique_id: temperature_forecast_next_hour
      state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[0].temperature }}"
      unit_of_measurement: °C
    - name: Bedingungs-Vorhersage der nächsten Stunde
      unique_id: condition_forecast_next_hour
      state: "{{ stundenvorhersage['weather.forecast_home_2'].forecast[0].condition }}"

Es funktioniert! Vielen Dank!!! Aber was war das Problem? Die Einrückung? Binary sensoren habe ich in einer binary-sensors.yaml, vielleicht ist es deswegen nicht aufgefallen?

1 „Gefällt mir“

Ja exakt…
Wenn du z.B. direkt vergleichst fing deine YAML so an:

sensor:
  - name: "stromverbrauch_gesamt"
    unique_id: stromverbrauch_gesamt
    device_class: energy
    state_class: total

Die jetzige Version:

- sensor:
    - name: "stromverbrauch_gesamt"
      unique_id: stromverbrauch_gesamt
      device_class: energy
      state_class: total

das beeinflusst natürlich auch die (weitere) Art der Einrückungen in Folgezeilen…

Ich habe bei meinen bisherigen Vorschlägen a la

- trigger:
    - platform: time_pattern
      minutes: /1
  action:

eher auf “meine” Art der Einrückungen gesetzt und weniger auf “deine Version”.
YAML ist echt penibel was Einrückungen angeht und das kann manchmal recht leidlich sein bei der Suche.

Daher mein Tipp am Rande:
Solltest du noch einmal was von den auskommentierten Daten # wiederverwenden, schau bitte, dass das wieder in das “Muster” der Einrückungen passt, da ich mich primär auf den aktiven Code bei der Editierung beschränkt habe.
Sonst läuft man dort direkt Gefahr sich wieder in einen potentiellen Fehler zu begeben.

Ok! Nochmal vielen Dank!! Auch wieder viel gelernt :wink:

[EDIT]
Hat sich erledigt. :wink:

Hallo Thalion,
ich habe wohl eine selbe oder ähnlich gelegene Problematik.
Ich versuche nun seit 1 Woche die Vorhersage hinzubekommen.

Dürfte ich mich hilfesuchend einmal an Dich wenden?

Die Templates werden in den Entitäten angezeigt.
Ich erhalte aber leider nur “unbekannt” zurück.

Ich habe, nachdem ich Deinen Post mit der aufgeräumten Template.yaml gelesen habe, meine auch durchforstet und einige Fehler bei Einrückungen entfernt, gespeichert, geprüft und neu gestartet. Aber wie oben erwähnt unbekannt

Gruß Steffen

Hi,
Poste doch mal bitte die komplette templates.yaml

Wenn die Entitäten da sind, aber unbekannt sind, stimmt irgendwo die Einrückung bzw. die jeweilige Anzahl der Leerzeichen auf der linken Seite nicht.

1 „Gefällt mir“

Entschuldige die Nachfrage, einfach aus der yaml heraus kopieren und hier einsetzen?

Fast! :grinning:

Ganz einfach, so:
@steffenf

Codezeilen als formatierten Text über
image
einbinden. Nach dem Klick erscheint:
image
dann dort Deinen Code mit copy/paste einfügen.
Sieht dann so aus:

Hier steht dann Dein Code
- sensor:
    - name: "tank_prozent"
      unit_of_measurement: "%"
      state: >-
        {{ ((((states('sensor.fullstandssensor_tank_adc'))|float(0) * 100) * 100) / 262) |round(2) }}

    - name: "tank_liter"
      unit_of_measurement: "l"
      state: >-
        {{ (((states('sensor.tank_prozent'))|float(0) * 30000) / 100) |round(2) }}

    - name: "brunnen_prozent"
      unit_of_measurement: "%"
      state: |
        {{ (((states('sensor.fullstand_brunnen_keller_adc'))|float(0) / 716) *10000)|round(2) }}

    - name: "brunnen_liter"
      unit_of_measurement: "l"
      state: |
        {{ (((states('sensor.fullstand_brunnen_prozent'))|float(0) * 8480) / 100) |round(2) }}

    - name: "pool_prozent"
      unit_of_measurement: "%"
      state: |
        {{ (((states('sensor.pool_fullstand_adc'))|float(0) / 155) *10000)|round(2) }}

    - name: "pool_liter"
      unit_of_measurement: "l"
      state: |
        {{ (((states('sensor.pool_prozent'))|float(0) * 7793) / 100) |round(2) }}

    - name: "Einspeisung_Garage_Smart_Meter"
      #    unique_id: einspeisung_garage_smart_meter
      unit_of_measurement: "kWh"
      state: "{{ states('sensor.smart_meter_ts65a_3_garage_wirkleistung') | int(0) | abs }}"

    - name: "Battery_Gar_In"
      #    unique_id: battery_gar_in
      state: |
        {% set gridin = (states('sensor.gen24_solarnet_garage_leistung_von_der_batterie') | int(0)) %}
        {% if gridin < 0 %}
        {{ gridin | abs }}
        {% else %}
          0
        {% endif %}
      unit_of_measurement: "W"
      state_class: measurement
      device_class: power
    #       unique_id: c2266480-93f5-11ed-a103-a3cf204e46e1
    - name: "Battery_Gar_Out"
      #    unique_id: battery_gar_out
      state: |
        {% set gridin = (states('sensor.gen24_solarnet_garage_leistung_von_der_batterie') | int(0)) %}
        {% if gridin > 0 %}
        {{ gridin }}
        {% else %}
        0
        {% endif %}
      unit_of_measurement: "W"
      state_class: measurement
      device_class: power
      unique_id: ddc9e4a0-93f5-11ed-a103-a3cf204e46e1

    - name: "Battery_Pri_In"
      #    unique_id: battery_pri_in
      state: |
        {% set gridin = (states('sensor.gen24_solarnet_privat_leistung_von_der_batterie') | int(0)) %}
        {% if gridin < 0 %}
        {{ gridin | abs }}
        {% else %}
        0
        {% endif %}
      unit_of_measurement: "W"
      state_class: measurement
      device_class: power
    #       unique_id: c2266480-93f5-11ed-a103-a3cf204e46e1
    - name: "Battery_Pri_Out"
      #    unique_id: battery_pri_out
      state: |
        {% set gridin = (states('sensor.gen24_solarnet_privat_leistung_von_der_batterie') | int(0)) %}
        {% if gridin > 0 %}
        {{ gridin }}
        {% else %}
        0
        {% endif %}
      unit_of_measurement: "W"
      state_class: measurement
      device_class: power

- trigger:
    - platform: time_pattern
      hours: /1
  action:
    - service: weather.get_forecasts
      target:
        entity_id:
          - weather.forecast_home
      data:
        type: daily
      response_variable: vorhersage
  sensor:
    - name: Wetter-Vorhersage Next Day
      unique_id: forecast_next_1_day
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        condition: "{{ vorhersage['weather.forecast_home'].forecast[1].condition }}"
        cloud_coverage: "{{ vorhersage['weather.forecast_home'].forecast[1].cloud_coverage }}"
        temperature: "{{ vorhersage['weather.forecast_home'].forecast[1].temperature }}"
        datetime: "{{ vorhersage['weather.forecast_home'].forecast[1].datetime }}"

    - name: Wetter-Vorhersage Übermorgen
      unique_id: forecast_next_2_day
      state: "{{ now().isoformat() }}"
      icon: mdi:hours-24
      attributes:
        condition: "{{ vorhersage['weather.forecast_home'].forecast[2].condition }}"
        cloud_coverage: "{{ vorhersage['weather.forecast_home'].forecast[2].cloud_coverage }}"
        temperature: "{{ vorhersage['weather.forecast_home'].forecast[2].temperature }}"
        datetime: "{{ vorhersage['weather.forecast_home'].forecast[2].datetime }}"

- binary_sensor:
    - name: "Wohnzimmer Occupied"
      #    unique_id: wohnzimmer_occupied
      state: >
        {{ "wohnzimmer" in [
          states('sensor.iphonesteffen'),
          states('sensor.iphonedfa'),
          states('sensor.iphonedaniela') ] }}
      delay_on: 5
      delay_off: 10

    - name: "Schlafzimmer besetzt"
      #    unique_id: schlafzimmer_besetzt
      state: >
        {{ "schlafzimmer" in [
          states('sensor.iphonesteffen'),
          states('sensor.iphonedfa'),
          states('sensor.iphonedaniela') ] }}
      delay_on: 5
      delay_off: 10
#- sensor:
#    - name: "Battery Garage Power In"
#      unit_of_measurement: "W"
#      device_class: power
#      state_class: measurement
#      state: >
#        {% set power = states('sensor.byd_garage_hvm_strom_dc' )|float(0) * states('sensor.byd_garage_hvm_spannung_dc')|float(0) /1000 %}
#        {% if power >= 0 %}
#          {{ power }}
#        {% else %}
#          0
#        {% endif %}
#      availability: "{{ states('sensor.byd_garage_hvm_strom_dc' )|is_number and states('sensor.byd_garage_hvm_spannung_dc')|is_number }}"#
#
#    - name: "Battery Garage Power Out"
#      unit_of_measurement: "W"
#      device_class: power
#      state_class: measurement
#      state: >
#        {% set power = states('sensor.byd_garage_hvm_strom_dc' )|float(0) * states('sensor.byd_garage_hvm_spannung_dc')|float(0) /1000 %}
#        {% if power < 0 %}
#          {{ power|abs }}
#        {% else %}
#          0
#        {% endif %}
#      availability: "{{ states('sensor.byd_garage_hvm_strom_dc' )|is_number and states('sensor.byd_garage_hvm_spannung_dc')|is_number }}"#
#
#- sensor:
#    - name: "Battery Privat Power In"
#      unit_of_measurement: "W"
#      device_class: power
#      state_class: measurement
#      state: >
#        {% set power = states('sensor.byd_privat_hvs_strom_dc' )|float(0) * states('sensor.byd_privat_hvs_spannung_dc')|float(0) /1000 %}
#        {% if power >= 0 %}
#          {{ power }}
#        {% else %}
#          0
#        {% endif %}
#      availability: "{{ states('sensor.byd_privat_hvs_strom_dc' )|is_number and states('sensor.byd_privat_hvs_spannung_dc')|is_number }}"##
#
#    - name: "Battery Privat Power Out"
#      unit_of_measurement: "W"
#      device_class: power
#      state_class: measurement
#      state: >
#        {% set power = states('sensor.byd_privat_hvs_strom_dc' )|float(0) * states('sensor.byd_privat_hvs_spannung_dc')|float(0) /1000 %}
#        {% if power < 0 %}
#          {{ power|abs }}
#        {% else %}
#          0
#        {% endif %}
#      availability: "{{ states('sensor.byd_privat_hvs_strom_dc' )|is_number and states('sensor.byd_privat_hvs_spannung_dc')|is_number }}"

Kurz eingeworfen ohne jetzt schon den Code genau angeschaut zu haben:
Der Trigger löst zu jeder vollen Stunde aus. Dazwischen ist der Zustand “unbekannt”, wenn das zum 1. Mal eingefügt wurde.

Wurde das berücksichtigt und auch nachdem eine neue Stunde begonnen hat, bleibt der Zustand “unbekannt”?

1 „Gefällt mir“