Domotique

L’Arobase : une maison intelligente

Au fil des conversations sur les forums, ou même avec des collègues au boulot, je me suis rendu compte que pour beaucoup de monde, le mot « domotique » signifiait « télécommander » les appareils de sa maison. C’est une bien piètre description…

Certes, on peut agir sur les lumières et sur les volets à distance, en appuyant sur un bouton d’une zappette ou avec une application sur smartphone comme dans la pub à la TV. C’est intéressant, c’est confortable, mais ça n’apporte pas une grande différence avec le fait de se lever et d’appuyer sur le bouton au mur. La seule valeur ajoutée est l’action à distance en cas d’oubli.

Pour être plus juste, la domotique est un ensemble de systèmes qui vont agir sur les lampes, les volets et les appareils en fonction d’événements et d’états extérieurs. Elle va permettre, par exemple:

  • De régler au mieux son chauffage (vous savez, cette chambre qui n’a pas chauffé parce qu’il faisait chaud dans la pièce où se trouve le thermostat, que celui qui n’a jamais connu ça me jette la première pierre).
  • De gérer au mieux la température en été en jouant sur l’ensoleillement avec les volets ou avec des lames brises-soleil.
  • De gérer des ambiances lumineuses en fonction des actions des occupants (quand le téléphone sonne, allumer la lumière du salon à 30% et mettre le film en « pause »).
  • Poster des messages amusants et informatifs sur Twitter et Facebook.

En bref, l’habitat devient actif et réactif, il en serait presque intelligent.

Alors, c’est bien beau de parler de domotique, d’objets communicants ou d’interactions… Mais concrètement, elle fait quoi exactement, aujourd’hui, notre maison ?
Pas mal de membres de différents forums (foras ?) demandent souvent si on a des exemples de ce qu’on fait avec nos systèmes ou si on a des idées à proposer.

Dans cet article (qui sera long, très long, vous être prévenus), je vais lister les appareils domotiques installés et en décrire les fonctions. Je vais aussi tenter d’expliquer les états et les actions domotiques que j’ai mis en place. C’est un état des lieux à l’instant « t » puisque l’ensemble est en constante évolution au gré des idées et des besoins.

Pour conclure, je m’étendrai sur ce que je pense ou voudrais intégrer par la suite.

I. Les appareils domotiques

Attaquons le vif du sujet avec les appareils installés.

I.a. Les acteurs

La maison est équipée d’une box, la Vera 3 de Micasaverde. C’est le centre de contrôle, le « cerveau » domotique, qui gère les scénarios et qui pilote les modules. J’en ai parlé il y a longtemps lorsque je cherchais le protocole domotique que j’allais implanter. Cette box est un petit serveur qui tourne sous un linux spécifique accessible depuis le réseau local (les ordinateurs de la maison) et depuis n’importe quel appareil connecté à Internet via le cloud de Micasaverde (ordinateur, smartphone, tablette). La box peut faire des actions selon des événements (un volet change de position, un capteur de mouvement a détecté quelque chose), selon une programmation régulière (toutes les heures, toutes les 5 minutes, tous les jours à 6:15, au coucher du soleil) ou sur un déclenchement manuel via l’interface ou via une application sur smartphone. On peut lui causer en requêtes HTTP, soit en attaquant l’adresse LAN quand on est sur le réseau local, soit via le cloud de micasaverde quand on est déconnecté du réseau de la maison (y’a une manip’ à faire mais elle n’est pas compliquée, même Tasker sait faire, c’est vous dire…).
Son autre gros atout est qu’elle sait fonctionner en local si l’ADSL est coupé (OK, y’a plus du tout d’infos venant de l’extérieur, mais les automatismes qui n’en n’ont pas besoin restent fonctionnels) et il n’y a aucun abonnement mensuel à payer.

IMG_20130706_111017.jpgfibaro_dimmer.jpgfibaro_relay_switch_2x15kw.jpgfibaro_roller_shutter.jpgfibaro_switch_2.jpg

Les interrupteurs sont équipés de micro-modules Z-Wave qui dialoguent avec la box par ondes radio. Ces modules viennent s’intercaler entre le bouton de l’interrupteur et les câbles qui vont jusqu’à la lampe. Aujourd’hui, chaque interrupteur de lumière est équipé, sauf dans le cellier et le garage qui ne sont pas encore tout à fait finis. Ces modules sont des variateurs (Fibaro FGD-211), c’est-à-dire qu’on peut allumer la lumière à n’importe quel pourcentage depuis la box domotique. Par contre, on ne peut pas faire varier l’intensité via l’interrupteur mural. C’est parce que je ne les ai pas changés, il aurait fallu des interrupteurs poussoirs, et donc installer des télérupteurs dans le tableau électrique dés le début. Sans domotique, le surcoût ne se justifie pas. Cela dit, on trouve des ressorts à ajouter aux interrupteurs Schneider installés ici pour les transformer en poussoir. Je ne sais pas si c’est réversible et dans le doute, j’ai pas cherché plus loin.

Le ventilateur de la chambre a aussi été câblé directement sur un interrupteur on/off (Fibaro FGS-211). Je perds la sélection de vitesse (toujours à pleine vitesse) et je gagne le pilotage.

Les interrupteurs des volets sont aussi équipés mais je me suis fait avoir car les moteurs (des Somfy) ne sont pas complètement compatibles avec les modules que j’utilise (Fibaro FGR-221). Je ne peux pas positionner les volets à un pourcentage d’ouverture précis, je ne peux que les ouvrir et les fermer. Une histoire de butées électroniques. Les modules fonctionnent par détection d’intensité dans les fils « montée » et « descente » du moteur, ça fonctionne très bien si ces fils sont directement reliés au moteur et qu’il s’arrête sur fin de course mécanique (des taquets ou des poussoirs). L’inconvénient de cette solution, c’est que lorsqu’il y a un obstacle (le bras d’un enfant ou un taquet de fin de course), le moteur est bloqué. Il force un peu et monte en intensité. Il est coupé si la sur-intensité dépasse un certain seuil, mais entre le blocage et la détection, les fils chauffent et pendant ce temps, le volet continue de mâchouiller l’obstacle. Et ça peut très vite beaucoup chauffer… Chez Somfy, on ne fait plus ça. Les fils sont reliés à une carte électronique qui s’occupe de gérer la course et la sur-intensité (soit par comptage des tours, soit par fins de course mécaniques, soit par obstacle). Il n’y a quasiment pas de courant dans les câbles qui ne sont que des fils de commande, les modules Fibaro ne détectent rien. Pari perdu… Par contre, le seuil de sur-intensité peut être fortement abaissé (il n’y a presque pas de longueur entre la carte électronique et le moteur) et donc, le moteur se coupe tout de suite sans forcer (ou à peine) quand un enfant se coince le bras. D’ailleurs ici, si le volet rencontre un obstacle alors que la course n’est pas complète, il repart instantanément vers le haut pour libérer le pauvre petit bras meurtri. C’est bien pratique. J’ai essayé, ça fonctionne bien, même pas mal. Il existe depuis mi 2014 une variante du micro-module Fibaro FGR-221 pour volet roulants à commande électronique, et qui résoudrait mon problème. Il s’agit du FGRM-221. Cela dit, ces modules sont tout de même à environ 60€ pièce, leur remplacement n’est pas la priorité.

