Zum Hauptinhalt springen

OurGroceries Smart-Home-Integration, kostenlos und Open Source

OurGroceries-Integration für Gladys Assistant

Deine geteilten OurGroceries-Einkaufslisten in Gladys: Artikel, Szenen und ein Widget.

Deine geteilten OurGroceries-Einkaufslisten in Gladys: die noch zu kaufenden Artikel jeder Liste, ein Widget für das Dashboard zum Hinzufügen und Abhaken und Szenen-Karten, um „Milch“ per Knopfdruck auf die Liste zu setzen.

Diese Integration ist nicht mit OurGroceries verbunden. Die Integration wurde ohne OurGroceries-Konto zum Testen entwickelt: Rückmeldungen sind willkommen, im Gladys-Forum oder in den GitHub-Issues.

Was sie macht​

  • Ein Gladys-Gerät pro ausgewählter Einkaufsliste, mit der Zahl der zu kaufenden Artikel, der Zahl der abgehakten Artikel und der Liste selbst als Text.
  • Ein Widget Einkaufsliste für das Dashboard: die zu kaufenden Artikel, mit Knöpfen zum Hinzufügen, Abhaken und Leeren.
  • Einen Szenen-Auslöser, Artikel zu einer Einkaufsliste hinzugefügt, und drei Szenen-Aktionen: Zu einer Einkaufsliste hinzufügen, Einen Artikel abhaken und Abgehakte Artikel löschen.
  • Änderungen in der OurGroceries-App erscheinen bei der nächsten Aktualisierung in Gladys (standardmäßig alle 5 Minuten).

Voraussetzungen​

  • Gladys 5.2.0 oder neuer.
  • Ein OurGroceries-Konto mit E-Mail-Adresse und Passwort. Ein Konto, das mit „Mit Google anmelden“ oder „Mit Apple anmelden“ eröffnet wurde, hat kein Passwort: Lege zuerst eines auf der OurGroceries-Website fest.
  • Internetzugang für Gladys: Die Integration spricht mit den Servern von OurGroceries.

Konfiguration​

  1. Öffne in Gladys Integrationen, dann Von GitHub installieren, und installiere guim31/gladys-ourgroceries (oder installiere sie aus dem Store).
  2. Gib im Tab Konfiguration die E-Mail-Adresse und das Passwort deines OurGroceries-Kontos ein und speichere.
  3. Wähle bei Bedarf, wie oft die Listen gelesen werden (Aktualisieren alle, standardmäßig 5 Minuten), und die Sprache der Texte (standardmäßig Französisch): Diese benennt die Funktionen beim Hinzufügen einer Liste und schreibt den Listentext und die Meldungen.
  4. Drücke Verbindung testen und aktualisieren: Die Meldung unter dem Knopf sagt, wie viele Einkaufslisten das Konto hat.
  5. Öffne den Tab Entdecken: Dort steht jede Einkaufsliste des Kontos. Füge die gewünschten zu Gladys hinzu. Rezepte sind keine Einkaufslisten und werden ausgelassen.

Geräte​

Jede hinzugefügte Einkaufsliste wird zu einem Gerät mit dem Namen der Liste, mit drei schreibgeschützten Funktionen:

FunktionInhalt
Zu kaufende ArtikelWie viele Artikel nicht abgehakt sind
Abgehakte ArtikelWie viele Artikel abgehakt und noch auf der Liste sind
ListeDie Namen der zu kaufenden Artikel, durch Kommas getrennt (höchstens 255 Zeichen)

Eine in OurGroceries umbenannte Liste behält ihr Gerät: Gladys kennt die Liste über ihre OurGroceries-Kennung, nicht über ihren Namen. Eine später in der App angelegte Liste erscheint bei der nächsten Aktualisierung im Tab Entdecken.

Dashboard-Widget​

Füge das Widget Einkaufsliste zu einem Dashboard hinzu und wähle die Liste in seinen Einstellungen. Es zeigt den Namen der Liste, die Zahl der zu kaufenden Artikel (live), die ersten 8 Artikel und wie viele es noch sind, und drei Knöpfe:

  • Hinzufügen öffnet ein Feld für einen Artikel;
  • Abhaken öffnet die Liste der zu kaufenden Artikel: Wähle einen;
  • Erledigte weg löscht die abgehakten Artikel, nach einer Bestätigung.

Gladys-Widgets haben keine Kontrollkästchen: Abgehakt wird über die Liste des Knopfs Abhaken. Ein Artikel, der schon auf der Liste steht, ändert nichts; ein abgehakter Artikel kommt wieder auf die Liste, wie in der App.

Szenen-Auslöser​

Artikel zu einer Einkaufsliste hinzugefügt startet eine Szene, wenn jemand in OurGroceries einen Artikel hinzufügt. Wähle eine Liste oder lass das Feld für alle Listen leer. Die Szene kann den Artikel und den Namen der Liste in ihren Nachrichten verwenden.

Der Auslöser kommt bei der Aktualisierung nach dem Hinzufügen (standardmäßig bis zu 5 Minuten später). Von Gladys selbst hinzugefügte Artikel (eine Szene, das Widget) lösen ihn nicht aus: Eine Szene kann sich nicht selbst aufrufen. Ein abgehakter und wieder aufgenommener Artikel zählt als hinzugefügt.

