Quelle architecture pour sa Domotique ?

Problématique

1_Building_A2

Voilà maintenant bientôt un an et demi que je me suis lancé dans la domotique. J’ai débuté avec SynoZwave, puis, très vite, j’ai fait l’acquisition d’une Vera Lite et ensuite d’une IPX800. L’objectif de ce billet est de prendre un peu de recul et de proposer une réflexion sur la façon d’architecturer sa domotique.

Selon moi, la domotique comporte principalement deux facettes.

  1. La première facette est l’IHM (Interface Homme Machine). L’IHM permet de piloter sa maison, depuis une interface plus ou moins centralisée, à partir d’un smarphone, d’une tablette, d’un navigateur Internet et tout cela que l’on soit sur place ou à distance. L’IHM permet, par exemple, de pouvoir redémarrer son chauffage avant de rentrer de vacances, de pouvoir activer son alarme à distance parce qu’on a oublié de l’activer en partant, de pouvoir désactiver son alarme et ouvrir son garage avec son téléphone parce qu’on a oublié ses clefs à la maison, etc.
  2. La seconde facette, que je qualifierais d’Intelligence, est constituée par un ensemble d’automatismes. Dans une box domotique, l’intelligence est généralement implémentée parce que l’on appelle des scénarios. Cette facette rassemble tout ce que la domotique peut faire automatiquement comme une gestion intelligente du chauffage, des luminaires, de l’arrosage, etc.

Critères de choix

critere

Le domaine d’application de la domotique est vaste. Au sens large du terme, la domotique concerne pratiquement tout ce qu’il y a d’électrique ou d’électrifiable dans la maison : les luminaires, les volets roulants, le portail, la porte de garage, l’arrosage, l’alarme, la surveillance, la télévision, le serveur multimédia, la climatisation, les mesures de consommation électrique, de consommation d’eau, etc. La domotique est un investissement conséquent, autant financièrement qu’en terme de temps passé pour tout faire fonctionner. Il est donc important pour pérenniser cet investissement de ne pas faire trop d’erreurs dans ses choix techniques et technologiques. Voici quelques critères pour obtenir une architecture robuste, flexible, polyvalente et durable.

  • Privilégier des solutions ouvertes de manière à permettre l’interopérabilité entre différents dispositifs. Une box doit par exemple disposer d’une API (Json, HTTP…). Un volet roulant doit avoir une commande filaire ou fonctionner avec un protocole radio relativement ouvert. C’est le cas des volets Somfy qui fonctionnent avec le protocole RTS (pilotable avec une interface RFXCOM par exemple). Ce n’est pas le cas des volets Velux qui constituent un véritable enfer pour la domotique.
  • Privilégier des solutions non propriétaires et locales pour la pérennité. Par exemple, en investissant dans des périphériques câblés (de type contact sec) ou non câblé comme le Z-Wave, on prend peu de risque de se retrouver enfermé avec un contrôleur donné, voire dans une impasse totale si la solution n’est plus maintenue/commercialisée. Au niveau des box domotiques sans fil, choisir une solution locale réduit considérablement le choix : Fibaro ou Vera. Mais des solutions libres commencent à émerger (Jeedom, Domoticz).
  • Privilégier des modules autonomes (qui peuvent fonctionner tout seul) et spécialisés (qui font peu de choses mais bien) plutôt qu’une solution tout intégrée. Par exemple, je suis partisan de dissocier la box domotique, la centrale d’alarme, et le serveur multimédia plutôt que de tout concentrer sur un seul système. Les avantages sont multiples :
    • Chacun des modules est plus simple à maintenir
    • On peut intervenir sur un module pendant que les autres fonctionnent
    • On peut faire évoluer progressivement ses modules
    • Le plantage d’un module n’entraîne pas le plantage de tout le système

Quel matériel pour instancier ces critères ?

Le-choix

Voici les choix concrets que j’ai faits concernant le matériel. Il s’agit de choix personnels adaptés autant que possible aux critères énumérés dans la section précédente. Il ne s’agit aucunement des meilleurs choix dans l’absolu. Ces choix ne sont pas du tout pertinents si vos critères sont différents comme, par exemple, si votre objectif est d’avoir une solution simple, intégrée, ou clef en main.

Domotique sans fil : Z-Wave et Vera Lite