Les lumières, le ventilateur et les volets sont donc pilotables par la box et au mur. Le premier avantage de ces modules est que la manœuvre manuelle de l’interrupteur agit sur le point électrique commandé (c’est le minimum), mais ça fonctionne aussi en cas de dysfonctionnement de la box domotique. Le second avantage est qu’ils remontent à la box chaque changement d’état : elle sait si la lampe est allumée ou éteinte, si le volet est ouvert ou fermé, et ainsi de suite.

Enfin, on peut associer les modules entre eux, directement, sans que le fonctionnement ne soit lié à la box. Attention, l’association elle-même nécessite la box pour envoyer la configuration, mais une fois configurés, les modules sont autonomes. Du coup, deux ampoules éloignées avec des interrupteurs différents peuvent être synchronisées, on peut réaliser un va-et-vient virtuel.

evr_an1573_1.jpg

J’ai installé une prise commandée Z-Wave on/off (Everspring AN157-6) pour alimenter une fontaine à eau pour que Grenouille (notre chienne) puisse boire sans que Josia (notre chatte) ne joue constamment avec la gamelle d’eau. J’en ai pré-installé une autre pour alimenter deux rubans à LED qui seront installés sous les éléments du haut de la cuisine. Elle est directement associée à la seconde entrée du module de la lampe de la cuisine (et j’ai remplacé l’interrupteur simple par un interrupteur double).
Je n’ai pas voulu directement équiper les prises de courant car une prise sert souvent à beaucoup de choses, son rôle peut être amené à changer avec le temps. La prise Z-Wave se branche dans la prise de courant, comme n’importe quel appareil qu’on branche au mur. On peut facilement la déplacer si besoin. Bizarrement, elle ne remonte pas son état instantanément si elle est pilotée par association; je ne sais pas si c’est lié au modèle utilisé ou s’il s’agit d’un bug lié à l’association.

IMG_20130629_145658.jpg

Enfin, j’ai intégré au système une télécommande Z-Wave (Qees myKey) qui est capable de piloter 4 appareils et de lancer 4 scénarios différents. Elle commande (entre autres) la prise qui alimente la fontaine (via une association directe entre la zapette et une des prise AN157-6), ce qui nous évite de galoper pour brancher la prise de la fontaine quand Grenouille a soif. Elle commande l’autre prise pour les rubans à LED et quelques scénarios, on verra ça plus bas. Enfin, elle a été couplée à deux scénarios qui « disent » « oui » ou « non » et pareil, j’en parle plus bas.

I.b. Les capteurs

evr_hsm02_1.jpg

Chaque fenêtre a un capteur d’ouverture (Everspring HSM-02) à interrupteur reed. C’est un petit interrupteur qui se ferme lorsqu’il est à proximité d’un aimant. On place l’interrupteur sur un battant de la fenêtre et on place l’aimant sur l’autre battant. La box est ainsi au courant de l’état ouvert ou fermé de toutes les fenêtres.

3974.jpg

Il y a des capteurs de mouvement 4 en 1 (Aeon Labs Multisensor) à des emplacements stratégiques qui en plus de remonter l’info d’un mouvement, informent régulièrement la box de la température, de l’humidité et de la luminosité de l’endroit où ils sont installés. Comme ils sont placés en hauteur, la température n’est pas forcément très fiable. Les emplacements stratégiques sont dédiés au mouvement, et donc pas spécialement efficaces quand il s’agit de mesurer la régulation de l’humidité ou du chauffage. Le concept 4 en 1 est intéressant mais finalement peu utile. Seul le gain sur le coût est appréciable puisque ce capteur 4 en 1 coûte beaucoup moins cher que 4 capteurs dédiés.

everspring-detecteur-de-fumee-sf812.jpg

Il y a un détecteur de fumée (Everspring SF-812) dans le couloir des chambres. Il sera obligatoire d’en avoir un au plus tard le 8 mars 2015, et ça peut servir en cas d’incendie… Bref, c’est utile et ça gueule en cas de fumée sous son petit capteur. Il sort 110 dB, j’ai testé, ça gueule. Ça gueule vraiment… A installer dans un lieu de circulation d’air, loin des fumées de cuisson et des vapeurs de douche.

everspring-micromodule-emetteur-z-wave-hac01.jpg

J’ai trafiqué une lampe extérieure avec détecteur de mouvement intégré pour séparer les deux fonctions (lumière et détection). La box est au courant quand il y a du mouvement à proximité de la porte d’entrée. On peut aussi éteindre la lumière manuellement sans pour autant couper l’alimentation du capteur. Il y avait plein de solutions pour faire ça : sacrifier un Fibaro FGS-211 ou un FGD-211, utiliser la deuxième entrée du FGD-211 de la lampe, etc, etc. Je ne pouvais pas me résigner à sacrifier un Fibaro pour « seulement » détecter un mouvement, solution écartée pour moi. La deuxième entrée du FGD-211 est très mal gérée par la Vera. L’association directe fonctionne, mais l’exécution de scène semble poser beaucoup de problèmes sur le forum micasaverde. J’ai donc écarté cette solution aussi. J’ai finalement utilisé un Everspring HAC-01 après avoir soudé un relai à bobine 220V sur la sortie du détecteur pour la convertir en contact sec.

aeon-labs-hem3-smart-energy-sensor-mesure-consommation-compteur-pinces-amperemetriques-domotique-zwave.jpg

Il y a enfin un capteur de consommation électrique à pinces ampèremétriques (Aeon Labs HEM-03). Il possède 3 pinces que j’ai réparti avec une pince sur l’arrivée EDF pour voir la conso totale, une sur toutes les phases des radiateurs à la fois et la dernière sur la phase du cumulus. L’appareil remonte la puissance instantanée et la consommation cumulée de chaque pince. Ça sert quasiment à rien sauf à visualiser la consommation, histoire de prendre conscience de l’économie réalisée (ou pas). Attention au résultat « cumulé ». Il est faux ! Le capteur est dédié à une mesure triphasée, et pas à trois mesures distinctes.

Je vous ai présenté ici les appareils physiques et virtuels qui font partie de la domotique pure de la maison. Ces appareils ont été achetés exprès pour la domotique. Niveau budget, j’en suis à environ 3500 euros dépensés. On est loin des 18000 euros proposés par l’électricien pour faire à peu près les mêmes choses en KNX, et toujours loin des 15500 euros en Delta Dore avec une ZiBASE. Ajoutons à ces tarifs élevés les frais de déplacement d’un technicien pour retoucher le moindre bout de programme, ou une licence d’utilisation d’un logiciel pour accéder à la centrale et faire soi-même les modifs.

Finalement, y’a pas de secrets pour économiser : faut mettre les mains dedans…

II. Les appareils secondaires importants

Le système est relativement ouvert et il accepte des liaisons avec d’autres appareils qui ne sont pas forcément dédiés à la domotique. On voit ça tout de suite.

II.a. Les machins virtuels

La box permet d’obtenir des informations depuis Internet ou à travers de savants calculs. La maison connait par exemple le calendrier des passages des éboueurs, elle connaît les jours fériés et elle connaît mon calendrier et donc mes jours de congés.
Elle calcule la position du soleil (azimut et altitude), elle connait la météo (chopée sur le net), les alertes météo du canton et les alertes Vigie-Crue pour les deux cours d’eau à proximité.

II.b. Les smartphones de la maison

samsunggalaxys.png

Grâce à l’application Paw sur Android, deux smartphones sont la voix de la maison, c’est le moyen de communication privilégié quand on est à l’intérieur. La box envoie les annonces par écrit et les smartphones les dictent à l’oral à travers la voix de Claire du groupe Acapella. Le smartphone principal (mon ancien Galaxy S) est placé au bureau et émet toutes les annonces courantes. Le second (l’ancien Galaxy Naos de madame) est placé dans le couloir qui mène aux chambres, à coté de Shirley. Il n’émet que les annonces « bonne nuit » au coucher et « bonjour » au lever.

