Alexa oder Assist versteht „Milch auf die Einkaufsliste“.
→Watt brauchen wir noch?
Einkaufsliste per Sprache mit Home Assistant, Alexa und Telegram
„Kartoffeln auf die Einkaufsliste.“ – und wenige Augenblicke später steht der Eintrag in unserer gemeinsamen Liste. Genauso wichtig: „Streiche Kartoffeln von der Einkaufsliste.“ löscht nur Kartoffeln und nicht gleich alles.
Wir zeigen unseren kompletten Aufbau: Home Assistant hält die eigentliche Liste, Alexa oder Assist liefert den Sprachbefehl und Telegram zeigt beiden Bewohnern immer den aktuellen Stand.


Der Messenger ist bei uns nur die gemeinsame Ansicht. Die Datenquelle bleibt eine echte Home-Assistant-To-do-Liste. Dadurch können Sprache, Dashboard und Automationen dieselben Daten verwenden.
Vier Bausteine, eine Einkaufsliste
Eine To-do-Liste ist die zentrale und dauerhafte Datenquelle.
→Hinzufügen, gezielt streichen oder bewusst alles leeren.
→Im gemeinsamen Gruppenchat steht immer genau eine aktuelle Listennachricht.
Weil wir die Daten dort haben wollen, wo auch unsere Automationen leben: in Home Assistant. Damit ist die Liste nicht an eine einzelne Sprachplattform gebunden. Heute Alexa, morgen Assist – die eigentliche Einkaufsliste bleibt dieselbe.
Eine lokale Einkaufsliste in Home Assistant anlegen
Wir verwenden die Integration Local to-do. Sie legt eine To-do-Entität direkt in Home Assistant an, ohne externen Listendienst.
- Einstellungen → Geräte & Dienste → Integration hinzufügen
- Nach Local to-do suchen.
- Eine Liste mit dem Namen Einkaufsliste anlegen.
- Prüfen, welche Entity-ID Home Assistant vergeben hat – bei uns ist das
todo.einkaufsliste.
Über das To-do-Dashboard kannst du jetzt schon manuell Artikel hinzufügen und entfernen. Das ist wichtig: Erst wenn die Liste selbst funktioniert, kommt Sprache und Telegram dazu.
Telegram-Bot mit BotFather erstellen
In Telegram öffnest du den offiziellen Bot @BotFather und sendest /newbot. Danach vergibst du einen Anzeigenamen und einen Bot-Nutzernamen. BotFather liefert anschließend einen API-Token.
Er gehört nicht in Screenshots, Forenbeiträge oder öffentliches YAML. Wer den Token besitzt, kann deinen Bot benutzen. Im Artikel verwenden wir deshalb ausschließlich Platzhalter.
Öffne danach den neuen Bot einmal selbst und sende /start. Telegram-Bots dürfen einen privaten Chat nicht von sich aus beginnen.
Telegram Bot in Home Assistant integrieren
Wichtig: Nutze die aktuelle Integration Telegram bot – nicht die alte Integration „Telegram“. Letztere ist als veraltet markiert.
- Einstellungen → Geräte & Dienste → Integration hinzufügen → Telegram bot
- Den Bot-Token eintragen.
- Als Plattform für diese reine Einkaufsliste empfehlen wir Broadcast.
- Als API-Endpunkt den Standardwert der offiziellen Telegram-Server belassen.
Warum Broadcast? Wir wollen hier nur Nachrichten aus Home Assistant an Telegram senden. Dafür muss Home Assistant nicht öffentlich aus dem Internet erreichbar sein und es ist kein eingehender Webhook nötig. Wer später Telegram-Kommandos empfangen möchte, kann stattdessen Polling oder Webhooks verwenden.
✅ Für unsere Einkaufsliste
Broadcast: Home Assistant sendet die aktuelle Liste an Telegram. Einfach, übersichtlich und ohne öffentlichen HA-Zugang.
🔄 Wenn Telegram zurücksprechen soll
Polling empfängt Nachrichten per Long Polling. Webhooks sind ebenfalls möglich, benötigen aber einen von außen erreichbaren Home Assistant.
Gemeinsame Telegram-Gruppe erstellen und Chat-ID ermitteln
Wir haben eine Telegram-Gruppe mit dem Namen Einkaufsliste angelegt und den Bot als Mitglied hinzugefügt. Damit Home Assistant genau diese Gruppe adressieren darf, braucht es ihre Chat-ID.
Eine Gruppen-Chat-ID ist bei Telegram normalerweise negativ. Du kannst sie beispielsweise über die Telegram Bot API ermitteln: Schicke nach dem Hinzufügen des Bots eine Nachricht in die Gruppe und rufe anschließend getUpdates auf.
curl -s "https://api.telegram.org/bot<DEIN_BOT_TOKEN>/getUpdates"
Im Ergebnis suchst du nach "chat" und dort nach "id". Bei einer Gruppe sieht der Wert beispielsweise wie -1234567890 aus.
Tipp: Wenn du den Befehl auf einem gemeinsam genutzten Rechner ausführst, achte auch auf die Shell-History – der Bot-Token sollte nicht unnötig gespeichert bleiben.
Gruppen-Chat in Home Assistant erlauben
Home Assistant lässt einen Telegram-Bot nicht einfach an beliebige Chats senden. Die gewünschte Chat-ID muss ausdrücklich freigegeben werden:
- Einstellungen → Geräte & Dienste → Telegram bot
- Beim Eintrag das Drei-Punkte-Menü öffnen.
- Allowed chat ID hinzufügen.
- Die negative Gruppen-ID eintragen.
- Dem erzeugten Notify-Ziel einen verständlichen Namen geben – bei uns heißt es sinngemäß
notify.einkaufsliste.
Jetzt testen wir nur den Telegram-Weg:
action: telegram_bot.send_message data: entity_id: notify.einkaufsliste parse_mode: plain_text message: "Telegram aus Home Assistant funktioniert."
Kommt diese Nachricht in der Gruppe an, steht der Transportweg.
Warum bei uns immer nur eine Listennachricht im Chat steht
Bei jeder Änderung einfach eine neue Telegram-Nachricht zu schicken funktioniert technisch – nervt aber schon nach dem dritten Artikel. Deshalb behandeln wir die Telegram-Nachricht wie eine kleine Anzeige:
- Home Assistant liest die komplette To-do-Liste.
- Die bisherige Telegram-Listennachricht wird gelöscht.
- Die aktuelle vollständige Liste wird neu gesendet.
- Die neue
message_idwird gespeichert.
Dafür verwenden wir einen persistenten Helfer, zum Beispiel input_number.einkaufsliste_telegram_id. Ist die Liste leer, löschen wir die letzte Nachricht und setzen den Helfer wieder auf 0.
🛒 Einkaufsliste • Milch • Kartoffeln • Kaffee
Das Ergebnis ist angenehm unspektakulär: Im Gruppenchat steht immer nur die aktuelle Liste – kein Nachrichtenfriedhof.
Drei Aktionen statt eines unklaren „Löschen“-Befehls
Die wichtigste Sicherheitsentscheidung in unserer Sprachlogik: Artikel entfernen und Liste leeren sind zwei verschiedene Aktionen.
„Kartoffeln auf die Einkaufsliste.“
→ shopping_add
„Streiche Kartoffeln von der Einkaufsliste.“
→ shopping_remove
„Einkaufsliste löschen.“
→ shopping_clear
Ein einfacher Parser könnte bei „Kartoffeln von der Einkaufsliste löschen“ nur das Wort löschen erkennen und daraus „ganze Liste löschen“ machen. Deshalb prüfen wir zuerst auf ein konkretes Einzel-Löschmuster. Erst wenn kein Artikel genannt wurde, darf shopping_clear greifen.
Home Assistant: hinzufügen, finden und gezielt entfernen
Home Assistant bringt die passenden To-do-Aktionen bereits mit: todo.add_item, todo.get_items und todo.remove_item. Zum gezielten Entfernen lesen wir zunächst die offenen Einträge, suchen den gewünschten Artikel und löschen anschließend dessen UID.
- action: todo.get_items
target:
entity_id: todo.einkaufsliste
data:
status: needs_action
response_variable: shopping
- variables:
remove_uid: >-
{{ (shopping['todo.einkaufsliste']['items']
| selectattr('summary', 'equalto', item)
| map(attribute='uid')
| list
| first) | default('', true) }}
- if:
- condition: template
value_template: "{{ remove_uid != '' }}"
then:
- action: todo.remove_item
target:
entity_id: todo.einkaufsliste
data:
item: "{{ remove_uid }}"
In unserem Sprachweg wird item aus dem gesprochenen Satz übernommen. Danach wird die Telegram-Ansicht aus der verbleibenden Liste neu aufgebaut.
Die private Alexa-KI darf nicht beliebige Home-Assistant-Aktionen ausführen. Für die Einkaufsliste gibt es nur drei freigegebene Befehle: hinzufügen, einen Artikel entfernen und komplett leeren. Diese landen bei uns über getrennte MQTT-RPC-Themen in Home Assistant. Damit bleibt aus einem Sprachfehler kein allgemeiner Schreibzugriff auf das Smart Home.
Alexa oder Assist? Die Liste bleibt dieselbe
Assist: Home Assistant kann Einkaufslisten bereits per Sprache bedienen. Für eigene Formulierungen oder spezielle Abläufe lassen sich zusätzlich eigene Sätze beziehungsweise Automationen verwenden.
Alexa: Wer Echo-Geräte weiterverwenden möchte, braucht einen Alexa-Weg zu Home Assistant. Das kann über Home Assistant Cloud, einen eigenen Skill oder – wie bei uns – über eine private Haus-KI geschehen. Der Sprachweg ist austauschbar; entscheidend ist, dass am Ende dieselben drei klaren Aktionen in Home Assistant ankommen.
Grundlagen: Assist, Alexa und gute Sprachbefehle →
Alexa und Home Assistant im Detail →
👍 Was sich bewährt hat
- Home Assistant als einzige Datenquelle
- Telegram nur als gemeinsame Ansicht
- eine statt vieler Telegram-Nachrichten
- klare Sprachsätze
- Einzel-Löschen vor Komplett-Löschen prüfen
plain_textfür nutzergenerierte Listeneinträge
👎 Was wir vermeiden
- Telegram selbst als Datenbank missbrauchen
- bei jeder Änderung eine neue Nachricht anhäufen
- Bot-Token in YAML-Beispielen veröffentlichen
- „löschen“ ohne Kontext direkt als Clear interpretieren
- für die reine Ausgabe unnötig Home Assistant öffentlich machen
Die aktuelle Home-Assistant-Integration heißt Telegram bot. Sie unterstützt Broadcast, Polling und Webhooks. Für jeden freigegebenen Chat kann Home Assistant ein Notify-Ziel bereitstellen; Gruppen-Chat-IDs sind negativ und müssen allowgelistet werden. Die ältere Integration „Telegram“ ist als veraltet markiert. Home Assistant stellt außerdem To-do-Entitäten und Aktionen zum Hinzufügen, Lesen und Entfernen von Listeneinträgen bereit.
Home Assistant: Telegram bot ↗
Home Assistant: Local to-do ↗
Home Assistant: To-do list ↗
Home Assistant: Assist ↗

Das Smarte an dieser Einkaufsliste ist nicht Telegram und auch nicht Alexa. Es ist die Trennung der Aufgaben: Sprache sagt, watt passieren soll. Home Assistant verwaltet den Zustand. Telegram zeigt ihn beiden Menschen an. Dadurch bleibt das Ganze verständlich – und lässt sich später leicht erweitern.
Sprachsteuerung richtig aufbauen
Assist, Alexa und Befehle, die man sich wirklich merken kann.
Zur Sprachsteuerung →Alexa darf bleiben
Echo-Geräte zusammen mit Home Assistant weiterverwenden.
Alexa-Artikel öffnen →
