ToDo liste abarbeiten

Hallo zusammen,

Die Idee ist eine ToDo liste für den Staubsauger anzulegen und diese abarbeiten zu lassen. Ich kenne die Befehle für den Staubsauger, ich weis wie ich todo liste anlege und befülle, die Einträge auf erledigt setze. Und wie ich die Automation triggere.

Aber ich komme nicht dahinter, wie ich aus einem ToDo Eintrag “Wohnzimmer”, den Befehle generiere, dass der Staubsauger loslegt.

Ich stehe glaub ich im Wald zeig mir mal einer ein Baum ;o) Danke

Grüße

Die Idee ist originell aber momentan nicht zielführend, sage ich mal. Ich würde lieber eine Automatisation nehmen, die nach von Dir definierten Muster die Befehle beim Staubsauger aufruft.

1 „Gefällt mir“

Auch wenn es für 5 Räume etwas overdressed ist, ist doch trotzdem kein Grund es nicht zu tun. :o)

Hab’s geschafft: ist noch nicht hübsch gemacht aber funktioniert.

alias: Todo erledigen
description: ""
triggers:
  - trigger: state
    entity_id:
      - todo.staubsauger
    for:
      hours: 0
      minutes: 0
      seconds: 10
conditions: []
actions:
  - repeat:
      sequence:
        - action: todo.get_items
          metadata: {}
          data:
            status: needs_action
          target:
            entity_id: todo.staubsauger
          response_variable: mylist
        - choose:
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Wohnzimmer' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Wohnzimmer
                - action: script.wohnzimmer_saubern_2
                  metadata: {}
                  data: {}
              alias: Wohnzimmer
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Flur' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Flur
                - action: script.flur_saubern
                  metadata: {}
                  data: {}
              alias: Flur
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Küche' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Küche
                - action: script.wohnzimmer_saubern
                  metadata: {}
                  data: {}
              alias: Küche
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Bad' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Bad
                - action: script.bad_saubern
                  metadata: {}
                  data: {}
              alias: Badezimmer
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Kinderzimmer' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Kinderzimmer
                - action: script.kinderzimmer_saubern
                  metadata: {}
                  data: {}
              alias: Kinderzimmer
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Schlafzimmer' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Schlafzimmer
                - action: script.schlafzimmer_saubern
                  metadata: {}
                  data: {}
              alias: Schlafzimmer
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Wo' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Test
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 5
                    milliseconds: 0
              alias: Wo
            - conditions:
                - condition: template
                  value_template: >-
                    {% if mylist['todo.staubsauger']['items'][0]['summary'] ==
                    'Zurück' %}
                      true
                    {% else %}
                      false
                    {% endif %}
              sequence:
                - action: notify.persistent_notification
                  metadata: {}
                  data:
                    message: >-
                      {% if mylist['todo.staubsauger']['items'][0] is defined %}
                      {{ mylist['todo.staubsauger']['items'][0]['summary'] }} {%
                      endif %}
                    title: Test
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 5
                    milliseconds: 0
              alias: Zurück
        - action: todo.update_item
          metadata: {}
          data:
            item: >-
              {% if mylist['todo.staubsauger']['items'][0] is defined %} {{
              mylist['todo.staubsauger']['items'][0]['summary'] }} {% endif %}
            status: needs_action
            description: In Arbeit
          target:
            entity_id: todo.staubsauger
        - wait_for_trigger:
            - trigger: state
              entity_id:
                - sensor.s8_pro_ultra_status
              to: returning_home
          continue_on_timeout: false
        - action: todo.update_item
          metadata: {}
          data:
            item: >-
              {% if mylist['todo.staubsauger']['items'][0] is defined %} {{
              mylist['todo.staubsauger']['items'][0]['summary'] }} {% endif %}
            status: completed
            description: Erledigt am {{ now().strftime('%d-%m-%Y %H:%M:%S') }}
          target:
            entity_id: todo.staubsauger
      while:
        - condition: numeric_state
          entity_id: todo.staubsauger
          above: 0.1
mode: single

Wenn ein Eintrag in die ToDo liste kommt startet eine Schleife: Liste auslesen → ersten Eintrag auswerten → Script mit dem entsprechenden Raum starten → Eintrag in die Todo Eintrag ändern auf “In Arbeit” → warten auf den Status “Rückkehr zum Dock” → ToDo Eintrag auf erledigt setzen (mit Datum und Uhrzeit) → Zurück auf Anfang.

Schleife endet wenn keine Einträge mehr vorhanden sind.

Ich bleib dabei, ich finde den Ansatz originell und vorallem finde ich es gut wenn man nicht aufgibt. Wenn es denn die Aufgabeliste sein soll.
Den Trigger finde ich etwas zu scharf, ggf. macht es auch ein Boolean Helfer ‘Start’ auf dem Dashboard und wenn die Schleife verlassen wird, wieder deaktivieren.

Das ursprüngliche Problem war das man den Roboter programmiert Raum a b d und dann losschickt. Nachträglich Raum c hinzufügen war nicht möglich. Sondern abbruck und nochmal neu machen. Das gilt ab jetzt nur noch für die App.

Der eigentliche trigger für die Automation ist ja „ich schreib irgendwas in die Todo liste“. Wie ich die beschreibe, Kalender, Abwesenheit Doppelklick auf einen Schalter Mal schauen.