Aller au contenu principal

Intégration domotique Wolf ISM8, gratuite et open source

Intégration Wolf ISM8 pour Gladys Assistant

Chauffage Wolf par le module ISM8i : températures, états, programmes, en local.

Cette intégration affiche dans Gladys le chauffage Wolf relié à un module ISM8i (ou ISM8) : chaudières gaz et fioul, pompes à chaleur, circuit direct et circuits mélangés, module cascade, module solaire, ventilation CWL, commande BM-2. Tout reste sur votre réseau local, sans cloud ni compte Wolf.

Intégration non officielle, sans lien avec Wolf. Jamais testé avec un vrai ISM8i : elle suit la description de l’interface ISM8 publiée par Wolf et la bibliothèque wolf_ism8 (MIT) de l’intégration Home Assistant. Vos retours avec un vrai module sont les bienvenus.

Ce que vous obtenez​

Un appareil Gladys par élément Wolf que l’ISM8i signale, avec une fonctionnalité par valeur reçue :

  • températures (chaudière, départ, retour, eau chaude, extérieure, fumées, capteur solaire, ambiante…), en °C ;
  • puissance des pompes à chaleur et du module solaire, en kW ;
  • états (brûleur, pompes, vannes, défaut, sorties) en lecture seule ;
  • états de fonctionnement et programmes en texte (jamais publiés comme une mesure 0), dernier code de défaut ;
  • pression de l’installation, en Pa (l’unité de l’interface Wolf) ;
  • pourcentages (brûleur, modulation, ventilation), corrections de consigne (K) et débits (l/h) en valeurs simples, l’unité dans le nom ;
  • la consigne d’eau chaude et les programmes de chauffage et d’eau chaude du circuit direct et des circuits mélangés 1 à 3, modifiables (voir plus bas).

Un appareil apparaît dans l’onglet Découverte dès que l’ISM8i a envoyé une de ses valeurs. Pas affichés dans cette version : dates et heures, compteurs d’énergie du module solaire, débits d’air de la ventilation, champs de bits de détection de la BM-2.

Comment l’ISM8i joint Gladys​

C’est l’ISM8i qui ouvre la connexion (TCP) vers le serveur indiqué dans sa page web ; Gladys n’interroge pas le module. L’intégration lance donc un petit récepteur à côté d’elle (le conteneur ism8-link) dont Gladys publie le port sur la machine.

  1. Donnez une adresse IP fixe à l’ISM8i dans votre box.
  2. Dans l’écran Configuration de l’intégration, saisissez cette adresse et enregistrez. Rien n’écoute avant : le récepteur n’est lancé qu’une fois une adresse valide enregistrée, et arrêté si vous l’effacez.
  3. Rechargez l’écran : la section « Comment l’ISM8i joint Gladys » affiche le port choisi par Gladys (un port libre, gardé ensuite). L’ISM8i utilise 12004 par défaut : remplacez-le par ce port.
  4. Dans la page web de l’ISM8i, indiquez comme adresse du serveur l’adresse IP de la machine Gladys sur votre réseau, et ce port.
  5. L’état de l’intégration passe à « ISM8i connecté » dès la première connexion ; l’ISM8i envoie alors de lui-même toutes ses valeurs.

Le réseau : ce qui a été vérifié​

Le cœur de Gladys tourne sur le réseau hôte de la machine (network_mode: host), mais les intégrations tournent dans des conteneurs isolés, sur un réseau Docker privé : elles ne peuvent pas écouter sur la machine elles-mêmes. Le récepteur ism8-link est un sous-conteneur déclaré dans le manifeste, dont Gladys publie le port TCP 12004 sur toutes les adresses de la machine (0.0.0.0:<port choisi>). L’ISM8i joint donc <adresse IP de la machine Gladys>:<port affiché>.

Vérifié dans un Gladys de test en Docker (2026-10-28) : rien n’écoute avant l’enregistrement de l’adresse ; une fois enregistrée, le port est publié, une connexion venue d’une autre adresse du réseau arrive avec sa vraie adresse source (Docker la garde pour le trafic venu du réseau) et reçoit son accusé de réception ; une connexion partie de la machine Gladys elle-même arrive au contraire avec l’adresse de la passerelle Docker.

Conséquences :

  • si votre machine a un pare-feu, autorisez ce port en TCP ;
  • l’option Vérifier l’expéditeur (activée par défaut) n’accepte que l’adresse de l’ISM8i ; une autre adresse est refusée avant tout octet lu, et l’état indique l’adresse vue. Sur Docker Desktop (Mac, Windows) ou Docker sans root, Docker peut remplacer l’adresse source : l’état montre alors des connexions refusées depuis une adresse interne ; désactivez l’option dans ce cas seulement : toute machine du réseau peut alors prendre la place de l’ISM8i (qui est déconnecté), envoyer de fausses valeurs, recevoir les écritures destinées à la chaudière, arrêts compris, et les confirmer ou les contredire ;
  • par Gladys Plus ou un proxy, l’adresse affichée par le navigateur n’est pas celle que l’ISM8i doit joindre : utilisez l’adresse locale de la machine.
  • le récepteur n’est relancé que s’il s’est arrêté ou si l’adresse ou la vérification de l’expéditeur change (chaque lancement coupe la connexion de l’ISM8i). Quand l’intégration elle-même redémarre (mise à jour, redémarrage de Gladys), Gladys relance aussi le récepteur : l’ISM8i se reconnecte de lui-même, et l’intégration a retrouvé le récepteur en 20 à 50 s lors de l’essai (le temps que Docker oublie l’ancien conteneur), jusqu’à une minute environ.

Modifier les réglages​

Désactivé par défaut. Avec Autoriser la modification des réglages :

  • consigne d’eau chaude : degrés entiers, de 20 °C au plafond de l’eau chaude (65 °C par défaut, réglable de 20 à 65 °C, jamais au-dessus de 65 °C quoi qu’on saisisse) ; une valeur au-dessus est refusée, et le plafond est revérifié juste avant l’envoi ;
  • programme de chauffage : automatique, chauffage (confort), éco, veille ;
  • programme d’eau chaude : automatique, permanent, veille.

Une commande part seulement si l’option est active à son arrivée et juste avant l’envoi, si l’ISM8i est connecté, et si la valeur actuelle a été reçue pendant sa connexion en cours. Elle est dite appliquée seulement quand l’ISM8i renvoie la nouvelle valeur (il signale de lui-même chaque changement, et toutes les valeurs sont redemandées environ 5 s après l’écriture, une demande pour plusieurs écritures) ; sinon « envoyée, sans confirmation ». Le résultat s’affiche dans l’état de l’intégration.

Jamais écrits : puissances et températures imposées des chaudières, programmes horaires, charge d’eau chaude ponctuelle, ventilation, et toute autre valeur.

L’arrêt (programme veille) n’est jamais bloqué​

Choisir Veille (arrêt, hors-gel conservé par la régulation Wolf) pour le chauffage ou l’eau chaude d’un circuit est toujours accepté : option désactivée, plafond, valeur pas encore lue, autre commande en cours, configuration pas encore lue dans Gladys, rien ne le retient. Il est gardé dans /data et :

  • part tout de suite si l’ISM8i est connecté, sans jamais être retenu par les limites du récepteur (elles ne s’appliquent pas à lui) ;
  • sinon part dès la prochaine connexion de l’ISM8i, sans attendre la configuration (après un redémarrage de l’intégration aussi, dès que l’ISM8i est revenu sur le récepteur) ;
  • est confirmé par une valeur lue : l’ISM8i la signale, et toutes les valeurs sont redemandées une fois ses 20 s de calme passées ;
  • est renvoyé si rien ne l’a confirmé 35 s après l’envoi (3 s s’il est parti moins de 10 s après une demande de toutes les valeurs), ou espacé de 5 s si une valeur lue le contredit, 3 envois au plus en tout ; au-delà, l’état demande de vérifier la chaudière.

Seuls cas où il ne part pas tout de suite : l’ISM8i n’est pas connecté, sa connexion vient de changer à cet instant (l’arrêt part alors aussitôt sur la nouvelle), le récepteur ne tourne pas (adresse pas encore enregistrée), ou il tourne mais ne répond pas à l’intégration (il est alors relancé au bout de 3 minutes, au plus toutes les 10 minutes). Il attend alors dans /data et l’état dit « arrêt gardé », jamais « envoyée ». Aucune demande de toutes les valeurs ne part dans les 20 s d’un arrêt pas encore confirmé. Une fois confirmé, il n’est plus jamais renvoyé : un programme changé ensuite sur la chaudière ou dans l’application Wolf, lu deux fois de suite, lève l’arrêt sans être combattu. Choisir un autre programme dans Gladys (option active) le lève aussi. Le temps seul ne le lève jamais.

Tant qu’un arrêt d’un circuit n’est pas confirmé, tout autre changement de ce circuit est refusé (sa consigne d’eau chaude, son autre programme) ; choisir un autre programme pour celui qui est arrêté reste permis (cela lève l’arrêt).

