Poulpy – Domotique, OpenSource et Geekeries

Domotique, OpenSource et Geekeries

 

Suite au billet posté ici en septembre expliquant un peu l’architecture logicielle de mon installation, j’avais eu des commentaires fort sympathiques dans le billet et des mails demandant plus de détails sur le cœur du système de contrôle ainsi que l’application mobile correspondante. Voici donc la suite avec des demos des deux applications/webapp du système.

 

Depuis plusieurs années que je développe ce système pour mes propres besoins, je l’avais appelé ‘HomeGuru’ sans trop réfléchir (pas mon genre de réfléchir de tt de façon :p)… Et bien on peut oublier le nom ;) J’ai regardé rapidement l’autre jour et il s’avère que ce nom existe déjà, notamment sur l’App Store Apple où il existe une application qui s’appelle HomeGuru (une application de contrôle domotique Insteon d’ailleurs ;) ).

Bref,  hier j’ai renommé mon ensemble logiciel en : ImperiHome (oui ok c’est pas forcément mieux mais bon c’est pas bien grave, l’idée c’est d’éviter les confusions lorsque le code sera rendu public ;) )

 

Alors, pour rappel, il y a, actuellement (en dehors des agents xPL) 3 composants à ImperiHome :

  • ImperiHome Server : le daemon de contrôle domotique, le coeur/intelligence du système (techno : programme perl utilisant le framework xpl-perl).
  • L’application mobile (la webapp) : c’est l’interface utilisateur du système, celle qui permet de contrôler les lumières, de voir les consommations, les températures, les cameras… Elle est utilisée sur smartphone ou sur tablette (techno : webapp en Sencha Touch + Sencha Touch Charts; convertion en application mobile avec PhoneGap, utilisable avec un browser type Safari/Chrome).
  • Le site de configuration qui permet d’administrer le tout, créer les devices, les scenarios, etc… (techno : site web en Sencha Ext JS 3, utilisable avec un browser classique FireFox et cie…).

 

Pour continuer à donner plus de détails, le plus simple est que vous puissiez essayer vous-même. J’ai donc mis à disposition une demo de la webapp et du site de configuration, les deux alimentées avec des données factices et aléatoires (ne vous étonnez pas de températures étranges pour la saison ou des consommations d’énergie cheulou ;) ).

 

WebApp Mobile Site de configuration
 http://demo.imperihome.com/webapp/ http://demo.imperihome.com/admin/Vous pouvez naviguer dans toute l’interface de configuration, il y a des données un peu partout pour faire la demo. Par contre c’est de la lecture seule, vous ne pourrez rien créer/modifier.
Sur un ordinateur de bureau: y aller de préférence avec le browser Safari (ça ne marchera pas avec Firefox ou IE). Possible que ça marche avec Chrome mais pas essayé.
Sur un mobile : ça fonctionne bien avec les browsers standard Android et iOS. Vous pouvez utiliser le flashcode :) . Si vous n’avez pas un mobile très récent et que ça rame vous pouvez désactiver les animations dans les settings puis revenir à l’onglet Home et recharger l’application.
 Y aller avec un browser classique mais récent type FireFox, IE…

 

Voila, comme ça, ça donne une idée de ce à quoi ça ressemble en vrai et de la façon dont ça s’utilise en attendant que tout le code soit mis à disposition. Dans l’application mobile vous pouvez cliquer sur les valeurs des sondes ou des consos d’énergie pour voir les graphes correspondants.

Avant de rentre tout le code (enfin celui du serveur surtout) public je dois passer un peu de temps à rendre les choses ‘présentables’, à packager correctement, à virer les cas particuliers et les trucs en dur dans le code, mais ça va venir ;) Idem pour les specs du webservice qui sert à communiquer avec le serveur : ça ressemble (volontairement) un peu à ce qui existe sur domogik, mais je dois faire un effort de documentation :) .

Comme d’hab, n’hésitez pas pour les remarques positives ou négatives (bon soyez indulgents quand même hein, le tout n’est évidemment pas exempt de bugs, et est d’une façon générale très incomplet car en permanente construction).

Cela faisait un moment que je souhaitais mesure la consommation d’eau de mon logement, mais j’avais été freiné par le coût de mise en place d’un système de télérelève pour intégration à mon installation domotiqe. En effet, il fallait acquérir le compteur d’eau à impulsions (75€), mais aussi le RFXMeter (70€) et RFXPulse (50 €), le tout devant être branché électriquement via un adaptateur secteur. Ca faisait quand même plus de 200€ le bazar pour suivre sa consommation d’eau… (sans compter évidemment le récepteur RFXCom que j’avais déjà)

Bref tout ça m’avait refroidit.

 

C’est en lisant une discussion sur le forum TouteLaDomotique que j’ai vu un des membres (titi_oft) expliquer comment il souhaitait fait pour remplacer le couteux couple RFXMeter + RFXPulse.

Il s’agissait en fait de relier le compteur à impulsions à un simple détecteur d’ouverture Chacon désossé. En effet le détecteur d’ouverture Chacon est un détecteur magnétique qui utilise une technologie dit à ampoule REED, ce qui est également le cas de mon compteur d’eau à impulsion. C’est un peu à la ‘bricolo bricolette’, mais ça a le mérte de fonctionner et de diviser le budget par 2 ;) Voici comment procéder :

 

