Automatisches Zusammenführen von Bring und cookidoo

Hallo zusammen,

ich bin gerade etwas am “verzweifeln”. Ich würde gerne die To-Do Listen von Bring und von Cookidoo zusammenführen damit man beim Einkaufen nur eine Liste hat auf die man schauen muss.

Leider finde ich dazu nicht wirklich etwas. Hat jemand eine Ahnung wie man das simpel und einfach hinbekommen könnte?

Aktuell sieht s folgendermaßen aus.

  1. Rezept wird auf der cookidoo App rausgesucht und die Zutaten werden durch die cookidoo Integration in eine EIGENE To-Do Liste geschrieben
  2. Bring Integration läuft auch und schreibt alle Einkäufe auf die dementsprechende Liste
  3. nun habe ich 2 To-Do Listen auf denen die Einkäufe stehen was unhantlich im Laden ist :wink:
  4. Ziel beide Listen in einer kombinieren.

Ich danke Euch für die Hilfe :slight_smile:

1 „Gefällt mir“

Ich benutze beides nicht aber folgende Idee hätte ich, die du mal ausprobieren kannst.

Du reagierst in einer Automation auf Änderung der ersten Liste. Dann schreibst du die geänderten Werte in die andere Liste und löscht es von der ersten Liste.

Ich mache etwas anderes bei den ToDo Listen und habe mal meinen Code an deine Bedürfnisse angepasst. Du müsstest aufjedenfall die Namen von Bring und Cookidoo anpassen. Ich hoffe ich habe keinen Fehler gemacht, kann es ja nicht testen :slight_smile:

description: ""
mode: single
triggers:
  - trigger: state
    entity_id:
      - todo.cookidoo
conditions: []
actions:
  - data: {}
    target:
      entity_id: "{{todo_list}}"
    response_variable: itemlist
    action: todo.get_items
  - repeat:
      for_each: "{{ itemlist[todo_list]['items'] }}"
      sequence:
        - action: todo.add_item
          metadata: {}
          data:
            item: "{{repeat.item.summary}}"
          target:
            entity_id: todo.bring
        - action: todo.remove_item
          metadata: {}
          data:
            item: "{{repeat.item.summary}}"
          target:
            entity_id: todo.cookidoo
variables:
  todo_list: todo.cookidoo

Theoretisch könntest du auch eine dritte Einkaufsliste in HA erstellen und beide Apps drin eintragen lassen.

1 „Gefällt mir“

Das schaue ich mir mal an danke dir :slight_smile:

Guten Morgen!

Funktioniert, aber nur für den ersten Einkaufsposten.

In cookidoo wähle ich ein Rezept und betätige den Wareneinkauf.

Hier ist es der Hartkäse. Der Rest bleibt in der Cookidoo-Liste.

danke vorweg für deine Hilfe

Kann ich so nicht beantworten, da ich es nicht nutze.

Schau mal in der Automatisierung unter “Traces” , ob da ein Fehler gezeigt wird.

Ich frage mich, ob das hinzufügen von mehreren Artikel bei cookidoo zu einem Ereignis bei Home assistant führt oder ganz vielen hintereinander. Letzteres könnte ein Problem sein, welches man durch die Änderung des Modus beheben kann

Danke für den Tipp.

Da kommt ein Fehler.

in der Zwischenzeit habe ich den Modus geändert auf Parallel

Dann wird der erste Posten aus cookidoo übernommen jedoch nicht gelöscht.(dann Fehler)

Händisch:

Jetzt kann ich in der Cookidoo-Liste die Positionen anhacken und sie werden in die Einkaufsliste übernommen und im cookidoo gelöscht.

Ich habe jetzt auf der Home Assistant Seite gelesen, dass es nicht möglich ist die Cookidoo Liste zu bearbeiten. Deswegen kommt der Fehler.

Es gibt wohl nur die Möglichkeit die “Additional purchases” zu bearbeiten. Wie das in der Cookidoo App aussieht, weiss ich nicht. Aber bestimmt kann man nicht beeinflussen, wohin die Zutaten der Rezepte geschrieben werden…

Alternativ muss man die Lösch Aktion in der Automation entfernen, dann kommt der Fehler nicht mehr aber man muss die Liste in Cookidoo manuell leeren.

1 „Gefällt mir“

Es funktioniert nun:

alias: Einkauf aus cookidoo aktualisierendescription: “”triggers:
- trigger: stateentity_id:
  - todo.cookidoo_einkaufslisteconditions: actions:
