Installation Domotique de Mark L M

Pourquoi la domotique ?

Autodidacte de nature, j’ai toujours eu un fort penchant pour le DIY (Do It Yourself). La domotique était il y a encore quelques années de l’ordre du fantasme, de par les contraintes technologiques et matérielles, et très peu accessible.

Les avancées technologiques permettent aujourd’hui d’ouvrir ce domaine aux initiés comme aux néophytes.

Ayant toujours été attiré par cela, mon parcours commence en mettant simplement en place un média center avec un Raspberry Pi, permettant l’accès à mes données dans toute la maison.

Mes objectifs initiaux

L’objectif initial de mon projet était de pouvoir surveiller la consommation énergétique de mon logement tout électrique et de m’y sensibiliser, dans un second temps de piloter la maison que je sois présent ou absent, et enfin de faire converger les différents systèmes chez moi (Domotique, XBMC, …)

Etant locataire, il me fallait une solution pouvant s’adapter à des installations existantes et bien évidemment sans travaux.

Quel matériel ?

Je disposais, avant mon projet, d’un NAS de stockage, d’un XBMC et d’une tablette pour piloter le tout et envoyer les médias à la télé.

Après m’être longuement documenté sur les différents protocoles, j’ai finalement opté pour le Z-Wave, et ce pour plusieurs raisons :

  • Grande variété de constructeurs et de modules disponibles
  • Protocole sans-fil
  • Beaucoup de logiciels disponibles et bien souvent open-source (Domoticz, Jeedom, …)
  • Grande communauté

Fervent adepte du DIY, et disposant d’un NAS, le choix de la box domotique m’était tout indiqué. J’ai donc recyclé ce dernier en y installant plusieurs machines virtuelles (Media, domotique, …)

Concernant la partie logicielle, très peu de produits répondaient à mes attentes, c’est donc tout naturellement que j’ai également opté pour une solution « custom » et clé en main.

Mon niveau de connaissances

Analyste-programmeur de formation et de métier, principalement avec les technologies DotNet de Microsoft, j’ai la chance d’avoir à ma disposition différents outils me permettant de créer un système robuste et fonctionnel.

Mon niveau de connaissance en domotique était cependant des plus sommaires. J’ai donc passé beaucoup de temps à me documenter sur le sujet, notamment sur le protocole Z-Wave, avant d’entamer la moindre action.

Mark1

Mon installation 

Avant l’arrivée de la domotique :

Louant une maison récente (2010) qui dispose de prises RJ45 dans chaque pièce, j’ai tout d’abord installé une baie dans mon garage (Box internet, switch gigabit) permettant de câbler le NAS ainsi que les 2 Raspberry pi (XBMC) et de tout centraliser.

L’installation est la suivante :

  • NAS : HP Proliant N54L (3*2To WD Red Edition en RAID5) + différentes machines virtuelles
  • Baie : Switch TPLink Gigabit + Fit-PC2 (Pour le download :D)
  • 2 * Raspberry Pi avec distribution RaspBMC pour le media center (Salon + chambre), dont la médiathèque est synchronisée via une base MySQL.
  • 2 * Galaxy Tab 3 pour contrôler le tout (Moi et madame) (Application Yatse que je recommande fortement au passage pour toute la partie XBMC)

Mark2

Mark3

Après l’arrivée de la domotique :

L’installation matérielle : (Environ 630€ soit 900€ hors réductions/soldes)

  • Contrôleur Z-Wave Z-Stick S2 (Aeon Labs)
  • Home Energy Meter : 2 pinces 200A (Aeon Labs)
  • 3 * AN157 : Prise ON/OFF (Everspring)
  • 3 * AN158 : Prise ON/OFF avec mesure d’énergie (Everspring)
  • Un répéteur (Aeon Labs) (Mon NAS est à l’étage et le Z-Wave a du mal à passer la dalle pour aller au RDC, j’étudie un nouvel emplacement)
  • 3 * AN145 : Douille ON/OFF (Everspring)
  • ST814 : Capteur de température/humidité (Everspring)
  • 3 * HSM02 : Capteur ouverture de porte (Everspring)
  • ST812 : Détecteur d’inondation
  • SF812 : Détecteur de fumée

