Avec la version 2.0 de mon installation, le monde extérieur nous est accessible, des acteurs peuvent être ajoutés, modifiés voir même supprimés sans gros impact sur l’architecture générale : il est temps maintenant de rajouter un chef d’orchestre à tout se foutoir !
Pour arriver à cette nouvelle évolution, appelée sobrement 2.1, pas de remise en cause technique : le système reste centré sur un bus de données géré par le broker Mosquitto, quelques évolutions des composants existants et l’ajout d’un nouveau partenaire. En fait, la transition s’est faite au fil de l’eau, sans grand big bang (à la mode agile on pourrait même dire), preuve que les choix précédents ont été les bons.
On retrouve les 3 « injecteurs » de la version précédente :
Pour assurer ces tâches, il s’interface avec le bus 1-wire de la maison et à un boitier RFXtrx pour les liaisons par radio fréquence (en particulier mes volets Somfy). D’autres médias ajouteront sans doute.
Avoir des données, c’est bien ; pouvoir s’en servir pour prendre des décisions avec, c’est mieux.
C’est pourquoi j’ai ajouté un nouveau composant nommé Majordome : en se basant sur les données auxquelles il a souscrit, il déduit les actions à faire et qui seront majoritairement interprétées par Marcel.
Clarifions par un exemple concret : la gestion des volets du salon.
Ce que l’on souhaite, c’est optimiser le temps d’ouverture des volets pour :
Bref, beaucoup de paramètres pour une tâche qui paraissait si simple de prime abord.
Majordome écoute donc les données environnementales échangées (température du salon, heure de levé et couché du soleil, mode de confort choisi « travail », « vacances », « Absent ») et en temps réel contrôle les volets du salon.
Et tout ceci se reproduit pour chacune des pièces de la maisons, d’autres scénarii sont ajoutés pour d’autres tâches : surveillance de l’arrivée des enfants, contrôle de la filtration de la piscine, ….
Techniquement, Majordome est une collection de scripts Lua se basant sur mon framework Séléné, déjà utilisé pour mon tableau de bord mais sans interface graphique ce coup-ci. Séléné se charge de la couche transport MQTT, des timers et de la gestion des évènements alors que la partie Lua gère les décisions à prendre.
Suivant la complexité des scenarii, il est possible de tout centraliser dans un même script, ou d’en faire tourner plusieurs en parallèle.
Toutes la configurations du fonctionnement des scénarii passent pas des messages MQTT « persistants » (ce qui fait qu’un intervenant peut récupérer la configuration en cours même s’il est démarré après qu’elle est été établie).
Comme client, je conserve évidement Domestik et les scripts conky. Mais comme je l’ai abordé (succinctement) dans la V2.0, j’ai recycler une tablette dont l’Android était brickée en y installant Linux pour y faire tourner mon tableau de bord :
Malheureusement, je n’ai pas réussi à trouver un driver pour l’écran tactile de cette tablette, donc la modification de ses paramètres se fait par une interface web et des échanges MQTT.
Cette architecture donne vraiment satisfaction sur tous les points :
Seul l’ordonnanceur (Majordome) n’est pas pour « Monsieur tout le monde » car demandant de solides notions de programmations : il pourrait être facilement remplacer par un produit plus WAF Compliant pour peu qu’il s’interface bien avec un bus MQTT.
Mais l’utilisation de Marcel comme « interface technique » se justifie largement face aux solutions concurrentes en permettant une certaine stabilité vers « le monde extérieur » et une flexibilité que je n’ai pas retrouver dans les produits que j’ai étudié.
Visitez : Nos sorties Ski et rando |
Copyright Laurent Faillie
2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso. |
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution. |
Visites durant les 7 derniers jours au total. |
Vous pouvez
laissez un commentaire
sur cette page.