{"id":512,"date":"2026-05-23T09:33:58","date_gmt":"2026-05-23T07:33:58","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=512"},"modified":"2026-05-23T09:33:58","modified_gmt":"2026-05-23T07:33:58","slug":"sprich-mit-der-einkaufsliste-voice-todo","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/sprich-mit-der-einkaufsliste-voice-todo\/","title":{"rendered":"Sprich mit der Einkaufsliste: Voice + todo"},"content":{"rendered":"<p>Die Einkaufsliste ist die unscheinbarste, aber meistgenutzte Entit\u00e4t im Smart Home. <code>todo.einkaufsliste<\/code> lebt in Home Assistant seit der grossen Todo-Reform 2023 als vollwertige Entit\u00e4t \u2013 inklusive Service-Aufrufen, Template-Zugriff und nativer Voice-Anbindung. In Kombination mit einem lokalen Voice-Satellit (Home Assistant Voice oder Raspiaudio Muse Luxe) entsteht damit ein Workflow, den selbst Alexa-Veteranen vermissen werden, sobald sie ihn einmal eingerichtet haben: Mitten beim Kochen sagt man \u00abHey Nabu, schreib Mehl auf die Einkaufsliste\u00bb \u2013 fertig. Kein Telefon, keine Cloud, keine Werbung.<\/p>\n<h2>Problem und Idee<\/h2>\n<p>In der Praxis scheitert die Einkaufsliste nicht an der Technik, sondern an der Reibung. Wer beim Kochen H\u00e4nde voll Teig hat, greift nicht zum Handy. Wer beim Aufr\u00e4umen feststellt, dass das WC-Papier ausgeht, vergisst es bis zum n\u00e4chsten Einkauf. Die L\u00f6sung ist eine Voice-f\u00e4hige Liste, die auf Zuruf h\u00f6rt \u2013 plus zwei Automationen, die die Liste regelm\u00e4ssig auf den richtigen Ger\u00e4ten ausspielt: am Freitagabend auf dem K\u00fcchen-Tablet und beim Verlassen des Hauses per Push aufs Handy.<\/p>\n<p><code>todo.einkaufsliste<\/code> bringt alles mit, was es daf\u00fcr braucht. Die Items werden im Status <code>needs_action<\/code> oder <code>completed<\/code> gef\u00fchrt. Per Service-Call <code>todo.add_item<\/code> lassen sich neue Eintr\u00e4ge anlegen, mit <code>todo.update_item<\/code> lassen sich Status \u00e4ndern, und der State der Entit\u00e4t zeigt die Anzahl offener Punkte als Zahl an.<\/p>\n<h2>Schritt 1: Voice Assist verstehen lassen<\/h2>\n<p>Voice Assist erkennt den Satz \u00abSchreib X auf die Einkaufsliste\u00bb seit HA 2024.3 nativ \u2013 sofern Conversation Agent und Wake Word eingerichtet sind. Wer einen lokalen Voice-Satellit nutzt, kann auf Cloud verzichten. F\u00fcr mehr Flexibilit\u00e4t lohnt sich ein eigenes Custom Sentence in <code>config\/custom_sentences\/de\/einkaufsliste.yaml<\/code>:<\/p>\n<pre><code>\nlanguage: \"de\"\nintents:\n  HassListAddItem:\n    data:\n      - sentences:\n          - \"schreib [bitte] {item} auf [die|meine] einkaufsliste\"\n          - \"setz {item} auf [die|meine] einkaufsliste\"\n          - \"merk dir {item} f\u00fcr [den|den n\u00e4chsten] einkauf\"\n        slots:\n          name: \"Einkaufsliste\"\n<\/code><\/pre>\n<p>Damit erkennt der Assistent auch umgangssprachliche Varianten \u2013 \u00abmerk dir Butter f\u00fcr den Einkauf\u00bb landet zuverl\u00e4ssig in der Liste. Wichtig: Der Slot <code>name<\/code> muss exakt dem Namen der Todo-Liste entsprechen (Achtung Gross-\/Kleinschreibung beachten oder mit Aliasen arbeiten).<\/p>\n<h2>Schritt 2: Push beim Verlassen des Hauses<\/h2>\n<p>Sobald <code>device_tracker.iphone_mike<\/code> von <code>home<\/code> nach <code>not_home<\/code> wechselt und die Einkaufsliste mindestens drei offene Punkte enth\u00e4lt, soll eine Push-Nachricht an das Handy gehen \u2013 mit den Eintr\u00e4gen direkt sichtbar.<\/p>\n<pre><code>\nalias: \"Einkaufsliste beim Weggehen mitschicken\"\ntrigger:\n  - platform: state\n    entity_id: device_tracker.iphone_mike\n    from: \"home\"\n    to: \"not_home\"\n    for: \"00:00:30\"\ncondition:\n  - condition: numeric_state\n    entity_id: todo.einkaufsliste\n    above: 2\naction:\n  - service: todo.get_items\n    target:\n      entity_id: todo.einkaufsliste\n    data:\n      status: needs_action\n    response_variable: liste\n  - service: notify.mobile_app_iphone_mike\n    data:\n      title: \"Einkaufsliste ({{ liste['todo.einkaufsliste']['items'] | length }} Punkte)\"\n      message: >-\n        {% for i in liste['todo.einkaufsliste']['items'] -%}\n        \u2022 {{ i.summary }}\n        {% endfor %}\n      data:\n        url: \"\/todo-dashboard\"\nmode: single\n<\/code><\/pre>\n<p>Der Trick ist <code>todo.get_items<\/code> mit <code>response_variable<\/code> \u2013 seit HA 2024.4 lassen sich Listeninhalte direkt in Templates ausspielen. Kein Helper, keine Kr\u00fccke.<\/p>\n<h2>Schritt 3: Freitag-Reminder auf dem Tablet<\/h2>\n<p>Am Freitag um 17 Uhr soll die Einkaufsliste laut vorgelesen werden \u2013 \u00fcber den HomePod in der K\u00fcche oder \u00fcber den Voice-Satellit. Voraussetzung: TTS-Engine wie <code>tts.home_assistant_cloud<\/code> oder die Google-Translate-Engine eingerichtet.<\/p>\n<pre><code>\nalias: \"Einkaufsliste Freitag vorlesen\"\ntrigger:\n  - platform: time\n    at: \"17:00:00\"\ncondition:\n  - condition: time\n    weekday: [fri]\n  - condition: numeric_state\n    entity_id: todo.einkaufsliste\n    above: 0\naction:\n  - service: todo.get_items\n    target:\n      entity_id: todo.einkaufsliste\n    data:\n      status: needs_action\n    response_variable: liste\n  - service: tts.cloud_say\n    data:\n      entity_id: media_player.homepod\n      message: >-\n        Auf der Einkaufsliste stehen\n        {{ liste['todo.einkaufsliste']['items'] | length }} Punkte:\n        {{ liste['todo.einkaufsliste']['items']\n           | map(attribute='summary') | join(', ') }}.\n<\/code><\/pre>\n<p>Mit <code>media_player.home_assistant_voice_0a204b_media_player<\/code> als Target funktioniert dasselbe vollst\u00e4ndig lokal \u2013 ohne Internet-Abh\u00e4ngigkeit.<\/p>\n<h2>Dashboard-Tile als Kontrolle<\/h2>\n<p>Auf dem Wohnzimmer-Tablet zeigt eine Mushroom-Card die Anzahl offener Punkte und springt bei Tap auf die Listen-Ansicht. Wer Markdown bevorzugt, kann mit <code>{{ states('todo.einkaufsliste') }}<\/code> direkt die Zahl ziehen. F\u00fcr die Vollintegration mit weiteren Bereichen lohnt der vertiefende Blick auf \u00ab<a href=\"https:\/\/www.coremind.ch\/wordpress\/\">Paperless-ngx in HA: Dokumente klug automatisieren<\/a>\u00bb \u2013 die Get-Items-Mechanik mit <code>response_variable<\/code> ist dieselbe.<\/p>\n<h2>Fazit<\/h2>\n<p>Drei Bausteine \u2013 Custom Sentence, Push beim Weggehen, Freitag-TTS \u2013 machen aus <code>todo.einkaufsliste<\/code> ein Werkzeug, das die ganze Familie nutzt, ohne dass jemand \u00abSmart Home\u00bb dazu sagt. Genau das ist der Test, ob eine Automation taugt: Wenn die Bewohner nicht mehr dar\u00fcber sprechen, sondern sie einfach benutzen, hat sie ihren Zweck erf\u00fcllt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Einkaufsliste ist die unscheinbarste, aber meistgenutzte Entit\u00e4t im Smart Home. todo.einkaufsliste lebt in Home Assistant seit der grossen Todo-Reform 2023 als vollwertige Entit\u00e4t \u2013 inklusive Service-Aufrufen, Template-Zugriff und nativer Voice-Anbindung. In Kombination mit einem lokalen Voice-Satellit (Home Assistant Voice oder Raspiaudio Muse Luxe) entsteht damit ein Workflow, den selbst Alexa-Veteranen vermissen werden, sobald sie &#8230; <a title=\"Sprich mit der Einkaufsliste: Voice + todo\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/sprich-mit-der-einkaufsliste-voice-todo\/\" aria-label=\"Mehr Informationen \u00fcber Sprich mit der Einkaufsliste: Voice + todo\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-512","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=512"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/512\/revisions"}],"predecessor-version":[{"id":527,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/512\/revisions\/527"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}