domonode - nouknouk/ma-domotique GitHub Wiki

domonode

domonode est le nom d'un logiciel que je développe activement pour les besoins de ma domotique.

Qui dit domotique, dit "box domotique", c'est à dire une sorte de mini-serveur qui:

  • centralise les informations domotiques, aggrège les information, les stocke / historise

  • propose une interface pour configurer sa domotique

  • contient des 'scénarios', déclenchés manuellement ou automatiquement qui vont automatiser le comportement de la maison, et donc la rendre "intelligente".

Au commencement de mon installation, j'ai opté pour le logiciel open-source Jeedom qui est une référence dans le domaine (et que je ne peux que vous conseiller)

Mais je suis un geek pathologique, donc à un moment m'est venu l'envie de faire mon propre logiciel pour contrôler ma domotique, quelque chose qui serait adapté parfaitement à mes besoins et qui adresserait les 'limites' que j'ai trouvées à Jeedom.

J'ai appelé ce logiciel perso domonode, et (un jour) il sera publié sous licence open-source sur github

Le logiciel se veut extrêmement générique: c'est une sorte de framework très basique qui expose des entités via des plugins. Au final, domonode pourrait donc se résumer à un arbre d'entités.

les plugins:

Au démarrage de domonode, le programme charge des plugins ; un plugin sert:

  • soit à ajouter des fonctionnalités dans domonode. par exemple le plugin trigger permet de programmer le lancement d'entités commande quand quelque chose se produit (ex: telle entité valeur a dépassé tel chiffre)

  • soit à exposer de nouvelles entités dans cet arbre. Par exemple le plugin teleinfo va exposer plusieurs valeurs récupérées de mon compteur électrique: consommation instantanée, cumulée, etc...

Exemple de plugins déjà écrits:

list of plugins

les entités:

Sont:

  • des objets qui ont un type (valeur, commande (=action), ou lien vers une autre entité)
  • chaque entité peut avoir des attributs qui lui sont rattachés.
  • chaque entité peut avoir d'autres entités qui sont ses enfants.

Quelques exemples d'entités:

Des catégories d'équipements exposés par Jeedom, qui sont à leur tour exposées dans domonode via un plugin passerelle:

jeedom plugin equipments

Quelques valeurs exposées par le plugin apcups qui s'occupe de gérer l'onduleur de ma baie informatique:

apc ups

Le détail d'une entité valeur, ici la charge CPU d'un serveur:

details of a value

Une entité de type script qui permet d'écrire une commande avec un peu de code javascript:

script code editor