Pour le protocole sans fil, j’ai fait le choix du Z-Wave et pour la box associée, j’ai choisi la Vera Lite. Ces choix correspondent bien aux critères de la section précédente et sont détaillés dans ce billet. Pour le moment, je ne regrette pas la box de Fibaro, d’autant plus que je m’attelle à sortir l’intelligence de la box (cf. section suivante) pour n’utiliser la Vera Lite que comme une simple passerelle Z-Wave.

Domotique cablée : IPX800

La partie filaire est gérée par une IPX800. Bien que j’observe régulièrement des bugs dans l’API de l’IPX800, la partie filaire de ma domotique est bien plus fiable (cf. le billet sur la galère du Z-Wave) que la partie Z-Wave. Donc, dès que c’est possible, je privilégie une solution câblée à une solution Z-Wave

Système d’alarme : centrale MyFox

Pour l’alarme, j’ai hésité entre une solution Z-Wave et une centrale dédiée. J’ai finalement opté pour une centrale dédiée et ne regrette absolument pas ce choix qui s’inscrit dans « privilégier des modules autonomes et spécialisés ». Ainsi, quand la partie domotique est inopérante pour raison de maintenance, ou essuie un plantage sévère, je peux toujours quitter la maison en activant l’alarme. De plus, la solution est plus simple à mettre en œuvre et plus sûre. Mon choix s’est porté sur la centrale MyFox. Les impératifs concernant ce choix étaient une alarme connectée (pilotable à distance) et ouverte (API pour l’interopérabilité avec le reste de la domotique). À ma connaissance, l’alarme MyFox était la seule répondant à ce cahier des charges. Hélas, ce n’est pas une solution locale (on est dépendant des serveurs de la société) et elle est propriétaire (son écosystème n’est pas standard).

Multimedia, stockage, serveur web… : NAS Synology

Synology est une marque connue et renommée pour la qualité de ses NAS. Rien à redire, le matériel est au top. C’est d’ailleurs lui qui héberge josDBlog actuellement. Le NAS remplit des objectifs sensibles dans notre maison (multimedia, stockage, serveur web…). Sa fiabilité est une caractéristique très importante et il concentre déjà bien assez de responsabilités. Inutile d’en rajouter : pas de SynoZwave, de Domogik ou de Domoticz sur le NAS (« privilégier des modules autonomes et spécialisés »).

Surveillance : Camera IP

Le choix est vaste, il faut éviter les solutions propriétaires (comme MyFox par exemple) et bien vérifier la compatibilité avec la norme ONVIF. Mon choix s’est porté sur des modèles D-Link que je trouve cependant trop chers. Ma tentative avec un modèle bon marché a été un fiasco.

Libérez l’intelligence de votre domotique !

Se-liberer

Comme je l’ai déjà dit au début de ce billet, l’intelligence de la domotique est généralement implémentée parce que l’on appelle des scénarios. C’est probablement le meilleur moyen pour un utilisateur lambda. Mais si écrire quelques lignes de code ne vous effraie pas, fuyez les scénarios pour plusieurs raisons :

  • Ils ne sont pas du tout adaptés à des automatismes complexes
  • Ils sont très difficiles à maintenir et ne permettent pas une vue globale de l’ensemble des automatismes
  • L’exclusion puis la ré-inclusion d’un module contraint à revoir tous les scénarios le concernant, ce qui peut vite devenir un vrai cauchemar
  • Ils ne sont pas portables (d’une box à une autre par exemple)

J’irai même plus loin : je pense qu’il faut complètement sortir l’intelligence de la box domotique. Cela veut dire qu’elle doit fonctionner sur un autre support (« Privilégier des modules autonomes et spécialisés »). Les bénéfices et la liberté apportés par une telle stratégie sont importants :

  • Le code développé devient ainsi beaucoup moins dépendant de la box (« solutions non propriétaires et locales pour la pérennité »). Cette stratégie rend le changement de box bien plus aisé.
  • Il devient plus facile de développer proprement (en utilisant des librairies ou des modules).
  • Il devient possible de développer dans le langage de son choix et en installant les librairies de son choix.

Proposition d’architecture

architecture2

Le schéma ci-dessus illustre l’architecture vers laquelle je m’oriente actuellement. Ce schéma montre bien les trois écosystèmes de modules domotique qui cohabitent : les modules Z-Wave, les modules câblés et les modules MyFox. On pourrait très bien ajouter d’autres technologies (EnOcean, RF 433MHz…).

Ce schéma distingue bien les principaux niveaux qui composent cette architecture :

  • L’IHM, personnellement, j’utilise actuellement Imperihome
  • Les contrôleurs (qui ne doivent servir que de passerelle vers leur technologie associée)
  • Les autres dispositifs IP qui composent le système (NAS, Caméras IP, Box Internet…)
  • L’intelligence qui permet de programmer tous les automatismes et de coordonner tout ce beau petit monde

Les éléments constitutifs de ces niveaux communiquent grâce à leur connexion réseau (WiFi ou Ethernet). Sur le schéma, je n’ai fait apparaître que les connexions matérialisant les principaux flux entre les niveaux.

Je pense que cette architecture permet de concevoir un ensemble modulaire, flexible, robuste et constitue un gage de pérennité. Ces choix permettent enfin de concentrer son effort de développement sur la partie qui me paraît la plus importante et la plus intéressante : l’intelligence de sa domotique.

Remarque sur l’IHM : GuiguiAbloc, que je salue chaleureusement en passant, m’a fait remarqué « […] l’IHM est mal positionnée. Elle doit discuter avec le cerveau, pas avec une box […] ». Il a totalement raison. Pour le moment, ce choix est dicté par une raison toute simple, je ne souhaite pas investir du temps dans l’IHM et me satisfait d’Imperihome qui offre un rapport qualité/coût en temps excellent. Mais il est clair qu’à terme, pour avoir une IHM plus élaborée, l’IHM doit dialoguer avec l’Intelligence et pas avec les contrôleurs.

Remarque sur l’IHM (Suite) : J’ai implémenté dans le « cerveau » (baptisé Eloise depuis), l’ImperiHome Standard System API. Cela me permet de faire dialoguer l’IHM directement avec Eloise sans avoir à développer ma propre IHM. C’est magique car je peux maintenant désinstaller et réinstaller des modules sans avoir à faire de retouche dans ImperiHome. Je bénéficie même des graphiques d’ImperiHome qui ne fonctionnaient pas lorsqu’ImperiHome dialoguait directement avec la Vera. Le graphique présenté ci-dessus tient compte de cette mise-à-jour (l’ancien est accessible ici).

Externaliser l’intelligence de sa domotique

Comment externaliser l’intelligence de sa domotique ?

  • Il faut un environnement capable de recevoir des requêtes HTTP. En fait, il faut retrouver l’équivalent du handler (luup.register_handler) du langage Luup de la Vera Lite.
  • Il faut un environnement qui permette la mise en place de timers pour exécuter des fonctions à des moments prédéfinis. En fait, il faut retrouver l’équivalent des fonctions call_delay et call_timer du langage Luup de la Vera Lite.

Je m’attelle actuellement à la tâche de libérer mes 4000 lignes de code Luup de la Vera Lite. Voici quelques pistes que j’ai suivies pour avancer dans cette tâche :

  • L’intelligence de la domotique sera implémentée sur un Raspberry pi (solution économe, souple et très ouverte)
  • Je vais rester sur le langage Lua que je trouve très élégant et très adapté à un hardware léger
  • Pour recevoir des requêtes HTTP j’ai choisi de mettre en œuvre le serveur web WSAPI-Xavante
  • Pour les timers, je me suis inspiré de cron.lua
  • Micasaverde propose un guide très complet pour implémenter le Polling de sa Vera

Informations et sources

Sommaire Domotique sur ce blog

Cette entrée a été publiée dans Domotique, Réflexions, Contrôleurs, Eloise. Placez un signet sur le permalien.

