Cette fois-ci, fini le matériel et les installations. Passons aux logiciels. En effet, pour piloter la carte, il va falloir communiquer. Pour cela, nous avons conçu un protocole destiné à attaquer les ressources de la domobase à partir d’un raspberry (par exemple). Enfin, nous avons développé un plugin Jeedom (à partir de Jserial) pour l’interfaçage avec l’utilisateur final.
Le protocole
Comme je vous l’expliquais dans mes articles précédents, le protocole fonctionne sous forme de « commandes AT ». Vous pouvez retrouver toutes les commandes sur le liens suivant :
Je ne vais pas toutes vous les lister mais je vais vous montrer quelques exemples simples.
Tout d’abord, voyons la connexion. Après avoir branché le câble de la domobase sur le port USB de votre RaspberryPi, un nouveau « device » devrait être monté: /dev/ttyACM0 .
La connexion sur cette COM se fait avec les paramètres suivants :
- Speed :9600bauds
- Data bits : 8
- Parité : No
- Stop bit : 1
Vous pouvez (dans la console ssh de la Raspberry) utiliser minicom picocom ou encore screen pour tester les différents jeux de commande.
Astuce : il se peut que lors d’un plantage de la RaspberryPi ou d’un retrait sauvage du câble USB, le device se remonte en /dev/ttyACM1 (par exemple) . Afin de n’avoir aucun problème de nommage, je vous conseille vivement de travailler avec l’ID du device. Sur les kernels récents vous avez la possibilité d’attaquer votre périphérique dans /dev/serial/by-id/usb-NetForge_Domobase_2012-if00
C’est plus long à taper mais vous pointerez toujours sur le bon périphérique. (on verra que c’est ce nom qu’il faudra rentrer dans le plugin Jeedom.
En vous connectant sur cette COM, vous pourrez piloter vos lumières de la manière suivante :
Lecture de l’état de la lumière n°1: (le numéro correspond au n° de l’entrée)
$LIGHTS0107(CRLF)
la carte répondra :
#LIGHTS010101(CRLF) Réponse identique à la question avec comme valeur ’01’ signifiant ‘ON’.
Toutes les commandes répondent au même principe :
- Une commande commençant par ‘$’
- La dénomination
- La zone (correspondant au n° d’entrée ou sortie)
- L’action (ON, OFF, TOGGLE, OPEN, CLOSE, PULSE, READ, DELAY, EVENEMENT, etc…)
- La valeur (quand c’est une action)
La carte répondra toujours à une commande:
Soit #SYSTEM0009Err02 si il y a une erreur
soit #<dénomination><zone><action><valeur>
Voilà comment fonctionne le protocole de la domobase. Il ne reste plus qu’à interfacer tout ça sur Jeedom pour le rendre exploitable.
le plugin Jeedom
Vous pouvez récupérer le plugin ici : Plugin_Domobase_Jeedom_v1.10
Installation
Pour installer le plugin c’est assez simple. Il suffit de dézipper le fichier dans : /var/www/html/plugins/domobase
Je n’ai pas eu le temps de jouer encore avec le market de Jeedom. Du coup, cela requiert encore une installation « maison ».
Bien entendu faites attention aux différents droits pour que le plugin soit accessible par www-data (775)
Enfin, il se peut que l’accès à la carte domobase par le device soit interdit à Jeedom, exécuter donc cette commande :
sudo usermod -A -G dialout www-data
Configuration du plugin
Si tout s’est bien passé, vous verrez apparaître le logo de la domobase dans la « gestion des plugins »
Cliquez ensuite sur l’icône :
Cliquez sur le bouton « Activer » et remplissez le formulaire comme ci-dessus:
- Mode : Local
- Port Série : Modem Série avec /dev/serial/by-id/usb-NetForge_Domobase_2012-if00
Comme je le stipulais en début d’article, nous sommes partis d’un plugin existant, donc ceux qui ont l’habitude du plugin Jserial, ne devrait pas être perdus. (PS : Merci au développeur du plugin)
Passons maintenant aux paramétrages de nos interfaces.
Tout a été fait pour que la configuration soit le plus rapide possible. Pour cela nous avons créé des « templates » par équipement, afin de précréer les commandes:
Pour commencer le paramétrage, allez dans le menu plugins –> protocole domotique –> domobase
Cliquez sur ajouter un équipement et rentrer son nom:
Voici la liste de tous les équipements :
Une fois que vous aurez choisi l’équipement prédéfini (par exemple : « Lumières ») et renseigné l’ID (correspond au numéro d’entrée ou sorti de la carte), cliquez sur « sauvegarder » et vous verrez apparaître toutes les commandes liées à l’équipement. Vous n’avez plus qu’à personnaliser (si besoin) vos commandes. Sauvegardez une dernière fois.
sur le dashboard, l’équipement « lumière » par défaut ressemble à ça :
Voici une petite vidéo rapide sur le fonctionnement des lumières dans Jeedom. J’ai mis un CD en bas de l’écran en guise de miroir pour voir l’extinction et l’allumage de la lumière de mon bureau.
Voici l’exemple pour les volets
Côté dashboard :
Les compteurs :
Côté dashboard :
Les électrovannes :
Côté dashboard :
Bien entendu, la force de Jeedom est de pouvoir tout rendre paramétrable même au niveau visuel. Je ne vous montre que le visuel par défaut de la domobase mais libre à vous de faire les modifications qui vous conviennent.
Conclusion
Ce billet vient clôturer 2 articles sur le projet de la domobase. Ce projet est un développement complet (de bout en bout), entièrement libre, afin de pouvoir piloter les éléments essentiels d’une maison.
Nous avons pu voir que si l’on souhaite piloter l’ensemble des lumières, les volets, les compteurs, etc… de sa maison, cela nécessite beaucoup d’ I/Os. Nous avons pu aussi remarquer que, tout faire en filaire (pour des raisons de fiabilité principalement) compliquait la tâche (surtout en rénovation) et se transforme vite en sac de nœuds dans le tableau électrique.
Tout ça pour dire que cette solution n’est pas parfaite (il n’en existe pas) et qu’elle nécessite surement des améliorations.
Cependant, cette solution fonctionne depuis 3 ans chez moi sans aucune panne matérielle. Au départ, j’avais ma propre plateforme domotique à la place de Jeedom; plus optimisé côté performance, mais en contre partie, très propriétaire à mon installation et nécessitant du développement à chaque modification. Je suis donc passé logiquement sur Jeedom qui fonctionne comme un charme sur une RaspberryPi 3 et qui permet de faire évoluer ma domotique ainsi qu’apporter de nouvelles fonctions en exploitant le travail de la communauté. Je ne maîtrise pas encore tous les rouages de la plateforme mais je pense que ça viendra avec le temps.
Enfin, le principal dans ce projet, c’est que nous nous sommes bien amusés (et en plus c’est super utile) et que nous avons été fier d’avoir tout (presque tout) fait soi-même.
Les articles précédents à relire:
1- Conception de la domobase
2 – Installation de la domobase
Bonjour,
Ce projet est tout simplement génial. Je suis complètement d’accord avec ton idée : il manque dans ce domaine une carte « tout-en-un » qui gère de nombreuses entrées/sorties filaires de différents types (1-wire, téléinfo, contact sec, relais, fil pilote, etc.). C’est vrai que la carte IPX800 fait le boulot mais il lui manque quelques protocoles. J’ai voulu aussi de mon côté développer ce type de carte mais ne connaissant pas grand chose en électronique, j’ai été refroidi par les devis reçus par les bureaux d’études (entre 3000€ et 5000€). Si cela t’intéresse, j’ai développé par contre une plateforme domotique sur le web (https://www.jdevops.com/smarthome/). J’y connecte des Raspberry qui font office de hub de mes objets connectés (zwave, arduino pour entrées/sorties avec relais, téléinfo, sondes 1wire, station météo filaire). L’application web est entièrement open-source et gratuite. Chacun peut y créer un compte.
Bonne continuation !