Hallo zusammen,
Ihr seid meine letzte Rettung (wie man so zu sagen pflegt)
Ich komme nicht weiter und bin mit meinem Latein am Ende.
Folgende Aufgabe:
Ich habe ein Script das einen Roborock zum saugen schickt. Ich benutze die Roborock Integration von HA.
Im Detail sollen nur die Räume über “app_segment_clean” gesäubert werden deren Input_boolean auf ON steht.
Hier ist was ich bis jetzt habe was FAST die Lösung ist:
alias: Reinigung Starten
sequence:
- data:
command: app_segment_clean
params:
segments: >
{% set ids = namespace(list=[]) %} {% for room in
state_attr('sensor.roborock_raume', 'rooms') if is_state(room.boolean,
'on') %}
{% if loop.first %}
[{{ room.id }}
{% else %}
, {{ room.id }}
{% endif %}
{% if loop.last %}
]
{% endif %}
{% endfor %}
repeat: 1
target:
entity_id: vacuum.ferguson
action: vacuum.send_command
mode: single
icon: mdi:robot-vacuum
Das Ergebnis sieht so aus:
Um der Syntax gerecht zu werden (laut Doku) muss ein "- " vor segments: (siehe rot markiert)
Nein leider nicht. Das hatte ich schon probiert. Dann steht nach params: noch zusätzlich |- drin. Aber danke.
Hmm wenn ich so nachdenke. Ggf. könnte ich das - segments einfach in einen sensor schreiben und den einfach ausgeben. Nicht schön. Könnte aber funken. Das probier ich gleich mal.
by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
Das werde ich morgen mal vertesten. DANKE!
Leider nein (konnte nicht warten).
Das |- bleibt. Ebenso werden die Räume nun als String und nicht als Liste eingebettet.
sieht so aus nachdem ich {% mit {%- ersetzt hatte.
params: |-
- segments: [ [16, 17
]]
repeat: 1
Hatte mit ChatGPT auch schon Kontakt. Er konnte mir leider auch nicht helfen. Das Code Snippet sieht verdächtig danach aus als ob ich das auch schon ausprobiert hätte. Trotzdem danke für deine Hilfe.
params: >
- segments: [{% for room in state_attr('sensor.roborock_raume', 'rooms') if is_state(room.boolean, 'on') %}{{ room.id }}{% if not loop.last %}, {% endif %}{% endfor %}]
by tarag: Beiträge zusammengeführt. Bitte bearbeiten Funktion nutzen.
Sorry vergessen
Die denke das mein krummer Ansatz mit einem Sensor ggf. zum Erfolg führen könnte.
Update: Nein geht auch nicht. Das - ist der Knackpunkt.
Update: Nachdem ich nun schon seid geraumer Zeit dabei bin eine Lösung zu finden, hake ich das Thema ab und setze es anders um.
Falls doch jemand die Lösung wissen sollte. Gerne posten. Ich baue es dann bei mir wieder um. Versprochen
Möglichkeiten:
4 Räume müssen abgedeckt werden. Decke ich alle Möglichkeiten ab komme ich auf 15. 16 wären es wenn kein Raum gereinigt werden soll.
Ergo: 15 scripte und ggf. eine automation die entsprechend der Auswahl das script startet ODER ich gebe hart 4 Möglichkeiten vor (muss meine Family mit leben )
Gerade drüber nachgedacht. Das passt auch in ein Script. Ist halt etwas länger und tipperei.
An dieser Stelle nochmals Danke für das bisherige.