Szenen-Aktionen​

  • Zu einer Einkaufsliste hinzufügen: Setzt einen Artikel auf die gewählte Liste. Schon da: Nichts ändert sich. Abgehakt: wieder auf der Liste. Liefert Artikel hinzugefügt (nein, wenn er schon da war) und Artikel wie auf der Liste.
  • Einen Artikel abhaken: Hakt den Artikel mit diesem Namen ab. Groß-/Kleinschreibung, Akzente und eine Menge in Klammern zählen nicht: „milch“ hakt „Milch (2)“ ab. Liefert Artikel gefunden und abgehakt.
  • Abgehakte Artikel löschen: Löscht die abgehakten Artikel der Liste. Liefert Gelöschte Artikel.

Die Textfelder nehmen Informationen der Szene an, etwa den Artikel des Auslösers.

Szenen-Beispiele​

  • Knopf „Milch ist alle“: Auslöser „ein Knopf wird gedrückt“ (ein Zigbee-Knopf am Kühlschrank), Aktion Zu einer Einkaufsliste hinzufügen mit dem Artikel „Milch“.
  • Sag mir, was hinzugefügt wurde: Auslöser Artikel zu einer Einkaufsliste hinzugefügt, Aktion „Nachricht senden“ mit dem Artikel und dem Namen der Liste.
  • Zurück vom Einkauf: Auslöser „der Benutzer kommt nach Hause“, Bedingung Abgehakte Artikel größer als 0, Aktion Abgehakte Artikel löschen.

Aktualisierung und Grenzen des Dienstes​

OurGroceries veröffentlicht weder eine API noch ein Kontingent. Wie die Home-Assistant-Integration nutzt diese Integration die Anfragen der offiziellen Website, und zwar maßvoll:

  • eine Anfrage pro Aktualisierung liest die Übersicht des Kontos; die Artikel einer Liste werden nur neu gelesen, wenn sich die Liste geändert hat;
  • nur die zu Gladys hinzugefügten Listen werden gelesen;
  • der Zeitraum beträgt standardmäßig 5 Minuten (höchstens alle 2 Minuten, mindestens alle 30); der Testknopf, das Widget und die Szenen-Aktionen lesen und schreiben sofort;
  • nach abgelehnten Zugangsdaten gibt es keinen neuen Versuch, bis du die Konfiguration änderst oder Verbindung testen und aktualisieren drückst: Ein falsches Passwort immer wieder zu versuchen, kann ein Konto sperren.

Nutze sie im Rahmen der Bedingungen von OurGroceries.

Daten und Datenschutz​

Das Passwort speichert Gladys, wie jedes geheime Feld. Die Integration behält nur das Sitzungs-Cookie von OurGroceries und die Team-Kennung in ihrem eigenen Volume (/data/session.json), damit sie sich nicht bei jedem Neustart neu anmeldet. Weder das Passwort noch die E-Mail-Adresse noch das Cookie erscheinen jemals in den Protokollen.

Fehlerbehebung​

  • „OurGroceries hat die E-Mail-Adresse oder das Passwort abgelehnt“: Prüfe sie auf der OurGroceries-Website und speichere die Konfiguration erneut.
  • „OurGroceries ist nicht erreichbar“: Die Integration versucht es bei jeder Aktualisierung erneut und meldet in den Protokollen, wenn der Dienst wieder antwortet.
  • Eine Änderung aus der App ist noch nicht in Gladys: Warte auf die nächste Aktualisierung oder drücke Verbindung testen und aktualisieren.
  • Die Protokolle der Integration: Öffne die Integration in Gladys, dann ihre Protokolle. Um jede Anfrage zu sehen, setze die Variable LOG_LEVEL des Containers auf debug.

Einschränkungen​

  • Ohne OurGroceries-Konto entwickelt: Die Anfragen folgen der Python-Bibliothek ourgroceries, die Home Assistant nutzt. Ändert OurGroceries seine Website, kann die Integration bis zu ihrer Aktualisierung ausfallen.
  • Änderungen erreichen Gladys bei der nächsten Aktualisierung, nicht sofort.
  • Kategorien, Notizen, Mengen, Rezepte und die Hauptliste werden nicht unterstützt. Ein Artikel wird ohne Kategorie hinzugefügt: OurGroceries ordnet ihn wie in der App ein.
  • Der Knopf Abhaken des Widgets zeigt die ersten 50 zu kaufenden Artikel.
  • Die Namen der Funktionen werden beim Hinzufügen einer Liste in der Sprache der Konfiguration festgelegt; ein späterer Sprachwechsel benennt nichts um.

Konfigurationseinstellungen​

Diese Einstellungen fragt OurGroceries in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein OurGroceries-KontosectionNeinGib die E-Mail-Adresse und das Passwort deines OurGroceries-Kontos ein. Öffne dann den Tab „Entdecken“ und füge die gewünschten Einkaufslisten zu Gladys hinzu. Diese Integration ist nicht mit OurGroceries verbunden.
E-Mail-AdressestringJa
PasswortsecretJaWird von Gladys gespeichert. Der Container behält nur das Sitzungs-Cookie in seinem Volume.
Aktualisieren alleselectNeinWie oft die Listen gelesen werden. OurGroceries hat keine öffentliche API: Bleib maßvoll.
Sprache der TexteselectNeinNamen der Funktionen (beim Hinzufügen festgelegt), Listentext und Meldungen.

So installierst du OurGroceries in Gladys​

  1. Öffne in Gladys Integrationen: OurGroceries 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-ourgroceries:1.0.1) 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-ourgroceries.

OurGroceries 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​

OurGroceries 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 🙂