Zum Hauptinhalt springen

Tandoor Recipes Smart-Home-Integration, kostenlos und Open Source

Tandoor Recipes-Integration für Gladys Assistant

Essensplan und Einkaufsliste von Tandoor Recipes in Gladys: Menüs, Szenen, Widgets.

Tandoor Recipes ist eine selbst gehostete Rezeptverwaltung: deine Rezepte, ein Essensplan und eine gemeinsame Einkaufsliste. Diese Integration bringt sie in Gladys: Ein Gerät zeigt, was heute für jede Mahlzeit geplant ist, die Mahlzeiten von morgen, die geplanten Mahlzeiten dieser Woche und die noch zu kaufenden Einträge; Szenen können zur gewählten Uhrzeit mit dem Menü des Tages starten, oder wenn sich die Einkaufsliste in Tandoor ändert, einen Eintrag zur Liste hinzufügen („die Milch ist alle“), einen abhaken, oder das Menü oder die Liste senden; zwei Dashboard-Widgets zeigen das Menü und die Einkaufsliste, mit Schaltflächen zum Hinzufügen und Abhaken vom Wand-Tablet aus.

Getestet mit einem echten Tandoor-Recipes-2.6.15-Server (in Docker); noch nicht auf einer echten Gladys-Installation: Rückmeldungen sind willkommen in den Issues.

Was du brauchst​

  • Gladys Assistant 5.2.0 oder neuer.
  • Tandoor Recipes 2.x, erreichbar von der Gladys-Maschine aus: im lokalen Netz oder im Internet über HTTPS.
  • Ein Zugriffstoken eines Tandoor-Benutzers mit dem Bereich read write (nur read reicht zum Lesen, nicht zum Hinzufügen oder Abhaken). Es handelt als dieser Benutzer, in seinem aktiven Bereich.

Erste Schritte​

1. Ein Zugriffstoken erstellen​

Öffne in Tandoor die Einstellungen, dann API, und erstelle ein Token mit dem Bereich read write und einem fernen Ablaufdatum. Kopiere das Token (tda_…): Tandoor zeigt es nur direkt nach dem Erstellen vollständig an.

2. Die Integration konfigurieren​

In Gladys unter Integrationen → Tandoor Recipes → Konfiguration:

  • Adresse von Tandoor: die Adresse, mit der du Tandoor öffnest, mit Port, zum Beispiel http://192.168.1.2:8080 oder https://rezepte.example.com. Eine aus dem Browser kopierte Adresse (…/mealplan) funktioniert auch.
  • Zugriffstoken: das Token aus Schritt 1.
  • Selbstsignierte Zertifikate akzeptieren: nur für eine https://-Adresse, deren Zertifikat auch dein Browser nicht anerkennt.
  • Aktualisierungsintervall: wie oft Tandoor gelesen wird, standardmäßig 5 Minuten (1 bis 15 Minuten). Was du in Gladys tust, erscheint sofort.
  • Sprache der Namen und Meldungen: die Sprache der Funktionsnamen und der Texte der Szenen (standardmäßig Französisch).

Speichere und klicke dann auf Verbindung testen: Tandoor antwortet mit seiner Version, dem Bereich und seinem Inhalt.

3. Das Gerät anlegen​

Lege unter Integrationen → Tandoor Recipes → Entdecken das Gerät Tandoor an. Seine Werte erscheinen sofort. Wird in Tandoor ein Mahlzeitentyp oder eine Einkaufsliste erstellt, bietet das Gerät im Tab „Entdecken“ Aktualisieren an: Dann kommt die Funktion hinzu.

Das Gerät Tandoor​

Ein Gerät pro Tandoor-Bereich (der aktive Bereich des Token-Benutzers). Seine Funktionen:

FunktionTypWert
<Mahlzeitentyp> heuteTextEine pro Mahlzeitentyp von Tandoor: was geplant ist, „Nichts geplant“
Mahlzeiten morgenTextDie Mahlzeiten von morgen, Abendessen: Lasagne, oder „Nichts geplant“
Geplante Mahlzeiten diese WocheZählerGeplante Mahlzeiten der nächsten 7 Tage, heute eingeschlossen
Einträge zu kaufenZählerNoch zu kaufende Einträge der ganzen Einkaufsliste
Zu kaufen: <Liste>ZählerNoch zu kaufende Einträge jeder Einkaufsliste von Tandoor

Die Mahlzeitentypen sind die deines Tandoor (Frühstück, Mittagessen, Abendessen…, in ihrer Reihenfolge des Tages, höchstens 10), mit den Namen, die du ihnen gegeben hast. Ein Eintrag des Essensplans zeigt seinen Titel, sonst sein Rezept; zwei Einträge für eine Mahlzeit erscheinen als Lasagne · Salat. Ein Eintrag über mehrere Tage zählt an jedem davon. Ein in Tandoor verschobener Eintrag („Verzögerung“) ist bis zu seinem Datum nicht zu kaufen. „Heute“ folgt der Zeitzone von Gladys: Direkt nach Mitternacht werden die Mahlzeiten von morgen zu denen von heute. Die Namen werden beim Anlegen des Geräts in der Sprache der Konfiguration vergeben und bleiben danach so (eine Regel von Gladys).