Mark5

Mark6

Concernant la partie logicielle, elle se décompose en plusieurs parties :

Mark4

Schéma de principe

  • Un service .Net : En exploitation

Véritable cœur du système, en liaison directe avec le contrôleur grâce à la librairie Open-ZWave. Il permet de recevoir et d’émettre des messages Z-Wave stockés en file d’attente, effectue tous les traitements et le stockage en base de données (SQL Server) et communique avec le webservice.

Il permet également l’analyse en temps réel des paramètres de la maison (consommation, fin de cycle de la lessive, détection de fumée, inondation …) et averti l’utilisateur par notification mail et/ou Android, avec différents niveaux de priorités. (Exemple : La détection de fumées déclenche une notification sonore même si le téléphone est en silencieux)

Cette analyse permet également de gérer un moteur de règles et un agenda pour les scénarios (Branche en développement)

  • Un web service WCF : En exploitation

Permet à des applications tierces (Android, IOS) d’accéder aux données au format JSON ou XML, via requêtes HTTP (GET et SET : Consommation, état des modules, envoi de requêtes, …)  et communique avec le service .Net.

  • Exemple : Envoi d’une requête ON/OFF depuis le téléphone, qui est réceptionnée et traitée par le service. Enfin, une notification est envoyée quand le module a effectué l’action (Principe de l’Acknowledge)

Pour des raisons de sécurité, seul l’affichage des valeurs est accessible depuis l’url.

Mark7

L’envoi de requête (ex : ON/OFF) n’est possible qu’en encapsulant un objet par code dans l’application, car l’url n’autorise pas de paramètre :

http://MonServeur/WCFService/RestService.svc/json/SendMessage

En effet, la plupart des systèmes existants en interface web, permettent la saisie de valeurs dans l’url. Le point faible de cette méthode, est qu’elle autorise l’utilisateur à effectuer des actions comme :

http://MonServeur/json.htm?type=command&param=switchlight&idx=2&switchcmd=On

Je pourrais ainsi facilement éteindre la lampe dont l’Id est 2, au détriment du propriétaire. Méthode peu sécurisée (L’exemple est un url standard de Domoticz).

L’inconvénient de ma méthode est que je ne peux pas facilement, ou sans utiliser de script, allumer une lampe via une application tierce comme Tasker (Qui se base sur un url).

  • Une application Winforms, type client lourd : En cours de développement

Pour la gestion et l’administration, installée sur un PC.

Mark8

Mark9

Cette application me permet de suivre efficacement ma consommation électrique, de voir les différents postes de dépense (Coin TV, machine à laver, …) et d’y associer un prix, en fonction des périodes demandées (Année, mois, jour ou période sélectionnée)

Elle permet également la gestion des modules, leur configuration, ainsi que la gestion des scénarios.

  • Une application Android : En cours de développement

Permet le contrôle et une gestion basique du système. (Les grosses actions sont réservées à l’application Windows)

Des notifications sont envoyées en fonction de certaines actions, et de « l’état de santé » de la maison (Ex : détection de fumée)

Mark10

Mark11

Mark12

Évolutions envisagées

J’ai récemment acquis quelques tags NFC et un Kinect, j’envisage donc de coupler mon installation avec le projet SARAH. L’envoi de requêtes ON/OFF sera compliqué du fait de l’absence volontaire de valeurs dans mes url, mais je devrais m’en sortir par le biais d’un script ;=)

Les évolutions majeures en attente, et du fait que je ne suis pas propriétaire, sont principalement la gestion du chauffage, et l’ouverture des volets et fenêtres.

J’envisage également d’acheter quelques modules FIBARO (Wall Plug et Smoke detector) ainsi que la multiprise ON/OFF avec mesure d’énergie de chez AEON Labs quand elle sera disponible.

