Intégration domotique Edilkamin, gratuite et open source

Poêles à granulés Edilkamin « The Mind » par le cloud Edilkamin : état, température, alarmes.
Intégration non officielle, sans lien avec Edilkamin. Elle amène dans Gladys les poêles à granulés Edilkamin reliés à l'application The Mind (module Wi-Fi « The Mind »), par le cloud Edilkamin, celui qu'utilise l'application.
Attention : API non officielle, cette intégration n'a jamais été testée avec un vrai poêle ni un vrai compte. Elle a été écrite à partir de la bibliothèque edilkamin.py et testée contre un faux cloud Edilkamin seulement. Edilkamin peut changer son API à tout moment. Les retours sont les bienvenus.
Ce que vous obtenez
Pour chaque poêle :
| Fonctionnalité | Détail |
|---|---|
| Allumé | Lecture seule : 1 allumé (ou en cours d'allumage), 0 éteint. |
| Allumer le poêle | Bouton. Désactivé par défaut (voir Sécurité). |
| Éteindre le poêle | Bouton. Toujours permis. |
| Température ambiante | En °C, la sonde du poêle. |
| Consigne | En °C, de 12 à 30 par pas de 0,5. Modifiable seulement si vous l'autorisez. |
| Puissance | Choix P1 à P5 (puissance manuelle). Modifiable seulement si vous l'autorisez. |
| Ventilation 1 à 3 | Niveau de chaque ventilateur (lecture seule), selon le nombre de ventilateurs du poêle. |
| Granulés en réserve | 1 quand le réservoir de granulés est en réserve. |
| Dernière alarme | Texte, par exemple « Alarme 7 (2026-10-17 21:04 UTC) », si le document du poêle contient un journal d'alarmes. |
Déclencheur de scène Alarme d'un poêle Edilkamin : quand une lecture
montre plus d'alarmes dans le journal du poêle que la lecture précédente.
Variables : stove (le nom du poêle) et code (le code de l'alarme, vide
s'il est inconnu). Jamais à la première lecture après un démarrage.
Le niveau de granulés n'est donné par le cloud que sous la forme « en réserve » ; l'autonomie qu'il annonce n'est pas encore publiée (son unité reste à vérifier sur un vrai poêle).
Le badge de chaque poêle affiche « cloud », « injoignable » (avec un point orange) quand ce poêle ne peut pas être lu (adresse MAC inconnue ou absente du compte), et « injoignable » pour tous quand le cloud ne répond pas ou que le compte est à l'arrêt.
Installation
- Vos poêles doivent fonctionner dans l'application The Mind.
- Relevez l'adresse MAC de chaque poêle : l'application The Mind l'affiche, l'étiquette du module Wi-Fi aussi. Le cloud Edilkamin ne donne pas la liste des poêles d'un compte : elle doit être saisie.
- Dans Gladys, installez l'intégration Edilkamin, saisissez l'identifiant
(e-mail) et le mot de passe de l'application The Mind, et les adresses
MAC séparées par des virgules (
A8:03:2A:12:34:56, A8:03:2A:65:43:21). Enregistrez. - Ajoutez les poêles depuis l'onglet Découverte.
Sécurité
Un poêle à granulés est un appareil à flamme :
- L'extinction est toujours permise, sans option, et toujours envoyée (sur un poêle déjà éteint, elle ne change rien). Elle n'attend jamais derrière une autre commande du même poêle, sauf un allumage déjà parti, pour arriver après lui. Elle part aussi pendant une pause demandée par Edilkamin, et renouvelle elle-même une session expirée dans son délai.
- Un allumage en attente ou en cours est annulé si une extinction arrive entre-temps (« extinction demandée entre-temps »).
- L'allumage est désactivé par défaut : activez Autoriser l'allumage des poêles depuis Gladys pour le permettre. Une scène ou un tableau de bord peut alors allumer une flamme chez vous en votre absence : vérifiez d'abord le poêle, sa vitre et ses abords.
- Il n'y a pas d'interrupteur : l'état « Allumé » est en lecture seule, et l'allumage comme l'extinction sont des boutons. Un « allume tout » ou un « éteins tout » d'une scène ne touche donc jamais le poêle, et les assistants vocaux ne peuvent ni l'allumer ni l'éteindre. HomeKit montre la consigne comme un thermostat bloqué sur « Chauffage » ; Google Home et Alexa n'exposent pas la consigne.
- La consigne et la puissance sont désactivées par défaut (Autoriser la consigne et la puissance depuis Gladys). Elles n'envoient jamais l'ordre d'allumage ; sur un poêle déjà en marche en veille (flamme éteinte), une consigne plus haute le fait repartir, comme dans l'application.
- Avant l'allumage, la consigne et la puissance, l'intégration relit le poêle dans le cloud : la commande est refusée si cette lecture échoue ou ne donne pas la valeur. L'extinction ne relit rien : elle n'a rien à décider.
- Les commandes d'un même poêle passent une à la fois (sauf l'extinction).
- Une commande qui ne peut pas être envoyée dans les 3,5 secondes suivant son arrivée est refusée : Gladys affiche un échec au bout de 5 secondes, et rien ne doit se passer après cet échec.
- Après une commande de marche, un nouvel allumage est refusé (« encore en cours ») jusqu'à ce qu'une lecture montre l'état attendu, 60 secondes au plus.
- Si Edilkamin ne répond pas à temps à une commande, Gladys affiche un échec, mais la commande a pu partir : vérifiez l'état du poêle.
Mot de passe, jetons et vie privée
- Le mot de passe est gardé par Gladys dans sa base, jamais réaffiché, et envoyé seulement à Edilkamin, ou plutôt à son service de connexion AWS Cognito, sous forme de preuve SRP : le mot de passe lui-même ne circule jamais.
- La connexion donne des jetons : le jeton (environ une heure) est renouvelé
avec le jeton de rafraîchissement, sans le mot de passe ; l'intégration ne
se reconnecte donc pas à chaque lecture. Les jetons sont gardés dans le
volume
/datade l'intégration pour qu'un redémarrage ne se reconnecte pas. Sur l'hôte de Gladys, ce volume est le dossier<dossier de base de Gladys>/external-integrations/<sélecteur>: lisible par root et par l'uid 1000 (l'utilisateur du conteneur), absent des sauvegardes de Gladys, supprimé à la désinstallation de l'intégration. Le jeton de rafraîchissement donne le contrôle des poêles tant qu'il est valable, sans le mot de passe : protégez cet hôte. L'identifiant et le mot de passe n'y sont jamais écrits ; changer d'identifiant efface les jetons. - Rien n'apparaît dans les journaux : ni mot de passe, ni jeton, ni identifiant, ni adresse MAC complète (seulement ses 4 derniers caractères).
- Tout passe en HTTPS vers
cognito-idp.eu-central-1.amazonaws.com(la connexion) etthe-mind-api.edilkamin.com(les poêles).
Rafraîchissement
Les poêles sont lus toutes les 60 secondes par défaut (60 à 900), une requête par poêle, plus trois lectures dans la minute qui suit une commande.
Erreurs
- Mot de passe refusé (ou compte non confirmé, réinitialisation demandée) : l'intégration s'arrête ; un nouvel essai après 1 h, 6 h, puis toutes les 24 h, ou aussitôt quand vous enregistrez la configuration ou cliquez sur Tester la connexion.
- Code de vérification, ou toute autre étape de connexion (sauf un nouveau mot de passe) : non géré. L'intégration s'arrête et ne se reconnecte jamais d'elle-même (chaque connexion pourrait envoyer un code) ; cliquez sur Tester la connexion, ou changez l'identifiant ou le mot de passe.
- Session refusée juste après une nouvelle connexion : nouvel essai après 1 h, 6 h, puis toutes les 24 h.
- Edilkamin demande de ralentir (429, ou trop de connexions) : une pause d'au moins 1 minute (Retry-After s'il est donné, 6 h au plus), pour tous les chemins sauf l'extinction, gardée aux redémarrages.
- HTTP 403 sur tous les poêles : une pause de 30 minutes (avec un seul poêle, vérifiez son adresse MAC). Un 403, un 404, une erreur 5xx ou un délai dépassé sur un seul poêle ne marque que lui (badge « injoignable ») ; les autres sont lus quand même.
- Edilkamin injoignable (aucun poêle n'a répondu) : nouvel essai après 1, 2, 5, 10 puis toutes les 15 minutes, jamais plus vite que l'intervalle de rafraîchissement.
Limites
- Jamais testée avec un vrai poêle : la forme des réponses vient de edilkamin.py ; le journal d'alarmes, la plage de la consigne et les niveaux de ventilation restent à vérifier.
- Les adresses MAC sont à saisir (10 poêles au plus) : la découverte par Bluetooth d'edilkamin.py n'est pas possible dans le conteneur.
- Les modes chrono, relax, veille, Airkare et la minuterie ne sont pas gérés.
- L'ancienne API d'Edilkamin (« legacy ») n'est pas utilisée.
Crédits
- edilkamin.py d'Andre Miras (MIT) : l'API du cloud, la connexion et le document du poêle sont portés en JavaScript.
- pycognito (Apache-2.0) : le calcul SRP.
- Voir
THIRD_PARTY_NOTICES.md.
Edilkamin et The Mind sont des marques d'Edilkamin ; ce projet est sans lien avec Edilkamin.
Paramètres de configuration
Voici les paramètres demandés par Edilkamin dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre compte Edilkamin | section | Non | Amène dans Gladys les poêles à granulés Edilkamin de votre compte « The Mind » : allumé ou éteint, température ambiante, consigne, puissance, ventilation, granulés en réserve, dernière alarme, et un déclencheur de scène sur une nouvelle alarme. Lecture chaque minute par le cloud Edilkamin. Saisissez l'identifiant et le mot de passe de l'application The Mind et l'adresse MAC de chaque poêle, enregistrez, puis ajoutez les poêles depuis l'onglet Découverte. L'extinction depuis Gladys est toujours permise ; l'allumage, la consigne et la puissance restent désactivés tant que vous ne les autorisez pas ci-dessous. API non officielle, jamais testée avec un vrai poêle ni un vrai compte. Sans lien avec Edilkamin. |
| Identifiant Edilkamin (e-mail) | string | Oui | Celui avec lequel vous vous connectez à l'application The Mind. |
| Mot de passe Edilkamin | secret | Oui | Gardé par Gladys dans sa base, jamais réaffiché, utilisé seulement pour se connecter à Edilkamin (AWS Cognito SRP : le mot de passe lui-même n'est jamais envoyé). |
| Adresses MAC des poêles | string | Oui | L'adresse MAC du module Wi-Fi de chaque poêle, telle que l'application The Mind l'affiche, séparées par des virgules (10 poêles au plus). Le cloud ne donne pas la liste des poêles d'un compte. |
| Autoriser l'allumage des poêles depuis Gladys | boolean | Non | Désactivé par défaut : Gladys peut éteindre un poêle, jamais l'allumer. Activé, le bouton « Allumer le poêle », une scène ou un tableau de bord peut allumer une flamme chez vous en votre absence : vérifiez d'abord le poêle, sa vitre et ses abords. |
| Autoriser la consigne et la puissance depuis Gladys | boolean | Non | Désactivé par défaut : la consigne et la puissance sont affichées, pas modifiées. Elles n'envoient jamais l'ordre d'allumage ; sur un poêle déjà en marche en veille (flamme éteinte), une consigne plus haute le fait repartir, comme dans l'application. |
| Intervalle de rafraîchissement (s) | number | Non | Secondes entre deux lectures des poêles (60 à 900). |
| Langue des noms des fonctionnalités | select | Non | Sert aux noms des fonctionnalités des poêles ajoutés désormais, et à la dernière alarme. |
Comment installer Edilkamin dans Gladys
- Dans Gladys, ouvrez Intégrations : Edilkamin 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/lm1lc3n7/gladys-edilkamin:0.1.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/LM1LC3N7/gladys-edilkamin.
Edilkamin nécessite Gladys >=5.1.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
Edilkamin 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 LM1LC3N7, 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