Dashboard-Widgets​

Füge unter Dashboard → Dashboard bearbeiten ein Widget der Integration Tandoor Recipes hinzu.

Speiseplan​

  • Zeitraum: Heute: das Datum und eine Zeile pro heute geplantem Mahlzeitentyp.
  • Zeitraum: Nächste 7 Tage: eine Zeile pro Tag, heute und morgen markiert; tippe auf einen Tag, um seine Mahlzeiten zu sehen.
  • Aktualisieren liest Tandoor neu.
  • Tandoor öffnen öffnet den Essensplan, wenn Tandoor eine https://-Adresse hat (Gladys öffnet keine anderen Links).

Einkaufsliste​

Die noch zu kaufenden Einträge (Einstellung Einkaufsliste: der Name einer Liste in Tandoor; leer: die ganze Einkaufsliste), mit Menge und Einheit.

  • Hinzufügen öffnet ein Formular mit einem Feld, Eintrag, gelesen wie eine in Tandoor getippte Zeile: Milch, 2 kg Tomaten. Ein Eintrag, der schon auf der Liste steht (Groß- und Kleinschreibung, Akzente und Plural egal), wird nicht doppelt hinzugefügt.
  • Abhaken öffnet ein Formular mit den Einträgen: Der gewählte wird in Tandoor abgehakt, wie in der App (dort abwählen macht es rückgängig).
  • Aktualisieren liest Tandoor neu.
  • Tandoor öffnen öffnet die Einkaufsliste, wenn Tandoor eine https://-Adresse hat.

Szenen​

Auslöser​

AuslöserFilterVariablen
Mahlzeiten des TagesStunde (0 bis 23)Alle Mahlzeiten des Tages, Rezepte, geplante Mahlzeiten
Einkaufsliste geändert(keiner)Hinzugefügte, abgehakte oder entfernte Einträge, ihre Anzahl, zu kaufen
  • Mahlzeiten des Tages löst zur gewählten Uhrzeit aus, an einem Tag mit mindestens einer in Tandoor geplanten Mahlzeit: 17, um um 17 Uhr zu wissen, was du heute Abend kochst. Ein Tag ohne Plan löst nichts aus.
  • Einkaufsliste geändert löst aus, wenn in Tandoor (App, anderer Benutzer) Einträge hinzugefügt, abgehakt oder entfernt wurden, beim nächsten Lesen gesehen. Was Gladys selbst getan hat (eine Szene, das Widget), löst nichts aus: Eine Szene an diesem Auslöser kann keine Schleife bilden.

Aktionen​

AktionFelderErgebnisse
Zur Einkaufsliste hinzufügenEintrag, Einkaufsliste (leer: ganze Liste)Eintrag hinzugefügt (ja/nein), Eintrag, Liste, zu kaufen
Eintrag der Einkaufsliste abhakenEintrag, EinkaufslisteEintrag abgehakt (ja/nein), Eintrag, Liste, zu kaufen
Mahlzeiten eines Tages lesenTag (heute, morgen, übermorgen)Alle Mahlzeiten des Tages, Rezepte, geplante Mahlzeiten
Einkaufsliste lesenEinkaufslisteEinträge zu kaufen (durch Kommas getrennt), Anzahl, Liste
  • Ein Eintrag wird wie in Tandoor getippt: 2 kg Tomaten ergibt 2 kg des Lebensmittels „Tomaten“ (der Zutaten-Parser von Tandoor, der ein neues Lebensmittel oder eine neue Einheit anlegt, wie es das Tippen in Tandoor täte).
  • Ein Eintrag wird so gefunden, wie du ihn sagst: oeufs findet Œufs, tomate findet Tomaten. Eine Liste wird über ihren Namen gefunden, oder über ihren Anfang (super für Supermarkt).
  • Ein Eintrag, der schon auf der Liste steht, wird nicht erneut hinzugefügt: Das Ergebnis Eintrag hinzugefügt ist dann „nein“. Ein Eintrag, der nicht auf der Liste steht, ist kein Fehler: Eintrag abgehakt ist „nein“.
  • Die Ergebnisse gehen in die folgenden Aktionen der Szene, zum Beispiel eine Nachricht Heute Abend: {{0.0.summary}} (0.0: die Position der Aktion in der Szene; der Nachrichteneditor listet die Ergebnisse auf).

Szenen-Ideen​

  • Was essen wir heute Abend?: Auslöser Mahlzeiten des Tages um 17, dann {{triggerEvent.data.meals}} über Telegram senden.
  • „Die Milch ist alle“: Eine Taste (oder ein Sprachassistent) startet Zur Einkaufsliste hinzufügen mit Milch.
  • Jemand hat die Liste ergänzt: Auslöser Einkaufsliste geändert, dann Hinzugefügt: {{triggerEvent.data.added}} an die Person senden, die einkauft.
  • Auf dem Weg zum Einkaufen: Wenn jemand die Arbeit verlässt, Einkaufsliste lesen, dann ihre Einträge senden, falls es welche gibt.

