Intégration domotique FHEM, gratuite et open source

Pont vers FHEM : importez ses appareils (lampes, volets, capteurs…) dans Gladys et pilotez-les.
Cette intégration relie Gladys à votre serveur FHEM. Les appareils de FHEM (HomeMatic, Z-Wave, Shelly, dummies, tout ce que FHEM pilote) deviennent des appareils Gladys : leurs valeurs (readings) suivent FHEM en direct, et Gladys les pilote par FHEM, qui continue de parler au matériel. Tout reste sur votre réseau local.
FHEM n'est pas affilié à Gladys Assistant, et cette intégration n'est pas affiliée au projet FHEM.
Testée contre un vrai FHEM 6.4 en Docker avec des appareils dummy (sans matériel réel) : vos retours sur de vraies installations sont les bienvenus.
Prérequis
- Gladys Assistant 5.1.0 ou plus récent.
- FHEM avec son interface web FHEMWEB (l'appareil
WEB, port 8083 par défaut), joignable depuis la machine de Gladys. - Facultatif : un nom d'utilisateur et un mot de passe si FHEMWEB en demande
(un appareil
allowedavecbasicAuth).
Configuration
Adresse
Saisissez l'adresse de FHEMWEB vue depuis la machine de Gladys, par exemple
http://192.168.1.30:8083/fhem. Sans chemin, /fhem est utilisé ; sans port, 8083. Utilisez une adresse IP : Gladys lance l'intégration dans un conteneur qui
ne résout pas les noms en .local, et localhost désigne le conteneur
lui-même.
Gladys lit tout seul le jeton CSRF de FHEMWEB : rien à changer dans FHEM.
Nom d'utilisateur et mot de passe
Laissez-les vides si FHEMWEB s'ouvre sans mot de passe. Si vous l'avez protégé
(define allowed_WEB allowed, attr allowed_WEB validFor WEB,
set allowed_WEB basicAuth <utilisateur> <mot de passe>), saisissez les mêmes.
Choisir ce qui est importé
- Seulement les appareils de ces pièces : pièces FHEM (attribut
room), séparées par des virgules. Un appareil compte s'il est dans l'une d'elles. Vide : tous les appareils. - Appareils à écarter : noms d'appareils FHEM, séparés par des virgules ;
*remplace n'importe quel texte (HM_*, Test_*). - Dans FHEM, un appareil dont le
genericDeviceTypevautignore, ou qui porte l'attributignore, n'est jamais importé.
Serrures, portes de garage et alarmes
Désactivé par défaut : les serrures affichent leur état, les portes de garage
indiquent si elles sont ouvertes, mais Gladys ne peut pas les ouvrir, ni depuis
l'appareil, ni par une scène, ni par un assistant vocal. Activez Autoriser
les commandes des serrures, portes de garage et alarmes si vous l'acceptez.
Un appareil est une serrure, une porte de garage ou une alarme quand son
genericDeviceType vaut lock, garage ou security, ou quand il a les
commandes lock et unlock.
Options
- Volets : 0 % veut dire ouvert dans FHEM : Gladys attend 100 % pour un volet ouvert, comme HomeMatic, Shelly et le mapping homebridge de FHEM. Activez-le si vos volets comptent dans l'autre sens.
- Intervalle minimum entre deux valeurs d'un capteur : un compteur qui publie chaque seconde est transmis à Gladys à ce rythme (10 s par défaut). Interrupteurs et détecteurs ne sont jamais retardés.
- Appareils surveillés pour les scènes : voir le déclencheur ci-dessous.
- Langue des noms de fonctionnalités : français par défaut.
Ce que vous obtenez
Appareils
Chaque appareil FHEM est proposé une fois dans l'onglet Découverte, nommé
d'après son alias (sinon son nom) et sa pièce. Ajoutez ceux que vous voulez.
Le genre d'un appareil vient de son attribut genericDeviceType s'il est
renseigné, sinon de ses commandes (PossibleSets) et de ses valeurs :
| FHEM | Gladys |
|---|---|
genericDeviceType light, ou on/off avec pct/dim | lampe : marche/arrêt, luminosité |
genericDeviceType switch/outlet, ou on/off | interrupteur : marche/arrêt |
genericDeviceType blind, HomeMatic blindActuator, ou up/down/stop sans on/off | volet : position (pct), ouvrir/fermer/arrêter |
desired-temp (thermostats) | consigne de thermostat, dans les bornes données par FHEM |
genericDeviceType contact/window/garage, contact | détecteur d'ouverture (ouvert, entrouvert : ouvert) |
genericDeviceType motion, valeur motion | détecteur de mouvement |
valeur presence, appareils PRESENCE et ROOMMATE | détecteur de présence |
genericDeviceType lock, commandes lock/unlock | serrure (lecture seule par défaut) |
valeurs temperature/measured-temp, humidity | température (°C), humidité (%) |
valeurs pressure, co2, luminance/illuminance | pression (hPa), CO2 (ppm), éclairement (lux) |
valeurs power, energy | puissance (W), énergie (kWh) : de la prise, ou d'un compteur |
valeur battery (ok/low ou %), batteryPercent | batterie faible, ou niveau de batterie (%) |
Une commande n'est proposée que si FHEM la liste dans les commandes de
l'appareil ; sinon la fonctionnalité est en lecture seule. Gladys envoie
set <appareil> on, set <appareil> pct 40, set <appareil> desired-temp 21.5…
et le changement de valeur qui suit sert de retour d'état.
Widget du tableau de bord
Le widget FHEM montre la connexion, si les états arrivent en direct ou par interrogation, la révision de FHEM, les appareils proposés et ajoutés, et un bouton Relire qui relit la liste des appareils.
Déclencheurs de scène
Appareil FHEM modifié : une valeur d'un appareil surveillé a changé (configuration, Appareils surveillés pour les scènes), même un appareil non ajouté à Gladys : un bouton, une sonnette, un état des résidents, un mode d'alarme. Filtres : appareil, reading et nouvelle valeur (tous facultatifs). Variables : appareil, alias, reading, nouvelle valeur, valeur précédente.
Actions de scène
Envoyer une commande à un appareil FHEM : exécute
set <appareil> <commande> sur n'importe quel appareil connu de FHEM, même non
ajouté à Gladys : on, off, pct 50, on-for-timer 300, une scène d'un
LightScene… Seulement un set : un ; ou des accolades sont refusés, une
scène ne peut donc pas lancer une autre commande FHEM ni du code Perl. Les
serrures, portes de garage et alarmes suivent l'interrupteur de sécurité, tout
comme une structure ou une LightScene qui en contient. FHEM peut encore
relayer une commande de lui-même (un notify sur un dummy) : cela dépend de
votre configuration FHEM.
Exemples de scènes
- Quand la sonnette
Klingel(surveillée) passe àpressed, envoyer un message et allumer l'entrée pour cinq minutes (on-for-timer 300). - Quand l'appareil des résidents
rgr_Residentspasse àabsent, fermer les volets et baisser les thermostats. - Au coucher du soleil, si le détecteur de mouvement du salon n'a vu personne depuis une heure, éteindre toutes les lampes du salon.
Dépannage
- Injoignable : vérifiez l'adresse depuis la machine de Gladys
(
curl http://<adresse>:8083/fhem?XHR=1), et que FHEMWEB n'est pas limité à la machine locale (attributallowfromdeWEB, ou unWEBlié à 127.0.0.1). - Accès refusé : le nom d'utilisateur et le mot de passe de l'appareil
allowed. - Un appareil manque : lancez Tester la connexion dans la
configuration : elle liste les types FHEM non importés. Renseignez
genericDeviceTypesur l'appareil dans FHEM (attr <appareil> genericDeviceType light), puis Relire dans le widget ou relancez une recherche. - « Interrogation » dans le widget : un proxy inverse coupe la requête
longue de FHEMWEB (
inform). Les états arrivent quand même toutes les 30 secondes. - Volets à l'envers : activez Volets : 0 % veut dire ouvert dans FHEM.
Limites
- Développée sans matériel FHEM réel : testée contre FHEM 6.4 avec des appareils dummy. Vos retours sont les bienvenus.
- FHEM ne donne pas les unités : la puissance est prise en W, l'énergie en kWh, les températures en °C.
- Couleurs, modes des thermostats, lecteurs et autres commandes ne deviennent
pas des fonctionnalités Gladys : l'action de scène envoie n'importe quel
set. - Un appareil renommé dans FHEM garde son appareil Gladys (FHEM 6 donne à chaque appareil un FUUID qui survit au renommage) ; sur un FHEM plus ancien sans FUUID, un appareil renommé est un nouvel appareil.
- FHEMWEB ne dit rien sur un flux calme : le flux est rouvert toutes les 15 minutes, et la liste relue à ce moment-là.
Confidentialité
L'intégration ne parle qu'à votre serveur FHEM, sur votre réseau. Rien ne part sur Internet. Le mot de passe est gardé par Gladys et jamais écrit dans les journaux.
Paramètres de configuration
Voici les paramètres demandés par FHEM dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Vos appareils FHEM dans Gladys | section | Non | Gladys lit les appareils de votre serveur FHEM par FHEMWEB, son interface web, et suit leurs changements en direct. Les appareils apparaissent ensuite dans l'onglet Découverte : ajoutez ceux que vous voulez. Renseignez l'attribut genericDeviceType dans FHEM (light, switch, blind, thermostat, contact, motion…) pour les appareils que Gladys ne reconnaît pas. |
| Adresse de FHEMWEB | string | Oui | Son adresse IP, son port et son chemin, vus depuis la machine de Gladys. Pas de nom en .local, pas localhost. |
| Nom d'utilisateur | string | Non | Seulement si FHEMWEB demande un mot de passe (basicAuth d'un appareil allowed). |
| Mot de passe | secret | Non | |
| Seulement les appareils de ces pièces | string | Non | Pièces FHEM (attribut room), séparées par des virgules. Vide : tous les appareils. |
| Appareils à écarter | string | Non | Noms d'appareils FHEM, séparés par des virgules ; * remplace n'importe quel texte. Jamais importés. |
| Autoriser les commandes des serrures, portes de garage et alarmes | boolean | Non | Désactivé : les serrures affichent leur état, mais Gladys ne peut pas les ouvrir, depuis un appareil, une scène ou un assistant vocal. |
| Volets : 0 % veut dire ouvert dans FHEM | boolean | Non | Gladys attend 100 % pour un volet ouvert, comme HomeMatic et Shelly dans FHEM. Activez si vos volets comptent dans l'autre sens. |
| Intervalle minimum entre deux valeurs d'un capteur (s) | number | Non | Un compteur qui publie chaque seconde est transmis à Gladys à ce rythme. Interrupteurs et détecteurs ne sont jamais retardés. |
| Scènes | section | Non | Les appareils listés ici déclenchent le déclencheur de scène « Appareil FHEM modifié » à chaque changement d'une de leurs valeurs (readings), même s'ils ne sont pas ajoutés à Gladys (un bouton, une sonnette, un état des résidents…). |
| Appareils surveillés pour les scènes | string | Non | Noms d'appareils FHEM, séparés par des virgules ; * remplace n'importe quel texte. |
| Langue des noms de fonctionnalités | select | Non |
Comment installer FHEM dans Gladys
- Dans Gladys, ouvrez Intégrations : FHEM 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/guim31/gladys-fhem:1.0.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/guim31/gladys-fhem.
FHEM 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
FHEM 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.
- 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