Carte d’interfaces pour la domotique – Jeedom

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.

domobase_jeedom

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 :

Protocole DOMOBASE v1.30.pdf

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

protocole_lumiere

 

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 »

jeedom_domobase_1

Cliquez ensuite sur l’icône :

jeedom_domobase_2

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 :

jeedom_domobase_equipements

jeedom_lumiere

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 :

jeedom_domobase_lumiere

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

jeedom_volet

Côté dashboard :

jeedom_domobase_volet_widget

Les compteurs :

jeedom_domobase_compteur_impulsion

Côté dashboard :

jeedom_compteur_widget

Les électrovannes :

jeedom_electrovannes

Côté dashboard :

jeedom_domobase_electrovanne_widget

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

 

Click to rate this post!
[Total: 8 Average: 4]

One comment

  1. 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 !

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.