8 Responses to Quelle architecture pour sa Domotique ?

  1. Arnaud dit :

    Bjr,
    Je vais emménager dans ma nouvelle maison d’ici quelques semaines. J’ai fait le choix dès le départ de mettre en place en place un vrai réseau informatique avec un câblage ethernet généralisé à toutes les pièces et un emplacement central pour un serveur et autre switch.
    Pour ma domotique, après avoir exploré les différents protocoles existants, j’ai décidé de tout faire en zwave qui économise le coup d’installation du réseau filaire, est évolutif et semble fiable. Je veux pouvoir tout contrôler à partir d’un seul centre névralgique.
    Pour m’entraîner, j’ai très vite acheté quelques modules ainsi qu’une VeraLite… et je bloque. Certains modules ne veulent pas être détectés (notamment une télécommande, essentiel à mon future système) et je n’arrive pas à comprendre exactement l’articulation entre les différents modules et les événements qu’ils déclenchent. Ayant écrit quelques centaines/milliers de lignes de code dans mon jeune temps (notamment en VBA) , je croyais m’y retrouver aisément. Erreur: l’absence de doc complète et pédagogique ne m’aide pas. En d’autres termes, j’ai vécu ce que vous avez nommé la « galère du zwave. »
    Je ne renonce cependant pas et je veux encore utiliser zwave pour ma domotique (dans sa nouvelle version +) Devant l’UI assez peu explicite de ma VeraLite, je me suis dit que je vais passer à domoticz que tout le monde encense… jusqu’à que je lise votre post peu encourageant. (Je l’ai déjà compilé/installé sur un vieux portable sous Lubuntu pour faire joujou et son interface me plait.)
    Bref, je ne sais plus quoi faire: ma VeraLite à l’UI que je trouve si peu clair? Domoticz (sur mon serveur ou un RP2) qui est d’après vous encore en Béta?
    Quand je rajoute à cela que j’ai lu sur un autre forum qu’il est très facile de brouiller un réseau zwave pour le rendre inopérant comme système d’alarme…
    Je ne sais donc plus à quel saint me vouer.
    Que feriez-vous dans ma position?
    Merci

    • Laurent dit :

      Bonjour,

      Le câblage ethernet est une bonne chose et vous facilitera la tâche (box, camera, ordinateurs) car le Wifi n’est pas très stable et, selon mon expérience, ne doit être utilisé qu’en appoint.

      Au niveau du Z-Wave, c’est une petite galère et il faut procéder vraiment pas à pas : installer un module, le faire fonctionner avant de passer à un autre. Mieux vaut donc s’équiper progressivement.
      Les modules les plus galère et les plus instables sont clairement les modules sur pile.
      J’ai laissé tombé, pour le moment, ma télécommande. L’essentiel de ma domotique consiste à automatiser au maximum, pour les interventions manuelles, j’utilise les téléphones portable et les tablettes avec Imperihome.

      Domoticz m’a plutôt laissé une bonne impression (j’ai aussi bien aimé l’interface). Mon test n’était pas concluant, mais il portait sur son utilisation en tant que contrôleur secondaire. Il fonctionne probablement bien mieux en contrôleur principal.
      Pour le moment, je reste sur la Vera Lite que j’ai passée en UI7.

      J’ai fait le choix de ne pas baser mon alarme sur du Z-Wave et je ne regrette absolument pas ce choix, bien au contraire !
      La domotique est un truc qu’on bidouille pas mal, qui est parfois en rade pendant plusieurs jours (grosse mise à jour, changement de système…) et qui n’est au final pas suffisamment fiable pour de l’alarme. C’est pourquoi j’ai opté pour une centrale connectée (MyFox). J’en suis très contant et elle s’intègre bien avec la domotique. La domotique vient en outre compléter le système Myfox avec quelques capteurs supplémentaires (Z-Wave mais aussi IPX800) capables de faire sonner la centrale MyFox et de la synthèse vocale pour avertir des armements/désarmement. Cependant, l’essentiel de l’alarme est fonctionnel même quand la domotique est en rade.

      Voila, je ne sais pas si ce retour d’expérience vous sera utile.

      Cordialement, Laurent

  2. Arnaud dit :

    Merci beaucoup pour cette réponse rapide et instructive.
    Je crois que je vais oublié la VeraLite (quelqu’un sera peut être désireux de me la racheter à vil prix!) et passer directement à Domoticz. pour ma domotique. Celle-ci devra contrôler à terme tous mes volets roulants (22!), un certain nombre de lumière dans les lieux de passage, le chauffage, et si possible la serrure de la porte d’entrée.
    De là inclure l’alarme et la sécurité, il n’y avait qu’un pas… que je n’ose plus franchir maintenant.
    A ce stade, pour éviter la multiplication des protocoles, j’envisage du zwave avec un certain nombre de doublon en filaire directement connecté sur un RP2 ou autre serveur. (il se trouve que l’endroit ou il sera logé sera exactement dans un lieu de passage obligatoire au centre de la maison mais juste derrière plusieurs murs extérieurs.) j’y brancherai des détecteurs de proximité et d’incendie et une ou deux cameras. Tout ceci devant complémenter les modules de détections et de contrôle zwave qui pourront ainsi tomber en rade tout en gardant un niveau de contrôle et de sécurité minimal.
    Qu’en pensez-vous?
    D’autre part est-ce que domoticz peut inclure du filaire (via le GPIO d’un RP notamment) dans son écosystème?
    Encore merci pour vos conseils et votre blog que je trouve très « down-to-earth. »

    • Laurent dit :

      Gardez votre Vera Lite sous le coude un moment le temps de voir si Domoticz est bien viable ou pas.Personnellement, j’aime bien la Vera Lite.

      Les modules volets roulants sont alimentés et non sur pile, donc je leur ferai confiance. Reste à choisir entre Qubino et Fibaro. Vu le nombre de volets, mieux vaut en acheter un Qubino et un Fibaro, les tester et vous faire la main avant d’en acheter 22 !

      Pour le filaire (très fiable, j’en suis très contant), je vous conseille une IPX800 (8 entrées tout ou rien, 4 entrées analogiques et 8 sorties sur relais).
      Il existe des extensions pour ajouter 8 entrées et 8 sorties. Cela s’interface plutôt bien avec la Vera Lite et probablement Domoticz afin d’avoir un système unifié.
      L’IPX800 possède un protocole http et une API, donc on peut l’interfacer avec tout système domotique capable d’envoyer/recevoir des requêtes http.
      Je ne connais pas assez Domoticz pour répondre.

      • Arnaud dit :

        En fait, j’ai un peu explorer le site de domoticz. Celui-ci peut traiter directement le Piface sur un RP. (4 ou 8 relais) Du coup, je me dit que je pourrais aussi piloter en filaire mon plancher chauffant via ces relais (les collecteurs ne sont pas loin.) combiner à des sondes de température 1 fil. Pour la sécurité: une sirène filaire sur un des relais. associer à 2 ou 3 détecteurs de mouvement (radar pour couvrir une surface plus grande à travers les cloisons ?) en filaire également sur le GPIO. mon onduleur ou un système 12V ad hoc. une Picam cachée. Et je suis paré pour les coupures d’électricité et autres velléité de brouillages du zwave.
        le zwave serait réservé au confort (commande volets roulants et porte d’entrée), allumage automatique des lumières à l’intérieur comme à l’extérieur; et à la première ligne de défense (capteurs d’ouverture, détecteurs de mouvement PIR).
        le RP pourrait peut-être aussi servir pour un troisième niveau de backup de mes données du serveur sur un DD.
        Qu’en pensez-vous?

        • Laurent dit :
          Cela me semble un joli programme avec pas mal de développement et de travail en perspective (ce n’est pas une critique, j’en fait aussi énormément de mon côté).
          Je trouve plutôt sein de cantonner le ZWave au confort.
          Si vous en avez les moyens ou (inclusif) une compagne pas très portée sur le « bricolage », je pense qu’une solution de sécurité (alarme) dédiée fonctionnant « out of the box » est préférable.
  3. Jean-Luc dit :

    En parcourant votre page j’ai apprécié la clarté de vos explications, et la concordance de certains de vos points de vue avec les miens.
    Technicien depuis toujours, j’ai moi aussi mené ma propre réflexion sur le sujet, à l’occasion du projet de construction de ma maison (2004-2008), pour lequel j’ai assumé le rôle de maitre d’œuvre.
    Je me permets de vous livrer ici mon analyse personnelle.

    Je suis parti du principe qu’une maison est construite pour durer, et qu’il faut que ses équipements de commandes électrique le soient aussi. Mon expérience dans les domaines de l’électricité et de l’électronique, me permet d’affirmer que plus on rajoute de fonctionnalités sophistiquées et de modules électroniques, moins l’installation électrique est fiable, et moins elle dure dans le temps.

    J’ai déterminé cinq critères, ceux-ci ont guidé mes choix tout au long de mon projet.
    Appliqués ensembles, ils constituent pour moi, un véritable luxe.
    Ils sont :

    – Une maison agréable à vivre
    – Des systèmes de commande fiables et durables
    – Un minimum d’ondes
    – Un minimum de courants en veille
    – Un minimum de piles

    Par rapport aux ondes, il m’est paru évident d’installer un réseau informatique filaire évitant ainsi le wifi.

    Lorsque l’on construit une maison celle-ci doit être agréable à vivre, et pour être agréable à vivre elle doit être pratique. Par rapport à l’électricité, le choix des emplacements des interrupteurs, des prises de courant, des éclairages peut influencer cet aspect, il convient donc de s’y attarder. Il peut être également intéressant de prévoir une prise 220V, installée à proximité de l’espace télévision et commandée par un simple interrupteur, elle permettra de couper en même temps les appareils multimédia de cette zone, évitant ainsi les courants en veille.

    A un moment je me suis intéressé à la façon de piloter les volets roulants, ceci constitue à la mon avis la partie la plus importante de l’automatisation d’une maison.

    Les solutions proposées de type sans fil, dont les moteurs sont en veille 24 heures sur 24, et dont leurs interrupteurs de commandes locales sont en fait des transmetteurs radio avec des piles ne me convenaient pas. J’ai donc fait le choix de faire installer des volets roulants équipés de moteurs de type filaire avec des fins de course mécanique, ceux qui sont en fait les plus fiables et les moins chers.
    Ayant prévu l’installation de 17 volets 220V je vois bien l’intérêt de pouvoir en commander plusieurs en même temps. Les autres systèmes de commande par micromodules installés dans les boitiers de commandes locales des volets ne me conviennent pas non plus.
    En fait je veux de vrais interrupteurs et pas le module électronique dans leur boitier.
    J’avais également prévu l’installation de 7 volets roulants Vélux de type SML. La commande de ceux-ci par radio ne m’intéressant pas pour les mêmes raisons que les volets 220V, j’opte pour la commande filaire par inversion de polarité.
    Je détermine les groupes de volets, avec une zone jour, une zone nuit, et une zone fenêtres de toit. Chacune de ces zones devra être commandée par de simples poussoirs, au rez-de-chaussée et à l’étage, évidemment chaque volet reste manœuvrable localement.
    Là où l’affaire se complique c’est que dans l’une des chambres qui appartient à la zone nuit, il y a un volet 220V alternatif et un volet de fenêtre de toit en 24V continu.

    A ce moment je perçois bien que commander tout cela avec de simples interrupteurs n’est pas très naturel, et si je rajoute que tous les volets et leurs systèmes de commandes doivent consommer en veille zéro watt, là c’est clair, rien n’existe sur le marché.

    J’ai donc imaginé ma propre solution. Dans celle-ci des centrales de commandes sont raccordées aux interrupteurs et aux moteurs avec des fils, sans électronique.
    Les centrales de commandes sont constituées essentiellement de relais, ceci leurs permettra de durer des dizaines d’années, d’être réparables, et par une autre personne que moi, ensuite, pas de programmation, pas d’onde, pas de pile, et consommation au repos : zéro.

    Mes centrales de commandes sont pilotées par des interrupteurs, offrant ainsi un système ouvert, où n’importe quel automate maison peut s’y raccorder, rendant possible les commandes à distance par mobiles ou tablettes.
    Personnellement j’ai préféré construire ma propre centrale de commandes à distance. Elle me permet de piloter par SMS les volets roulants, le chauffage, un éclairage extérieur, d’être renseigné sur la température et les coupures secteur.

    Pour l’alarme, je conseille un système à part et de type filaire, toujours pour éviter les ondes, c’est ce que j’ai prévu pour moi.

    J’espère que vous aurez trouvé un intérêt à me lire, voici l’adresse de mon site si vous souhaitez avoir plus de détails : http://www.arnault-daive.com

    • Laurent dit :
      Merci beaucoup d’avoir pris le temps d’écrire ce long commentaire très instructif ! Je partage en effet votre avis sur de nombreux points. Vous avez 100% raison concernant vos volets. Je n’ai malheureusement pas pu n’adopter que des solutions filaire ayant acheté une maison existante et m’équipant au fil de l’eau…

Laisser un commentaire

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