Le matériel :

  • Un compteur d’eau à impulsion (1 impulsion/litre) : 75€ environ (chez planete-domotique par exemple)
  • Un  capteur d’ouverture Chacon  : 15€ environ (lien chez planete-domotique)
  • Un récepteur compatible avec Chacon (RFXCom, ZiBase…)
  • Un fer à souder, de l’étain, des mains (deux devraient suffire) et un tournevis

 

Le compteur d’eau :

 

Le compteur est livré dans un carton, avec ses accessoires (adaptateurs, joints, et cable). Je ne suis pas plombier, mais le tout semble de très bonne qualité.

 

Modification du détecteur d’ouverture :

Bon ça c’est le détecteur Chacon. Vous pouvez jeter la plus petite partie, elle ne contient qu’un aimant et vous sera inutile. Il faut alors ouvrir la partie la plus grande en dévissant la vis  au dos puis en déclipsant le plastique  :

Ca vous donne à peu près ça. Vous pouvez voir l’emplacement de la pile à gauche, l’antenne à droite, et la fameuse ampoule REED en bas :

C’est aux bornes de cette ampoule reed que nous allons souder les deux fils de notre compteur à impulsion. Il ne restera ensuite plus qu’à retirer l’ampoule reed en sectionnant ses pattes, et à replacer la carte électronique dans son boitier :

 

 

Et voila ! Vous refermez le boitier, mettez la pile, et votre détecteur chacon émettra à chaque litre d’eau consommé; le tout pour moins de 100€. Elle est pas belle la vie ?

 

Le comptage du volume d’eau :

Attention il y a une subtilité. Comme vous le savez peut etre, les détecteurs chacon (comme les detecteurs X10 d’ailleurs) ont une facheuse tendance à envoyer plusieurs fois d’affilée leurs ordres, afin de s’assurer que ceux-ci sont bien reçus. Ce qui fait que, dans notre montage, si on compte simplement le nombre de « ON » envoyés, on va se retrouver avec un chiffre bien au dessus de la consommation réelle.

L’astuce consiste, au lieu de compter les « ON », à compter les changements d’état « OFF » => « ON ». En utilisant cette méthode, on obtient une très bonne précision (chez moi, le taux d’erreur est d’environ 0.3%, ce qui est plus que satisfaisant). Personnellement j’ai juste fait un petit agent xPL qui écoute les ordres du capteur et les retransmet sur le réseau xPL un fois convertis en données de volume.

 

Les limites et les inconnues :

  • Durée de vie de la pile du détecteur Chacon : je ne sais pas dire combien de temps tiendra la pile bouton du détecteur. Ces petits modules n’étant pas faits pour émettre plusieurs centaines de fois par jour. Pour le moment je suis à environ 8000L consommés et pas de problème.
  • Occupation de la fréquence : Il est possible que, lorsque l’on consomme beaucoup d’eau (ex. une bonne grosse douche, ou arrosage jardin…) le détecteur émette des ordre à un rythme élevé, ce qui pourrait ‘occuper’ la fréquence 433Mhz et provoquer des ratés sur d’autres devices (par exemple non-réception d’une trame d’une sonde Oregon ou autre…). Je n’ai pas constaté ce problème pour le moment mais c’est une éventualité.

 

Voila, c’est clairement un peu bricolo bricolette mais ça fonctionne plutôt bien jusqu’à présent après 1 mois d’utilisation :) . J’en profite pour remercier titi_oft du forum TLD pour son idée !

J’en avais déjà parlé je crois dans un de mes précédents articles, j’ai développé pour mon système domotique une webapp.

Quoi que c’est donc une WebApp ? Et bien c’est à mi chemin entre un site web et une application pour device mobile (smartphone, tablette…). On peut le définir comme un site web qui se comporte comme une application, ou bien commune une application mais programmée avec les languages du web (HTML5/CSS/JavaScript).

 

Dans la pratique, ça fonctionne en allant sur l’URL depuis le browser de votre smartphone, et ça chargera la WebApp.

Probleme : évidemment, ça demande au browser de charger les fichiers (lent), et si vous n’avez pas de réseau WiFi ni de 3G, et bien votre webapp ne chargera pas.

 

Tout problème ayant sa solution, il existe un certain nombre de frameworks permattant de convertir un site web (ou webapp) en vraie application pour mobile. Celui que j’utilise s’appelle PhoneGap, et il comporte un certain nombre d’avantages :

  • il est entièrement opensource
  • il supporte 7 plateformes ! Ce qui vous permet de transformer votre WebApp (sans la modifier) en applications pour : iOS, Android, Symbian, BlackBerry, WindowsPhone, webOS et bada.
  • il supporte très bien le framework Sencha Touch (qui est celui que j’utilise)
  • il est simple d’utilisation et bien documenté

Voici ci-dessous une video d’introduction à PhoneGap :

 

Pour finir, un service proposé par PhoneGap que je trouve complètement génial : PhoneGap Build

Il s’agit d’un service hébergé sur les serveurs de Nitobi (l’éditeur de PhoneGap) et qui s’occupe pour vous de toute la partie compilation et packaging des applications (qui peut s’avérer très fastidieuse), tout ce qu’il faut faire c’est uploader le code de votre webapp et PhoneGap Build fait le reste et vous fournit les fichiers d’application (un apk pour android, etc…) !

 