Sécurité​

  • Le protocole ISM8 n’a pas de mot de passe et circule en clair : gardez l’ISM8i et Gladys sur un réseau de confiance.
  • Le récepteur accepte 4 connexions au plus, une seule session ISM8 à la fois (une nouvelle connexion de l’ISM8i remplace l’ancienne), des trames de 2048 octets et 300 valeurs au plus, vérifiées entières ; une trame mal formée, incomplète depuis 5 s ou un flot de plus de 1000 trames en 10 s ferme la connexion (un vidage complet en fait environ 300) ; une valeur de 0 ou de plus de 4 octets est ignorée.
  • Le récepteur n’écrit vers l’ISM8i que les consignes d’eau chaude (20 à 65 °C) et les codes de programme proposés ici, quoi qu’on lui demande.
  • Le canal entre le récepteur et l’intégration passe par le réseau privé de l’intégration, avec une preuve mutuelle d’un secret généré par l’intégration.

Bouton « Relire toutes les valeurs »​

Demande à l’ISM8i connecté de renvoyer toutes ses valeurs (au plus toutes les 30 s, jamais dans les 20 s d’un arrêt pas encore confirmé). L’intégration le demande aussi quand Gladys se reconnecte (valeurs fraîches), après les écritures et les arrêts (regroupé, voir plus haut) et quand une nouvelle connexion n’a apporté aucune valeur en 2 s ; sinon l’ISM8i envoie toutes ses valeurs à sa connexion, puis chaque changement.

Dépannage​

  • « En attente de l’ISM8i » : vérifiez l’adresse du serveur et le port dans la page de l’ISM8i, le pare-feu de la machine Gladys, et que l’ISM8i est sur le même réseau.
  • « connexion(s) refusée(s) depuis … » : l’adresse vue n’est pas celle saisie ; corrigez l’adresse, ou voir plus haut (Docker qui masque l’adresse).
  • Une valeur manque : l’ISM8i n’envoie que ce que votre installation possède ; une valeur hors de sa plage plausible n’est jamais publiée.
  • Pression étrange : la pression est publiée en Pa comme le dit l’interface Wolf ; signalez-nous si un vrai module envoie des bars.

Crédits​

Protocole et table des valeurs portés de wolf_ism8 et home-assistant-wolf_ism8 de Marc Schmiedchen (licence MIT), voir THIRD_PARTY_NOTICES.md.

Paramètres de configuration​

Voici les paramètres demandés par Wolf ISM8 dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Votre chauffage Wolf, par son module ISM8isectionNonTempératures, états, défauts et programmes des chaudières, pompes à chaleur, circuits et ventilation Wolf que le module ISM8i (ou ISM8) transmet, sur votre réseau local, sans cloud. L’ISM8i se connecte lui-même à Gladys. Donnez-lui une adresse IP fixe dans votre box. Jamais testé avec un vrai ISM8i. Intégration non officielle, sans lien avec Wolf.
Adresse de l’ISM8istringOuiL’adresse IP du module ISM8i (celle de sa page web), sans port. Rien n’écoute avant son enregistrement.
Comment l’ISM8i joint GladyssectionNonC’est l’ISM8i qui ouvre la connexion. Dans sa page web, indiquez comme adresse du serveur l’adresse IP de la machine Gladys sur votre réseau et comme port {{port:ism8}} (choisi par Gladys, à la place du 12004 de l’ISM8i). Le port existe une fois l’adresse de l’ISM8i enregistrée : enregistrez, puis rechargez cet écran. Autorisez ce port dans le pare-feu de la machine Gladys s’il y en a un.
Vérifier l’expéditeurbooleanNonN’accepter la connexion que depuis l’adresse de l’ISM8i. À désactiver seulement si l’état dit que les connexions viennent d’une autre adresse parce que Docker masque la vraie sur cette machine : toute machine de votre réseau peut alors prendre la place de l’ISM8i, envoyer de fausses valeurs, recevoir les écritures destinées à la chaudière (arrêts compris) et les confirmer ou les contredire.
Modifier les réglagessectionNonLa consigne d’eau chaude et les programmes de chauffage et d’eau chaude du circuit direct et des circuits mélangés peuvent être changés depuis Gladys une fois autorisés ci-dessous (désactivé par défaut). Le programme veille (arrêt, hors-gel conservé) est toujours permis : arrêter n’est jamais bloqué. Le protocole ISM8 n’a pas de mot de passe : gardez-le sur un réseau de confiance.
Autoriser la modification des réglagesbooleanNonDésactivé : seul le programme veille peut être choisi ; tout autre changement est refusé.
Plafond de l’eau chaude (°C)numberNonUne consigne d’eau chaude au-dessus est refusée. 20 à 65 °C ; jamais au-dessus de 65 °C, quoi qu’on saisisse.
Langue des noms et des messagesselectNon

Comment installer Wolf ISM8 dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Wolf ISM8 apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/lm1lc3n7/gladys-wolf-ism8: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).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-wolf-ism8.

Wolf ISM8 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​

Wolf ISM8 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.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