Intégration domotique ISY / IoX (Universal Devices), gratuite et open source

Contrôleurs Universal Devices ISY994, eisy et Polisy : nœuds, variables et programmes.
Cette intégration relie Gladys à un contrôleur Universal Devices de votre réseau local : un ISY994, ou IoX sur un eisy ou un Polisy. Elle lit les nœuds Insteon et Z-Wave du contrôleur, ses variables et une partie de ses programmes, suit leurs changements en direct, et pilote les lumières et interrupteurs Insteon que vous déclarez sûrs.
Intégration non officielle, sans lien avec Universal Devices.
Jamais testée avec un vrai appareil : elle a été écrite à partir de la bibliothèque PyISY (celle de Home Assistant) et testée uniquement contre un contrôleur simulé. Vos retours sont les bienvenus.
Ce que vous obtenez
| Nœud du contrôleur | Dans Gladys |
|---|---|
| Variateur Insteon déclaré sûr | une lumière : allumage et luminosité |
| Interrupteur (relais) Insteon déclaré sûr | un interrupteur (ou une lumière) |
| Variateur ou interrupteur Insteon non déclaré sûr | son état (et son niveau), en lecture seule, et des boutons « Allumer » / « Éteindre », désactivés par défaut |
| Serrure (Insteon, Z-Wave) | « Verrouillé », en lecture seule, et sa batterie |
| Thermostat (Insteon, Z-Wave) | sa température et son humidité, en lecture seule |
| Tout autre nœud (capteurs, boutons de clavier, Z-Wave, I/O Linc) | son état (ou son niveau), en lecture seule, et ce qu'il mesure : température, humidité, lumière, puissance, tension, courant, batterie |
| Variables entières et d'état | leur valeur, en lecture seule |
| Programmes d'un dossier nommé Gladys | un bouton « Lancer », désactivé par défaut, et le résultat de leur dernière condition |
| Interrupteurs, boutons de clavier, télécommandes pressés | le déclencheur de scène « Événement de commande ISY » |
Pas encore pris en charge : le HTTPS, les commandes des variateurs et interrupteurs Z-Wave, des serrures, des thermostats et des portes de garage (I/O Linc), les scènes (groupes) du contrôleur, l'écriture des variables, les commandes des node servers, les totaux d'énergie (kWh).
Mise en place
- Donnez au contrôleur une adresse IP fixe dans votre box.
- Dans Gladys, ouvrez l'intégration et saisissez :
- l'adresse du contrôleur (son adresse IP) et son port HTTP : 8080 sur un eisy ou un Polisy, 80 sur un ISY994 ;
- le nom d'utilisateur et le mot de passe de l'ISY Admin Console. Le mot de passe est gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement au contrôleur, jamais écrit dans les journaux. HTTP seulement pour l'instant : tout appareil qui lit votre réseau local peut le lire ;
- facultativement l'identifiant du contrôleur (son UUID, dans l'ISY Admin Console sous Help > About). Laissé vide, le contrôleur trouvé à la première connexion est retenu.
- Enregistrez, puis cliquez sur Tester la connexion.
- Ajoutez les appareils depuis l'onglet Découverte.
Lumières et interrupteurs : déclarez-les sûrs
Une lumière ou un interrupteur dans Gladys obéit à Google Home, Alexa, au MCP (« éteins tout ») et à toutes les scènes. Un interrupteur ou un variateur Insteon peut commander n'importe quoi : une lampe, mais aussi une pompe, un chauffage, un congélateur, une porte de garage. Un variateur ou un interrupteur n'est donc une lumière ou un interrupteur que si vous listez son adresse dans « Nœuds déclarés sûrs », telle que l'ISY Admin Console l'affiche, par exemple :
1A 2B 3C 1, 4D 5E 6F 1: light
Un variateur est toujours une lumière ; un interrupteur est un interrupteur,
ou une lumière s'il est suivi de : light. Les autres montrent leur état, et
deux boutons « Allumer » et « Éteindre » qui ne fonctionnent qu'une fois
« Autoriser les boutons Allumer / Éteindre » cochée. Si vous déclarez un
nœud sûr plus tard, ses nouvelles fonctionnalités apparaissent dans la
Découverte ; supprimez les anciennes dont vous ne voulez plus (leur historique
part avec elles).
Programmes
Placez les programmes que Gladys peut lancer dans un dossier nommé Gladys de l'ISY Admin Console (directement dedans, pas dans un sous-dossier). Chacun reçoit un bouton Lancer (le contrôleur évalue son If, puis exécute son Then ou son Else) et le résultat de sa dernière condition. Les boutons ne fonctionnent qu'une fois « Autoriser le lancement des programmes du dossier Gladys » cochée : un programme peut tout faire, déverrouiller une porte ou ouvrir un garage. Juste avant chaque lancement, les programmes sont relus : un programme qui n'est plus directement dans le dossier « Gladys » (déplacé, supprimé, dossier renommé, ou son numéro repris par un autre programme) n'est pas lancé, et disparaît de Gladys à la lecture suivante.
Commandes
Une commande part dans les 3,5 secondes ou pas du tout (« rien n'a été envoyé »). Elle n'est confirmée que lorsque le contrôleur signale le niveau demandé ; sinon Gladys affiche « envoyé, sans confirmation » et le nœud est relu 2 secondes plus tard. Le lancement d'un programme est confirmé par la réponse du contrôleur, qui l'exécute lui-même. Chaque commande est écrite dans les journaux de l'intégration.
Déclencheur de scène « Événement de commande ISY »
Chaque événement de commande d'un nœud (un interrupteur, un bouton de clavier ou une télécommande pressé) déclenche la scène avec :
address: l'adresse du nœud, telle que l'ISY Admin Console l'affiche (1A 2B 3C 1) : elle est comparée telle quelle ;control:DON(allumé),DOF(éteint),DFON/DFOF(double appui),FDUP/FDDOWN(maintien),FDSTOP(relâché),BRT,DIM;name: le nom du nœud.
La relecture de tous les états à l'ouverture du flux d'événements ne le déclenche jamais. 120 événements par minute au plus.
Lectures et limites
- Le contrôleur envoie chaque changement au fil de l'eau. À chaque intervalle de lecture des états (10 minutes par défaut), tous les états sont relus. Un redémarrage de l'intégration ne relit jamais plus tôt.
- La liste des nœuds, variables et programmes est lue à la première connexion, puis à nouveau sur Scanner dans la Découverte ou quand le contrôleur signale un changement de ses nœuds, au plus toutes les 10 minutes.
- Après une perte du flux, aucune commande ne part avant que l'identifiant du contrôleur ait été relu.
- Un autre contrôleur répond à la même adresse IP (après un changement de box) : aucun nœud n'est lu et aucune commande n'est envoyée tant que vous ne saisissez pas son identifiant. Seul son identifiant est relu toutes les 5 minutes, et à chaque clic sur « Tester la connexion » : cela envoie le nom d'utilisateur et le mot de passe à l'appareil qui répond à cette adresse.
- Mot de passe refusé : l'intégration s'arrête et ne réessaie jamais d'elle-même. Corrigez le mot de passe, ou cliquez sur « Tester la connexion » quand le contrôleur l'accepte.
- Contrôleur injoignable : nouveaux essais après 10 s, 30 s, 1, 2, puis toutes les 5 minutes ; la pause est gardée après un redémarrage.
- Unités : celles du contrôleur, figées à la création de la fonctionnalité (une température en °F reste en °F).
Crédits
L'API REST et le flux d'événements du contrôleur viennent de
PyISY (Apache 2.0, Automicus), voir
THIRD_PARTY_NOTICES.md.
Paramètres de configuration
Voici les paramètres demandés par ISY / IoX (Universal Devices) dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre contrôleur | section | Non | Pour un contrôleur Universal Devices de votre réseau local : ISY994, ou IoX sur un eisy ou un Polisy. L'intégration lit ses nœuds Insteon et Z-Wave (états, température, humidité, batterie, puissance...), ses variables et les programmes d'un dossier nommé « Gladys » ; les événements de commande (un interrupteur ou un bouton de clavier pressé) deviennent des déclencheurs de scène. Les serrures, thermostats et I/O Linc sont en lecture seule. HTTP seulement pour l'instant : le mot de passe circule en clair sur votre réseau. Jamais testé avec un vrai appareil. Non officiel, sans lien avec Universal Devices. |
| Adresse du contrôleur | string | Oui | L'adresse IP (ou le nom) de l'eisy, du Polisy ou de l'ISY994 ; donnez-lui une adresse fixe dans votre box. |
| Port HTTP | number | Non | 8080 sur un eisy ou un Polisy, 80 sur un ISY994. |
| Nom d'utilisateur | string | Oui | Celui de l'ISY Admin Console (« admin » sauf si vous l'avez changé). |
| Mot de passe | secret | Oui | Celui de l'ISY Admin Console. Gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement au contrôleur, jamais écrit dans les journaux. HTTP seulement pour l'instant : tout appareil qui lit votre réseau local peut le lire. |
| Identifiant du contrôleur | string | Non | Facultatif : son UUID, affiché dans l'ISY Admin Console (Help > About), par ex. 00:21:b9:02:12:34. Vide : le contrôleur trouvé à la première connexion est retenu. Si un autre contrôleur répond un jour à la même adresse, aucun nœud n'est lu et aucune commande n'est envoyée ; seul son identifiant est relu toutes les 5 minutes (ce qui envoie le nom d'utilisateur et le mot de passe à l'appareil qui répond), jusqu'à ce que vous saisissiez le nouvel identifiant ici. |
| Nœuds déclarés sûrs (lumières et interrupteurs Insteon) | string | Non | Adresses des variateurs et interrupteurs Insteon qui peuvent être pilotés comme une lumière ou un interrupteur, telles que l'ISY Admin Console les affiche, par ex. « 1A 2B 3C 1, 4D 5E 6F 1: light » (un variateur est toujours une lumière ; un interrupteur est un interrupteur, ou une lumière avec « : light »). Une lumière ou un interrupteur obéit à Google, Alexa, au MCP (« éteins tout ») et aux scènes : ne listez que les nœuds qui commandent des lampes ou des charges sans risque, jamais une pompe, un chauffage, un congélateur, une porte de garage. Les autres montrent leur état, avec des boutons « Allumer » / « Éteindre » (option ci-dessous). |
| Lecture des états (minutes) | number | Non | Le contrôleur envoie aussi chaque changement au fil de l'eau ; cette lecture rattrape ce qui a été manqué. 2 à 60 minutes. |
| Commandes (désactivées par défaut) | section | Non | Les boutons « Allumer » et « Éteindre » des variateurs et interrupteurs Insteon non déclarés sûrs sont désactivés par défaut : la charge qu'ils commandent est inconnue. Les boutons « Lancer » des programmes du dossier « Gladys » sont aussi désactivés par défaut : un programme peut tout faire (déverrouiller une porte, ouvrir un garage). Une fois autorisés, tout utilisateur de Gladys, toute scène et l'application Gladys peuvent les presser. Chaque commande est écrite dans les journaux de l'intégration. |
| Autoriser les boutons « Allumer » / « Éteindre » | boolean | Non | |
| Autoriser le lancement des programmes du dossier « Gladys » | boolean | Non | |
| Langue des noms | select | Non | Sert aux noms des fonctionnalités ajoutées désormais. |
Comment installer ISY / IoX (Universal Devices) dans Gladys
- Dans Gladys, ouvrez Intégrations : ISY / IoX (Universal Devices) 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-isy:0.1.2), 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-isy.
ISY / IoX (Universal Devices) 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
ISY / IoX (Universal Devices) 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