Plus besoin d’avoir installé chez vous les environnements de compilation de chaque plateforme (et plus besoin d ‘avoir un XCode à disposition en permanence pour compiler pour iOS :D ) bref c’est vraiment confortable et ça marche plutot bien, malgré le fait que ce soit encore en beta.

 

A noter que Nitobi, la société créatrice de PhoneGap, a été rachetée récemment par la mastodonte Adobe. Cela ne semble pas remettre en cause l’ouverture de PhoneGap (et espérons que cela reste ainsi).

 

Et vous, vous utilisez ce genre de framework ?

J’ai reçu coup sur coup plusieurs messages de visiteurs de ce blog me demandant plus de détails sur l’architecture logicielle de mon installation domotique. Effectivement j’ai plusieurs fois raconté ma life ici même en donnant des explications sur tel ou tel élément de mon installation mais je n’ai jamais donné de vision un peu globale de l’usine à gaz du système.

Je vais donc essayer de remédier à cette lacune en donnant quelques explications sur la partie logicielle, et comme je ne recule devant aucun sacrifice, j’ai même sorti ma plus belle souris pour faire un schéma global, dont je détaille en dessous les différents éléments.

 

 

 

 

1 – xPL Software Gateways

 Il s’agit de tous les agents xPL permettant de s’interfacer avec du ‘logiciel’. Par exemple :

  • xpl-rrd pour archiver les données des sensors dans des Round Robbin Databases et permettre de graphage
  • xpl-pushmsg pour permettre d’envoyer des notifications à mes appareils mobiles sous iOS ou Android
  • xpl-sendmail pour envoyer des mails
  • xpl-dawndusk pour notifier du lever/coucher du soleil

2 – xPL Hardware Gateways

 Tout comme ceux ci-dessus, il s’agit d’agents xPL mais qui permettent de s’interfacer avec des appareils/des devices. Par exemple pour ceux que j’utilise :

  • CidModem (from domogik) : communique avec un modem 56K USB branché sur ma ligne téléphonique pour détecter les appels entrants et numéro d’appelant sur mon téléphone fixe
  • xpl-currentcost : communique avec un CurrentCost ENVY pour remonter sur mon réseau xPL la consommation électrique instantanée de mon habitat
  • xpl-rfxcomrx/tx : ces deux agents (le RX pour la réception et le TX pour la transmission) communiquent avec les célèbres RFXCom. Cela permet à mon installation domotique de ‘parler’ un certain nombre de protocoles RF de domotique (notamment X10, HomeEasy/Chacon, sensors Oregon Scientific, etc…)
  • xpl-zibase : cet agent communique avec la ZiBase, et permet à celle-ci de ‘parler’ le xPL. En ce qui me concerne cela m’offre la possibilité entre autres d’intégrer des appareils X2D (protocole de domotique du fabricant DeltaDore) à mon installation, comme par exemple mes modules de contrôle de chauffage sur fil pilote
  • xpl-apcups : cet agent permet d’interfacer un onduleur APC sur le réseau xPL, et donc de reçevoir les évennements liés aux interruptions d’alimentation électrique et à la durée restante sur batterie.
  • NabazTag : cet agent permet comme son nom l’indique de communiquer avec les Nabaztag (mais vu l’actualité peu réjouissante de ces lapins je ne m’étendrai pas sur le sujet dans ce billet ;) )

 

3 – xPL-enabled Devices

Il n’y en a pas beaucoup mais il y en a quand même : certains appareils sont conçus pour parler nativement le xPL. C’est notamment le cas des SqueezeBox de Logitech, grâce au plugin xAP : cela permet de gérer toute la diffusion audio dans la maison, avec plusieurs SqueezeBoxes, etc…

Un autre appareil récemment  sorti qui supporte nativement le xPL est le nouveau RFXCom v3, mais je n’en ai pas, mes RFXCom sont des modèles anciens en USB.

 

4 – HomeGuru Server

Là ça se complique un peu car ça devient vraiment custom ;) .

Il s’agit du cœur du système de domotique, de l’équivalent du xPLHAL pour ceux qui connaissent. C’est cet élément qui va par exemple :

  • connaitre la liste de tous les devices de mon installation domotique
  • centraliser les évennements xPL, et y réagir
  • lancer des actions en fonction d’un certain nombre de critères, etc…
  • plus globalement c’est le « cerveau » de l’installation domotique, c’est lui qui embarque l’intelligence

Je l’avais appelé à l’époque HomeGuru, et c’est le nom qu’a gardé ce petit soft depuis plusieurs années chez moi.

Techniquement, il s’agit d’un agent xPL au même titre que les autres agents que j’ai développés. Il est d’ailleurs également écrit en perl, utilisant le framework xpl-perl. Par contre il est plus compliqué que les simples gateway xPLs, car il prend en charge :

  • Une partie base de données : la liste des devices, leur configuration est stockée dans une base de données MySQL
  • Une partie ‘moteur de règles’ : c’est ce qui permet de lancer des actions suivant des déclencheurs et des conditions, avec des opérateurs logiques (ex: Quand TRIGGER1 est levé, lancer l’action ACTION1 SI CONDITON1 ET CONDITION2 sont réunies)
  • Une partie WebService : HomeGuru Server expose un petit webservice ‘REST’ pour que d’autre éléments (Cf parties 5 et 6) viennent interagir avec le système. C’est via ce webservice que la TOTALITE de la configuration est faite, en effet, HomeGuru Server en lui-même ne dispose pas d’une quelconque interface graphique (GUI) ou en ligne de commande (CLI).
  • Une partie scheduler : qui permet de lancer des actions suivant des dates et timers
  • Toute l’intelligence du système : types de devices, actionneurs, capteurs, sécurité…
  • La communication avec d’autres ‘univers’ qui ne se pluggent pas bien avec du xPL : par exemple pour ma part : les cameras de surveillance IP

 

5 – Mobile App / Webapp

Ici c’est en fait l’interface de commande « end user » du système domotique. C’est cette interface qui permet de consulter  l’état des modules domotiques, de les actionner, de voir les capteurs, les graphiques de températures ou de consommation électrique, les cameras en temps réel, etc…

 

 

 

 En terme de technos, il s’agit à la base d’une WebApp pour mobiles écrite en utilisant le framework HTML5/JS « Sencha Touch« , ce qui la rend compatible avec les devices iOS et Android; mais aussi avec le navigateur Safari pour Windows par exemple.

Au fur et à mesure de l’utilisation j’ai fini par implémenter carrement sous forme d’application via ‘PhoneGap‘, qui permet de transformer une webapp en application pour Android ou iOS (ou même d’autres OS mobiles, 6 en tout). Cela permet d’être plus réactif, et d’éviter la problématique de l’hébergement de la WebApp.

Last but not least, comme vu au dessus, cette WebApp interagit avec le HomeGuru Server (et uniquement avec le HomeGuru Server) via le WebService REST exposé par celui-ci.

 

6 – Configuration Website

Pour finir, il s’agit de l’interface de configuration/administration du système domotique. Il permet par exemple de :

  • Ajouter un device/appareil
  • Configurer le moteur de règle des évènements via des Triggers, Conditions et Actions
  • Configurer la partie ‘sécurité’ (dev in progres…)
  • Voir les logs du réseau xPL

En techno, il s’agit ici encore d’un site web écrit en utilisant le framework Sencha Ext JS. Pour ceux qui connaissent, cela le fait ressembler à une application classique.

Ici aussi, le site d’administration communique avec le HomeGuru Server (et seulement avec lui), en utilisant le WebService REST exposé.

 

7 – Autres éléments utilisés

On trouve aussi d’autres éléments logiciels utilisés indirectement dans le système :

  • Openjabnab : Pour remplacer les defunts serveurs Nabaztag
  • SqueezeCenter : le logiciel serveur (gratuit) des SqueezeBox de Logitech
  • ZoneMinder : le logiciel pour centraliser toute la partie caméras de surveillance
  • MythTV (partie backend) pour la distribution video de la TV par satellite notamment
  • XBMC : le frontend pour la video et la TV
  • …d’autres que j’oublie ?…

 

 

Et voila pour le petit tour d’horizon de la partie logicielle. Comme d’habitude n’hésitez pas à me poser vos questions, j’essayerai d’y répondre du mieux que je peux, et le plus vite possible (enfin… le moins lentement possible…).

A venir, probablement d’autres article détaillant certains points (dites moi si vous avez une partie préferée).

J’entends d’ici (oui oui j’ai l’ouïe super développée) certains dire « ok c’est bien beau tout ça mais quand est ce que tu nous met à dispo tes développements ? » Et bien je l’espère assez rapidement pour les 3 éléments que je n’ai pas encore publiés :

  • Le HomeGuru Server, coeur du système
  • La WebApp Mobile
  • Le site de configuration

Les premiers jours de pluie arrivant, il est temps de se replonger un peu dans son installation domotique, et d’y apporter les quelques modifications auxquelles on a pensé cet été !

De mon côté l’été s’est traduit par l’arrivée à la maison de mes premiers devices sous Android, et comme j’utilisais dans mon installation xPL les notifications push Prowl (Cf : http://www.poulpy.com/2011/02/les-notifications-push-prowl-et-pushme-to-en-xpl/), j’en ai été privé (et oui, Prowl et Pushme.to ne fonctionnent actuellement que sous iOS, pas sous Android).

 

Je me suis mis en quête de systèmes de notification pour Android et j’en ai trouvé deux :

 

Pour intégrer ces systèmes dans mon réseau xPL, j’ai donc fait évoluer mon agent xPL de notification (xPL-PushMsg) pour y ajouter le support de ces deux nouveaux systèmes, qui viennent donc s’ajouter à Prowl et Pushme.to.

 

Il s’agit de la version 0.3 de xPL-PushMsg (toujours en perl avec le framework xpl-perl). Téléchargement par ici !

 

Vous retours sont, comme toujours, les bienvenus !


La plupart de ceux qui lisent ce blog connaissent déjà, de nom au moins, la ZiBase : le contrôleur domotique de la société française Zodianet. Cette ZiBase est capable de parler plusieurs protocoles liés à la domotique : le X10 RF, le HomeEasy/Chacon, le Visonic, et même, plus récemment, le X2D (c’est le protocole utilisé par les produits Delta Dore ce qui ouvre la ZiBase à une gamme très large de produits déjà largement distribués) !

Ayant des modules Delta Dore pour le contrôle par fil pilote de mon chauffage électrique, l’ajout du support du X2D est ce qui m’a fait franchir le pas pour acquérir cette fameuse ZiBase :) .


Ceux qui ont déjà lu les quelques autres articles de ce blog savent comment cela devait se finir chez moi : par la réalisation d’un module xPL permettant d’interfacer la ZiBase sur mon réseau xPL.


Voici donc ma gateway xPL pour la ZiBase, comme d’habitude développée en perl par dessus le framework xpl-perl de Mark Hindess, et conçue pour fonctionner sous linux. J’en profite pour remercier Zodianet et Mickael pour leur aide, support et enthousiasme !

Pour le téléchargement, c’est par ici.

Pour l’installation c’est du standard :

tar zxfv xpl-zibase*.tar.gz
perl Makefile.PL
make
sudo make install

et pour lancer le module c’est tout simple :

xpl-zibase -v --zibase-verbose

Une fois lancé le module va chercher une ZiBase sur le même réseau et, une fois trouvée il affichera quelque chose du genre :

Listening on 192.168.X.XXX:YYYY
Sending on 192.168.X.XXX
Listening ZiBase messages on 0.0.0.0:28734
Found ZiBase 'ZiBASEXXXXXX' at IP 111.222.333.444

Le module va diffuser sur le réseau xPL tous les messages RF qu’elle reçevra. Par exemple pour une sonde Oregon Scientific:

* - thgr228n.OS439171073[temp]=16.2
* - thgr228n.OS439171073[humidity]=67

Et, pour envoyer des commandes à vos appareils déclarés dans votre ZiBase :

# Pour allumer le device F5 :
xpl-sender -m xpl-cmnd -c x10.basic device=f5 command=on

 # Pour dimmer une lampe ayant le code F5 (marche seulement pour les modules Chacon et X2D) :
 xpl-sender -m xpl-cmnd -c x10.basic device=f5 command=dim level=50


Et voila ! Comme d’habitude n’hésitez pas à me faire part des difficultés que vous pourriez rencontrer avec ce module, soucis et remarques en tous genres; soit en commentaire de de billet, soit via le formulaire de contact du site.


A noter que la ZiBase qui était depuis quelque temps en rupture de stock devrait être réapprovisionnée d’ici quelques jours dans toutes les bonnes crèmeries comme par exemple ici chez Planète-Domotique, avec en prime une réduction de 50€ si vous pré-commandez jusqu’au 15 avril (oui je sais… c’est demain ;) ), voir ici.

Les possesseurs de Nabaztag l’auront bien remarqué : difficile ces derniers temps de « suivre le lapin blanc », et ce depuis plusieurs jours.

Ce fameux lapin qui fait partie de ma collection spéciale « inutile mais indispensable » reste désespérément inerte, il ne parle plus, et ne se connecte même plus à l’écosystème nabaztag… Le site web nabaztag.com est lui aussi complètement mort, tout comme les autres sites associés www.violet.net, my.violet.net…


N’ayant aucune nouvelle par e-mail, j’ai quand même fini par chercher un peu ce qu’il se passait, et il s’agit en fait d’une migration d’infrastructure qui s’est -très- mal passée chez Mindscape (pour rappel Mindscape avait en 2009 racheté Violet, société créatrice du nabaztag qui était alors en grande difficulté financière).

Mindscape communique assez régulièrement sur cet incident, mais ils le font sur le blog du Karotz (successeur du nabaztag). Vous pouvez aller voir les détails sur leur blog; mais grosso modo, lors du déménagement des infrastructures nabaztag, un des 25 serveurs n’a pas redémarré et ça a mis en rade la totalité ou presque de l’écosystème. Voila maintenant plusieurs jours que les techniciens de Mindscape tentent de remonter le service, et ce sans succès pour le moment. Mindscape a communiqué aujourd’hui que la réparation allait probablement au moins durer encore la totalité du weekend).

(pour les détails techniques : il s’agit apparemment d’un array RAID qui a fait pschiiit)


Outre le fait que ce lapin inerte fait vraiment peine à voir dans mon salon depuis quelques jours, quelles conclusions peut-on -tenter d’- en tirer ? :

  • Les objets communicants, et autres devices connectés en permanence c’est super et ça a plein d’avantages, mais quand on est à 100% dépendant de la connexion et de l’infrastructure en face, cela comporte des risques et on le voit bien là.
  • On comprend bien l’intérêt que les objets soient connecté à un écosystème, mais sa défaillance ne doit pas les transformer en vulgaire presse-papier ! Comment ? :
    • En diffusant le code du serveur nabaztag, ou en publiant le protocole de communication utilisé : vœux pieux peut-être mais cela permettrait à une communauté de développeurs de créer autour du lapin et d’offrir des alternatives. En dehors de ça, cela assurerait une survie des objets déjà vendus si jamais la société coule (ce que personne ne lui souhaite soyons clairs !)
    • En prévoyant ces pannes : l’objet, lorsqu’il est déconnecté (quelle qu’en soit la raison), devrait pouvoir fonctionner, même si c’est en mode dégradé, avec des fonctionnalités en moins. (Pour prendre un exemple dans le domaine de la domotique, une ZiBase, si elle était privée d’internet, continuerait de fonctionner sans problème, il n’y aurait que l’aspect configuration qui serait indisponible).


