Intégration domotique Grocy, gratuite et open source

Reliez Gladys à Grocy : aliments à consommer, tâches ménagères du jour, courses, piles.
Reliez Grocy, l'« ERP du frigo » auto-hébergé, à Gladys sur votre réseau local : ce qu'il faut consommer en premier, les tâches ménagères du jour, la liste de courses et les piles à recharger, sur le tableau de bord et dans vos scènes. Un bouton, une présence ou l'aspirateur robot peuvent alors dire à Grocy ce qui s'est passé : un produit consommé, un article à acheter, une tâche faite, une pile rechargée.
Développée sans le matériel : vos retours sont bienvenus. Cette intégration a été construite et testée sur les réponses documentées par Grocy (sa spécification OpenAPI) et sur de vraies réponses d'un Grocy enregistrées par la bibliothèque pygrocy, pas sur un Grocy en fonctionnement. Si quelque chose ne marche pas comme décrit, dites-le sur le forum Gladys ou dans les issues.
Ce qu'il vous faut
- Gladys Assistant 5.2.0 ou plus.
- Grocy 3.3 ou plus (Grocy 4 recommandé), joignable depuis Gladys : sur un NAS, un Raspberry Pi, Docker, Unraid, Proxmox, ou le module complémentaire Home Assistant si son port est publié.
- Une clé d'API de Grocy. Ouvrez Grocy, cliquez sur votre nom d'utilisateur (en haut à droite) → Gérer les clefs API → Ajouter, et copiez la clé. L'intégration agit au nom de l'utilisateur qui possède la clé : les tâches qu'elle marque comme faites le sont par cet utilisateur.
Installation
- Installez l'intégration depuis le catalogue de Gladys.
- Dans Configuration, saisissez l'Adresse de Grocy, celle avec
laquelle vous ouvrez Grocy, par exemple
http://192.168.1.10:9283. Si Grocy est servi dans un sous-dossier (https://nas.example.com/grocy), gardez-le. Collez la Clé d'API. - HTTPS avec votre propre certificat (NAS, proxy inverse) ? Cochez Accepter les certificats auto-signés.
- Ajustez si besoin Bientôt périmé : sous (jours) (5 par défaut, comme Grocy), le Numéro de la liste de courses (1 est la liste par défaut de Grocy), l'Intervalle de rafraîchissement et la Langue des noms de fonctionnalités.
- Enregistrez, puis cliquez sur Tester la connexion : le message sous le bouton donne la version de Grocy et ce qui est à faire.
- Ouvrez l'onglet Découverte : l'appareil Grocy y figure. Cliquez sur Ajouter.
L'appareil Grocy
Un appareil pour votre Grocy, avec des compteurs (des nombres, historisés), chacun correspondant à ce que Grocy affiche en rouge ou en orange :
| Fonctionnalité | Ce qu'elle compte |
|---|---|
| Produits bientôt périmés | Produits dont la date tombe dans la fenêtre « bientôt périmé », aujourd'hui compris |
| Produits à date dépassée | Produits dont la date de consommation recommandée (DDM) est passée : souvent encore bons |
| Produits périmés | Produits dont la date limite de consommation (DLC) est passée : à jeter |
| Produits sous le stock min. | Produits sous le stock minimum défini dans Grocy |
| Articles à acheter | Articles pas encore achetés de la liste de courses choisie |
| Tâches ménagères du jour | Tâches ménagères prévues plus tard aujourd'hui |
| Tâches ménagères en retard | Tâches ménagères dont l'heure prévue est passée |
| Piles à recharger | Piles à recharger aujourd'hui ou déjà en retard (celles qui ont un intervalle de charge) |
| Tâches du jour | Tâches ouvertes à faire aujourd'hui |
| Tâches en retard | Tâches ouvertes dont l'échéance est passée |
Grocy appelle les tâches ménagères « Corvées ». Les noms des fonctionnalités sont fixés à l'ajout de l'appareil, dans la langue de la configuration. Utilisez-les dans les scènes avec le déclencheur habituel de Gladys « la valeur d'un appareil change » (par exemple Tâches ménagères en retard supérieur à 0 à 20 h).
Widgets du tableau de bord
Ajoutez-les depuis l'éditeur du tableau de bord, sous l'intégration :
- À consommer vite : les produits périmés, puis ceux à date dépassée, puis ceux bientôt périmés, avec leur quantité et leur date.
- À faire aujourd'hui : les tâches ménagères et les tâches du jour ou en retard, et les piles à recharger, les retards d'abord. Les quatre premières ont un bouton à leur nom : un appui marque la tâche ménagère comme faite, la tâche comme terminée ou la pile comme rechargée dans Grocy.
- Courses : les articles à acheter, et deux boutons. Ajouter les manquants met sur la liste les produits sous leur stock minimum. Ajouter… ouvre un petit formulaire : un produit ou n'importe quel texte, et une quantité.
Scènes
Déclencheurs
- Un produit va périmer : une fois par produit et par date, quand le produit devient bientôt périmé, puis à nouveau quand sa date est passée. Filtres : le nom exact du produit dans Grocy (vide : tous), et quand (Bientôt périmé, Date de consommation recommandée passée, Périmé (date limite passée)). Informations transmises à la scène : produit, date, jours restants (négatif une fois passé), quantité en stock.
- Une tâche ménagère est en retard : quand l'heure prévue d'une tâche ménagère passe sans qu'elle soit faite. Filtres : le nom exact de la tâche dans Grocy et l'utilisateur Grocy à qui elle est attribuée (vide : tous). Informations transmises à la scène : tâche ménagère, attribuée à, heure prévue.
Ce qui est déjà dû au tout premier démarrage de l'intégration est considéré comme connu : seul ce qui le devient ensuite déclenche les scènes. Ce qui a été annoncé est gardé dans les données de l'intégration : un redémarrage ne l'annonce pas une deuxième fois.
Actions
- Consommer un produit Grocy : retire une quantité du stock. Le produit est trouvé par son nom (sans tenir compte des majuscules ni des accents ; une partie du nom suffit quand un seul produit la contient) ou par son code-barres. Cochez Jeté (périmé) pour l'enregistrer comme gaspillé. Renvoie le produit, la quantité consommée et la quantité restante en stock.
- Ajouter à la liste de courses Grocy : le produit portant exactement ce nom, ou une ligne de texte libre si aucun produit ne le porte (jamais un autre produit). Remarque facultative. Renvoie l'article, s'il s'agit d'un produit connu, et le nombre d'articles sur la liste.
- Marquer une tâche ménagère Grocy comme faite : enregistre une exécution de la tâche maintenant. Renvoie la tâche et sa prochaine échéance.
- Marquer une pile Grocy comme rechargée : enregistre un cycle de charge maintenant. Renvoie la pile et sa prochaine charge.
Chaque action s'annule depuis Grocy (journal du stock, journaux des tâches ménagères et des piles, liste de courses). Rien n'est jamais supprimé.
Idées de scènes
- L'aspirateur robot retourne à sa base → Marquer une tâche ménagère Grocy comme faite « Passer l'aspirateur au salon ».
- Un produit va périmer, quand Périmé (date limite passée) → envoyer « Jetez le {{product}} » à la famille.
- Chaque soir à 20 h, si Tâches ménagères en retard est supérieur à 0 → un message, et la liste À faire aujourd'hui sur la tablette de la cuisine.
- Un bouton près du frigo → Ajouter à la liste de courses Grocy « Lait ».
Fréquence de lecture de Grocy
À chaque rafraîchissement (toutes les minutes par défaut), l'intégration pose une seule petite question à Grocy : la base a-t-elle changé ? Tout est relu seulement si c'est le cas, au changement de jour, et toutes les 15 minutes ; entre-temps, ce qui est dû est recalculé d'après la dernière lecture et l'horloge de Grocy. Une commande (action, bouton) relit Grocy aussitôt après. Grocy n'impose aucun quota de requêtes ; la charge d'un NAS reste négligeable. Les compteurs ne sont envoyés à Gladys que lorsqu'ils changent, et une fois toutes les 6 heures sinon.
Dépannage
- « Clé d'API refusée » : la clé a été supprimée ou mal recopiée. Créez-en une nouvelle dans Grocy (Gérer les clefs API) et collez-la à nouveau.
- « Grocy ne répond pas » : vérifiez l'adresse et le port depuis un
navigateur sur le même réseau que Gladys. Sous Docker,
localhostdésigne le conteneur de l'intégration, pas votre serveur : utilisez l'adresse IP du serveur. - « Aucune API Grocy à cette adresse » : l'adresse ouvre autre chose que Grocy (une page de NAS, un proxy inverse), ou il manque le sous-dossier de Grocy.
- « Certificat refusé » : cochez Accepter les certificats auto-signés.
- « L'adresse redirige » : saisissez directement l'adresse en
https://. - Un nom introuvable dans une action : tapez le nom tel que Grocy l'affiche, ou une partie unique de ce nom ; un code-barres marche pour les produits.
- La journée change à la mauvaise heure : l'intégration suit l'horloge de
Grocy (
/api/system/time). Vérifiez le fuseau horaire du serveur de Grocy. - Journaux détaillés : passez la variable
LOG_LEVELdu conteneur àdebug. La clé d'API n'apparaît jamais dans les journaux.
Limites
- Développée sans Grocy en fonctionnement : construite sur la spécification de Grocy et sur des réponses enregistrées d'un vrai Grocy.
- Un seul Grocy par Gladys. Une seule liste de courses (choisie dans la configuration).
- Les noms des produits et des tâches se tapent dans les scènes : Gladys ne peut pas les proposer dans une liste.
- Les boutons du widget et les compteurs agissent au nom de l'utilisateur qui possède la clé d'API.
- Les quantités des actions sont des nombres entiers, dans l'unité de stock du produit.
- Les recettes, les menus et les équipements ne sont pas pris en charge.
Grocy est une marque de ses auteurs. Cette intégration n'est pas affiliée au projet Grocy.
Paramètres de configuration
Voici les paramètres demandés par Grocy dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Connexion à Grocy | section | Non | L'adresse est celle avec laquelle vous ouvrez Grocy, ex. http://192.168.1.10:9283. Créez une clé d'API dans Grocy : menu utilisateur (en haut à droite) → Gérer les clefs API → Ajouter. |
| Adresse de Grocy | string | Oui | Avec le port, et le sous-dossier si Grocy est servi dans un sous-dossier. |
| Clé d'API | secret | Oui | Gardée dans Gladys, jamais écrite dans les logs. |
| Accepter les certificats auto-signés | boolean | Non | Pour une adresse en https:// servie avec votre propre certificat (NAS, proxy inverse). |
| Listes et rafraîchissement | section | Non | Chaque rafraîchissement pose une seule petite question à Grocy (la base a-t-elle changé ?) ; tout est relu seulement si c'est le cas, et toutes les 15 minutes. |
| Bientôt périmé : sous (jours) | number | Non | Un produit est bientôt périmé quand sa date tombe dans ce nombre de jours (5 par défaut dans Grocy). |
| Numéro de la liste de courses | number | Non | 1 est la liste par défaut de Grocy. Avec plusieurs listes, le numéro est dans l'adresse de la page de la liste (list=2). |
| Intervalle de rafraîchissement | select | Non | |
| Langue des noms de fonctionnalités | select | Non | Gladys ne transmet pas la langue de l'utilisateur aux intégrations : choisissez celle des noms de fonctionnalités et des messages. |
Comment installer Grocy dans Gladys
- Dans Gladys, ouvrez Intégrations : Grocy apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/guim31/gladys-grocy:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-grocy.
Grocy nécessite Gladys >=5.2.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
Grocy est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation