redy09
25. April 2024 um 10:48
1
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!
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
redy09
25. April 2024 um 15:32
3
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
redy09
25. April 2024 um 19:13
5
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
redy09
26. April 2024 um 08:25
8
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
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 }}"
by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
redy09:
Wo sehe ich denn im Log eventuelle Fehler?
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.
redy09
26. April 2024 um 17:45
10
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
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 }}"
redy09
26. April 2024 um 19:08
12
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“
redy09:
Die Einrückung?
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.
redy09
27. April 2024 um 06:09
14
Ok! Nochmal vielen Dank!! Auch wieder viel gelernt
[EDIT ]
Hat sich erledigt.
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?
harryp
6. August 2024 um 07:54
19
Fast!
Ganz einfach, so:
@steffenf
Codezeilen als formatierten Text über
einbinden. Nach dem Klick erscheint:
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“