On peut comprendre que Mindscape ait eu des difficultés à reprendre les infras et architectures de Violet, même si il est difficilement compréhensible, dans le monde des services grand public sur le net, qu’on ne puisse pas du tout remonter un service en 1 semaine (pour moi… quand on a plus de 150.000 utilisateurs quotidiens, même si on a pas un zouli PRA bien huilé, on fait en sorte d’avoir au moins un backup exploitable et une machine de spare).

Cela ayant inquiété pas mal les futurs acquéreurs du Karotz, Mindscape communique également sur le fait que ce nouveau lapin fonctionnera sur des infrastructures complètement différentes, que l’on peut espérer être plus tolérantes aux pannes. Autre détail d’importance : nos ‘vieux’ nabaztag seront à terme migrés sur la nouvelle infrastructure Karotz, qui devrait offrir une meilleure qualité de service.


Aller je conclus : malgré une gestion de l’incident qui semble, vu de loin, très perfectible; on peut quand même saluer la transparence des communications de Mindscape (même si perso j’aurai préféré les recevoir par mail plutôt que de devoir aller chercher sur le net); et souhaiter bon courage aux tekos mobilisés, en espérant un retour au plus vite à la normale !


Les ‘notifications push’ sont très intéressantes dans le domaine de la domotique comme l’ont fait remarquer bien avant moi sur leurs blogs Clement Storck : http://clement.storck.me/?p=78 et Spy : http://www.e-home.fr/2011/01/domotique-notifications-push/

Pour les non initiés ou les non utilisateurs d’iPhone/iPad, les notifications push c’est un système qui permet aux applications iOS d’afficher une notification avec une alerte sur un iPhone ou un iPad; un peu comme un SMS en fait mais gratuit et avec des fonctionnalités plus extensibles.

Comme vous pouvez le voir dans l’article de Clement, les deux applications les plus connues dans ce domaine sont :


Ayant eu envie d’utiliser ces moyens de notification dans mon installation domotique, je me suis attelé à les y intégrer; ce qui a débouché (comme souvent chez moi ;) ) sur un petit agent xPL écrit en perl s’intégrant au framework xpl-perl de Mark Hindess.

Son petit nom c’est xpl-pushmsg et pour le télécharger, il faut aller dans la section downloads (sisi c’est en haut à droite là).

L’installation se fait comme n’importe quel programme perl :

tar zxfv xpl-pushmsg*.tar.gz
perl Makefile.PL
make
sudo make install

Puis il se lance simplement :

xpl-pushmsg -v

Vous pouvez ensuite envoyer des notification Prowl ou Pushme.to via des commandes sur votre réseau xPL.

Pour Prowl :
xpl-sender -m xpl-cmnd -c sendmsg.basic to=APIKEY@prowl body=bonjour subject=Alerte
(Regardez le man de xpl-pushmsg pour connaitre tous les paramètres car il y a d'autres possibilités comme par exemple la priorité des messages ou encore la possibilité d'attacher une URL)

Pour Pushme.to :
xpl-sender -m xpl-cmnd -c sendmsg.basic to=NICKNAME@pushmeto body=bonjour from=Maison


Et voila ! De cette façon vous pourrez vous envoyer des notifications pour n’importe quel évènement de votre maison, comme certains l’ont fait par exemple lorsque quelqu’un sonne à leur porte : http://clement.storck.me/?p=80


Comme d’habitude avec les bouts de code que je fait, celui-ci n’est probablement pas exempt de bug, et je suis preneur de toute suggestion :)

Une des principales utilisations de la domotique est la gestion de l’éclairage. A titre personnel, la gestion de l’éclairage représente actuellement la plus grand partie de mon installation.

J’utilise pour cela des modules ON/OFF Chacon (utilisant la technologie HomeEasy) CH54555, qui présentent l’avantage d’être très peu onéreux (moins de 15€) et d’être de taille assez réduite, donc intégrables derrière des appliques par exemple.


Le tout fonctionne très bien mais je me suis dit que ce serait sympa de remplacer certains points lumineux par des éclairages à intensité variable (dimmable), en restant domotisés bien entendu, faut pas déconner non plus ;) Les avantages sont de deux ordres :

  • La possibilité de faire varier en intensité l’éclairage : cela permet d’obtenir précisément l’ambiance lumineuse que l’on souhaite, et éventuellement de faire baisser la consommation électrique de l’éclairage lorsqu’il est dimmé, par rapport à son éclairage maximum (oui bon ok le gain est faible, surtout au regard de la conso déjà très réduite des nouvelles ampoules mais… y’a pas de petites économies comme dirait l’autre !)
  • Une utilisation plus ‘douce’ : les modules dimmers ne contiennent pas de relais, contrairement aux modules ON/OFF. Pour ceux qui ne connaissent pas, le relais c’est le composant électronique qui fait la commutation ON/OFF et qui fait ce petit bruit ‘clac’ à chaque fois que l’on allume/éteint le module. Et bien, avec un module dimmer : l’allumage se fait dans un silence absolu, ce qui finalement est assez appréciable.


Le matériel nécessaire