Grâce à l’application IP Webcam sur Android, ils sont aussi les yeux à l’intérieur de la maison. A part pour contrôler visuellement qu’un ordre a bien été exécuté quand on est absent, ça ne sert pas à grand chose. Mais c’est fun, donc c’est indispensable. Il existe plusieurs application Android qui peuvent détecter un mouvement sur vidéo (TinyCAM par exemple), je n’ai pas encore trop approfondi le sujet.

Grâce aux applications Tasker et AutoRemote, un des smartphones (le Galaxy S) est la passerelle entre nos smartphones perso et la box.
Tasker permet d’automatiser et d’exécuter des ordres en fonction de l’état du smartphone. L’application permet aussi de créer facilement des petits programmes sans pour autant faire des applications Android complexes.
AutoRemote permet de dialoguer directement via le cloud CD2M de Google avec d’autres smartphones Android équipés de la même application. Le gros avantage de cette solution est que je n’ai pas besoin d’ouvrir mon réseau local sur l’extérieur. On y gagne (un peu) en sécurité. Je parlais de requêtes HTTP dans la présentation de la box, et d’accès via les serveurs de Micasaverde. Je ne m’en sers justement pas avec Tasker, puisque AutoRemote est toujours inclus dans le réseau local de la maison et que je peux dialoguer avec lui depuis n’importe où. Le Galaxy S est vraiment une passerelle.

On peut noter qu’on aurait pu se passer du serveur Paw et utiliser AutoRemote, mais Paw est beaucoup plus rapide en local quand AutoRemote passe par Internet et le cloud CD2M de Google. De plus en cas de coupure ADSL, Paw est toujours accessible alors qu’AutoRemote est injoignable.

II.c. Les smartphones des occupants

Madame et moi avons chacun un smartphone Android avec Tasker et AutoRemote. Ils envoient des ordres et reçoivent les infos de la maison. C’est le moyen de communication privilégié quand on est à l’extérieur.

Plusieurs profils Tasker sont une partie intégrante du système, notamment la géolocalisation. Si le GPS est activé sur le smartphone, il est très souvent branché en USB et il envoie sa position toutes les 2 minutes alors que si le GPS n’est pas activé il y a peu de chances qu’il soit branché en USB, il baissera alors la fréquence d’envoi à 15 minutes pour économiser sa batterie.
Tasker permet d’envoyer des ordres après une reconnaissance vocale. Dans ce cas, si nous sommes localisés à moins de 500m de la maison lors d’une commande vocale, elle estimera que nous sommes aptes à contrôler les appareils, sinon, elle nous enverra gentiment balader.
Tous les appareils peuvent être commandés à la voix avec nos smartphones via des phrases du genre « allume la lumière du salon » ou « ferme le volet de la cuisine ». Je n’ai pas encore réussi à coder le programme qui saura reconnaître plusieurs ordres en une seule phrase comme « ferme les volets de la cuisine et du bureau, éteint le ventilateur et allume la lampe du bureau » mais le programme reconnait quand on exprime le nom d’une pièce ou non. S’il n’y en a pas, elle exécutera l’ordre sur tous les appareils du même type (tous les volets, toutes les lampes). Pour remplacer la phrase précédente, il faudra donc lui donner 4 ordres. Il n’y a rien d’autre que des fonctions luup et du code lua pour gérer les commandes vocales. Je n’ai pas de micro de qualité, ni envie de laisser un PC tourner en permanence pour utiliser un soft dédié comme S.A.R.A.H.

La maison sait quel appareil a émit l’ordre, elle lui répond vocalement : sur le Galaxy S si le smartphone est connecté au WiFi de la maison, sur le smartphone émetteur dans le cas contraire.

II.d. Le Karotz

karotz.jpg

A l’origine, le Karotz (que j’ai nommé Shirley) devait jouer le rôle de reconnaissance et synthèse vocale. Avec le recul et après avoir subi plusieurs pannes des serveurs de la société (Violet/Aldebaran) qui gère ces lapins, il ne me sert plus que de lecteur de badges RFID (et encore, c’est vachement limité). Un firmware alternatif qui rend le lapin indépendant est en train de voir le jour, c’est une piste à explorer pour rendre à Shirley sa gloire originelle. Quoi que la voix de Claire est vachement mieux que celle de Shirley…

On peut imaginer bon nombre d’appareils secondaires, il suffit qu’ils soient connectés à Internet ou qu’il hébergent eux-même le serveur qui va collecter et envoyer les données à la box (une station météo par exemple). Vous aviez ici seulement la liste de ce qui est utilisé aujourd’hui par l’Arobase. C’est la partie « télécommandable ».

III. Ok… Et ça fait quoi ?

Et bien, ça fait plein de trucs. La maison sait ouvrir et fermer les volets toute seule, aux bons moments. Elle sait allumer ou éteindre les lumières de la même façon, aux bons moments. Elle sait parler et nous donner les informations pertinentes aux instants opportuns.

Voilà déjà un aperçu de l’interface coté appareils et coté scénarios, pour vous donner une idée:

Devices.pngProgrammes.png

Alors, comment ça marche ?

III.a. Gestion du sommeil, des lumières et des volets

Il faut partir des postulats que je suis seul à travailler à l’extérieur, que madame reste à la maison et que les félins sont privés de sortie (interdiction d’ouvrir un volet si la fenêtre est ouverte).

La première variable à aborder est le sommeil qui rythme le cycle jour/nuit. J’ai programmé 4 états pour la gérer :

      • On a la journée, personne n’est en sommeil. C’est le fonctionnement normal de la maison.
      • On a la nuit, quand tout le monde est couché.
      • On a la période durant laquelle un de nous deux va se coucher alors que l’autre reste éveillé, on est en attente de sommeil.
      • Enfin, on a la période durant laquelle un de nous deux s’est levé le matin alors que l’autre dort encore, on est en attente de réveil. Cet état n’est utilisé que les jours chômés.

Une deuxième variable est le réveil-matin qui n’est actif que le matin d’un jour travaillé. Elle n’a que deux états : « oui » ou « non ».

Un troisième mode est le mode « soleil sur la TV ». Il sert à protéger l’écran plat et il n’est actif que si l’azimut et l’altitude du soleil font que la TV est exposée à travers l’ouverture de la fenêtre, et seulement si la météo indique un beau temps. Pareil : « oui » ou « non ».

Le quatrième et dernier mode correspond à la nuit tombée. Encore une fois « oui » ou « non » (si c’est « non », c’est qu’il fait jour). Une petite nuance tout de même, il peut faire « presque jour » ou « presque nuit » si on demande de calculer des aubes (ou des crépuscules) civils, nautiques ou astronomiques… Bref, ici, je suis resté sur du binaire.

