Intégration domotique Huum, gratuite et open source

Poêles de sauna Huum (UKU Wi-Fi) via le cloud Huum : température, porte, chauffe ; marche/arrêt.
Cette intégration affiche dans Gladys un poêle de sauna Huum avec son boîtier UKU Wi-Fi, par le cloud Huum (le compte de l'application Huum). Jamais testé avec un vrai appareil. Sans lien avec Huum.
Sécurité. Un sauna chauffe très fort. Ne lancez jamais la chauffe à distance sans vous assurer que personne n'est dedans et que rien ne repose sur le poêle. L'allumage depuis Gladys est désactivé par défaut et refusé porte ouverte ; l'extinction fonctionne toujours.
Ce que vous obtenez
Un sauna dans l'onglet Découverte, avec :
- En chauffe (oui/non, en lecture seule) et le statut en texte (« En chauffe », « En ligne, à l'arrêt », « Hors ligne », « Utilisé par un autre compte (verrouillé) », « Arrêt d'urgence »), le code de statut, boîtier en ligne ;
- porte (capteur d'ouverture : ouverte/fermée) ;
- température mesurée et consigne ;
- temps de chauffe restant (minutes), calculé depuis la fin de séance prévue par Huum ;
- la lumière (lecture seule), si votre sauna en signale une ;
- deux boutons : Allumer (chauffer) et Éteindre.
Aucun interrupteur : un « tout allumer » de Google Home, Alexa, HomeKit, MCP ou d'une scène ne peut jamais lancer le sauna.
Configuration
- Dans Gladys, ouvrez l'intégration Huum et saisissez l'adresse e-mail et le mot de passe de votre compte Huum (ceux de l'application).
- Enregistrez, puis ajoutez le sauna depuis l'onglet Découverte.
- Si vous voulez lancer la chauffe depuis Gladys, activez Autoriser le chauffage depuis Gladys, et réglez la consigne du bouton « Allumer » (80 °C par défaut) et la consigne la plus haute (90 °C par défaut, 110 °C au plus, la limite du boîtier).
Le mot de passe est gardé par Gladys dans sa base, jamais réaffiché, envoyé
seulement au cloud Huum (sauna.huum.eu, en HTTPS, authentification HTTP
Basic). Il n'est jamais écrit dans les journaux ni dans /data.
Le sauna est lu toutes les 60 s (réglable de 60 s à 1 h), jamais plus souvent, même après un redémarrage de l'intégration, une reconnexion à Gladys, le bouton « Tester la connexion » ou un scan de la Découverte.
L'appareil est rattaché au compte Huum : l'API ne donne aucun identifiant propre au sauna (un compte, un sauna). Changer d'adresse e-mail crée donc un nouvel appareil ; l'ancien est montré injoignable.
Les commandes
- Éteindre fonctionne toujours : même si le chauffage depuis Gladys est désactivé, pendant une pause demandée par Huum, après des identifiants refusés, ou juste après un redémarrage, avant la première lecture. Elle est toujours envoyée (jamais « déjà éteint »), annule une commande de chauffe pas encore partie, et est renvoyée après une chauffe encore en route. Elle n'est confirmée que si la réponse de Huum montre le sauna « en ligne, à l'arrêt » ou en « arrêt d'urgence » ; sinon (pas de réponse, erreur, hors ligne, verrouillé, inconnu, encore en chauffe) : « Envoyée, sans confirmation », et pendant deux minutes chaque lecture qui voit le sauna chauffer la renvoie (deux fois au plus). Cela peut aussi éteindre une chauffe lancée depuis l'application Huum dans ces deux minutes : c'est voulu.
- Allumer (chauffer) et la consigne sont refusés tant que « Autoriser le chauffage depuis Gladys » est désactivé. Activés, ils relisent d'abord le sauna (jamais l'état en mémoire) et refusent si la porte est ouverte ou inconnue, si le sauna ne peut pas chauffer (hors ligne, verrouillé par un autre compte, arrêt d'urgence, statut inconnu), si une extinction est en cours ou pas encore confirmée, ou si la commande ne peut pas partir dans les 3,5 s. L'option et l'extinction sont revérifiées au moment même où la commande s'écrit : désactiver l'option ou appuyer sur Éteindre pendant la connexion annule l'envoi. Une seule à la fois, jamais renvoyée.
- Allumer demande la consigne du bouton « Allumer », jamais au-dessus de la consigne la plus haute. Déjà en chauffe : rien n'est envoyé.
- La consigne ne se change que pendant la chauffe (chez Huum, une nouvelle consigne est envoyée comme un nouvel allumage). Un nombre entier de 40 °C à la consigne la plus haute. Elle est refusée si la fin de séance est inconnue ou dans moins de 2 min (elle relancerait la chauffe), et pendant 2 min après une extinction. Si Huum relance quand même une séance, le journal le dit (« séance relancée jusqu'à HH:MM UTC »).
- Allumer et la consigne ne sont confirmés que si la réponse de Huum montre le sauna en chauffe à la température demandée. Sinon : « Envoyée, sans confirmation », et l'intégration relit le sauna 10 s et 40 s après.
Quand ça ne va pas
- Identifiants refusés (HTTP 401 ou 403) : l'intégration s'arrête et ne
les réessaie jamais d'elle-même (rien en boucle). Corrigez-les et
enregistrez, ou, s'ils sont justes, utilisez « Tester la connexion » : ce
bouton fait une seule lecture, et l'arrêt n'est levé que si elle réussit.
L'arrêt survit à un redémarrage ; seule une empreinte salée des
identifiants refusés est gardée dans
/data, effacée au premier succès. - 429 (Huum demande de ralentir) : pause d'1 min à 6 h (Retry-After),
gardée dans
/data. 5xx : pause gardée dans/data. Erreur réseau : nouvel essai après 1, 2, 5 puis 15 min, jamais plus vite que l'intervalle. - Une commande de chauffe refusée par Huum (401, 403) ne bloque pas les lectures.
Limites
- API non documentée publiquement (Huum l'a fournie aux auteurs de la bibliothèque pyhuum). Elle peut changer.
- Pas encore de commande de lumière (une bascule : à faire avec une garde), ni d'humidité (vapeur), ni de minuterie de séance.
- Un seul sauna par compte.
Données
/data/huum-state.json contient seulement : la fin d'une pause, l'arrêt sur
identifiants refusés (avec l'empreinte salée de ces identifiants), l'heure de
la dernière lecture, et le résumé de la dernière bonne lecture (« En chauffe,
72 °C », avec une empreinte salée du compte) : après un redémarrage,
l'intégration s'affiche connectée jusqu'à la première lecture (2 h au plus).
Ni adresse e-mail ni mot de passe.
Basée sur la bibliothèque Python huum (MIT, frwickst/pyhuum), portée en
JavaScript : voir THIRD_PARTY_NOTICES.md.
Paramètres de configuration
Voici les paramètres demandés par Huum dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre sauna Huum | section | Non | Affiche un poêle de sauna Huum avec son boîtier UKU Wi-Fi dans Gladys par le cloud Huum (le compte de l'application Huum) : statut, chauffe, porte, température, consigne, temps de chauffe restant. L'extinction fonctionne toujours ; le chauffage depuis Gladys (allumage et changement de consigne) reste désactivé tant que vous ne l'autorisez pas ci-dessous, et il est refusé porte ouverte. Saisissez l'adresse e-mail et le mot de passe de votre compte Huum, enregistrez, puis ajoutez le sauna depuis l'onglet Découverte. Un sauna chauffe très fort : ne le lancez jamais à distance sans vous assurer que personne n'est dedans et que rien ne repose sur le poêle. Jamais testé avec un vrai appareil. Sans lien avec Huum. |
| Adresse e-mail du compte Huum | string | Oui | Celle avec laquelle vous vous connectez à l'application Huum. |
| Mot de passe du compte Huum | secret | Oui | Gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement au cloud Huum (sauna.huum.eu, en HTTPS, authentification HTTP Basic). Des identifiants refusés arrêtent l'intégration : elle ne les réessaie jamais d'elle-même. |
| Autoriser le chauffage depuis Gladys | boolean | Non | Désactivé par défaut. Activé : le bouton « Allumer (chauffer) » et la consigne peuvent lancer ou modifier la chauffe, seulement si une lecture fraîche montre la porte fermée. Désactivé : ils refusent toute demande. L'extinction fonctionne toujours. |
| Consigne du bouton « Allumer » (°C) | number | Non | La température demandée quand la chauffe est lancée depuis Gladys, jamais au-dessus de la consigne la plus haute ci-dessous. |
| Consigne la plus haute (°C) | number | Non | Gladys ne demande jamais plus (90 °C par défaut ; 110 °C, la limite du boîtier, au plus). |
| Intervalle de rafraîchissement (s) | number | Non | Fréquence de lecture du cloud Huum, en secondes (jamais plus souvent, même après un redémarrage). |
| Langue des noms des fonctionnalités | select | Non | Sert aux noms des fonctionnalités des appareils ajoutés désormais, aux textes d'état et aux erreurs des commandes. |
Comment installer Huum dans Gladys
- Dans Gladys, ouvrez Intégrations : Huum 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-huum: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-huum.
Huum 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
Huum 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