Pour mettre en place un point lumineux variable et domotisé (en techno HomeEasy/Chacon), plusieurs alternatives sont possibles :

  • La solution « old school » : Module Chacon dimmer + Ampoule classique à incandescence
  • La solution « intermédiaire » : Module Chacon dimmer + Ampoule fluocompacte (à économie d’énergie) spéciale ‘dimmable’
  • La solution « tout intégrée » : Ampoule fluocompacte Chacon DI-O dimmable avec module domotique intégré, que vous pouvez trouver chez Planete-Domotique notamment



Old School Intermédiaire Tout intégré
Photo







Matériel

1 Ampoule à incandescence de recupération

1 Module dimmer 300W

1 Ampoule fluocompacte dimmable Govena FlexDigit

1 Module dimmer 300W

1 Ampoule Chacon DI-O dimmable
Description Ici, on récupère simplement une veille ampoule à incandescence que l’on branche sur un module Chacon variateur Là on utilise aussi un module variateur Chacon, mais sur lequel on a branché une ampoule à économie d’énergie (fluocompacte) dimmable. (attention les ampoules fluocompactes classiques ne sont pas dimmables) Ici c’est une solution tout récemment sortie chez Chacon : une ampoule à économie d’énergie de 20W, dimmable, et avec un récepteur domotique déjà intégré

Technologie d’ampoule

à incandescence fluocompacte fluocompacte
Variation 16 niveaux 16 niveaux 16 niveaux
Avantages Allumage progressif du plus bel effet Séparation dimmer / ampoule All in one => pas de câblage à réaliser
Inconvénients Vieille ampoule à incandescence (consommation) L’ampoule Govena émet un bruit de grésillement en fonctionnement

Tout est intégré : si il y a une panne : il faut tout remplacer

Programmation de l’ampoule pas pratique : on aurait aimé un simple bouton d’apprentissage !

Prix total
16,90 € 38,85 € 32,90 €


Que choisir ? Et bien pour moi cela a été relativement simple : La première solution, à base d’ampoule à incandescence à la papy n’était pas envisageable. La seconde solution avec ampoule dimmable Govena semblait séduisante MAIS ce bruit de grésillement que fait l’ampoule dès qu’elle est allumée, et quel que soit son niveau de luminosité, est rédibitoire (Il s’agit probablement d’un sorte d’incompatibilité entre cette ampoule et les dimmers Chacon car la même ampoule, directement branchée sans dimmer, n’émet aucun bruit et marche parfaitement. Pour confirmer il faudrait essayer avec une autre ampoule dimmable (que je n’ai pas) ou un autre dimmer (que je n’ai pas non plus)).

Cela me laisse la dernière solution : L’ampoule all-in-one Chacon fonctionne très bien. Son principal avantage (tout-en-un) est aussi un de ses inconvénients : en effet, si l’ampoule tombe en panne, c’est la totalité qu’il faut changer, et à 33€ la bête ça ferait un peu mal. En dehors de cela l’ampoule fonctionne très bien et est plutôt réactive à l’allumage (temps de chauffe) par rapport à des fluocompactes d’entrée de gamme.


Le contrôle des dimmers

Comme la plupart des éléments domotique, les dimmers Chacon peuvent se contrôler de deux façons :

  • Directement avec l’interrupteur domotisé (gamme d’interrupteurs émetteurs ou télécommandes Chacon). Ici l’utilisation est vraiment peu pratique… Pour faire dimmer le point lumineux, il faut appuyer deux fois de suite sur l’émetteur ‘ON’; l’ampoule se met alors à dimmer progressivement en boucle. Lorsqu’elle a atteint la luminosité désirée, on re-appuie sur ‘ON’ et elle s’arrête de dimmer. Le niveau de luminosité est mémorisé et sera appliqué au prochain allumage de l’éclairage.


  • A partir d’un système domotique en utilisant une interface d’émission compatible avec le protocole HomeEasy (RFXCom, TellStick, ZiBase…). Avec cette méthode on peut avoir un ‘dimming direct’ : on peut envoyer un ordre contenant le niveau de luminosité désiré; l’ampoule se met alors directement au bon niveau sans avoir besoin de dimmer en boucle. J’ai testé cette fonctionnalité avec un émetteur RFXCOM et les modules xPL-perl; en envoyant des commandes avec les paramètres [ command=preset, level=XX ] avec XX un nombre entre 0 et 15 : ça marche très bien. Là aussi la valeur de luminosité est retenue entre les allumages du module.

Conclusion

L’ampoule DI-O dimmable tout intégrée de Chacon me semble être un bon produit et c’est donc celui que je vais utiliser pour les points lumineux dimmables que je souhaite domotiser. L’inconnue reste cependant la fiabilité qui devra être au rendez-vous pour ne pas avoir à changer tout le bazar prématurément.

NB : Pour ceux qui utilisent des halogènes basse tension (12V), il existe dans le même genre un transformateur 12V dimmable compatible chacon (ancienne gamme). N’ayant pas ce type d’éclairage, je n’ai pas testé ;) .

Et bien voila, joli délai depuis mon dernier post, un rythme effréné de 1 article tous les 6 mois c’est impressionnant non ? Non… ok.

En ce tout début d’année, je me suis intéressé de plus près à mettre en place une IHM de contrôle pour mon installation domotique. Je vais donc partager le début de mes réflexions.


Les contraintes pour réaliser ce que je voulais :