En combinant ces 4 variables, on obtient différents comportements :

      • On passe du fonctionnement normal en journée vers l’attente de sommeil avec le Karotz ou via une commande vocale « bonne nuit ».
        Au basculement, les volets des chambres et ceux du bas qui n’ont pas leur fenêtre ouverte sont automatiquement fermés, les deux lampes de chevets de notre chambre sont allumées à 25% et la maison nous annonce vocalement ce qu’elle fait.
        Tant que cet état est actif, les lumières du couloir des chambres, des WC et de la salle d’eau ne s’allumeront alors qu’à 30%, histoire de ne pas être ébloui par la lumière si on va aux WC la nuit.
      • On passe de l’attente de sommeil vers le sommeil complet en éteignant une ou l’autre des lampes de chevets allumées précédemment ou en disant de nouveau « bonne nuit ».
        Au basculement, les volets restés ouverts sont fermés, les lumières restées allumées sont éteintes, le PC mediacenter situé derrière la TV est éteint s’il n’y a pas d’enregistrements programmés. La maison nous annonce vocalement le bilan et nous souhaite une bonne nuit.
      • Le matin d’un jour travaillé quand mon réveil sonne, l’état de « réveil en semaine » passe à « oui » et ma lampe de chevet s’allume progressivement jusqu’à 25% (merci Antor pour ton plugin). Il lui faut 15 minutes pour s’allumer. L’état de sommeil ne change pas.
        Tant que cet état est actif, lorsque j’éteins ma lampe de chevet, les volets du séjour et de la cuisine s’ouvrent s’il fait jour et si la fenêtre du volet concerné est fermée; sinon, ce sont les lumières de ces deux pièces qui s’allument. La maison ne dit rien à ce moment, pour ne pas réveiller madame qui dort encore.
        Lorsque je sors de la zone de 500m autour de la maison, les lumières allumées s’éteignent (ou les volets ouverts se ferment) si j’ai oublié de le faire avant de partir. Lors du basculement, l’état de « réveil en semaine » repasse à « non ». La maison m’annonce vocalement sur mon téléphone le bilan des actions.
      • Quand madame se réveille un matin de jour travaillé, elle doit utiliser le Karotz ou dire « bonjour ». La maison allume alors son PC (grâce au plugin WOLPlusPing) et ouvre tous les volets sauf si la fenêtre du volet concerné est ouverte. Si jamais il fait encore nuit ou si aucun volet n’a été ouvert, alors les lumières du séjour et de la cuisine sont allumées. Le volet du salon reçoit un traitement particulier car il ne s’ouvrira pas si le soleil tape sur la TV (il sera placé en attente et ne s’ouvrira que quand le soleil sera sorti de la zone, même si la météo se dégrade entre-temps). La maison annonce vocalement ce qu’elle a fait ou laissé de coté (allumer les lumières et/ou laisser le volet du salon), donne la météo du jour et souhaite une bonne journée.
        Tant que cet état est actif, les lumières ne s’allument jamais toutes seules.
        Si jamais cet état devenait actif alors que je ne suis pas encore parti au boulot, l’état de « réveil en semaine » est remis à « non » pour que les volets ne se referment pas (ou pour que les lumières ne s’éteignent pas, c’est selon) lors de mon départ.
      • Quand le jour se lève, la maison poste un tweet avec la météo.
      • Quand la nuit tombe, la maison poste un tweet « préveneur de noir ».
        Trois quarts d’heure plus tard, elle annonce qu’elle fermera tous les volets qui n’ont pas leur fenêtre ouverte si on ne lui exprime pas le contraire. On a là 60 secondes pour lui dire « non » via un scénario sur la zappette ou via commande vocale. A partir de ce moment et jusqu’à ce qu’on revienne à l’état de fonctionnement normal, les lumières du couloir, des WC et de la salle d’eau s’allument toutes seules sur détection de mouvement.

On a ici le déroulement d’une journée typique en semaine.

Si jamais c’est un jour chômé (congés, week-end), alors:

      • L’état de « réveil en semaine » est mis de coté et remplacé par l’état « d’attente de réveil » avec la commande « bonjour » ou avec le Karotz.
        La maison n’attendra pas mon départ et elle n’agira pas seulement sur les volets du séjour et de la cuisine mais sur tous les volets du bas (avec toujours la sécurité de ne pas ouvrir si la fenêtre est ouverte, de ne pas toucher au volet du salon si le soleil tape sur la TV, et d’allumer les lampes de la cuisine et du séjour s’il fait encore nuit ou si aucun volet n’a été ouvert à cause des fenêtres ouvertes ou du soleil). Elle ne dira rien pour ne pas réveiller celui qui dort encore.
      • Les deux ordinateurs seront allumés. Je n’ai pas poussé le vice jusqu’à l’identification de la personne qui se lève en premier pour n’allumer que son PC, mais c’est envisageable grâce au Karotz qui sait identifier différents porte-clefs RFID. Il faudrait assigner un porte-clefs par personne pour savoir qui donne l’ordre de réveil, ça tombe bien, j’ai un porte-clefs jaune et un second qui est vert.
      • Le réveil et le lever de celui qui dormait encore ramènera le mode de fonctionnement normal en journée sans toucher aux volets ni aux lumières du bas de la maison, avec annonce vocale et souhait de bonne journée.

III.b. Gestion de la présence et de l’alarme

La présence est basée sur la localisation et non sur les capteurs de mouvement qui ne sont pas assez nombreux et pas assez fiables en cas d’immobilité. Là encore, ce sont des variables qui sont utilisées. Je suis représenté par 3 variables : coordonnées GPS, proximité (« oui » / « non ») et présence (« oui » / « non »), madame est représentée de la même façon.

Une variable représente l’absence d’êtres humains (« oui » / « non ») et une dernière variable représente la mise en marche de l’alarme. Cette dernière variable peut avoir 3 valeurs: « oui », « non » et « en attente ».

Une variable représente la longue absence (« oui » / « non »). Elle vaut « non » si nous sommes à moins d’une heure de route en voiture et « oui » dans le cas contraire.

L’absence est directement calculée en fonction des deux variables de proximité. Si elle sont toutes les deux à « non », c’est que nous sommes absents tous les deux. Tous les capteurs d’ouverture des ouvrants qui sont fermés sont alors armés et déclencheront en cas de mouvement. Si tous les volets sont fermés, les lumières seront allumées et une photo sera enregistrée. Nous recevrons enfin une notification sur nos téléphones avec la photo en pièce jointe.

L’alarme fonctionne de la même manière quand elle est sur « oui ». Les détecteurs de mouvement sont ajoutés dans la boucle et enverront la notification en cas de déclenchement. L’alarme est temporisée pour nous laisser le temps de sortir, c’est l’état « en attente ». Il faut absolument fermer les fenêtres pour que la maison accepte de mettre l’alarme en fonctionnement, sinon elle nous enverra paître par annonce vocale en nous précisant quelles fenêtres nous devons fermer. Elle confirmera vocalement sur le smartphone qui a demandé l’activation qu’elle est bien en fonctionnement et que tous les capteurs sont armés. L’alarme ne doit pas être mise en fonction s’il reste des animaux, ils déclencheront les capteurs et nous aurions des alertes pour rien.

Le principe décrit dans cet ancien billet est toujours d’actualité mais il a été modifié pour que mon Nexus 4 soit en lien avec la box via le Galaxy S (à travers AutoRemote). Ce n’est plus le Karotz qui parle mais le Galaxy S et j’ai un retour vocal supplémentaire sur le Nexus 4.

III.c. Gestion de la température

Pour essayer de réguler la température en profitant des apports extérieurs, j’ai mis en place une comparaison entre la moyenne des températures relevées à l’intérieur et la valeur de la température extérieure chopée sur Internet. Il peut y avoir 5 possibilités: il fait bon, il fait trop chaud ou trop froid dedans et la même chose pour dehors.

      • Si jamais on dépasse les 23°C à l’intérieur et les 21°C à l’extérieur:
        • Si la température extérieure est supérieure à la température intérieure +1°C, alors c’est qu’il fait trop chaud dehors, il faut fermer pour conserver la fraîcheur intérieure.
        • Si la température extérieure est inférieure à la température intérieure -1°C, alors c’est qu’il fait trop chaud dedans, il faut ouvrir pour aérer et profiter de la « fraîcheur » relative extérieure.
      • Si jamais on passe en dessous des 19°C à l’intérieur et en dessous des 17°C à l’extérieur:
        • Si la température extérieure est inférieure à la température intérieure -1°C, alors c’est qu’il fait trop froid dehors, il faut fermer pour conserver la chaleur.
        • Si la température extérieure est supérieure à la température intérieure +1°C, alors c’est qu’il fait trop froid dedans, il faut ouvrir pour profiter de la « chaleur » relative extérieure.

