Ich versuche gerade einen strukturierten Zugang zu HA zu finden.
Nehmen wir mal an, ein Skript hätte die Aufgabe Lichter per Raumname statt der entity_id ein- und auszuschalten. Das Mapping soll in einer Jinja-Datei stehen
Ich möchte nun das Skript raumbeleuchtung mit dem Parameter raumname aufrufen um den Status des Lichts umzudrehen. Geht das überhaupt? Ich habe mir das folgende Skript überlegt, aber in dieser Form kompiliert es nicht.
Danke für die schnelle Antwort! Es geht mir weniger um das konkrete Beispiel und mehr um ein generelles Vorgehen.
Ziel ist für mich, Konfigurationen in Strukturen aufzubewahren und nicht in Automatisierungen. Das kann helfen wenn neue Objekte dazukommen oder sich Daten ändern. Bespiele wären, wenn zwei Räume die Funktion tauschen oder (gerade konkret passiert) zwei kleine Netzwerkswitche zu einem großen zusammengelegt werden und sich die per SNMP verwalteten Ports ändern. In solchen Fällen müssen dann nicht alle Automatisierungen angefasst werden sondern nur eine Jinja-Datei
Mit der Jinja-Datei meinte ich die Datenstrukur licht_pro_raum, die das Mapping übernimmt.
Um es auf den Punkt zu bringen: Ich suche nach einer Variante des raumbeleuchtung Skriptes, die das macht, was in meinem Ansatz zu sehen ist: Eine Datenstruktur laden, aufgrund des übergebenen Parameters raumname eine Entität, die in der Datenstrukur zu finden ist, auswählen und auf Basis des Entitäts-Status eine Aktion ausführen.
Mein Skriptansatz kompiliert nicht einmal. Meine Frage ist daher, ob das prinzipiell / konkret funktionieren kann
OK, aber das funktioniert nur für genau dieses Skript.
Wenn ich jetzt aber noch ein Notify-Skript habe, das bei einem Alarm die Lampe rot blinken lässt, eine Halloween-Automation, die die Farbe für eine zufällige Zeit auf grün schaltet, eine, die überwacht dass kein Licht 12 Stunden ununterbrochen durchläuft und eine, die den Stromverbrauch auswertet bin ich schon bei 5. Habe ich dann eine Änderung, muss ich 5 Dateien bearbeiten statt einer Daten-Jinja-Datei.
Nun kann man das bei Licht vielleicht noch über Areas erschlagen. Bei Netzwerkports geht das aber nicht mehr. Da fallen mir spontan Überwachung der Portgeschwindigkeit, Überwachung des Traffics, Überwachung von Verbindungsfehlern, Ein/Ausschalten von POE und Erfassung des POE-Stromverbrauchs ein. Jede Änderung in der Portbelegung wären dann auch wieder fünf zu bearbeitende Skripte/Sensoren/Automationen.