Hallo Zusammen,
ich versuche gerade eine Automatisierung für unsere Rollladen zu erstellen.
Da wir für jeden Raum auswählen/Einstellen wollen, was die Rollladen können sollen und ich nicht eine Liste mit diversen Schaltern für jeden Raum erstellen möchte, bin ich auf den Imput_Select gestoßen.
Hier kann man dann auswählen, was die Rollos machen dürfen.
In der Liste kann man dann zum Beispiel aus folgenden Optionen auswählen:
Keine Automation
Schließen
Öffnen
Verschatten
Schließen, Öffnen
Schließen, Öffnen, Verschatten
Wenn ich jetzt in einer Automatisierung eine Bedingung einfüge, kann ich den Status des jeweiligen Imput_Select als ganzes auswählen.
Also Schließen, oder Schließen, Öffnen usw.
Meine Frage ist nun, wie kann ich das mit einem Template prüfen ob in dem State ein Wort vorkommt, z.B. Schließen, oder Öffnen?
Wenn ich dich richtig verstanden habe, könntest du es in einem Template so versuchen:
{% set text = states('input_select.DEIN_INPUT_SELECT') %}
{% if text == 'Schließen' %}
Aktion für "Schließen"
{% elif text == "Öffnen" %}
Aktion für "Öffnen"
{% elif text == "Verschatten" %}
Aktion für "Verschatten"
{% elif text == "Schließen, Öffnen" %}
Aktion für "Schließen, Öffnen"
{% elif text == "Schließen, Öffnen, Verschatten" %}
Aktion für "Schließen, Öffnen, Verschatten"
{% else %}
Aktion für "Keine Automation"
{% endif %}
Ansonsten beschreibe doch bitte noch etwas genauer, was du am Ende erreichen möchtest.
Also, ich möchte eine Automation für die Rollladensteuerung erstellen.
Die Einstellungen werden Central in einem Fenster für alle Räume/Rollladen eingestellt.
Mein Gedanke ist hierbei die Liste zu nehmen, weil ich hier mehrere Optionen in einem Objekt habe.
In der Automation wird es die Trigger für das Öffnen, Verschatten und Schließen.
Wenn dann z.B. der Trigger fürs Öffnen auslöst, möchte ich für jeden Raum/Rollladen prüfen, ob dieser bei der jeweiligen Aktion berücksichtig werden soll.
In der Programmierung (VB) würde ich jetzt eine Abfrage in die Settings machen und Fragen ob das Objekt den Wert enthält.
Wenn ich dein Beispiel nehme, dann würde ich jetzt Fragen if text like ‚öffnen‘.
Die Antwort wäre True wenn irgendeine Option mit Öffnen ausgewählt wäre, oder eben False, wenn Schleißen oder oder Verschatten ausgewählt wäre.
Ist das Ergebnis True, soll dann die Automation für diesen Raum/Fenster ausgeführt werden.
Ich hoffe, ich konnte meinen Plan einigermaßen beschreiben.
Deine Lösung war mir bekannt, ich habe halt gehofft, dass hier auch so etwas wie Like, select case oder so etwas in der Art gibt, dass man nicht einen Ellen Lange Code schreiben muss
So was wie:
{% set text = states(‚input_select.testliste‘) %}
{% if like ‚%Schließen%‘ %}
So ganz ist mir das immer noch nicht klar. Mit @seb seinem Vorschlag hast du doch eine wenn ja/dann Funktion. Wenn Text gleich Text, dann führe Aktion aus. Man kann noch mit in arbeiten, ist aber vom Prinzip her für mich das selbe.
{% set text = states('input_select.testliste') %}
{% if 'Schließen' in text %}
Schließen gefunden
{% elif 'Öffnen' in text %}
Öffnen gefunden
{% else %}
Keine Übereinstimmung
{% endif %}
Und ja, Seb hat ein gutes Beispiel gezeigt, allerdings muss man hier jede mögliche Option in der If berücksichtigen. Mit der deiner Version muss man das nicht mehr.
Ich muss z.B. bei der Aktion Schließen nur noch prüfen, ob im Input_Select für den jeweiligen Rollladen das Schließen enthalten ist.
Hi Ingo, na schön. Bitte daran denken, Lösungen zu markieren, so dass andere die ebenfalls danach suchen oder eine ähliche Problemstellung haben, schnell die Lösung finden. Danke.
Also wenn in deinem Input_Select in einer Option Öffnen steht und in einer weiteren Option dann Schließen, Öffnen, bzw. Schließen, Öffnen, Verschatten, dann hatte ich dich so verstanden, dass auch drei unterschiedliche Aktionen jede dieser Option ausgeführt werden sollen. Wenn du nun im Template eine Bedingung if 'Schließen' in text benutzt wird diese bei allen drei Optionen true liefern und die entsprechende Aktion ausführen. Es gibt dann also keinen Unterschied welche Option du gewählt hattest. Ist das wirklich so gewollt?
der Input_Select soll nicht als Auslöser dienen.
Ich möchte diesen nur als Einstellung für die Jeweiligen Rollladen nutzen.
Ist hier also Schließen ausgewählt, dann soll dieser Rollladen nur bei der Aktion Schließen berücksichtigt werden.
Wenn ich Handbetrieb auswähle, dann wird dieser Rollladen in keiner Automation berücksichtigt.
Oder wenn die Option Öffnen, Schließen, Verschatten Ausgewählt/Eingestellt ist, dann wird der Rollladen bei Allen Automationen berücksichtigt.
Also wenn die Automation Öffnen läuft, wir für jeden Rollladen geprüft ob es in der zugehörigen Input_Select „Öffnen“ enthält, und wenn das zutrifft, dann soll die Aktion Öffnen ausgeführt werden, anderen Falls halt nicht.