Cette variable est calculée chaque minute. Il ne se passera rien tant que la moyenne sera comprise dans la plage de confort située entre 19°C et 23°C, on estime qu’il fait bon à l’intérieur. Par contre, si on sort de la plage de confort, alors la maison va faire le tour des fenêtres, lister celles qui sont ouvertes et celles qui sont fermées. En fonction, elle effectuera une annonce vocale et un tweet pour donner le conseil approprié (ouvrir ou fermer pour rafraîchir, pour réchauffer ou pour conserver le confort). Il n’y aura pas plus d’un conseil par heure pour pas non plus se faire flooder. Les +1°C et -1°C dans le calcul servent à laisser un hystérésis et donc aussi à limiter les alertes.
Si le conseil est d’ouvrir pour profiter de la chaleur ou de la fraîcheur et s’il y a 2 fenêtres qui ne respectent pas la consigne, la maison ne dira rien sauf s’il s’agit de la grande porte-fenêtre du séjour. Par contre, si le conseil est de fermer pour se protéger, elle va râler…

Lorsqu’une fenêtre change de position et qu’elle prend un état contraire à ce qu’il faut faire pour respecter le conseil pendant plus de 5 minutes, la maison fera une annonce et un tweet. On peut ainsi par exemple ouvrir, même s’il fait trop chaud dehors, pour arroser le persil sur le rebord de la fenêtre; on ne se fera pas enguirlander.

III.d. Gestion de reconnaissance et de synthèse vocale

En plus de ce qui a été vu plus haut, la maison parle en général une minute avant chaque action programmée. Pendant cette minute, elle attend une annulation soit par un « non » vocal, soit via un scénario lancé avec la zappette. Si elle n’a rien, elle effectuera l’action, sinon, elle ne l’effectuera pas et oubliera ce qu’elle devait faire, jusqu’à la prochaine programmation.
Elle parle aussi pour nous rappeler des choses à faire (donner à manger aux bestioles, les balader, annoncer le programme TV). Elle ajoute des infos sur la météo et les alertes de vigilance crue s’il y en a. Elle n’ajoutera cependant pas la météo plus d’une fois toutes les demies-heures. En fonction du jour, elle ajoutera un rappel concernant le passage des éboueurs et sur la couleur du bac de recyclage à sortir (emballages ou papiers, par alternance une semaine sur deux).

La maison peut être pilotée à la voix avec les smartphones. Elle reconnait les ordres d’ouverture et fermeture des volets, d’allumage ou d’extinction des lumières, de la fontaine et du ventilateur, les ordres d’entrée et de sortie, les demandes d’informations sur le programme TV ou sur la météo et elle répond à des stimulus débiles qui n’ont aucun rapport avec la domotique. Si elle ne comprend pas, elle le dit. Les réponses sont schématisées à l’avance mais les mots employés sont choisi, aléatoirement, dans des listes pré-remplies. Elle utilise un mini-dictionnaire renseignés par mes soins. Le même moteur est utilisé pour répondre aux tweets que les gens lui envoient sur Twitter (y’en a pas encore eu un seul, à part moi) à la différence près que tout ce qui est sensible (actions et position/pourcentage des lumières) n’est pas pris en compte si le tweet provient d’un inconnu…

Les messages qui sont postés sur Twitter sont tous repris sur Facebook (désolé, Facebook est plus renommé chez mes proches). Par contre, ils ne sont pas le reflet exact de ce que dit vocalement la maison. Vocalement, elle donnera tous les détails alors que sur les réseaux sociaux, elle restera relativement vague. Elle ne postera rien qui a trait à la présence ou aux ouvertures des volets. Même si nous sommes absents et qu’elle ne dit rien, elle postera un message de rappel pour sortir Grenouille ou pour lui donner à manger. D’un autre coté, elle poste un message à chaque lever du soleil alors qu’elle ne le dit pas réellement dans les hauts-parleurs (surtout à 6 heures du mat’ un dimanche matin…)

IV. Ce qu’il reste à faire.

Tout n’est pas terminé, et ce qui est en place va évoluer pour mieux coller aux besoin quand des écarts se font sentir. Il y a encore quelques petits bugs dans les programmes, que je corrige au fur et à mesure qu’on y est confronté. Tout ce qui suit est prévu, et le matériel est acheté. « Yaplukafokon »…

IV.a. Gérer le chauffage

L’hiver vient et il va falloir que je m’en occupe assez vite…
Les radiateurs électriques installés à la maison peuvent êtres commandés par fil pilote. C’est un fil de phase dont la présence d’alternances positives et/ou négatives permet de donner jusqu’à 4 ordres : « off », « hors-gel », « éco » et « confort ». Pour piloter indépendamment chaque radiateur, il faut installer un module à double relais on/off couplé à deux diodes 220V montées têtes-bêche sur les deux sorties. Un relais laissera ou non passer l’alternance positive et l’autre s’occupera de l’alternance négative. Une autre solution, plus simple, consiste à brancher sur un module les fils pilotes de chaque radiateur qu’on souhaite grouper par zone. Plus simple mais moins indépendant.

Une fois équipés, il me sera facile de couper le chauffage d’une pièce si la fenêtre reste désespérément ouverte alors qu’il fait trop froid dehors. Les radiateurs pourront se mettre en mode hors-gel si on s’éloigne de plus d’une heure de route de la maison, et se rallumer si on revient. La maison sera peu chauffée en notre absence, mais sera confortablement réchauffée à notre retour. Si on s’absente mais qu’on n’est pas trop loin, le mode éco suffira à faire des économies.

Le chauffage reste évidemment fonctionnel en manuel en cas de panne du système domotique.

IV.b. Gérer l’ensoleillement

L’été s’en va et l’utilité de cette fonction s’enfuit avec lui.
Deux chambres sont exposées plein Est et une autre est exposée plein Sud, le salon et le séjour sont plein Sud également. Quand le soleil tape sur les vitres, ça chauffe, même si le double vitrage est traité contre les UV.

L’idée ici est de jouer avec la position du soleil pour déterminer si la météo est bonne et si les volets peuvent rester ouverts ou s’il faut les fermer. C’est exactement la même chose qu’avec la TV, sauf qu’on parle de 5 volets exposés sur 270 degrés, à coupler avec ce qui est déjà en place.

C’est pas gagné…

IV.c. Terminer l’alarme

Là, c’est simple, il suffit d’installer la sirène…

IV.d. Gérer la présence d’invités

Si on héberge quelqu’un, il faut que les volets de la chambre d’amis soient autonomes lors des ouvertures le matin et il faut mettre les annonces du couloir des chambres en sourdine si les invités dorment. Je pense que je resterai sur un switch virtuel on/off avec une gestion manuelle, je ne vois pas trop comment faire pour que ça soit automatique.

IV.e. Domotiser la sonnette

