Als absoluter HASS Anfänger habe ich heute meine erste “größere” Aktion hinter mich gebracht:
Sonoff Zigbee Dongle eingebunden und darüber einen Sonoff Wireless Switch (SNZB-01) konfiguriert. In einer neu angelegten Karte (Entitäten-Kartenkonfiguration), in MQTT.fx sowie im HASS MQTT Explorer, in den entsprechenden Topic`s, ist zu sehen wann und wie ich den Switch betätige, also denke ich von der Seite ist alles OK.
Nun wollte ich meine erste Automation erstellen: Switch einmal drücken → HUE Licht geht an.
In /config/automation/dashboard habe ich eine neue Automatisierung erstellt, gespeichert und - nicht mehr wieder gefunden!
Gleiches in /config/blueprint/dashboard: Blaupause geladen, Automatisierung erstellt, gespeichert und - weg war sie!
Ich habe später gesehen das beide in /config/automations.yaml eingetragen sind.
Nun meine Frage 1:
Ist es immer so, das eine erstellte Automatisierung nur in der automations.yaml editiert werden kann und der visuelle Editor nur zur erstmaligen Erstellung genutzt wird?
Frage 2:
“Natürlich” funktioniert meine erstellte Automation nicht, das HUE Licht schaltet sich nicht ein ;-(
Gibt es ne andere Möglichkeit einen einfachen Ablauf zu durchzuführen, irgendwie in der Entitäten-Kartenkonfiguration ein “Schaltaktion” zu hinterlegen, visuell meine ich?
Klicke ich sie an, kann ich sie sogar (mit sehr vielen Einstellungsmöglichkeiten) migrieren.
Ich speichere sie anschließend unter neuen Namen ab, aber selbst nach einem HASS Neustart wird sie mir NICHT in /config/automation/dashboard angezeigt. Dafür ist die migrierte Automation nun in der automations.yaml engefügt.
Moin @Steinspiel ,
du hast jetzt wahrscheinlich 2x automation:
in deiner configuration.yaml. 1x den Standard eintrag: automation: !include automations.yaml
und dann bei deiner eingetragenen Automation und HA lädt nur die Automation unter einem Punkt und ignoriert den anderen.
Edit:
Ich glaube wie geasgt das du 2x oder häufiger automation: in der Config hast und das mag HA nicht
sagt wer? Denn so ganz stimmt das nun leider nicht.
Ich lade immer Automationen aus komplett unterschiedlichen Files, neben der automations.yaml, letzte ist zum spielen bzw. zum entwickeln von Automatisierungen aber sehr gut. Allerdings ist der Ergebniscode dann leider absolut nichtssagend.
automation: !include automations.yaml
der Standardeintrag, erlaubt es über den GUI Editor Automatisierungen zu erstellen und auch wieder zu ändern. Ideal wenn man mal was probieren will, erlaubt es sowohl über die GUI als auch im YAML die Automatisierungen zu bearbeiten. Superblind ist allerdings der Quatsch das diese Variante (genauso wie im Lovelave Dashboard) sämtliche Kommentare die man sich einfügt damit man in 2 Wochen auch noch weiss warum man dies oder jenes gemacht hat beim Speichern wieder entfernt. Eins der #1 Mankos von home assistant würde ich sagen.
damit lädt home assistant wie auch bei anderen dateien einfach x-beliebig viele YAML Dateien nach die man im Ordner /config/automations/ ablegt (den automations muss man sich natürlich erzeugen).
WICHTIG: Die Automatisierungen die man dort in den Ordner z.B. in “rollaeden.yaml” ablegt sollten tunlichst nicht mit “- id: xxxxxxx” beginnen, sondern einfach ohne die “- id” Zeile, also z.B. mit “- alias: xxxxx” und so weiter.
NACHTEIL: man kann diese Automatisierungen hinterher NICHT mit dem GUI Editor bearbeiten. Deshalb heisst mein Eintrag in der configuration.yaml ja auch “automation final:”
Die Automationen laufen ganz normal, man bekommt im GUI Editor eine Warnung angezeigt und man kann sich dort auch den YAML Code anzeigen lassen Nur Editiieren ist halt nicht.
VORTEIL: Da man diese YAML Datei(en) nur mit nem Editor bearbeiten kann entfernt einem home assistant auch nicht vorhandene Kommentarzeilen die man eingefügt hat. Also ähnlich wie der RAW Editor im Dashboard.
@Steinspiel: lös dich mal von YAML files die mit “automation:” beginnen.
Du hast geschrieben das die als 2 Automatisierungen angezeigt werden. Logisch, es sind ja zwei. Sie beginnen jeweils mit “- alias”
Du hast 3 oder mehr Wege für Automatisierungen.
der Standardweg für nicht-YAML-Künstler.
Die Zeile “automation: !include automatison.yaml” in die configuration.yaml und fertig. der Rest passiert über den GUI Editor. Einstellungs>Automatisierungen&Szenen>Automatisierungen>Neu erstellen. Hier hast du die Option GUI oder YAML (3 Punkte oben rechts)
Und du kannst die Ablaufverfolgunf nutzen für Automatisierungen die laufen oder gelaufen sind.
der Weg den ich hier oben beschrieben habe weil behauptet wurde automationen würden immer nur von einem Ort gelesen und in der automations.yaml stehen.
der Weg den du gepostet hast (der ganz alte Weg) man macht einen Punkt “automations:” und darunter kannst du so viele Automatisierungen eintippern wie du lustig bist.
Da dieser “alte Weg” aber vom Weg 1 abgelöst wurde ist dir folgendes passiert. home assistant hat das bei einem Neustart erkannt und die Codezeilen entfernt und automatisch in die automations.yaml migriert. Deshalb waren die auch weg.
Erst mal danke für die Hinweise. Habe nicht alles verstanden, aber ich denke der
ist erstmal das richtige für mich.
Ich habe etwas “rum gelesen” und !include gefunden. So habe ich erst mal zwei Automationen (wahrscheinlich heißt das in dem Fall gar nicht “Automation”, oder?) aus meiner configuration.yaml ausgelagert.
Die Konfiguration des Argon Lüfters kriege ich (noch) nicht ausgelagert, da bekomme ich immer noch ne Fehlermeldung beim prüfen der YAML Konfigurationen.
Den ersten Teil der configuration.yaml habe ich mir so zusammen gesucht (weiß ja nicht was ich inzwischen alles so gelöscht habe)…
Ich habe zwar Backups, weiß aber nicht ob und wie ich die configuration.yaml dort heraus bekomme.
Die automations.yaml habe ich geleert und fange einfach von vorn an!
Ist denn der erste Teil meiner configuration.yaml in Ordnung so, oder fehlt da irgendwas wichtiges?
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text to speech
tts:
- platform: google_translate
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
#------------------------------------
# AUSGELAGERT ANFANG
#------------------------------------
# Anfang Raspberry Pi CPU Temperature
sensor: !include config_raspi_cpu_temp.yaml
# Ende Raspberry Pi CPU Temperature
# Anfang Konfiguration MQTT Topic + BME 280 Sensoren
mqtt: !include config_mqtt_280_sensoren.yaml
# Ende Konfiguration MQTT Topic + BME 280 Sensoren
#------------------------------------
# AUSGELAGERT ENDE
#------------------------------------
# Anfang Konfiguration des Argon Luefters
# Anleitung: https://github.com/Misiu/argon40
sensor:
- platform: command_line
name: CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
automation:
- alias: "Set fan speed"
trigger:
platform: numeric_state
entity_id: sensor.cpu_temp
above: 50.0
for:
minutes: 1
action:
- service: argon40.set_fan_speed
data:
speed: 40
automation:
- alias: "Argon40 button double-tap"
trigger:
platform: event
event_type: argon40_event
event_data:
action: double-tap
action:
- service: persistent_notification.create
data:
title: "Argon 40"
message: "Button was double-tapped"
# Ende Konfiguration des Argon Luefters
Moin,
du hast 3x automation: drin wovon einer auch noch falsch eingerückt ist.
Dann noch 2x sensor:, ich würde dir empfehlen die Anzahl auf jeweils 1 zu reduzieren.
Edit:
3x darfst du raten wieso bei der Anleitung in deiner Conifg die Sachen in verschiedenen Codeboxen drin sind.
Noch ein Tipp, weil @totow dich drauf hingewiesen hat.
Bei YAML ist jeder Fehler was die Einrückungen angeht tödlich, sprich nix geht mehr.
Es gibt aber “google ist dein freund” sehr viele “YAML pretty print” seiten in denen du einfach deinen YAMLcode reinwirfst und dann auf der andere Seite das rauskommt was gemäß YAML Standard ist. Das ist zu Beginn mehr als nur hilfreich denn nachdem man 2 min den Fehler gesucht aber nicht gefunden hat bekommt man ihn dann direkt mal angezeigt und mit der Dauer lernt man draus.
Aber Vorsicht: solltest du Kommentarzeilen in deinen YAML Dateien haben, die meisten Prettifier verwerfen die schlicht genau so wie es home assistant auch macht.
Erst mal Danke und ich glaub das kann ich wirklich nur, das raten… ;-(
Aus Deinen und den anderen Hinweisen habe ich das bisher so verstanden:
In den Konfigurationsfiles gibt es “Abschnitte” wie sensor:, automation: usw. Jeden “Abschnitt” gibt es nur einmal und unter der “Abschnittbezeichnung”, wie z.B. sensor: werden dann die einzelnen Sensoren definiert. Egal wieviele man davon hat, alle kommen da hinein und Home Assistent holt sich dann die Infos zu den Sensoren und ordnet die dann “irgendwie” zu.
Gleiches gilt für die automation:: alle Bestandteile einer Automation kommen (eingerückt) untereinander, sind durch einen Namen wie - alias: “Set fan speed” definiert und die nächste Automation würde dann einen anderen “- alias Namen” in der Reihe haben.
Halbwegs richtig?
Dein Beispiel mit den verschiedenen Codeboxen verstehe ich so: die Sensoren trage ich in die configuration.yaml ein, die Automationen in die automations.yaml. Und im Falle meiner “Konfiguration des Argon Lüfters” funktioniert das dann trotzdem, auch wenn “mein” Abschnitt dadurch “auseinander gerissen” wird?
Oder mache ich für die Sensoren besser eine extra sensoren.yaml und binde die mit “sensor: !include” in die configuration.yaml ein?
@sirector Ich habe oben ein Bild gepostet und er meint glaube ich das er das Trennen muss.
Sensoren zu sensor:, Automationen in die automation.yaml usw. und das muss er dann wohl trennen @Steinspiel hast du gut verstanden.
meine Auslagerung sehen so aus:
mit !include_dir_merge_list kannst du ein ganzen Ordner bestimmen.
und dann haue ich da meine .yaml rein hier z.B. mein Sensor Ordner.
so kann man finde ich gut den überblick behalten.
Habe ich jetzt auch gelassen, weil ich im Moment gar nicht weiterkomme…
Ich wollte jetzt einfach “nur” ein paar Sensoren in die configuration.yaml einfügen, zur Übung so zu sagen, aber da geht es auch schon los:
Das hier läuft Problemlos durch und der Sensor funktioniert auch (den Code habe ich aus einer Anleitung…)
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text to speech
tts:
- platform: google_translate
#------------------------------------
# AUSGELAGERT ANFANG
#------------------------------------
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Anfang Konfiguration des Argon Lüfters
# Anleitung: https://github.com/Misiu/argon40
sensor:
- platform: command_line
name: CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
Erweitere ich das aber um einen weiteren Sensor:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text to speech
tts:
- platform: google_translate
#------------------------------------
# AUSGELAGERT ANFANG
#------------------------------------
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Anfang Konfiguration des Argon Lüfters
# Anleitung: https://github.com/Misiu/argon40
sensor:
- platform: command_line
name: CPU Temp
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
- name: "Arbeitszimmer Temperatur"
state_topic: "arbeitszimmer/bme280/temperature"
unit_of_measurement: "°C"
Bekomme ich eine Meldung
Invalid config for [sensor]: required key not provided @ data['platform']. Got None. (See /config/configuration.yaml, line 24).
Wobei Zeile 24 der Eintrag “sensor:” ist !
Ich denke es liegt an den Eintrag " - platform:" Nur weiß ich nicht was ich da eintragen soll und hier bin ich auch nicht weiter gekommen…
Ach ja, und ich glaube das der “Arbeitszimmer Temperatur - Sensor” mit dieser Konfiguration schon mal bei mir funktioniert hat!
Was muss ich ändern? Ich kann mir doch keinen “Platform - Namen” ausdenken, das habe ich probiert!
Ich erinnere mich dunkel, das stand damals auch unter “mqtt”…
Wenn ein sensor:untermqtt: steht, ist das denn ein anderer Sensor als der Sensor der weiter oben bei mir schon konfiguriert steht? (was für`n wilder Satz!)
Kannst Du mir kurz was zu - platform: sagen? wie wird die defeniert?
ja der Sensor unter mqtt: ist ein anderer sensor: der ist ja auch weiter eingerückt
# deine normalen Sensoren
sensor:
# alles was zu mqtt gehört
mqtt:
# deine mqtt Sensoren
sensor:
die -pattform bezieht sich meines Wissens (Achtung gefährliches Halbwissen!) immer zu einer Integration.
z.B. - platform: time_date gehört zur Integration Date & Time