Concernant la partie logicielle, il reste beaucoup à faire, surtout sur la partie Android. Je souhaiterais disposer en finalité d’un tableau de bord réunissant la totalité des informations importantes sur un même écran sur la tablette.

Un point à ajouter à la partie administration sera de disposer d’une matrice affichant les routes du maillage de mon réseau, afin de comprendre plus en détails les quelques latences que je rencontre en fonction de l’emplacement des modules.

Si c’était à refaire

Mon retour d’expérience sur le sujet ne me fait pas regretter le choix de la technologie.

Si c’était à refaire … j’y passerais encore plus de temps ;=)

banner my domotique securite

Author: Pascal STEPHANY

Rédacteur en Chef du Blog Domotique Info, je suis avant tout un passionné de nouvelles technologies depuis de nombreuses années... Je partage mon expérience Domotique sur ce Blog depuis 2008 en réalisant des tests ou des tutos avec comme objectif, celui de rendre la Domotique accessible à tous... Après avoir travaillé en tant qu'installateur Domotique pendant 5 ans j'ai créé mon entreprise de vente en ligne My Domotique en 2012, une boutique spécialisée dans les solutions Domotique grand public.

Share This Post On

5 Comments

  1. Sympa!
    C’est quelque chose que j’ai bien envie de mettre en place dans mon prochain appart.
    Est-ce que tu avais regardé les mobiles services de Windows azure pour remplacer ton webservice ? Perso j’ai commencé et ca fait gagner un temps fou! Ca gère les notifications et la gestion des identités pour obliger un login via un compte Twitter, MS, Facebook ou Google (sans demander de code supplémentaire :)).

    Sinon pour l’appli mobile perso je serais parti sur du Windows aussi (je suis full MS pour mes devices…) pour réutiliser le même code que sur ton appli de gestion (application universelle Windows8/Windows Phone 8). Comme ca tu ne fait qu’un développement sur Pc et tablette/Phone :).

    Bon courage pour la suite de tes développements.

  2. Belle installation mais qui a du te demander un temps super important quoi que tu es développeur alors cela aide.
    J’aime beaucoup la partie gestion de la consommation.

  3. jolie, mais bon j’ai mais bon j’ai toujours du mal à associer domotique et windows (en fait j’ai du mal à associer windows avec quoi que ce soit :O ), ce qui me fait ne pas m’intéresser a SARAH aussi

    mais c’est un jolie projet que tu as éxécuté là

  4. C’est amusant, j’ai a peu prés le même profil et ai fait a peu près les mêmes choix.. ai aussi développé des pages/scripts pour interfacer mes besoins avec les possibilités offertes par les différents environnements :)
    Ici, le choix du z wave est totalement cohérent en tant que locataire !
    Je trouve le développement perso sous .Net très bien réalise, j’adore la vue de conso (http://domotique-info.fr/wp-content/uploads/2014/08/domotique-info-mark9.png)

  5. Merci pour vos commentaires ;=)

    Effectivement beaucoup de temps consacré dessus. Environ une année, étalée sur le peu de temps libre que j’ai, et il reste beaucoup à faire comme vous pouvez le constater. (Inconvénient de faire tout soit même :) )

    Pour l’environnement Windows, n’étant pas fin connaisseur de Linux ni très à l’aise, j’ai été au plus simple pour moi. Un OS connu, langages .net connus et les outils à disposition.

    Antoine J : Oui je connais les WebService Azure, mais je ne dispose plus de matériel « Full Microsoft ». J’ai eu une Surface RT pendant quelques temps mais à titre professionnel, la factorisation de l’application n’était pas possible du fait que j’utilise une tablette et un téléphone Android … j’ai donc décidé de faire une appli spécifique. (et ça m’a permis de me mettre un peu dans le sujet ;=) )
    Le choix de l’appli client lourd n’est pas sans conséquence comme tu l’as remarqué. J’aurais pu partir sur une interface full web (utilisable aussi sur le téléphone) mais je préfère une bonne application « Winforms » ;=)

Laisser un commentaire