J’ai deux capteurs universels Fibaro dont un que je réserve à la sonnette. Je voudrais poster un tweet et une annonce vocale quand quelqu’un sonne à la porte, tout en envoyant une notification sur les smartphone si nous sommes absents. « Facile » me direz-vous. Et bien « non »…
La sonnette est alimentée directement en 220V et elle a un transformateur 220V/8V alternatifs. L’alimentation du capteur universel doit être comprise entre 9V et 30V continus. Donc d’entrée, j’ai pas d’alimentation possible directement sur le carillon, il faudra que je planque une alimentation dans le mur. Redresser un 8V alternatif ne fera jamais un 9V continu.
Ensuite, la tension de 8V alternative est court-circuitée par le bouton de la sonnette quand on appuie dessus, ce qui provoque une impulsion sur un électro-aimant qui vient taper sur deux barres métalliques de tailles différentes et qui font « ding » puis « dong ». Même si j’avais pu choper l’alim 8V pour le capteur universel, elle serait à 0V lors de l’appui sur le bouton… Comme s’il n’y avait plus de capteur à ce moment là…
Je n’ai pas encore testé comment se comporte le capteur universel quand il reçoit une impulsion de 8V alternatifs… Quelqu’un a testé ?

V. Et après ?

J’envisage beaucoup de choses, certaines sont utiles, d’autres le sont beaucoup moins (donc indispensables, c’est un principe de geek). Certaines sont facilement réalisables et seront mises en place à court terme, d’autres sont carrément farfelues… Pour la plupart des trucs dans cette liste, je n’ai pas tout le matériel, et l’achat n’est pas forcément prévu sauf coup de tête, commande groupée ou promotions. Voici cette liste non exhaustive :

V.a. La boîte aux lettres

J’ai très envie de rendre ma boite aux lettres communicante. Elle doit pouvoir nous avertir quand le facteur dépose du courrier, surveiller quand nous le retirons, et afficher un status de présence de courrier et/ou de colis. Un capteur Fibaro universel, deux capteurs d’ouvertures (des trucs à lamelles, des interrupteurs reed ou des trombones, je sais pas encore) en série sur une des deux entrées du capteur, une barrière optique avec un ruban adhésif à catadioptres collé en face puis branchée sur l’autre entrée et ça devrait faire l’affaire. Sauf qu’il n’était pas prévu d’alimenter quoi que ce soit à coté de la route, il n’y a aucune arrivée électrique. Donc, il va falloir trouver quelque chose qui délivre entre 9V et 30V continus. J’ai envie d’un panneau solaire avec un système de suivi du soleil, comme un tournesol. Il me faudra certainement me mettre à l’Arduino pour faire ça, auquel cas le capteur universel Fibaro ne sera plus vraiment utile puisque l’Arduino possède une pléthore d’entrées/sorties et qu’il pourra causer à la Vera 3 via des requêtes HTTP en WiFi. Il faudrait que je regarde mieux du coté de Yoctopuce, ça a l’air terrible ce truc.

V.b. Vidéosurveillance et sécurité

    • Intégrer une caméra discrète dans la porte d’entrée qui ressemble à un œilleton pour voir qui sonne à la porte.
    • Ajouter de vraies caméras aux endroits stratégiques, à l’extérieur. Je ne sais pas encore si je choisi des caméras IP ou des caméras CCTV conventionnelles (plus nombreuses, plus anciennes et moins chères, mais avec une image de moins bonne qualité). De toutes façon, on ne trouve que des caméras œilleton (pour la porte d’entrée) sous le format CCTV, il n’en existe aucune (ou alors j’ai mal cherché) qui fonctionne en IP, il me faudra obligatoirement un serveur vidéo pour l’utiliser donc à tout prendre, autant câbler les autres sur le serveur (Aviosys fait un truc pas trop mal apparemment).
    • Mettre en place une véritable alarme agréée, robuste (bi-bande si radio, le top étant le filaire car peu sensible aux brouillages) et aux normes, interfacée à la domotique.
    • Améliorer la passerelle LAN/WAN avec un véritable accès par SMS en cas de coupe ADSL (une carte SIM avec SMS illimités pour 2 euros par mois suffit, ou un système Sigfox).
    • Ajouter des onduleurs à batterie sur les alimentations sensibles (box domotique, box internet, serveur vidéo et alimentations des caméras, chargeurs des Smartphones qui font passerelles et annonces vocales) pour prendre le relais en cas de coupure de courant.
      Le secours des alimentations des smartphones peut faire rigoler, mais je crois que l’effet de surprise serait efficace si la maison se mettait à causer à un éventuel cambrioleur avec des vrais mots, et pas seulement avec une sirène qui maintenant est relativement banale. Ce secours par onduleur associé au secours par SMS rend la maison temporairement autonome et fonctionnelle, même si quelqu’un coupe les câbles qui sont dans les regards (couper le jus et le téléphone est devenu courant). Il reste le cas du brouillage radio. Je ne vois pas trop comment dialoguer avec la maison en cas de coupure ADSL et en cas de brouillage. Les SMS seront inutiles. A part squatter chez le voisin avec une gaine enterrée et un câble réseau qui relie les deux maisons, j’ai pas d’idée. Et encore, ça va si le voisin est OK mais si jamais il déménage, le nouveau sera-t’il toujours d’accord ?
    • Fignoler la gestion de la présence avec les capteurs de mouvement, des barrières infrarouge (ou laser) doublées (pour connaître le sens de circulation à travers une porte : on entre ou on sort ?), pister les actions, les intégrer dans la gestion de l’alarme et en tenir compte. Toujours pas réussi à dégoter une vraie captation de présence (et pas de mouvement, on peut être présent sans bouger).

V.c. Surveiller l’environnement et pister les événements pour faire des économies

    • Surveiller la consommation et la température du réfrigérateur, et avertir en cas d’anomalie.
    • Surveiller la consommation d’eau chaude et d’eau froide, et avertir en cas d’anomalie (fuite, absence d’eau chaude, etc etc etc).
    • Surveiller les anomalies comme une inondation, une fuite de gaz, une consommation excessive, etc etc etc.
    • Améliorer la captation de température intérieure avec des sondes dédiées (au moins une par pièce où il y a un radiateur).
    • Bricoler une station météo connectée pour connaître les véritables infos environnementales plus fiables et plus réactives que la météo issue d’Internet. Il faudra ajouter la station sur les sites de météo amateur pour en faire profiter les copains.
      Là encore, il me faudra certainement un Arduino, ou un boitier RFxTRx et des capteurs météo Oregon ou LaCrosse. Juste un truc en passant : une station météo connectée digne de ce nom coûte dans les 800€ dans le commerce, en bricolant un truc à base de capteurs Oregon, j’en aurais pour un peu moins du tiers du prix mais je ne connais pas la précision ni la qualité des capteurs. Il faudra aussi trouver une solution alternative pour alimenter les capteurs en électricité, genre panneau solaire qui recharge une batterie, je me vois mal changer les piles tous les ans si les capteurs sont au bout d’un mât sur le toit… C’est un chantier que j’aimerai pouvoir mettre en route assez vite, on manque d’infos météo dans le coin.
    • Surveiller la consommation du lave-linge, du sèche-linge et du lave-vaisselle, et par extension, avertir lorsque les cycles sont terminés (ce qui évite de galoper au cellier pour se rendre compte que non, la machine n’est pas encore finie, grrrr).
    • Différencier les action programmées des actions manuelles (Doit-on laisser la lumière allumée indéfiniment si elle a été allumé manuellement ? Doit-on l’éteindre au bout d’un certain temps si elle a été allumée sur détection de mouvement ?)

