Aller au contenu principal

Intégration domotique openHAB, gratuite et open source

Intégration openHAB pour Gladys Assistant

Pont vers openHAB : importez ses items (lampes, volets, capteurs…) dans Gladys et pilotez-les.

Cette intégration relie Gladys à votre serveur openHAB et propose ses items dans l'onglet Découverte de Gladys : lampes, interrupteurs et prises, volets et rideaux, consignes de température, capteurs avec leurs unités, contacts, détecteurs, lecteurs et serrures. Une fois un appareil ajouté, ses états suivent openHAB en direct, et Gladys le pilote à travers openHAB, qui garde ses bindings (Zigbee, Z-Wave, KNX, Modbus, cloud…). Passez à Gladys à votre rythme, ou faites tourner les deux côte à côte. Tout reste sur votre réseau local. Non officielle, sans lien avec la fondation openHAB.

Testée avec openHAB 5.0.1 en Docker et des items virtuels (sans binding), pas encore sur beaucoup d'installations réelles : vos retours sont les bienvenus sur le dépôt GitHub.

Prérequis​

  • openHAB 4.x ou 5.x, joignable depuis la machine de Gladys (même réseau, ou un VPN).
  • Un jeton d'API d'un utilisateur openHAB (de préférence administrateur : lancer une règle depuis une scène l'exige). Si votre openHAB accepte les requêtes sans connexion (son « rôle utilisateur implicite » par défaut), aucun jeton n'est nécessaire.

Configuration​

Adresse et jeton​

  1. Dans openHAB (Main UI), ouvrez votre profil (en bas à gauche), puis Create new API token. Nommez-le « Gladys » et copiez le jeton : openHAB ne l'affiche qu'une fois.
  2. Dans Gladys, ouvrez l'intégration, Configuration :
    • Adresse d'openHAB : comme http://192.168.1.30:8080, ou https://openhab.example.org derrière un proxy inverse. Pas de nom en .local, pas localhost : l'intégration tourne dans son propre conteneur.
    • Jeton d'API : collez-le. Un nom d'utilisateur et un mot de passe fonctionnent aussi, seulement si l'authentification basique est activée dans openHAB (Settings → API Security).
  3. Cliquez sur Tester la connexion : la version d'openHAB, le nombre d'appareils proposés et les types d'items non importés s'affichent.
  4. Ouvrez l'onglet Découverte et ajoutez les appareils voulus. Leurs valeurs sont envoyées dès l'ajout.

Choisir ce qui est importé​

Une installation openHAB compte souvent des centaines d'items. Gladys propose :

  • seulement les items des groupes listés, s'il y en a (noms ou libellés de groupes, séparés par des virgules, comme gGroundFloor, Jardin ; un item compte s'il est dans l'un d'eux, à toute profondeur) ;
  • seulement les items portant l'un des tags listés, s'il y en a (tags de l'item ou de son équipement : tags sémantiques comme Lightbulb, Temperature, ou les vôtres, comme Gladys) ;
  • jamais les items listés dans Items à écarter (*_Signal, * remplace n'importe quel texte).

Les items de type groupe ne sont jamais des appareils : ce sont les emplacements et équipements du modèle sémantique. Seuls les appareils ajoutés dans Gladys reçoivent des états : les autres ne coûtent rien.

Serrures, portes de garage et portails​

Par défaut, les serrures (items tagués Lock, ou points d'un équipement Lock), et tout item d'une porte de garage, d'un portail ou d'une porte (volet, interrupteur à impulsion, gâche, ouvre-porte), tagué ainsi ou point d'un tel équipement, sont en lecture seule dans Gladys : vous voyez s'ils sont verrouillés, ouverts ou fermés, mais ni un appareil, ni une scène, ni un assistant vocal relié à Gladys ne peut les ouvrir. Cochez Autoriser les commandes des serrures, portes de garage et portails pour les piloter (puis cliquez sur « Mettre à jour » sur ces appareils dans l'onglet Découverte). L'action de scène qui envoie une commande les refuse aussi, ainsi qu'un groupe qui en contient un, tant que cette case n'est pas cochée.

Options​

  • Intervalle minimum entre deux valeurs d'un capteur : 10 secondes par défaut. Un compteur qui publie chaque seconde est transmis à Gladys à ce rythme. Interrupteurs, lampes, volets et détecteurs ne sont jamais retardés.
  • Langue des noms de fonctionnalités : les mots ajoutés aux noms des fonctionnalités secondaires (« Volet – Position »). Français par défaut.
  • Items surveillés pour les scènes : voir le déclencheur de scène plus bas.

Ce que vous obtenez​

Appareils​

Un appareil Gladys par équipement du modèle sémantique d'openHAB, avec les fonctionnalités de ses points (une lampe avec son interrupteur, son variateur et sa couleur) ; un item hors de tout équipement est un appareil à part. Le nom est le libellé d'openHAB, avec son emplacement (« Plafonnier (Salon) »).

Item openHABDans Gladys
Switchun interrupteur, ou une lampe (tag Light, équipement lumineux)
Switch tagué Alarm/Status + Smoke, Water…détecteur de fumée, fuite, CO, mouvement, sabotage ou vibration
Switch tagué Lockverrouillé ou non (lecture seule sauf autorisation)
Dimmerluminosité d'une lampe (avec marche/arrêt s'il est seul)
Dimmer tagué SoundVolumele volume d'un lecteur
Colorcouleur et luminosité d'une lampe (avec marche/arrêt s'il est seul)
Rollershutterun volet (ou un rideau) : ouvrir, fermer, arrêter, position
Rollershutter porte de garage, portail, porteouvert ou fermé, position (lecture seule sauf autorisation)
Contactun détecteur d'ouverture
Playerétat de lecture, lecture, pause, suivant, précédent
Number:Temperature tagué Setpointune consigne de thermostat, dans le min et le max de l'item
Number:Temperature, Pressure, Illuminance…température, pression, luminosité, puissance, énergie, tension
courant, volume (gaz, eau), vent, bruit, intensité de pluie
Number en % tagué Humidity, ou nommé batteriehumidité, niveau de batterie
Number en ppm tagué CO2un capteur de CO2

Les items String, DateTime, Location, Call, Image et les groupes ne sont pas importés (le test de connexion les liste) ; un String peut quand même déclencher une scène (déclencheur plus bas) ou recevoir une commande (action de scène). Un Number sans unité ni sens n'est pas importé non plus : donnez-lui une dimension (Number:Power) ou un tag sémantique.

La position d'un volet suit Gladys : 100 % est ouvert (openHAB dit 0 %). Un Number:Dimensionless sans métadonnée unit garde son état en « one » dans openHAB (48 % vaut 0.48) : le pont l'affiche dans l'unité de son motif, comme openHAB.

Widget du tableau de bord​

openHAB : la connexion, la façon dont arrivent les états (flux d'événements ou interrogation), la version d'openHAB, les appareils proposés et ajoutés, les items suivis, et un bouton Relire qui relit la liste des items.

Déclencheurs de scène​

Item openHAB modifié : un item listé dans Items surveillés pour les scènes a changé d'état, même s'il n'est pas ajouté à Gladys (un String, un mode d'alarme, une sonnette). Filtres : l'item, et le nouvel état (facultatif). Variables : item, libellé, nouvel état, état précédent.

Actions de scène​

  • Envoyer une commande à un item openHAB : n'importe quel item, n'importe quelle commande (ON, OFF, 50, UP, PLAY, un texte). Utile pour les items sans fonctionnalité dans Gladys, ou pour lancer une règle openHAB par un interrupteur virtuel.
  • Lancer une règle openHAB : par son identifiant (UID, visible dans Settings → Rules) ; les scènes d'openHAB sont aussi des règles. Demande le jeton d'un administrateur.

Exemples de scènes​

  • Quand l'item openHAB Alarm_Mode passe à ARMED (item surveillé), éteindre toutes les lampes de Gladys et envoyer un message.
  • Au coucher du soleil, envoyer DOWN au groupe openHAB gShutters (action de scène).
  • Quand la présence Gladys quitte la maison, lancer la règle openHAB away_mode.

Dépannage​

  • « openHAB refuse l'accès » : le jeton est faux ou a été supprimé ; créez-en un nouveau. Avec un nom d'utilisateur, l'authentification basique doit être activée dans openHAB.
  • « openHAB est injoignable » : vérifiez l'adresse depuis la machine de Gladys (curl http://<adresse>:8080/rest/). Un nouvel essai a lieu après 5 secondes, puis jusqu'à chaque minute.
  • Le widget indique « Interrogation » : le flux d'événements (/rest/events) ne passe pas, souvent à cause d'un proxy inverse qui le met en mémoire tampon. Les états arrivent quand même toutes les 30 secondes ; le flux est retenté régulièrement.
  • Un item manque : lancez le test de connexion, il liste les types non importés. Vérifiez les groupes, tags et exclusions de la configuration.
  • Une valeur est 100 fois trop grande ou trop petite : l'item est un Number:Dimensionless dont le motif dit % alors qu'openHAB le stocke en « one », ou l'inverse ; donnez-lui une métadonnée unit dans openHAB.
  • Journaux : réglez LOG_LEVEL=debug pour voir chaque état et événement.

Limites​

  • Développée contre openHAB 5.0.1 avec des items virtuels : ni binding ni matériel réel. Vos retours sont les bienvenus.
  • Les groupes ne sont pas des appareils : un groupe de lampes se commande quand même par l'action de scène.
  • Un mode de thermostat, une température de couleur ou une vitesse de ventilateur n'ont pas de type d'item propre dans openHAB : ils arrivent en Number ou en Dimmer, et sont importés comme tels s'ils ont une unité, ou pas du tout.
  • Renommer un item dans openHAB crée un autre item : l'appareil Gladys doit être ajouté de nouveau. Déplacer un item vers un autre équipement change aussi son appareil Gladys.
  • Les noms des fonctionnalités sont figés à l'ajout de l'appareil dans Gladys.

Confidentialité​

Le pont ne parle qu'à votre serveur openHAB, sur votre réseau. Le jeton (ou le mot de passe) est stocké par Gladys dans sa configuration et n'est jamais écrit dans les journaux. Rien ne part sur Internet.

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Vos items openHAB dans GladyssectionNonGladys lit les items de votre serveur openHAB par son API REST et suit leurs changements en direct. Créez un jeton d'API dans openHAB (votre profil, tout en bas : Create new API token). Si votre openHAB accepte les requêtes sans connexion, le jeton peut rester vide. Les items apparaissent ensuite dans l'onglet Découverte, regroupés par équipement du modèle sémantique : ajoutez ceux que vous voulez.
Adresse d'openHABstringOuiSon adresse IP et son port, vus depuis la machine de Gladys. Pas de nom en .local, pas localhost.
Jeton d'APIsecretNonVide si votre openHAB accepte les requêtes sans connexion.
Nom d'utilisateur (à la place d'un jeton)stringNonSeulement si l'authentification basique est activée dans openHAB (réglages de sécurité de l'API). Un jeton est préférable.
Mot de passesecretNon
Seulement les items de ces groupesstringNonNoms ou libellés de groupes, séparés par des virgules : un item compte s'il est dans l'un d'eux, à toute profondeur. Vide : tous les items.
Seulement les items portant ces tagsstringNonTags de l'item ou de son équipement, séparés par des virgules (tags sémantiques comme Lightbulb ou Temperature, ou les vôtres). Vide : tous les items.
Items à écarterstringNonNoms d'items, séparés par des virgules ; * remplace n'importe quel texte. Jamais importés.
Autoriser les commandes des serrures, portes de garage et portailsbooleanNonDésactivé : serrures, portes de garage et portails affichent leur état, mais Gladys ne peut pas les ouvrir, depuis un appareil, une scène ou un assistant vocal.
Intervalle minimum entre deux valeurs d'un capteur (s)numberNonUn compteur qui publie chaque seconde est transmis à Gladys à ce rythme. Interrupteurs et détecteurs ne sont jamais retardés.
ScènessectionNonLes items listés ici déclenchent le déclencheur de scène « Item openHAB modifié » à chaque changement d'état, même s'ils ne sont pas ajoutés à Gladys (un String, un DateTime, un mode d'alarme…).
Items surveillés pour les scènesstringNonNoms d'items, séparés par des virgules ; * remplace n'importe quel texte.
Langue des noms de fonctionnalitésselectNon

Comment installer openHAB dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : openHAB 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/guim31/gladys-openhab:1.0.0), 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/guim31/gladys-openhab.

openHAB 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​

openHAB 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.

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 🙂