(pour rappel chez moi c’est des technos low cost type Chacon/HomeEasy, et c’est du xPL pour les interfaces)

  • Pas envie de dépenser des centaines d’euros dans une station de contrôle domotique type Crestron ou les écrans HomeSeer : j’ai déjà suffisamment de gadgets qui trainent… autant les utiliser !
  • Évidemment, pas envie d’acheter de software ni de licence
  • Pas envie (enfin… surtout pas le temps en fait) d’apprendre à fond un nouveau langage de programmation, un nouvel environnement non connu (genre Objective C et XCode pour ne pas les nommer ;) )
  • Je veux du pratique, du « à portée de main », du tactile, et quelque chose d’un minimum joli et réactif (oui hein on est en 2011, c’est fini le minitel)


Les opportunités et autres réflexions :

  • Un des rares trucs que j’aie fait sur mon installation est de tout passer en xPL (Cf mes précédents articles sur le sujet). Du coup, pas de code compliqué à faire pour discuter avec les interfaces domotique (RFXCOM, TellStick, CM15, etc..)
  • A moins que vous ayez été isolé du monde durant les précédents mois, ça ne vous aura pas échappé : l’essor des appareils mobiles : iPhone et smartphones Android  évidemment, mais aussi la déferlante de tablettes tactiles qui arrivent sur le marché. Perso de ce côté là je suis équipé en Apple (iPhone et iPad) : je veux donc quelque chose qui me permette de contrôler mon installation au moins depuis ces deux appareils
  • En prévision de cette problématique, j’avais réalisé en perl (avec les librairies xpl-perl comme d’hab) un petit programme de contrôle domotique qui tourne sur mon réseau xPL, et qui expose une API Web à la REST (très simple pour le moment) pour permettre de commander et de récupérer le status des modules et capteurs de mon installation : Je peux donc contrôler mon installation à coup de requêtes Web simples : il ne reste plus qu’à faire un joli frontend (‘ya pu k’à’ comme dirait l’autre ;) )


Choix de la techno :

Deux possibilités : une webapp ou une vraie application mobile. Le titre de l’article vous a mis sur la voie : j’ai choisi la Webapp pour plusieurs raisons :

  • Rapidité de développement : pas envie de passer trop de temps à refaire de l’Objective-C sous XCode ou à apprendre à coder pour Android
  • Portabilité : une webapp n’est rien d’autre qu’un site web qui ressemble à une application. Du coup une webapp est potentiellement utilisable sur n’importe quel device équipé d’un navigateur Web récent. C’est particulièrement important pour moi qui n’aie pas envie de m’enfermer sur une marque. (A titre d’exemple, on commence à trouver des tablettes Android low cost qui feraient potentiellement de bons écrans de contrôle tactiles, beaucoup moins chez qu’un iPad).

Choix du Framework :

Décision est prise de faire une Webapp. Pour faciliter le développement (et aussi parce-que je suis une feignasse),  l’idée est bien entendu d’utiliser un Framework dédié aux Webapps. Je vous laisse googler, il y en a plusieurs, iWebKit, JQTouch, iUI, etc… Mon choix (en espérant qu’il soit bon) s’est porté sur le framework Sencha Touch.

Sencha Touch est un framework javascript spécifiquement fait pour les applications mobiles tactiles. Il est une excroissance de Ext JS pour ceux qui connaissent, un autre framework javascript bien connu depuis un moment. Il utilise les technos Javascript, HTML5 et CSS3, et est à ce titre compatible avec les appareils sous iOS ET avec ceux sous Android. Il est plus généralement compatible avec les navigateurs WebKit. En ce qui concerne les navigateurs pour ordinateurs classiques, c’est vers Safari ou vers Chrome qu’il faudra se tourner pour tester les développements réalisés sur un PC ou un Mac.

Last but not least, Sencha Touch dispose d’une licence open-source.


Mes impressions :

Étant plus à placer dans la catégorie des développeurs du dimanche, j’ai eu un peu de mal à me mettre dans la logique du framework Sencha Touch; c’est un peu particulier, mais rien d’insurmontable quand on suit les nombreux exemples qu’on trouve sur le net.

Comme je le mentionnait plus haut, avoir toutes les infos liées à mon installation à disposition dans une API Web REST a été d’une grande aide => ça permet de vraiment se concentrer sur la partie UserInterface et de ne pas s’embetter avec les détails d’implémentation de la partie domotique à proprement parler.


Ce que ça donne maintenant :

Attention hein, interdit de se moquer : c’est loin d’être fini :p. Mon premier objectif était de faire un écran général pour visualiser les infos principales et contrôler mes modules domotiques. Voici ce que ça donne :

Sur iPhone :


Sur iPad :


Pour la suite :

Ca reste très succinct pour le moment. Plein de choses à y ajouter, dans le désordre ce qui me vient à l’esprit :

  • l’accès aux graphes pour les données environnementales
  • l’accès à des macros, voire à des screnarii
  • le contrôle multimédia : multiroom (squeezebox soft), media center (XBMC)
  • une section pour tout ce qui est sécurité (détecteurs d’ouverture, videosurveillance, etc…)

On verra ce que je peux faire avancer en fonction du temps (ou plutot du manque de temps ;) ). Autre point intéressant avec une Webapp qui accède à toutes ses données via une API Web en REST, c’est que peut être si un jour j’utilise un autre soft (Domogik ? ;) ) je pourrai, à moindre frais, le plugger dessus…