Moin zusammen,
ich habe die Anforderung bei allen Einträge einer bestimmten To-Do Liste der Integration Local to-do zu einem bestimmten Zeitpunkt den Status von completed
auf needs_action
zu stellen ohne bei Erstellung der Automation zu wissen was für Einträge vorhanden sind.
Kein Problem stellen die Auslöser da. Problematisch ist das herausfinden welche Einträge einer ToDo Liste sind vorhanden und bei diesen dann den Status zu ändern.
Wenn ihr die Lösung kennt, dann braucht ihr nicht mehr weiter zu lesen und ich freue mich über die Antwort, ansonsten kommt jetzt was ich bis her wie gemacht habe.
In einer Automation kann ich die Aktion todo.update_item
benutzen und hier ein ganz bestimmtes ToDo mit dessen Name ansprechen und den Status ändern.
action: todo.update_item
metadata: {}
data:
item: Waschmaschine
status: needs_action
target:
entity_id: todo.tagesaufgaben
Klingt fast wie die Lösung erfüllt aber nicht die Anforderung die Liste im Vorfeld nicht zu kennen. Zudem wäre es aufwändig Änderungen an der Liste zu machen und dies könnte dann jemand machen der sich mit HA auskennt. Frau und Kinder tun das nicht.
Nun gut es gibt noch eine andere Aktion todo.get_items
action: todo.get_items
metadata: {}
data:
status:
- completed
target:
entity_id: todo.tagesaufgaben
response_variable: tagesaufgabe_done
Klingt wieder nach genau dem was ich brauche. Problem ist nur wie komme ich jetzt an die einzelnen Werte die in der Variable tagesaufgabe_done
gespeichert sind und wende dann darauf das todo.update_item
?
Ich habe einmal ChatGPT gefragt was er vorschlägt. Davon abgesehen das er noch glaub das es service:
heißt und nicht action:
war das seine Antwort.
alias: To-Do-List Update Script
description: ""
trigger: []
condition: []
action:
- action: todo.get_items
data:
status:
- completed
target:
entity_id: todo.tagesaufgaben
response_variable: tagesaufgabe_done
- repeat:
count: "{{ tagesaufgabe_done | length }}"
sequence:
- variables:
current_item: "{{ tagesaufgabe_done[repeat.index0] }}"
- action: todo.update_item
data:
item: "{{ current_item['name'] }}"
status: needs_action
target:
entity_id: todo.tagesaufgaben
mode: single
Wie zu erwarten funktioniert das nicht. In der Trace Oberfläche erhalte ich für {{ tagesaufgabe_done | length }}
die Fehlermeldung Fehler: length of value must be at least 1 for dictionary value @ data['item']
. Ich vermute das die response_variable:
nicht so aussieht wie es der Befehl length
benötigt.
Ich freue mich wenn ihr die Lösung hättet oder vielleicht eine Idee was ich falsch mache.
Ich bin auf Version 2024.9.0 von HA
Viele Grüße und danke schon einmal im Vorraus.