Aktualisierung und Nutzung der Tandoor-API​

Die Integration liest Tandoor mit einem eigenen Timer (Gladys fragt es nicht ab), im Intervall der Konfiguration und direkt nach Mitternacht. Ein Lesevorgang sind vier Anfragen: die Mahlzeitentypen, der Essensplan der kommenden Tage, die Einkaufslisten und die Einträge (mehr Seiten ab 200 Einträgen); „wer bin ich“ (Version und Bereich) wird einmal pro Stunde neu gelesen. Tandoor setzt kein API-Kontingent. Eine Szenen-Aktion, ein Widget oder eine neue Stunde liest Tandoor neu, wenn der letzte Lesevorgang älter als 30 Sekunden ist; was die Integration ändert, wird sofort neu gelesen.

Nur die Werte, die sich ändern, werden an Gladys gesendet, und alle 6 Stunden alle Werte erneut.

Fehlerbehebung​

  • „Zugriffstoken abgelehnt“: Das Token wurde gelöscht, ist abgelaufen oder gehört zu einem anderen Tandoor. Erstelle ein neues (Schritt 1).
  • „das Zugriffstoken darf nur lesen“: Das Token hat den Bereich read; erstelle eines mit read write, um Einträge hinzuzufügen oder abzuhaken.
  • „Tandoor antwortet nicht“: Prüfe Adresse und Port von der Gladys-Maschine aus (http://<Adresse>:8080/api/server-settings/current/ muss antworten). Das Abzeichen des Geräts zeigt dann „nicht erreichbar“, und seine Werte bleiben die zuletzt gelesenen.
  • „Zertifikat abgelehnt“: Aktiviere Selbstsignierte Zertifikate akzeptieren, oder nutze im lokalen Netz die http://-Adresse.
  • „kein Tandoor Recipes 2 unter dieser Adresse“: Die Adresse antwortet mit einer anderen Webseite (einer Anmeldeseite eines Reverse Proxys…), oder Tandoor ist eine Version 1.x: Nutze die Adresse von Tandoor selbst, und aktualisiere es.
  • Ein Mahlzeitentyp oder eine Liste hat keine Funktion: Öffne den Tab „Entdecken“ und klicke beim Gerät Tandoor auf Aktualisieren.
  • Mehr Details: Setze die Umgebungsvariable LOG_LEVEL auf debug; die Protokolle enthalten nie das Zugriffstoken.

Grenzen​

  • Ein Tandoor-Bereich pro Integration: der aktive Bereich des Token-Benutzers.
  • Das Gerät folgt höchstens 10 Mahlzeitentypen und 20 Einkaufslisten; der Rest der Woche steht im Widget und in Mahlzeiten eines Tages lesen.
  • Einträge werden nie gelöscht: Abgehakte Einträge bleiben in Tandoor, bis du sie dort entfernst. Die Integration plant keine Rezepte.
  • Mahlzeiten des Tages löst zu Beginn der Stunde aus; die beim Start der Integration schon begonnene Stunde (ein Update, ein Neustart) löst nicht aus.
  • Einkaufsliste geändert sieht die Änderungen beim nächsten Lesen (standardmäßig 5 Minuten), und eine dazwischen rückgängig gemachte Änderung wird nicht gesehen.
  • Das Formular Abhaken listet die ersten 50 Einträge; das Widget zeigt 7 Einträge und die Anzahl der übrigen.
  • Tandoor öffnen erscheint nur bei einer https://-Adresse.
  • Noch nicht auf einer echten Gladys-Installation getestet; getestet mit einem echten Tandoor-Recipes-2.6.15-Server.

Konfigurationseinstellungen​

Diese Einstellungen fragt Tandoor Recipes in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein TandoorsectionNeinÖffne in Tandoor die Einstellungen, dann API, erstelle ein Token mit dem Bereich „read write“ und füge es unten mit der Adresse von Tandoor ein. Lege dann das Gerät Tandoor im Tab „Entdecken“ an.
Adresse von TandoorstringJaDie Adresse, mit der du Tandoor öffnest, mit Port (mit Docker oft 8080).
ZugriffstokensecretJaErstellt in Tandoor: Einstellungen → API, Bereich „read write“ (nur „read“: kein Hinzufügen, kein Abhaken). Es handelt als dein Benutzer.
Selbstsignierte Zertifikate akzeptierenbooleanNeinNur für eine https://-Adresse, deren Zertifikat auch dein Browser nicht anerkennt.
AktualisierungsintervallselectNeinWie oft Tandoor gelesen wird. Änderungen aus Gladys erscheinen sofort.
Sprache der Namen und MeldungenselectNeinNamen der Funktionen (beim Anlegen des Geräts festgelegt) und Texte der Szenen.

So installierst du Tandoor Recipes in Gladys​

  1. Öffne in Gladys Integrationen: Tandoor Recipes erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-tandoor:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-tandoor.

Tandoor Recipes benötigt Gladys >=5.2.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Tandoor Recipes ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