V.d. En vrac

    • Motoriser la porte de garage et la domotiser (encore faut-il acheter le moteur pour la porte de garage).
    • Domotiser le ballon d’eau chaude en pensant à conserver un mode « normal avec teleinfo ».
    • Je voudrais analyser mon sommeil et tenter de « prévoir » les meilleures heures de coucher pour être en forme le lendemain pour aller bosser. Il existe un capteur de sommeil qui pourrait analyser le sommeil et en déduire les heures optimales. La maison pourrait m’informer au bon moment que je ferais mieux d’aller dormir si je veux être en forme le lendemain, et pourrait me réveiller le matin au moment où mon sommeil est le plus léger durant une plage horaire au lieu d’une heure fixe. Ça, ça serait une maison intelligente.
    • Construire une pergola sur la terrasse avec un toit fait de lamelles inclinables. En la domotisant avec un suivi de la position du soleil, la maison pourrait optimiser l’ensoleillement. Quand il faut réchauffer la maison, les lamelles seraient parallèles aux rayons du soleil pour avoir une ombre portée minuscule et au contraire en été quand il faut tenter de garder la fraîcheur, les lamelles seraient perpendiculaires aux rayons du soleil pour maximiser l’ombre portée. Un retour d’état dans la boucle d’automatisation pourrait contribuer à garder une température quasi constante dans la maison quand le climat à l’extérieur est très variable aux mi-saisons. Calculer le temps (ou l’angle) de rotation d’un moteur pas-à-pas 12V pour que les lames soient alignées, je sens que ça va être un morceau de bravoure…
    • Installer un firmware modifié sur le Karotz pour être indépendant des serveurs de Violet (ça, c’est facile et y’a rien à acheter, ça ne saurait pas trop tarder).
    • Coupler le lecteur multimédia de la TV (un PC avec XBMC) aux téléphones pour allumer un peu la lumière si il fait sombre (ou entre-ouvrir le volet du salon si le soleil tape pas dessus et qu’il fait jour) et mettre le film en « pause » quand un des téléphones se met à sonner (ça aussi c’est facile à faire et y’a rien à acheter non plus, ça risque de vite être mis en place).
    • Domotiser la Senseo, ce sont trois boutons poussoirs, ça doit être jouable… Il suffit juste de penser à laisser une capsule, une tasse en dessous et de l’eau en permanence. Pour l’eau, la Senseo a déjà un capteur qui fait clignoter la led du bouton power si il en manque.
    • Domotiser les tiroirs et les portes de placards du bas dans la cuisine. Madame est assistante maternelle et pour l’instant, ce sont des trucs en plastique moches et vraiment pas pratiques qui empêchent l’ouverture des tiroirs (qui contiennent moult couteaux, pèles-légumes et autres objets dangereux). L’idée serait d’utiliser des gâches de portières de voiture (c’est du 12V, ça reste sécurisé dans une cuisine, et une alimentation de PC suffit) pour laisser libre ou bloquer l’ouverture des tiroirs selon des plages horaires (ou un calendrier). Ensuite, en interfaçant deux boutons poussoirs planqués en hauteur, on peut libérer temporairement telle ou telle série de tiroirs. Il y aurait même un brevet à déposer là-dessus parce qu’à part les trucs magnétiques qui fonctionnent mal ou les trucs en plastiques supra-chiants à manœuvrer, rien n’existe dans le commerce pour sécuriser la cuisine face à de jeunes enfants avides de découvertes tranchantes. Bon, par contre, faut câbler les meubles de cuisine et pour ça, faut les vider… C’est une autre affaire…
    • Trouver une solution pour que le Galaxy S reste en permanence à l’écoute à la façon de S.A.R.A.H. pour exécuter les commandes vocales sans avoir à utiliser nos smartphones. Il faudra un mot-clef pour que le programme détecte qu’il s’agit d’une commande vocale et ne rien déclencher quand on discute à coté du micro. D’ailleurs, il faut aussi trouver une solution pour grandement améliorer le micro du Galaxy S parce qu’en l’état, il ne capte rien à plus de 2 mètres…
    • Coder un vrai chat-bot pour simuler une discussion un peu soutenue avec la maison, et frimer devant les gens quand « on cause avec l’intelligence artificielle de la maison » à la façon de Tony Stark et son Jarvis. Il y a un travail monstre mais les annonces vocale serait plus réalistes, moins schématisées et donc, beaucoup moins rengaine. En l’état actuel, les annonces sont très répétitives et deviennent lassantes, un peu comme les annonces vocales de la Renault 25 en son temps, qui parlait quand on démarrait sans attacher sa ceinture de sécurité ou qu’on oubliait les phares en coupant le moteur. Beaucoup ont vite débranché le truc. J’ai déjà pas mal de listes de mots qui sont choisi aléatoirement pour faire les intros, les conclusions et pour faire les verbes dans les annonces, mais ça reste quand même très schématique.

Je m’arrête là parce que mon cerveau commence à bouillir et ce qui va en sortir sera plus qu’invraisemblable… Les idées ne manquent pas, par contre, le temps à consacrer n’est pas illimité et il faut jongler avec la vie quotidienne et les travaux bien plus terre-à-terre (construire une clôture, virer ce monstrueux tas de terre dans le jardin, monter la cloison des WC du cellier, construire un établi dans le garage pour bricoler, etc etc etc). Vous commencez peut-être à me connaître, je ne suis pas spécialement très doué en travaux de gros œuvre, c’est pour ça que le système domotique avance mieux que le reste…

VI. Pour conclure

Vous avez tout lu, bravo !
Je pense avoir été exhaustif dans la description de la domotique de la maison, dans les explications et le déroulement des actions et des états. De toutes façons, je tiendrai le blog à jour en fonction des avancées et des grosses modifications. N’hésitez pas à laisser un commentaire en cas de compréhension hasardeuse, si vous voulez des précisions ou des détails plus techniques (comme des portions de code luup par exemple).

