Skip to content

About

Prototype Jeedom–EnergyOS bridge with MQTT telemetry and controlled commands

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EnergyOS pour Jeedom — prototype 0.3

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

V0.2 — découverte et publication des informations

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.

Prérequis et installation

  • Jeedom 4.4 minimum ; validation réalisée avec Jeedom 4.6.2 sur Debian 13.
  • PHP CLI avec les extensions pcntl et posix pour gérer les processus.
  • mosquitto-clients, déclaré dans plugin_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.

Arrêt du démon et validation

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

Ré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.

Licence

AGPL-3.0 ; voir LICENSE. Auteur déclaré par le plugin : Cyaneo.

About

Prototype Jeedom–EnergyOS bridge with MQTT telemetry and controlled commands

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages