Ich bin dabei und möchte das gerne zu meinem Hass hinzufügen.
Leider scheitere ich an der templates.yaml irgendwie total… wenn ich den Code von dir in meine templates.yaml reinhaue bekomme ich folgenden Fehler.
Invalid config for ‘template’ at templates.yaml, line 9: ‘template’ is an invalid option for ‘template’, check: template
Hi, sinnvoll wäre es, wenn Du deinen Code hier postest.
template:
# Der neue Weg (forcasts mit s)
# Tägliche Wettervorhersagen
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.nuernberg
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.nuernberg'].forecast[1].condition }}"
cloud_coverage: "{{ tagesvorhersage['weather.nuernberg'].forecast[1].cloud_coverage }}"
temperature: "{{ tagesvorhersage['weather.nuernberg'].forecast[1].temperature }}"
datetime: "{{ tagesvorhersage['weather.nuernberg'].forecast[1].datetime }}"
# 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.nuernberg'].forecast }}"
# Stündliche Wettervorhersagen
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.nuernberg
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.nuernberg'].forecast[1].condition }}"
cloud_coverage: "{{ stundenvorhersage['weather.nuernberg'].forecast[1].cloud_coverage }}"
temperature: "{{ stundenvorhersage['weather.nuernberg'].forecast[1].temperature }}"
# 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.nuernberg'].forecast[1].temperature }}"
unit_of_measurement: °C
- name: Bedingungs-Vorhersage der nächsten Stunde
unique_id: condition_forecast_next_hour
state: "{{ stundenvorhersage['weather.nuernberg'].forecast[1].condition }}"```
Also wenn du schon eine ausgelagerte yaml hast (templates.yaml) ist diese wahrscheinlich schon in der configuration.yaml referenziert
so in die Richtung
#Includes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include_dir_merge_list _my/sensors/
template: !include_dir_merge_list _my/templates/
binary_sensor: !include_dir_merge_list _my/binary_sensors/
media_player: !include_dir_merge_list _my/media_players/
weather: !include_dir_merge_list _my/weather/
dann braucht oben in Zeile 1 nicht
template:
stehen, die Zeile 1 löschen und alles ein Tab nach links rücken
jetzt hab ich die ftemplate: Zeile rausgelöscht, und alles einmal nach links gerückt
Nun schauts noch schlimmer aus.
bei mir schaut das so aus, mach mal vor dem Sensor oben drüber auch ein -
und -platform: ist zu tief, müsste auch eins zurück. Die blöden Tabs sind bei yaml immer ein Albtraum
DANKE DIR! Es klappt… endlich
Ich sehe leider meinen neuen Sensor (sensor.forecast_next_1_day) gar nicht in der Zustände Übersicht.
Konfiguration habe ich geprüft und Templates neu geladen (auch mal komplett HA neugestartet) aber der neue Sensor erscheint nicht.
Das weather Objekt habe ich auch nochmal mit dem Dienstaufruf geprüft. hat vom Namen gepasst und Werte werden vom Dienst ausgegeben.
Kann man sich für die templates irgendwelche Logs anschauen?
template:
# Der neue Weg (forcasts mit s)
# Tägliche Wettervorhersagen
- trigger:
- platform: time_pattern
minutes: /1
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.openweathermapdaily
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.openweathermapdaily'].forecast[1].condition }}"
cloud_coverage: "{{ tagesvorhersage['weather.openweathermapdaily'].forecast[1].cloud_coverage }}"
temperature: "{{ tagesvorhersage['weather.openweathermapdaily'].forecast[1].temperature }}"
datetime: "{{ tagesvorhersage['weather.openweathermapdaily'].forecast[1].datetime }}"
Gibt es ein Log für Templates?
ich bekomme nur “hourly” is undefined…
# wettervorhersage
template:
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.tomorrow_io_jbhome_daily
response_variable: hourly
sensor:
- name: Temperature forecast next hour
unique_id: temperature_forecast_next_hour
state: "{{ hourly['weather.tomorrow_io_jbhome_daily'].forecast[0].temperature }}"
unit_of_measurement: °C
Wie so oft sind mal wieder die Einrückungen falsch.
Verwende mal einen ordentlichen Code Editor, der auch die YAML Syntax prüfen tut.
Z.B. den Studio Code Server (HA Add-on)
Oder einfach mal die vielen hier vorhandnen Codes richtig kopieren.
Auch die Dokumentation hilft hier ungemein.
template:
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.tomorrow_io_jbhome_daily
response_variable: hourly
sensor:
- name: Temperature forecast next hour
unique_id: b4d3bb4d-760f-40f4-b510-d298d4d22626
state: "{{ hourly['weather.tomorrow_io_jbhome_daily'].forecast[0].temperature }}"
unit_of_measurement: "°C"
Gruß
Osorkon
Danke für den Tipp mit dem Studio Code Server. Werde ich sofort probieren. Code hatte ich von der Weather Seite übrigens kopiert …
Also ich habe deinen Version genommen (mit o.a unique ID), das in STUDIO CODE SERVER eingefügt (keine Fehler) und das dann in den Template editor.
Gleicher Fehler…?
Das Template
{{ hourly['weather.tomorrow_io_jbhome_daily'].forecast[0].temperature }}
kann im Template Editor nur einen Fehler aufwerfen.
Da die Variable hourly
ja nicht definiert ist.
Dies füllst Du Du ja mit dem Aktion Teil des Template Sensor erst mit leben. Was im Template Editor ja nicht der Fall ist.
Gruß
Osorkon
Ah, habe mal den Error nachgelesen. Kein YAML im Template, richtig?
— in der config okay und nun finde ich den Sensor jetzt…
Hallo zusammen,
bei mir werden die Template-Sensoren ebenfalls nicht angelegt.
Das yaml scheint ok zu sein. Im Log steht auch nichts davon, dass irgendetwas nicht passt.
Könnt ihr euch das bitte mal anschauen?
Ich habe diesen Abschnitt testweise direkt in der configuration.yaml:
template:
# Der neue Weg (forcasts mit s)
# Tägliche Wettervorhersagen
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.forecast_haus
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_haus'].forecast[1].condition }}"
cloud_coverage: "{{ tagesvorhersage['weather.forecast_haus'].forecast[1].cloud_coverage }}"
temperature: "{{ tagesvorhersage['weather.forecast_haus'].forecast[1].temperature }}"
templow: "{{ tagesvorhersage['weather.forecast_haus'].forecast[1].templow }}"
datetime: "{{ tagesvorhersage['weather.forecast_haus'].forecast[1].datetime }}"
# 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_haus'].forecast }}"
# Hier ein Template-Sensor, der verschieden Daten der Täglichen Vorhersage als Attribute gespeichert hat
- name: Wetter-Vorhersage für heute
unique_id: forecast_next_0_day
state: "{{ now().isoformat() }}"
icon: mdi:hours-24
attributes:
condition: "{{ tagesvorhersage['weather.forecast_haus'].forecast[0].condition }}"
cloud_coverage: "{{ tagesvorhersage['weather.forecast_haus'].forecast[0].cloud_coverage }}"
temperature: "{{ tagesvorhersage['weather.forecast_haus'].forecast[0].temperature }}"
templow: "{{ tagesvorhersage['weather.forecast_haus'].forecast[0].templow }}"
datetime: "{{ tagesvorhersage['weather.forecast_haus'].forecast[0].datetime }}"
# Stündliche Wettervorhersagen
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.forecast_haus
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_haus'].forecast[1].condition }}"
cloud_coverage: "{{ stundenvorhersage['weather.forecast_haus'].forecast[1].cloud_coverage }}"
temperature: "{{ stundenvorhersage['weather.forecast_haus'].forecast[1].temperature }}"
# 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_haus'].forecast[1].temperature }}"
unit_of_measurement: °C
- name: Bedingungs-Vorhersage der nächsten Stunde
unique_id: condition_forecast_next_hour
state: "{{ stundenvorhersage['weather.forecast_haus'].forecast[1].condition }}"
Guten Morgen,
ich habe mich auch am Wetter versucht und bin gescheitert.
Mittlerweile bin ich so weit, es gibt immer weitere Entitäten, die es nicht geben dürfte.
Also, ich habe folgendes verwendet:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
# für die Formatierung von Karten eingefügt, das Tool dafür über HACS instaliiert
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Summierung der Leistung der 3 Phasen von Shelly EM3 Haus
sensor:
- platform: template
sensors:
shelly_3em_total_power:
friendly_name: "Gesamtleistung Haus"
unit_of_measurement: "W"
value_template: >
{{ states('sensor.shelly_em3_channel_a_power') | float(0) + states('sensor.shelly_em3_channel_b_power') | float(0) + states('sensor.shelly_em3_channel_c_power') | float(0) }}
# Shelly Terrasse, Leistung wird negiert
negative_power:
friendly_name: "Solar Terrasse negiert"
unit_of_measurement: 'W'
value_template: "{{ states('sensor.solar_terrasse_switch_0_power') | float * -1 }}"
# Summierung aller Shellys die Solar sind, inklusive dem hiervor negierten
total_with_negative:
friendly_name: "Gesamtleistung mit Negativwert"
unit_of_measurement: "W"
value_template: >
{{ (states('sensor.solar_dach_power') | float(0)) + (states('sensor.solar_fassade_power') | float(0) + states('sensor.negative_power') | float(0)) }}
# hier werden die täglichen Wettervorhersagen in die Entität geschrieben
- name: Wettervorhersage täglich
unique_id: weather_entity_forecast_Wettervorhersage_täglich
state: "{{ now().isoformat() }}"
icon: mdi:hours-24
attributes:
forecast: "{{ tagesvorhersage['weather.forecast_home'].forecast }}"
template:
# Tägliche Wettervorhersagen
- trigger:
- platform: time_pattern
hours: /1 #/1 steht für stündlich
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.forecast_home
data:
type: daily
response_variable: tagesvorhersage
Grundsätzlich hatte ich auch dann die Entität sensor.wettervorhersage_taglich, wo auch Daten vorhanden waren. Dann habe ich den im yaml-Editor unbenannt und danach wieder zurück benannt und jetzt habe ich noch sensor.wettervorhersage_taglich_2. Alleine das verstehe ich nicht, warum sind zwei vorhanden, wenn ich nur einen aktuell in yaml habe?
Als ich gestern noch glaubte, dass es funktionieren würde, wollte ich eine Testautomation anlegen. Idee war, wenn die Vorhersage der Temperatur für den nächsten Tag höher als ein bestimmter Wert ist, sollte eine Lampe eingeschaltet werden, das hatte ich so vor und im automations.yaml eingetragen:
- id: '1745044446365'
alias: Test Wetter 16°
description: ''
triggers:
- trigger: state
entity_id:
- sensor.wettervorhersage_taglich
attribute: forecast
conditions:
- condition: template
value_template: "{% set forecast = state_attr('sensor.wettervorhersage_taglich',
'forecast') %}\n{% if forecast %}\n {% set tomorrow = (now() + timedelta(days=1)).date()
%}\n {% set tomorrow_forecast = forecast | selectattr('datetime', 'equalto',
tomorrow.isoformat()) | list %}\n {% if tomorrow_forecast %}\n {{ tomorrow_forecast[0].temperature
> 16 }}\n {% else %}\n false\n {% endif %}\n{% else %}\n false\n{% endif
%}\n"
actions:
- type: turn_on
device_id: da74d93783411b8305e0bb09da602b45
entity_id: e32cf05a2704b9fe3d2e2f1a11a37689
domain: light
mode: single
Die Automation hat nicht funktioniert und ich habe das Problem mit zwei Entitäten, die aktuell beide keine Wetterdaten mehr enthalten.
Wo kann ich ansetzen?
Ich habe auch alles an Code eingefügt, auch Sachen, die nichts damit zu tun haben und funktionieren. Damit man ein Gesamtbild hat.