24 commentaires

  • Hervé

    C’est une bien belle présentation de ce que la domotique peut apporter dans nos foyers. Bravo pour le chemin parcouru et courage pour la suite.
    Je partage une chose qu’il te manque également: le temps de mettre en place toutes ces idées qui restent en attente! 🙂
    J’ai hâte de lire la suite!

    • Shaigan

      Merci pour ton commentaire !
      C’est certain, ça mange le temps comme jamais, et on ne se voit presque pas avancer. Le pire je pense, c’est la partie « programmation » qui demande énormément de préparation pour repérer et analyser les gestes habituels et reflexes. Sans cette étape, je ne pourrais jamais faire l’algorithme qui va bien. Prochaine étape: les radiateurs 😉

  • alcor_fr

    Bravo pour cette article, et pour cette installation qui me donne un peu le tourni !! tu as du passser quelques nuits blanches pour réussir à tout élaborer !! 🙂

    Pourrais tu partager tes scripts lua qui récupère la méteo, la vigilance météo et la vigilance crues ? Je suppose que tu parses les fichiers xml générés par les scripts php de abavala et fabien.

    • Shaigan

      Salut et merci pour ton comm’. Raté, je parse tout seul comme un grand les sites source avec un script google apps, je m’en suis juste un peu fortement inspiré. J’ai posté le code sur le forum de toute la domotique.

      • idelectrik

        Belle installation complète et réfléchie ! Encore une petite question sur la météo. Je n’ai pas non plus de station connectée, et j’aimerai savoir sur quel site tu récupères les prévisions météo.. Pour l’instant j’ai trouvé https://previmeteo.com/ qui propose une api équivalente à ce que proposais Google.. mais si il y a mieu, je suis preneur aussi 🙂
        Merci !

  • Neric

    Bravo pour ce billet, fort intéressant. Tu peux m’en dire un peu plus sur ton projet de domotiser les placards de ta cuisine, ça m’intéresse beaucoup.

    • Shaigan

      Salut 😀

      Pour les placards de la cuisine, l’idée est de verrouiller les portes et les tiroirs des éléments du bas avec des gâches de portières de voitures (je ne suis pas sûr de trouver moins cher).
      Avec une alimentation de PC (qui sort du 12V bien régulé, c’est mieux pour la cuisine qui peut être humide) et des micromodules on/off z-wave couplés à autant de petits boutons poussoir cachés quelque part sous les élément du haut, ou dans un placard du haut avec une petite platine, j’imagine qu’on doit pouvoir actionner les gâches par impulsions, de la même manière qu’on actionnerait un portail électrique.
      J’ai deux rangées de tiroirs, 4 séries de portes.
      Pour les portes (qui ont déjà des aimants pour pour les maintenir fermées), une gâche sur le montant en haut et une équerre trouée sur l’intérieur de la porte pour que la gâche s’enfile dans l’équerre en position « bloquée ». La gâche se retire et « libère » l’ouverture de la porte.
      Pour les tiroirs, j’imagine le même procédé mais au lieu de prendre sur le montant en façade, je pense plus à un système qui vient se loger derrière le tiroir, contre le mur.
      Ensuite, les gâches seraient regroupées en plusieurs groupes, un groupe par module on/off et donc, par bouton.
      Ça permet d’empêcher l’ouverture sauf après un appui sur le poussoir correspondant. Ça permet aussi de pouvoir libérer l’ouverture tant qu’il n’y a aucun jeune enfant présent dans la maison.

  • GuiguiAbloc

    Très sympa cette présentation 🙂
    Je me posais une question concernant la partie « On a donc 60 secondes pour lui dire « non » via la zappette ou via commande vocale », tu gères ou ce temps d’attente, dans la Vera ? (via une boucle dans un luup ?) ou dans ton PAW ?
    Je te demande ça parce que j’ai pas encore réussi a créer une boucle d’attente sur un changement de variable en luup sur ma Vera :p
    Bravo en tout cas

    • Shaigan

      Merci pour les compliments.

      Cette partie est un poil compliquée, pas parfaite, mais je gère tout via la Vera :p

      Chaque scène « parente » averti via tts puis renseigne un tableau sérialisé dans un VContainer avec un identifiant de scène « fille », un timestamp d’échéance, une réponse pré-remplie en cas d’annulation et une case vide. Cette case vide est remplie par reco vocale ou par la zappette (qui déclenche une scène qui dit « non »).

      J’ai une autre scène qui surveille ce VContainer (luup.variable_watch). Quand la case vide se rempli d’un « non », la Vera dit par tts qu’elle annule la future exécution en prononçant la réponse pré-remplie.

      Enfin, il y a une dernière scène qui se lance chaque minute et qui surveille le timestamp
      – Si le timestamp d’échéance est dépassé et que la case vide est vraiment vide, alors la Vera exécute la scène « fille »
      – Si la « case vide » n’est pas vide et qu’elle contient « non », alors la Vera n’exécute pas la scène « fille », supprime l’entrée du tableau et le sérialise vers le VContainer.

      Une des imperfections réside dans le fait qu’il faut répondre dans l’ordre de diffusion des avertissements. Si jamais deux scènes se chevauchent et si on répond « non » après la diffusion de la deuxième, on va annuler la deuxième scène, on ne pourra plus annuler la première.
      J’ai pas trouvé le moyen d’identifier la scène en utilisant seulement « non » ou « annule » (la zappette), et j’aimerai éviter les commandes vocales compliquées (pour garder un WAF élevé, les « annule la fermeture des volets » ou « non n’ouvre pas le volet du salon » sont proscrits).

      Un autre soucis réside dans le nombre de scènes. Il faut une scène parente et une scène fille pour chaque proposition d’annulation. C’est un détail mineur mais si je commence à multiplier les scènes, ça va vite devenir le bazar.

      Qu’est-ce que tu voudrais surveiller et sur combien de temps d’attente ? Un duo CountdownTimer et luup.variable_watch pourrait faire le job ?

      • GuiguiAbloc

        Merci pour ta réponse 🙂
        outch oui ca fait un peu lourd à la fin.
        Ton idée du duo CountdownTimer et luup.variable_watch pourrait être la solution.
        En fait j’imaginer déclencher une scène quelconque suite à un trigger et dans le code luup, surveiller pendant 60 secondes la valeur de la variable Vcontainer1. Si = 0 execute l’action, sinon, sort sans rien faire.
        Envoyer une valeur de variable, je sais le faire par tasker ou scripting, pas de soucis, c’était ce temps d’attente qui me posait problème. Par contre, effectivement, on est pas à l’abri de deux scènes qui se chevauchent. Mais je pense avoir peu de scène réclamant une possible annulation avant de s’executer.

        • Shaigan

          Un luup.call_delay avec un callback pour identifier la scène pourrait faire l’affaire, sinon, un CountdownTimer si tu veux que ça survive à un reboot (quoique sur 60 secondes, est-ce que ça vaut la peine?)
          Du coup, je vais peut-être regarder à gérer le truc avec du luup.call_delay() et passer les paramètres dans un callback, ça ferait un delai par scène mais une scène de moins par annulation possible.

  • GuiguiAbloc

    Bon j’ai réussi 🙂
    J’ai créer 1 scène qui ne fait que surveiller la variable1 et qui si elle passe à « non », m’envoie un TTS « commande annulée » sur mon tél.
    Et 1 scène qui execute l’allumage de la lampe (par exemple), avec un call_delay et si variable1==non alors remet la variable à 0 et return false, sinon continue.
    Ca marche impec:D
    Merci pour la piste du call_delay 🙂

  • Toto

    Bonjour,

    Comment fonctionne la mise en place de la lumière de réveil, le réveil, la prise en compte d’éteindre la lumière ? (lampe branché a une prise ou non ?)

    Est-ce que les capteurs de présence 4en1 sont réellement efficace pour une utilisation alarme ?

    • Shaigan

      Bonjour,
      Le réveil est mis en route avec une scène qui regarde le calendrier tous les jours au coucher puis à 2:00 du mat’. Si jamais on est un jour de semaine, et que le calendrier n’indique pas de congés, alors le système envoie un message AutoRemote vers Tasker sur mon Nexus qui active l’alarme à l’heure voulue.
      La lumière du réveil est gérée avec le plugin Reveil Lumineux d’Antor http://www.antor.fr/2012/10/24/transformer-votre-lampe-de-chevet-en-reveil-lumineux/ .
      J’ai trafiqué les lampes de chevets en supprimant l’interrupteur « poire » et en intégrant un poussoir sur le socle des lampes. Le poussoir est simplement branché sur un Fibaro, planqué dans le socle 😉
      Le mode « dodo » se décompose en deux étapes: préparation qui met l’ambiance dans la zone « nuit » et « dodo » qui éteint tout. Le « dodo » est déclenché par la coupure d’une des deux lampes seulement pendant que la « préparation » est active.

      Pour l’alarme, je ne le répéterai jamais assez mais un système domotique radio ne saurait remplacer une alarme. Rien n’empêche le brouillage radio (un seul canal en z-wave). Enfin, les capteurs 4in1 sont assez capricieux, mais font leur job. Pour une « surveillance », ça peut le faire, mais pas pour une alarme en qui j’aurais totale confiance.