- data:status: needs_actiontarget:entity_id: “{{todo_list}}”response_variable: itemlistaction: todo.get_items
- repeat:for_each: “{{ itemlist[todo_list][‘items’] }}”sequence:- action: todo.add_itemmetadata: {}data:item: “{{repeat.item.summary}}”target:entity_id:- todo.einkauf- action: todo.update_itemmetadata: {}target:entity_id: todo.einkaufslistedata:status: completeditem: “{{repeat.item.summary}}”enabled: false
-action: button.pressmetadata: {}target:entity_id: button.cookidoo_einkaufsliste_und_zusatzkaufe_loschendata: {}mode: singlevariables:todo_list: todo.cookidoo_einkaufsliste

Dann Einkaufsliste aktualisieren:

alias: Einkaufsliste aktualisierendescription: “”triggers:
- trigger: stateentity_id:
  - todo.einkaufconditions: actions:
- action: homeassistant.update_entitymetadata: {}data:entity_id:- todo.einkaufmode: single

:crayon:by HarryP: Post formatiert

Moin. Das hätte ich auch gerne :-). Könntest du deinen Code nochmal posten? Irgendwie ist der oben glaube ich etwas durcheinander geraten…

Hi @djmanipo

Könntest du bitte nochmal genauer Beschreiben wie die Automation aussehen muss?

Danke dir…

Hallo zusammen,

man kann zwar die Cookidoo-Einträge nicht löschen aber abhaken.

Versuchs mal hiermit:

alias: "Einkäufe aus Cookidoo zur HA-Einkaufsliste verschieben "
triggers:
  - entity_id: todo.cookidoo_einkaufsliste
    trigger: state
conditions: []
actions:
  - action: todo.get_items
    target:
      entity_id: "{{ todo_list }}"
    data:
      status: needs_action
    response_variable: itemlist
  - repeat:
      for_each: "{{ itemlist[todo_list]['items'] }}"
      sequence:
        - action: todo.add_item
          data:
            item: "{{ repeat.item.summary }}"
          target:
            entity_id:
              - todo.einkaufsliste
        - action: todo.update_item
          target:
            entity_id: todo.cookidoo_einkaufsliste
          data:
            item: "{{ repeat.item.summary }}"
            status: completed
  - action: homeassistant.update_entity
    target:
      entity_id: todo.einkaufsliste
    data: {}
variables:
  todo_list: todo.cookidoo_einkaufsliste
mode: single
1 „Gefällt mir“

Hey, die Lösung funktioniert super :slight_smile: danke dafür. Hast du eine Idee, wie man auch die Mengen mit zu der Bring Liste kopiert?

Ich hab mich am ganzen auch vor ein paar Tagen versucht. Du kannst die Menge bei Bring ins Feld description eintragen.

Ich hake die Liste allerdings nicht ab, sondern benutze den (standrtmäßig deaktivierten) Button zum clearen der cookidoo Liste. Funktioniert für meine Zwecke super, allerdings benutze ich die Liste für zusätzliche Einkäufe von Cookidoo nicht. Die würde in dem Fall mit gelöscht werden.

alias: Sync Cookidoo to Bring
triggers:
  - entity_id: todo.cookidoo_shopping_list
    trigger: state
actions:
  - target:
      entity_id: todo.cookidoo_shopping_list
    response_variable: cookidoo_data
    action: todo.get_items
  - variables:
      cookidoo_items: "{{ cookidoo_data['todo.cookidoo_shopping_list']['items'] }}"
  - condition: template
    value_template: "{{ cookidoo_items | count > 0 }}"
  - repeat:
      for_each: "{{ cookidoo_items }}"
      sequence:
        - variables:
            item_name: "{{ repeat.item.summary | trim }}"
            item_description: "{{ repeat.item.description | default('') }}"
        - target:
            entity_id: todo.home
          data:
            item: "{{ item_name }}"
            description: "{{ item_description }}"
          action: todo.add_item
  - action: button.press
    data: {}
    target:
      entity_id: button.cookidoo_clear_shopping_list_and_additional_purchases
mode: single
2 „Gefällt mir“

Danke devriep :slightly_smiling_face: .

Das funktioniert echt prima. Jetzt werden neben den Zutaten auch die Mengen übernommen.

Danke für deine Lösung! Die finde ich auch perfekt. Hab den versteckten (deaktivierten) Button zum clearen der Cookidoo-Einkaufslisten auch erst jetzt gefunden.

(Beitrag vom Verfasser gelöscht)