Passerelle bidirectionnelle Jeedom ↔ EnergyOS.
Flux :
- Jeedom → EnergyOS : telemetry, availability, discovery
- EnergyOS → Jeedom : command
- Jeedom → EnergyOS : command/ack
Sécurité fonctionnelle :
- Aucun équipement ni commande n'est exposé par défaut.
- Chaque asset a un mode observe, advice ou control.
- Seules les actions présentes dans le mapping actions peuvent être exécutées.
Topics :
- energyos/site/{site}/node/{asset}/telemetry
- energyos/site/{site}/node/{asset}/availability
- energyos/site/{site}/node/{asset}/discovery
- energyos/site/{site}/node/{asset}/command
- energyos/site/{site}/node/{asset}/command/ack
La page EnergyOS propose « Scanner les informations ». Elle liste les équipements ayant des commandes d'information, leurs valeurs actuelles et unités. Sélectionnez les mesures puis « Publier la sélection vers EnergyOS ». Les sélections créent des publications automatiques en Observation ; les mappings et autorisations existants sont conservés. Les équipements désactivés et informations déjà publiées ne sont pas sélectionnables. Le scan ne sauvegarde rien et ne publie rien.
Chaque équipement découvert obtient un asset_id stable basé sur son identifiant Jeedom. Les messages discovery comprennent les noms, unités et sous-types des informations ; telemetry conserve le protocole EnergyOS avec les valeurs sous metrics. Une même information ne sera pas ajoutée deux fois. Les actions restent configurables séparément dans la section avancée.
- Jeedom 4.4 minimum ; validation réalisée avec Jeedom 4.6.2 sur Debian 13.
- PHP CLI avec les extensions
pcntletposixpour gérer les processus. mosquitto-clients, déclaré dansplugin_info/packages.json.
Placer les fichiers du dépôt dans plugins/energyos sur une installation de
test Jeedom, avec les mêmes droits que les autres plugins, puis activer EnergyOS
dans la gestion des plugins. Installer les dépendances depuis Jeedom et régler
le broker MQTT dans la configuration du plugin. L'adresse par défaut est
127.0.0.1 ; un broker MQTT doit être disponible à l'adresse configurée.
Ce dépôt est un prototype : la validation Debian 13 utilise un broker local et des données synthétiques. Les équipements physiques, le broker TLS habituel et les flux d'un site réel nécessitent leurs propres essais.
Le démon remplace le shell de lancement par mosquitto_sub, traite SIGTERM
et SIGINT, ferme puis récupère le processus fils avant de supprimer son
fichier PID. La demande d'arrêt vérifie l'identité du processus et attend sa fin.
Le test d'intégration tests/daemonLifecycleTest.php couvre cinq cycles
démarrage/arrêt, le redémarrage, les signaux directs, la reconnexion après la
mort du client et un fichier PID périmé désignant un processus étranger.
Exécuter ce test uniquement sur un Jeedom jetable installé dans /var/www/html,
avec le plugin désactivé et un broker de test limité à la boucle locale sur le
port 18884. Il remplace temporairement la configuration MQTT du plugin, puis
la restaure. Il n'utilise aucun équipement ni mapping du site.
sudo -u www-data env ENERGYOS_DISPOSABLE_TEST=1 \
php /var/www/html/plugins/energyos/tests/daemonLifecycleTest.phpRésultat observé sur Debian 13 / PHP 8.4 : tous les contrôles réussissent, sans client MQTT résiduel. Ce résultat n'est pas une déclaration de support officiel de Jeedom.
AGPL-3.0 ; voir LICENSE. Auteur déclaré par le plugin : Cyaneo.