tag:blogger.com,1999:blog-941760352407984992024-03-14T05:18:35.266+01:00Domotique ZIBASE : Tout est possible !Allumer la lumière, gérer son chauffage et sa VMC, être prévenu de la présence d'un intrus, mettre en place un système d'alarme, ouvrir son garage, son portail, gérer ses objets connectés.... à distance et depuis son téléphone....ce n'est plus une utopie...une réalité simple et accessible !
Zodianet, une société française, le permet grâce à la Zibase, une box domotique.
Retrouvez-nous sur twitter : @mrQuellegoule et @MissQuellegoule et par email : mr.quellegoule@gmail.comMissQuellegoulehttp://www.blogger.com/profile/00930129530375869596noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-94176035240798499.post-20756372019857866842016-06-11T17:30:00.000+02:002016-06-18T23:15:00.778+02:00Ampoule connectée LIFX Color 1000<div dir="ltr">
<h2 style="text-align: center;">
<u style="font-size: xx-large;">Zibase Multi et ampoule connectée</u></h2>
<h2 style="text-align: center;">
<u style="font-size: xx-large;">LIFX Color 1000</u></h2>
<br></div>
<div dir="ltr">
<b><u>Préambule</u></b><br>
<br>
Le manque de temps et la liquidation judiciaire de Zodianet explique cette absence relativement longue sur le blog. Je ne parlerai pas sur ce blog de la liquidation de Zodianet puis de son rachat. En privé, nous avons eu beaucoup de contacts les uns avec les autres sur ce sujet. L'avenir nous montrera que Zibase va continuer à vivre et à innover....à suivre...<br>
<br>
Bref, nous avons décidé de vous présenter un objet connecté assez peu présent en France mais que nous apprécions vraiment : les ampoules LIFX et la possibilité de les intégrer sur Zibase Multi.<br>
<br>
Le modèle présenté dans cet article est la Color 1000 dont vous pouvez trouver la description sur le site du constructeur <a href="http://www.lifx.com/products/color-1000?variant=8930382467">ici</a> (avec une douille E27).<br>
<br>
Il s'agit d'une ampoule se connectant sur votre réseau WIFI et pouvant proposer 16 millions de couleur, une luminosité très importante, le tout commandé par votre smartphone via l'application LIFX mais également via votre box domotique Zibase Multi préférée, IFTTT, Imperihome ou toute autre solution permettant de faire appel à une API.<br>
<br>
<b><u>Le but</u></b><br>
<br>
L'objectif est de découvrir le monde des ampoules connectées et de pouvoir intégrer les ampoules LIFX dans une solution domotique telle que Zibase Multi.<br>
<br>
L'intérêt, parmi tant d'autres, de ces ampoules LIFX color 1000 est qu'elles disposent d'une <a href="https://api.developer.lifx.com/">API </a>qui va nous permettre via Javascript de pouvoir parfaitement l'intégrer à Zibase Multi.<br>
<br>
Sachez que LIFX dispose également d'un <a href="https://ifttt.com/lifx">"channel" IFTTT</a> et est également parfaitement compatible en natif avec <a href="http://www.evertygo.com/blog/2015/11/19/imperihome-android-2-7-lifx-parrot-ecocompteur">ImperiHome</a>. Bref, 3 solutions possibles en fonction de vos connaissances et du temps que vous souhaitez y consacrer.<br>
<br>
<b><u>Présentation de Lifx Color 1000</u></b><br>
<b><u><br></u></b>La société Lifx est née d'un projet KickStarter finalisé en novembre 2012 avec un financement de près de $1.3 Million et près de 10000 contributeurs. Autant dire que depuis le temps a passé.<br>
<br>
La LIFX Color 1000 est sortie officiellement en octobre 2015 avec de net progrès par rapport aux ampoules précédentes de la même marque.<br>
<br>
Par rapport à l'ampoule Philips Hue, la différence majeure est que la LIFX Color 1000 intègre la technologie WIFI dans son culot (comme toutes les ampoules LIFX qui ne sont aujourd'hui plus disponibles) et ne nécessite aucune passerelle à brancher sur votre box ou routeur.<br>
<br>
Ci-dessous, vous trouverez les principales caractéristiques de l'ampoule:<br>
<br>
Dimension avec un culot E27 : 63 mm de large et 115 mm de haut<br>
Luminosité : 1055 LUMENS (équivalent 75 watt incandescent)<br>
Consommation maximum : 11 watt<br>
Poids : 240 grammes<br>
Durée de vie annoncée : 25000 heures (23 ans à raison de 3 heures par jour<br>
Wifi : WPA ou WPA2 (WEP ne fonctionne pas)<br>
Réseau : Nécessite DHCP<br>
Système d'exploitation : IOS 8.0 et supérieur / Android 4.0 et supérieur<br>
Garantie : 2 ans<br>
Utilisation : Utilisation intérieur. N'est pas prévue pour être exposée aux intempéries. Néanmoins, un usage sous abris en extérieur ne posera pas de souci.<br>
<br>
<b><u>Déballage de Lifx Color 1000</u></b><br>
<br>
L'emballage est plutôt moderne et bien réussi :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-hDy_ngfMH_U/V0r6CGkwemI/AAAAAAAAAtc/HCFFTOhX1gE4JqSwSD0r2Y7XGsBmEEV2wCLcB/s1600/Emballage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://3.bp.blogspot.com/-hDy_ngfMH_U/V0r6CGkwemI/AAAAAAAAAtc/HCFFTOhX1gE4JqSwSD0r2Y7XGsBmEEV2wCLcB/s320/Emballage.jpg" width="193"></a></div>
<br>
Et à l'intérieur, un boite en carton contenant l’ampoule et une petite documentation.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-oAdX_5TS6WI/V0r7G_mFSxI/AAAAAAAAAtk/TiarR03-a3MCQwp58TSx2cp719JoKMXTACLcB/s1600/IMG_20160528_191722.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://1.bp.blogspot.com/-oAdX_5TS6WI/V0r7G_mFSxI/AAAAAAAAAtk/TiarR03-a3MCQwp58TSx2cp719JoKMXTACLcB/s320/IMG_20160528_191722.jpg" width="180"></a></div>
<br>
<br>
Bref, une ampoule qui parait de bonne facture et d'une taille raisonnable pour une ampoule connectée (assurez vous quand même de vérifier que sa taille n'est pas un problème par rapport au lustre ou à la lampe dans laquelle vous allez la placer).<br>
<br>
<b><u>Configuration/paramétrage de l'ampoule Lifx Color 1000 via l'application LIFX (IOS/Android)</u></b><br>
<br>
La configuration d'une ampoule a été bien conçue par LIFX et c'est vraiment une opération simplissime.<br>
<br>
1/ Visser l'ampoule sur votre Culot E27<br>
2/ Allumer l'interrupteur (votre ampoule s'allume immédiatement)<br>
3/ Télécharger l'application LIFX sur Android ou IOS<br>
4/ Lancer l'application<br>
5/ La première fois, il faut se créer un compte LIFX<br>
<br>
Ensuite, au lancement de l'application (en français !), vous arrivez sur l'écran principal ci-dessous (j'avais déjà configuré un certain nombre d'ampoules au moment où j'ai fait la capture d'écran) :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-Tq0v3myVOvo/V0sG5gcBegI/AAAAAAAAAt0/1hzlIQlmajItl7-BOMR_r2A9wnTlNL0QACLcB/s1600/LIFX_APPLI1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="521" src="https://1.bp.blogspot.com/-Tq0v3myVOvo/V0sG5gcBegI/AAAAAAAAAt0/1hzlIQlmajItl7-BOMR_r2A9wnTlNL0QACLcB/s640/LIFX_APPLI1.jpg" width="640"></a></div>
<br>
<br>
Une fois cliqué sur "Connecter la lumière" sur l'écran ci-dessus, un message d'avertissement vous est présenté :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-Yj0qiKTqq-k/V0sJQltaEbI/AAAAAAAAAuI/WyQZhj3AyToZPDZ7xqFumufqv4V8z1WkgCLcB/s1600/LIFX_APPLI2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="568" src="https://2.bp.blogspot.com/-Yj0qiKTqq-k/V0sJQltaEbI/AAAAAAAAAuI/WyQZhj3AyToZPDZ7xqFumufqv4V8z1WkgCLcB/s640/LIFX_APPLI2.jpg" width="640"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
<br>
Cliquer sur OK comme présenté sur le premier écran ci-dessus et automatiquement, les paramètres WIFI de votre Android (je n'ai pas fait les test avec l'iPhone) vont être ouverts. L'ampoule LIFX vous est proposée et vous devez cliquer dessus comme indiqué sur la capture.<br>
<br>
Quelque petites secondes plus tard, comme présenté ci-dessous dans la partie gauche, une notification va apparaître sur votre téléphone vous avertissant que le réseau WIFI (celui de l'ampoule) ne dispose d'aucun accès internet. Cliquer sur cette notification et l'écran ci-dessous à droite vous sera présenté :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-GS9yFQVcdbY/V0sMEciI4GI/AAAAAAAAAuY/J9n3oiCaumU8BugT-P6lm87ilO_9eKEjgCLcB/s1600/LIFX_APPLI3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="526" src="https://4.bp.blogspot.com/-GS9yFQVcdbY/V0sMEciI4GI/AAAAAAAAAuY/J9n3oiCaumU8BugT-P6lm87ilO_9eKEjgCLcB/s640/LIFX_APPLI3.jpg" width="640"></a></div>
<br>
<br>
Vous revenez dans l'application principale où vous devez choisir l'ampoule puis votre réseau WIFI.<br>
<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-PSUbJIWjx5Q/V0sNKJIPZgI/AAAAAAAAAug/6IwDhJOXGI4oDcyCPVBbWcVL4QGorHdHwCLcB/s1600/LIFX_APPLI4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="570" src="https://4.bp.blogspot.com/-PSUbJIWjx5Q/V0sNKJIPZgI/AAAAAAAAAug/6IwDhJOXGI4oDcyCPVBbWcVL4QGorHdHwCLcB/s640/LIFX_APPLI4.jpg" width="640"></a></div>
<br>
<br>
Le mot de passe de votre réseau Wifi va ensuite vous être demandé. L'ampoule s'initialise et vous êtes ensuite invités à choisir un emplacement, un groupe et dà onner un nom à l'ampoule comme présenté dans la capture d'écran (à droite ci-dessous).<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-bTi3SvYAwQE/V0sOsXXWGZI/AAAAAAAAAus/OZlSKoIoUocFxsoeWJs8xYg7MFUFdv8bQCLcB/s1600/LIFX_APPLI5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="528" src="https://3.bp.blogspot.com/-bTi3SvYAwQE/V0sOsXXWGZI/AAAAAAAAAus/OZlSKoIoUocFxsoeWJs8xYg7MFUFdv8bQCLcB/s640/LIFX_APPLI5.jpg" width="640"></a></div>
<br>
<br>
A noter que l'emplacement vous permettra d'agir sur toutes les ampoules en même temps (toutes les éteindre, les allumer, mettre les mêmes effets....). Un groupe permet ensuite de découper l'emplacement en plusieurs endroits (Salle à Manger, couloir, chambre 1...) là encore pour agir sur toutes les ampoules appartenant aux groupes. Ayant à ma disposition 4 ampoules, 3 ont été ajoutées dans le groupe Salle à manger et une autre dans le groupe couloir.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-gNv25ifTZhc/V0sQfLyrUmI/AAAAAAAAAu4/292Zp_PF0g8wzpm7ENOfSQJXgyNbjJZEwCLcB/s1600/Screenshot_20160529-164520.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://2.bp.blogspot.com/-gNv25ifTZhc/V0sQfLyrUmI/AAAAAAAAAu4/292Zp_PF0g8wzpm7ENOfSQJXgyNbjJZEwCLcB/s640/Screenshot_20160529-164520.png" width="360"></a></div>
<br>
Et voilà, votre ampoule est maintenant configurée. Vous pouvez réitérer l'opération si vous en disposez de plusieurs sachant que dans les faits, c'est très rapide et que cela ne prend que quelques secondes.<br>
<br>
<b><u>Utilisation de l'ampoule Lifx Color 1000 via l'application LIFX (IOS/Android)</u></b><br>
<b><u><br></u></b>
Je ne vais pas détailler ici l'utilisation de l'application LIFX pour vous laisser également la découvrir. Sachez seulement que pour chacun des emplacements, groupe ou ampoule, vous pouvez définir la couleur, les blancs, les thèmes et les effets comme présenté sur les captures ci-dessous.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-P5Y7i7xr0o8/V0saYzaVpGI/AAAAAAAAAvI/MUQRUnG_2D00ETM7irdEyURIyPz6jvg3QCLcB/s1600/LIFX_APPLI6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="https://3.bp.blogspot.com/-P5Y7i7xr0o8/V0saYzaVpGI/AAAAAAAAAvI/MUQRUnG_2D00ETM7irdEyURIyPz6jvg3QCLcB/s640/LIFX_APPLI6.jpg" width="640"></a></div>
<br>
Tout est possible afin de moduler l'éclairage tel qu'il est souhaité.<br>
<br>
Il est également possible de créer des nouvelles scènes (c'est à dire l'allumage automatique de certaines ampoules, groupes ou emplacements avec la couleur souhaitées) en fonction de programmes que vous spécifiez (heures de début / de fin, quand vous arrivez (géorepérage)...). Autant de fonctions qui peuvent être utiles.<br>
<br>
Vous trouverez ci-dessous une petite vidéo vous permettant de voir quelques thèmes, effets et les possibilités d'éclairages sachant qu'elles sont infinies et que les ampoules sont très réactives :<br>
<br>
<iframe center="" height="480" src="https://docs.google.com/file/d/0B3CTqWHBbSz7YmpsMjc4Wk02VWc/preview" text-align:="" width="640"></iframe>
<br>
<br>
<b><u>Utilisation de l'API LIFX</u></b><br>
<b><u><br></u></b>
Comme évoqué précédemment, une API LIFX est disponible <a href="https://api.developer.lifx.com/">ici</a>. Vous y trouverez l'ensemble de la documentation et la possibilité de tester chacune des fonctions.<br>
<br>
Il faut créer un compte puis créer un token qui vous permettra d'utiliser l'API. A noter qu'il faut bien noter ce Token qu'on ne peut pas retrouver ensuite dans son espace (pour des question de sécurité). Au cas où, il est possible de révoquer le token et d'en générer un autre.<br>
<br>
Comme vous avez pu le voir précédemment, j'ai créer un groupe "salle à manger" et un autre "couloir". L'idée étant depuis la Zibase de pouvoir Allumer/Eteindre les les 3 lampes de la salle à manger ou celle du couloir. Quand ces groupes ont été créés dans l'appli, un identifiant est affecté par LIFX à chacun des groupes. Pour obtenir les identifiants ainsi créés, il faut donc aller sur le site développer de LIFX : <a href="https://api.developer.lifx.com/">https://api.developer.lifx.com/</a> . Il faut bien évidemment se logger, avoir votre token obtenu à la création du compte et cliquer sur list lights tel que présenté ci-dessous :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-T4O8AvGJfHM/V1vZToGPVTI/AAAAAAAAAvo/vAH-_CBm1m0FFpCUKT8onEL2bkRvitvHgCLcB/s1600/API%2BList%2BLights.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="409" src="https://1.bp.blogspot.com/-T4O8AvGJfHM/V1vZToGPVTI/AAAAAAAAAvo/vAH-_CBm1m0FFpCUKT8onEL2bkRvitvHgCLcB/s640/API%2BList%2BLights.jpg" width="640"></a></div>
<br>
Cette fonction de l'API permet de lister les caractéristiques d'une ampoule, d'un groupe ou l'intégralité des ampoules et des groupes présents dans votre installation. Scroller ensuite jusqu'en bas de la page :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-O6XsgkoXR3Y/V1vaRoKXVLI/AAAAAAAAAv4/7AMal2GfBPMED2jPKPtvnxwu1ek3vHwEACLcB/s1600/API%2BList%2BLights%2B2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="329" src="https://3.bp.blogspot.com/-O6XsgkoXR3Y/V1vaRoKXVLI/AAAAAAAAAv4/7AMal2GfBPMED2jPKPtvnxwu1ek3vHwEACLcB/s640/API%2BList%2BLights%2B2.jpg" width="640"></a></div>
<br>
Cette petite interface est disponible dans toutes les fonctions de l'API et vous permet facilement d'interroger l'API. Entrer "all" dans le champ "selector" (paramètre de la fonction documenté <a href="https://api.developer.lifx.com/v1/docs/selectors" target="_blank">ici</a> : all signifiant que vous souhaitez toutes les caractéristiques de toutes les ampoules et les groupes). Cliquer ensuite sur "Try It !", entrer le token puis recliquer sur "Try It !". L'appel à cette fonction est déclencheé et l'API répond avec un code 200 si tout va bien avec un retour en JSON :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-JBtBV0OdXFw/V1vdkr727GI/AAAAAAAAAwE/gGDcXpNT790Bnq34NMIaF-fWGBdzCzU-ACLcB/s1600/API%2BList%2BLights%2B3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="417" src="https://2.bp.blogspot.com/-JBtBV0OdXFw/V1vdkr727GI/AAAAAAAAAwE/gGDcXpNT790Bnq34NMIaF-fWGBdzCzU-ACLcB/s640/API%2BList%2BLights%2B3.jpg" width="640"></a></div>
<br>
Dans la réponse JSON, vous pouvez maintenant aller chercher par exemple l'"id" du "group" dont le "name" est "salle à manger" (cet id est volontairement flouté dans la capture ci-dessus ainsi que tous les éléments personnels :)). Cet "Id" va ensuite nous permettre d'effectuer des commandes (allumer/éteindre) sur les 3 ampoules qui composent le groupe "Salle à manger".<br>
<br>
Nous allons ensuite nous servir le la fonction de l'Api LIFX "Set State" permettant d'allumer ou d'éteindre une ampoule, un groupe ou l'ensemble de son installation. La description de cette fonction de l'API LIFX est <a href="https://api.developer.lifx.com/docs/set-state" target="_blank">ici</a>. Pour faire appel à cette fonction, il faut donc écrire un petit script JS appelable depuis la Zibase. Comme un retour est présent dans la fonction, il est nécessaire de faire une injection de script (donc votre Zibase Multi doit être installée sur une version Android supérieure à 4.4).<br>
<br>
<u>Le JS pour allumer un groupe de lampe est le suivant : </u><br>
<br>
<span style="background-color: black; color: white;">//variable du groupe de lampe salle à manger</span><br>
<span style="background-color: black; color: white;">var url = "https://api.lifx.com/v1/lights/group_id:[VARIABLE DU GROUPE LAMPE A ALLUMER]/state";</span><br>
<span style="background-color: black; color: white;"><br></span>
<span style="background-color: black; color: white;">//paramètre pour allumer le groupe de lampe</span><br>
<span style="background-color: black; color: white;">var dataRequest = '{"power" : "on"}'; //mettre off à la place de on pour le scénario éteindre la lampe</span><br>
<span style="background-color: black; color: white;"><br></span>
<span style="background-color: black; color: white;">//Instancie l'objet qui va faire la requête HTTP</span><br>
<span style="background-color: black; color: white;">var anHttpRequest = new XMLHttpRequest();</span><br>
<span style="background-color: black; color: white;"><br></span>
<span style="background-color: black; color: white;">//Précise qu'il s'ait d'une requête de type PUT</span><br>
<span style="background-color: black; color: white;">anHttpRequest.open("PUT",url,true);</span><br>
<span style="background-color: black; color: white;"><br></span>
<span style="background-color: black; color: white;">//Place en entête de requête le token LIFX</span><br>
<span style="background-color: black; color: white;">anHttpRequest.setRequestHeader("Authorization", "Bearer [VOTRE TOKEN LIFX]");</span><br>
<span style="background-color: black; color: white;"><br></span>
<span style="background-color: black; color: white;">//effectue la requête HTTP</span><br>
<span style="background-color: black; color: white;">anHttpRequest.send(dataRequest);</span><br>
<span style="background-color: black; color: white;"><br></span>
<span style="background-color: black; color: white;">// A noter, pas de gestion de valeur retour par fainéantise :)</span><br>
<br>
Il faut enregistrer ce script dans un .js (LIFX_Allumer_SAM.js et LIFX_Eteindre_SAM.js) dans notre exemple ci-dessous) qui va ensuite être appelé dans un scénario (reportez-vous à l'article <a href="http://missquellegoule.blogspot.fr/2015/04/zibase-multi-annoncer-vocalement-la.html" target="_blank">suivant </a>pour savoir comment cela fonctionne).<br>
<br>
Le scénario pour allumer le groupe de lampe "Salle à manger" est le suivant :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-_XhozRYo_tY/V1wo_OZjEXI/AAAAAAAAAxc/S4UQ-_5RIv0r9vuO_NBYO2WQirOjaGAXACLcB/s1600/Scenario%2BALLUME%2BSAM%2BLIFX.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="449" src="https://4.bp.blogspot.com/-_XhozRYo_tY/V1wo_OZjEXI/AAAAAAAAAxc/S4UQ-_5RIv0r9vuO_NBYO2WQirOjaGAXACLcB/s640/Scenario%2BALLUME%2BSAM%2BLIFX.JPG" width="640"></a></div>
<br>
Le scénario pour éteindre le groupe de lampe "Salle à manger" est le suivant :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-w4rB4laRukM/V1wqi5Kiv7I/AAAAAAAAAxo/xZJGB5hP_748peAp5xrXWBUQ7m_aXIODACLcB/s1600/Scenario%2BETEINDRE%2BSAM%2BLIFX.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="450" src="https://1.bp.blogspot.com/-w4rB4laRukM/V1wqi5Kiv7I/AAAAAAAAAxo/xZJGB5hP_748peAp5xrXWBUQ7m_aXIODACLcB/s640/Scenario%2BETEINDRE%2BSAM%2BLIFX.JPG" width="640"></a></div>
<br>
<br>
Notez juste que nous avons coché injection de script dans les 2 scénario. Nous avons associé ces scénari à un périphérique de télécommande virtuelle nommer ci-dessus LAMPE SAM et déclaré comme suit :<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-WP0GxhZTKvQ/V1wq-5FezsI/AAAAAAAAAxw/M8AHnrsSpzE-x9bXROnzIDa2Dtl_Rs39wCLcB/s1600/P%25C3%25A9riph%25C3%25A9rique%2Bt%25C3%25A9l%25C3%25A9commande%2Bvirtuelle.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="https://1.bp.blogspot.com/-WP0GxhZTKvQ/V1wq-5FezsI/AAAAAAAAAxw/M8AHnrsSpzE-x9bXROnzIDa2Dtl_Rs39wCLcB/s640/P%25C3%25A9riph%25C3%25A9rique%2Bt%25C3%25A9l%25C3%25A9commande%2Bvirtuelle.JPG" width="640"></a></div>
<br>
Et voilà, depuis votre interface Zibase, vous avez maintenant la possibilité d'allumer ou d'éteindre le groupe d'ampoule de votre salle à manger. Evidemment, vous pouvez faire la même chose avec une seule ampoule ou l'ensemble de la maison, ou un autre groupe. Il suffit de se plonger dans l'API LIFX et grâce au javascript, vous pouvez faire appel à toutes les fonctions et les avoir à disposition dans votre interface ZIBASE.<br>
<br>
<b><u>Notre avis</u></b><br>
<b><u><br></u></b>
Le marché des ampoules connectées est en pleine explosion et il se démocratise de plus en plus à travers de grandes marques comme Philips Hue.<br>
<br>
Néanmoins, la marque LIFX a réussi à nous convaincre grâce à un produit très bien fini, une bonne qualité de fabrication, un paramétrage simple et fonctionnel tout en notant que cela ne nécessite aucun autre équipement à relier à votre box/routeur. L'application est bien faite et très orientée utilisateur et nous n'avons pas constaté de bugs majeurs depuis leurs installations (4 semaines au moment où vous lisez cet article).<br>
<br>
A l'utilisation, la réactivité des ampoules est vraiment impressionnante. Que vous soyez en Wifi ou en 3G/4G, les ampoules répondent très rapidement avec un temps de latence quasi nul.<br>
<br>
Vos interrupteurs restent parfaitement fonctionnels comme avec une ampoule classique. Bien évidemment, si vous coupez l'ampoule via l'interrupteur, il vous sera impossible de la rallumer via l'application (l'ampoule n'étant plus alimentée). Il peut être envisageable, dans un second temps, de shunter vos anciens interrupteurs pour que l'ampoule soit constamment alimentée et de mettre des "interrupteurs domotique" permettant de faire un appel à l'API LIFX pour allumer ou éteindre l'ampoule comme si c'était via l'application LIFX. Sinon, peut-être que LIFX, à l'instar de Philips, va sortir ce type d'interrupteur.<br>
<br>
Reste maintenant la problématique du prix. En effet, à ce jour, la LIFX color1000 est disponible en France au tarif de 74 € minimum. Sur le papier, la facture est encore plus élevée que les Philips Hue !<br>
<br>
Vous pouvez aussi les commander sur le site de LIFX directement au tarif de $59.99 l'unité ou par 4 à $189.96. Il vous restera néanmoins le frais de port à $20 et les taxes (livraison DHL depuis Honk Kong en 7-8 jours ouvrés en attendant que LIFX ouvre un entrepôt en Europe prochainement). Pour un kit de 4 ampoules, l'ensemble des taxes et frais devraient être de $40 (n'hésitez pas à contacter le support LIFX, ils sont réactifs et devraient pouvoir vous renseigner plus précisément).<br>
<br>
Finalement, par 4, le prix est donc d'environ : 189.96+40+20 = $249.96 soit 224.96 € donc 56.24 € (et un peu moins si vous cherchez un code de réduction de 10% facilement trouvable sur le WEB :)). Reste que ce prix peut être rédhibitoire en attendant qu'un importateur spécialisé en domotique puisse le proposer à un prix plus abordable :) !<br>
<br>
Voilà pour cet article en attendant le prochain, si d'aventure Zibase continue à vivre...<br>
<br>
<br>
<br>
<br></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com3tag:blogger.com,1999:blog-94176035240798499.post-48869197050869412532015-09-12T17:32:00.000+02:002016-06-11T18:43:39.109+02:00Zibase Multi et Wall Plug Fibaro<div dir="ltr">
<h2 style="text-align: center;">
<u style="font-size: xx-large;"></u></h2>
<h2 style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2016/06/zibase-multi-et-ampoule-connectee-lifx.html" style="font-size: medium; font-weight: normal;" target="_blank">Article suivant sur la Zibase Multi et les ampoules LIFX</a></h2>
<h2 style="text-align: center;">
<u style="font-size: xx-large;">Zibase Multi et Wall Plug </u><u style="font-size: xx-large;">Fibaro</u></h2>
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Pour continuer cette série ZWAVE, nous vous présentons dans cet article le Wall Plug de Fibaro, nouvelle référence FGWPE-102 (disponible chez Domadoo <a href="http://www.domadoo.fr/fr/peripheriques/2964-fibaro-module-prise-commutateur-z-wave-avec-mesure-d-energie-fgwpe-102-fr-5902020528296.html" target="_blank">ici</a>). Celui-ci est exactement le même que la précédente version FGWPE-101 au niveau software. Quelques modifications ont été introduites au niveau Hardware sur des normes de sécurité et l'amélioration de la mécanique mais ne changent en rien le comportement du Wall Plug.<br />
<br />
<b><u>Le but</u></b><br />
<br />
L'objectif initial était de se servir du Wall Plug afin de détecter un éventuel manque d'eau dans notre puits foré. L'idée peut paraître saugrenue, mais en fait, dès que la pompe immergée n'est plus alimentée en eau, elle se met à consommer beaucoup plus d'énergie du fait des frottements induits par ce manque d'eau.<br />
<br />
Ainsi, en cas de consommation de la pompe plus importante que les 800W habituels, le Wall Plug devait remonter immédiatement cette information à la Zibase qui pouvait éteindre la pompe via le Wall Plug.<br />
<br />
Sur le papier, cela fonctionne bien...mais en réalité, cela n'est pas possible...on va voir pourquoi !<br />
<br />
<b><u>Présentation du Wall Plug</u></b><br />
<b><u><br /></u></b>Ce périphérique ZWAVE est un module prise et permet de commander l'appareil branché sur la prise de remonter les informations concernant la consommation instantanée de l'appareil (en W) ainsi que la consommation depuis l’initialisation du Wall Plug (en kWh).<br />
<br />
Il accepte une charge maximum de 2500 W...donc attention au type d'appareil que vous branchez dessus même s'il existe une sécurité si la charge dépasse les 2500W (coupure du Wall Plug). Enfin, un indicateur visuel (halo autour de la prise) change de couleur en fonction de la consommation instantanée: un anneau vert indique une consommation faible tandis qu'un anneau rouge indique une consommation très élevée (en passant par pleins de nuances qui sont paramétrables au niveau des paramètres du Wall Plug).<br />
<br />
L'emballage de Fibaro est, comme pour l'ensemble des modules, très sympa. Le Wall Plug en lui même est très petit (43 x 65 mm (diamètre x hauteur)) et de bonne facture :<br />
<br />
<br />
<div style="text-align: center;">
<img height="320" src="https://lh3.googleusercontent.com/-ufj0Gkr2dNg/Vd81CyJ7NhI/AAAAAAAAAr0/_t6-zKeN8jo/s320/IMG_20150827_174733.jpg" width="240" /><img height="320" src="https://lh3.googleusercontent.com/-Y6VL-zriiis/Vd81BTGUpeI/AAAAAAAAArs/IpKVTYg1Wqc/s320/IMG_20150827_174745.jpg" width="240" /></div>
<br />
<br />
Une notice est évidemment fourni mais en Anglais. Vous retrouverez l'intégralité de la notice en français <a href="http://www.fibaro.com/manuals/fr/Wall_Plug_FGWP011-FR.pdf" target="_blank">ici </a>qui permet de modifier de nombreux paramètres disponibles sur ce périphérique pour obtenir différents comportements (nous allons y revenir dans la suite de l'article). La notice est très claire et parfaitement explicite sur l'ensemble des paramètres.<br />
<br />
Un petit bouton sur le dessus de la prise permet :<br />
<br />
<ul>
<li>d'allumer ou d'éteindre le module une fois inclu dans le réseau ZWAVE : 1 appui court, </li>
<li>inclusion / exclusion d'un réseau Zwave : 3 appuis courts,</li>
<li>éteindre / allumer le Halo (indicateur lumineux de consommation) : un appui d'environ 3 secondes jusque l'anneau soit blanc puis relanchement du bouton et un appui court en suivant.</li>
</ul>
<div>
Le contacteur de ce petit bouton me paraît un peu léger même si je n'ai rencontré aucun problème dans son fonctionnement.</div>
<br />
<br />
<b><u>Inclusion du périphérique avec la Zibase Multi</u></b><br />
<br />
Par défaut, le Wall Plug est en mode inclusion dés son branchement. La procédure est classique pour l'intégrer à Zibase Multi. Il suffit de déclarer un nouvel actionneur de type ZWAVE, de brancher le Wall Plug et de cliquer sur "Assoc". L'actionneur va prendre une adresse de type ZAX (ici ZA8). Enregistrer le périphérique et le tour est joué. Cela donne :<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-chJK41L1n7Q/Vd87N5pL6KI/AAAAAAAAAsE/fedS8Et8Y7E/s1600/D%25C3%25A9claration%2Bp%25C3%25A9riph%25C3%25A9rique.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="403" src="https://1.bp.blogspot.com/-chJK41L1n7Q/Vd87N5pL6KI/AAAAAAAAAsE/fedS8Et8Y7E/s640/D%25C3%25A9claration%2Bp%25C3%25A9riph%25C3%25A9rique.JPG" width="640" /></a></div>
<br />
<br />
Il faut ensuite créer une sonde de mesure de type POWER afin de pouvoir récupérer les données de consommation instantanée et la consommation depuis le branchement du Wall Plug. L'identifiant radio correspondant aux remontées de consommation va prendre la forme PZAX (ici PZA8) comme le montre la capture ci-dessous.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-hwMn5bMwLmQ/Vd87PIVXZZI/AAAAAAAAAsM/-xel9KcZXKQ/s1600/D%25C3%25A9clation%2Bsonde%2Bassoci%25C3%25A9e.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="394" src="https://1.bp.blogspot.com/-hwMn5bMwLmQ/Vd87PIVXZZI/AAAAAAAAAsM/-xel9KcZXKQ/s640/D%25C3%25A9clation%2Bsonde%2Bassoci%25C3%25A9e.JPG" width="640" /></a></div>
<br />
<br />
Sur l'interface de l’application Zodianet HD, cela donne deux icônes supplémentaires. Un icône de type actionneur qui vous permet de faire un ON/OFF sur la Wall Plug et un autre de type sonde permettant d'avoir la consommation instantanée. La puissance fournie est exprimée en kW.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-tCW2xO2A9iM/VfQ-4ji5FlI/AAAAAAAAAss/5bOGqK79p3g/s1600/Ecran%2Bzodianet%2BHD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://2.bp.blogspot.com/-tCW2xO2A9iM/VfQ-4ji5FlI/AAAAAAAAAss/5bOGqK79p3g/s1600/Ecran%2Bzodianet%2BHD.jpg" /></a></div>
<br />
<br />
<br />
<br />
<b><u>Modifications des paramètres disponibles sur le Wall Plug</u></b><br />
<b><u><br /></u></b>
Comme sur beaucoup de périphérique ZWAVE, les paramètres sont nombreux pour changer le comportement du Wall Plug. La documentation fournie avec le Wall Plug est en Anglais. Pour rappel, elle est disponible en français sur le site de Fibaro <a href="http://www.fibaro.com/manuals/fr/Wall_Plug_FGWP011-FR.pdf" target="_blank">ici</a>.<br />
<br />
L'intérêt de ce périphérique résidait pour moi dans sa capacité à remonter immédiatement une information à son contrôleur (ici la Zibase Multi) sur la consommation instantanée dès que celle-ci varie de plus de x% (paramètre 40 du Wall Plug) ou en fonction d'une valeur basse ou d'une valeur haute définie (respectivement dans les paramètres 50 et 51 - Groupe 2). A partir de ces paramètres, il est possible de définir un comportement quant ces seuils sont atteints ou dépassés (voir paramètre 52 du Wall Plug).<br />
<br />
Pour modifier les paramètres du Wall Plug avec Zibase, cela se fait via des scénarios comme avec tous les périphériques ZWAVE via le menu Actions / Fonction ZWAVE / Spécifier la valeur d'un paramètre. Par exemple, pour spécifier une remontée immédiate de la consommation dès que la puissance consommée varie de plus de 10%, il faut modifier le paramètre 40 en passant la valeur 10 comme ci-dessous.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-rIbiJUS-at8/VfRDRu1UVPI/AAAAAAAAAs4/9f-6dmhHk5g/s1600/Sp%25C3%25A9cifier%2Bparam%25C3%25A8tres.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://1.bp.blogspot.com/-rIbiJUS-at8/VfRDRu1UVPI/AAAAAAAAAs4/9f-6dmhHk5g/s640/Sp%25C3%25A9cifier%2Bparam%25C3%25A8tres.JPG" width="640" /></a></div>
<br />
Cela fonctionne et modifie bien les paramètre du Wall Plug...mais le comportement du Wall Plug ne change malheureusement pas. Nous allons voir pourquoi.<br />
<br />
<b><u>Le problème</u></b><br />
<b><u><br /></u></b>
Comme évoqué en début d'article, le but était de détecter immédiatement une augmentation de charge supérieure à 800W (puissance de la pompe immergée en fonctionnement normal) pour faire un Off sur le Wall Plug sur lequel la pompe était branchée pour ainsi immédiatement arrêter la pompe.<br />
<br />
Malheureusement, la modification des paramètres du Wall plug évoquée dans le paragraphe précédent n'a absolument aucune incidence sur la remontée de l'information sur la Zibase. En effet, j'ai mis beaucoup de temps à comprendre, mais la Zibase fait du polling, c'est à dire qu'elle interroge elle-même le Wall Plug toutes les 51 secondes quoi qu'il se passe. Ainsi, toutes modifications des paramètres du Wall PLug pour que celui-ci envoie immédiatement une information n'a aucune incidence sur la remontée de l'information.<br />
<br />
De par cette problématique (qui est un choix de Zodianet avec qui je n'ai pas pu échanger sur le sujet en ce début septembre), il n'est pas possible d'avoir une remontée immédiate du Wall Plug quand la consommation est de plus de 800W et subit une variation de plus de x%. Dans notre volonté de se servir du Wall Plug comme sécurité manque d'eau pour la pompe immergée de notre puits, nous ne pouvons pas nous permettre d'attendre (au pire) 51 secondes pour que l'information remonte vers la Zibase en charge de faire un Off sur le Wall Plug.<br />
<br />
<b><u>Conclusion</u></b><br />
<b><u><br /></u></b>
Le Wall Plug est un produit d'une qualité exemplaire comme l'ensemble des modules Fibaro même si effectivement, cela a un prix !<br />
<br />
Avec la Zibase, comme vu dans notre exemple, il n'est pas possible de profiter de toutes les possibilités du Wall Plug. <b>Pour cette raison, il n'est pas pour moi parfaitement compatible avec la Zibase.</b><br />
<br />
Néanmoins, vous pourrez vous en servir dans la majorité des solutions que vous mettrez en oeuvre à partir du moment où la remontée d'information sur la consommation n'a pas de caractère d'urgence. Parmi quelques idées, le Wall Plug peut permettre :<br />
<br />
<ul>
<li>d'envoyer une notification à la fin du cycle d'une machine à laver et l'éteindre,</li>
<li>de détecter qu'un congélateur ou un frigo est en panne,</li>
<li>de surveiller combien de temps la télévision ou l'ordinateur a été allumé,</li>
<li>...</li>
</ul>
Bref, laissez libre cours à votre imagination....<br />
<br />
Les prochains articles devraient porter sur IFTTT avec le nouveau "Channel Maker" et également la mise à disposition du "Channel GreenIQ" (arrosage connecté). A très vite...<br />
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-85798978839453869092015-08-15T14:59:00.000+02:002016-05-29T15:19:28.067+02:00Zibase Multi et Multisensor d'AEON LABS<div dir="ltr">
<h2 style="text-align: center;">
<u style="font-size: xx-large;"></u></h2>
<h2 style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2015/09/zibase-multi-et-wall-plug-fibaro.html" style="font-size: medium; font-weight: normal;" target="_blank">Article suivant sur la Zibase Multi et Wall Plug Fibaro</a></h2>
<h2 style="text-align: center;">
<u style="font-size: xx-large;">Zibase Multi et Multisensor d'AEON LABS</u></h2>
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Pour continuer sur les périphériques ZWAVE, nous vous présentons dans cet article (ou vous faisons redécouvrir) le Multisensor ZWAVE d'AEON LABS.<br />
<br />
Il s'agit bien du Multisensor 4 en 1 qui a pratiquement 3 ans mais qui me paraissait intéressant à tester, d'autant que la mise en place n'est pas forcément simple avec la Zibase. De plus j'ai pu en acquérir deux d'occasion pour le prix d'un (n'ayant pas conscience qu'il ne s'agissait pas de la version GEN5 !).<br />
<br />
Bref, à l'heure du Multisensor 6 en 1, j'arrive un peu après la guerre mais j'espère que cet article intéressera néanmoins certains d'entre vous. D'autant que la plupart des éléments décrits ici sont valables pour les nouvelles générations de capteurs d'AEON LABS (GEN 5 et 6 en 1).<br />
<br />
<b><u>Présentation du Multisensor d'AEON LABS</u></b><br />
<b><u><br /></u></b>
Ce périphérique ZWAVE permet de remonter la détection de mouvements, la température, l'hygrométrie et la luminosité d'où le nom 4 en 1.<br />
<br />
La boite d'origine et le packaging sont très sommaire:):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-7VIw3LsWyIM/Vcem0rPylQI/AAAAAAAAApI/PEhwyRTORqI/s1600/IMG_20150809_171431.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://3.bp.blogspot.com/-7VIw3LsWyIM/Vcem0rPylQI/AAAAAAAAApI/PEhwyRTORqI/s400/IMG_20150809_171431.jpg" width="400" /></a></div>
<br />
<br />
Les deux supports fournis permettent de l'installer en position fixe ou orientable.<br />
<br />
Le câble USB permet de faire les mises à jour de firmware et éventuellement d'alimenter (5V) le Multisensor pour se passer des 4 piles AAA.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-qf-5Mr-BDsU/Vcem3XelH5I/AAAAAAAAApo/nGNW3HbBQo8/s1600/IMG_20150809_171609.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://2.bp.blogspot.com/-qf-5Mr-BDsU/Vcem3XelH5I/AAAAAAAAApo/nGNW3HbBQo8/s400/IMG_20150809_171609.jpg" width="400" /></a></div>
<br />
La vue de l'intérieur permet d'installer les 4 piles ou de brancher le mini usb si vous choisissez ce mode d'alimentation. Il donne également accès au bouton d'association et un petit potentiomètre pour régler la sensibilité du détecteur de mouvements.<br />
<br />
Coté caractéristiques techniques, voici les principaux éléments (données constructeur) :<br />
<br />
<ul>
<li>Distance de transmission : 30m en intérieur</li>
<li>Capteur de température :</li>
<ul>
<li>Gamme de mesure : -20°C à 50°C</li>
<li>Précision : ±1°C</li>
</ul>
<li>Capteur d’humidité :</li>
<ul>
<li>Gamme de mesure : 20% à 90%</li>
<li>Précision : ±5%</li>
</ul>
<li>Capteur de luminosité : 0 – 1000 LUX</li>
<li>Dimensions : 75 x 60 mm (d x h)</li>
<li>Affichage : LED</li>
<li>Protection IP : IP43</li>
</ul>
<br />
A noter que le capteur de luminosité ne pourra pas vous aider dans la détection de plein ensoleillement ou de ciel nuageux car sa plage n'est malheureusement que de 1000 Lux (comme tous les modèles Multi sensor plus récents du reste).<br />
<br />
<b><u>Mise à jour du firmware</u></b><br />
<b><u><br /></u></b>
Avant de faire cette mise à jour de firware, il m'était impossible de faire l'inclusion avec la Zibase. Je ne sais pas si cela est lié au précédent propriétaire mais les deux Multisensor n'étaient absolument pas vu par le capteur ZWAVE SIGMA présent sur ma Zibase Multi. J'ai passé pas mal de temps et n'ai pas trouvé d'autres moyens que de mettre à jour le firmware pour réinitialiser complètement les capteurs.<br />
<br />
Le programme de mise à jour du firmware est disponible <a href="http://aeotec.com/z-wave-sensor/1270-multisensor-firmware.html" target="_blank">ici</a>. Il faut bien évidemment choisir la version "EU Fréquency". <b>Attention, ce programme ne fonctionne pas sous Windows 8 et ultérieur (et oui, il commence à être âgé ce capteur et j'ai galéré avant de comprendre).</b><br />
<br />
Il faut bien évidemment brancher le Multisensor sur le port USB de votre PC avec le cable USB fourni.<br />
<br />
Le programme est on ne peut plus simple :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-W1tlB1qG61c/Vcet-FD_2_I/AAAAAAAAAqE/1ml4-tbyd_A/s1600/update%2Bfirmware%2Bmultisensor.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://4.bp.blogspot.com/-W1tlB1qG61c/Vcet-FD_2_I/AAAAAAAAAqE/1ml4-tbyd_A/s400/update%2Bfirmware%2Bmultisensor.JPG" width="400" /></a></div>
<br />
Il suffit de cliquer sur UPDATE et la mise à jour se fait en quelques secondes.<br />
<br />
Cette étape étant effectuée, voyons maintenant comment se passe l'inclusion avec la Zibase. <b>Je vous conseille de faire toutes les manipulations suivantes en laissant l'alimentation USB afin de ne pas consommer de piles inutilement !</b><br />
<br />
<b><u>Inclusion du périphérique avec la Zibase Multi</u></b><br />
<b><u><br /></u></b>
Il suffit de déclarer un périphérique de la catégorie Détecteurs et de Type ZWAVE.<br />
<br />
Cliquer sur le bouton "ASSOC" puis sur le bouton noir d'association du périphérique (un appui court). Le Multisensor est reconnu avec une pseudo adresse (ZA5 dans la capture ci-dessous).<br />
<b><u><br /></u></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-NSHMtYaiIHw/VcevRlQ2CII/AAAAAAAAAqM/kNBptkVCogI/s1600/declaration%2Bp%25C3%25A9riph%25C3%25A9riques.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="368" src="https://2.bp.blogspot.com/-NSHMtYaiIHw/VcevRlQ2CII/AAAAAAAAAqM/kNBptkVCogI/s640/declaration%2Bp%25C3%25A9riph%25C3%25A9riques.JPG" width="640" /></a></div>
<b><u><br /></u></b>
Il suffit ensuite d'enregistrer ce nouveau périphérique. Mais cela ne le rend pas pleinement fonctionnel et il est nécessaire :<br />
<ul>
<li>de créer des sondes virtuelles permettant de récupérer la température, l'hygrométrie et la luminosité;</li>
<li>de changer des paramètres ZWAVE du périphérique qui a une configuration usine qui le rend non opérationnelle (en tout cas dans mon cas après flashage du firmware).</li>
</ul>
<div>
<b><u>Création des sondes virtuelles</u></b></div>
<div>
<br /></div>
<div>
Il faut créer un scénario qui ne servira qu'une seule fois et permettant de récupérer les identifiants des sondes virtuelles ainsi générées pas ce scénario :</div>
<div>
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-qzz_9Lorlhk/VcexD22-mFI/AAAAAAAAAqY/Z-bZy0k4y0s/s1600/Sc%25C3%25A9nario%2Balimentation%2Bsondes%2Bdepuis%2Ble%2Bmultisensor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://4.bp.blogspot.com/-qzz_9Lorlhk/VcexD22-mFI/AAAAAAAAAqY/Z-bZy0k4y0s/s640/Sc%25C3%25A9nario%2Balimentation%2Bsondes%2Bdepuis%2Ble%2Bmultisensor.jpg" width="594" /></a></div>
<br />
Une fois créer et enregistrer, cliquer sur "Tester le scénario" puis cliquer sur le bouton d'associer noir du Multisensor pour le réveiller. Cela va générer les lignes suivantes dans le suivi d'activité de la Zibase.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-12IGIV744FU/Vcem31p19tI/AAAAAAAAApw/2HB-oJ74C4s/s1600/suivi%2Bactivit%25C3%25A9%2Bmultisensor.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="128" src="https://3.bp.blogspot.com/-12IGIV744FU/Vcem31p19tI/AAAAAAAAApw/2HB-oJ74C4s/s640/suivi%2Bactivit%25C3%25A9%2Bmultisensor.JPG" width="640" /></a></div>
<br />
Dans notre cas ci-dessus, il faudra créer dans la section "Périphériques" de la Zibase une sonde de type UVN800 avec l’identifiant OS36665297422 pour récupérer la luminosité et une autre de type THGR2028N avec l'identifiant OS439156750 pour récupérer la température et l'hygrométrie.<br />
<br />
Ci-dessous les deux sondes à créer :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-g4V3H5GlHDY/Vcez1dzoT-I/AAAAAAAAAqk/vZBoSedkrCQ/s1600/sonde%2BUV.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="340" src="https://2.bp.blogspot.com/-g4V3H5GlHDY/Vcez1dzoT-I/AAAAAAAAAqk/vZBoSedkrCQ/s640/sonde%2BUV.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-zf2N-UpP64M/Vcez2miq-PI/AAAAAAAAAqs/W5TS_L9_jgw/s1600/Sonde%2Btemp-hygro.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="344" src="https://2.bp.blogspot.com/-zf2N-UpP64M/Vcez2miq-PI/AAAAAAAAAqs/W5TS_L9_jgw/s640/Sonde%2Btemp-hygro.JPG" width="640" /></a></div>
<br />
Il faut bien évidemment enregistrer ces deux périphériques (virtuelles) qui accueilleront les relevés des mesures effectuées par le Multisensor. Mais pour cela, il faut modifier les paramètres ZWAVE de votre Multisensor car par défaut celui-ci n’envoie aucune donnée et dort constamment !<br />
<br />
<b><u>Modifications des paramètres ZWAVE du Multisensor</u></b><br />
<b><u><br /></u></b>
Les paramètres ZWAVE du Multisensor sont disponibles dans la documentation et parfaitement décrits <a href="http://tutoriels.domotique-store.fr/content/22/31/fr/parametres-du-detecteur-4-en-1-multisensor-aeon-labs-dsb05.html" target="_blank">ici</a> (merci Domotique-store !).<br />
<br />
Il faut donc modifier les paramètres suivants pour que votre Multisensor soit fonctionnel :<br />
<ul>
<li>paramètre 101 : Ce paramètre permet de savoir quelles information sont remontées par le capteur. Par défaut (ce que je ne comprend pas), la valeur vaut 0. Il faut placer 225 comme valeur afin d'avoir les remontées de la température, l'hygrométrie et la luminosité. Les éléments pour calculer cette valeur 225 sont très biens décrits dans le document de Domotique-Store);</li>
</ul>
<ul>
<li>paramètre 111 : Ce paramètre contient contient l'intervalle entre deux transmissions au groupe 1 (donc à quel intervalle de temps les valeurs des éléments présents dans le paramètre 101 seront remontées).</li>
</ul>
<ul>
<li>les paramètres 112 et 113 sont équivalent au 111 mais pour le groupe 2 et 3. Il ne présente donc pas d'intérêt ne disposant que d'un groupe (et je n'ai pas compris l'intérêt des groupes). Néanmoins, il ne peuvent prendre un valeur nulle de remontée donc au cas où cela consomerait des piles, j'ai mis le temps maximum que peut prendre le paramètre; à savoir 2678400.</li>
</ul>
Pour effectuer ces modifications via la Zibase, il faut bien évidemment effectuer un scénario pour spécifier les paramètres ZWAVE à modifier sur le Multisensor.<br />
<br />
Je vous conseille de faire un scénario pour modifier chaque paramètre un par un. A chaque envoi de modifications de paramètre, il est nécessaire d'appuyer une fois sur le bouton d'association du Multisensor pour le "réveiller" et bien prendre ne compte ces modifications.<br />
<br />
La scénario suivant contient l'ensemble des paramètre ZWAVE du Multisensor à modifier :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-ynH1r_v1hU0/Vcem4IqQIBI/AAAAAAAAAps/ZQgDLhLl7o8/s1600/parametre%2Bmultisensor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://1.bp.blogspot.com/-ynH1r_v1hU0/Vcem4IqQIBI/AAAAAAAAAps/ZQgDLhLl7o8/s1600/parametre%2Bmultisensor.jpg" /></a></div>
<br />
Avec les 2 Multisensor, cela donne cette vision sur l'appli Zodianet (3 icônes par Multisensor) :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-16naQBU0nfo/Vc8zr4O8MuI/AAAAAAAAArY/zvnkQ4WZu74/s1600/Screenshot_2015-08-15-14-39-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://4.bp.blogspot.com/-16naQBU0nfo/Vc8zr4O8MuI/AAAAAAAAArY/zvnkQ4WZu74/s640/Screenshot_2015-08-15-14-39-43.png" width="360" /></a></div>
<br />
<br />
<br />
Les Multisensor sont maintenant opérationnels et peuvent être intégrés dans vos scénario de chauffage, d'alarme, de fermeture des volets....<br />
<br />
Nous avons réglé la sensibilité des détecteurs de mouvements à environ 80% via le potentiomètre disponible à l'intérieur du Multisensor. Après une bonne semaine, cela paraît adapté avec aucune fausse détection.<br />
<br />
Pour conclure sur ce produit, il me parait relativement excellent et je pense que s'il avait été neuf sortie usine, j'aurai beaucoup moins galéré sur la mise en oeuvre au départ (la mise à jour du firmware). Ceci dit, il existe également des capteur 4 en 1 (et 6 en 1) beaucoup plus récents; cela dépend aussi de votre budget !<br />
<br />
Nous continuerons sur cette série de périphériques ZWAVE avec le Wall Plug de Fibaro dont l'article devrait paraître vers mi-septembre 2015 (disponible <a href="http://missquellegoule.blogspot.fr/2015/09/zibase-multi-et-wall-plug-fibaro.html">ici </a>depuis le 12/09/2015).<br />
<br />
A très vite !<br />
<br />
<div>
<br /></div>
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-40400143787965744432015-08-08T18:01:00.002+02:002016-05-29T15:00:22.308+02:00Zibase Multi, ZWAVE et sirène d'AEON LABS<div dir="ltr">
<h2 style="text-align: center;">
<u style="font-size: xx-large;"></u></h2>
<h2 style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2015/08/zibase-multi-et-multisensor-daeon-labs.html" style="font-size: medium; font-weight: normal;" target="_blank">Article suivant sur la Zibase Multi et le multi Sensor d'AEON LABS</a></h2>
<h2 style="text-align: center;">
<u style="font-size: xx-large;">Zibase Multi, ZWAVE et test de la sirène ZWAVE PLUS d'AEON LABS</u></h2>
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Ceux qui suivent ce blog savent que nous possédons aujourd'hui une Zibase Classic sans ZWAVE et avons intégré Zibase Multi depuis maintenant 6 mois (et vraiment génial). La Zibase Classic ne nous sert que de passerelle radio pour émettre sur les protocole disponibles sur une Zibase Classic.<br />
<br />
Ne possédant pas de possibilités d'émettre en Zwave via la Zibase Classic, cet article présente donc l'intégration d'un dongle Zwave sur la tablette sur laquelle est installée Zibase Multi.<br />
<br />
Pour rappel, Zodianet a tout prévu et cela ne pose pas de problèmes de faire cohabiter la Zibase Classic comme passerelle radio et d'utiliser des clés USB sur votre Zibase Multi pour émettre sur d'autres protocoles.<br />
<br />
Nous présenterons au passage le premier périphérique Zwave en notre possession, à savoir la sirène ZWAVE PLUS d'AEON LABS.<br />
<br />
<b><u>Présentation et mise en place du dongle ZWAVE</u></b><br />
<b><u><br /></u></b>
4 dongles ZWAVE sont compatibles avec la Zibase Multi.<br />
<br />
Le tableau ci-dessous (source <a href="http://zodianet.com/peripherals.html#ANDROID" target="_blank">Zodianet</a>) présente ces 4 dongles :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-2P5Gd4sYa9I/VcYCXhYNdCI/AAAAAAAAAlc/8zJFHSTczm8/s1600/Dongles%2Bcomptabiles%2BZibase%2BMulti.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="336" src="https://2.bp.blogspot.com/-2P5Gd4sYa9I/VcYCXhYNdCI/AAAAAAAAAlc/8zJFHSTczm8/s640/Dongles%2Bcomptabiles%2BZibase%2BMulti.JPG" width="640" /></a></div>
<br />
Notre choix s'est porté sur le dongle ZWAVE PLUS de Sigma Design disponible pour un peu moins de 40 € dans toutes les bonnes boutiques domotique. Sur notre Tablette ASUS TF300T, nous disposons d'un port USB permettant de la brancher directement.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-9WZDQrr964M/VcYFcMtQLjI/AAAAAAAAAmY/t3TdAubfgnM/s1600/IMG_20150528_080908.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://1.bp.blogspot.com/-9WZDQrr964M/VcYFcMtQLjI/AAAAAAAAAmY/t3TdAubfgnM/s400/IMG_20150528_080908.jpg" width="300" /></a></div>
<br />
Après insertion dans le port USB, il faut redémarrer Zibase Multi et (par magie) la clé ZWAVE est directement reconnue et parfaitement fonctionnelle pour intégrer des périphériques ZWAVE dans notre installation domotique. La disponibilité du protocole ZWAVE sur la multi est indiquée par l'allumage du ZWAVE sur le tableau de bord de la Zibase Multi comme ci-dessous.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-LhH9rbn4srw/VcYV7--05iI/AAAAAAAAAm0/r2CBkwozqYg/s1600/zwave%2Bactiv%25C3%25A9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://2.bp.blogspot.com/-LhH9rbn4srw/VcYV7--05iI/AAAAAAAAAm0/r2CBkwozqYg/s1600/zwave%2Bactiv%25C3%25A9.jpg" /></a></div>
<br />
Et voilà, il n'est pas possible faire plus simple....merci <a href="http://www.zodianet.com/" target="_blank">Zodianet</a>.<br />
<br />
Le protocole ZWAVE étant activé, il ne reste plus qu'à tester un périphérique. Nous vous présentons ci-dessous la sirène ZWAVE PLUS D'AEON LABS.<br />
<br />
<b><u>Présentation de la Sirène ZWAVE AEON LABS et intégration dans la zibase</u></b><br />
<b><u><br /></u></b>
Nous ne disposions jusqu'alors que d'une <a href="http://www.domadoo.fr/fr/peripheriques/1938-x10-sh10-carillon-x10-8717399101462.html" target="_blank">Sirene X10 SH10</a>. Cette sirène fonctionnait globalement très bien (voir notre <a href="http://missquellegoule.blogspot.fr/2013/04/alarme-zibase-via-le-nouveau-module.html" target="_blank">article</a>) mais présentait des imperfections :<br />
<br />
<ul>
<li>complexe à intégrer dans une Zibase (obligation pour déclencher la sirene de faire plusieurs ON) et nécessitant de ce fait pas mal de scénari;</li>
<li>pas de batterie de secours et devient inutile s'il n'y a plus de courant;</li>
<li>technologie X10 plutôt has been que nous avons décidé de supprimer de notre installation au fil de l'eau.</li>
</ul>
<div>
Nous avons choisi la Sirène ZWAVE+ Aeotec (AEON LABS) ZW080 (dispo chez Domadoo <a href="http://www.domadoo.fr/fr/peripheriques/2592-aeon-labs-sirene-z-wave-plus-sur-prise-electrique-gen5-1220000012592.html" target="_blank">ici</a>) pour plusieurs raisons :</div>
<div>
<ul>
<li>elle utilise le protocole ZWAVE+ et a une très bonne portée;</li>
<li>elle est parfaitement compatible avec la Zibase Multi (et avec toutes les autres box domotique);</li>
<li>elle dispose d'une batterie interne en cas de coupure de courant;</li>
<li>elle est bruyante :)...c'est mieux pour une sirène : 105dB</li>
</ul>
</div>
<div>
La présentation est plutôt soignée et la boite se présente sous cette forme :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-cacScJZZqCA/VcYgocKUNBI/AAAAAAAAAnE/VsPFK-oXhbc/s1600/Boite%2BSIRENE%2BZWAVE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="273" src="https://4.bp.blogspot.com/-cacScJZZqCA/VcYgocKUNBI/AAAAAAAAAnE/VsPFK-oXhbc/s320/Boite%2BSIRENE%2BZWAVE.jpg" width="320" /></a></div>
<div>
<br /></div>
<br />
La sirène est relativement petite et le bouton d'inclusion se trouve sur le dessus de la SIRENE.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-_aFQg-k4rY4/VcYFcBI4PlI/AAAAAAAAAmk/PQv6MVjghQ0/s1600/IMG_20150525_160518.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://4.bp.blogspot.com/-_aFQg-k4rY4/VcYFcBI4PlI/AAAAAAAAAmk/PQv6MVjghQ0/s320/IMG_20150525_160518.jpg" width="240" /></a></div>
<br />
Les 3 leds devant la sirène et visibles sur la photo ci-dessus correspondent à une alarme visuelle (assez puissante dans le noir) ; les leds s'allument quand la Sirène sonne.<br />
<br />
L'intégration est très simple. Il faut créer un nouveau pérphérique de type ZWAVE et cliquer sur le bouton association de la SIRENE et dans l'interface de la Zibase :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-mC02C_NDzP8/VcYiU2FaoUI/AAAAAAAAAnQ/OhbsH6Sy6LA/s1600/Int%25C3%25A9gration%2BSIRENE.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="470" src="https://2.bp.blogspot.com/-mC02C_NDzP8/VcYiU2FaoUI/AAAAAAAAAnQ/OhbsH6Sy6LA/s640/Int%25C3%25A9gration%2BSIRENE.JPG" width="640" /></a></div>
<br />
La sirène est maintenant configurée et il suffit, dans notre cas de l'intégrer dans notre scénario utilisant le module Alarme de la Zibase comme présenté ci-dessous.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-T_Xi30ILI7Y/VcYi8nPF94I/AAAAAAAAAnY/YEsiiEo5QDU/s1600/sc%25C3%25A9nario%2Balarme.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://1.bp.blogspot.com/-T_Xi30ILI7Y/VcYi8nPF94I/AAAAAAAAAnY/YEsiiEo5QDU/s640/sc%25C3%25A9nario%2Balarme.JPG" width="640" /></a></div>
<br />
Cela fait environ 2 mois que nous l'avons intégrer et elle fonctionne parfaitement avec la Zibase Multi (oui les enfants oublient souvent d'enlever l'alarme:)) . Si vous chercher une sirène à un tarif abordable, je trouve que c'est un excellent choix.<br />
<br />
Nous avons maintenant la possibilité d'intégrer d'autres périphériques ZWAVE dans notre installation domotique car pour l'instant notre graphe est bien limité :) et ne nécessite pas d'optimisation :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-eT7ZxrodLrI/VcYkCPj2xmI/AAAAAAAAAnk/9rt-9mHYjdY/s1600/graph%2BZWAVE.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="87" src="https://1.bp.blogspot.com/-eT7ZxrodLrI/VcYkCPj2xmI/AAAAAAAAAnk/9rt-9mHYjdY/s320/graph%2BZWAVE.JPG" width="320" /></a></div>
<br />
Vous pouvez également retrouver un test de la Sirène AEOTEC ZW080 avec d'autres box domotiques sur le blog de Domadoo <a href="http://blog.domadoo.fr/2015/08/07/test-de-la-sirene-z-wave-aeotec-zw080/" target="_blank">ici</a>.<br />
<br />
Les prochains articles devraient porter sur le Multisensor ZWAVE 4 en 1 d'AEON LAB (disponible <a href="http://missquellegoule.blogspot.fr/2015/08/zibase-multi-et-multisensor-daeon-labs.html" target="_blank">ici</a> depuis l e 15/08/2015), la ZIBASE TVBOX ou l'intégration de GreenIQ à Zibase Multi via IFTTT (et le nouveau Channel Maker)...plein d'éléments sur lesquels j'ai du "retard" rédactionnel. A moins que des belles nouveautés soient encore annoncées par Zodianet à la rentrée...</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-49701081170577225312015-05-25T11:50:00.001+02:002016-05-29T14:57:09.803+02:00GreenIQ : Test du contrôleur d'arrosage connecté automatique et intelligent<div dir="ltr">
<h2 style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2015/08/zibase-multi-zwave-et-sirene-daeon-labs.html" style="font-size: medium; font-weight: normal;" target="_blank">Article suivant sur la Zibase Multi, le ZWAVE et la sirène AEON LABS</a></h2>
<h2 style="text-align: center;">
<u style="font-size: xx-large;">GreenIQ (Smart Garden Hub) : Test du contrôleur d'arrosage connecté automatique et intelligent</u></h2>
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Pour sortir un peu du monde Zibase, nous avons décidé de vous présenter le contrôleur d'arrosage Green IQ. GreenIQ est un boitier connecté par Internet permettant de gérer votre arrosage de façon automatique et intelligente.<br />
<br />
<b><u>Présentation de GreenIQ</u></b></div>
<div dir="ltr">
<b><u><br /></u></b>A réception, l'emballage se présente sous la forme suivante :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-bP8qivjUehc/VWHCndzkOqI/AAAAAAAAAhA/OJstHUEa4D8/s1600/boite.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://4.bp.blogspot.com/-bP8qivjUehc/VWHCndzkOqI/AAAAAAAAAhA/OJstHUEa4D8/s320/boite.jpg" width="320" /></a></div>
<br />
A l'intérieur de la boite, tous les éléments nécessaires sont disponibles :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-g8ncXWiOTtU/VWHDAnL5PLI/AAAAAAAAAhM/2yq1N3478kE/s1600/IMG_20150522_213245.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://1.bp.blogspot.com/-g8ncXWiOTtU/VWHDAnL5PLI/AAAAAAAAAhM/2yq1N3478kE/s400/IMG_20150522_213245.jpg" width="300" /></a></div>
<br />
<ul>
<li>Le boitier intelligent Green IQ,</li>
<li>L'alimentation du boitier,</li>
<li>Documentations d'installation et d'utilisation en français,</li>
<li>Chevilles, vis et petit tournevis pour fixer le boitier,</li>
<li>Kit d'étiquettes pour repérer les câbles,</li>
<li>Câble Ethernet,</li>
<li>Une carte d'identification contenant le nom utilisateur, le mot de passe (<strike>attention, non modifiable par la suite donc ne pas perdre cette carte !</strike> <span style="color: red;">Edit du 25/05/2015 Suite au commentaire de GreenIQ, cela est possible via cette <a href="http://greeniq.net/password.html" target="_blank">adresse</a></span>) et le numéro de série. </li>
</ul>
<br />
Ces éléments donnent une très bonne impression de qualité.<br />
<br />
Côté caractéristiques, le GreenIQ n'a rien à envier à tous les programmateurs d'arrosage traditionnels de type RainBird, Gardena....tout en étant connecté et bénéficiant de fonctions spécifiques :</div>
<div dir="ltr">
<br />
<ul>
<li>6 zones d'irrigations : <b>point important, il est possible de connecter deux vannes 24V par zone (non précisé sur la documentation mais information donnée par GreenIQ)</b>. Ce point est indispensable pour nous car nous disposons de 11 vannes. Néanmoins, pour des limites de puissance de courant, veillez à ne jamais déclencher plus de deux vannes en mêmes temps. Pour chaque zone, vous pourrez :</li>
<ul>
<li>Définir une photo,</li>
<li>Donner un nom à la zone,</li>
<li>Activer ou non la zone,</li>
<li>La déclencher en manuel (lancement de l'arrosage sur la zone donné à la demande),</li>
<li>Définir des facteurs d'irrigation par mois (% d'eau attendu par mois en %). Ce paramètre n'est pas utilisé si dans les programmes (voir plus loin) vous spécifiez de tenir compte de la météo.</li>
</ul>
</ul>
<ul>
<li>4 programmes (heures début, heur fin) disponibles par zone. Pour chaque programme:</li>
<ul>
<li>Possibilité de l'activer ou non,</li>
<li>Possibilité de tenir compte de la météo ou non (si oui, alors le programme ne se lancera pas si la météo est annoncée pluvieuse),</li>
<li>Définir des jours ou des périodes de fonctionnements.</li>
</ul>
</ul>
<ul>
<li>Connectable en WIFI qui dispose d'une très bonne portée (à plus de 25 mètres de ma box et avec quelques murs) ou en Ethernet.</li>
</ul>
<div>
<ul>
<li>Un site WEB pour configurer toutes vos zones, programmes, reporting, statut. Il est parfaitement "Responsive Design", c'est à dire qu'il s'adapte parfaitement à toutes les tailles d'écran (testé sur téléphone et tablette Android, sur iPhone et IPAD, sur PC (Chrome, IE, Firefox..)). A noter qu'il n'existe pas d'application Android et Apple dédiée, le choix de GreenIQ étant uniquement de développer un site WEB fonctionnant sur tous les supports et navigateurs (à l'usage, cela n'est pas du tout gênant),</li>
</ul>
<ul>
<li>Il est également possible de connecter des capteurs analogiques, capteur de pluie, débitmètre ou de le connecter au Parrot Flower Power ou Koubachi mais nous n'avons pas expérimenté toutes ces options. De la même façon, il est possible de contrôler l'éclairage extérieur (il faudra prévoir un relais) mais là aussi, nous n'avions pas ce besoin donc ne l'avons pas expérimenté.</li>
</ul>
</div>
<div>
<ul>
<li>Il est étanche IP55 mais n'envisagez bien évidemment pas de l'utiliser en extérieur ou alors éventuellement sous abris.</li>
</ul>
<div>
Après cette petite présentation, place à la mise en oeuvre et à commencer par la configuration initiale. Je vous signale que tous les éléments décrits en suivant sont très bien documentés dans le guide d'installation de GreenIQ (très bien pour un nouveau produit).</div>
</div>
<div>
<br /></div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;">
<div dir="ltr">
</div>
</div>
<br />
<div dir="ltr" style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;">
<div style="margin: 0px;">
<b><u>Configuration initiale de GreenIQ (Smart Garden Hub)</u></b></div>
</div>
<br />
Avant de procéder à l'installation et au câblage de GreenIQ, il faut le configurer pour l'initialiser et le mettre sur le réseau (notamment si vous souhaitez l'utiliser en WIFI) afin de vérifier le bon fonctionnement.<br />
<br />
<ul>
<li><b><u>Initialisation et création de compte</u></b></li>
</ul>
Pour cela, vous devez vous rendre sur le <a href="https://greeniq.net/" target="_blank">site dédié</a> permettant la gestion de votre GreenIQ. Vous arrivez sur l'écran suivant :<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-3kQvVwSSWfg/VWIQQzJjylI/AAAAAAAAAi0/5HEU35x3qcg/s1600/Screenshot_2015-05-24-19-34-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://3.bp.blogspot.com/-3kQvVwSSWfg/VWIQQzJjylI/AAAAAAAAAi0/5HEU35x3qcg/s400/Screenshot_2015-05-24-19-34-03.png" width="225" /></a></div>
<br />
Il faut saisir le nom d'utilisateur et le mot de passe présent sur la carte d'utilisateur fourni dans le package. L'écran suivant est alors présenté :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-3uuE_v1YQuo/VWISc5waebI/AAAAAAAAAjw/0OPAoI_Ka1w/s1600/Ecran%2Bconfig%2Binit%2B1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://2.bp.blogspot.com/-3uuE_v1YQuo/VWISc5waebI/AAAAAAAAAjw/0OPAoI_Ka1w/s400/Ecran%2Bconfig%2Binit%2B1.jpg" width="225" /></a></div>
<br />
Il s'agit juste d'un nom, d'un prénom et d'un email qui servira à recevoir les rapports d'arrosage si vous le souhaitez (malheureusement, un seul email peut le recevoir...petite évolution à venir j'espère !) et à vérifier l'email pour la création de votre compte.<br />
<br />
Vous allez ensuite être amené à vous localiser soit en entrant vos coordonnées géographiques soit en demandant à l'application de vous localiser (sur mon OnePlusOne, cela n'a jamais fonctionné malgré toutes les autorisations d'accès de l'application et de chrome à ma localisation) tel que présenté à l'écran ci-dessous.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-jU7JvlStj10/VWITTIKYHsI/AAAAAAAAAj4/rsnNj-ErVbU/s1600/Screenshot_2015-05-22-22-13-56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://3.bp.blogspot.com/-jU7JvlStj10/VWITTIKYHsI/AAAAAAAAAj4/rsnNj-ErVbU/s400/Screenshot_2015-05-22-22-13-56.png" width="225" /></a></div>
<br />
Cliquer sur Envoyer et vous allez recevoir un message de création de compte sur l'email saisi vous demandant de valider la création du compte. Cliquer dessus et votre compte est créé.<br />
<br />
<br />
<ul>
<li><b><u>Configuration en WIFI (phase inutile si vous passez par Ethernet)</u></b></li>
</ul>
<br />
Si vous souhaitez utiliser le WIFI (ce qui est notre cas car nous n'avons pas d'Ethernet dans l'abri de jardin), il faut, dans un premier temps, enlever le couvercle du GreenIQ et raccorder le câble Ethernet fourni à votre routeur ou votre Box. Brancher ensuite votre GreenIQ et rendez-vous à nouveau sur le <a href="https://greeniq.net/" target="_blank">site dédié</a>.<br />
<br />
Connectez vous comme précédemment, et aller dans le menu "configuration internet". Vous êtes amenés à choisir votre réseau WIFI ou à le saisir (pour ma part, sur cette appli web, les réseaux WIFI disponibles ne m'étaient pas proposés comme l'atteste la capture d'écran ci-dessous). J'ai donc saisi directement mon réseau WIFI :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-VuMyVEVGOkQ/VWIf3apkZyI/AAAAAAAAAkI/kyfaYZACu6o/s1600/Screenshot_2015-05-22-22-14-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://1.bp.blogspot.com/-VuMyVEVGOkQ/VWIf3apkZyI/AAAAAAAAAkI/kyfaYZACu6o/s400/Screenshot_2015-05-22-22-14-11.png" width="225" /></a></div>
<br />
Une fois cliqué sur "envoyer", veuillez attendre pas mal de secondes et vous devriez avoir un message indiquant "configuration WIFI réussie".<br />
<br />
Vous pouvez ensuite débrancher l'alimentation électrique, puis le câble Ethernet, puis rebrancher l'alimentation de votre GreenIQ.<br />
<br />
Une fois redémarré, vous pouvez aller dans le menu "statut" de l'écran principal pour vérifier la configuration réseau. Vous devez obtenir l'écran au bout de quelques secondes :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-5oG7_Blf6JE/VWIiBubrYWI/AAAAAAAAAkU/3MqFRXqNtfc/s1600/Statut.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://3.bp.blogspot.com/-5oG7_Blf6JE/VWIiBubrYWI/AAAAAAAAAkU/3MqFRXqNtfc/s400/Statut.jpg" width="225" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Enfin, avant de procéder à l'installation, si vous êtes en WIFI, testez bien la bonne réception WIFI depuis l'emplacement définitif de votre GreenIQ.<br />
<br />
<div dir="ltr">
<b><u>Installation physique de GreenIQ</u></b></div>
<div>
<div dir="ltr">
<b><u><br /></u></b>Après cette configuration initiale, place à l'installation et au câblage. Il y a deux câbles sortants du GreenIQ :<br />
<br />
<ul>
<li>Câble 1 : il contient 8 fils de couleur différente permettant de raccorder vos électrovannes et dont la signification est la suivante :</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-PcLLBxRSQpI/VWIF0r4CJCI/AAAAAAAAAhk/caGMMnv5tWk/s1600/Code%2Bcouleur%2BCable%2B1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://1.bp.blogspot.com/-PcLLBxRSQpI/VWIF0r4CJCI/AAAAAAAAAhk/caGMMnv5tWk/s400/Code%2Bcouleur%2BCable%2B1.jpg" width="400" /></a></div>
<div>
<br /></div>
<br />
<br />
<ul>
<li>Câble 2 : il contient également 8 fils de couleur différente permettant de raccorder l'éclairage ou différents capteurs (nous ne l'utiliserons pas dans le cadre de nos besoins) et dont la signification est la suivante :</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-hhP3ThJO_wk/VWIHCr0_vnI/AAAAAAAAAh0/FtVN9m8_foc/s1600/Code%2Bcouleur%2BCable%2B2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="288" src="https://3.bp.blogspot.com/-hhP3ThJO_wk/VWIHCr0_vnI/AAAAAAAAAh0/FtVN9m8_foc/s400/Code%2Bcouleur%2BCable%2B2.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
Comme évoqué plus haut, nous disposons de 11 électrovannes (pour des problématiques de débit de puits) et nous avons donc procédé au câblage. Pour rappel, vous pouvez connecter deux électrovannes par zone sur le GreenIQ (merci à Odi DAHAN, Fondateur et CEO de GreenIQ pour sa disponibilité et ses informations).</div>
<div>
<br /></div>
<div>
Il s'agit donc de repérer vos fils d'électrovannes pour les raccorder selon vos souhaits au GreenIQ sur les vannes 1 à 6 ainsi que le commun entre les électrovannes. Comme nous avons 11 électrovannes, nous avons raccordé (en parallèle) 2 électrovannes sur les vannes 1 à 5 du Smart Garden Hub et une sur la vanne 6. Nous ne nous servirons par du fil orange du câble 1 qui permet de commander une éventuelle pompe (gérée par un contacteur manométrique chez nous). Nous branchons bien évidemment le commun des différentes électrovannes au port commun du GreenIQ.</div>
<div>
<br /></div>
<div>
Le tout dans une boite de dérivation et cela donne côté arrivée de mes électrovannes un beau bordel :) :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-pXPNyl36v3k/VWIIyqRiWeI/AAAAAAAAAiA/tC7z04rK5DE/s1600/IMG_20150523_151907.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://4.bp.blogspot.com/-pXPNyl36v3k/VWIIyqRiWeI/AAAAAAAAAiA/tC7z04rK5DE/s640/IMG_20150523_151907.jpg" width="480" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Il ne reste plus qu'à brancher les 7 fils du câble 1 du GreenIQ (comme nous n'utilisons pas le fil orange). Et voilà, le tour est joué :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-f902zehi8w8/VWIJwBYfX0I/AAAAAAAAAiM/n3TquK55q0Q/s1600/IMG_20150523_154150.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://2.bp.blogspot.com/-f902zehi8w8/VWIJwBYfX0I/AAAAAAAAAiM/n3TquK55q0Q/s640/IMG_20150523_154150.jpg" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Et voilà, les branchements sont terminés et il n'y a plus qu'à refermer tout cela, fixer le GreenIQ au mur, faire un peu de tri dans les câbles, alimenter le GreenIQ avec l'alimentation fournie et cela donne :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-KZLkOoNNpQg/VWIKfN5Tk0I/AAAAAAAAAiY/Smnq_3XouzY/s1600/IMG_20150523_170621.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://2.bp.blogspot.com/-KZLkOoNNpQg/VWIKfN5Tk0I/AAAAAAAAAiY/Smnq_3XouzY/s400/IMG_20150523_170621.jpg" width="300" /></a></div>
<br />
Et d'un peu plus loin avec le système complet et la vessie (ne regardez pas la poussière:))<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-jS7bkCVl3yE/VWIKeqmsyZI/AAAAAAAAAiU/3EBrjGu254E/s1600/IMG_20150523_170634.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://4.bp.blogspot.com/-jS7bkCVl3yE/VWIKeqmsyZI/AAAAAAAAAiU/3EBrjGu254E/s640/IMG_20150523_170634.jpg" width="640" /></a></div>
<div>
<br /></div>
<div>
Elle est pas belle la vie ? :). Pour information, vu le nombre de fil à gérer et à repérer, cette mise en oeuvre m'a pris près de deux heures.</div>
<div>
<br /></div>
<div>
<b><u>Utilisation de GreenIQ</u></b></div>
<div>
<br /></div>
<div>
Une fois ces branchements et la configuration initiale effectués, il suffit maintenant de se rendre sur le <a href="https://greeniq.net/" target="_blank">site dédié</a> vous permettant de configurer les zones et les programmes de votre GreenIQ.</div>
<div>
<br /></div>
<div>
Après avoir entré votre nom d'utilisateur et votre mot de passe, vous accédez au menu suivant :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ikG0gFQRL2I/VWIQSKJNrcI/AAAAAAAAAjM/ewlHjKI7yPw/s1600/Screenshot_2015-05-24-19-34-34.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://2.bp.blogspot.com/-ikG0gFQRL2I/VWIQSKJNrcI/AAAAAAAAAjM/ewlHjKI7yPw/s400/Screenshot_2015-05-24-19-34-34.png" width="225" /></a></div>
<br /></div>
<div>
A partir de ce menu, toute la configuration des zones et des programmes se fait dans le menu "Programme".<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-qyvfsF3_EbU/VWIQTMe3mvI/AAAAAAAAAjU/JYJEU2DpzKE/s1600/Screenshot_2015-05-24-19-34-53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://3.bp.blogspot.com/-qyvfsF3_EbU/VWIQTMe3mvI/AAAAAAAAAjU/JYJEU2DpzKE/s400/Screenshot_2015-05-24-19-34-53.png" width="225" /></a></div>
<br /></div>
<div>
Il est donc possible de configurer 6 zones en les nommant et en définissant 4 programmes par zone. La pseudo-zone 8 concerne l'éclairage et nous ne l'avons pas utilisée. Pour paramétrer une zone, il faut cliquer sur une zone donnée :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-J2DR-4mSupA/VWIQVDuRIqI/AAAAAAAAAjo/MkSUnEPMNS8/s1600/Screenshot_2015-05-24-19-35-04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://1.bp.blogspot.com/-J2DR-4mSupA/VWIQVDuRIqI/AAAAAAAAAjo/MkSUnEPMNS8/s400/Screenshot_2015-05-24-19-35-04.png" width="225" /></a></div>
<br />
Comme expliqué plus haut, vous pouvez définir, pour chaque zone, une photo, un nom, si la zone est activée ou non, éventuellement déclencher la zone manuellement (pour déclencher un arrosage manuel), des facteurs d’irrigation mensuels (pas utilisé si votre programme tient compte de la météo) et enfin, définir au plus 4 programmes comme ci-dessous :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-KG5FRM9X0bg/VWIQTwP8g1I/AAAAAAAAAjY/nXmC0wS9lTw/s1600/Screenshot_2015-05-24-19-35-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://4.bp.blogspot.com/-KG5FRM9X0bg/VWIQTwP8g1I/AAAAAAAAAjY/nXmC0wS9lTw/s400/Screenshot_2015-05-24-19-35-09.png" width="225" /></a></div>
<br />
Pour définir un programme, il faut cliquer sur un des 4 programmes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-AbsFxBZWo1I/VWLntGirtrI/AAAAAAAAAko/u-rFDMx2xSg/s1600/Screenshot_2015-05-25-11-11-36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://4.bp.blogspot.com/-AbsFxBZWo1I/VWLntGirtrI/AAAAAAAAAko/u-rFDMx2xSg/s400/Screenshot_2015-05-25-11-11-36.png" width="225" /></a></div>
<br /></div>
<div>
Sur chaque programme, vous pouvez l'activer ou non, tenir compte du facteur météo (si oui, les facteurs d'irrigation mensuels définis au niveau de la zone seront inactifs), une heure de début, une heure de fin et également les jours de fonctionnement ou un calendrier de fonctionnement.<br />
<br />
<b>Concernant l'heure de début et l'heure de fin, si vous avez activez la fonction "météo', il faut entrer la durée que vous considérez comme maximum les jours les plus chauds. Cette durée sera minimisée (ou non) automatiquement par GreenIQ en fonction des facteurs météo (de l'évapotranspiration, c'est à dire la perte d'eau définies par l'ensoleillement et l'humidité).</b><br />
<br />
4 programmes par zone sont très utiles pour nous. En effet, ayant un débit de puits faible (1 m3/h), cela nous permet de laisser le temps au puits de se remplir entre deux déclenchement de zones. Rare sont les programmateurs classiques qui permettent de gérer 4 programmes par zone (chaque zone regroupant pour nous 2 électrovannes).<br />
<br />
Les autres menus du menu principal sont très simples et permettent d'accéder à des rapports d'irrigation (et de vous les faire envoyer par email...sur le seul email défini dans votre compte), de définir des capteurs du type débitmètre, pluviomètre...(non utilisé pour nous). Les autres menus servent à la configuration que nous avons présenté précédemment.<br />
<br />
En conclusion, ce produit est de très bonne qualité, très abouti pour un nouveau produit et remplissant parfaitement son rôle.<br />
<b><br /></b>
<b>Les points positifs :</b><br />
<br />
<ul>
<li>accès depuis internet pour commander ou surveiller son arrosage,</li>
<li>prise en compte de la météo pour ajuster les temps d'arrosage,</li>
<li>possibilité de pouvoir brancher 2 électrovannes par entrée et donc gérer 12 électrovannes,</li>
<li>la simplicité de mise en oeuvre et le confort du paramétrage,</li>
<li>des rapports quotidiens ou hebdomadaires permettant d'avoir une bonne vision des temps d'arrosage,</li>
<li>un tarif ajusté (249€) par rapport à la qualité du produit.</li>
</ul>
<br />
Je signale également qu'une API est à disposition et que le canal IFTTT devrait être disponible au grand public d'ici une ou deux semaines.Nous en reparlerons certainement dans un prochain article pour voir quelle intégration est possible avec la Zibase.<br />
<br />
<b>Les points négatifs (j'ai beaucoup cherché :)) :</b><br />
<br />
<ul>
<li><strike>Pas de possibilité de modifier ses informations de compte (nom d'utilisateur et mot de passe) </strike><span style="color: red;">Edit du 25/05/2015 Suite au commentaire de GreenIQ, cela est possible via cette </span><a href="http://greeniq.net/password.html" target="_blank">adresse</a>,</li>
<li>Pas de possibilité de se faire envoyer les rapports quotidiens ou hebdomadaires sur plusieurs emails.</li>
</ul>
<br />
La longueur de l'article reflète mon excellente impression concernant ce produit. Je tenais à nouveau à remercier particulièrement Odi DAHAN, Fondateur et CEO de GreenIQ pour sa disponibilité et ses informations.<br />
<br />
Merci aussi à Domadoo pour la mise en avant de ce produit notamment au travers d'un test mené par KRAGG (Laurent Guillot, Responsable Technique chez Domadoo) disponible <a href="http://blog.domadoo.fr/2015/05/15/test-controleur-darrosage-intelligent-greeniq/" target="_blank">ici</a>. </div>
<div>
<br />
...et sinon, j'ai un programmateur d'arrosage classique de disponible : Rainbird SI-RR+ 12 voies...pour ceux que cela pourrait intéresser (difficile à trouver en France).<br />
<br />
N'hésitez pas, si vous avez des questions, à les partager dans les commentaires.<br />
<br />
A très vite pour un article sur le dongle ZWAVE sur la Zibase Multi (disponible <a href="http://missquellegoule.blogspot.fr/2015/08/zibase-multi-zwave-et-sirene-daeon-labs.html" target="_blank">ici </a>depuis le 08 Août 2015).</div>
<div>
<br /></div>
</div>
</div>
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-56929917235388276252015-04-12T14:51:00.001+02:002015-05-28T22:56:39.509+02:00Zibase Multi : Indicateur de consommation électrique sur le Dashboard<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2015/05/greeniq-controleur-darrosage-connecte.html" target="_blank">Article suivant sur le contrôleur d'arrosage connecté GreenIQ</a></div>
<div dir="ltr">
<h2 style="text-align: center;">
<u style="font-size: xx-large;">Zibase Multi :</u></h2>
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u>Indicateur de consommation électrique sur le Dashboard</u></span></span></h2>
<b><br /></b><b><u><br /></u></b><b><u><br /></u></b><b><u>Le but</u></b><br />
<b><br /></b></div>
<div dir="ltr">
Le but est de continuer la découverte de Javascript sur Zibase Multi à travers un exemple faisant apparaître sur Zibase Multi un indicateur de consommation électrique. Cette exemple reprend la même finalité que l'article "<a href="http://missquellegoule.blogspot.fr/2015/01/indicateur-de-consommation-electrique.html" target="_blank">Surveiller sa consommation électrique avec Karotz / Open Karotz et Zibase</a>"écrit le 06/01/2015.</div>
<div dir="ltr">
<br />
Nous allons donc faire afficher un cercle et un texte d'une couleur différente en fonction de la consommation électrique.<br />
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
L'intérêt du Javascript ici est de simplifier très largement cette gestion par rapport à ce que nous faisions avec Karotz (3 scénari). Cela permet également de soulager les traitements via la Zibase et surtout de les faire en local sur la tablette accueillant la Zibase Multi.<br />
<br />
<b><u>Mise en oeuvre</u></b></div>
<div dir="ltr">
<b><u><br /></u></b>Comme dans <a href="http://missquellegoule.blogspot.fr/2015/04/zibase-multi-annoncer-vocalement-la.html" target="_blank">l'article précédent</a> permettant d'annoncer la température, nous allons donc créer un scénario avec comme déclencheur la sonde OWL relevant la consommation électrique (la pince ampèremétrique étant sur le fil d'arrivée principale de l’électricité juste après le compteur) qui fait appel à un fichier Javascript stocké en local sur la SDCARD de la tablette. Cela donne :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/--vNVSYSkGrQ/VSpIjt5yyvI/AAAAAAAAAeE/CY0mZ8nJUHE/s1600/sc%C3%A9nario%2Bconso%2Belec.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="448" src="http://2.bp.blogspot.com/--vNVSYSkGrQ/VSpIjt5yyvI/AAAAAAAAAeE/CY0mZ8nJUHE/s1600/sc%C3%A9nario%2Bconso%2Belec.JPG" width="640" /></a></div>
<br />
Le fichier conso_elect_cercle_texte.js contient le Javascript suivant :<br />
<br />
<span style="color: red;"><html></span><br />
<span style="color: red;"><head></span><br />
<span style="color: red;"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/></span><br />
<span style="color: red;"><title>Annonce Température</title></span><br />
<span style="color: red;"></head></span><br />
<span style="color: red;"><body></span><br />
<span style="color: red;"><script type="text/javaScript"></span><br />
<br />
<span style="background-color: lime;">//récupération de la variable I1 de la sonde OWL contenant la consommation instantanée</span><br />
var a = zibase.varIx(1)*100;<span style="background-color: lime;"> // unité 100W</span><br />
<br />
switch (true) {<br />
<br />
case a<=500 : <span style="background-color: lime;">//si conso élec instantanée inférieure à 500</span><br />
<span style="background-color: lime;"><span class="Apple-tab-span" style="white-space: pre;"> /*</span>paramètres : coordonnées X (en %), coordonnées Y (en %), taille du cercle (en %),specifie si critère précédent en % ou réel (_),couleur du cercle,delai*/</span><br />
<span style="background-color: lime;"><br /></span>
<span class="Apple-tab-span" style="white-space: pre;"> </span>android.drawCircle(60, 40,2,"%%%", "GREEN",0);<br />
<span style="background-color: lime;"><span class="Apple-tab-span" style="white-space: pre;"><br /></span></span>
<span style="background-color: lime;"><span class="Apple-tab-span" style="white-space: pre;"> /*</span>paramètres : numéro d'item, Texte à afficher, taille de la police, coordonnées X (en %), coordonnées Y (en %),specifie si critère précédent en % ou réel (_),couleur de la police, par défaut vide = sans justification*/</span><br />
<span style="background-color: lime;"><br /></span>
android.writeText(4, "Consommation faible.", 20, 63, 38, "_%%", "GREEN", "");<br />
break;<br />
<br />
case a<=1000: <span style="background-color: lime;">//si conso élec instantanée inférieure à 1000</span><br />
<br />
<span style="background-color: lime;">//même fonction que ci-dessus : le code RGB de la couleur vert foncé est #0B850E</span><br />
<br />
android.drawCircle(60, 40,2,"%%%", "#0B850E",0);<br />
<span class="Apple-tab-span" style="white-space: pre;"><br /></span>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: lime;">//même fonction que ci-dessus : le code RGB de la couleur vert foncé est #0B850E</span><br />
<br />
android.writeText(4, "Consommation normale.", 20, 63, 38, "_%%", "#0B850E", "");<br />
break;<br />
<br />
case a<=2000: /<span style="background-color: lime;">/si conso élec instantanée inférieure à 2000</span><br />
<span style="background-color: lime;"><span class="Apple-tab-span" style="white-space: pre;"> </span>//même fonction que ci-dessus : le code RGB de la couleur orange est #FF9933</span><br />
<br />
android.drawCircle(60, 40,2,"%%%", "#FF9933",0);<br />
<br />
<span style="background-color: lime;">//même fonction que ci-dessus : le code RGB de la couleur vert foncé est #FF9933</span><br />
<br />
android.writeText(4, "Consommation moyenne", 20, 63, 38, "_%%", "#FF9933", "");<br />
break;<br />
<br />
case a>2000 :<span style="background-color: lime;"> //si conso élec instantanée supérieure à 2000</span><br />
<br />
android.drawCircle(60, 40,2,"%%%", "RED",0);<br />
android.writeText(4, "Consommation importante.", 20, 63, 38, "_%%", "RED", "");<br />
break;<br />
}<br />
<span style="color: red;"></script></span><br />
<span style="color: red;"></body></span><br />
<span style="color: red;"></html></span><br />
<br />
En rouge, les éléments obligatoires dans le fichier Javascript. En vert, les commentaires pour vous aider à comprendre le code.<br />
<br />
<b><u>Quelques explications supplémentaires</u> </b><br />
<br />
<ul>
<li>l'instruction switch...case est connu dans tous les langages et permet de gérer différentes valeurs d'une variable. Cette instruction revient au même que faire des if imbriqués. C'est juste une question de simplification de lecture de mon point de vue.</li>
</ul>
<ul>
<li>la fonction <b>android.drawCircle(...)</b> utilisée ci-dessus permettant de dessiner un cercle sur le DashBoard n'est pas documentée par Zodianet à l'heure où j'écris ces lignes et a été introduite dans la V95 (donc veiller bien à avoir la dernière version de Zibase Multi). Merci à Zodianet pour sa réactivité habituelle suite à ma demande.</li>
</ul>
<ul>
<li>la fonction <b>android.writeText(...) </b>est bien documentée par Zodianet. Vous noterez que comme nous écrivons sur un même item (ici le numéro 4), il n'y a pas nécessité de l'effacer avec de réécrire.</li>
</ul>
<ul>
<li>nous sommes chauffés au gaz donc vous pouvez modifier comme vous voulez les bornes dans les "case" où en ajouter des supplémentaires avec un nouveau texte et une nouvelle couleur.</li>
</ul>
<br />
Ce petit scénario incluant le Javascript ci-dessus donne donc le résultat suivant sur la Zibase Multi :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-rHwixNj1SvQ/VSpU-gftePI/AAAAAAAAAeY/GhpIOvuOPYI/s1600/conso_faible.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://2.bp.blogspot.com/-rHwixNj1SvQ/VSpU-gftePI/AAAAAAAAAeY/GhpIOvuOPYI/s1600/conso_faible.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-VDfKaESe6NU/VSpU-u5q02I/AAAAAAAAAeU/RgGPxfca_4o/s1600/conso_importante.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-VDfKaESe6NU/VSpU-u5q02I/AAAAAAAAAeU/RgGPxfca_4o/s1600/conso_importante.jpg" width="400" /></a></div>
<br />
Ainsi, à chaque fois que la sonde OWL émet, vous avez un cercle et un texte d'une couleur définie qui s'affichent en fonction de la consommation et des bornes définies dans le Javascript.Vous noterez dans les captures ci-dessus d'autres éléments d'affichage pouvant vous donner des idées (affichage de la température intérieure/extérieure, vitesse de la VMC, chauffage allumé ou éteint, alarme enclenchée ou non)... Vous pouvez vraiment adapter ce petit script en fonction de vos souhaits et vos besoins.<br />
<br />
<b><u>Simplification du code</u></b><br />
<br />
Comme vous avez pu vous en rendre compte, le code ci-dessus fait appel dans chaque cas aux fonctions android.drawCircle(...) et android.writeTexte(...), les seuls éléments changeant étant la couleur du cercle et du texte et le message affiché.<br />
<br />
En Javascript, comme dans tous les langages, il est possible de créer des fonctions. Je vous propose donc ci-dessous l'équivalent du code Javascript présenté ci-dessus avec la création d'une fonction cercleEtTexte(...) faisant appel aux fonctions android.drawCircle(...) et android.writeTexte(...) avec comme paramètre la couleur et le texte. Cela "factorise" encore plus le code, en améliore la lecture et la facilité de maintenance. Par exemple, si vous voulez changer l'endroit où s'affiche le cercle et/ou le texte, vous n'avez plus qu'à le faire qu'à un seul endroit.<br />
<br />
Au final, vous pouvez donc modifier le fichier conso_elect_cercle_texte.js avec le Javascript suivant :<br />
<br />
<span style="color: red;"><html></span><br />
<span style="color: red;"><head> </span><br />
<span style="color: red;"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/></span><br />
<span style="color: red;"><title>Annonce Température</title> </span><br />
<span style="color: red;"></head></span><br />
<span style="color: red;"><body></span><br />
<span style="color: red;"><script type="text/javaScript"> </span><br />
<br />
var a = zibase.varIx(1)*100; // unité 100W<br />
switch (true) {<br />
<br />
case a<=500 : <span style="background-color: lime;">//si conso élec instantanée inférieure à 500</span><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: lime;">//appel à la fonction cercleEtTexte définie ici en fin de script</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>cercleEtTexte ("GREEN","Consommation faible.");<br />
break;<br />
<br />
case a<=1000: <span style="background-color: lime;">//si conso élec instantanée inférieure à 1000</span><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: lime;">//appel à la fonction cercleEtTexte définie ici en fin de script</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>cercleEtTexte ("#0B850E","Consommation normale.");<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
break;<br />
<br />
case a<=2000: <span style="background-color: lime;">//si conso élec instantanée inférieure à 2000</span><br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: lime;">//appel à la fonction cercleEtTexte définie ici en fin de script</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>cercleEtTexte ("#FF9933","Consommation moyenne");<br />
break;<br />
<br />
case a>2000 : <span style="background-color: lime;">//si conso élec instantanée supérieure à 2000</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: lime;">//appel à la fonction cercleEtTexte définie ici en fin de script</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>cercleEtTexte ("RED","Consommation importante.");<br />
break;<br />
}<br />
<br />
function cercleEtTexte (couleur,texte) {<br />
android.drawCircle(60, 40,2,"%%%", couleur,0);<br />
android.writeText(4, texte, 20, 63, 38, "_%%", couleur, "");<br />
}<br />
<br />
<span style="color: red;"></script></span><br />
<span style="color: red;"></body> </span><br />
<span style="color: red;"></html></span><br />
<br />
Voilà pour cet article qui vous permettra d'appréhender le Javascript à travers ce nouvel exemple. Ceci montre que le Javascript permet de simplifier les scénari, de moins encombrer la mémoire de la Zibase, d'optimiser les temps de traitements et de supprimer les latences sur le réseau liées à des appels HTTP (comme nous le faisons avec Karotz et Open Karotz).<br />
<br />
Je profite de cette fin d'article pour vous signaler que j'ai pas mal échangé avec Zodianet cette semaine et que l'application serveur local sur Android est en béta test (toutes les semaines selon les mots de Zodianet :)) et ne devrait donc pas tarder à sortir. Par ailleurs, ils m'ont confirmé qu'ils n'avaient absolument pas présenté de tablette intégrant les protocoles au CEBIT...à suivre...je peux pas en dire plus ;).<br />
<br />
Pour changer un peu de sujet, retrouvez un article sur GreenIQ, le contrôleur d'arrosage automatique et connecté <a href="http://missquellegoule.blogspot.fr/2015/05/greeniq-controleur-darrosage-connecte.html">ici </a>(disponible depuis le 25/05/2015)<br />
<br />
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-47959617928042759082015-04-06T15:56:00.002+02:002015-04-12T14:53:57.402+02:00Zibase Multi : Annoncer vocalement la température intérieure et extérieure en Javascript<div dir="ltr">
<b><u><br /></u></b>
<div style="text-align: right;">
<u><a href="http://missquellegoule.blogspot.fr/2015/04/zibase-multi-indicateur-de-consommation.html" target="_blank">Article suivant : Indicateur de consommation électrique sur le Dashboard de Zibase Multi</a></u></div>
<br />
<b><u><br /></u></b>
<br />
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u>Zibase Multi :</u></span></span></h2>
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u>Annoncer vocalement la température intérieure et extérieure en JS</u></span></span></h2>
<b><br /></b>
<b><u><br /></u></b>
<b><u><br /></u></b><b><u>Le but</u></b><br />
<b><br /></b></div>
<div dir="ltr">
Le but est de découvrir le Javascript à travers un exemple en faisant énoncer vocalement à la Zibase Multi la température intérieure et extérieure. Cette exemple reprend la même finalité que l'article <a href="http://missquellegoule.blogspot.fr/2015/01/karotz-annonce-la-temperature-avec.html" target="_blank">Karotz annonce la température avec Open Karotz et Zibase</a> écrit le 17/01/2015. </div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Le Javascript est donc le langage client universel retenu par Zodianet pour pouvoir effectuer des actions spécifiques à l'intérieur ou en dehors de scénari. L'avantage est que la documentation sur le Javascript ne manque par sur le Web car il est utilisé sur tous les sites WEB pour effectuer des actions sur le poste client.<br />
<br />
Par ailleurs sa syntaxe est relativement simple même si quelques notions de développements sont nécessaires. Je me suis efforcé de présenter ici un exemple simple avec tous les détails pour permettre aux plus néophytes d'entre nous de pouvoir le mettre en oeuvre.<br />
<br />
Au delà de ce langage, Zodianet à mis à disposition 6 nouveaux objets orientés Zibase Multi avec de nombreuses fonctions disponibles permettant d'effectuer des opérations multiples.<br />
<br />
Vous trouverez l'ensemble de la description de ces objets et des fonctions associées à partir de <a href="http://www.zodianet.com/toolbox-zibase/zibase-multi-javascript.html" target="_blank">cette page</a> sur le site de Zodianet. Je vous laisse prendre les connaissance de toutes les possibilités.<br />
<br />
<b><u>Comment invoquer du Javascript ?</u></b></div>
<div dir="ltr">
<br />
Il existe 3 solutions pour faire appel à du Javascript :<br />
<br />
<br />
<ul>
<li>En incrustation de lignes JavaScript à l'intérieur même de scénarios de ZIBASE Multi. Ceci est très pratique mais aussi très limité car les limites de longueur d'un scénario sont très vite atteintes. Même si Zodianet travaille actuellement sur le sujet, à aujourd'hui, ces limites sont vraiment problématiques et au bout de quelques lignes de JS, vous ne pourrez plus enregistrer votre scénario. .</li>
</ul>
<ul>
<li>Dans des fichiers situés dans l'appareil Android supportant ZiBASE Multi. Cette fonctionnalité est très pratique car vous pouvez préciser à Zibase Multi d'aller exécuter du Javascript présent dans un fichier localement sur votre Zibase Multi.Vous n'êtes ainsi plus limités par la longueur des scénari. </li>
</ul>
<ul>
<li>Bien entendu, dans des fichiers sur serveur local ou distant.Je ne vois pas vraiment l'intérêt de cette fonctionnalité mais cela peut peut-être présenter un intérêt si vous diposer d'un NAS pour rassemble tous vos développement ? </li>
</ul>
Au préalable, il faut aller sur zodianet2 sur le configurateur en mode Expert / Menu Système pour définir le chemin par défaut sur lequel vous enregistrez vos fichiers Javascript. L'avantage est que vous n'aurez plus ensuite à préfixer ce chemin dans les différents appels effectués à l'intérieur des scénari.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Hq8UZNMF0IM/VSJ84ek7MhI/AAAAAAAAAck/Unm1mHpha-4/s1600/Chemin%2Bd%C3%A9faut.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Hq8UZNMF0IM/VSJ84ek7MhI/AAAAAAAAAck/Unm1mHpha-4/s1600/Chemin%2Bd%C3%A9faut.JPG" height="116" width="640" /></a></div>
<br />
Je vous conseille donc d'entrer le chemin préconisé par défaut et déjà créé sur votre tablette par l'installation de Zibase Multi : /sdcard/data/data/zibase/userscripts/<br />
<br />
Une fois ce préalable rempli, vous trouverez ci-dessous la mise en oeuvre du petit script pour faire annoncer vocalement la température intérieure et extérieure à Zibase Multi.<br />
<br />
<br />
<b><u>Mise en oeuvre</u></b><br />
<b><u><br /></u></b>
Comme toutes les fonctions sur Zibase Multi, il faut donc aller dans le Menu Piloter sous Android / Exécuter du Javascript (Pour Béta Testeur seulement même si ce n'est plus le cas) comme ci-dessous :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-DtfM9D3Wnus/VSJ7pFBHW4I/AAAAAAAAAcc/2OpegWsB6U0/s1600/Invocation%2Bde%2BJS.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-DtfM9D3Wnus/VSJ7pFBHW4I/AAAAAAAAAcc/2OpegWsB6U0/s1600/Invocation%2Bde%2BJS.JPG" height="376" width="640" /></a></div>
<br />
<b><u><br /></u></b>La fenêtre suivante s'ouvre :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-7tG0wspx0rw/VSJ95CcQVLI/AAAAAAAAAcs/m8xqwdWRJOM/s1600/Fen%C3%AAtre%2BJS.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-7tG0wspx0rw/VSJ95CcQVLI/AAAAAAAAAcs/m8xqwdWRJOM/s1600/Fen%C3%AAtre%2BJS.JPG" height="170" width="640" /></a></div>
<br />
Dans notre exemple, nous allons donc Exécuter du Javascript sur une fenêtre invisible à partir d'un fichier stocké en local sur le serveur Zibase Multi (la tablette quoi !) en prenant le soin de préciser "Préfixer le chemin par défaut" qu reprendra le chemin défini dans les paramètres système. Dans le chemin/fichier, il faut entrer le Nom du fichier JS que nous allons générer ; ici : "Annonce_temperature.js".<br />
<br />
Nous utilisons l'appel à du Javascript dans un fichier stocké car les quelques lignes de JS nécessaires pour effectuer ce petit traitement rendrait le scénario trop long en mode incrustation (JS directement écrit dans le scénario) et vous ne pourrie pas le sauvegarder. Par ailleurs, l'avantage de cette solution est de ne pas remplir la mémoire de la Zibase Multi (aujourd'hui limité historiquement comme la zibase classic) et de pouvoir modifier le javascript sans avoir sans cesse à enregistrer la configuration du scénario (et donc le reboot multiple de la Zibase Multi.<br />
<br />
Pour information, nous disposons déjà de deux scénari nous servant notamment pour le thermostat qui se contentent de récupérer la valeur de la sonde de température intérieure dans la variable V0 et respectivement la température extérieure dans la variable V50. Vous pouvez les retrouver dans <a href="http://missquellegoule.blogspot.fr/2015/01/karotz-annonce-la-temperature-avec.html" target="_blank">cet article</a> à la rubrique <b>Scénario "Variable T intérieur" et Scénario "Variable T extérieur".</b><br />
<br />
Le contenu du fichier Annonce_temperature.js est le suivant :<br />
<br />
<span style="color: red;"><html></span><br />
<span style="color: red;"><head> </span><br />
<span style="color: red;"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/></span><br />
<span style="color: red;"><title>Annonce Température</title> </span><br />
<span style="color: red;"></head></span><br />
<span style="color: red;"><body></span><br />
<span style="color: red;"><script type="text/javaScript"> </span><br />
<br />
<span style="background-color: lime;">/*récupère le contenu de la variable V0 de la Zibase (Température Intérieure) et la divise par 10</span><br />
<span style="background-color: lime;">V0 contient 201 et donc la variable a va contenir 20.1</span><br />
<span style="background-color: lime;">fonction mis à dispo par Zodianet sur l'objet zibase*/</span><br />
<span style="background-color: lime;"><br /></span>
var a =zibase.varShort(0)/10;<br />
<br />
/<span style="background-color: lime;">/converti la variable a en string (chaine de caractères) / Fonction javascript</span><br />
<span style="background-color: lime;"><br /></span>
var b=a.toString();<br />
<br />
<span style="background-color: lime;">/*découpe la chaîne de caractère b pour séparer la partie entière et la partie décimale </span><br />
<span style="background-color: lime;">cela range les éléments dans un tableau de caractère contenu dans la variable c</span><br />
<span style="background-color: lime;">c[0] va donc contenir la valeur entière de la T° (avant le point) 20 pour l'exemple</span><br />
<span style="background-color: lime;">c[1] va donc contenir la valeur décimal de la T° (après le point)* 1 pour l'exemple*/</span><br />
<span style="background-color: lime;"><br /></span>
var c= b.split(".");<br />
<br />
<span style="background-color: lime;">/*si la décimal de la température vaut 0 alors le contenu de la case 1 du tableau c (c[1]) vaut undefined; alors on remplace par 0*/</span><br />
<span style="background-color: lime;"><br /></span>
if (c[1] == undefined) c[1]= "0";<br />
<br />
<span style="background-color: lime;">/*même commentaire que ci-dessus mais pour la variable V50 de la zibase qui contient la Témpérature extérieure*/</span><br />
<span style="background-color: lime;"><br /></span>
var d =zibase.varShort(50)/10;<br />
<br />
var e=d.toString();<br />
var f= e.split(".");<br />
if (f[1] == undefined) f[1]= "0";<br />
<br />
<span style="background-color: lime;">//fonction mis à dispo par Zodianet sur l'objet android</span><br />
<span style="background-color: lime;">//cette fonction speaks permet de faire parler Zibase Multi à partir d'un phrase (fonction TTS : Text To Speech)</span><br />
<span style="background-color: lime;"><br /></span>
android.speaks("La température intérieure est de " + c[0] + " point " + c[1] + " degrés.");<br />
android.speaks("La température extérieure est de " + f[0] + " point " + f[1] + " degrés.",20);<br />
<span style="color: red;"></script></span><br />
<span style="color: red;"></body> </span><br />
<span style="color: red;"></html></span><br />
<br />
Les parties en rouge sont des éléments que vous devez reprendre dès que vous créez un script JS indépendant, stocké en local ou sur un serveur (en changeant les éléments contenus dans la balise Title). A noter que les balises en rouge sont implicites et non utiles quand vous écrivez du JS directement dans le scénario (mode incrustation).<br />
<br />
<div>
Les parties surlignées en vert ne sont que des commentaires pour vous aider à comprendre le script mais ne servent évidemment à rien en tant que telles (noter qu'en Javascript, est considéré en commentaire tout ce qui est préfixé par // sur une ligne ou encadré par /* */ sur plusieurs lignes).<br />
<br />
Une fois votre fichier Annonce_temperature.js créé avec le contenu ci-dessus, il faut aller le placer dans le répertoire sur le serveur Zibase Multi soit dans /sdcard/data/data/zibase/userscripts/. Pour cela, j'utilise de mon côté AirDroid permettant facilement par glisser/déplacer de faire un copier/coller d'un fichier depuis le PC vers la tablette.<br />
<br />
Le scénario complet dans mon exemple donne donc :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/--2_IyvmiFWI/VSKHkbxixzI/AAAAAAAAAc8/AXRPMUehtjA/s1600/sc%C3%A9nario%2Bannonce%2BTemp%C3%A9rature%2BWE%2BOK.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/--2_IyvmiFWI/VSKHkbxixzI/AAAAAAAAAc8/AXRPMUehtjA/s1600/sc%C3%A9nario%2Bannonce%2BTemp%C3%A9rature%2BWE%2BOK.JPG" height="442" width="640" /></a></div>
<br />
<br />
Ce scénario Android - Temp WE est donc celui qui va me permettre d'annoncer la température intérieure et extérieure selon un calendrier fixe, ici le samedi et le dimanche à 10 h, 13 h et 20 h.<br />
<br />
Vous pouvez créer un autre scénario comme ci-dessous invoquant le même script pour faire annoncer à des heures différentes le reste de la semaine la température intérieure et extérieure. Dans mon exemple, le calendrier fixe va du lundi au vendredi et les heures de déclenchement sont 8h et 20h<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-wAHRYTG-23Y/VSKKNs7FNuI/AAAAAAAAAdI/-bexssHncLU/s1600/sc%C3%A9nario%2Bannonce%2BTemp%C3%A9rature%2BSemaine%2BOK.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-wAHRYTG-23Y/VSKKNs7FNuI/AAAAAAAAAdI/-bexssHncLU/s1600/sc%C3%A9nario%2Bannonce%2BTemp%C3%A9rature%2BSemaine%2BOK.JPG" height="444" width="640" /></a></div>
<br />
<br />
J'espère que ces premiers éléments concernant le Javascript sur Zibase Multi vous permettront de mieux appréhender les possibilités et vous donneront des idées quant à la création de nouveaux scénari.<br />
<br />
Je publierais d'autres petits script JS dès que j'aurai le temps d'écrire les articles détaillés pour les rendre abordables et compréhensibles par tous.<br />
<br />
<br /></div>
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-34826076973342117342015-03-29T10:59:00.001+02:002015-04-12T14:31:56.116+02:00Zibase Multi : Migration depuis une Zibase Classic<br />
<div dir="ltr">
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2015/04/zibase-multi-annoncer-vocalement-la.html" target="_blank">Article suivant : Annoncer vocalement la température via javascript et Zibase Multi</a></div>
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u><br /></u></span></span></h2>
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u>Zibase Multi :</u></span></span></h2>
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u>Migration depuis une Zibase Classic</u></span></span></h2>
<b><br /></b>
<b><u><br /></u></b>
<b><u>Le but</u></b><br />
<b><br /></b></div>
<div dir="ltr">
L'objet de cet article est de vous présenter pas à pas la migration d'une Zibase Classic vers une Zibase Multi en vous donnant le maximum d'informations pour que vous n'ayez pas de surprises à la mise en oeuvre.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Zibase Multi, tout le monde en parle. Dans la micro-sphère domotique, il existe beaucoup de communiqués de presse et d'articles depuis la mise à disposition de Zodianet de Zibase Multi en juillet 2014.<br />
<br />
Il existe beaucoup moins d'articles opérationnels concernant sa mise en oeuvre. Certainement parce que peu d'entre nous ont franchi le pas de par les appréhensions générées par cette nouvelle approche de la domotique.<br />
<br />
Nous avons attendu environ 9 mois pour procéder à cette migration, le temps que Zodianet est bien éprouvé le concept et procédé à un certain nombre de correctifs.<br />
<br />
Avant de vous lancer, je vous conseille de lire l'intégralité de l'article qui vous permettra d'effectuer ou non cette migration en toute connaissance de cause.<br />
<br />
<b><u>Zibase Multi, c'est quoi ?</u></b></div>
<div dir="ltr">
<b><u><br /></u></b>Commençons par le commencement. Après avoir parcouru les forums, articles ou commentaires sur Zibase Multi, j'ai constaté que beaucoup d'entre nous s’interrogeaient sur ce qu'était réellement Zibase Multi au delà de tous les bienfaits marketing qui nous étaient présentés.<br />
<br />
Zibase Multi est donc une application Android (minimum Android 4.0) qui à vocation à remplacer votre box domotique Zibase Classic (l'émission des ordres pouvant être fait à travers des dongles à brancher sur les ports USB de votre tablette) ou dans le cas présenté ici,<b> de co-exister avec elle</b>. Il s'agit donc d'une application serveur qui gérera tous vos périphériques et vos scénari Zibase et qui doit être installée sur une tablette sur le même réseau local que votre Zibase Classic.<br />
<br />
Zibase Multi fera exactement la même chose que votre Zibase classic tout en profitant de l'écosystème Android et de l'écran de la tablette sur laquelle vous installerez Zibase Multi. Vous pourrez ainsi via un nouveau menu disponible sur le configurateur (en mode expert) de la Zibase Multi faire les actions suivantes :<br />
<br />
<ul>
<li>Manipuler du texte sur l'écran de votre tablette dans votre tableau de bord Zibase Multi (Alarmé désactivé/Activé, Vitesse de la VMC, Chauffage éteint/allumé, consommation électrique élevée, moyenne, basse ou tout autre message);</li>
</ul>
<ul>
<li>Manipuler du graphisme sur l'écran (Afficher une Image, tracer une forme);</li>
</ul>
<ul>
<li>Manipuler une source sonore (faire parler votre tablette (TTS : Text To Speech), lancer un Mp3 local ou distant, lancer une Webradio...);</li>
</ul>
<ul>
<li>Manipuler une source vidéo (lancer une vidéo YouTube, une vidéo Mp4 local ou distante...); </li>
</ul>
<ul>
<li>Exécuter du Javascript qui ouvre toute les possibilités et notamment les échanges avec vos autres objets connectés préférés, même si ceux-ci ne disposent pas de possibilités d'appels sous forme Http (en REST).</li>
</ul>
<br />
J'espère que ces quelques éléments éclaireront ceux qui ne comprenaient pas l'intérêt de Zibase Multi.<br />
<br />
Au delà de ces nouvelles possibilités, la configuration de votre serveur Zibase Multi se fait exactement de la même façon que votre Zibase Classic. C'est à dire qu’elle s'appuie sur la même interface de configuration Zodianet selon les même modalités (mais uniquement sur le serveur zibase2.net). De ce fait, la migration est grandement facilitée et vous n'aurez pas à réenregistrer tous vos périphériques et à créer à nouveau tous vos scénari dans Zibase Multi.<br />
<br />
<br />
<b><u>Zibase Multi : Migration depuis une Zibase Classic : Mise en oeuvre</u></b><br />
<b><u><br /></u></b>
<b><u>1/ Ce qu'il faut savoir</u></b><br />
<b><u><br /></u></b>
Nous disposons d'une Zibase Classic sans ZWAVE (oui, les toutes premières !). L'objectif est d'installer Zibase Multi et de se servir de Zibase Classic <b>de relai radio pour émettre les ordres vers nos périphériques sur les différents protocoles</b>. Les deux vont parfaitement communiquer entre elles sans que vous n'ayez à faire beaucoup de manipulations. Vous pourrez également ajouter des dongles sur le port USB de votre tablette pour disposer de nouveaux protocoles non disponibles sur votre Zibase Classic (par exemple, pour nous, le Zwave ou EnOcean).<br />
<br />
Par ailleurs, nous avions une tablette ASUS TF300 qui ne servait que très peu et avons décidé de la dédier à Zibase Multi (ceci n'empêchant pas éventuellement de faire tout autre chose dessus). Si vous disposez d'une licence sur votre Zibase Classic, cette migration ne vous coûtera rien!<br />
<br />
<b><u>2/ Test de comptabilité de Zibase Multi avec votre tablette</u></b><br />
<br />
Le téléchargement de l'application Zibase Multi est disponible gratuitement sur le Play Store. Par défaut, n'ayant pas de licence sur votre Zibase Multi, vous ne pourrez que tester son bon fonctionnement sur votre tablette sans aucune possibilité de faire des scénari.<br />
<br />
Une fois installée, vous pouvez lancer l'application et créer un nouveau compte (autre que celui que vous avez pour votre Zibase Classic) sur le site<a href="http://www.zibase2.net/" target="_blank"> Zibase2.net</a>. Attention, il faut absolument le faire sur Zibase<b>2</b>.net car Zibase Multi n'est pas disponible sur Zibase.net. Cela vous est précisé quand vous cliquez sur Créer un Nouveau Compte :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-VFj1o-pPGbY/VRec4ECwHSI/AAAAAAAAAag/77PhEwjIYKc/s1600/Zodianet2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-VFj1o-pPGbY/VRec4ECwHSI/AAAAAAAAAag/77PhEwjIYKc/s1600/Zodianet2.JPG" height="376" width="640" /></a></div>
<br />
<br />
Sur votre tablette, appuyer sur le bouton central de l'application Zibase Multi et ensuite sur OK sur la fenêtre présentée ci-dessus. La Zibase Multi va automatiquement être identifiée et vous allez pouvoir créer votre nouveau compte associé à votre Zibase Multi.<br />
<br />
Vous allez arriver sur le configurateur habituel de la Zibase avec un environnement complètement vierge sans aucun périphérique ni scénario.<br />
<br />
A ce stade, il va falloir indiquer à votre Zibase Multi que vous disposez d'une Zibase Classic et que vous souhaitez qu’elle vous serve de passerelle radio. Pour cela, il faut passer en mode expert et cliquer sur Système puis cocher les deux cases comme comme ci-dessous :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-ZKNRCcDIa7o/VRee-Em97YI/AAAAAAAAAa0/aIgRT2VrOa8/s1600/ZibaseMemeLan.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-ZKNRCcDIa7o/VRee-Em97YI/AAAAAAAAAa0/aIgRT2VrOa8/s1600/ZibaseMemeLan.JPG" height="161" width="400" /></a></div>
<br />
Cliquer ensuite sur Périphériques puis Sauvegarde. Cela force la re-synchronosation afin que la Zibase Multi le prenne bien en compte. Fermer et redémarrez l'application Zibase Multi sur votre tablette.<br />
<br />
Pour ceux qui dispose du ZWave, je vous invite à vous rendre sur la page de Zodianet <a href="http://www.zodianet.com/toolbox-zibase/startup-zibase-multi.html" target="_blank">ici </a>expliquant les options spécifiques pour créer un Bridge Zwave.<br />
<br />
A ce stade, votre écran (le DashBoard) de votre Zibase Multi devraient afficher en bleu tous les protocoles (sauf le Zwave en noir qui chez nous n'est pas disponible).<b> Il est normal que</b> <b>"HTTP" et "SCENARIO" soient grisés car ces fonctions ne sont pas disponibles tant qu'une licence n'est pas installée.</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-o5fA9oWWaWA/VRemFt1zVLI/AAAAAAAAAbE/c9ZNxmd16cc/s1600/Protocoles.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-o5fA9oWWaWA/VRemFt1zVLI/AAAAAAAAAbE/c9ZNxmd16cc/s1600/Protocoles.JPG" height="192" width="320" /></a></div>
<br />
Vous devez voir des clignotement s'opérer quand un protocole est activé via la réception de données de périphériques.<br />
<br />
Sur votre compte Zibase Multi, dans le suivi d'activité , vous devez voir les trames reçues par votre Zibase Classic comme ceci :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-v5Np2FQqwFE/VRenA3M3kfI/AAAAAAAAAbM/STVUCc_eISE/s1600/TRame%2BEsclave.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-v5Np2FQqwFE/VRenA3M3kfI/AAAAAAAAAbM/STVUCc_eISE/s1600/TRame%2BEsclave.png" height="19" width="640" /></a></div>
<br />
Ceci montre que Zibase Multi reçoit bien les trames de votre Zibase Classic qui est donc "l'esclave". Ces premières opérations n'affectent en rien le fonctionnement de votre Zibase Classic.<br />
<br />
<b>A ce stade, cela signifie que votre Zibase Multi fonctionne bien et est compatible avec la tablette sur laquelle vous l'avez installée. </b><br />
<br />
Afin de pouvoir faire fonctionner des périphériques et des scénari ainsi que retrouver l'ensemble de la configuration de votre Zibase Classic sur votre Zibase Multi, il faut maintenant effectuer le transfert de licence.<br />
<br />
<b><u>3/ Transfert de la licence de votre Zibase Classic vers votre Zibase Multi</u></b><br />
<b><br /></b>
Votre licence étant toujours sur votre Zibase Classic,<b> il faut absolument à cet instant effectuer une sauvegarde de la configuration (en plusieurs endroits tant qu'à faire).</b> En effet, l'import et l'export de configuration n'est possible qu'avec une licence ! Une fois transférée, vous ne pourrez plus ni exporter ni importer de configuration.<br />
<b><br /></b>
Pour cela, rendez-vous sur votre compte Zibase Classic, en configuration expert, dans votre compte, cliquer sur Importation/exportation :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-N6t_jqOFhR4/VRerEgJRvXI/AAAAAAAAAbY/LaXTAYJM1rU/s1600/Importation-exportation.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-N6t_jqOFhR4/VRerEgJRvXI/AAAAAAAAAbY/LaXTAYJM1rU/s1600/Importation-exportation.JPG" height="160" width="640" /></a></div>
<br />
Par sécurité, vous devez entrer votre mot de passe puis cliquer sur "Exporter dans un fichier" :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-tnlE5790_sQ/VRer127BSZI/AAAAAAAAAbo/avo6mbHAxwk/s1600/motdepasse.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-tnlE5790_sQ/VRer127BSZI/AAAAAAAAAbo/avo6mbHAxwk/s1600/motdepasse.JPG" height="89" width="320" /></a></div>
<br />
Cela va télécharger un fichier avec une extension .zconf. Bien conserver ce fichier que l'on va ensuite réimporter dans Zibase Multi.<br />
<br />
Au préalable de cette importation, il faut maintenant demander la migration de licence auprès de Zodianet en leur écrivant à l'adresse du support : contacat[at]zodianet.com<br />
<br />
Dans cet email, vous devez préciser :<br />
<br />
<ul>
<li>l'identifiant principal de votre Zibase Classic (disponible dans le configurateur expert dans le menu Système et de la forme ZiBASEXXXXX) et le compte associé (login de votre compte Zibase Classic);</li>
<li>l'identifiant principal de votre Zibase Multi (disponible dans le configurateur expert dans le menu Système et de la forme XiXxxxxxxxx) et le compte associé (login de votre compte Zibase Multi).</li>
</ul>
<div>
Zodianet devrait vous répondre en maximum 48 heures dès que votre migration de licence est effective (après contact avec Zodianet, vous pourrez revenir en arrière si vous n'êtes pas satisfait de la Zibase Multi). Durant toute cette période et après migration, votre Zibase Classic reste parfaitement opérationnelle.</div>
<div>
<br /></div>
<div>
Il faut ensuite redémarrer les machines et les configurateurs pour que la migration soit effective et bien pris en compte.</div>
<div>
<br /></div>
<div>
Il faut maintenant vous rendre dans le configurateur en mode expert de votre Zibase Multi et importer la configuration précédemment exporter de votre Zibase Classic. Vous retrouvez ainsi l'ensemble des périphériques et des scénari présents dans votre Zibase Classic dans votre Zibase Multi. Magique non ?</div>
<div>
<br /></div>
<div>
Vérifier avant la finalisation de la migration (décrite au chapitre <b>6/</b>) que tout fonctionne bien dans la Zibase Multi en créant votre Tableau de Bord (DASHBOARD) sur votre Zibase Multi et en accédant à votre Zibase Multi via l'application cliente (Android ou Apple) Zodianet HD.</div>
<div>
<br /></div>
<div>
<b><u>4/ Création du DASHBOARD sur la Zibase Multi</u></b></div>
<div>
<b><br /></b></div>
<div>
Pour créer le DASHBOARD, il faut juste créer un scénario. Automatiquement, sur votre tableau de Bord, vous allez pourvoir voir vos sondes, détecteurs, actionneurs, scénari et visuels ZWAVE. Le DASHBOARD permet de visualiser "en direct" les remontées de sondes, et les relations avec les détecteurs, actionneurs et scénari. A ce stade, cela permet surtout de vérifier le bon fonctionnement de votre Zibase Multi.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-3hnKqO4L0B0/VRexXdFvbWI/AAAAAAAAAb4/qZIf3gCJqfA/s1600/DashBoard.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-3hnKqO4L0B0/VRexXdFvbWI/AAAAAAAAAb4/qZIf3gCJqfA/s1600/DashBoard.JPG" height="476" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Vous pouvez choisir le nombre de lignes dédiées pour les différents groupes ainsi que la taille des icônes. Une documentation est disponible sur le site de Zodianet <a href="http://www.zodianet.com/actions-part5.html#DASHBOARD" target="_blank">ici</a>.</div>
<div>
<br /></div>
<div>
La vidéo présente <a href="https://www.youtube.com/watch?v=oefbD48cc6Y" target="_blank">ici </a> vous donne une idée du résultat. Si votre DASHBOARD s'anime bien, alors vous avez réussi à migrer vers Zibase Multi et il ne reste plus qu'à finaliser la migration.</div>
<div>
<br /></div>
<br />
<div>
<b><u>5/ Accéder à Zibase Multi via l'application cliente Zodianet HD</u></b></div>
<div>
<div>
<b><br /></b></div>
<div>
Vous pouvez également tester les périphériques et les scénari via l'application cliente Zodianet HD (sur Android ou Apple évidemment). </div>
</div>
<div>
<br /></div>
<div>
Pour cela, il s'agit de la même application que nous connaissons déjà. Bien entendu, à son lancement, veillez à bien entrer le compte et le mot de passe de votre Zibase Multi ainsi que le serveur Zibase2.net (la multi ne fonctionne que sur ce serveur pour rappel).</div>
<br />
<div>
<br /></div>
<div>
<b><u>6/ Finalisation de la migration</u></b></div>
<div>
<br /></div>
<div>
Voici les quelques points restant à faire sur lesquels il faut être vigilant.</div>
<div>
<br /></div>
<div>
<u>6.1 Nettoyage Zibase Classic</u></div>
<div>
<br /></div>
<br />
A cette étape, la Zibase Classic et la Multi fonctionnent en doublon car les deux possèdent vos périphériques et vos scénari. Donc, toutes les actions sont effectuées deux fois. Il faut donc "nettoyer" la configuration de la Zibase Classic.<br />
<br />
Pour cela, il faut supprimer manuellement l'ensemble des scnéari et périphériques depuis votre compte Zibase Classic. J'ai trouvé cette étape fastidieuse, nous qui avons de nombreux périphériques et scénari. N'essayez pas de faire un reset usine de votre Zibase Classic, cela ne change rien puisque la configuration se trouve sur les serveurs de Zodianet et et donc automatiquement rechargée.<br />
<br />
Il existe normalement la solution d'importer un fichier .zconf vide mais comme vous n'avez plus de licence sur votre Zibase Classic (vu que vous venez de la migrer sur Zibase Multi) alors l'importation n'est plus possible. Un peu dommage que Zodianet ne propose pas de solutions plus efficaces.<br />
<br />
<u>6.2 Reconfiguration de votre Thermostat</u><br />
<br />
Si vous disposez d'un Thermostat Zibase, il faut reconfigurer les plages horaires et les calendriers de déclenchement depuis l'application cliente. En effet, ces éléments étant stockés dans des variables, ils sont perdus lors de la migration.<br />
<br />
Cette opération est simple mais il ne faut pas l'oublier au risque de se retrouver avec 10°C dans la maison :).<br />
<br />
<u>6.3 Reconfiguration de vos scripts PHP ou de vos applications externes</u><br />
<br />
Si vous disposez de scripts PHP, il faut remplacer votre identifiant principal de Zibase Classic par le nouveau de votre Zibase multi ainsi que le mot de passe. Ceci peut être relativement lourd en fonction de la façon dont vous avez developpé (pour ma part, tout est dans un fichier de configuration :)). <span style="background-color: red;">Si nécessaire, il faut également modifier l'IP de la Zibase Classic par la nouvelle IP de la Zibase Multi (edit du 12/04/2015 : Faux, l'IP pour la récupération de la valeur des sondes doit rester celle de la Zibase Classic qui est la passerelle qui reçoit les éléments radio des périphériques...désolé pour cette erreur)</span> et remplacer toutes les références à zibase.net par zibase2.net (et là, pour moi, ce n'était pas dans un fichier de configuration :).<br />
<br />
De la même façon, si vous avez des applications externes (tasker, trigger...) faisant appel à zibase.net et à votre identifiant pour effectuer des actions, il faudra entièrement les modifier pour faire appel maintenant à Zibase2.net. Bonne nouvelle, le token est identique entre Zibase Classic et Zibase Multi et les numéros de scénario ne changent à priori pas (mais je n'ai pas encore tout vérifié).<br />
<br />
<u>6.4 Reprise de certains de vos scénari</u><br />
<br />
Pour les scénari qui utilisaient l’allumage des LED de la Zibase, bien évidement, sur la Zibase Multi, il n'y pas pas de LED et cela ne fonctionne donc pas. Il faudra les modifier pour afficher du texte ou des formes sur la tablette en lieu et place de l'allumage des LED de votre Zibase Classic. Mais cette problématique reste mineure et le résultat sur la tablette est quand même beaucoup plus sympa.<br />
<br />
<b><u>Conclusion</u></b><br />
<br />
Après une semaine d'utilisation, il est difficile d'avoir un avis précis sur Zibase Multi. Néanmoins, je reste convaincu que ce type de nouveau serveur domotique a beaucoup d'avenir et après avoir effectué quelques modifications simples de scénari, c'est quand même pratique de pouvoir afficher du texte à l'écran et de faire parler votre tablette (oui, ce n'est pas comme Karotz et Open Karotz:)). Le tout en local.<br />
<br />
Il faut également être conscient que si votre tablette tombe en panne, vous n'avez plus de serveur domotique (même si une installation sur un téléphone peut dépanner). Il faudra aussi être vigilant sur les opérations effectuées sur la tablette pour ne pas fermer le serveur domotique Zibase Multi (Zodianet a prévu de pouvoir locker l'écran sur Zibase Multi). Bref, rien n'est parfait mais c'est une belle avancée qui va certainement perdurer avec la sortie prochaine de tablettes par Zodianet avec tous les protocoles/dongles embarqués dans la tablette (après contact avec Zodianet, ceci est une rumeur non fondée. Zodianet ne prévoyant pas seul de sortir une tablette) .<br />
<br />
J'espère que ces éléments vous permettront de prendre votre décision sur la migration ou non vers Zibase Multi (sachant qu'elle n'est pas définitive et que vous pourrez redemander une migration dans l'autre sens). Après une semaine, de mon côté, je ne regrette rien. Voici juste un petit aperçu :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-X_euSI9Ukgs/VRe-gYqaNiI/AAAAAAAAAcI/qq2Iandr5Og/s1600/Screenshot_2015-03-29-10-55-07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-X_euSI9Ukgs/VRe-gYqaNiI/AAAAAAAAAcI/qq2Iandr5Og/s1600/Screenshot_2015-03-29-10-55-07.jpg" height="400" width="640" /></a></div>
<br />
<br />
Il me reste beaucoup d'éléments à explorer avec les possibilités infinis de Javascript et je ne manquerai pas de consacrer des prochains articles à la Zibase Multi.<br />
<br />
Vous trouverez un premier exemple de Javascript permettant d'annoncer vocalement la température intérieure et extérieure via Zibase Multi <a href="http://missquellegoule.blogspot.fr/2015/04/zibase-multi-annoncer-vocalement-la.html" target="_blank">ici </a>depuis le 06/04/2015.<br />
<br />
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com9tag:blogger.com,1999:blog-94176035240798499.post-7680466420693924742015-03-21T20:48:00.000+01:002015-03-29T11:02:40.649+02:00Gérer ses volets roulants en fonction de l’ensoleillement via Zibase<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2015/03/zibase-multi-migration-depuis-une.html" target="_blank">Voir l'article suivant sur Zibase Multi</a></div>
<div dir="ltr">
<h2 style="text-align: center;">
<span style="font-size: x-large;"><span style="background-color: white;"><u>Comment automatiser ses volets roulants en fonction de l'ensoleillement ?</u></span></span></h2>
<b><br /></b>
<b><u>Préambule</u></b><br />
<b><br /></b></div>
<div dir="ltr">
En attendant de recevoir la serrure Okidokeys (et oui déjà un mois que nous aurions du l'avoir !), nous vous proposons un petit article (dans la continuité du <a href="http://missquellegoule.blogspot.fr/2015/02/volets-roulants-somfy-rts-et-zibase.html" target="_blank">précédent)</a> décrivant deux scénari :<br />
<ul>
<li>le premier permettant de descendre ses volets roulants en fonction de l'ensoleillement détecté par notre sondes UV Orégon (référence UVN800). Si vous ne disposez pas de ce type de sondes, vous pouvez vous servir de capteur de luminosité ou pourquoi pas de sonde de température;</li>
</ul>
<ul>
<li>le second permettant de ré-ouvrir les volets roulants quand l’ensoleillement devient moins important.</li>
</ul>
L'idée est de profiter de l'isolation thermique des volets pour faire entrer le moins de chaleur possible lié à un fort ensoleillement (oui j'anticipe un peu sur l'été :)) et également de les réouvrir afin de retrouver de la luminosité une fois les fortes chaleurs passées.<br />
<br />
Pour rappel, nous sommes équipés de volets SOMFY RTS et pour chacun des volets, la touche "My" (position favorite) est configurée pour que le volet soit en position quasi fermé mais en mode ajouré pour laisser passer la lumière. A noter que les scénari peuvent fonctionner en les adaptant avec d’autres types de protocoles.<br />
<br />
<b><u>Mise en oeuvre</u></b><br />
<br />
<ul>
<li><b><u>Scénario permettant de descendre ses volets roulants en fonction de l'ensoleillement</u></b></li>
</ul>
<br />
Dans notre article précédent, nous avions évoqué la possibilité d'un pseudo retour d'état à condition de ne "commander" vos volets qu'à partir de la Zibase (donc pas d’utilisation de télécommandes ou d'interrupteurs).<br />
<br />
Dans ce cas, rien de plus simple, il suffit d'utiliser la fonction Zibase permettant de trouver l'état d'un périphérique comme indiqué ci-dessous.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-AQ0Gp2KwaGY/VQ2vr-d_mcI/AAAAAAAAAZY/0-uw3WJzROM/s1600/Etat%2Bvolet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-AQ0Gp2KwaGY/VQ2vr-d_mcI/AAAAAAAAAZY/0-uw3WJzROM/s1600/Etat%2Bvolet.png" height="141" width="640" /></a></div>
<br />
Dans l'action ci-dessus, V4 vaut 1 si le volet est ouvert et 0 si le volet est fermé.<br />
<br />
La première partie du scénario est la suivante :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-1BtIzMr9wy4/VQ209x8P7PI/AAAAAAAAAZo/znWF5k13YKI/s1600/volets%2B-%2BFav%2BUV%2BPartie%2B1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-1BtIzMr9wy4/VQ209x8P7PI/AAAAAAAAAZo/znWF5k13YKI/s1600/volets%2B-%2BFav%2BUV%2BPartie%2B1.jpg" height="431" width="640" /></a></div>
<br />
<br />
Nous avons défini un événement temporel pour que le scénario ne se lance qu'entre 14 heures et 19 heures. Le périphérique déclenchant le scénario est la sonde UV.<br />
<br />
Au niveau des conditions pour continuer le scénario, il faut que :<br />
<ul>
<li>l'ensoleillement soit strictement supérieur à 30 (donc à partir de 40),</li>
<li>le chauffage soit en mode arrêt (V17 = 5 dans notre cas : voir documentation du thermostat Zibase)</li>
<li>V44 soit égale à 0 (V44 est la variable sauvegardée qui permet de savoir si ce même scénario a déjà été lancé - elle prend la valeur 1 à la fin de ce scénario)</li>
</ul>
<div>
Pour la suite du scénario, rien de plus simple :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Vvo0yCnOZ5g/VQ246BRCcUI/AAAAAAAAAZ0/iCQtNKxS3ws/s1600/volets%2B-%2BFav%2BUV%2BPartie%2B2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Vvo0yCnOZ5g/VQ246BRCcUI/AAAAAAAAAZ0/iCQtNKxS3ws/s1600/volets%2B-%2BFav%2BUV%2BPartie%2B2.jpg" height="426" width="640" /></a></div>
<div>
<br /></div>
<br />
Par sécurité, le scénario s'arrête si l'espacement est inférieur à 900 secondes (15 minutes). Cette condition est vraiment une sécurité pour éviter les ouvertures / fermetures intempestives dans le cas où il y aurait des fortes variations d'UV (Nuage/Soleil de façon répétée).<br />
<br />
Nous regardons ensuite l'état du volet et si celui-ci est ouvert (alors V4 (variable temporaire) vaut 1), nous lançons le scénario "volets - SAM1 favori". Ce scénario lance juste une commande DIM sur le volet concerné pour le passer en position "favorite" (pour rappel, fermé mode ajourée).<br />
<br />
Il faut ensuite réitérer ces deux mêmes actions pour les autres volets concernés (4 dans notre cas situés plein sud).<br />
<br />
A la fin de ce scénario, comme évoqué précédemment, nous passons la variable V44 à 1 pour mémoriser que le scénario a été exécuté (et cela permet de ne pas le réexécuter à la prochaine émission de la sonde car c'est une condition nécessaire à l’exécution du scénario).<br />
<br />
Voici la capture d'écran :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-aHguMzx1Lrg/VQ28CN53YfI/AAAAAAAAAaA/NQxxkFK-V-U/s1600/volets%2B-%2BFav%2BUV%2BPartie%2B3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-aHguMzx1Lrg/VQ28CN53YfI/AAAAAAAAAaA/NQxxkFK-V-U/s1600/volets%2B-%2BFav%2BUV%2BPartie%2B3.jpg" height="100" width="640" /></a></div>
<br />
<br />
Et voilà, ce premier scénario est terminé. Il ne reste plus qu'à créer le scénario inverse (beaucoup plus simple).<br />
<br />
<ul>
<li><b><u>Scénario permettant de remonter ses volets roulants suite à une baisse d'ensoleillement</u></b></li>
</ul>
<div>
Ce scénario répond au même calendrier temporel que le précédent. Il se déclenche également à chaque émission de sonde UV mais n'est exécuté que si le scénario précédent à été exécuté positivement (donc que V44 =1) et que l'ensoleillement est inférieur ou égal à 30)</div>
<div>
<b><u><br /></u></b></div>
<div>
Par sécurité, le scénario s'arrête si l'espacement est inférieur à 900 secondes (15 minutes). Cette condition est vraiment une sécurité pour éviter les ouvertures / fermetures intempestives dans le cas où il y aurait des fortes variations d'UV (Nuage/Soleil de façon répétée).</div>
<div>
<br /></div>
<div>
Si toutes les conditions sont remplies il exécute le scénario qui ouvre tous les volets (pas que ceux au sud...c'est un choix).</div>
<div>
<br /></div>
<div>
Enfin, la variable V44 est remise à 0 pour que le précédent scénario puisse s’exécuter à nouveau si nécessaire.</div>
<div>
<br /></div>
<div>
Cela donne donc le scénario global suivant :</div>
<div>
<b><u><br /></u></b></div>
<div>
<b><u><br /></u></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-R_0101uLfCI/VQ29e3CiNoI/AAAAAAAAAaM/cx9bO8ZQU3c/s1600/volets%2B-%2BOuv%2BUV.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-R_0101uLfCI/VQ29e3CiNoI/AAAAAAAAAaM/cx9bO8ZQU3c/s1600/volets%2B-%2BOuv%2BUV.jpg" height="640" width="498" /></a></div>
<br />
Voilà pour ce petit article qui je l'espère vous donnera des idées par rapport à la gestion de vos volets.<br />
<br />
J'espère pouvoir vous présenter la serrure Okidokeys prochainement si je finis par la recevoir. Dans le cas contraire, je parlerai prochainement de Zibase Multi que je vais mettre oeuvre dans le prochaines semaines. Article suivant concernant la Zibase Multi dispo <a href="http://missquellegoule.blogspot.fr/2015/03/zibase-multi-migration-depuis-une.html" target="_blank">ici </a>depuis le 29/03/2015.<br />
<br />
<br /></div>
<div dir="ltr">
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com9tag:blogger.com,1999:blog-94176035240798499.post-36919716164355868802015-02-24T17:27:00.000+01:002015-03-29T11:05:27.456+02:00Volets roulants Somfy RTS et Zibase<div dir="ltr">
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;">
</div>
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;">
<div style="margin: 0px;">
<div style="text-align: right;">
<u><span style="background-color: white;"><a href="http://missquellegoule.blogspot.fr/2015/03/gerer-ses-volets-roulants-en-fonction.html" target="_blank">Voir l'article suivant la gestion de ses volets en fonction de l'ensoleillement</a></span></u></div>
</div>
</div>
</div>
<div dir="ltr">
<div dir="ltr">
<h2 style="text-align: center;">
<u style="font-size: xx-large;">Volets roulants Somfy RTS et Zibase</u></h2>
<b><br /></b></div>
<div dir="ltr">
L'objet de cet article est de vous présenter une synthèse de la communication entre la Zibase et Somfy RTS.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
Et oui, nous avons fini par nous faire installer 5 volets roulants (avec moustiquaire intégrée) sur nos baies vitrées (120cm*210cm). Pour information, ces volets roulants sont éligible au crédit d'impôt et vous pouvez les voir <a href="http://www.france-fermetures.fr/volets-roulants/modele-volet-Nova-Design.php" target="_blank">ici</a>.<br />
<br />
Bien évidemment, pour pouvoir les commander facilement avec notre Zibase 1, nous avons pris des moteurs Somfy radio RTS (attention de bien le préciser à votre vendeur car le standard Somfy est plutôt le protocole IO qui n'est pas compatible avec la zibase).<br />
<br /></div>
</div>
<div dir="ltr">
Pour les associer, rien de plus simple, il suffit de :</div>
<div dir="ltr">
<ul>
<li><b>Etape 1</b>: créer un nouvel actionneur par volet sur le protocole XDD868_INTER avec une déclaration avec des identifiants radios C1 à C16 et ou D1 à D16 comme ceci <b>sans valider la création</b> :</li>
</ul>
</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-BqElCg8_m4A/VOEDt0Hs-DI/AAAAAAAAAX4/wTJ_5_55V-g/s1600/volets.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-BqElCg8_m4A/VOEDt0Hs-DI/AAAAAAAAAX4/wTJ_5_55V-g/s1600/volets.PNG" height="462" width="640" /></a></div>
<br />
<br />
puis avant de valider :</div>
<div dir="ltr">
<ul>
<li><b>Etape 2</b>: mettre le volet concerné en association grâce à sa télécommande Telys en appuyant 3 secondes sur le petit bouton à l'arrière de la télécommande avec un cure-dent pas exemple. Le volet va monter et descendre par à-coup pour dire qu'il est en mode association;</li>
</ul>
<ul>
<li><b>Etape 3</b>: appuyer sur Assoc de votre périphérique déclaré en étape 1. Le volet va monter et descendre par à-coup pour confirmer l'association. Vous pouvez ensuite enregistrer le périphérique.</li>
</ul>
</div>
<div dir="ltr">
Vous n'avez qu'à répéter ces 3 petites étapes pour chacun des volets et en quelques minutes, tout fonctionne parfaitement. <br />
<br /></div>
<div dir="ltr">
Sur la Zibase, les commandes possibles avec le RTS Somfy sont les suivantes :</div>
<div dir="ltr">
<ul>
<li>ON déclenche l'ouverture du volet;</li>
</ul>
<ul>
<li>OFF déclenche la fermeture du volet;</li>
</ul>
<ul>
<li>DIM (quel que soit la valeur du DIM) à deux actions possibles :</li>
</ul>
<ul><ul>
<li>il arrête le volet si celui-ci est en cours de descente ou de montée;</li>
<li>il met le volet en position favorite (équivalent à la position définie sur le bouton <b>"My"</b> de la télécommande) si le volet est à l'arrêt.</li>
</ul>
</ul>
</div>
<div dir="ltr">
Pour ma part, j'ai réglé le bouton <b>"My"</b> pour fermer le volet complètement mais en mode ajourée pour laisser passer la lumière. A vous de voir... <br />
<br /></div>
<div dir="ltr">
Bien évidemment, il n'y a pas de gestion de retour d'état. Si, tout comme nous, vous avez décidé de mettre les télécommandes au placard, il est possible de gérer un pseudo état en considérant les ordres envoyés à la Zibase. Si besoin, nous le mettrons en place et ne manquerons pas de faire un article. <br />
<br /></div>
<div dir="ltr">
Toujours est-il qu'il faut noter que si un volet est fermé, un ordre de fermeture n'a aucune incidence et ne provoque pas de "forçage" sur le moteur (contrairement au moteur de garage Somfy GDK3000). Pareil pour l'ouverture évidemment. <br />
<br />
Pour fermer un volet à mi-hauteur, il faut comptabiliser le temps en seconde pour qu'il arrive à mi hauteur et ainsi le stopper. De notre côté, il faut 7 secondes. Cela donne donc les deux scénari suivants pour baisser le volet de la salle à manger à 50% :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Nbzpp4PwSdA/VOEJsiugIMI/AAAAAAAAAYI/gYqe5Az4BrI/s1600/Volets%2B%C3%A0%2B50%25%2B-%2B1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-Nbzpp4PwSdA/VOEJsiugIMI/AAAAAAAAAYI/gYqe5Az4BrI/s1600/Volets%2B%C3%A0%2B50%25%2B-%2B1.png" height="640" width="570" /></a></div>
<br />
<br />
Vous trouverez ci-dessous le scénario "Volets - SAM1 stop" qui fait juste un DIM sur le volet SAM1 et qui sert dans ce cas à stopper le volet mais qui pourra aussi vous servir pour mettre le volet en position favorite (bouton <b>"My"</b> de la télécommande quand le volet n'est pas en action de descente ou de montée).<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-O7KeehJ57cw/VOEKl4tg44I/AAAAAAAAAYQ/y4jkOtlbd9k/s1600/Volets%2B%C3%A0%2B50%25%2B-%2B2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-O7KeehJ57cw/VOEKl4tg44I/AAAAAAAAAYQ/y4jkOtlbd9k/s1600/Volets%2B%C3%A0%2B50%25%2B-%2B2.png" height="496" width="640" /></a></div>
<br />
<br />
J'ai multiplié les scénari simples pour fermer ou ouvrir tous les volets; ou uniquement les deux volets de la salle à manger.</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
Espérant que ce résumé vous permettra de bien comprendre les subtilités de la gestion du RTS via la zibase.<br />
<br />
A très vite pour un prochain article sur la serrure connectée Okidokeys que je devrais pouvoir faire d'ici le 15 mars 2015.<br />
<br />
[edit du 21/03/2015] : malheureusement, je n'ai toujours pas reçu la serrure connectée Okidokeys. Alors pour vous faire patienter, vous trouverez un nouvel article <a href="http://missquellegoule.blogspot.fr/2015/03/gerer-ses-volets-roulants-en-fonction.html" target="_blank">ici</a> présentant des scénari liés à la gestion des volets en fonction de l’ensoleillement.<br />
<br /></div>
<div dir="ltr">
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com7tag:blogger.com,1999:blog-94176035240798499.post-89399019542441050752015-02-08T19:00:00.004+01:002015-02-24T17:10:10.905+01:00Balance Withings et Zibase via IFTTT et sans aucune ligne de code<div dir="ltr">
<div style="text-align: right;">
<u><br /></u>
<u><span style="background-color: white;"><a href="http://missquellegoule.blogspot.fr/2015/02/volets-roulants-somfy-rts-et-zibase.html" target="_blank">Voir l'article suivant les volets roulants SOMFY RTS et la zibase</a></span></u></div>
<div style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;"><br /></span></u></div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">BALANCE WITHINGS </span></u><u><span style="background-color: white; font-size: x-large;">ET INTERACTIONS POSSIBLES AVEC ZIBASE VIA IFTTT</span></u></h2>
<b><br /></b>
<b><br /></b></div>
<div dir="ltr">
<b><u>Le but</u></b><br />
<b><br /></b></div>
<div dir="ltr">
L'objet de cet article est de pouvoir obtenir les données de la balance Withings (poids et masse graisseuse pas exemple) dans la Zibase sans script Google ni PHP à l'aide de IFTTT (voir <a href="http://missquellegoule.blogspot.fr/2015/01/nest-protect-et-zibase-avec-ifttt.html" target="_blank">article précédent</a> pour comprendre ce qu'est IFTTT).</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<b><u>Préambule</u></b><br />
<br />
Une technique de remontée des informations de la balance Withings existe déjà et fonctionne très bien : IFTTT-2-API décrit <a href="http://www.abavala.com/2013/05/29/ifttt-2-api-integrer-ses-donnees-withings-dans-son-systeme-domotique-zibase/">ici</a> créée et mise à disposition par nos amis <a href="http://www.abavala.com/">abavala</a>. L'idée de cet article est de mettre en place une solution alternative en évitant l'utilisation de scripts Google...la rendant plus simple...en espérant avoir réussi même si elle est imparfaite...</div>
<div dir="ltr">
<br />
<b><u>Les grands principes</u></b><br />
<b><u><br /></u></b>
Nous allons créer une sonde virtuelle de type Thermo-Hygro THGR328 qui permet de prendre en compte deux valeurs (température et hygrométrie) qui seront alimentées par deux variables (de mon côté V6 et V7 représentation repectivement le poids et la masse graisseuse). <br />
<br />
Nous allons créer deux "recettes" (Recipe) dans IFTTT permettant à chaque mesure de poids sur la balance Withings pour une personne donnée :<br />
<br />
<ul>
<li>d'alimenter la variable V6 avec le poids pour le premier "recipe", </li>
<li>d'alimenter la variable V7 avec la masse graisseuse pour le deuxième "recipe" </li>
</ul>
<br />
Cette solution peut paraître simple mais la mise en oeuvre nécessite d'être précautionneux et de bien suivre les étapes du tutoriel ci-dessous.<br />
<br />
<b><u>Mise en oeuvre</u></b><br />
<br />
<ul>
<li><b><u>Eléments à mettre en place sur la ZIBASE</u></b></li>
</ul>
<br />
Il faut commencer par créer une sonde virtuelle dans la Zibase. Voici le scénario créant la sonde virtuelle et assurant le chargement des variables V6 et V7 dans la sonde virtuelle :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-H4e1_Wpah3A/VNeDqtViSTI/AAAAAAAAAWE/Myis-2e0E78/s1600/Sc%C3%A9nario%2Bcr%C3%A9ation%2Bsonde%2Bvirtuele%2Bet%2Bchargement%2Bvariabeles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-H4e1_Wpah3A/VNeDqtViSTI/AAAAAAAAAWE/Myis-2e0E78/s1600/Sc%C3%A9nario%2Bcr%C3%A9ation%2Bsonde%2Bvirtuele%2Bet%2Bchargement%2Bvariabeles.png" height="640" width="566" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Quelques explications sur ce scénario :<br />
<br />
<ul>
<li>Nous avons choisi de lancer le scénario une fois par jour à 8 heure du matin selon un calendrier fixe (je ne me pèse qu'une fois par jour);</li>
<li>Le scénario est arrêté si la variable V6 est égale à 0. Cela permet de ne lancer le scénario que si une nouvelle pesée à été effectuée sur la balance (dans ce cas V6 est alimentée par IFTTT via l'API de la Zibase..voir plus loin). <b><u>Ne pas mettre cette action dans un premier temps à la création de la sonde virtuelle pour que le scénario puisse s'exécuter en appuyant sur le bouton "Tester le scénario";</u></b></li>
<li>Il faut prendre une sonde de type Thermo-Hygro THGR328 afin de pouvoir gérer deux entrées (I0 pour le poids et I1 pour la masse graisseuse);</li>
<li>La variable V6 alimente l'entrée I0 de la sonde virtuelle (Poids) et V7 l'entrée I1 de la sonde virtuelle (Masse graisseuse);</li>
<li>Le coefficient de conversion sur IO sera de 4.536 car nous allons récupérer le poids de la balance <b>en livre (pound / lb)</b> pour pouvoir profiter de la valeur décimale du poids en kilo. 1 livre vaut 0.45359237 kg et I0 doit être exprimé en dixième de degrés (ou de kilos en l’occurrence). Par exemple si votre poids est de 72.64 kg, la Zibase ne pourrait récupérer que 72 dans le cas où on remonterait le poids en kilo. De ce fait on le récupère en lb, soit 160.14. La zibase ne récupère dans V6 que la partie entière 160 qui multiplié par 4.536 va donner 725.76 soit 72.6 kg quand elle est exprimé en dixième...donc proche de la réalité;</li>
<li>Nous ne mettons de coefficient de conversion sur la variable I1 car un pourcentage est attendu. La Zibase va récupérer la Masse Graisseuse de la balance mais vous perdrez malheureusement la décimale et je n'ai pas trouvé de solutions;</li>
<li>Nous réaffectons 0 à la variable V6 pour que le scénario ne soit pas relancé tant que la variable V6 n'a pas été réalimentée en externe via IFTTT et l'API de la ZIbase;</li>
<li>Il faut également choisir le canal de votre sonde virtuelle en fonction de celle que vous possédez déjà. </li>
</ul>
<div>
Après création, enregistrer ce scénario et attendre le redémarrage de la Zibase. Lancer ensuite ce scénario via "Tester le scénario". Une ligne de la forme suivante est générée dans le suivi d'activité :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-SURCl3H-Wv8/VNeG8XvDHUI/AAAAAAAAAWQ/lJdZ6v1kvkA/s1600/Suivi%2Bactivit%C3%A9%2Bsonde%2Bvirtuelle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-SURCl3H-Wv8/VNeG8XvDHUI/AAAAAAAAAWQ/lJdZ6v1kvkA/s1600/Suivi%2Bactivit%C3%A9%2Bsonde%2Bvirtuelle.png" height="26" width="640" /></a></div>
<div>
Dans cet exemple, la sonde virtuelle va prendre l'identifiant OS3391881218. Il faut donc aller créer le périphérique de sonde virtuelle avec cet identifiant. Ajouter donc un nouveau périphérique selon l'écran suivant :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-mpWKF2r0Y9o/VNeIkZeaWQI/AAAAAAAAAWc/0emXuJC-Mlc/s1600/P%C3%A9riph%C3%A9rique%2Bsonde%2Bvirtuelle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-mpWKF2r0Y9o/VNeIkZeaWQI/AAAAAAAAAWc/0emXuJC-Mlc/s1600/P%C3%A9riph%C3%A9rique%2Bsonde%2Bvirtuelle.png" height="452" width="640" /></a></div>
<div>
<br /></div>
<div>
Quelques explications sur cette sonde virtuelle :<br />
<br />
<ul>
<li>Il faut créer une sonde de mesure de type THGR328N afin de pouvoir gérer deux informations;</li>
<li>Prendre Générale comme logo (cela permet de redéfinir les unités des axes);</li>
<li>Dans l'identifiant radio, entrer l'identifiant précédemment renvoyé par le scénario; dans notre cas, OS3391881218.</li>
<li>Redéfinir les unités avec en mesure principale le poids et secondaire la masse Graisseuse ainsi que les unités associées. <b><u>Cela devrait avoir pour effet de changer les unités dans le PCPAD ou l'Appli ZIBASE. Malheureusement, cela ne fonctionne pas (et n'a jamais fonctionné à ma connaissance depuis la mise en place). J'ai à nouveau remonté ce problème auprès de Zodianet.</u></b></li>
</ul>
</div>
<div>
Enregistrer ce périphérique et votre sonde virtuelle est maintenant active. <b>Avant de passer à la suite, n'oublier pas de remettre dans votre scénario l'action de "Stopper le scénario selon une condition calculée" comme indiqué ci-dessus</b>.</div>
<div>
<br /></div>
<div>
Il suffit maintenant de mettre en place les "recipe" sur IFTTT pour alimenter les variables V6 et V7. </div>
<div>
<br />
<ul>
<li><b><u>Eléments à mettre en place sur IFTTT</u></b></li>
</ul>
<div>
L'idée est qu'à chaque pesée par une personne donnée sur la Balance Withings, nous utilisons l'action "Upload File from URL" mis à disposition dans le service DRIVE de Google. </div>
<div>
<br /></div>
<div>
Cette fonction permet normalement d'uploader un document sur Drive à partir d'une URL. Cela signifie que ce service lance donc l'URL. Nous allons détourner ce service pour lancer l'action d'enregistrement du poids dans la variable V6 et de la masse graisseuse dans la variable V7. à partir de la ZAPI (API de la Zibase). </div>
<div>
<br /></div>
<div>
L'enregistrement d'une valeur dans une variable Zibase se fait via l'appel http suivant :</div>
<div>
<br /></div>
<div>
<b>https://zibase.net/m/zapi_remote_zibase_set.php?action=rowzibasecommand&device=ZiBASEXXXXXX&token=YYYYYYYYYY&&param1=5&param2=[Valeur]&param3=1&param4=[NUM_VARIABLE]</b></div>
</div>
<div>
<ul>
<li>ZiBASEXXXXXX est votre identifiant principal et YYYYYYYYYY votre token disponible dans votre interface de configuration Zibase en mode expert dans la partie système;</li>
<li>[Valeur] sera remplacée par un ingrédient dans IFTTT et en l'occurence le poids en pound dans le premier "recipe" et la masse graisseuse dans le second "recipe";</li>
<li>[NUM_VARIABLE] doit prendre comme valeur le numéro de la variable Zibase dans laquelle va être stockée le poids ou la masse graisseuse (0 à 14 pour les variables V0 à V14 qui sont les seules variables volatiles publiques et donc visibles depuis l'extérieur). </li>
</ul>
<div>
Il faut activer sur IFTTT le Channel Withing et Drive.</div>
</div>
<div>
<br /></div>
<div>
Ci-dessous toutes les étapes pour créer le "recipe" sur IFTTT permettant de récupérer le poids (ingrédient "<b>WeightLB</b>" de la balance) et de le mettre dans la variable <b>V6</b> de la Zibase :</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Px5MAYd_ZGc/VNeVXlG9WpI/AAAAAAAAAW0/wKItcfZba00/s1600/IFTTT%2B-%2BAlimentation%2Bvariable%2BV6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Px5MAYd_ZGc/VNeVXlG9WpI/AAAAAAAAAW0/wKItcfZba00/s1600/IFTTT%2B-%2BAlimentation%2Bvariable%2BV6.png" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
Cliquer ensuite sur "create recipe" et le tour est joué. Répéter cette même opération pour créer un nouveau "Recipe" permettant d'alimenter la variable <b>V7 </b>avec la masse graisseuse (ingrédient "<b>FatPercent</b>" de la balance) : vos deux recettes sont alors créées : </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-241RnUAJ6ow/VNeWzfaUF7I/AAAAAAAAAXA/MVhsROdl24s/s1600/2%2Brecipe.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-241RnUAJ6ow/VNeWzfaUF7I/AAAAAAAAAXA/MVhsROdl24s/s1600/2%2Brecipe.PNG" height="464" width="640" /></a></div>
<div>
<br /></div>
<div>
A noter que l'URL alimentant les variables de la ZIBASE ne renvoyant aucune information, l'erreur ci-dessous remonte au niveau du log des "recipe" car le fichier vide ne peut être uploadé sur Drive.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-qV_ve4oXTLU/VNeXdzh7wBI/AAAAAAAAAXI/Qi4l-3KL95E/s1600/Capture%2Berror.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-qV_ve4oXTLU/VNeXdzh7wBI/AAAAAAAAAXI/Qi4l-3KL95E/s1600/Capture%2Berror.PNG" height="107" width="640" /></a></div>
<div>
<br /></div>
<div>
<b>Cela n'affecte en rien le fonctionnement et les variables sont bien alimentées</b>. </div>
<div>
<br /></div>
<div>
A noter également que lors d'une pesée sur la balance Withings, les "recipe" peuvent mettre jusqu'à 30 minutes pour se lancer; donc il faut être patient. Néanmoins, cela n'a aucune conséquence car les variables V6 et V7 seront alimentées à un moment et le scénario de la Zibase se lancera à l'heure que vous avez déterminée pour alimenter la sonde virtuelle à partir des valeur contenues dans V6 et V7.</div>
<div>
<br /></div>
<div>
Vous pouvez ensuite forcer l’exécution du scénario sur la Zibase pour tester et forcer l'alimentation de la sonde virtuelle (désolé pour l'exemple ma masse graisseuse n'a pas fonctionné car en chaussette :)). Vous devez voir cela dans le suivi d'activité :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-QDLATPC3uW8/VNehh16SotI/AAAAAAAAAXY/EK9h8R2yeQI/s1600/forcer%2Bsc%C3%A9nario.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-QDLATPC3uW8/VNehh16SotI/AAAAAAAAAXY/EK9h8R2yeQI/s1600/forcer%2Bsc%C3%A9nario.PNG" height="15" width="640" /></a></div>
<div>
<br /></div>
<div>
Et sur l'interface de l'application android, votre poids s'affiche comme ceci :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-DgalPyZGhFA/VNeivHSrEHI/AAAAAAAAAXo/qd-SAYo_8ec/s1600/Screenshot_2015-02-08-18-39-38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-DgalPyZGhFA/VNeivHSrEHI/AAAAAAAAAXo/qd-SAYo_8ec/s1600/Screenshot_2015-02-08-18-39-38.png" height="320" width="194" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Voilà, c'est terminé. Bons tests à vous et désolé pour cet article un peu long, mais je trouvais cette approche sympa pour "facilement" intégrer les données de la balance Withings dans la Zibase. </div>
<div>
<br /></div>
<div>
Et vous, vous en pensez-quoi ? N'hésitez pas à laisser des commentaires et partager des trucs si vous optimisez cette solution. </div>
<div>
<br /></div>
<div>
<b>Je vous laisse également imaginer les différents scénari possibles sur des seuils de déclenchement ou à l'ouverture du frigo...Vous n'aurez plus d'excuses pour ne pas avoir la taille mannequin pour cet été :)</b><br />
<b><br /></b>
Dans un prochain article, nous reviendrons sur les volets roulants via motorisation SOMFY RTS et les actions possibles avec la zibase (article disponible <a href="http://missquellegoule.blogspot.fr/2015/02/volets-roulants-somfy-rts-et-zibase.html" target="_blank">ici </a>depuis le 15/02/2015)..</div>
<div>
<br /></div>
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com2tag:blogger.com,1999:blog-94176035240798499.post-33728598364661470282015-01-31T22:48:00.000+01:002015-02-15T22:15:30.942+01:00NEST Protect et Zibase avec IFTTT<div style="text-align: right;">
<u><span style="background-color: white;"><a href="http://missquellegoule.blogspot.fr/2015/02/balance-withings-et-zibase-via-ifttt-et.html" target="_blank">Voir l'article suivant sur la balance Withings et Zibase</a></span></u></div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">DECOUVERTE DE NEST PROTECT </span></u><u><span style="background-color: white; font-size: x-large;">ET INTERACTIONS POSSIBLES AVEC ZIBASE VIA IFTTT</span></u></h2>
<div>
<span style="font-family: inherit;"><b><u><br /></u></b></span><span style="font-family: inherit;"><b><u>Le but</u></b></span><br />
<b><u><br /></u></b>Après avoir réceptionné un <a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank">Nest Protect</a>, j'ai cherché comment faire interagir la Zibase avec d’autres objets connectés ou services. A titre d’exemple, quand le <a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank">Nest Protect</a> déclenche une alarme suite à une détection de fumée, nous souhaitions déclencher la sirène dont nous disposons sur la Zibase dans le cadre de notre "système d'alarme".<br />
<br />
L'idée est ici de faire une petite synthèse sans prétention permettant au passage de vous présenter le service <a href="https://ifttt.com/" target="_blank">IFTTT </a>et aussi faire connaître son "équivalent" français <a href="https://www.busit.com/" target="_blank">BUSIT</a><br />
<br />
<b style="font-family: inherit;"><u>Préambule</u></b><br />
<b style="font-family: inherit;"><u><br /></u></b>
<a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank"><b>Nest Protect</b></a><b style="font-family: inherit;"><u>, c'est quoi ?</u></b><br />
<br />
En synthèse, pour ceux qui ne connaissent pas, il s'agit d'un détecteur de fumée ("obligatoire" à partir du 1er mars 2015) et de monoxyde de carbone connecté permettant d'être alerté par une alarme, une voix et également à distance sur son téléphone quand un danger ou un risque est détecté.<br />
<br />
<span style="font-family: inherit;">Nous ne vous présenterons pas dans cet article l'installation du </span><a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank">Nest Protect</a> car beaucoup d'articles y sont déjà consacrés et cela est d'une simplicité enfantine.<br />
<br />
Il ressemble à ça :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-fhFKXg8XovY/VM0048Q69aI/AAAAAAAAAUQ/XDiCC3VKm7g/s1600/nest%2Bprotect.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-fhFKXg8XovY/VM0048Q69aI/AAAAAAAAAUQ/XDiCC3VKm7g/s1600/nest%2Bprotect.jpg" height="320" width="236" /></a></div>
<br />
<br />
A noter quand même que vous pouvez possédez plusieurs <a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank">Nest Protect</a> dans votre maison et que ceux-ci sont interconnectés ensemble indépendamment du réseau Wifi (qui en cas d’incendie ne résistera pas longtemps).<br />
<br />
<b style="font-family: inherit;"><u><br /></u></b>
<b><a href="https://ifttt.com/" target="_blank">IFTTT </a>et <a href="https://www.busit.com/" target="_blank">BUSIT</a>, c'est quoi ?</b><br />
<b style="font-family: inherit;"><u><br /></u></b>
<span style="font-family: inherit;">IFTTT et BUSIT se présentent comme des pl</span><span style="font-family: inherit;">ateformes de </span>communication<span style="font-family: inherit;"> universelle permettant de connecter des objets et des services divers. Le </span>premier<span style="font-family: inherit;"> est américain et le second français et ouvert depuis environ 9 mois. </span><br />
<b style="font-family: inherit;"><u><br /></u></b>
<span style="font-family: inherit;">Ainsi, pour l'un comme pour l'autre, vous pouvez très facilement créer des </span>interactions<span style="font-family: inherit;"> entre :</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<ul>
<li><span style="font-family: inherit;">des services au sens large du terme : </span><span style="font-family: inherit;">réseaux sociaux (Facebook, Twitter, Instagram, LinkedIn, Yammer...), communications (Email, Notification, SMS...) et cloud (DropBox, Drive...), localisation, météo, média (Le monde, l'équipe...);</span></li>
<li><span style="font-family: inherit;">des objets : Withings, Netatmo, Myfox, Google Glass et Nest.</span></li>
</ul>
<br />
La liste des "connecteurs" est très longue et les possibilités différentes en fonction de la plateforme que vous choisirez.<br />
<br />
Pour mettre en oeuvre notre solution, nous allons utiliser le service <a href="https://ifttt.com/" target="_blank">IFTTT </a>car malheureusement <a href="https://www.busit.com/" target="_blank">BUSIT</a> ne dispose pas encore de connecteurs pour <a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank">Nest Protect</a>.<br />
<br />
Bref, je vous laisse découvrir sur leur site respectif toutes les possibilités...elles sont infinies !<br />
<br />
<br />
<b style="font-family: inherit;"><u>Mise en oeuvre</u></b></div>
<div>
<br />
<a href="https://ifttt.com/" target="_blank">IFTTT</a> est l'acronyme de IF This Then That qui traduit bien l'esprit du service : si une condition est remplie alors faire une action.<br />
<br />
Pour l'utiliser, vous devez vous créer un compte sur <a href="https://ifttt.com/" target="_blank">IFTTT</a>; cela ne vous prendra que quelques secondes.<br />
<br />
Afin de faire interagir le <a href="https://store.nest.com/fr/product/smoke-co-alarm/" target="_blank">Nest Protect</a> et la Zibase, nous allons utiliser le service de Google Drive permettant de faire des appels vers des URL et donc faire appel à l'API Zibase.<br />
<br />
Après avoir créé votre compte, il faut donc créer un "Recipe" (c'est dire une phrase IFTTT), et cliquer sur Then pour entrer votre "trigger channel" (l'objet ou le service que vous souhaité utiliser). Choisir dans notre cas Nest Protect à partir du la zone de recherche par exemple:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-p3uLoVaTvwY/VM1A9RV-MTI/AAAAAAAAAUk/i3ttLoaVGTo/s1600/Capture%2BIFTTT1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-p3uLoVaTvwY/VM1A9RV-MTI/AAAAAAAAAUk/i3ttLoaVGTo/s1600/Capture%2BIFTTT1.PNG" height="280" width="320" /></a></div>
<br />
Choisir ensuite la condition de déclenchement (trigger).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-8ZCTZzhVdV8/VM1A9Td8PLI/AAAAAAAAAUo/KxgYEIHuaNc/s1600/Capture%2BIFTTT2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-8ZCTZzhVdV8/VM1A9Td8PLI/AAAAAAAAAUo/KxgYEIHuaNc/s1600/Capture%2BIFTTT2.PNG" height="172" width="320" /></a></div>
<br />
Dans notre cas, choisir "Smoke Alarm emergency", c'est à dire une alarme suite à une détection de fumée et compléter ensuite la condition en choisissant quel Nest Protect (oui, vous pouvez en avoir plusieurs) vous souhaitez utiliser : ici celui de la salle à manger.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ZottXCfXuXI/VM1A9ZZNa1I/AAAAAAAAAUg/il6mQQPG2_s/s1600/Capture%2BIFTTT3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-ZottXCfXuXI/VM1A9ZZNa1I/AAAAAAAAAUg/il6mQQPG2_s/s1600/Capture%2BIFTTT3.PNG" height="125" width="320" /></a></div>
<br />
La condition étant maintenant déterminée, il nous reste à déterminer l'action. Pour cela cliquer sur that et choisir ensuite comme canal Google Drive :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-lZMWsceUAYM/VM1A9_qdkHI/AAAAAAAAAUs/Nv7Z6bLCllc/s1600/Capture%2BIFTTT4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-lZMWsceUAYM/VM1A9_qdkHI/AAAAAAAAAUs/Nv7Z6bLCllc/s1600/Capture%2BIFTTT4.PNG" height="98" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-xyO9meNfCPA/VM1A-LVw7aI/AAAAAAAAAUw/i_keQzO63c4/s1600/Capture%2BIFTTT5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-xyO9meNfCPA/VM1A-LVw7aI/AAAAAAAAAUw/i_keQzO63c4/s1600/Capture%2BIFTTT5.PNG" height="138" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
Choisir ensuite "Upload file from URL" permettant d'uploader un fichier (mais là c'est pas le sujet:)), depuis une URL et donc ainsi finalement de lancer une commande.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-pLgRhY9j2_o/VM1A-kwix7I/AAAAAAAAAU0/Wt3m8TkHPFw/s1600/Capture%2BIFTTT6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-pLgRhY9j2_o/VM1A-kwix7I/AAAAAAAAAU0/Wt3m8TkHPFw/s1600/Capture%2BIFTTT6.PNG" height="169" width="320" /></a></div>
<br />
Entrer dans "File URL", l'appel à l'API zibase que vous souhaitez faire. Vous pouvez vous rendre sur <a href="http://missquellegoule.blogspot.fr/2015/01/lancer-des-commandes-domotiques-via-une.html" target="_blank">cet article</a> qui explique de façon très concise les fonctions de la ZAPI. Pour plus d'information, la documentation complète de la ZAPI2 est <a href="https://drive.google.com/file/d/0B3CTqWHBbSz7QVpqTkx1UGVRUFk/view?usp=sharing" target="_blank">là</a>. Dans notre cas, nous lançons le scénario 15 correspondant au déclenchement de la sirène.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-OiThaioowHM/VM1A-hllyTI/AAAAAAAAAU8/gB8sdIR7x7A/s1600/Capture%2BIFTTT7.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-OiThaioowHM/VM1A-hllyTI/AAAAAAAAAU8/gB8sdIR7x7A/s1600/Capture%2BIFTTT7.PNG" height="265" width="320" /></a></div>
<br />
Nommer ensuite votre "Recipe" et c'est terminé.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-t-nmk7ceMjw/VM1A_DXf47I/AAAAAAAAAVA/MYdLLL0yTwg/s1600/Capture%2BIFTTT8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-t-nmk7ceMjw/VM1A_DXf47I/AAAAAAAAAVA/MYdLLL0yTwg/s1600/Capture%2BIFTTT8.PNG" height="256" width="320" /></a></div>
<br />
Bien évidemment, ceci n'est qu'un exemple, et vous pouvez laissez place à votre imagination pour créer d'autres "recipe" (alimentation d'un périphérique virtuel, notifications...).<br />
<br />
Certes, comme diraient mes amis de <a href="http://www.touteladomotique.com/" target="_blank">Toute la domotique</a>, "Google va prendre le contrôle de ta vie...;)". Euh..oui, je crois que c'est déjà fait.</div>
<div>
<br /></div>
<div>
Le prochain article sera à priori consacré à l'intégration de la balance Withings dans la zibase sans écrire une ligne de codes....enfin si j'y arrive ! L'article est disponible <a href="http://missquellegoule.blogspot.fr/2015/02/balance-withings-et-zibase-via-ifttt-et.html" target="_blank">ici</a> depuis le 08/02/2015.<br />
<br />
<ul>
</ul>
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com6tag:blogger.com,1999:blog-94176035240798499.post-71764375673516791872015-01-18T19:14:00.000+01:002015-02-08T19:45:22.890+01:00Lancer des commandes domotiques via une Zibase et sa moto360<div style="text-align: right;">
<span style="background-color: white; font-size: small; font-weight: normal;"><u><a href="http://missquellegoule.blogspot.fr/2015/01/nest-protect-et-zibase-avec-ifttt.html" target="_blank">Voir l'article suivant sur Nest Protect et Zibase</a></u></span></div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">Comment lancer des commandes domotiques via une montre sous Android Wear ?</span></u></h2>
<div>
<span style="font-family: inherit;"><b><u><br /></u></b></span>
<span style="font-family: inherit;"><b><u>Le but</u></b></span><br />
<b><u><br /></u></b>Après que le Père Noël m'ait gentiment amené une Moto 360, il me paraissait intéressant de pouvoir lancer toutes les commandes disponibles sur ma Zibase (scénari et périphériques) à partir de ma Moto 360.<br />
<br />
La solution s'appuie sur l'application <a href="https://play.google.com/store/apps/details?id=com.jwsoft.nfcactionlauncher" style="font-weight: bold;" target="_blank">Trigger</a> qui présente l'avantage d'être compatible avec Android Wear. Pour mettre en oeuvre la solution, il vous faut donc :<br />
<br />
<ul>
<li>un téléphone sous Android (désolé pour les fans de la pomme:)),</li>
<li>une montre sous Android Wear,</li>
<li>et aussi une box domotique supportant les appels HTTP.</li>
</ul>
<b style="font-family: inherit;"><u>Préambule</u></b><br />
<b style="font-family: inherit;"><u><br /></u></b>
<span style="font-family: inherit;">Nous avions écrit un précédent article (dispo </span><a href="http://missquellegoule.blogspot.fr/2013/01/tags-nfc.html" style="font-family: inherit;" target="_blank">ici</a><span style="font-family: inherit;">) qui présentait l'application Nfc Task Launcher, renommée depuis quelques temps </span><b style="font-family: inherit;">Trigger </b><span style="font-family: inherit;">et dispo gratuitement (dans ses principales fonctions) </span><a href="https://play.google.com/store/apps/details?id=com.jwsoft.nfcactionlauncher" style="font-family: inherit;" target="_blank">ici</a><span style="font-family: inherit;">.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Nous nous servons toujours de cette application pour lancer des commandes domotiques via des Tags NFC. Le grand principe est de créer des tâches (qui ont un déclencheur : tag NFC ou autres) qui font certaines actions (et dans le cas présents des appels HTTP). </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Lors du précédent article, nous utilisions les commandes de la ZAPI1 mise à disposition par Zodianet (toujours fonctionnelles à l'heure actuelle). Maintenant que la ZAPI2 est disponible (depuis le 01/04/2014 - documentation complète <a href="https://drive.google.com/file/d/0B3CTqWHBbSz7QVpqTkx1UGVRUFk/view?usp=sharing" target="_blank">ici</a>), vous trouverez ci-dessous les 2 principales commandes HTTP pour lancer un ordre sur un périphérique ou pour lancer un scénario de votre zibase:</span><br />
<b><br /></b>
<b>Ordre ON sur un périphérique</b><br />
https://zibase.net/api/get/ZAPI.php?zibase=[Votre Identifiant principal ZIBASE]&token=[Votre Token]&service=execute&target=actuator&id=[Identifiant périphérique]&action=1<br />
<br />
<b>Ordre OFF sur un périphérique</b><br />
https://zibase.net/api/get/ZAPI.php?zibase=[Votre Identifiant principal ZIBASE]&token=[Votre Token]&service=execute&target=actuator&id=[Identifiant périphérique]&action=0<br />
<br />
<b>Lancer un scénario (par son id)</b><br />
https://zibase.net/api/get/ZAPI.php?zibase=[Votre Identifiant principal ZIBASE]&token=[Votre Token]&service=execute&target=scenario&id=[identifiant scénario]<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Vous pouvez tester ces appels directement dans votre navigateur pour vérifier qu'ils fonctionnent bien avant de les mettre dans l'application Trigger.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><b>Important</b></span><br />
<br />
<ul>
<li>[Votre Identifiant principal ZIBASE] et [Votre Token] sont disponibles sur <a href="http://zibase.net/">zibase.net</a> dans votre espace du configurateur (Système). Attention, votre [Votre Identifiant principal ZIBASE] doit respecter la casse ZiBASEXXXXXX (le i est en minuscule).</li>
<li>[Identifiant périphérique] correspond à l'identifiant radio de votre périphérique déclaré que vous souhaitez actionner.</li>
<li>[identifiant scénario] est l'identifiant de votre scénario visible dans le suivi d'activité de votre zibase lors du lancement du scénario. Attention, de mémoire, cet identifiant peut varier si vous supprimez un scénario (très gênant mais bon, pas le choix). Dans les scénari que vous voulez utiliser via ce type d'appel HTTP, il faut cocher <b>"Nom référencé par ZAPI"</b>.</li>
</ul>
<br />
<b style="font-family: inherit;"><u>Mise en oeuvre</u></b></div>
<div>
<br />
<ul>
<li>Télécharger <a href="https://play.google.com/store/apps/details?id=com.jwsoft.nfcactionlauncher" target="_blank">Trigger</a></li>
<li>Créer une première tâche en mettant un déclencheur de type NFC (même si vous n'en possédez pas) car un déclencheur est obligatoire pour pourvoir enregistrer la tâche. Ajouter une action à votre tâche de type "Ouvrir une URL/URI disponible dans la catégorie "Applications et Raccourcis" de l'application Trigger.</li>
<li>Entrer l'URL à associer à cette tâche (lancement d'un ordre sur un périphérique ou d'un scénario : voir dans le préambule) et cocher la case "Ouvrir en arrière plan" (sinon un navigateur sera lancé sur votre téléphone lors du lancement de cette tâche).</li>
<li>Faire terminé puis terminé lors de l'écriture sur le NFC si vous ne disposer pas de tag NFC (c'est facultatif).</li>
<li>Vous pouvez répéter cette opération pour l'ensemble des tâches que vous souhaitez pouvoir gérer depuis votre montre Android Wear. </li>
</ul>
<div>
Je ne détaille pas ici l'utilisation de Trigger qui est très simple mais n'hésitez pas à me contacter si vous rencontrer des problèmes.</div>
<div>
<br /></div>
<div>
Une fois ceci fait, lancer Trigger sur votre montre Android Wear (Moto360 dans mon cas) et l'ensemble des tâches que vous avez créées sont visibles sur Android Wear. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-CJ-afVIITlA/VLvyE6o8XVI/AAAAAAAAAT0/8TqqAtnaPnM/s1600/Trigger.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-CJ-afVIITlA/VLvyE6o8XVI/AAAAAAAAAT0/8TqqAtnaPnM/s1600/Trigger.jpg" height="320" width="237" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Pac07jAotC0/VLvyFNtMVII/AAAAAAAAAT4/iZ_LtOcsGLI/s1600/liste%2Bdes%2Btaches%2Btrigger.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Pac07jAotC0/VLvyFNtMVII/AAAAAAAAAT4/iZ_LtOcsGLI/s1600/liste%2Bdes%2Btaches%2Btrigger.jpg" height="320" width="237" /></a></div>
<div>
<br /></div>
<div>
Cliquer sur la tâche que vous voulez effectuer (dans notre cas, Portail Ouvrir /Fermer) et cela donne :</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dw_Gn7MpRQpZJWoaFu49rOWgmRryKa3SW3TSVzn6x_QhyJ1XLrCc2eYmH5woYKLFbe9DKeZaOK3Yzb-47YJ7g' class='b-hbp-video b-uploaded' frameborder='0'></iframe>
</div>
<div>
<br /></div>
<div>
C'est pas magique ça ? J'ai ainsi de nombreuses actions qui peuvent être effectuées via ma Moto 360 : Volets, garages, Alarme, Store Banne... A vous de jouer !<br />
<br />
Le prochaine article sera consacré au détecteur de fumée et monoxyde de carbone Nest Protect et est maintenant disponible <a href="http://missquellegoule.blogspot.fr/2015/01/nest-protect-et-zibase-avec-ifttt.html" target="_blank">ici </a>(depuis le 31/01/2015)</div>
</div>
<div>
<u><span style="background-color: white; font-size: x-large;"><br /></span></u></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com3tag:blogger.com,1999:blog-94176035240798499.post-60896358006372409472015-01-17T18:18:00.001+01:002015-02-10T22:21:06.120+01:00Karotz annonce la température avec OpenKarotz et Zibase<div style="text-align: right;">
<u><span style="background-color: white;"><a href="http://missquellegoule.blogspot.fr/2015/01/lancer-des-commandes-domotiques-via-une.html" target="_blank">Voir l'article suivant sur la Moto 360 et la Zibase</a></span></u></div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">Comment annoncer la température intérieure et extérieure avec Karotz/OpenKarotz/Zibase et les fonctions TTS ?</span></u></h2>
<div>
<span style="background-color: white; font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><b><u>Le but</u></b></span><br />
<b><u><br /></u></b>Après avoir installé OpenKarotz pour faire renaître Karotz (voir article précédent <a href="http://missquellegoule.blogspot.fr/2015/01/indicateur-de-consommation-electrique.html" target="_blank">ici</a>), nous avons souhaité faire annoncer à Karotz la température intérieure et extérieure à des heures données en fonction de la semaine ou du week-end grâce à l'API OpenKarotz et les fonctions TTS (TextToSpeech).<br />
<br />
<b style="font-family: inherit;"><u>Préambule</u></b><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">L'idée est de mettre cela en place à partir de scénari Zibase afin que les néophytes puissent également en profiter. Cela aurait été beaucoup plus simple de développer cela en PHP et faire un Cron sur notre NAS mais tout le monde n'a pas de NAS et la mise en oeuvre demande plus de connaissances. Cela fera peut-être l'objet d'un autre article ultérieurement.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">A partir de cette </span>réflexion<span style="font-family: inherit;">, voici donc les différents scénari pour mettre en place la solution uniquement grâce à la Zibase. Cela peut paraître simple de prime abord, mais finalement cela se </span>révèle<span style="font-family: inherit;"> assez complexe.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<span style="font-family: inherit;"><b><u>Mise en oeuvre</u></b></span><br />
<span style="font-family: inherit;"><br /></span><span style="font-family: inherit;">Sur la Zibase, <b>5 scénari</b> sont nécessaires. Comme un schéma vaut mieux que de grands discours, nous avous avons fait un petit résumé détaillant l'organisation des scénari et les différents stimuli et actions effectuées :</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-7AlO77xjod8/VLofU9_PKqI/AAAAAAAAAR0/VpvdHbbMLQA/s1600/Capture_sch%C3%A9ma.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-7AlO77xjod8/VLofU9_PKqI/AAAAAAAAAR0/VpvdHbbMLQA/s1600/Capture_sch%C3%A9ma.PNG" /></a></div>
<span style="font-family: inherit;"><br /></span><span style="font-family: inherit;">L'api d'OpenKarotz est un peu capricieuse, ce qui explique que nous sommes obligés de découper les différentes chaînes et les concaténer. Nous avons essayé pas mal de solutions pour simplifier le scnéario "Karotz - Temperature" mais cela ne fonctionnait pas. Si certains d'entre vous trouve une solution plus simple et fonctionnel, n'hésitez pas à laisser les éléments en commentaires.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Vous trouverez ci-dessous l'ensemble des captures d'écran pour chacun des scénari afin de vous simplifier la mise en oeuvre :</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><b>Scénario "Variable T intérieur"</b></span><br />
<span style="font-family: inherit;"><b><br /></b></span>
<span style="font-family: inherit;">Voici un scénario qui me sert déjà dans d'autres scénari et qui se contente de récupérer la valeur de la sonde de température intérieure dans la variable V0.</span><br />
<span style="font-family: inherit;"><b><br /></b></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-iZsEvrjZxXY/VLoh_XBJq_I/AAAAAAAAASA/u0cLIhGOI5s/s1600/sc%C3%A9nario%2BVariable%2BT%2Bint%C3%A9rieur.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-iZsEvrjZxXY/VLoh_XBJq_I/AAAAAAAAASA/u0cLIhGOI5s/s1600/sc%C3%A9nario%2BVariable%2BT%2Bint%C3%A9rieur.PNG" height="384" width="640" /></a></div>
<span style="font-family: inherit;"><b><br /></b></span>
<span style="font-family: inherit;"><b><br /></b></span>
<b>Scénario "Variable T extérieur"</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
L'équivalent du scénario ci-dessus mais avec la valeur de la sonde de température extérieure et qui l'affecte à la variable V50.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-dm9fcWLIRoY/VLoh_VR12JI/AAAAAAAAASE/j1CZtj8ud54/s1600/sc%C3%A9nario%2BVariable%2BT%2Bext%C3%A9rieur.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-dm9fcWLIRoY/VLoh_VR12JI/AAAAAAAAASE/j1CZtj8ud54/s1600/sc%C3%A9nario%2BVariable%2BT%2Bext%C3%A9rieur.PNG" height="384" width="640" /></a></div>
<span style="font-family: inherit;"><b><br /></b></span>
<span style="font-family: inherit;"><b><br /></b></span>
<b>Scénario "Karotz - Temp semain"</b><br />
<span style="font-family: inherit;"><b><br /></b></span>
<span style="font-family: inherit;">Vous pouvez bien évidemment </span>modifier<span style="font-family: inherit;"> les heures de déclenchement sur </span>l’événement<span style="font-family: inherit;"> temporel.</span><br />
<span style="font-family: inherit;"><b><br /></b></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-cNKIZPtiAJE/VLooouOYxlI/AAAAAAAAASc/L1RBGBB9oyw/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemp%2Bsemain.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-cNKIZPtiAJE/VLooouOYxlI/AAAAAAAAASc/L1RBGBB9oyw/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemp%2Bsemain.PNG" height="640" width="496" /></a></div>
<span style="font-family: inherit;"><b><br /></b></span>
<span style="font-family: inherit;"><b><br /></b></span>
<b>Scénario "Karotz - Temp we"</b><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">C'est exactement le même scénario que "Karotz - Temp semain" à part le calendrier pour le </span>déclenchement qui comporte seulement le week-end et des horaires spécifiques<span style="font-family: inherit;">.</span><br />
<span style="font-family: inherit;"><b><br /></b></span>
Vous pouvez bien évidemment modifier les heures de déclenchement sur l’événement temporel.<br />
<span style="font-family: inherit;"><b><br /></b></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-QEetttH8XTA/VLoooiiUhJI/AAAAAAAAASY/nyuLPI38qLk/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemp%2Bwe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-QEetttH8XTA/VLoooiiUhJI/AAAAAAAAASY/nyuLPI38qLk/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemp%2Bwe.png" height="640" width="496" /></a></div>
<span style="font-family: inherit;"><b><br /></b></span>
<b>Scénario "Karotz - Température"</b><br />
<b><br /></b>
Voici maintenant le scénario principal qui construit la chaîne permettant de faire l'appel à l'API d'OpenKarotz. C'est pas très simple et cela utilise pas mal de variables temporaire mais nous n'avons pas réussi à faire mieux.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-mFCrxCCSSFI/VLqV7w_ztKI/AAAAAAAAASw/XCN2wf_ym8k/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemperature.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-mFCrxCCSSFI/VLqV7w_ztKI/AAAAAAAAASw/XCN2wf_ym8k/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemperature.png" height="640" width="294" /></a></div>
<br />
<b>Scénario "Karotz - Temp ext"</b><br />
<b><br /></b>
Et voici le petit dernier pour pouvoir annoncer la température extérieure.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-KhHtNa6lS0Y/VLqXpw-nMdI/AAAAAAAAATA/lt8b1VKafMM/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemp%2Bext.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-KhHtNa6lS0Y/VLqXpw-nMdI/AAAAAAAAATA/lt8b1VKafMM/s1600/sc%C3%A9nario%2BKarotz%2B-%2BTemp%2Bext.png" height="640" width="570" /></a></div>
<br />
Eh oui, c'est enfin terminé. J'espère que cela aura aidé certains d'entre vous ou tout du moins donné des idées pour mettre en oeuvre ce type de solution.<br />
<br />
A très vite pour un prochain article sur la moto360 et disponible maintenant <a href="http://missquellegoule.blogspot.fr/2015/01/lancer-des-commandes-domotiques-via-une.html" target="_blank">ici </a>(depuis le 18/01/0215).<br />
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com2tag:blogger.com,1999:blog-94176035240798499.post-61795663435489809932015-01-06T21:15:00.001+01:002015-02-08T19:42:26.911+01:00Indicateur de consommation électrique avec Karotz, OpenKarotz et Zibase<div style="text-align: right;">
<u><span style="background-color: white;"><a href="http://missquellegoule.blogspot.fr/2015/01/karotz-annonce-la-temperature-avec.html" target="_blank">Voir article suivant sur Open Karotz et annonce de température</a></span></u></div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">Comment surveiller sa consommation électrique avec Karotz / OpenKarotz / Zibase ?</span></u></h2>
<div>
<span style="background-color: white; font-family: inherit;"><br /></span>
<br />
<span style="font-family: inherit;"><b><u>Le but</u></b></span><br />
<b><u><br /></u></b>
L'idée est donc de colorer la lumière du Karotz en fonction de la consommation électrique. Evidemment, cela nécessite d'avoir un OWL CM119 (pour moi) avec la consommation électrique instantanée et une Zibase par exemple.<br />
Nous nous sommes inspirés d'une idée développée dans <a href="http://www.geeek.org/votre-karotz-vous-informe-quand-vous-consommez-trop-d-energie-034.html" target="_blank">cet article</a> (projet Domogeeek de Ludovic).<br />
<br />
<span style="font-family: inherit;"><b><u>Préambule</u></b></span><br />
<span style="font-family: inherit;"><b><u><br /></u></b></span>
<span style="font-family: inherit;">Eh oui, la mort de Karotz a été annoncée début novembre dans un communiqué de Bruno Maisonnier, PDG d'Alberan, qui avait repris la société Violet il y a quelques années. Les serveurs seront donc arrêtés le 18 février 2015.</span></div>
<br />
<span style="font-family: inherit;">Mais heureusement, il existe une solution pour faire revivve notre Karotz en toute autonomie : <a href="http://www.openkarotz.org/" target="_blank">OpenKarotz</a> qui est installé en local sur le lapin lui-même.</span><br />
<br />
Nous ne relaterons pas comment installer Open KAROTZ sur le lapin car tout est dit <a href="http://www.openkarotz.org/" target="_blank">ici</a>.<br />
<br />
Merci encore pour le travail effectué par Laurent (Massalia) ainsi que la documentation qui est parfaite.Il existe également un forum dédié sur TLD <a href="http://www.touteladomotique.com/forum/viewtopic.php?f=160&t=11661" target="_blank">ici</a><br />
<br />
<br />
<b>Petite précision : </b>ne pas oublier d'appliquer les patchs après la dernière mise à jour (onglet update / Patch dans l'application).<br />
<br />
Une fois cette installation effectuée, vous avez accès à une interface WEB en tapant http://[IP DU KAROTZ]. Cette interface permet de voir les fonctions misent à disposition par OpenKarotz et les appels possibles via l'API pour exécuter les commandes souhaitées.<br />
<br />
Par contre, il reste des problèmes de perte de connectivité si votre Karotz est en Wifi (sujet largement discuté sur le forum de TLD ci-dessus). Il n'existe, à priori, pas de réelles solutions et nous faisons partis de ceux qui subissent ces déconnexions. A voir dans le temps. A noter que Massalia est en train de réécrire le source en Python qui sera certainement plus solide pour reprendre ses mots.<br />
<br />
Pour ralentir voir supprimer ces déconnexions, sur les préconisations du forum de TLD, nous avons fait un scénario ZIBASE qui réveille le lapin toute les 5 minutes. Rien de plus simple, cela donne :<br />
<br />
<span style="background-color: white; font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-mm0vNq1ZHPc/VKsAfApfWXI/AAAAAAAAARE/cjoHTO4cIAQ/s1600/Capture_reveil_karotz.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-mm0vNq1ZHPc/VKsAfApfWXI/AAAAAAAAARE/cjoHTO4cIAQ/s1600/Capture_reveil_karotz.PNG" height="426" width="640" /></a></div>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;"><b><u>Mise en oeuvre</u></b></span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Sur la Zibase, la mise en oeuvre de cette idée est très simple à l'aide de <b>3 scénarios</b> :</span><br />
<ul>
<li>Conso - Normal : quand la consommation est inférieure à 1000W en instantanée : Karotz prend la couleur verte,</li>
<li>Conso - Moyenne : quand la consommation est comprise entre 1000W et 2000 W en instantanée : Karotz prend la couleur orange,</li>
<li>Conso - Elevée : quand la consommation est supérieure à 2000 W en instantanée : Karotz prend la couleur rouge</li>
</ul>
<div>
Cela donne :</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-mHhCvxrjk8Y/VKuLUjYgvdI/AAAAAAAAARU/-RCdvS_pBeY/s1600/Capture_conso_normal.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-mHhCvxrjk8Y/VKuLUjYgvdI/AAAAAAAAARU/-RCdvS_pBeY/s1600/Capture_conso_normal.PNG" height="452" width="640" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-gQgvJeS8Zfg/VKuLU2aZ6wI/AAAAAAAAARY/JWIwepyGw2M/s1600/Capture_conso_moyenne.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://3.bp.blogspot.com/-gQgvJeS8Zfg/VKuLU2aZ6wI/AAAAAAAAARY/JWIwepyGw2M/s1600/Capture_conso_moyenne.PNG" height="457" width="640" /></a></div>
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-J7q2OGY6_78/VKuLVPFdBJI/AAAAAAAAARc/h9vdoTWkFwU/s1600/Capture_conso_%C3%A9lev%C3%A9e.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-J7q2OGY6_78/VKuLVPFdBJI/AAAAAAAAARc/h9vdoTWkFwU/s1600/Capture_conso_%C3%A9lev%C3%A9e.PNG" height="454" width="640" /></a></div>
<br />
<br /></div>
Bien évidemment, vous pouvez adapter les bornes définies dans les "conditions nécessaires pour prendre en charge le stimuli"par rapport ) aux différentes nuances souhaités et votre consommation (nous sommes en chauffage au gaz).<br />
<br />
Après 24 heures de test le scénario semble bien fonctionner et Karotz semble ne pas subir de déconnexion.<br />
<br />
Sympa non ? Le prochain article dispo <a href="http://missquellegoule.blogspot.fr/2015/01/karotz-annonce-la-temperature-avec.html" target="_blank">ici </a>(depuis le 17/01/2015) est consacré à faire annoncer à Karotz la température intérieure et extérieure...toujours avec OpenKarotz. Et merci encore à Massalia.<br />
<span style="background-color: white; font-family: inherit;"><br /></span>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com1tag:blogger.com,1999:blog-94176035240798499.post-52543697858744478152014-12-28T17:40:00.003+01:002015-01-31T22:54:52.506+01:00Domotiser son portail avec module contact sec ITL1000<br />
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">
Comment domotiser son portail avec un ITL-1000 ?</span></u></h2>
<div>
<u><span style="background-color: white;"><br /></span></u></div>
Nous avions décrit cette opération dans cet <a href="http://missquellegoule.blogspot.fr/2012/04/motorisation-du-portail.html" target="_blank">article</a> il y a quelques temps et nous avions choisi un <b>UM7206</b> pour domotiser notre portail <a href="http://www.ma-domotique-somfy.fr/motorisation/portail/produit/2400888" target="_blank">SOMFY Freevia 300</a>.<br />
<br />
Pour rappel, l'UM7206 fonctionne sur le protocole filaire X10 et nous l'utilisions via un EBODE pour que la ZIBASE puisse envoyer les ordres.<br />
<br />
A l'usage, le X10 faisait quelques caprices et notamment quelques ouvertures non souhaitées liées certainement à des interférences ou des voisins. Le X10 étant un peu dépassé aujourd'hui, nous souhaitions "moderniser" cette partie. Néanmoins, nous ne disposons que d'une zibase 1 et n'avons pas d'extension ZWAVE.<br />
<br />
Le père Noël nous a donc apporté un module<b> ITL-1000</b> compatible avec la zibase selon le protocole CHACON. Il est visible <a href="http://www.planete-domotique.com/module-contact-sec-avec-minuterie-compatible-chacon.html" target="_blank">ici </a> chez Planète Domotique par exemple et se présente sous cette forme à réception :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-umtXAgFTYa0/VKAo33hvpaI/AAAAAAAAAQo/_2kDCAIN9Gs/s1600/IMG_20141228_165819.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-umtXAgFTYa0/VKAo33hvpaI/AAAAAAAAAQo/_2kDCAIN9Gs/s1600/IMG_20141228_165819.jpg" height="320" width="237" /></a></div>
<br />
Ne cherchez pas de documentation à l'intérieur, il n'y en a pas. Si besoin, vous pouvez vous reporter aux notices présentes sur internet et notamment sur la fiche produit Planète Domotique <a href="http://www.planete-domotique.com/notices/m/a/manual-itl-1000.pdf" target="_blank">ici</a>.<br />
<br />
Ceci étant, rien de très compliqué; il y a 4 entrées sur le bornier. Deux pour le neutre et la phase (alimentation 220V); ce sont les deux bornes à l'extrémité du bornier et sont classiquement repéré N (pour neutre : fil bleu) et L (pour phase:fil noir ou marron).<br />
<br />
Les deux bornes au centre servent donc au contact sec et sont à raccorder à votre entrée contact sec sur la carte électronique de votre portail (ces deux bornes sont celle utilisée pour une ouverture à clé disponible sur tous les portails). Cela donne donc l'image ci-dessous :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-mdwoyX4W0ro/VKAohUMthuI/AAAAAAAAAQM/Tnhwg6EOIls/s1600/IMG_20141228_155207.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-mdwoyX4W0ro/VKAohUMthuI/AAAAAAAAAQM/Tnhwg6EOIls/s1600/IMG_20141228_155207.jpg" height="237" width="320" /></a></div>
<br />
<br />
Après ce branchement et remise en ordre, cela donne ça :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-0SCmCy0MVSA/VKAolAfdafI/AAAAAAAAAQc/vzBvdgm6Yw0/s1600/IMG_20141228_155309.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-0SCmCy0MVSA/VKAolAfdafI/AAAAAAAAAQc/vzBvdgm6Yw0/s1600/IMG_20141228_155309.jpg" height="237" width="320" /></a></div>
<br />
Même si ce module est assez encombrant, il est environ 3 fois plus petit qu'un UM7206 !<br />
<br />
Le module dispose d'une minuterie permettant de régler la durée du contact. Par défaut, elle est réglée sur 0. Attention, dans ce cadre, 0 signifie sans limitation de durée; c'st à dire que le contact est maintenu jusqu'à contre ordre (commutation ON/OFF ; par exemple pour piloter une chaudière).<br />
<br />
Pour domotiser son portail (ou un store banne ou tout autre équipement sans potentiel impulsionnel), il faut le régler sur 2 secondes comme sur la photo ci-dessus. A noter que la durée peut aller jusqu'à 8 heures et rend ce module multi-usage.<br />
<br />
Pour le déclarer sur la zibase, rien de plus simple. Une fois sous tension, il y a un bouton learn sur le module. Appuyer sur ce bouton et faire une association dans le périphérique de la zibase sur le protocole CHACON comme ci-dessous.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-wMNYsBBqHVo/VKAvBDmuaTI/AAAAAAAAAQ0/2cc9vJZyP_4/s1600/enregistrement%2BITL1000.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-wMNYsBBqHVo/VKAvBDmuaTI/AAAAAAAAAQ0/2cc9vJZyP_4/s1600/enregistrement%2BITL1000.PNG" height="462" width="640" /></a></div>
<br />
<br />
Et voilà, votre portail est fonctionnel.<br />
<br />
Néanmoins, deux petites remarques :<br />
<ul>
<li>Sur l'interface, <b>seul le bouton ON est fonctionnel s'agissant d'un contact sec</b>. Dommage que dans la zibase, au niveau des ALIAS, nous ne puissions pas cacher un bouton (dans ce genre de cas le bouton off ne sert à rien !),</li>
<li>Ce module est donné pour une portée de 30 mètres en champ libre donc <b>attention à la distance séparant votre portail de la zibase.</b></li>
</ul>
Il ne nous reste plus qu'à faire la même chose avec l'UM7206 présent sur le store banne et le tour sera joué !<br />
<br />
Ainsi s'achève l'année 2014 et nous profitons de cet article pour vous souhaitez de bonnes fêtes et une excellent année 2015...avec ou sans domotique :)<br />
<br />
A très vite pour un prochain article sur Karotz, Open Karotz et la consommation électrique disponible maintenant <a href="http://missquellegoule.blogspot.fr/2015/01/indicateur-de-consommation-electrique.html" target="_blank">ici </a>depuis le 06/01/2015Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com0tag:blogger.com,1999:blog-94176035240798499.post-63474326967537040922014-11-30T18:20:00.000+01:002015-03-02T13:08:25.041+01:00Domotiser son volet roulant filaire avec module DELTA DORE Tyxia 463 (X2D)<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="margin-left: 1em; margin-right: 1em;">
</div>
<br />
<br />
<h2 style="text-align: center;">
<u style="background-color: white;"><span style="font-size: x-large;">Comment domotiser un volet roulant filaire existant ?</span></u></h2>
<div>
<u><br /></u></div>
<div>
Nous reprenons notre plume après 18 mois d'absence; pas eu trop le temps d'améliorer la domotique à la maison avec la Zibase 1. Pour cette reprise, nous proposons un petit article pour domotiser un volet roulant filaire existant . Cette solution fonctionne quelle que soit la marque du moteur du volet car nous utilisons un micro module <a href="http://www.deltadore.com/france/fr/catalogue-domotique/automatismes-ouvrants/volets-roulants/recepteurs/tyxia-463.html">DELTA DORE Tyxia 463</a>.</div>
<div>
<br /></div>
<h3>
Branchement électrique du module</h3>
<div>
Tout d'abord, pour fonctionner, ce module doit disposer du neutre; il faut donc vous assurer que vous disposez d'un neutre au niveau de l'interrupteur ou bien il faudra en tirer un (qui arrive forcément par un endroit au niveau du moteur de votre volet roulant).</div>
<div>
<br /></div>
<div>
Ci-dessous le schéma de branchement du <a href="http://www.deltadore.com/france/fr/catalogue-domotique/automatismes-ouvrants/volets-roulants/recepteurs/tyxia-463.html">Tyxia 463</a> derrière votre interrupteur existant (source DELTA DORE).</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.deltadore.com/mediastore/23/8852_2_FR_original.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.deltadore.com/mediastore/23/8852_2_FR_original.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Vous pouvez également décider de le brancher directement dans le coffre du volet (au niveau du moteur), auquel cas les 3 fils précablés du micro module ne serviront à rien et il faudra juste les sécuriser (domino ou gaine).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
De notre côté, nous l'avons intégré derrière l'interrupteur existant.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Après démontage de l'interrupteur, voici une photo de ce que cela donne :</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-cLDgrz5Ut3Y/VHtG-rlk3AI/AAAAAAAAAPQ/Sb8xHM8xtx8/s1600/derri%C3%A8re%2Binterrupteur.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-cLDgrz5Ut3Y/VHtG-rlk3AI/AAAAAAAAAPQ/Sb8xHM8xtx8/s1600/derri%C3%A8re%2Binterrupteur.jpg" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Et oui, pas de neutre dans la boite d'encastrement. Du coup, je savais que j'avais un neutre qui passait derrière la boite d’encastrement. J'ai donc cassé le fond de la boîte d'encastrement afin de récupérer le neutre et pour permettre aussi de loger facilement le micro module Tyxia 463 derrière l'interrupteur.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Après cette petite dérivation de neutre, rien de plus simple : </div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>il faut brancher le neutre (en haut à droite sur la photo ci-dessous) sur le Tyxia 463</li>
<li>il faut brancher la phase qui était au préalable branchée sur l'interrupteur existant (en haut à gauche du neutre comme sur la photo ci-dessous) sur le tyxia 463</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-oPxZDPjUi70/VHtG2dDa_xI/AAAAAAAAAO4/JADcJ5VayJQ/s1600/IMG_20141130_155640.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-oPxZDPjUi70/VHtG2dDa_xI/AAAAAAAAAO4/JADcJ5VayJQ/s1600/IMG_20141130_155640.jpg" height="240" width="320" /></a></div>
<br />
<br />
Il faut ensuite :<br />
<br />
<ul>
<li>brancher les fils de montée et descente du volet qui étaient préalablement branchés sur l'interrupteur en bas du Tyxia 463</li>
<li>puis brancher les 3 fils (vert jaune blanc) sortant du Tyxia 463 sur l'interrupteur : le fil vert pour la descente du volet, le fils jaune pour la montée et le fil blanc servant de stop (à brancher là où était branché la phase sur l'interrupteur).</li>
</ul>
<div>
La partie branchement électrique du micro module est terminée mais ne remontez pas tout de suite l'interrupteur, il reste à associer le micro module à la Zibase.</div>
<div>
<br /></div>
<div>
<h3>
Association du micro module à la Zibase</h3>
</div>
<div>
Rien de plus facile, comme avec tous les autres modules DELTA DORE, il suffit d'appuyer sur le micro module pour qu'il rentre en association et de cliquer sur association sur la Zibase dans les 10 secondes en ayant déclaré le micro module comme périphérique en XDD INTER et de préférence sur les identifiants radios A ou B.</div>
<br />
Voici une petite capture d'écran pour vous guider :<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-n_P3ZqO1lKg/VHtG6L4MAUI/AAAAAAAAAPI/U9tlh_iBiLo/s1600/IMG_20141130_162748.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-n_P3ZqO1lKg/VHtG6L4MAUI/AAAAAAAAAPI/U9tlh_iBiLo/s1600/IMG_20141130_162748.jpg" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Vous pouvez ensuite vérifier que la montée et la descente sont fonctionnelles depuis la Zibase et depuis l'interrupteur. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Il suffit ensuite de remonter l'interrupteur et voilà la micro module Tyxia 463 installé et invisible derrière l'interrupteur et cela donne ça :</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-2w6VU1xN3wE/VHtOhJKMapI/AAAAAAAAAPk/Q7JPYweO20Y/s1600/IMG_20141130_174632.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-2w6VU1xN3wE/VHtOhJKMapI/AAAAAAAAAPk/Q7JPYweO20Y/s1600/IMG_20141130_174632.jpg" height="320" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Pour les puristes, il reste à nettoyer l'interrupteur mais nous avons pris la photos juste après :).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ainsi s'achève ce petit article (c'est pour la reprise). Nous devrions, en début d'année 2015, tester l'intégration de 5 volets Somfy RTS ainsi que le remplacement des UM7206 (contact sec) qui domotisent aujourd'hui le portail et le store banne pour abandonner le X10 qui vieillit (et pas toujours bien :))</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
N'hésitez pas à laisser vos commentaires ou à nous contacter si nécessaire.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Dans un prochain article, nous reviendrons sur la domotisation d'un portail via un ITL1000 (en remplacement d'un UM7206). Il est maintenant disponible <a href="http://missquellegoule.blogspot.fr/2014/12/domotiser-son-portail-avec-module.html" target="_blank">ici</a>. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com15tag:blogger.com,1999:blog-94176035240798499.post-19227857027671007732013-07-06T15:04:00.002+02:002013-09-13T21:53:36.279+02:00[5/5] CREER SON SITE DOMOTIQUE AVEC ZIBASE, NAS SYNOLOGY, MYSQL ET WORDPRESS<a href="http://missquellegoule.blogspot.fr/2013/06/45-creer-son-site-domotique-avec-zibase.html">Aller à l'article précédent sur le même thème</a><br />
<h2 style="text-align: center;">
<span style="background-color: white; font-size: x-large;"><u>PRÉSENTATION DES EVENEMENTS HISTORISES</u></span></h2>
<h2 style="text-align: center;">
<span style="background-color: white;">
<span style="font-size: x-large;"><u>
ET MODIFICATIONS DES SONDES DECLAREES</u></span></span></h2>
<div style="text-align: left;">
Voici donc le dernier article concernant cette série permettant de créer son propre site domotique. Comme vu dans les précédents articles, cette solution s'appuie sur :</div>
<ul>
<li>La table EVENEMENTS qui historise les évènements souhaités (système ou information),</li>
</ul>
<br />
<ul>
<li>La table PERIPHERIQUES qui contient les sondes utilisées dans l'application.</li>
</ul>
<div style="text-align: left;">
L'article présent permet donc d'afficher la liste des X derniers évènements et également la modification ou l'ajout de nouvelles sondes dans le système.</div>
<div style="text-align: left;">
<br />
Comme dans les articles précédent, Vous trouverez dans <a href="https://docs.google.com/file/d/0B3CTqWHBbSz7Tl9qdy1LWUlQeFU/edit?usp=sharing">l'archive ZIP</a> en pied de cet article, l'intégralité du site mais avec deux nouveaux répertoires dédiés à la présentation des évènements historisés et la modification des sondes déclarées :</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<ul>
<li>Répertoire evenements : ce répertoire contient une page php <b>affiche_evenements.php</b> utile à l'affichage des x derniers évènements. Cette page contient une liste déroulante avec le nombre d'éléments à afficher. A chque modification de la liste déroulante, la page se recharge avec un appel serveur pour afficher le nombre d'éléments souhaités,</li>
</ul>
</div>
<br />
<ul>
<li>Répertoire peripheriques: ce répertoire contient une page <b>modifs_peripheriques.php</b> permettant de modifier une sonde ou d'en ajouter une. Le principe est relativement simple mais efficace.</li>
</ul>
Pour intégrer cela dans le site WORDPRESS, j'ai utilisé la même technique décrite dans <a href="http://missquellegoule.blogspot.fr/2013/06/35-creer-son-site-domotique-avec-zibase.html">l'article précédent</a> grâce à l'extension <a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a>. J'ai intégré le tout dans un menu WORDPRESS en quelques clics. <br />
<br />
Cela donne donc deux nouveaux menus dans mon site WORDPRESS : Evènements et Ajout/modif Sondes. <br />
<br />
Par défaut, le nombre d'évènements est de 10; vous pouvez évidement modifier cela dans la page :<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-TdMtYdOLlFs/UdgNm16RUsI/AAAAAAAAALQ/22HsWJSHC30/s1600/Capture_eve.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="418" src="http://4.bp.blogspot.com/-TdMtYdOLlFs/UdgNm16RUsI/AAAAAAAAALQ/22HsWJSHC30/s640/Capture_eve.JPG" width="640" /></a></div>
<div align="left" class="separator" style="clear: both; text-align: center;">
<br /></div>
<div align="left" class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Une modification de la liste avec 50 évènement permet d'avoir plus d'historique :</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-V-aTouZZz80/UdgNp761vXI/AAAAAAAAALY/zGwhlseurjA/s1600/Capture_eve2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="472" src="http://1.bp.blogspot.com/-V-aTouZZz80/UdgNp761vXI/AAAAAAAAALY/zGwhlseurjA/s640/Capture_eve2.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
De la même façon, la modification/l'ajout des sondes se présente sous la forme suivante :</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-UuqJ5JZjRLI/UdgOkgMWKUI/AAAAAAAAALc/DZg-3Mz0rR8/s1600/Captureajout_modif.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="484" src="http://1.bp.blogspot.com/-UuqJ5JZjRLI/UdgOkgMWKUI/AAAAAAAAALc/DZg-3Mz0rR8/s640/Captureajout_modif.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Pour modifier une sonde, il suffit d'aller dans le champ concerné et de faire modifier (très utile si vous voulez changer l'ordre des sondes dans la page d'accueil : script sondes_direct.php : <a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html">voir l'article 2/5</a>). Sur la dernière ligne, vous pouvez ajouter une nouvelle sonde (de température par exemple) et elle apparaitra automatiquement dans la page d'accueil (script sondes_direct.php : <a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html">voir l'article 2/5</a>).<br />
<br />
Ceci termine donc cette série d'articles permettant de créer son propre site domotique s'appuyant sur la ZIBASE, un NAS, WORDPRESS et MYSSQL. Les idées d'évolutions ne manquent pas avec par exemple :<br />
<br />
<ul>
<li>la possibilité de lancer des actions ou des scénarios ZIBASE depuis le site (très facile avec l'API PHP de Benjamin) </li>
<li>la possibilité de faire des analyses de données historisées via des tableaux croisés pour pouvoir comparer des données de température d'une année sur l'autre ou d'un jour à l'autre....</li>
</ul>
reste à trouver un peu de temps pour faire ces évolutions. Je ne manquerai pas de vous les faire partager si je fais réellement ces évolutions.<br />
<br />
Pour finaliser cette série d'article, je tenais à remercier tout le petit monde de la domotique, les nombreux forums et partages dont je me suis inspiré et sans qui je n'aurai pas pu effectuer ce développement. Merci également à tous ceux qui ont relayé ces pages sur twitter (et qui continuerons à le faire :-D). <br />
<br />
Voici un petit tour d'horizon des forums/blogs : <br />
<ul>
<li><a href="http://www.touteladomotique.com/">http://www.touteladomotique.com/</a></li>
<li><a href="http://maison-et-domotique.com/">http://maison-et-domotique.com/</a></li>
<li><a href="http://www.abavala.com/">http://www.abavala.com/</a></li>
<li><a href="http://www.domotique-info.fr/">http://www.domotique-info.fr/</a></li>
<li><a href="http://domotique34.com/">http://domotique34.com/</a></li>
<li><a href="http://domotique-en-france.fr/">http://domotique-en-france.fr</a></li>
<li><a href="http://www.domogy.fr/">http://www.domogy.fr</a></li>
</ul>
Voici une revue des différentes boutiques :<br />
<ul>
<li><a href="http://www.domadoo.fr/">http://www.domadoo.fr/</a></li>
<li><a href="http://www.planete-domotique.com/">http://www.planete-domotique.com/</a></li>
<li><a href="http://www.univers-domotique.com/">http://www.univers-domotique.com</a></li>
<li><a href="http://www.applidom.com/">http://www.applidom.com/</a></li>
</ul>
Et pour finir quelques domopotes à suivre sur twitter : <br />
<ul>
<li>@Mickapapa</li>
<li>@pikat33270</li>
<li>@MaisonDeGeek</li>
<li>@hotfirenet</li>
<li>@domospy</li>
<li>@cedriclocqueneu</li>
<li>@abavala </li>
</ul>
N'hésitez pas à me contacter si j'avais oublié des acteurs essentiels de la domotique. A vos claviers pour développer votre propre site domotique.<br />
<br />
<a href="https://docs.google.com/file/d/0B3CTqWHBbSz7Tl9qdy1LWUlQeFU/edit?usp=sharing">Télécharger le ZIP</a><br />
<br />
<a href="http://missquellegoule.blogspot.fr/2013/06/45-creer-son-site-domotique-avec-zibase.html">Aller à l'article précédent sur le même thème</a><br />
<br />
<div style="text-align: center;">
</div>
<div align="left" style="text-align: center;">
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com12tag:blogger.com,1999:blog-94176035240798499.post-59802772132100274582013-06-29T11:28:00.000+02:002013-07-06T15:17:07.524+02:00[4/5] CREER SON SITE DOMOTIQUE AVEC ZIBASE, NAS SYNOLOGY, MYSQL ET WORDPRESS<div style="text-align: justify;">
<a href="http://missquellegoule.blogspot.fr/2013/06/35-creer-son-site-domotique-avec-zibase.html">Aller à l'article précédent sur le même thème</a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/07/55-creer-son-site-domotique-avec-zibase.html">Aller à l'article suivant sur le même thème</a> (dispo depuis le 06/07/2013)</div>
<h2 style="text-align: center;">
<span style="background-color: white; font-size: x-large;"><u>PRÉSENTATION DE GRAPHIQUES DE RELEVES DE SONDES VIA </u></span><a href="http://www.highcharts.com/"><span style="background-color: white; font-size: x-large;">HIGHCHARTS.COM</span></a></h2>
<h2 style="text-align: center;">
</h2>
<div style="text-align: justify;">
Si vous avez suivi les articles précédents (sinon il n'est pas trop tard :-D), vous avez maintenant l'ensemble de vos sondes enregistrés en base de données. Le présent article va vous permettre d'effectuer des graphiques basés sur ces données enregistrées. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
J'avais à l'époque utilisés l'API google chart et j'ai découvert la librairie <a href="http://www.highcharts.com/">highcharts.com</a> qui permet d'obtenir des graphiques plus dynamiques avec des possibilités multiples. Je vous invite à vous rendre directement sur le site <a href="http://www.highcharts.com/">highcharts.com</a> qui présente de nombreux exemples et permet de générer le code automatiquement. Le petit inconvénient de cette API est peut être sa lourdeur qui sur tablette pourra présenter quelques lags.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Les graphiques que je vous propose ne sont pas forcément exhaustifs et vous pouvez utiliser tout autre types de modèles. De mon coté, je n'ai pas encore exploré l'ensemble des possibilités de cette excellente API.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Vous trouverez dans <a href="https://docs.google.com/file/d/0B3CTqWHBbSz7aXFkQUZITndNQmM/edit?usp=sharing">l'archive ZIP</a> en pied de cet article, l'intégralité du site mais avec un nouveau répertoire dédié aux graphiques et nommé étrangement graphiques ^^ :</div>
<div style="text-align: justify;">
<br /></div>
<ul style="text-align: justify;">
<li>Répertoire graphiques composé de 3 sous répertoires. : </li>
<ul>
<li>jquery : js correspondant au jquery</li>
<li>js : librairie permettant de faire tourner highcharts</li>
<li>themes : rhème de highcharts</li>
</ul>
</ul>
<ul style="text-align: justify;">
<li>Les graphiques eux-mêmes se trouve à la racine du répertoire ; il y a 5 pages php :</li>
<ul>
<li>highcharts_temp.php qui présente des graphiques de températures et hygrométrie de mes 3 sondes,</li>
<li>highcharts_meteo.php qui présente les mesures des sondes anénométrique, pluviométrique et UV, </li>
<li>highcharts_chauffage.php qui présente le chauffage on/off (quotidien, par jour et par mois)</li>
<li>highcharts_vmc.php qui présente la vitesse de la VMC 1ère vitesse ou 2 ème vitesse (quotidien, par jour et par mois)</li>
<li>highcharts_alarme.php qui présente si l'alarme est on/off.</li>
</ul>
</ul>
<div style="text-align: justify;">
Cela donne des graphes entièrement dynamiques où il est possible de choisir la période (via la saisie de dates ou le slider dessous le graphe) et dynamiquement le graphe correspondant s'affiche. Je trouve cela très sympa sans avoir eu à faire de grands développements.</div>
<br />
Voici quelques captures de rendus :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-X_142cWG8-I/Uc7bIdQUM2I/AAAAAAAAAKc/km5btNjs59Q/s671/graph_temp.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://3.bp.blogspot.com/-X_142cWG8-I/Uc7bIdQUM2I/AAAAAAAAAKc/km5btNjs59Q/s640/graph_temp.JPG" width="498" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-C8tz_ByfcPA/Uc7bJ_yAfpI/AAAAAAAAAKk/K8t4drSBcFE/s671/graph_temp.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-3Hs8xd5noho/Uc7bMYM66PI/AAAAAAAAAKs/DNzf_L_4_L4/s670/graph_alarme.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://1.bp.blogspot.com/-3Hs8xd5noho/Uc7bMYM66PI/AAAAAAAAAKs/DNzf_L_4_L4/s640/graph_alarme.JPG" width="500" /></a></div>
Pour intégrer cela dans le site WORDPRESS, j'ai utilisé la même technique décrite dans <a href="http://missquellegoule.blogspot.fr/2013/06/35-creer-son-site-domotique-avec-zibase.html">l'article précédent</a> grâce à l'extension <a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a>. J'ai intégré le tout dans un menu WORDPRESS en quelques clics. <br />
<br />
Cela donne :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-octrTPYe7kc/Uc7dBJ1CbHI/AAAAAAAAAK8/PxJCI3aAD0I/s929/menu_graph.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="449" src="http://1.bp.blogspot.com/-octrTPYe7kc/Uc7dBJ1CbHI/AAAAAAAAAK8/PxJCI3aAD0I/s640/menu_graph.png" width="640" /></a></div>
<br />
J'espère que ces captures vous donneront envie de vous lancer dans l'utilisation de cette API. Un dernier article vous présentant l’affichage des évènements et l'interface pour modifier les sondes devrait voir le jour d'ici le 6/7 juillet 2013. En attendant, vous trouverez ci-dessous le ZIP contenant le site complet avec l'ajout de ces graphiques.<br />
<a href="https://docs.google.com/file/d/0B3CTqWHBbSz7aXFkQUZITndNQmM/edit?usp=sharing"><br /></a><br />
<a href="https://docs.google.com/file/d/0B3CTqWHBbSz7aXFkQUZITndNQmM/edit?usp=sharing">Télécharger le ZIP</a><br />
<br />
<a href="http://missquellegoule.blogspot.fr/2013/06/35-creer-son-site-domotique-avec-zibase.html">Aller à l'article précédent sur le même thème</a> <br />
<br />
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/07/55-creer-son-site-domotique-avec-zibase.html">Aller à l'article suivant sur le même thème</a> (dispo depuis le 06/07/2013)</div>
<h2 style="text-align: left;">
</h2>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com9tag:blogger.com,1999:blog-94176035240798499.post-68410229712711836802013-06-23T18:14:00.002+02:002013-07-06T15:17:50.596+02:00[3/5] CREER SON SITE DOMOTIQUE AVEC ZIBASE, NAS SYNOLOGY, MYSQL ET WORDPRESS<div style="text-align: left;">
<a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html">Aller à l'article précédent sur le même thème</a><br />
<br />
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/06/45-creer-son-site-domotique-avec-zibase.html">Aller à l'article suivant sur le même thème</a> (dispo depuis le 29/06/2013) </div>
</div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">INTÉGRATION DE PAGES PHP DANS WORDPRESS</span></u></h2>
<div style="text-align: left;">
<br />
Comme évoqué dans le <a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html">précédent article</a>, ce troisième opus à pour but de vous présenter une solution simple d'intégration de pages PHP dans WORDPRESS.<br />
<br />
<b>Pourquoi ce choix d'utilisation de WORDPRESS ?</b><br />
<br />
<ul>
<li>il est quasi intégré (juste une installation) sur mon NAS SYNOLOGY et DSM 4.2,</li>
<li>ce CMS (si vous considérer que WORDPRESS en est un) est très connu sur le marché, très documenté et possède de nombreuses extensions,</li>
<li>il est simple à mettre en œuvre et permet d'avoir les "bases" d'un site sans écrire une ligne de code HTML, de CSS surtout pour des gens comme moi pas très doué dans ce domaine,</li>
<li>il intègre déjà de nombreuses fonctionnalités en natif (menu, commentaire, pages d'accueils, header, footer, widgets...)</li>
<li>il dispose de nombreux modèles de sites pour que vous puissiez trouver votre bonheur au niveau de la présentation.</li>
</ul>
Bien évidemment, vous pouvez préférer d'autres CMS tout aussi riche tels que JOOMLA, DRUPAL, SPIP...<br />
<br />
Cet article vous décrit uniquement l'intégration de code PHP dans WORDPRESS via l'extension <a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a>. Si vous ne connaissez pas WORDPRESS, je vous laisse le découvrir à travers toute la documentation disponible sur internet.<br />
<br />
<b>Pourquoi choisir une extension pour exécuter du PHP dans des pages WORDPRESS ?</b> <br />
<br />
<ul>
<li>ce type d'extension permet de ne pas à avoir à modifier les pages de WORDPRESS dont l'architecture est parfois complexe et touffu,</li>
<li>pouvoir effectuer des développements PHP complètement indépendant de WORDPRESS et réutilisable dans d'autres contextes y compris indépendemment de WORDPRESS (comme le code PHP présenté dans le <a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html">précédent article</a>),</li>
<li>pouvoir réutiliser le même code PHP dans d'autres pages de WORDPRESS sans avoir à dupliquer le code (permet notamment une maintenance ou des corrections de bugs plus aisées).</li>
</ul>
Après cette présentation générale, passons à du concret. </div>
<div style="text-align: left;">
<br />
<b> Intégration de pages PHP dans des pages WORDPRESS</b></div>
<div style="text-align: left;">
<br />
<span class="b">Tout d'abord, j'ai choisi d'utiliser le thème "standard" de WORDPRESS :</span> <b>Twenty Eleven</b>. Le site domotique étant uniquement développé pour notre usage, je n'ai pas voulu chercher parmi les multiples thèmes disponibles mais je ne doute pas qu'il y ait des thèmes plus accrocheurs.<br />
<br />
<a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a> permet d’exécuter du code PHP dans les pages, les articles, les commentaires, les widgets et même les flux RSS en utilisant uniquement des "raccourcis" (shortcode) renvoyant à du code PHP. J'ai choisi systématiquement de faire appel à des include de pages PHP afin de garder une totale indépendances et pouvoir editer le code PHP de manière un peu plus pratique que ne le permet la version gratuite de cette extension.<br />
<br />
Pour installer <a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a>, rien de plus simple, il suffit d'aller dans la partie admin de votre site WORDPRESS et d'aller dans les extensions et d'ajouter l'extension <a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a>.<br />
<br />
Cette installation ajoute dans le menu OUTILS de WORDPRESS un nouveau menu : Shortcode Exec PHP. La page de l'extension se présente sous la forme suivante :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-GiUkCDg0qhA/UccXRN_4qxI/AAAAAAAAAJk/3zP9F9mpToU/s1600/ADMINSHORTCODE.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="569" src="http://2.bp.blogspot.com/-GiUkCDg0qhA/UccXRN_4qxI/AAAAAAAAAJk/3zP9F9mpToU/s640/ADMINSHORTCODE.JPG" width="640" /></a></div>
<br />
Vous pouvez allez voir la documentation de <a href="http://wordpress.org/plugins/shortcode-exec-php/">Shortcode Exec PHP</a> qui vous expliquera simplement ces éléments d'administration qui parlent d'eux-mêmes.<br />
<br />
Sur cette même page, vous pouvez ensuite ajouter des "ShortCodes" en les nommant et en leur associant du code PHP correspondant. Ensuite, ces ShortCodes ont juste besoin d'être ajouté à l'endroit souhaité dans votre site WORDPRESS (pour ma part, je n'utilise que des pages dans mon site domotique).<br />
<br />
Pour reprendre l'exemple de rendu évoqué dans <a href="http://ibase-nas-synology-et-enregistrements_20.html/">l'article précédent</a>, voici ce que ça donne :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Iy9qkBYr8-s/UccZidEXmzI/AAAAAAAAAJ0/5k5qIuX4200/s1600/adminshortcode2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="http://2.bp.blogspot.com/-Iy9qkBYr8-s/UccZidEXmzI/AAAAAAAAAJ0/5k5qIuX4200/s640/adminshortcode2.JPG" width="640" /></a></div>
Ainsi mon ShortCodes nommé AFFICHAGE_SONDES exécute le code le la page PHP sondes_direct.php et il peut être inséré n'importe où dans WORDPRESS .<br />
<br />
J'ai inséré ce ShortCodes dans ma page d'accueil de la façon suivante à partir de l'interface d’administration WORPDRESS dans la section Pages :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Z8bZZBnGUB0/UccbmW5RdHI/AAAAAAAAAKE/am9G0QV9qVY/s1600/pagesaccueil.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="http://4.bp.blogspot.com/-Z8bZZBnGUB0/UccbmW5RdHI/AAAAAAAAAKE/am9G0QV9qVY/s640/pagesaccueil.JPG" width="640" /></a></div>
<br />
Et l'affichage de la page donne ainsi le rendu suivant à l'intérieur de votre site WORDPRESS :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-F7ydani9118/UcccHMIj1cI/AAAAAAAAAKM/76n4a9vqmBE/s1600/pagesaccueilvisible.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="420" src="http://4.bp.blogspot.com/-F7ydani9118/UcccHMIj1cI/AAAAAAAAAKM/76n4a9vqmBE/s640/pagesaccueilvisible.JPG" width="640" /></a></div>
<br />
La page hérite ainsi de tout les CSS du site selon votre thème choisi et permet d'avoir un rendu acceptable sans rien faire. J'ai fait exactement la même utilisation de ces ShortCodes sur toutes mes pages WORDPRESS en m'appuyant sur un menu et des sous-menus WORDPRESS visibles ci-dessus (Accueil, Graphiques, Evenements, Ajout/modif sondes).<br />
<br />
J'espère que cet article vous convaincra de l'utilisation de WORDPRESS et de ce type d'extensions qui permettent une intégration rapide et la création d'un site visuellement sympathique au prix d'aucun effort.<br />
<br />
Le prochain article devrait être dispo d'ici dimanche 30 juin 2013 en fonction de mes dispos. Il traitera de la partie rendu graphique et l'utilisation de l'excellente API <a href="http://www.highcharts.com/">highcharts</a> et son générateur de codes.<br />
<br />
A très vite et comme à l’habitude, n'hésitez pas à commenter et à y apporter vos propres modifications en partageant votre expérience avec les autres !<br />
<br />
<a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html">Aller à l'article précédent sur le même thème</a><br />
<br />
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/06/45-creer-son-site-domotique-avec-zibase.html">Aller à l'article suivant sur le même thème</a> (dispo depuis le 29/06/2013)</div>
<br />
<br />
<br />
<b> </b><br />
<br />
<br /></div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com11tag:blogger.com,1999:blog-94176035240798499.post-28013772454521362992013-06-20T21:49:00.004+02:002013-07-06T15:18:03.118+02:00[2/5] CREER SON SITE DOMOTIQUE AVEC ZIBASE, NAS SYNOLOGY, MYSQL ET WORDPRESS<div style="text-align: justify;">
<div style="text-align: left;">
<a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements.html">Aller à l'article précédent sur le même thème</a><br />
<br />
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/06/35-creer-son-site-domotique-avec-zibase.html">Aller à l'article suivant sur le même thème</a> (dispo depuis le 23/06/2013)</div>
</div>
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">SCRIPT "INTELLIGENT" DE RÉCUPÉRATION DES DONNÉES SONDES EN PUSH ET PRÉSENTATION DES RELEVÉS DES SONDES</span></u></h2>
<br />
<br />
Comme promis, après le <a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements.html" target="_blank">premier article</a> sur la refonte complète de l'enregistrement des données en pull des sondes ZIBASE, voici la suite qui concerne l'enregistrement des données en push d'actionneurs.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En effet, le script PHP (<b>enrprocess.php</b> <b>dans le répertoire push</b>) proposé dans le ZIP en fin d'article permet d'enregistrer les données relatives au chauffage (ON/OFF), à la VMC (Vitesse 1/2) et à l'alarme (ON/OFF).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
L'appel se fait très simplement de la ZIBASE dans vos scénarios en prenant 2 paramètres en méthode get :</div>
<ul style="text-align: justify;">
<li>type : qui peut prendre comme valeur : VMC, CHAUFFAGE et ALARME</li>
<li>etat : qui peut prendre comme valeur : 0 pour OFF (correspondant à chauffage éteint, alarme désactivé ou VMC vitesse 1) , 1 pour ON (correspondant à chauffage allumé, alarme activé ou VMC vitesse 2)</li>
</ul>
<div style="text-align: justify;">
Les données s'enregistrent automatiquement dans les tables CHAUFFAGE_ETAT, VMC_ETAT ou ALARME_ETAT dont le script SQL de création de tables était présent dans le <a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements.html" target="_blank">premier article</a>. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Le temps en position ON est automatiquement calculé dans la colonne tempson lors du passage à l'état OFF. A noter que lors d'un changement de jour, si le dernier état est 1, un pseudo etat OFF est enregistré à 23:59:59 et un pseudo état ON est enregistré le lendemain à 00:00:01. Cela permet que le tempson calculé sur la journée soit correct. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Comme à l'habitude, j'ai essayé de commenter au maximum le code de la page afin que vous puissiez éventuellement y apporter votre touche ou quelques optimisations.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
L'appel HTTP à mettre dans vos scénarios ZIBASE doit ressembler à ceci :</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="http://3.bp.blogspot.com/-xb08UnAGeKs/UcNNLqmqE3I/AAAAAAAAAI0/-B_1uEadrVA/s1600/VMC_OFF.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="134" src="http://3.bp.blogspot.com/-xb08UnAGeKs/UcNNLqmqE3I/AAAAAAAAAI0/-B_1uEadrVA/s640/VMC_OFF.JPG" width="640" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ceci fait donc appel à la page sur laquelle est hébergée la page <b>enrprocess.php</b>. Dans mon cas, il s'agit d'une adresse réseau local puisqu'il s'agit de mon<a href="http://www.synology.fr/products/product.php?product_name=DS213&lang=fre" target="_blank"> NAS SYNOLOGY 213+</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En suivant cet article, vous disposez d'une base de données enregistrant l'ensemble des données de votre installation ZIBASE. Par contre, il reste à exploiter l'ensemble de ces données et à leur donner du sens. Je vous propose dans ce même article un petit script PHP (<b>sondes_direct.php dans le répertoire sondes_live</b>) qui permet :</div>
<ul style="text-align: justify;">
<li>d'interroger les sondes en live,</li>
<li>d'interroger la base de données pour la partie actionneur,</li>
<li>de présenter le tout à l'écran.</li>
</ul>
<div style="text-align: justify;">
Ce petit script s'appuie sur les données en base et notamment des éléments déclarés dans la table <b>PERIPHERIQUES</b> que j'ai fait un peu évolué en déclarant également les actionneurs. La présence de ces actionneurs dans la table permet uniquement de pouvoir agir sur l'ordre d'affichage dans la page <b>sondes_direct.php</b> alors que, pour rappel, celle des sondes permet de garantir la continuité de l'enregistrement en cas de changement de piles de la sonde. Ma table <b>PERIPHERIQUES </b>se présente sous la forme suivante :</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="http://2.bp.blogspot.com/-NjAK2yD3m8M/UcNVG1om0SI/AAAAAAAAAJE/tEWiJr-MH3Y/s1600/PERIPHERIQUES.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="http://2.bp.blogspot.com/-NjAK2yD3m8M/UcNVG1om0SI/AAAAAAAAAJE/tEWiJr-MH3Y/s640/PERIPHERIQUES.JPG" width="640" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Une fois cette table ainsi complétée le script sondes_direct.php devrait présenter le résultat suivant :</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="data:image/png;base64,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" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="data:image/png;base64,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" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://3.bp.blogspot.com/-vmn2y9jUcVI/UcNYrZXuK6I/AAAAAAAAAJU/ua1nWdvri3o/s1600/sondes_live.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="546" src="http://3.bp.blogspot.com/-vmn2y9jUcVI/UcNYrZXuK6I/AAAAAAAAAJU/ua1nWdvri3o/s640/sondes_live.JPG" width="640" /></a><a href="data:image/png;base64,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" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Le résultat ci-dessus est lié à une intégration de la page PHP dans un blog <a href="http://wordpress.org/" target="_blank">WORDPRESS</a>. Ceci fera l'objet du prochain article devant paraître le 23 au soir ou le 24/06/2013.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Je vous remets à disposition ci-dessous un ZIP contenant l'intégralité des pages du premier et du second article pour avoir une solution complète. A noter la présence d'un répertoire images dans lequel j'ai repris les logos de <a href="http://www.zodianet.com/" target="_blank">ZODIANET</a><br />
<br />
<a href="https://docs.google.com/file/d/0B3CTqWHBbSz7Y0hSR3YtZ1pqSEE/edit?usp=sharing" target="_blank">Télécharger le ZIP</a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements.html">Aller à l'article précédent sur le même thème</a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/06/35-creer-son-site-domotique-avec-zibase.html">Aller à l'article suivant sur le même thème</a> (dispo depuis le 23/06/2013)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com15tag:blogger.com,1999:blog-94176035240798499.post-68534852583563104972013-06-17T22:28:00.000+02:002013-07-06T15:18:20.716+02:00[1/5] CREER SON SITE DOMOTIQUE AVEC ZIBASE, NAS SYNOLOGY, MYSQL ET WORDPRESS<div style="text-align: right;">
<a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html" target="_blank">Aller à l'article suivant sur le même thème</a> (dispo depuis le 19/06/2013)</div>
<br />
<h2 style="text-align: center;">
<u><span style="background-color: white; font-size: x-large;">SCRIPT "INTELLIGENT" DE RÉCUPÉRATION </span></u></h2>
<h2 style="text-align: center;">
<span style="background-color: white;">
<span style="font-size: x-large;">
<u>
DES DONNÉES SONDE EN PULL</u></span></span></h2>
<br />
Et oui, ma moitié m'a fait une très bonne surprise pour mon anniversaire et m'a offert un <a href="http://www.synology.fr/products/product.php?product_name=DS213&lang=fre" target="_blank">NAS SYNOLOGY 213+</a>.<br />
<br />
Au delà de toutes les fonctionnalités possibles avec ce <b>NAS </b>(image, vidéo, surveillance, fichier, sauvegarde...), je me suis surtout penché sur le développement de scripts en PHP tournant à intervalle régulier (CRON=tâches planifiées) permettant de récupérer les données de la <b>ZIBASE </b>depuis le NAS.<br />
<br />
Cette solution permet de moins solliciter la <b>ZIBASE </b>tout en étant indépendant d'un hébergeur externe. Bien évidemment, cette même solution peut être mise en œuvre sur un PC/SERVEUR, un autre NAS ou tout autre machine pouvant faire tourner du PHP et MYSQL. Je ne détaillerai pas ici la configuration du NAS car plein de tutoriels répondent déjà à ce besoin.<br />
<br />
Ce premier article va faire l'objet d'une petite série (si j'arrive à m'y tenir) pour vous présenter une solution complète de restitution des données sous forme instantanée, sous forme de tableaux, de graphes avec gestion des évènements et modifications des sondes utilisées; le tout avec PHP, MYSQL et WORDPRESS parce que je ne suis pas très doué en développement et que cela permet de faciliter la présentation du site tout en intégrant facilement du PHP (via l'extension WORDPRESS <a href="http://wordpress.org/plugins/shortcode-exec-php/" target="_blank"><b>Shortcode Exec PHP</b></a>).<br />
<br />
Bon, pour ce premier opus, entrons dans le vif du sujet pour enregistrer en pull les données des sondes. Vous trouverez en pied de ce post un ZIP vous donnant les éléments suivants :<br />
<ol>
<li><b> Répertoire communs :</b></li>
</ol>
<ul>
<li> sous-répertoire <b>db </b>: ce répertoire contient le script SQL permettant de créer les tables de dla base de données. Pour ma part, j'ai créé une base nommée ZIBASE (original le garçon !). Ce script créé : </li>
<ul>
<a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=94176035240798499&pli=1" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<li>5 tables permettant d'accueillir les données de différents type de sonde en pull. Les tables concernées sont les suivantes : </li>
<ul>
<li>TEMPERATURE</li>
<li>ANENOMETRE</li>
<li>PLUVIOMETRE</li>
<li>UV</li>
<li>ELECTRICITE</li>
</ul>
<li> 3 tables permettant d'accueillir les données de certains actionneurs en push. Les tables concernées sont les suivantes :</li>
<ul>
<li>VMC_ETAT (Etat vitesse 1 ou 2)</li>
<li>ALARME_ETAT (Etat ON/OFF)</li>
<li>CHAUFFAGE_ETAT (Etat allumé/éteint)</li>
</ul>
<li>1 table nommée EVENEMENTS permettant d'accueillir et de logger des évènements d'information ou système</li>
<li>1 table nommée PERIPHERIQUES contenant les sondes déclarées dont vous souhaitez enregistrer les données avec les noms de tables dans lesquelles enregistrer les données, le code de la sonde dans la ZIBASE , le nom dans la ZIBASE , le nom en clair et un ordre d'affichage. Par exemple, voici pour ma part, comment elle est remplie aujourd'hui :</li>
</ul>
</ul>
<a href="http://1.bp.blogspot.com/-1XODUjXg1ZE/Ub9zvBx9ALI/AAAAAAAAAIc/TSeWWUvXH4w/s1600/peripheriques.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" src="http://1.bp.blogspot.com/-1XODUjXg1ZE/Ub9zvBx9ALI/AAAAAAAAAIc/TSeWWUvXH4w/s640/peripheriques.JPG" width="640" /> </a><br />
<br />
Le script CRON PHP interrogeant la zibase en pull, interrogera également la ZIBASE (sur zibase.net) pour mettre à jour le code des sondes dans cette table automatiquement en cas de changement de piles. La mise à jour du code de la sonde se fera grâce au nom du périphérique déclaré en ZIBASE (nommé nom_zibase dans cette table). J'ai préféré utiliser ce système car je ne change jamais le nom de mes sondes et ne voulais pas utiliser "l'Identification des sondes seulement par leur canal" dans les options système de la ZIBASE (limitation du nombre de sondes, ré-association obligatoire de toutes les périphériques, bug...). Chacun jugera de l'intérêt de cette solution.<br />
<ul>
<li>sous-répertoire <b>include </b>: contient deux fichiers :</li>
<ul>
<li><b>config.php</b> : contient tous les éléments nécessaires pour se connecter à votre base. Contient également 3 fonctions utilisées dans d'autres scripts : </li>
<ul>
<li><b>function exec_query($requete)</b> permettant d'exécuter une requete SQL,</li>
<li><b>function date_diff2($date1,$date2,$mode)</b> permettant de calculer une différence entre deux dates,</li>
<li><b>function getSensorList($idprincipalzibase,$tokenzibase)</b> permettant de récupérer toutes les sondes déclarés dans votre ZIBASE. Cette fonction va être appelé dans le CRON pour mettre à jour vos périphériques déclarés dans la table PERIPHERIQUES.</li>
</ul>
</ul>
</ul>
<ul><ul>
<li><b>connect_db.php </b>: contient uniquement les éléments pour se connecter à la base de données.</li>
</ul>
</ul>
<ul><ul>
</ul>
<li>sous-répertoire lib : contient le fichier <b>zibase.php</b> qui est la librairie PHP développé par Benjamin GAREL que je remercie (voir ici <a href="http://bgarel.free.fr/Zibase/">http://bgarel.free.fr/Zibase/</a>). A noter que pour l'instant dans cette librairie, je n'utilise que la fonction<b> function getSensorInfo($idSensor)</b> qui permet de récupérer les valeurs retournées par une sonde donnée. A noter un bug dans la fonction d'origine car Benjamin ne prenait que l'heure GMT de la sonde et non la date complète. Cela posait des problèmes lors de l'enregistrement d’éléments peu de temps après minuit, je récupérai la date du jour avec l'heure de la veille donc 18/06/2013 23:57 au lieu de 17/06/2013 23:57. J'ai corrigé et commenté la modification dans le script que je fourni dans l'archive.<b> </b></li>
</ul>
<br />
<b> 2. Répertoire cron</b><br />
<br />
<a href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA1oAAADSCAIAAADcyybhAAAgAElEQVR4nO2deXhU1f3/7/P79um31D5WH6SUamvbb1utYhUEcWrcUEAExB3ZgsvgUjUVoiWIwCiLdRkgC5vsJCERhiUTCKDIoiCEJYRtIDAJWQiZJBOyhyQI+f1xZ+6ce+45996ZzJbM+/W8nzg59yyf87nnfM7n3okqFF2shCAIgiAIgiJWQsgtgCAIgiAIgkIoOh0cOmGJToXcdAiCIAiCoPBUQUnZkdwTO77buZlgx3c7j+SeKCgpC7e2QmFpBamhE5aMtp4cnXFidMaJMdYTrg8Zrg+iRmWcGDphCdUQgiAIgiAIKiytOGE7u23b9vfNa3obF/x88JeSehsXvG9es23b9hO2s+ptE+cvnPB+3KhxRkkT3o9LnL9QT9vvP/746NChZ+64Q9LRoUO///hjlbaMdHBMlu1ntjZRY6wnxA+jNx0TP4y3HBmxIRfpIARBEARBkFLHT51JsWy5PXr+r0esGPDpgcTdTkkDPj3w6xErbo+en2LZcvzUGWbbDRs3vv3v2BdHv/zS2FdNMz9NmL8oYf4i08xPXxr76oujX37737EbNm7ktd2Znp772GP7//SHjD/32PrCkD3vjt/z7vitLwzJ+HOP/X/6Q+5jj+1MT2e2Zb0d3HJKSgdfMa8TP7w89avx89a/vGT7oP9aen2UinQQgiAIgiCIki0vP33T9hufnnN77M51OTXldVfK666cK6vLsZeLn9fl1Pztve03Pj0nfdN2W14+1daamTn21deHPz8yYf6iwzlHKSXMX/T0C6PGvvq6NTNT2fZ7i+X43Xdv7H79nneMJd9upbTnHWPmb288fvfd31ssVNtCZjo41nr8lRkr3pi54v2lW8ZNTnzji9Q353z99JuzpByx16RlSAchCIIgCIJIFZSU7dv349+jE/8Ss21Dbu3Rksvr9tpfMS1PSt+RvOXH2Dlff5qy+2jJ5Q25tX+J2fb36MR9+34sKCkj27717oThz49MSft64VfLZsz+7JPZn23O2vbtd7u+/W7Xtzt2frNjZ0ra18OfH/nWuxOUbXP697d2v+HQrGm2r+ZnDxl8ZsmCvJQVeSkrzixZkD1ksO2r+YdmTbN2vyGnf3+yrSjh/IVyUmI6KGV+/55vET/cOfid24ZNvHP09DtfmvJ/T7w3dMISqmHH1+ZJUVFRUVPWh2bcqKiosQkHQ+6EULndL3PvWJ70y3rT6b1QrW0IgqDI0qkz56Yv3HT9C0s+216RdbJu1Z7CuanftBEkpn/75fqcrJN1n22vuP6FJdMXbjp15pzUdunylc+8OHraJ7M+M8/b/u13bW1t9Q0NU6bP2JixeUNG5vqN1nUbNn1t2TDtk1nPvDh66fKVZNtDn3++55YeWc8OPjJz2pEXX7hcVJTz0osnzJ+eMH+a89KIy0VFR0a8kDNretazg/fc0uPQ559LbUXJ0sG0jZlDJywZlXFMSgejxk4VP9z+mNH1YcRHf3t+ytAJS9I2Zsq9IB3GbiZvDvmN8UahOTLXT46KioqalEHaEOhshholmIMql0d7Rpe19ZMng+ONcu/Xm9KwowljokbPP3o+Y4pWP0gHIQiCgqFjx0/c98bCe6d8v3TfpaX7Lj07Na2mrrGtre2ZDxaPmrZKzAifnZomXu05ac99byw8dvyE1Pa99yc98+LoRUuWvTvhg2ttbaJWrE5JSV+XkrZ2dWr6yuQ1y1asXrx0xTMvjn7v/Ulk28NDhqzrccO+D97ddX/fpqKitra2KzU1h1547tALz12pqWlra2sqKtp9/30/Tvq3pccNh4cMkdqKYqSDL246NsKtPz0dK2aBf3zk1X+8+Xmfj5bf++Gy+z6z8NNB15Ejns2j5x8N+b3RrZAcmUcTxgT/bVbQMh6ue4nl4S9j/OXJjpMOHty83mPk5vUZfhwLgiAI8kXHjx//2eMzXlxa9ElW+SdZ5c/N3JKx6/CMxRsGTF73zn+T29raqusah35kEa++uLToZ4/POH78uNR2+PMjX3397S/mJLz+rxhndW3zlavNV67OTViQuGBJwoLFi5euXLB4Wfz8ReZ5Sca33h3+/Eiy7cE//CGt5592jx+9743oA08Na62pETNCMRdsrak5MHzYj2+98sOb0V/f85eDf/iD1FaUUFDikCSmg/fN2XyrKfXPHy7/84fLf//mnC4Pv/nLx9+94bG3pFeGNz07WUwHybYFJZnikWMpcRSUOPbNHxsVFTV6fk5BSU7CGPKl0NiEbFn9hPljxQuj5+eolkuXouTlGv1bPJ+lS4SyF42WvbNy2c8Zy8GasvS6K1PRocZkLZOJ5mMW7aPs3DRFZppsLsp55bjyoflT3L0xPSMvnJxJO8cb+70Rb3kop6B/dE9bDU8y7pRO5/BWgv674Jf1pjSM5yvmZL3dU64bJDFpk1f3GoIgKEK1Y+/h/+n/8dOLC19NLnlmcWH/eQV3/WfnXbFZ42esvHr12tWr16JnpD30he3ZxYWvJpcMTjr/P/0/Pn36tNj29OnTw54d8frb/540ZXpMbNz4f/3bkrHl8zmJr7357hTTrMnTZnzw4fT3J0/9z5Tpk6d+/FbMxGHPjiDbHrj5Zkuf27cPfeTbJx/8bpBh3xMDWqqrr127du3atZbq6n1PDNz95IM7n3p0x9MDNhp6Hrj5ZqmtKEY6aPh8U5eDdV0O1v3iYN1j/0q6/kDt9QdqH/tXEvWfoVZNB11nFX2KuM5C8hAlcwId5a7zVX//qumgen31sdh9KgdVnxTVOdGnxlx4iYgbKhFh9EalSuKv3tqvX7xZ6781vKUimz7DkyoPAzqdw1gJ/roL7VxvmvaTbXXvKfE5ZHIm210QBEEQRznHbf/z6PR7Pz135yd5vf9rf2je+ScWFv99/HJHZfXl5pZH/xU/KPFc/8TCfl/k95xx9p5ZZ//n0el2u11sa7fbnxz+/KhxRuNbMe9OnPTBh9Pfnzztk0+/nPX53NlfzJvxX/O0Gf+Nm/rJex98+MY7E6Jfe/PJ4c+Tbff16PH1335r7Xvbjsf7fj/0oe8HPl5XXtHU3NLU3FJXXvH9oAH7nn5s1+B/Zj3Q09LzD/t69JDaiqLTwacmLtUjfjrowXOesd+I8A5UTjn9qkw63rztn5Ds2CPqq4zFbssuFF9Z6ckeGEkMzzbN91LkHNU8w0oHvbZfMXcR5Vsx7vJQeTepOWUfPOmlc7grwZu74Jf1pnQ70372ZL3cU7JyfhoNQRAEyVVYWPj/Hpl6xyd598w+9/C880O/Knlpddn9E78uvli5ZssPQz7fNybV8cyy0seTivp+nn/nJ3n/75GphYWFUtsnhj07zvjWWzGxsXFTP/p49qzP534Zv2De/K/iFywxJyz8rznBNOvzSR99/O7ESa+9+e4Tw54l2/7QvfuGf/xx20P37B78wK7H+1eWlFbX1leWlEofdg14bO9Tj+x4/L6MPn/7oXt3qa0oIb+4TFLaxswTOYcpPTFo0OP9H1WWp23MJNvmF1snRUVFRX24TlZYlr/xwyhPOVlH+XlMfDa/XOxn9MJ97e3fo31JY6KioqImW2n7eWMpx3W1ZReuE9OpjSrGHIkfLdVhzVdpm0ZXxBw1PCPV5A2qx3794iwP5eheLxWvPOmlc7grQfdd8Nd6YxqmtJ85WW/3VHFZfvbCUVEeRiUd8eZeQxAERahKLlx44M35t8bsMJgLBi8qeWl12euWyufj94+MnfPkGzPHLjn+r41VY9eUD1964eH4839+77sH3pxfcuGC1DZmwgejXx7/7sRJcVM/+eTTL7+MX5C0ePlXK1KWrExduHTV3KTFs7+Y99HHsyf8Z8rYV9+ImfAB2fbg4MFbe/55x4D7tvz11sKjx8sqL13IL9w7fNje4cMu5BeWVV4qPHo867Y/7x4S9c09fzs4eLDUVpQsHdz6zY4TOYd/Zms7kXNYaPtV7un94199pUeP3/bo8duRL714IufwlowNb75uzLJuPH7k0NZvdsi9oJoOiueT64zxKR10fZbO+7J1k6MmbdTsX5k3EBLru45D5biKsRjzpfpUT2K8SQc1bOPlQ4p0kOEZqqa68/Xm1lrSnQ56vVS0PMk02DvnKFeC7rvgt/Um71nXsldZlqp7ihhXTGGRDkIQBOlRcakj4etd1z+d8Eh84TPLSl/9umLi5uqHJ666UOa8UOZ89P3Vk7bVvrneOWJ12cAFxb9+JiHh613FpQ6prWX9xmHPjnjvgw+nmGbN/mLevPlfLVmZmvL1hjXrNi1PTk9avPzzuUnTZ372/uRpTz33kmX9RrJt3uLFO37/u51P/PPAC4N2DOifl31kz7Ah1Umzahd++v1TQ/Oyj+wY+Pih0cN+GP7Id7fenLd4sdRWlCwdXJ6+QfkW8MEHo/r166csX71uk9wLvPPe9ZIpKioqavSYdqSDZdKRLyEeXZz+3S9jPDAOaUUdyX72WKwpu5GdzdSI3qeDfNs482IkItqemWylneyd/fqlIx30caloe5J5p/Q5h7sS9N8Ff603yjCe/azJerenaCPpd40QBEEQV06n8x/Rc3q+v/3FVRffXO+c/E1tdOL3/5711SuT499ZlWPaWR9jvTQm1dFz4uZ/RM9xOp1U29feePvl8f8S08H4BUuWrlqzZt2mrzdkrkxdO/+rFWI6OM741mtvvK1su++BB3b27Xlw9NDjr7/0Xd+7Hf+d3LRqXktqknPO9J39etneic559dk99/1j3wMPUG3zqXRw/9FTXy5arlP7j54KudMjRbq+TIQgCIIgKMQquVhx0l5yw6CpvT/Y8tYG55Rv68wHmpOy6xYfrk863PrJ7ob3Mi/dF5d1w6CpJ+0lJRcrqLb2/IIhT7/wyutvz/xszpzERYuWrV6R8vWqNeuWrExNWLj0v+aE1958d8jTL9jzC5RtnTbbd7///feGXifeGlXw4b8cn02unj+rZtGnlXOmFZneO/3ey/se7PPd73/vtNmotvnFZYK96CIUljosf23z4brQmwRBEARBkIZKHZVnCsvujv7y5hEJz8Uf/PSHpsTDLfOPtH65//KIpEO3jEy4O/rLM4VlpY5KZtvCouJXxr81/PmREyd9NG/+V/O/WrFgycqEhUvfnzzt6RdGvTL+rcKiYl7b6rNnfzAYdv7frTnPPnF+6rsXZn1QOvs/xab3cl8csvOvf/rBYKg+e5bZFukgBEEQBEGQP1XqcLa0tCzPzH747QXCP2MlPfz2guWZ2S0tLaUOp3rbzVnb3nnv/ahHB0p65733N2dt09O2ePXq/YMGbbnuOkn7Bw0qXr1apS3SQQiCIAiCID+roMRReam2uaWV/H8WN7e0Vl6qLShxhFtb4VxhKQRBEARBEBSxQjoIQRAEQRAU0UI6CEEQBEEQFNESzp6/AEEQBEEQBEWskA5CEARBEARFtJAOQhAEQRAERbSQDkIQBEEQBEW0kA5CEARBEARFtIS8ghJRe7NzpphmxsTG+awpppl7s3OkDikFun+ltu7Y084RNe3ZumOPfnsgCIIgCILCUK50cG92zqQppryz9mvtIO+sfdIUEzNjc/V/zt7WDvLOcftXauuOPZOmmAqLStozI3UKi0omTTEhI4QgCIIgqEPLlQ5OMc08aTt95cpP7dRJ2+kpppnKYaaYZp46febqtWvt1KnTZ5j9M0e05xe0f0bqsucX6LQHgiAIgiAoPCWcyS8+k18cExvX2NTU3NLaTjU2NcXExol9koqJjbvc3PLT1avt1OXmFmb/zBH9MiPf5gtBEARBENRR5EkHmy43t1+NTZd56WDrlZ/ar5bWK/rTQW+NX7/Run6j1S/zhSAIgiAI6ijypIMNjU18Xc49fvLJ4c/lHj/Z0HhZtSb37WBz6xV1Xbjo+Gp58oWLDvVq+tNBdTupCVo2Ztx7/4P33v+gZWOG5hw15wtBEARBENRRJJy2F522F8XExtXVNzJV39CUe/zkI48P7mN46JHHB+ceP1nfwK4pKiY2TuyTVExsXFNzK0+Xm1svXHQkLV4+J3FR0uLlFy46LvMrM/tnjqhipGyCjU2WjdY+hockWTZa6xubdDbXaQ8EQRAEQVB4ypMO1tTVK1XX0Jh7/OSjA4f0/efDff/58Mixr5SVV9bWNzAri+Klgw1NzTw1NjVX19avTls3N2nx3KTFC75aUVJa1niZXVl/OqhiJDlBy0brfQ88ct8Dj3z25bzPvpwnfrZstNY1NOrpAekgBEEQBEEdWp508FJNHaXa+sbc4ycfe2Jov6hH+0U9Oir6tbLyytr6xuraelJUK146WNfQRKq+8TKphsbLl2rqUtIt8QuWxC9YsnDpquILZQ2Nl6lWdQ1N+tNB5YyUE1y/yXr/g/3vf7D/5+Z5jz0x7LEnhn1unieWrN9kra1v1OwE6SAEQRAEQR1annTQWV1Lqra+MffEqQFPPmV46DHDQ48NGPzU9h079x04SMleUFhT10A25KWD1bUNkmrrGx0VTvv5Ikq2vHOLlycnLlqWuGjZ4uXJxRcu1jU0kQ2raxv0p4PUjJQT3JCxWZzdF3MSBjw53DXTJ4d/MSdB/LwhY3NtfaN6P0gHIQiCIAjq0BJs5wpt5wpjYuMqL9VIqq1vOHbSNmjI0w88MkBdi5Ysr6lrINvGxMaJfZKKiY1zVtdJqq5r2Lv/0PyvVqhrycrUogsXa+obyLbM/pkjklZRqq1v3GjdLE7hy3mJ1EwHDXn6y3mJ4ueN1s219Y0qXem0B4IgCIIgKDwliP+IiY3LLy6T5KisPpJ74olhzzzYf5C6FixedrG8imzLSwftRRcllZRV7t57YOHSVepauir1XEFRqcNJttWfDpJWUbOzbMwU7f9iTsITQxnTfGLoM1/MSRA/WzZmOiqreb0hHYQgCIIgqENLEP8RExtXUOIgVXmpNveE7cnhzz38+GBR5vikRUtXUNp34JDDWU025KWD5P8puaSs4vTZ/O9/PEjpuz37Fi9PFrU8Oc1+vrjU4aT+L8v600FqRuTUNlq3PPz44I3WLdIEXx7/1jvvvf/Oe++/PP4tseTJ4c9J1Sov1fJ6QzoIQRAEQVCHlnDq7PlTZ8/HxMYVllZQqqqpP3HqzNBnXnh04JBHBw559Y23KyqrausbKy7VkiotryJbxcTGiX2Sov7jfPnFF4svVpAqd15yVDjXbsxcsjJ1ycrUlalfFxSWlDoqlf9pHGb/zBGVMyKndr6opPFy8yMDnhR14NCR2vrG2vrGA4eOSIWNl5vPF5VU1dSrdKXTHgiCIAiCoPCUJx0sLnMqVV3XaDtz9qnnRoj/1q3xrXedl2oqLtUyK4vipYMqf8BYeMFR7rxk2bRl2eq0ZavTVq9Zd774QqnDyaysPx1UMbK4zFlZXdfccqX/oKGiDh4+WlZZXVZZffDwUamwueVKZXWdej9IByEIgiAI6tDypIMljiqm6hqazpy1P/38yMcHP/X08yPPnLXX1DfyKpc4qnjpoIoRF8oqi0ouJqevX56cnpy+vqjk4sVyJ6+y/nRQxUhRrVd+enzwU6IO5+SWV9WWV9UezsmVCluv/KTZCdJBCIIgCII6tISTeQUn8wpiYuNKK6p5amhqPmvPH/vK62ft+Q1NzSo1SyuqY2LjxD5JMQtJlVU4Sy6Wrd2YWXKxrKzCqVJTsys9MxJ19eq1AU8OF3U093jlpbrKS3VHc49LhVevXtPsRKc9EARBEARB4SlPOnixskZFjZdb2traGi+3qFe7WFnDSwePn7ary1FR1dh02VFRpV5NfzqoaWpbW9v7cR+JsucXOGsanDUN9vwCqbCtrc23+UIQBEEQBHUUedJBR1WdumobLmvWcVTV8dLB3FNnNVVQXKpZR386qGlqy5WfSInpIFXo23whCIIgCII6ilzp4JTpM7O+3V1+qb6dyvp295TpM5XDTJk+M82ScfRkXjuVZslg9s8c0S8z8m2+EARBEARBHUXCiTP5J87k79qbHRMbt3XHnsqaRp+1dceemNi4XXuzxT5Jif2vWbfpyPHTPmvNuk28/nkjtnNGPs8XgiAIgiCoo0iQPu3am/3h9JkxsXE+68PpM1Vyo0D3H4gR/WsPBEEQBEFQGEoI9AAQBEEQBEFQOEvQ/Bd+IQiCIAiCoE4spIMQBEEQBEERLaSDEARBEARBES0hFwAAAAAARDDCWgAAAAAAEMHg7SAAAAAAQEQjtAEAAAAAgAhGuAgAAAAAACIYpIMAAAAAABGNUAYAAAAAACIYWTqYe+z41I9nBe5/8htWmvrxrNxjx3l+iRBXwAnwWPgIvvXWJwAA4C8Eh5vcY8cnTTGVlF68FhmUlF6cNMWUe+y4Q0HkuAJO8BZ4LHDAt0pUfAIAAH7Ekw5O/XhWQWFh65UrkaOCwsKpH89SOiWiXAEnwGPhI/hWv08AAMCPeNLBmNi4urr6psvNkaO6uvqY2DilUyLKFXACPBY+gm/1+wQAAPyIUO4mJjauvqExolRb3xATG1euIKJcASfAY+Ej+Fa/TwAAwI/I0sGauvpIE+/sCblhcEI4Cx6Db0PuEwAA8CNChZuY2Liq6tpIU0xsXIWCSHMFnACPhY/gW50+AQAAPyJLByuqaoKiU4ujo8YuORWs4dTEO3uCbsnhVFP6AdmHmgr7N4kmk8mUtNVOFHZmJ/jgrtCoA3qswzg/1L4t2JpoStxeEGona/sEAAD8iCwddFRe8lG5S8ZGkUzN5FfOWRw9dvEJ38fyq3hnj0+9HUo1mUxrDkkl+9eYTKa0/XrbUjXtWYlJWWc7nBMuOc5uTzAREA7pNIpsjynXatj69lCqSUbqAY0mZ7YlJWyze337ErefCaTPkQ4CAAKNUOkmJjbuYnmVL9o8NSoqesFRT8nhRdFjFh33sbfgKiY2rlKBr644mGJKTEhM3HKm6mJ51cUz2xMSExNMafv0tqVqKks6jBNcHgjuLIKpyPZYYC30t28D78wz2xMSt58K5BBMnwAAgB+RpYMXHE7vlTU5auz8HOalY/PHjp2/6KOoqKioqI8yHM4LOV+Ncb8/HLPomKsao1DRsB0S5FBXeWePT2NlJ5vW7N2/xpSafcHhPJmVmLw/O9m0Zq94df8a6RVF8n53E6LQ5KrparJXeq2RsO2kg+jnzDbpTVJC1rkLDucFx7nNCYmbs9YQnXgnfzrhzLaEhG0nec6hP2cnm9Ykp1LTYRZSc+T2sJdu2HE9dm4z8c7QvWYYbjyZlSguOVF7U93TZExcVuieO3MghYsYazXsfStzl0snsxJNMh/qdVdC1jmW/wnviXchWD4BAAA/IjjdxMTG5ReXea3shaNGL9zHvnokfnRU1GSr+1frpKgP13kujYnP5hVSDdsrKRdUXoqJjXMq8NEVxT+uNKXsln7Gbznq+lyWf2JLvCkh44RUTfwsfZDaMj/wCm0Z8WJzW0a8ybT6R5/941cnlO1e7ToL4zNtCucop2Na+YPSLcpCao6sHk5siZd97ugeI8Sejg9LhbnkmAMpHa6yVsPWtz+uNMkQl8fRzART/JajxbaMeHKlablr9Y9sV5/YEh+/5ShjnQfWJwAA4Edk6WBBicNrZS8aPWbRPvbVnIQxYxOy3b9umhIlZ9ImTiHV0B8SBIFZzjt7fBpl/ypT6u4Sx9HMhPj4hPjMM1JJwQ+ppuT9Us3dyaZVP1CF7pqMDw5ZP3JW/eAoKDmTEZ+QcdJ35/jVCR7tTna9M+FOR1bo2J1skjlNVkjNUdVLncRjlPFq83V7yXE0U1x4nImzlxxzILmLmA07gG9la0npapevdLmLv8ZOZsXHZx1V6ScwPgEAAD8iSwcLSyu81+a4qLGJh5iXjiaOIS5lfBT14Wa6DrOQahhI8c4en3o7sMqUuof5YV+qKfmAVHNPsmnVPqqQ35bfj1t5GQmJGafCxAm0XJNlTkdWyKwpFVJzVPVS5/DYvlSThseIz6e2xptS95QeWGVyz4s5ceaSYw8kdxGvYbj7VraWSOVuTjSZTPGb81gTZM6av8ZObY1P2Jqr0k9gfAIAAH5EqHITExtXXOb0QdkLx0ZFjU06QhRaPxq98Fhx2bGkMWR51uSoqMlWT6vJVl4h1TCAiomNq1LgqyuyV5vW/MAssW2LNyVm2pzF5Gfbtnip/o9rTK7PUidkb2ShafWPrv5PbElc/aOzuOxcZoK785A74cc1ppRslk+yV0seYEyWrMAspOao7qVO4TGyXOYxpRudxWXOH1JMq1PIrlgTJ5ec9Jk9kNxF3LUa3r5lbEn3FBK2nSg7l5kg2c9zlzSX7NUp2Wz/k84Jok8AAMCPyNLBEkeVj8pZMkb2le/UTY6qEsfx+WOj5+fwqol1mIWKhgET7+zxqbeDyaa0H3glZ7bHu78/St7vqnAyK9H9BV2au+ZBxQduPyZXoT0zITHzTJg4wZ4p+4+meAzjTNaD2y3MQmqOWl7qFB7zfPHo8RjTjVUljqqS/Wnk0uJMnGiekBjvLmQNRLuIPW64+1a2lkT/nMxKNMnWiSk+y85zF1koVmP6weXA1IPB9AkAAPgR4ZKbmNi40orqSFNMbNwlBZHmitA54XCyKW2frsLwUmdYNgfSTInbT4XcjE7p26D4BAAA/IgsHbxYWRNp4p09ITcsMpxwOMWUvk9XYXipwy6bgi2J0ourMHVyh/VtsH0CAAB+RJYOOqrqIk28syfkhsEJ4Sx4DL4NuU8AAMCPCNVupn0ye//hY+WX6iNH+w8fm/bJ7GoFEeUKOAEeCx/Bt/p9AgAAfsSTDtpOn4mJjcvOOVFZ0xgJys45ERMbZzt9RumUyHEFnACPhY/gW698AgAAfkSoITh9Jm/aJ7NjYuMiQdM+mX36TF4NhwhxBZwAj4WP4FtvfQIAAP5C0K4CAAAAAAA6L0gHAQAAAAAiGqSDAAAAAAARDdJBAAAAAICIRsgFAAAAAAARjBJXQqAAACAASURBVNACAAAAAAAimIhLB3Nzcy9duhRqK7iEuXmgg4J1BQDwltzcXIvFEmorgB/Qcx+RDoYXYW4e6KBgXQEAvEVMBy+Cjo+udLAuwhDPxVBbwSXMzQMdFKwrAIC3IB3sNFgsFs3bjXQwvAhz80AHBesKAOAtSAc7DUgHGYT5uRjm5oEOCtYVAMBbxHSwFHR8dKWDtRGGeC6G2gouYW4e6KBgXQEAvAXpYKfBYrFo3m6kg+FFmJsHOihYVwAAbxHTwQug46MrHfTqP1o9Z+5cPfLHfx973cvCy+u0q+V8ep9w36c5+vsVz0Xf7eIiGazTcjbem7fuZUFQdUG77AGdA78ue6woACICMR0sCSCrRwujV/u5ZiCatwdp6PbY8IPpXuFe0w8+G2GxWDRvt1DtDXPmzm1g0dzc3NLS0tTU1NDQMGfuXFbTtS8LgiC8vFal95zZffvOzvHGHu9bVIvnIueiDiO5rH3Zx4YyWOaJVslxTdvlAFU/+Mcw0KFp77L3YacBADo4YjpYTPO96V7iMBq9SlFBP6tGt699+A2kMrTvNnxvuvde0/ftMcJisWjebuGSN4jp4IbM7aSyD+cuS9s9afY6+/kLjY2Nc+bOZbRcO04Yt3btOGHcWn7vR2b37Tv7iFcGeY94LrLRY6R6Y9/tcqFmno9D+Mcw0KFp77IPyt4EAIQV/HTQk5ysGi20I1OJqHTwe9Po9uV07cBisWjebh/TwUNHT4k6nGurulQ74l/LHh+VsH1XblNTEzMddB021JlzZHZfz9uutZ5fiKpHZvclm6wdJ7hOJVlbL84plXORZeTaccK4ceOogbiFa2UffDHSm3SQ6F0gLtCDMq313YGgI+Llste1N12N6RXIWW8AgI6GmA4W0eyZfu+90/e4f1s5Shi10lU4fZQgCIIwaqVY7mbUSqKpu/De6XvExqNGkSXySp62rmE4TZQ9U+hvJQ1EflbMTmM42fRJB/DG3TP9XkE2rrtb5kCaoyvQlQ5WeQOVDh45Zissvrhx29EBoxLGT0otK3OIXxbTzQ7P6tt31uGqqqqqr8cJrk/053FfE9XEq+O+ln3gFcqaaSKei4wLXCOlkaRyXiFlm2KC7TFP1jPLeO6ghLWyaj46EHREvF/2Ovbm4Vl9GU2Y6w0A0PEQ08FCmj3Teveetkf6LIxa4fogfnIXS3VWjHJ9lj4UFhauGDVqRWHhilFSI6knaihX4YpRng/KJtJVyjwJ/a3IQumzfHa6hiOnT82L3dztM9IRPAspN2pjsVg0b7fg9AYpHTyVl3++uPTUGXtdfUP0hFWDxiTt+MF2zm4X00Gq1cGZffvOPEh/To8WotO59YjL6dGCWCxrK4fqSQXxXFSWs42UW+m2RL3Q/UE5wXaYpzTGVUD5gDEoWeSeWTscCDoi3i17nXtTXo1VKmsGAOhYiOngeZrd03p7zo7e03a7C90fz58/v2KkMHLFeeo3eaGiHtHDipHE6SRWkGqymsjqe9poDMRuRdaUPitmpz6cbKaKafObi1c8IzFrMtyojcVi0bzdQqU3iOngvuwj2UfzkzccqLp06Zs9pwZHLzD+J7W5ufnUKZuYDsobZc/sK59Q35nZlZWV6dFCdDpdUbxUKb+cPbOvEJ1emR4tuC8r2+pGPBcVxRwj5SO5f1EvZNZqp3nyoaTfPL+qDEoWuV3cDgeCjoh3y17n3lSsR0WprBkAoGMhpYMFBQXEz13TeveeuqtAXr57au/e03a7S5aPFEaukK6uGCmMXF5wfsVIYeRyeStXaiPrYflIQRi53FVn+UjXZ6mmVEJYwuiZ+qm/FVlT+qw2O8ZPWc/kHJVXZT93Te0tCELvqbvUamqOzvppsVg0b7dQWVlZUVGh86eYDhYUFsVMXztoTNLRk8VvxKUNeXnh1l2nmpqa7PkFUjroaZUeLfSZke0pyZ7ZV4hOq6jMntlH6DMzWyxPj45Oq8ye2UeITq90l3g+V6ZFC9HR0UJ0WqXnqhCd7rqaPaOP9Fnzp3QuysrTooW+M7M9Jdkz+oj9p0UL0Wmu8rRooe+MbMq29GjXLKSa7qvZM/q66ldWVKRFR6frsVA0j3NV5pOKtGhB6jMtWhBHV3pV1ip7Rh/JWiE6zdVz9sy+0mf87JQ/2euqnXuTXOGez8z1FnoP4Cd+4qe3P8V0sIBm19TevafuUi3cNbW34P5V+kwWFiwfOXK5lG/JeiDL3KkhUcpqQtQTS6XPbvS3Wj5SMtJznZqy1nC7pvaWrsvqqjZ3jcxt7KrJcKM2FotF844LFd4gpoNHjh4rKCp/Yuz8weMWDHl54SuxKc0trQ0NDUXFxWI6SDZxZUnMouwZfdxvJfrMyBavCIKY2MjbpUW7iiWItoJiBBWkc1GfkWmyr2PTCGsYheJHojN6gso69MhM83hmeuwQk2WNQcVroqd9dyDoiHi57HXvTaKaYiNUyNYbAKCjIaaD+TQ7p/buPXWnVuHOqdJXyiOXMQp7T92Zn79spOeip4dl0nekI0e6KyxTfJAPSvRMDujGi1aeMs/oarNjDcfsRK35zqm9iX6WjXT5hzMQ141ML+Xn5+eL6aA6Qrk3iOngjwcOVjhrvlj87ZPjFg59ZdGm7cfE/+jgxYsXxXTQqz6DjHgu6q6eNlYYm6ar0D94aR4AusC6AgB4CycdBB0Pi8Wiebt9SQcPHjp89uy588XlXy7+Zt6y7+rqm5xVVZWVzvLyCqSD7QTHNggEWFcAAG8R00G73X7u3Dn87NA/daWDDoejrKxM50/y/0rS2NjY0tLS3Nzc2NhI/h9K5syd61WfQf4pnovhYAnzp2heOFiCn53pJ9YVfuInfnr7U0wHz4GOj8Vi0bzjQpk36Px/FnvVZ5CRzsXwJMzNAx0UrCsAgLeI6eBZ0PER00F1hIsRhnguhtoKLmFuHuigYF0BALwF6WCnwWKxaN5upIPhRZibBzooWFcAAG9BOthpQDrIIMzPxTA3D3RQsK4AAN4ipoM7QMdHVzr4Y4QhnouhtoJLmJsHOihYVwAAbxHTwVBbAfyAnvsotAEAAAAAgAhGaAUAAAAAAJ2XqqoqpIMAAAAAAJEL0kEAAAAAgIgG6SAAAAAAQESDdBAAAAAAIKIJl3TwlmdM6uoxcuLPZ//uhrTrg2OP/7AaBaM11Eb4g04zEd+I8Onrx2Y2CAazLdRmkPjp3tnMBkEQOJOzmQ1ezjrYK8p7C0XU7OT3KbUK1DR9nU4oe/YSv7sOQQyoEUbpoN1+WlRBQV5h4bni4oLS0mKHo9TpLD9bfvq21L/GHXl94I47frX8uuCYROM6DNz4ZVv5LfBYjYLgd+v0EsLwGbyh/RdJqYXk6lZWSs1Jds1jhdUoq+qxkFgN7fSO1+vKlxsS8Jvol3unbqUPQwTubGaa6vNwKg319BmgaQbOe+GTM0VoOsgOX54gqIyOshIyZqk9x7B68xSr+Uk+Ih3PGU2ZM9ITpX1u6Bthlw4qc0F7Rd7tKbd/cMjYK6PbPZm/6ZL0v8ExSY7VKHO9/943+C0dDN0+RzroVTeKAGQw2+QzsZkNnsGoFlajQGR9RqNnXRLvY6T61LL1xdzAr6uOkQ6qduLLCAHxrftsUjjU99H4LXX1GZglFAnZYISmg8zwRYREIqaxVrvNbGTGURJ+b1qBiLu/JOOZ2SBjRnqitM8NfSS80sHv7FtSbUuLivOlXLCgwn5XSs+JB1/rldH9rsybfpn0i+DYQ6NyYhEPB55z3Wx0PyfIvjQxGqmaut+6aMBZhfSIrQrzlPbTkxII+1kvn6hZ6OmfNsxKG6mrlU4HMp6liCJ3O6avqLdj7rosj+l7YlPZvrIV5vE1I6JJnViNgtHqqaAViXyB0afNbCDcTSSrWgvJYLbJOxQ/K24iox/momJOjHkf9ReqOUKlqjQr6naRMZy55BQ3jhsu9O0R6QJtpWz3Kk5CTwNd+441awL5jeZFIeW+Ym0izhxl61IjAnuz3zV6VpmObMQwiDmB2gjBxR2+ZCuaWt6qf7DAvMLuTX+uzB1Rx4MtMyAThSqRTb2hPwijdDAp97MR+wY8teO+6L0vlZVdcDrLCysL7km9W8wFe2bc1GVul+AYw4QRjl3FxPZ05UPUN3pSWCQDgeKVkH+sI6MIMaLnmOKZ1yrfGGTMkR9a8sNLygBlZ5R2/6RhSiP1tHKnBeoOZFormx2/c3U/kLYpR2GiZi15zcp45ceYk+uf7tqc1K1dTxrMdSW5kOxex0JyGatIfTiZMHGBWlTq6aBil3FvrrKmuiv435my7ScmyF5y6umgD3uE+avcQtl+osKQ1r6jbigzCaHN0/KzNCPGJuLNkXK4agT2Yr8re9YXhZSPSKGPOYHbCMFD5mCv0kExbul69Ca+niECnaoXeHFcO6FkBmRZISeyaTf0B2GUDg7c2m/8gf4Dv721Z2a36D1jiyoK+qb3mXDglV4ZPXpau96Y+Kuu40cHxxh13CekIl65oNYKc0u7t11gvyzmnazEkPRx784v2OmsdLYJssNZZa8y+2eff8Rn7Vasr1iZKK2Vu4qV5LICrrptylF4xqilg1TSxbCWbbMrKiiq+iG2cwMcHW+1F5KyQ1Y6yL71+vcJa5dxz3VlTQLPDdF4eaDc8PRO01hyvHTQhz3CtIj63fWb1WgwWz0fbdw+2Y5i3BI66eHHPXosTmDhzJH7+MCcrv79ruxZZxRSOjj0Mcd/GyFUkKb49naQfGtA7mVeOqh8xqCDgNqI2q5j1tD5KOpbQy8Jo3TwuawhD229tf83f3xk261/Sb+x28JuE/a/2tva486MrjckXbfBvuGWZ0zBMUYPVunNjK/poGtLhzwdVG/HsV8KUYpZ6Ohfz1Gn0Up3Oqi0tv2hmZv1EaNwK2g+scofDxkPgFbF6yWxyEx/zeWHpaWWAwlUOqixkJRFnHSQMaDv6SD/CGevcp09q9nmyc7Zr3j9lg5yLdY4L21mg9EqpoA2s8FgtpoNzC3Omjjrnkmz1h33rEbOy7RWla3Kno4/00FvYxenodZEghJzArcRggG9mnxLB3mXtNNBdT+wutV6U8cMyHqitM8NfSCM0kF7SZ5h/f33Wnv8M+uWPpm/Hbajzz2but+xqeuvE3+59tzaq1d/CmU6SK8OIioyvqrQDIvkw4dfdp+v6aA8MNvEc4G0Svadgusi3Sn9slurf82jTrsV+YZfYxOyrHVb6Pms1bnHIoZtjFH49ij/3EARjejTUpDHKSIJlNUiL/gpqHOiolV6uc1wUKtsIVG7Q54keTaRbCKKW6+ZfDANZuTNnFNQ5xM6yxXkvSerGuVjqi05lk983CPUHDkWWj3/SrqY1qvdRF7gouMh5R3VuEevXE5g4S0qciTNCOzVfudPSi0KKfKLUMUcfnDw40YIOKzwRfiFtpG/2rmnA7M3yvXqUZy+qt6AGZDZUVoe2bxo6A/CKB10OEqLKgoMa+//x4bf9LJ2v2P9TX/P6Hp9Upc1eWuuXv3p2rVrIX076HlrTL86Jq6wXljJwrfymx3WIyT7wVoVWedefK9Bz8xV31NmMNB/q0TWJ08x1qtCTv+aR51mK88ovKdjxujkVw/0jWB37qlIHu9K25ij8KCWkqtb5RnG/Dty3t9linUUxqj6RgeMdeUZyF1B4Sy26WT+QblUdhMZ/XiVDiqN4J2CXrlI+2URZYWsXHXJsXzi2x6RlynfN3k6UWYnvD4ZjqL6ZK1ofXGPnLLWVuW+MdSIwHr3u3rPqlGItXn5EwlczJGng0q3+2UjBBhe+CLOJNl3J7QT9MViVm+yVanjPGH8Oaj+GalNk9ybuhv6gzBKB53O8upqZ2lVSb/UfrdZut6Z2e3GBV1STieLuWBbW1tYfVnsPWHyGt5LwuJxEQCdePUE1f79GP6bOhAWhnDWgRs6/G+lVwR5I4DOQBilg9XVztra6vr6WkdN2aCUQTcn9Eg+sVrKBZEOBhHyAaSj2Ey/xwqp8WFlTESBUxCAVmwE4ANhlA6KuWBjY8Ply00tLc1XrrSSuWDHTwcBAAAAAMKRMEoH9Sg4xgAAAAAARA7hkg4CAAAAAICQgHQQAAAAACCiQToIAAAAABDRIB0EAAAAAIhotNPBKgAAAAAA0KnRSAfVLwMAAAAAgM4NviwGAAAAAOjMaL8dDLWFAAAAAAAggCAdBAAAAACIaJAOAgAAAABENEgHAQAAAAAimnBJBzX/b8U9Rk78+ezf3ZB2fXDs8R9Wo2C0htoIf9BpJuIbET59/djMBsFgtoXaDBI/3Tub2SAIAmdyNrPBy1kHe0V5b6GImp38PqVWgZqmr9MJZc9e4nfXIYgBNcIoHbTbT4sqKMgrLDxXXFxQWlrscJQ6neVny0/flvrXuCOvD9xxx6+WXxcck2hch4Ebv2wrvwUeq1EQ/G6dXkIYPoM3tP8iKbWQXN3KSqk5ya55rLAaZVU9FpKroX1Ge72ufLkhAb+Jfrl36lb6METgzmamqT4Pp9JQT58BmmbgvBc+OVOEpoNE0CGWsScIKqOjrERX9OP05ilW85N8RDqeM5oyZ8SeJrehu1sdw/lM2KWDylzQXpF3e8rtHxwy9srodk/mb7ok/W9wTJJjNcrumf/eN/gtHQzdPkc66FU3igBkMNvkM7GZDZ7BqBZWo0BkfUajZ11KFtrMRmZPvpkb+HXVMdJB1U58GSEgvnUfFgqH+j4av6WuPgOzhCIhG4zQdNBqlBav59QlAhlxFLNWu57ox+9NKxBx95dkPDMbZMyIWagYTWMufr6h4ZUOfmffkmpbWlScL+WCBRX2u1J6Tjz4Wq+M7ndl3vTLpF8Exx4alROLyNY957rZ6E7cZV+aGI1UTX9l+JxVSI/YqjBPaT89KYGwX/HyyWC2UbPQ0z9tmJU2UlcrnQ5kPIQRRe52TF9Rb8fcdVke0/Oop7LvqRXm8TUjCkidWI2C0eqpwFoDKgPqgtGnzWwg3E0kq1oLyWC2yTsUPytuIqMf5qJiTox5H/UXqjlCpSqRictuFxn8mUtOceO44ULfHpEu0FbKdq/iJPQ00LXvWLMmkN9oXhRS7ivWJuLMUbYuNSKwN/tdo2eV6chGDIOYE6iNEFzcOZNsRVPLW/UPFphX2L3pT624I+p4sCWyQGYhL7Kx5uL35+gwSgeTcj8bsW/AUzvui977UlnZBaezvLCy4J7Uu8VcsGfGTV3mdgmOMUwY4dhVTGxPVz5EfaMnhUUyECheCfnHOjKKECN6jimeea3yjUHGHPmhJT+8pAxQdkZp9y979a0wUk8rd1qg7kCmtbLZ8TtX9wNpm3IUJmrWktesjFd+jDm5/umuLa8qroj2ri7mupJcSCY/OhaSy1hF6sPJhIkL1KJSTwcVu4x7c5U11V3B/86UbT8xQfaSU08HfdgjzF/lFsr2ExWGtPYddUOZSQhtnpafpRkxNhFvjpTDVSOwF/td2bO+KKR8RAp9zAncRggeMgd7lQ6qRz9mb/JnGlUv8OK4dkLJfMcnK1RGNu5c9OevegmjdHDg1n7jD/Qf+O2tPTO7Re8ZW1RR0De9z4QDr/TK6NHT2vXGxF91HT86OMao4z4hFfHKBbVWmFvave0C+2Ux72QlhqSPe3d+wU5npbNNkB3OKnuV2T/7/CM+a7difcXKRGmtImvids70A9M25Sg8Y9TSQSrpYljLttkVTlhVA/ZlMR2jtBeSskNWOsi+9fr3CWuXcc91ZU0Czw3ReHmg3PD0TtNYcrx00Ic9wrSI+t31m9VoMFs9H23cPtmOYtwSOunhxz16LE5g4cyR+/jAnK7+/a7sWWcUUjo49DHHfxshVJCm+PZ2kHxrQO5lXjqofMagg4DaiNquY9bQ6XFFJA/EnQqjdPC5rCEPbb21/zd/fGTbrX9Jv7Hbwm4T9r/a29rjzoyuNyRdt8G+4ZZnTMExRg9W6c2Mr+mga0uHPB1Ub8exXwpRilno6F/PUafRSnc6qLS2/aGZm18Ro3AraD6xyh8PGfmcVfF6SSwysyxr5wpTy4EEKh3UWEjKIk46yBjQ93SQf4SzV7nOntVs82Tn7Fe8fksHuRZrnJc2s8FoFVNAm9lgMFvNBuYWZ02cdc+kWeuOe1Yj52Vaq8pWZU/Hn+mgt7GL01BrIkGJOYHbCMGAXk2+pYO8S9rpoLofWN1qPXgzv8/gfsmhOWh7n/PZhFE6aC/JM6y//15rj39m3dIn87fDdvS5Z1P3OzZ1/XXiL9eeW3v16k+hTAfp1UFERcZXFZphkXz48MtN9TUdlAdmm3gukFbJvlNwXaQ7pV92a/WvedRptyLf8GtsQpa1bgs9n7U691jEsI0xCt8e5Z8bKKIRfVqq/KskZC3PWxbSmnYtME5UtEovtxkOapUtJGp3yJMkzyaSTURx6zWTD6bBjLyZcwrqedLmuIL0NlnVKB9TbcmxfOLjHqHmyLHQ6vlX0sW0Xu0m8gIXHQ8p76jGPXrlcgILb1GRI2lGYK/2O39SalFIkV+EKubwg4MfN0LAUS4mmV9oG/mrnRv9mL1RrleP4vRV9QasGbEL6aXCmUuA7lMYpYMOR2lRRYFh7f3/2PCbXtbud6y/6e8ZXa9P6rImb83Vqz9du3YtpG8HbYy/llZcYb2wkoVv5Tc7rEdI9oO1KrLOvfheg56Zq76nzGCg/1aJrE+eYqxXhZz+NY86zVaeUXhPx4zRya8e6BvB7txTkTzelbYxR+FBLSVXt8ozjPl35Ly/yxTrSF3pt0YdxroiBmqVJatMK+ndwXap7CYy+vEqHVQawTsFWU5VcwWjFreU6lN1ybF84tsekZcp3zd5OlFmJ7w+GY6i+mStaH1xj5yy1lblvjHUiMB697t6z6pRiLV5+RMJXMyRp4NKt/tlIwQYejExziTZdye0E/RFP1ZvslWp4zxh/Dmo/hmpTZO5+uWvBAKTtIdROuh0lldXO0urSvql9rvN0vXOzG43LuiScjpZzAXb2trC6sti7wmT1/BeEhaPiwDoxKsnqPbvx/Df1IGwMISzDtzQ4X8rvSLIGwF0BsIoHayudtbWVtfX1zpqygalDLo5oUfyidVSLoh0MIiQDyUdxWb6PVZIjQ8rYyIKnIIAtGIjAB8Io3RQzAUbGxsuX25qaWm+cqWVzAU7fjoIAAAAABCOhFE6qEfBMQYAAAAAIHIIl3QQAAAAAACEBKSDAAAAAAARDdJBAAAAAICIBukgAAAAAEBEo50OVgEAAAAAgE6NRjqofhkAAAAAAHRu8GUxAAAAAEBnRvvtYKgtBAAAAAAAAQTpIAAAAABARIN0EAAAAAAgokE6CAAAAAAQ0YRLOqj5fyvuMXLiz2f/7oa064Njj/+wGgWjNdRG+INOMxHfiPDp68dmNggGsy3UZpD46d7ZzAZBEDiTs5kNXs462CvKewtF1Ozk9ym1CtQ0fZ1OKHv2Er+7DkEMqBFG6aDdflpUQUFeYeG54uKC0tJih6PU6Sw/W376ttS/xh15feCOO361/LrgmETjOgzc+GVb+S3wWI2C4Hfr9BLC8Bm8of0XSamF5OpWVkrNSXbNY4XVKKuqtNBqbO9K8Hpd+XJDAn4T/XLv1K30YYjAnc1MU30eTqWhnj4DNM3AeS98cqYITQeJoEMsY08QVEZHWQkZs9SeY1i9eYrV/CQfkY7njKbMGbGnyW3oqaanoW+EXTqozAXtFXm3p9z+wSFjr4xu92T+pkvS/wbHJDlWo8z1/nvf4Ld0MHT7HOmgV90oApDBbJPPxGY2eAajWhApntUoGI2edUlZaDMbDAZD+9PBwK+rjpEOqnbiywgB8a37bFI41PfR+C119RmYJRQJ2WCEpoNWo7R4PacuERKJo5i12m1mIzOOkvB70wpE3P0lGc/MBhkzYhbq6U5XQ98Ir3TwO/uWVNvSouJ8KRcsqLDfldJz4sHXemV0vyvzpl8m/SI49tConFjEw4HnXDcb3c8Jsi9NjEaqpu63LhpwViE9YqvCPKX99KQEwn5pBxEtqFno6Z82zEobqauVTgcynqWIInc7pq+opzN3XZbH9D2xqWxf2Qrz+JoR0aROrEbBaPVUkK0B8Zd2h39GBzazgXA3kaxqLSSD2SbvUPysuImMfpiLiulJ5n3UX6jmCJWq0qyo20UGf+aSU9w4brjQt0ekC7SVst2rOAk9DXTtO9asCeQ3mheFlPuKtYk4c5StS40I7M1+1+hZZTqyEcMg5gRqIwQXd+ojW9HU8lb9gwXmFXZv+oMld0QdD7ZEMscslEc2LZuYvflOGKWDSbmfjdg34Kkd90Xvfams7ILTWV5YWXBP6t1iLtgz46Yuc7sExxgmjHDsKia2pysfEhTncqv8mzt3q8B+WUyM6DmmeOa1yjcGGXPkh5b88JIyQNkZpd0/aZjSSD2t3GmBugOZ1spmx+9c3Q+kbcpRmKhZS16zcl/5ycpc/3TXluWQ3kY4Dsx1JbmQTH50LCSXsYrUh5MJExeoRaWeDip2GffmKmuqu4L/nSnbfmKC7CWnng76sEeYv8otlO0nKgxp7TvqhjKTENo8LT9LM2JsIt4cKYerRmAv9ruyZ31RSPmIFPqYE7iNEDxkDvYqHRTjlq5Hb+LrGSLQqXqBF8e1wy3zfaWsUJEOKp4MNHprD2GUDg7c2m/8gf4Dv721Z2a36D1jiyoK+qb3mXDglV4ZPXpau96Y+Kuu40cHxxh13HdIEa9cUGuFuaXd2y6wXxbzTlZiSPq4d+cX7HRWOtvki1NlrzL7Z59/xGftVqyvWJkorZW7ipXksgKuum3KUXjGqKWDrI2vIx10RwXGVPyRDrI7oOOt9kJSdshKB9m3Xv8+Ye0y7rmurEnguSEaqbVyw9M7TWPJ8dJBH/YI0yLqd9dvVqPBbPV8tHH7ZDuKcUvopIcf9+ixOIGFM0fu4wNzuvr3u7JnnVFI6eDQxxz/LZBSrwAADS9JREFUbYRQQZri29tB8q0BuZd56aDyGYMOAmojaruOWUOnx5WpXwBuVRilg89lDXlo6639v/njI9tu/Uv6jd0Wdpuw/9Xe1h53ZnS9Iem6DfYNtzxjCo4xerBKb2Z8TQddWzrk6aB6O479UohSzEJH/3qOOo1WutNBpbXtD83cDIsYhVtB84lV/njIeAC0Kl4viUVmaU1Rh0c7lphaDiRQ6aDGQlIWcdJBxoC+p4P8I5y9ynX2rGabJztnv+L1WzrItVjjvLSZDUarmALazAaD2Wo2MLc4a+KseybNWnfcsxo5L9NaVbYqezr+TAe9jV2chloTCUrMCdxGCAb0avItHeRd0k4H1f3A6lbrTR3z+wzulxxag3rT0AvCKB20l+QZ1t9/r7XHP7Nu6ZP522E7+tyzqfsdm7r+OvGXa8+tvXr1p1Cmg/TqIKIi46sKzbBIPnz4Zff5mg7KA7NNPBdIq2TfKbgu0p3SL7u1+tc86rRbkW/4NTYhy1q3hZ7PWp17LGLYxhiFb4/yzw0U0Yg+LVX+VRKylvJQaHdw53RglV5uMxzUKltI1O6QJ0meTSSbiOLWayYfTIMZeTPnFNTzoM1xBXnvyapG+ZhqS47lEx/3CDVHjoVWz7+SLqb1ajeRF7joeEh5RzXu0SuXE1h4i4ocSTMCe7Xf+ZNSi0KKozpUMYcfHPy4EQKOcjHJ/ELbyF/t3NOB2RvlevUoTl9Vb8CaEbuQtZ4ZJgcoZw+jdNDhKC2qKDCsvf8fG37Ty9r9jvU3/T2j6/VJXdbkrbl69adr166F9O0g9c5F+dUA+000Fb6pbz08pbJHSPaDtSqyzr34XoOemau+p8zzL6eSGTDtBmIWevrXPOo0W3lG4T0dM0Ynv3qgbwS7c09F8nhX2sYchQe1lFzdKs8w5t+R8/4uU6wTiHSQtlU+EJGsMq2kdwfbpbKbyOjHq3RQaQTvFGQ5Vc0VjFrcUqpP1SXH8olve0Repnzf5OlEmZ3w+mQ4iuqTtaL1xT1yylpblfvGUCMC693v6j2rRiHW5uVPJHAxR54OKt3ul40QYOjFxDiTZC/JaCfoi8Ws3mSrUsd5wvhzUP0zUpsmc/WTG5bV0B+EUTrodJZXVztLq0r6pfa7zdL1zsxuNy7oknI6WcwF29rawurLYu8Jk9fwXhIWj4sA6MSrJ6j278fw39SBsDCEsw7c0OF/K70iyBsBdAbCKB2srnbW1lbX19c6asoGpQy6OaFH8onVUi6IdDCIkA8gHcVm+j1WSI0PK2MiCpyCALRiIwAfCKN0UMwFGxsbLl9uamlpvnKllcwFO346CAAAAAAQjoRROqhHwTEGAAAAACByCJd0EAAAAAAAhASkgwAAAAAAEQ3SQQAAAACAiAbpIAAAAABARKOdDlYBAAAAAIBOjUY6qH4ZAAAAAAB0bvBlMQAAAABAZ0b77WCoLQQAAAAAAAEE6SAAAAAAQESDdBAAAAAAIKJBOggAAAAAENGESzqo+X8r7jFy4s9n/+6GtOuDY4//sBoFozXURviDTjMR34jw6evHZjYIBrMt1GaQ+One2cwGQRA4k7OZDV7OOtgrynsLRdTs5PcptQrUNH2dTih79hK/uw5BDKgRRumg3X5aVEFBXmHhueLigtLSYoej1OksP1t++rbUv8YdeX3gjjt+tfy64JhE4zoM3PhlW/kt8FiNguB36/QSwvAZvKH9F0mpheTqVlZKzUl2zWOF1SirSlnoF9d4va58GTXgN9Ev907dSh+GCNzZzDTV5+FUGurpM0DTDJz3widnitB0kAg6xDL2BEFldJSVkDFL7TmG1ZunWM1P8hHpeM5oypyRj3bqGM5nwi4dVOaC9oq821Nu/+CQsVdGt3syf9Ml6X+DY5Icq1G2bvz3vsFv6WDo9jnSQa+6UQQgg9kmn4nNbPAMRrWwGqUAYDUKRqNnXXosdEcMv6SDgV9XHSMdVO3ElxEC4lvurfd9NH5LXX0GZglFQjYYoemg1SgtXs+pS4RE4ihmrXab2ciMoyT83rQCkVZoZXqYMyNf7dQaznfCKx38zr4l1ba0qDhfygULKux3pfScePC1Xhnd78q86ZdJvwiOPTQqJxaRrXvOdbPRnbjLvjQxGqma/srwOauQHrFVYZ7SfnpSAmG/tDKJFtQs9PRPG2aljdTVSqcDGU9mRJG7HdNX1Nsxd12Wx9hPtAxbVJYR60UfI1JInViNgtHqqRCgt4O0Z21mA+FuIlnVWkgGs03eofhZcRMZ/TAXFXN2zPuov1DNESpVpVlRt8tzvzlLTnHjuOFC3x6RLtBWynav4oTxNNC171izJpDfaF4UUu4r1ibizFG2LjUisDf7XaNnlenIRgyDmBOojRBc3ImUbEVTy1v1DxaYV9i96U+tuCPqiLlEasi0k4xsarPWOZx3hFE6mJT72Yh9A57acV/03pfKyi44neWFlQX3pN4t5oI9M27qMrdLcIxhwgjHrmJie7ryIeobPSkskoFA8UrIP9aRUYQY0XNM8cxrlW8MMubIDy354SVlgLIzSrt/2YsshZF6WrnTAnUHMq2VzY7fubofSNuUozBRs5a8ZmW98lPOyfVPd+0ApYPKdSW5kEx+dCwkl7GK1IeTCRMXqEWlng4qdhn35iprqruC/50p235iguwlp54O+rBHmL/KLZTtJyoMae076oYyDzbaPC0/SzNibCLeHCmHq0ZgL/a7smd9UUj5iBT6mBO4jRA8ZA72Kh0U45auR2/i6xki0Kl6gRdatRNK+uleaacX6aD+/FUvYZQODtzab/yB/gO/vbVnZrfoPWOLKgr6pveZcOCVXhk9elq73pj4q67jRwfHGHXcJ6QiXrmgbhtzS7u3XWC/LOadrMSQ9HHvzi/Y6ax0tgmyw1ll1TL7Z59/xGftVqyvWJkorZW7ipXksgKuum3KUXjGqKWDVNLFsJZtsyvGBCgdZE+KjmPaC0nZISsdZN96/XNh7TLuua6sSeC5IRovD5Qbnt5pGkuOlw76sEeYFlG/u36zGg1mq+ejjdsn21HslxUaqQzhZ9lYnMDCmSP38YE5Xf37XdmzziikdHDoY47/NkKosMrfmfnwdpB8a0DuZV46qHzGoIOA2ojaruPVoJNE5jj0oIG4U2GUDj6XNeShrbf2/+aPj2y79S/pN3Zb2G3C/ld7W3vcmdH1hqTrNtg33PKMKTjG6MEqvZnxNR10bemQp4Pq7Tj2SyFKMQsd/es56jRa6U4Hlda2PzRzsz5iFG4FzSdW+YsvRqSwKl4viUXmYKaDYpxUPZV9TQcZA/qeDvKPcPYq19mzmm2e7Jz9itdv6SDXYo3z0mY2GK1iCmgzGwxmq9nA3OKsibPumTRr3XHPauS8TGtV2ars6fgzHfQ2dnEaak0kKDEncBshGNCrybd0kHdJOx1U9wOrW15Kx5uRz3bqG843wigdtJfkGdbff6+1xz+zbumT+dthO/rcs6n7HZu6/jrxl2vPrb169adQpoP06iCiIuOrCs2wSD58+OWm+poOygOzTTwXSKtk3ym4LtKdymaho3/No067FfmGX2MTsqwl3sYz3v2wOvdYxLCNMQrfHuWfGyiiEX1aqvyrJGQtxfepAUsHrdLLbYaDWmULidod8iTJs4lkE1Hces3kg2kwI2/mnIJ6nrQ5riDvPVnVKB9TbcmxfOLjHqHmyLHQ6vlX0sW0Xu0m8gIXHQ8p76jGPXrlcgILb1FRy1w9Anu13/mTUotCinM7VDGHHxz8uBECjnIxyfxC28hf7dzTgdkb5Xr1KE5fVW/AmBHPTtl65s46QPcpjNJBh6O0qKLAsPb+f2z4TS9r9zvW3/T3jK7XJ3VZk7fm6tWfrl27FtK3gzbGX0srrrBeWMnCt/KbHdYjJPvBWhVZ5158r0HPzFXfU2Yw0H+rRNYnTzHWq0JO/5pHnWYrzyi8p2PG6LJdRt0IdueeiuTxrrSNOQoPaim5ulWeYcy/I+f9XaZYR3H79NijBmNdkQPJklWmlfTuYLtUdhMZ/XiVDiqN4J2CLKequYJRi1tK9am65Fg+8W2PMG49y0LiNKE8yd53jCI6JaNWic64R05Za6ty3xhqRGC9+129Z9UoxNq8/IkELubI00Gl2/2yEQIMvZgYZ5LsuxPaCfpiMas32arUcZ4w/hzUixlx7OTux8Ang2GVDjqd5dXVztKqkn6p/W6zdL0zs9uNC7qknE4Wc8G2traw+rLYe8LkNbyXhMXjIgA68eoJqv37Mfw3dSAsDOGsAzd0+N9KrwjyRgCdgTBKB6urnbW11fX1tY6askEpg25O6JF8YrWUCyIdDCLkg0tHsZl+jxVS48PKmIgCpyAArdgIwAfCKB0Uc8HGxobLl5taWpqvXGklc8GOnw4CAAAAAIQjYZQO6lFwjAEAAAAAiBzCJR0EAAAAAAAhAekgAAAAAEBEg3QQAAAAACCiQToIAAAAABDRaKeDVQAAAAAAoFOjkQ6qXwYAAAAAAJ2b/w/8CReTcHJB2AAAAABJRU5ErkJggg==" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a> Ce répertoire ne contient qu'un script <b>enrsondes.php</b> qui fait deux actions principales :<br />
<ul>
<a href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA1oAAADSCAIAAADcyybhAAAgAElEQVR4nO2deXhU1f3/7/P79um31D5WH6SUamvbb1utYhUEcWrcUEAExB3ZgsvgUjUVoiWIwCiLdRkgC5vsJCERhiUTCKDIoiCEJYRtIDAJWQiZJBOyhyQI+f1xZ+6ce+45996ZzJbM+/W8nzg59yyf87nnfM7n3okqFF2shCAIgiAIgiJWQsgtgCAIgiAIgkIoOh0cOmGJToXcdAiCIAiCoPBUQUnZkdwTO77buZlgx3c7j+SeKCgpC7e2QmFpBamhE5aMtp4cnXFidMaJMdYTrg8Zrg+iRmWcGDphCdUQgiAIgiAIKiytOGE7u23b9vfNa3obF/x88JeSehsXvG9es23b9hO2s+ptE+cvnPB+3KhxRkkT3o9LnL9QT9vvP/746NChZ+64Q9LRoUO///hjlbaMdHBMlu1ntjZRY6wnxA+jNx0TP4y3HBmxIRfpIARBEARBkFLHT51JsWy5PXr+r0esGPDpgcTdTkkDPj3w6xErbo+en2LZcvzUGWbbDRs3vv3v2BdHv/zS2FdNMz9NmL8oYf4i08xPXxr76oujX37737EbNm7ktd2Znp772GP7//SHjD/32PrCkD3vjt/z7vitLwzJ+HOP/X/6Q+5jj+1MT2e2Zb0d3HJKSgdfMa8TP7w89avx89a/vGT7oP9aen2UinQQgiAIgiCIki0vP33T9hufnnN77M51OTXldVfK666cK6vLsZeLn9fl1Pztve03Pj0nfdN2W14+1daamTn21deHPz8yYf6iwzlHKSXMX/T0C6PGvvq6NTNT2fZ7i+X43Xdv7H79nneMJd9upbTnHWPmb288fvfd31ssVNtCZjo41nr8lRkr3pi54v2lW8ZNTnzji9Q353z99JuzpByx16RlSAchCIIgCIJIFZSU7dv349+jE/8Ss21Dbu3Rksvr9tpfMS1PSt+RvOXH2Dlff5qy+2jJ5Q25tX+J2fb36MR9+34sKCkj27717oThz49MSft64VfLZsz+7JPZn23O2vbtd7u+/W7Xtzt2frNjZ0ra18OfH/nWuxOUbXP697d2v+HQrGm2r+ZnDxl8ZsmCvJQVeSkrzixZkD1ksO2r+YdmTbN2vyGnf3+yrSjh/IVyUmI6KGV+/55vET/cOfid24ZNvHP09DtfmvJ/T7w3dMISqmHH1+ZJUVFRUVPWh2bcqKiosQkHQ+6EULndL3PvWJ70y3rT6b1QrW0IgqDI0qkz56Yv3HT9C0s+216RdbJu1Z7CuanftBEkpn/75fqcrJN1n22vuP6FJdMXbjp15pzUdunylc+8OHraJ7M+M8/b/u13bW1t9Q0NU6bP2JixeUNG5vqN1nUbNn1t2TDtk1nPvDh66fKVZNtDn3++55YeWc8OPjJz2pEXX7hcVJTz0osnzJ+eMH+a89KIy0VFR0a8kDNretazg/fc0uPQ559LbUXJ0sG0jZlDJywZlXFMSgejxk4VP9z+mNH1YcRHf3t+ytAJS9I2Zsq9IB3GbiZvDvmN8UahOTLXT46KioqalEHaEOhshholmIMql0d7Rpe19ZMng+ONcu/Xm9KwowljokbPP3o+Y4pWP0gHIQiCgqFjx0/c98bCe6d8v3TfpaX7Lj07Na2mrrGtre2ZDxaPmrZKzAifnZomXu05ac99byw8dvyE1Pa99yc98+LoRUuWvTvhg2ttbaJWrE5JSV+XkrZ2dWr6yuQ1y1asXrx0xTMvjn7v/Ulk28NDhqzrccO+D97ddX/fpqKitra2KzU1h1547tALz12pqWlra2sqKtp9/30/Tvq3pccNh4cMkdqKYqSDL246NsKtPz0dK2aBf3zk1X+8+Xmfj5bf++Gy+z6z8NNB15Ejns2j5x8N+b3RrZAcmUcTxgT/bVbQMh6ue4nl4S9j/OXJjpMOHty83mPk5vUZfhwLgiAI8kXHjx//2eMzXlxa9ElW+SdZ5c/N3JKx6/CMxRsGTF73zn+T29raqusah35kEa++uLToZ4/POH78uNR2+PMjX3397S/mJLz+rxhndW3zlavNV67OTViQuGBJwoLFi5euXLB4Wfz8ReZ5Sca33h3+/Eiy7cE//CGt5592jx+9743oA08Na62pETNCMRdsrak5MHzYj2+98sOb0V/f85eDf/iD1FaUUFDikCSmg/fN2XyrKfXPHy7/84fLf//mnC4Pv/nLx9+94bG3pFeGNz07WUwHybYFJZnikWMpcRSUOPbNHxsVFTV6fk5BSU7CGPKl0NiEbFn9hPljxQuj5+eolkuXouTlGv1bPJ+lS4SyF42WvbNy2c8Zy8GasvS6K1PRocZkLZOJ5mMW7aPs3DRFZppsLsp55bjyoflT3L0xPSMvnJxJO8cb+70Rb3kop6B/dE9bDU8y7pRO5/BWgv674Jf1pjSM5yvmZL3dU64bJDFpk1f3GoIgKEK1Y+/h/+n/8dOLC19NLnlmcWH/eQV3/WfnXbFZ42esvHr12tWr16JnpD30he3ZxYWvJpcMTjr/P/0/Pn36tNj29OnTw54d8frb/540ZXpMbNz4f/3bkrHl8zmJr7357hTTrMnTZnzw4fT3J0/9z5Tpk6d+/FbMxGHPjiDbHrj5Zkuf27cPfeTbJx/8bpBh3xMDWqqrr127du3atZbq6n1PDNz95IM7n3p0x9MDNhp6Hrj5ZqmtKEY6aPh8U5eDdV0O1v3iYN1j/0q6/kDt9QdqH/tXEvWfoVZNB11nFX2KuM5C8hAlcwId5a7zVX//qumgen31sdh9KgdVnxTVOdGnxlx4iYgbKhFh9EalSuKv3tqvX7xZ6781vKUimz7DkyoPAzqdw1gJ/roL7VxvmvaTbXXvKfE5ZHIm210QBEEQRznHbf/z6PR7Pz135yd5vf9rf2je+ScWFv99/HJHZfXl5pZH/xU/KPFc/8TCfl/k95xx9p5ZZ//n0el2u11sa7fbnxz+/KhxRuNbMe9OnPTBh9Pfnzztk0+/nPX53NlfzJvxX/O0Gf+Nm/rJex98+MY7E6Jfe/PJ4c+Tbff16PH1335r7Xvbjsf7fj/0oe8HPl5XXtHU3NLU3FJXXvH9oAH7nn5s1+B/Zj3Q09LzD/t69JDaiqLTwacmLtUjfjrowXOesd+I8A5UTjn9qkw63rztn5Ds2CPqq4zFbssuFF9Z6ckeGEkMzzbN91LkHNU8w0oHvbZfMXcR5Vsx7vJQeTepOWUfPOmlc7grwZu74Jf1pnQ70372ZL3cU7JyfhoNQRAEyVVYWPj/Hpl6xyd598w+9/C880O/Knlpddn9E78uvli5ZssPQz7fNybV8cyy0seTivp+nn/nJ3n/75GphYWFUtsnhj07zvjWWzGxsXFTP/p49qzP534Zv2De/K/iFywxJyz8rznBNOvzSR99/O7ESa+9+e4Tw54l2/7QvfuGf/xx20P37B78wK7H+1eWlFbX1leWlEofdg14bO9Tj+x4/L6MPn/7oXt3qa0oIb+4TFLaxswTOYcpPTFo0OP9H1WWp23MJNvmF1snRUVFRX24TlZYlr/xwyhPOVlH+XlMfDa/XOxn9MJ97e3fo31JY6KioqImW2n7eWMpx3W1ZReuE9OpjSrGHIkfLdVhzVdpm0ZXxBw1PCPV5A2qx3794iwP5eheLxWvPOmlc7grQfdd8Nd6YxqmtJ85WW/3VHFZfvbCUVEeRiUd8eZeQxAERahKLlx44M35t8bsMJgLBi8qeWl12euWyufj94+MnfPkGzPHLjn+r41VY9eUD1964eH4839+77sH3pxfcuGC1DZmwgejXx7/7sRJcVM/+eTTL7+MX5C0ePlXK1KWrExduHTV3KTFs7+Y99HHsyf8Z8rYV9+ImfAB2fbg4MFbe/55x4D7tvz11sKjx8sqL13IL9w7fNje4cMu5BeWVV4qPHo867Y/7x4S9c09fzs4eLDUVpQsHdz6zY4TOYd/Zms7kXNYaPtV7un94199pUeP3/bo8duRL714IufwlowNb75uzLJuPH7k0NZvdsi9oJoOiueT64zxKR10fZbO+7J1k6MmbdTsX5k3EBLru45D5biKsRjzpfpUT2K8SQc1bOPlQ4p0kOEZqqa68/Xm1lrSnQ56vVS0PMk02DvnKFeC7rvgt/Um71nXsldZlqp7ihhXTGGRDkIQBOlRcakj4etd1z+d8Eh84TPLSl/9umLi5uqHJ666UOa8UOZ89P3Vk7bVvrneOWJ12cAFxb9+JiHh613FpQ6prWX9xmHPjnjvgw+nmGbN/mLevPlfLVmZmvL1hjXrNi1PTk9avPzzuUnTZ372/uRpTz33kmX9RrJt3uLFO37/u51P/PPAC4N2DOifl31kz7Ah1Umzahd++v1TQ/Oyj+wY+Pih0cN+GP7Id7fenLd4sdRWlCwdXJ6+QfkW8MEHo/r166csX71uk9wLvPPe9ZIpKioqavSYdqSDZdKRLyEeXZz+3S9jPDAOaUUdyX72WKwpu5GdzdSI3qeDfNs482IkItqemWylneyd/fqlIx30caloe5J5p/Q5h7sS9N8Ff603yjCe/azJerenaCPpd40QBEEQV06n8x/Rc3q+v/3FVRffXO+c/E1tdOL3/5711SuT499ZlWPaWR9jvTQm1dFz4uZ/RM9xOp1U29feePvl8f8S08H4BUuWrlqzZt2mrzdkrkxdO/+rFWI6OM741mtvvK1su++BB3b27Xlw9NDjr7/0Xd+7Hf+d3LRqXktqknPO9J39etneic559dk99/1j3wMPUG3zqXRw/9FTXy5arlP7j54KudMjRbq+TIQgCIIgKMQquVhx0l5yw6CpvT/Y8tYG55Rv68wHmpOy6xYfrk863PrJ7ob3Mi/dF5d1w6CpJ+0lJRcrqLb2/IIhT7/wyutvz/xszpzERYuWrV6R8vWqNeuWrExNWLj0v+aE1958d8jTL9jzC5RtnTbbd7///feGXifeGlXw4b8cn02unj+rZtGnlXOmFZneO/3ey/se7PPd73/vtNmotvnFZYK96CIUljosf23z4brQmwRBEARBkIZKHZVnCsvujv7y5hEJz8Uf/PSHpsTDLfOPtH65//KIpEO3jEy4O/rLM4VlpY5KZtvCouJXxr81/PmREyd9NG/+V/O/WrFgycqEhUvfnzzt6RdGvTL+rcKiYl7b6rNnfzAYdv7frTnPPnF+6rsXZn1QOvs/xab3cl8csvOvf/rBYKg+e5bZFukgBEEQBEGQP1XqcLa0tCzPzH747QXCP2MlPfz2guWZ2S0tLaUOp3rbzVnb3nnv/ahHB0p65733N2dt09O2ePXq/YMGbbnuOkn7Bw0qXr1apS3SQQiCIAiCID+roMRReam2uaWV/H8WN7e0Vl6qLShxhFtb4VxhKQRBEARBEBSxQjoIQRAEQRAU0UI6CEEQBEEQFNESzp6/AEEQBEEQBEWskA5CEARBEARFtJAOQhAEQRAERbSQDkIQBEEQBEW0kA5CEARBEARFtIS8ghJRe7NzpphmxsTG+awpppl7s3OkDikFun+ltu7Y084RNe3ZumOPfnsgCIIgCILCUK50cG92zqQppryz9mvtIO+sfdIUEzNjc/V/zt7WDvLOcftXauuOPZOmmAqLStozI3UKi0omTTEhI4QgCIIgqEPLlQ5OMc08aTt95cpP7dRJ2+kpppnKYaaYZp46febqtWvt1KnTZ5j9M0e05xe0f0bqsucX6LQHgiAIgiAoPCWcyS8+k18cExvX2NTU3NLaTjU2NcXExol9koqJjbvc3PLT1avt1OXmFmb/zBH9MiPf5gtBEARBENRR5EkHmy43t1+NTZd56WDrlZ/ar5bWK/rTQW+NX7/Run6j1S/zhSAIgiAI6ijypIMNjU18Xc49fvLJ4c/lHj/Z0HhZtSb37WBz6xV1Xbjo+Gp58oWLDvVq+tNBdTupCVo2Ztx7/4P33v+gZWOG5hw15wtBEARBENRRJJy2F522F8XExtXVNzJV39CUe/zkI48P7mN46JHHB+ceP1nfwK4pKiY2TuyTVExsXFNzK0+Xm1svXHQkLV4+J3FR0uLlFy46LvMrM/tnjqhipGyCjU2WjdY+hockWTZa6xubdDbXaQ8EQRAEQVB4ypMO1tTVK1XX0Jh7/OSjA4f0/efDff/58Mixr5SVV9bWNzAri+Klgw1NzTw1NjVX19avTls3N2nx3KTFC75aUVJa1niZXVl/OqhiJDlBy0brfQ88ct8Dj3z25bzPvpwnfrZstNY1NOrpAekgBEEQBEEdWp508FJNHaXa+sbc4ycfe2Jov6hH+0U9Oir6tbLyytr6xuraelJUK146WNfQRKq+8TKphsbLl2rqUtIt8QuWxC9YsnDpquILZQ2Nl6lWdQ1N+tNB5YyUE1y/yXr/g/3vf7D/5+Z5jz0x7LEnhn1unieWrN9kra1v1OwE6SAEQRAEQR1annTQWV1Lqra+MffEqQFPPmV46DHDQ48NGPzU9h079x04SMleUFhT10A25KWD1bUNkmrrGx0VTvv5Ikq2vHOLlycnLlqWuGjZ4uXJxRcu1jU0kQ2raxv0p4PUjJQT3JCxWZzdF3MSBjw53DXTJ4d/MSdB/LwhY3NtfaN6P0gHIQiCIAjq0BJs5wpt5wpjYuMqL9VIqq1vOHbSNmjI0w88MkBdi5Ysr6lrINvGxMaJfZKKiY1zVtdJqq5r2Lv/0PyvVqhrycrUogsXa+obyLbM/pkjklZRqq1v3GjdLE7hy3mJ1EwHDXn6y3mJ4ueN1s219Y0qXem0B4IgCIIgKDwliP+IiY3LLy6T5KisPpJ74olhzzzYf5C6FixedrG8imzLSwftRRcllZRV7t57YOHSVepauir1XEFRqcNJttWfDpJWUbOzbMwU7f9iTsITQxnTfGLoM1/MSRA/WzZmOiqreb0hHYQgCIIgqENLEP8RExtXUOIgVXmpNveE7cnhzz38+GBR5vikRUtXUNp34JDDWU025KWD5P8puaSs4vTZ/O9/PEjpuz37Fi9PFrU8Oc1+vrjU4aT+L8v600FqRuTUNlq3PPz44I3WLdIEXx7/1jvvvf/Oe++/PP4tseTJ4c9J1Sov1fJ6QzoIQRAEQVCHlnDq7PlTZ8/HxMYVllZQqqqpP3HqzNBnXnh04JBHBw559Y23KyqrausbKy7VkiotryJbxcTGiX2Sov7jfPnFF4svVpAqd15yVDjXbsxcsjJ1ycrUlalfFxSWlDoqlf9pHGb/zBGVMyKndr6opPFy8yMDnhR14NCR2vrG2vrGA4eOSIWNl5vPF5VU1dSrdKXTHgiCIAiCoPCUJx0sLnMqVV3XaDtz9qnnRoj/1q3xrXedl2oqLtUyK4vipYMqf8BYeMFR7rxk2bRl2eq0ZavTVq9Zd774QqnDyaysPx1UMbK4zFlZXdfccqX/oKGiDh4+WlZZXVZZffDwUamwueVKZXWdej9IByEIgiAI6tDypIMljiqm6hqazpy1P/38yMcHP/X08yPPnLXX1DfyKpc4qnjpoIoRF8oqi0ouJqevX56cnpy+vqjk4sVyJ6+y/nRQxUhRrVd+enzwU6IO5+SWV9WWV9UezsmVCluv/KTZCdJBCIIgCII6tISTeQUn8wpiYuNKK6p5amhqPmvPH/vK62ft+Q1NzSo1SyuqY2LjxD5JMQtJlVU4Sy6Wrd2YWXKxrKzCqVJTsys9MxJ19eq1AU8OF3U093jlpbrKS3VHc49LhVevXtPsRKc9EARBEARB4SlPOnixskZFjZdb2traGi+3qFe7WFnDSwePn7ary1FR1dh02VFRpV5NfzqoaWpbW9v7cR+JsucXOGsanDUN9vwCqbCtrc23+UIQBEEQBHUUedJBR1WdumobLmvWcVTV8dLB3FNnNVVQXKpZR386qGlqy5WfSInpIFXo23whCIIgCII6ilzp4JTpM7O+3V1+qb6dyvp295TpM5XDTJk+M82ScfRkXjuVZslg9s8c0S8z8m2+EARBEARBHUXCiTP5J87k79qbHRMbt3XHnsqaRp+1dceemNi4XXuzxT5Jif2vWbfpyPHTPmvNuk28/nkjtnNGPs8XgiAIgiCoo0iQPu3am/3h9JkxsXE+68PpM1Vyo0D3H4gR/WsPBEEQBEFQGEoI9AAQBEEQBEFQOEvQ/Bd+IQiCIAiCoE4spIMQBEEQBEERLaSDEARBEARBES0hFwAAAAAARDDCWgAAAAAAEMHg7SAAAAAAQEQjtAEAAAAAgAhGuAgAAAAAACIYpIMAAAAAABGNUAYAAAAAACIYWTqYe+z41I9nBe5/8htWmvrxrNxjx3l+iRBXwAnwWPgIvvXWJwAA4C8Eh5vcY8cnTTGVlF68FhmUlF6cNMWUe+y4Q0HkuAJO8BZ4LHDAt0pUfAIAAH7Ekw5O/XhWQWFh65UrkaOCwsKpH89SOiWiXAEnwGPhI/hWv08AAMCPeNLBmNi4urr6psvNkaO6uvqY2DilUyLKFXACPBY+gm/1+wQAAPyIUO4mJjauvqExolRb3xATG1euIKJcASfAY+Ej+Fa/TwAAwI/I0sGauvpIE+/sCblhcEI4Cx6Db0PuEwAA8CNChZuY2Liq6tpIU0xsXIWCSHMFnACPhY/gW50+AQAAPyJLByuqaoKiU4ujo8YuORWs4dTEO3uCbsnhVFP6AdmHmgr7N4kmk8mUtNVOFHZmJ/jgrtCoA3qswzg/1L4t2JpoStxeEGona/sEAAD8iCwddFRe8lG5S8ZGkUzN5FfOWRw9dvEJ38fyq3hnj0+9HUo1mUxrDkkl+9eYTKa0/XrbUjXtWYlJWWc7nBMuOc5uTzAREA7pNIpsjynXatj69lCqSUbqAY0mZ7YlJWyze337ErefCaTPkQ4CAAKNUOkmJjbuYnmVL9o8NSoqesFRT8nhRdFjFh33sbfgKiY2rlKBr644mGJKTEhM3HKm6mJ51cUz2xMSExNMafv0tqVqKks6jBNcHgjuLIKpyPZYYC30t28D78wz2xMSt58K5BBMnwAAgB+RpYMXHE7vlTU5auz8HOalY/PHjp2/6KOoqKioqI8yHM4LOV+Ncb8/HLPomKsao1DRsB0S5FBXeWePT2NlJ5vW7N2/xpSafcHhPJmVmLw/O9m0Zq94df8a6RVF8n53E6LQ5KrparJXeq2RsO2kg+jnzDbpTVJC1rkLDucFx7nNCYmbs9YQnXgnfzrhzLaEhG0nec6hP2cnm9Ykp1LTYRZSc+T2sJdu2HE9dm4z8c7QvWYYbjyZlSguOVF7U93TZExcVuieO3MghYsYazXsfStzl0snsxJNMh/qdVdC1jmW/wnviXchWD4BAAA/IjjdxMTG5ReXea3shaNGL9zHvnokfnRU1GSr+1frpKgP13kujYnP5hVSDdsrKRdUXoqJjXMq8NEVxT+uNKXsln7Gbznq+lyWf2JLvCkh44RUTfwsfZDaMj/wCm0Z8WJzW0a8ybT6R5/941cnlO1e7ToL4zNtCucop2Na+YPSLcpCao6sHk5siZd97ugeI8Sejg9LhbnkmAMpHa6yVsPWtz+uNMkQl8fRzART/JajxbaMeHKlablr9Y9sV5/YEh+/5ShjnQfWJwAA4Edk6WBBicNrZS8aPWbRPvbVnIQxYxOy3b9umhIlZ9ImTiHV0B8SBIFZzjt7fBpl/ypT6u4Sx9HMhPj4hPjMM1JJwQ+ppuT9Us3dyaZVP1CF7pqMDw5ZP3JW/eAoKDmTEZ+QcdJ35/jVCR7tTna9M+FOR1bo2J1skjlNVkjNUdVLncRjlPFq83V7yXE0U1x4nImzlxxzILmLmA07gG9la0npapevdLmLv8ZOZsXHZx1V6ScwPgEAAD8iSwcLSyu81+a4qLGJh5iXjiaOIS5lfBT14Wa6DrOQahhI8c4en3o7sMqUuof5YV+qKfmAVHNPsmnVPqqQ35bfj1t5GQmJGafCxAm0XJNlTkdWyKwpFVJzVPVS5/DYvlSThseIz6e2xptS95QeWGVyz4s5ceaSYw8kdxGvYbj7VraWSOVuTjSZTPGb81gTZM6av8ZObY1P2Jqr0k9gfAIAAH5EqHITExtXXOb0QdkLx0ZFjU06QhRaPxq98Fhx2bGkMWR51uSoqMlWT6vJVl4h1TCAiomNq1LgqyuyV5vW/MAssW2LNyVm2pzF5Gfbtnip/o9rTK7PUidkb2ShafWPrv5PbElc/aOzuOxcZoK785A74cc1ppRslk+yV0seYEyWrMAspOao7qVO4TGyXOYxpRudxWXOH1JMq1PIrlgTJ5ec9Jk9kNxF3LUa3r5lbEn3FBK2nSg7l5kg2c9zlzSX7NUp2Wz/k84Jok8AAMCPyNLBEkeVj8pZMkb2le/UTY6qEsfx+WOj5+fwqol1mIWKhgET7+zxqbeDyaa0H3glZ7bHu78/St7vqnAyK9H9BV2au+ZBxQduPyZXoT0zITHzTJg4wZ4p+4+meAzjTNaD2y3MQmqOWl7qFB7zfPHo8RjTjVUljqqS/Wnk0uJMnGiekBjvLmQNRLuIPW64+1a2lkT/nMxKNMnWiSk+y85zF1koVmP6weXA1IPB9AkAAPgR4ZKbmNi40orqSFNMbNwlBZHmitA54XCyKW2frsLwUmdYNgfSTInbT4XcjE7p26D4BAAA/IgsHbxYWRNp4p09ITcsMpxwOMWUvk9XYXipwy6bgi2J0ourMHVyh/VtsH0CAAB+RJYOOqrqIk28syfkhsEJ4Sx4DL4NuU8AAMCPCNVupn0ye//hY+WX6iNH+w8fm/bJ7GoFEeUKOAEeCx/Bt/p9AgAAfsSTDtpOn4mJjcvOOVFZ0xgJys45ERMbZzt9RumUyHEFnACPhY/gW698AgAAfkSoITh9Jm/aJ7NjYuMiQdM+mX36TF4NhwhxBZwAj4WP4FtvfQIAAP5C0K4CAAAAAAA6L0gHAQAAAAAiGqSDAAAAAAARDdJBAAAAAICIRsgFAAAAAAARjBJXQqAAACAASURBVNACAAAAAAAimIhLB3Nzcy9duhRqK7iEuXmgg4J1BQDwltzcXIvFEmorgB/Qcx+RDoYXYW4e6KBgXQEAvEVMBy+Cjo+udLAuwhDPxVBbwSXMzQMdFKwrAIC3IB3sNFgsFs3bjXQwvAhz80AHBesKAOAtSAc7DUgHGYT5uRjm5oEOCtYVAMBbxHSwFHR8dKWDtRGGeC6G2gouYW4e6KBgXQEAvAXpYKfBYrFo3m6kg+FFmJsHOihYVwAAbxHTwQug46MrHfTqP1o9Z+5cPfLHfx973cvCy+u0q+V8ep9w36c5+vsVz0Xf7eIiGazTcjbem7fuZUFQdUG77AGdA78ue6woACICMR0sCSCrRwujV/u5ZiCatwdp6PbY8IPpXuFe0w8+G2GxWDRvt1DtDXPmzm1g0dzc3NLS0tTU1NDQMGfuXFbTtS8LgiC8vFal95zZffvOzvHGHu9bVIvnIueiDiO5rH3Zx4YyWOaJVslxTdvlAFU/+Mcw0KFp77L3YacBADo4YjpYTPO96V7iMBq9SlFBP6tGt699+A2kMrTvNnxvuvde0/ftMcJisWjebuGSN4jp4IbM7aSyD+cuS9s9afY6+/kLjY2Nc+bOZbRcO04Yt3btOGHcWn7vR2b37Tv7iFcGeY94LrLRY6R6Y9/tcqFmno9D+Mcw0KFp77IPyt4EAIQV/HTQk5ysGi20I1OJqHTwe9Po9uV07cBisWjebh/TwUNHT4k6nGurulQ74l/LHh+VsH1XblNTEzMddB021JlzZHZfz9uutZ5fiKpHZvclm6wdJ7hOJVlbL84plXORZeTaccK4ceOogbiFa2UffDHSm3SQ6F0gLtCDMq313YGgI+Llste1N12N6RXIWW8AgI6GmA4W0eyZfu+90/e4f1s5Shi10lU4fZQgCIIwaqVY7mbUSqKpu/De6XvExqNGkSXySp62rmE4TZQ9U+hvJQ1EflbMTmM42fRJB/DG3TP9XkE2rrtb5kCaoyvQlQ5WeQOVDh45Zissvrhx29EBoxLGT0otK3OIXxbTzQ7P6tt31uGqqqqqr8cJrk/053FfE9XEq+O+ln3gFcqaaSKei4wLXCOlkaRyXiFlm2KC7TFP1jPLeO6ghLWyaj46EHREvF/2Ovbm4Vl9GU2Y6w0A0PEQ08FCmj3Teveetkf6LIxa4fogfnIXS3VWjHJ9lj4UFhauGDVqRWHhilFSI6knaihX4YpRng/KJtJVyjwJ/a3IQumzfHa6hiOnT82L3dztM9IRPAspN2pjsVg0b7fg9AYpHTyVl3++uPTUGXtdfUP0hFWDxiTt+MF2zm4X00Gq1cGZffvOPEh/To8WotO59YjL6dGCWCxrK4fqSQXxXFSWs42UW+m2RL3Q/UE5wXaYpzTGVUD5gDEoWeSeWTscCDoi3i17nXtTXo1VKmsGAOhYiOngeZrd03p7zo7e03a7C90fz58/v2KkMHLFeeo3eaGiHtHDipHE6SRWkGqymsjqe9poDMRuRdaUPitmpz6cbKaKafObi1c8IzFrMtyojcVi0bzdQqU3iOngvuwj2UfzkzccqLp06Zs9pwZHLzD+J7W5ufnUKZuYDsobZc/sK59Q35nZlZWV6dFCdDpdUbxUKb+cPbOvEJ1emR4tuC8r2+pGPBcVxRwj5SO5f1EvZNZqp3nyoaTfPL+qDEoWuV3cDgeCjoh3y17n3lSsR0WprBkAoGMhpYMFBQXEz13TeveeuqtAXr57au/e03a7S5aPFEaukK6uGCmMXF5wfsVIYeRyeStXaiPrYflIQRi53FVn+UjXZ6mmVEJYwuiZ+qm/FVlT+qw2O8ZPWc/kHJVXZT93Te0tCELvqbvUamqOzvppsVg0b7dQWVlZUVGh86eYDhYUFsVMXztoTNLRk8VvxKUNeXnh1l2nmpqa7PkFUjroaZUeLfSZke0pyZ7ZV4hOq6jMntlH6DMzWyxPj45Oq8ye2UeITq90l3g+V6ZFC9HR0UJ0WqXnqhCd7rqaPaOP9Fnzp3QuysrTooW+M7M9Jdkz+oj9p0UL0Wmu8rRooe+MbMq29GjXLKSa7qvZM/q66ldWVKRFR6frsVA0j3NV5pOKtGhB6jMtWhBHV3pV1ip7Rh/JWiE6zdVz9sy+0mf87JQ/2euqnXuTXOGez8z1FnoP4Cd+4qe3P8V0sIBm19TevafuUi3cNbW34P5V+kwWFiwfOXK5lG/JeiDL3KkhUcpqQtQTS6XPbvS3Wj5SMtJznZqy1nC7pvaWrsvqqjZ3jcxt7KrJcKM2FotF844LFd4gpoNHjh4rKCp/Yuz8weMWDHl54SuxKc0trQ0NDUXFxWI6SDZxZUnMouwZfdxvJfrMyBavCIKY2MjbpUW7iiWItoJiBBWkc1GfkWmyr2PTCGsYheJHojN6gso69MhM83hmeuwQk2WNQcVroqd9dyDoiHi57HXvTaKaYiNUyNYbAKCjIaaD+TQ7p/buPXWnVuHOqdJXyiOXMQp7T92Zn79spOeip4dl0nekI0e6KyxTfJAPSvRMDujGi1aeMs/oarNjDcfsRK35zqm9iX6WjXT5hzMQ141ML+Xn5+eL6aA6Qrk3iOngjwcOVjhrvlj87ZPjFg59ZdGm7cfE/+jgxYsXxXTQqz6DjHgu6q6eNlYYm6ar0D94aR4AusC6AgB4CycdBB0Pi8Wiebt9SQcPHjp89uy588XlXy7+Zt6y7+rqm5xVVZWVzvLyCqSD7QTHNggEWFcAAG8R00G73X7u3Dn87NA/daWDDoejrKxM50/y/0rS2NjY0tLS3Nzc2NhI/h9K5syd61WfQf4pnovhYAnzp2heOFiCn53pJ9YVfuInfnr7U0wHz4GOj8Vi0bzjQpk36Px/FnvVZ5CRzsXwJMzNAx0UrCsAgLeI6eBZ0PER00F1hIsRhnguhtoKLmFuHuigYF0BALwF6WCnwWKxaN5upIPhRZibBzooWFcAAG9BOthpQDrIIMzPxTA3D3RQsK4AAN4ipoM7QMdHVzr4Y4QhnouhtoJLmJsHOihYVwAAbxHTwVBbAfyAnvsotAEAAAAAgAhGaAUAAAAAAJ2XqqoqpIMAAAAAAJEL0kEAAAAAgIgG6SAAAAAAQESDdBAAAAAAIKIJl3TwlmdM6uoxcuLPZ//uhrTrg2OP/7AaBaM11Eb4g04zEd+I8Onrx2Y2CAazLdRmkPjp3tnMBkEQOJOzmQ1ezjrYK8p7C0XU7OT3KbUK1DR9nU4oe/YSv7sOQQyoEUbpoN1+WlRBQV5h4bni4oLS0mKHo9TpLD9bfvq21L/GHXl94I47frX8uuCYROM6DNz4ZVv5LfBYjYLgd+v0EsLwGbyh/RdJqYXk6lZWSs1Jds1jhdUoq+qxkFgN7fSO1+vKlxsS8Jvol3unbqUPQwTubGaa6vNwKg319BmgaQbOe+GTM0VoOsgOX54gqIyOshIyZqk9x7B68xSr+Uk+Ih3PGU2ZM9ITpX1u6Bthlw4qc0F7Rd7tKbd/cMjYK6PbPZm/6ZL0v8ExSY7VKHO9/943+C0dDN0+RzroVTeKAGQw2+QzsZkNnsGoFlajQGR9RqNnXRLvY6T61LL1xdzAr6uOkQ6qduLLCAHxrftsUjjU99H4LXX1GZglFAnZYISmg8zwRYREIqaxVrvNbGTGURJ+b1qBiLu/JOOZ2SBjRnqitM8NfSS80sHv7FtSbUuLivOlXLCgwn5XSs+JB1/rldH9rsybfpn0i+DYQ6NyYhEPB55z3Wx0PyfIvjQxGqmaut+6aMBZhfSIrQrzlPbTkxII+1kvn6hZ6OmfNsxKG6mrlU4HMp6liCJ3O6avqLdj7rosj+l7YlPZvrIV5vE1I6JJnViNgtHqqaAViXyB0afNbCDcTSSrWgvJYLbJOxQ/K24iox/momJOjHkf9ReqOUKlqjQr6naRMZy55BQ3jhsu9O0R6QJtpWz3Kk5CTwNd+441awL5jeZFIeW+Ym0izhxl61IjAnuz3zV6VpmObMQwiDmB2gjBxR2+ZCuaWt6qf7DAvMLuTX+uzB1Rx4MtMyAThSqRTb2hPwijdDAp97MR+wY8teO+6L0vlZVdcDrLCysL7km9W8wFe2bc1GVul+AYw4QRjl3FxPZ05UPUN3pSWCQDgeKVkH+sI6MIMaLnmOKZ1yrfGGTMkR9a8sNLygBlZ5R2/6RhSiP1tHKnBeoOZFormx2/c3U/kLYpR2GiZi15zcp45ceYk+uf7tqc1K1dTxrMdSW5kOxex0JyGatIfTiZMHGBWlTq6aBil3FvrrKmuiv435my7ScmyF5y6umgD3uE+avcQtl+osKQ1r6jbigzCaHN0/KzNCPGJuLNkXK4agT2Yr8re9YXhZSPSKGPOYHbCMFD5mCv0kExbul69Ca+niECnaoXeHFcO6FkBmRZISeyaTf0B2GUDg7c2m/8gf4Dv721Z2a36D1jiyoK+qb3mXDglV4ZPXpau96Y+Kuu40cHxxh13CekIl65oNYKc0u7t11gvyzmnazEkPRx784v2OmsdLYJssNZZa8y+2eff8Rn7Vasr1iZKK2Vu4qV5LICrrptylF4xqilg1TSxbCWbbMrKiiq+iG2cwMcHW+1F5KyQ1Y6yL71+vcJa5dxz3VlTQLPDdF4eaDc8PRO01hyvHTQhz3CtIj63fWb1WgwWz0fbdw+2Y5i3BI66eHHPXosTmDhzJH7+MCcrv79ruxZZxRSOjj0Mcd/GyFUkKb49naQfGtA7mVeOqh8xqCDgNqI2q5j1tD5KOpbQy8Jo3TwuawhD229tf83f3xk261/Sb+x28JuE/a/2tva486MrjckXbfBvuGWZ0zBMUYPVunNjK/poGtLhzwdVG/HsV8KUYpZ6Ohfz1Gn0Up3Oqi0tv2hmZv1EaNwK2g+scofDxkPgFbF6yWxyEx/zeWHpaWWAwlUOqixkJRFnHSQMaDv6SD/CGevcp09q9nmyc7Zr3j9lg5yLdY4L21mg9EqpoA2s8FgtpoNzC3Omjjrnkmz1h33rEbOy7RWla3Kno4/00FvYxenodZEghJzArcRggG9mnxLB3mXtNNBdT+wutV6U8cMyHqitM8NfSCM0kF7SZ5h/f33Wnv8M+uWPpm/Hbajzz2but+xqeuvE3+59tzaq1d/CmU6SK8OIioyvqrQDIvkw4dfdp+v6aA8MNvEc4G0Svadgusi3Sn9slurf82jTrsV+YZfYxOyrHVb6Pms1bnHIoZtjFH49ij/3EARjejTUpDHKSIJlNUiL/gpqHOiolV6uc1wUKtsIVG7Q54keTaRbCKKW6+ZfDANZuTNnFNQ5xM6yxXkvSerGuVjqi05lk983CPUHDkWWj3/SrqY1qvdRF7gouMh5R3VuEevXE5g4S0qciTNCOzVfudPSi0KKfKLUMUcfnDw40YIOKzwRfiFtpG/2rmnA7M3yvXqUZy+qt6AGZDZUVoe2bxo6A/CKB10OEqLKgoMa+//x4bf9LJ2v2P9TX/P6Hp9Upc1eWuuXv3p2rVrIX076HlrTL86Jq6wXljJwrfymx3WIyT7wVoVWedefK9Bz8xV31NmMNB/q0TWJ08x1qtCTv+aR51mK88ovKdjxujkVw/0jWB37qlIHu9K25ij8KCWkqtb5RnG/Dty3t9linUUxqj6RgeMdeUZyF1B4Sy26WT+QblUdhMZ/XiVDiqN4J2CXrlI+2URZYWsXHXJsXzi2x6RlynfN3k6UWYnvD4ZjqL6ZK1ofXGPnLLWVuW+MdSIwHr3u3rPqlGItXn5EwlczJGng0q3+2UjBBhe+CLOJNl3J7QT9MViVm+yVanjPGH8Oaj+GalNk9ybuhv6gzBKB53O8upqZ2lVSb/UfrdZut6Z2e3GBV1STieLuWBbW1tYfVnsPWHyGt5LwuJxEQCdePUE1f79GP6bOhAWhnDWgRs6/G+lVwR5I4DOQBilg9XVztra6vr6WkdN2aCUQTcn9Eg+sVrKBZEOBhHyAaSj2Ey/xwqp8WFlTESBUxCAVmwE4ANhlA6KuWBjY8Ply00tLc1XrrSSuWDHTwcBAAAAAMKRMEoH9Sg4xgAAAAAARA7hkg4CAAAAAICQgHQQAAAAACCiQToIAAAAABDRIB0EAAAAAIhotNPBKgAAAAAA0KnRSAfVLwMAAAAAgM4NviwGAAAAAOjMaL8dDLWFAAAAAAAggCAdBAAAAACIaJAOAgAAAABENEgHAQAAAAAimnBJBzX/b8U9Rk78+ezf3ZB2fXDs8R9Wo2C0htoIf9BpJuIbET59/djMBsFgtoXaDBI/3Tub2SAIAmdyNrPBy1kHe0V5b6GImp38PqVWgZqmr9MJZc9e4nfXIYgBNcIoHbTbT4sqKMgrLDxXXFxQWlrscJQ6neVny0/flvrXuCOvD9xxx6+WXxcck2hch4Ebv2wrvwUeq1EQ/G6dXkIYPoM3tP8iKbWQXN3KSqk5ya55rLAaZVU9FpKroX1Ge72ufLkhAb+Jfrl36lb6METgzmamqT4Pp9JQT58BmmbgvBc+OVOEpoNE0CGWsScIKqOjrERX9OP05ilW85N8RDqeM5oyZ8SeJrehu1sdw/lM2KWDylzQXpF3e8rtHxwy9srodk/mb7ok/W9wTJJjNcrumf/eN/gtHQzdPkc66FU3igBkMNvkM7GZDZ7BqBZWo0BkfUajZ11KFtrMRmZPvpkb+HXVMdJB1U58GSEgvnUfFgqH+j4av6WuPgOzhCIhG4zQdNBqlBav59QlAhlxFLNWu57ox+9NKxBx95dkPDMbZMyIWagYTWMufr6h4ZUOfmffkmpbWlScL+WCBRX2u1J6Tjz4Wq+M7ndl3vTLpF8Exx4alROLyNY957rZ6E7cZV+aGI1UTX9l+JxVSI/YqjBPaT89KYGwX/HyyWC2UbPQ0z9tmJU2UlcrnQ5kPIQRRe52TF9Rb8fcdVke0/Oop7LvqRXm8TUjCkidWI2C0eqpwFoDKgPqgtGnzWwg3E0kq1oLyWC2yTsUPytuIqMf5qJiTox5H/UXqjlCpSqRictuFxn8mUtOceO44ULfHpEu0FbKdq/iJPQ00LXvWLMmkN9oXhRS7ivWJuLMUbYuNSKwN/tdo2eV6chGDIOYE6iNEFzcOZNsRVPLW/UPFphX2L3pT624I+p4sCWyQGYhL7Kx5uL35+gwSgeTcj8bsW/AUzvui977UlnZBaezvLCy4J7Uu8VcsGfGTV3mdgmOMUwY4dhVTGxPVz5EfaMnhUUyECheCfnHOjKKECN6jimeea3yjUHGHPmhJT+8pAxQdkZp9y979a0wUk8rd1qg7kCmtbLZ8TtX9wNpm3IUJmrWktesjFd+jDm5/umuLa8qroj2ri7mupJcSCY/OhaSy1hF6sPJhIkL1KJSTwcVu4x7c5U11V3B/86UbT8xQfaSU08HfdgjzF/lFsr2ExWGtPYddUOZSQhtnpafpRkxNhFvjpTDVSOwF/td2bO+KKR8RAp9zAncRggeMgd7lQ6qRz9mb/JnGlUv8OK4dkLJfMcnK1RGNu5c9OevegmjdHDg1n7jD/Qf+O2tPTO7Re8ZW1RR0De9z4QDr/TK6NHT2vXGxF91HT86OMao4z4hFfHKBbVWmFvave0C+2Ux72QlhqSPe3d+wU5npbNNkB3OKnuV2T/7/CM+a7difcXKRGmtImvids70A9M25Sg8Y9TSQSrpYljLttkVTlhVA/ZlMR2jtBeSskNWOsi+9fr3CWuXcc91ZU0Czw3ReHmg3PD0TtNYcrx00Ic9wrSI+t31m9VoMFs9H23cPtmOYtwSOunhxz16LE5g4cyR+/jAnK7+/a7sWWcUUjo49DHHfxshVJCm+PZ2kHxrQO5lXjqofMagg4DaiNquY9bQ6XFFJA/EnQqjdPC5rCEPbb21/zd/fGTbrX9Jv7Hbwm4T9r/a29rjzoyuNyRdt8G+4ZZnTMExRg9W6c2Mr+mga0uHPB1Ub8exXwpRilno6F/PUafRSnc6qLS2/aGZm18Ro3AraD6xyh8PGfmcVfF6SSwysyxr5wpTy4EEKh3UWEjKIk46yBjQ93SQf4SzV7nOntVs82Tn7Fe8fksHuRZrnJc2s8FoFVNAm9lgMFvNBuYWZ02cdc+kWeuOe1Yj52Vaq8pWZU/Hn+mgt7GL01BrIkGJOYHbCMGAXk2+pYO8S9rpoLofWN1qPXgzv8/gfsmhOWh7n/PZhFE6aC/JM6y//15rj39m3dIn87fDdvS5Z1P3OzZ1/XXiL9eeW3v16k+hTAfp1UFERcZXFZphkXz48MtN9TUdlAdmm3gukFbJvlNwXaQ7pV92a/WvedRptyLf8GtsQpa1bgs9n7U691jEsI0xCt8e5Z8bKKIRfVqq/KskZC3PWxbSmnYtME5UtEovtxkOapUtJGp3yJMkzyaSTURx6zWTD6bBjLyZcwrqedLmuIL0NlnVKB9TbcmxfOLjHqHmyLHQ6vlX0sW0Xu0m8gIXHQ8p76jGPXrlcgILb1GRI2lGYK/2O39SalFIkV+EKubwg4MfN0LAUS4mmV9oG/mrnRv9mL1RrleP4vRV9QasGbEL6aXCmUuA7lMYpYMOR2lRRYFh7f3/2PCbXtbud6y/6e8ZXa9P6rImb83Vqz9du3YtpG8HbYy/llZcYb2wkoVv5Tc7rEdI9oO1KrLOvfheg56Zq76nzGCg/1aJrE+eYqxXhZz+NY86zVaeUXhPx4zRya8e6BvB7txTkTzelbYxR+FBLSVXt8ozjPl35Ly/yxTrSF3pt0YdxroiBmqVJatMK+ndwXap7CYy+vEqHVQawTsFWU5VcwWjFreU6lN1ybF84tsekZcp3zd5OlFmJ7w+GY6i+mStaH1xj5yy1lblvjHUiMB697t6z6pRiLV5+RMJXMyRp4NKt/tlIwQYejExziTZdye0E/RFP1ZvslWp4zxh/Dmo/hmpTZO5+uWvBAKTtIdROuh0lldXO0urSvql9rvN0vXOzG43LuiScjpZzAXb2trC6sti7wmT1/BeEhaPiwDoxKsnqPbvx/Df1IGwMISzDtzQ4X8rvSLIGwF0BsIoHayudtbWVtfX1zpqygalDLo5oUfyidVSLoh0MIiQDyUdxWb6PVZIjQ8rYyIKnIIAtGIjAB8Io3RQzAUbGxsuX25qaWm+cqWVzAU7fjoIAAAAABCOhFE6qEfBMQYAAAAAIHIIl3QQAAAAAACEBKSDAAAAAAARDdJBAAAAAICIBukgAAAAAEBEo50OVgEAAAAAgE6NRjqofhkAAAAAAHRu8GUxAAAAAEBnRvvtYKgtBAAAAAAAAQTpIAAAAABARIN0EAAAAAAgokE6CAAAAAAQ0YRLOqj5fyvuMXLiz2f/7oa064Njj/+wGgWjNdRG+INOMxHfiPDp68dmNggGsy3UZpD46d7ZzAZBEDiTs5kNXs462CvKewtF1Ozk9ym1CtQ0fZ1OKHv2Er+7DkEMqBFG6aDdflpUQUFeYeG54uKC0tJih6PU6Sw/W376ttS/xh15feCOO361/LrgmETjOgzc+GVb+S3wWI2C4Hfr9BLC8Bm8of0XSamF5OpWVkrNSXbNY4XVKKuqtNBqbO9K8Hpd+XJDAn4T/XLv1K30YYjAnc1MU30eTqWhnj4DNM3AeS98cqYITQeJoEMsY08QVEZHWQkZs9SeY1i9eYrV/CQfkY7njKbMGbGnyW3oqaanoW+EXTqozAXtFXm3p9z+wSFjr4xu92T+pkvS/wbHJDlWo8z1/nvf4Ld0MHT7HOmgV90oApDBbJPPxGY2eAajWhApntUoGI2edUlZaDMbDAZD+9PBwK+rjpEOqnbiywgB8a37bFI41PfR+C119RmYJRQJ2WCEpoNWo7R4PacuERKJo5i12m1mIzOOkvB70wpE3P0lGc/MBhkzYhbq6U5XQ98Ir3TwO/uWVNvSouJ8KRcsqLDfldJz4sHXemV0vyvzpl8m/SI49tConFjEw4HnXDcb3c8Jsi9NjEaqpu63LhpwViE9YqvCPKX99KQEwn5pBxEtqFno6Z82zEobqauVTgcynqWIInc7pq+opzN3XZbH9D2xqWxf2Qrz+JoR0aROrEbBaPVUkK0B8Zd2h39GBzazgXA3kaxqLSSD2SbvUPysuImMfpiLiulJ5n3UX6jmCJWq0qyo20UGf+aSU9w4brjQt0ekC7SVst2rOAk9DXTtO9asCeQ3mheFlPuKtYk4c5StS40I7M1+1+hZZTqyEcMg5gRqIwQXd+ojW9HU8lb9gwXmFXZv+oMld0QdD7ZEMscslEc2LZuYvflOGKWDSbmfjdg34Kkd90Xvfams7ILTWV5YWXBP6t1iLtgz46Yuc7sExxgmjHDsKia2pysfEhTncqv8mzt3q8B+WUyM6DmmeOa1yjcGGXPkh5b88JIyQNkZpd0/aZjSSD2t3GmBugOZ1spmx+9c3Q+kbcpRmKhZS16zcl/5ycpc/3TXluWQ3kY4Dsx1JbmQTH50LCSXsYrUh5MJExeoRaWeDip2GffmKmuqu4L/nSnbfmKC7CWnng76sEeYv8otlO0nKgxp7TvqhjKTENo8LT9LM2JsIt4cKYerRmAv9ruyZ31RSPmIFPqYE7iNEDxkDvYqHRTjlq5Hb+LrGSLQqXqBF8e1wy3zfaWsUJEOKp4MNHprD2GUDg7c2m/8gf4Dv721Z2a36D1jiyoK+qb3mXDglV4ZPXpau96Y+Kuu40cHxxh13HdIEa9cUGuFuaXd2y6wXxbzTlZiSPq4d+cX7HRWOtvki1NlrzL7Z59/xGftVqyvWJkorZW7ipXksgKuum3KUXjGqKWDrI2vIx10RwXGVPyRDrI7oOOt9kJSdshKB9m3Xv8+Ye0y7rmurEnguSEaqbVyw9M7TWPJ8dJBH/YI0yLqd9dvVqPBbPV8tHH7ZDuKcUvopIcf9+ixOIGFM0fu4wNzuvr3u7JnnVFI6eDQxxz/LZBSrwAADS9JREFUbYRQQZri29tB8q0BuZd56aDyGYMOAmojaruOWUOnx5WpXwBuVRilg89lDXlo6639v/njI9tu/Uv6jd0Wdpuw/9Xe1h53ZnS9Iem6DfYNtzxjCo4xerBKb2Z8TQddWzrk6aB6O479UohSzEJH/3qOOo1WutNBpbXtD83cDIsYhVtB84lV/njIeAC0Kl4viUVmaU1Rh0c7lphaDiRQ6aDGQlIWcdJBxoC+p4P8I5y9ynX2rGabJztnv+L1WzrItVjjvLSZDUarmALazAaD2Wo2MLc4a+KseybNWnfcsxo5L9NaVbYqezr+TAe9jV2chloTCUrMCdxGCAb0avItHeRd0k4H1f3A6lbrTR3z+wzulxxag3rT0AvCKB20l+QZ1t9/r7XHP7Nu6ZP522E7+tyzqfsdm7r+OvGXa8+tvXr1p1Cmg/TqIKIi46sKzbBIPnz4Zff5mg7KA7NNPBdIq2TfKbgu0p3SL7u1+tc86rRbkW/4NTYhy1q3hZ7PWp17LGLYxhiFb4/yzw0U0Yg+LVX+VRKylvJQaHdw53RglV5uMxzUKltI1O6QJ0meTSSbiOLWayYfTIMZeTPnFNTzoM1xBXnvyapG+ZhqS47lEx/3CDVHjoVWz7+SLqb1ajeRF7joeEh5RzXu0SuXE1h4i4ocSTMCe7Xf+ZNSi0KKozpUMYcfHPy4EQKOcjHJ/ELbyF/t3NOB2RvlevUoTl9Vb8CaEbuQtZ4ZJgcoZw+jdNDhKC2qKDCsvf8fG37Ty9r9jvU3/T2j6/VJXdbkrbl69adr166F9O0g9c5F+dUA+000Fb6pbz08pbJHSPaDtSqyzr34XoOemau+p8zzL6eSGTDtBmIWevrXPOo0W3lG4T0dM0Ynv3qgbwS7c09F8nhX2sYchQe1lFzdKs8w5t+R8/4uU6wTiHSQtlU+EJGsMq2kdwfbpbKbyOjHq3RQaQTvFGQ5Vc0VjFrcUqpP1SXH8olve0Repnzf5OlEmZ3w+mQ4iuqTtaL1xT1yylpblfvGUCMC693v6j2rRiHW5uVPJHAxR54OKt3ul40QYOjFxDiTZC/JaCfoi8Ws3mSrUsd5wvhzUP0zUpsmc/WTG5bV0B+EUTrodJZXVztLq0r6pfa7zdL1zsxuNy7oknI6WcwF29rawurLYu8Jk9fwXhIWj4sA6MSrJ6j278fw39SBsDCEsw7c0OF/K70iyBsBdAbCKB2srnbW1lbX19c6asoGpQy6OaFH8onVUi6IdDCIkA8gHcVm+j1WSI0PK2MiCpyCALRiIwAfCKN0UMwFGxsbLl9uamlpvnKllcwFO346CAAAAAAQjoRROqhHwTEGAAAAACByCJd0EAAAAAAAhASkgwAAAAAAEQ3SQQAAAACAiAbpIAAAAABARKOdDlYBAAAAAIBOjUY6qH4ZAAAAAAB0bvBlMQAAAABAZ0b77WCoLQQAAAAAAAEE6SAAAAAAQESDdBAAAAAAIKJBOggAAAAAENGESzqo+X8r7jFy4s9n/+6GtOuDY4//sBoFozXURviDTjMR34jw6evHZjYIBrMt1GaQ+One2cwGQRA4k7OZDV7OOtgrynsLRdTs5PcptQrUNH2dTih79hK/uw5BDKgRRumg3X5aVEFBXmHhueLigtLSYoej1OksP1t++rbUv8YdeX3gjjt+tfy64JhE4zoM3PhlW/kt8FiNguB36/QSwvAZvKH9F0mpheTqVlZKzUl2zWOF1SirSlnoF9d4va58GTXgN9Ev907dSh+GCNzZzDTV5+FUGurpM0DTDJz3widnitB0kAg6xDL2BEFldJSVkDFL7TmG1ZunWM1P8hHpeM5oypyRj3bqGM5nwi4dVOaC9oq821Nu/+CQsVdGt3syf9Ml6X+DY5Icq1G2bvz3vsFv6WDo9jnSQa+6UQQgg9kmn4nNbPAMRrWwGqUAYDUKRqNnXXosdEcMv6SDgV9XHSMdVO3ElxEC4lvurfd9NH5LXX0GZglFQjYYoemg1SgtXs+pS4RE4ihmrXab2ciMoyT83rQCkVZoZXqYMyNf7dQaznfCKx38zr4l1ba0qDhfygULKux3pfScePC1Xhnd78q86ZdJvwiOPTQqJxaRrXvOdbPRnbjLvjQxGqma/srwOauQHrFVYZ7SfnpSAmG/tDKJFtQs9PRPG2aljdTVSqcDGU9mRJG7HdNX1Nsxd12Wx9hPtAxbVJYR60UfI1JInViNgtHqqRCgt4O0Z21mA+FuIlnVWkgGs03eofhZcRMZ/TAXFXN2zPuov1DNESpVpVlRt8tzvzlLTnHjuOFC3x6RLtBWynav4oTxNNC171izJpDfaF4UUu4r1ibizFG2LjUisDf7XaNnlenIRgyDmBOojRBc3ImUbEVTy1v1DxaYV9i96U+tuCPqiLlEasi0k4xsarPWOZx3hFE6mJT72Yh9A57acV/03pfKyi44neWFlQX3pN4t5oI9M27qMrdLcIxhwgjHrmJie7ryIeobPSkskoFA8UrIP9aRUYQY0XNM8cxrlW8MMubIDy354SVlgLIzSrt/2YsshZF6WrnTAnUHMq2VzY7fubofSNuUozBRs5a8ZmW98lPOyfVPd+0ApYPKdSW5kEx+dCwkl7GK1IeTCRMXqEWlng4qdhn35iprqruC/50p235iguwlp54O+rBHmL/KLZTtJyoMae076oYyDzbaPC0/SzNibCLeHCmHq0ZgL/a7smd9UUj5iBT6mBO4jRA8ZA72Kh0U45auR2/i6xki0Kl6gRdatRNK+uleaacX6aD+/FUvYZQODtzab/yB/gO/vbVnZrfoPWOLKgr6pveZcOCVXhk9elq73pj4q67jRwfHGHXcJ6QiXrmgbhtzS7u3XWC/LOadrMSQ9HHvzi/Y6ax0tgmyw1ll1TL7Z59/xGftVqyvWJkorZW7ipXksgKuum3KUXjGqKWDVNLFsJZtsyvGBCgdZE+KjmPaC0nZISsdZN96/XNh7TLuua6sSeC5IRovD5Qbnt5pGkuOlw76sEeYFlG/u36zGg1mq+ejjdsn21HslxUaqQzhZ9lYnMDCmSP38YE5Xf37XdmzziikdHDoY47/NkKosMrfmfnwdpB8a0DuZV46qHzGoIOA2ojaruPVoJNE5jj0oIG4U2GUDj6XNeShrbf2/+aPj2y79S/pN3Zb2G3C/ld7W3vcmdH1hqTrNtg33PKMKTjG6MEqvZnxNR10bemQp4Pq7Tj2SyFKMQsd/es56jRa6U4Hlda2PzRzsz5iFG4FzSdW+YsvRqSwKl4viUXmYKaDYpxUPZV9TQcZA/qeDvKPcPYq19mzmm2e7Jz9itdv6SDXYo3z0mY2GK1iCmgzGwxmq9nA3OKsibPumTRr3XHPauS8TGtV2ars6fgzHfQ2dnEaak0kKDEncBshGNCrybd0kHdJOx1U9wOrW15Kx5uRz3bqG843wigdtJfkGdbff6+1xz+zbumT+dthO/rcs6n7HZu6/jrxl2vPrb169adQpoP06iCiIuOrCs2wSD58+OWm+poOygOzTTwXSKtk3ym4LtKdymaho3/No067FfmGX2MTsqwl3sYz3v2wOvdYxLCNMQrfHuWfGyiiEX1aqvyrJGQtxfepAUsHrdLLbYaDWmULidod8iTJs4lkE1Hces3kg2kwI2/mnIJ6nrQ5riDvPVnVKB9TbcmxfOLjHqHmyLHQ6vlX0sW0Xu0m8gIXHQ8p76jGPXrlcgILb1FRy1w9Anu13/mTUotCinM7VDGHHxz8uBECjnIxyfxC28hf7dzTgdkb5Xr1KE5fVW/AmBHPTtl65s46QPcpjNJBh6O0qKLAsPb+f2z4TS9r9zvW3/T3jK7XJ3VZk7fm6tWfrl27FtK3gzbGX0srrrBeWMnCt/KbHdYjJPvBWhVZ5158r0HPzFXfU2Yw0H+rRNYnTzHWq0JO/5pHnWYrzyi8p2PG6LJdRt0IdueeiuTxrrSNOQoPaim5ulWeYcy/I+f9XaZYR3H79NijBmNdkQPJklWmlfTuYLtUdhMZ/XiVDiqN4J2CLKequYJRi1tK9am65Fg+8W2PMG49y0LiNKE8yd53jCI6JaNWic64R05Za6ty3xhqRGC9+129Z9UoxNq8/IkELubI00Gl2/2yEQIMvZgYZ5LsuxPaCfpiMas32arUcZ4w/hzUixlx7OTux8Ang2GVDjqd5dXVztKqkn6p/W6zdL0zs9uNC7qknE4Wc8G2traw+rLYe8LkNbyXhMXjIgA68eoJqv37Mfw3dSAsDOGsAzd0+N9KrwjyRgCdgTBKB6urnbW11fX1tY6askEpg25O6JF8YrWUCyIdDCLkg0tHsZl+jxVS48PKmIgCpyAArdgIwAfCKB0Uc8HGxobLl5taWpqvXGklc8GOnw4CAAAAAIQjYZQO6lFwjAEAAAAAiBzCJR0EAAAAAAAhAekgAAAAAEBEg3QQAAAAACCiQToIAAAAABDRaKeDVQAAAAAAoFOjkQ6qXwYAAAAAAJ2b/w/8CReTcHJB2AAAAABJRU5ErkJggg==" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<li>mets à jour automatiquement la table PERIPHERIQUES à partir des informations récupérées au niveau de la ZIBASE et de la comparaison avec les données contenues dans la table PERIPHERIQUES,</li>
<li> enregistre automatiquement les données des différentes sondes déclarées dans la table PERIPHERIQUES dans les tables correspondant aux sondes (UV, PLUMIOMETRE, ANENOMETRE, TEMPERATURE, ELECTRICITE).</li>
</ul>
J'ai essayé de commenter le mieux possible le code pour que vous puissiez vous y retrouver et y apporter des améliorations (il y a de quoi faire).<br />
<br />
En résumé, télécharger le ZIP, exécuter le script <b>zibase.sql</b> créant les tables, remplir la table <b>PERIPHERIQUES</b>, modifier le fichier <b>config.php</b> avec les éléments de votre MYSQL, et cela devrait fonctionner.<br />
<br />
<a href="https://docs.google.com/file/d/0B3CTqWHBbSz7Rk5zSG0tbG1QSjg/edit?usp=sharing" target="_blank">Télécharger le ZIP</a><br />
<br />
<a href="http://missquellegoule.blogspot.fr/2013/06/zibase-nas-synology-et-enregistrements_20.html" target="_blank">Aller à l'article suivant sur le même thème</a> (dispo depuis le 19/06/2013)<br />
<br />
Trois petites remarques supplémentaires :<br />
<ul>
<li>les chemins relatifs ne fonctionnent pas sur les CRON (pas de connaissance du contexte),</li>
<li>si vous utilisez un NAS ne pas oublier de renseigner les éléments de notifications pour paramétrer votre smtp dans le panneau de configuration. Sinon, vous pouvez paramétrer ces éléments dans le fichier config.php mais je suis fainéant.</li>
<li>Depuis DSM 4.2 sur SYNOLOGY, vous pouvez lancer ces scripts dans le planificateur de tâche sans avoir à entrer dans la partie linux. Néanmoins, il est impossible lancer un CRON tous les jours et tous les 1/4 d'heure (uniqueement toutes les heures). Du coup, j'ai créer 4 tâches différentes qui appel le même script toutes les heures mais chacun avec 1/2 heure de décalage (voir ci-dessous) </li>
</ul>
<br />
<br />
<a href="data:image/png;base64,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" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" border="0" height="155" src="data:image/png;base64,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" style="cursor: move;" width="640" /></a><br />
<br />
<br />
<br />
<br />Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com51tag:blogger.com,1999:blog-94176035240798499.post-38082409055962708502013-04-20T19:25:00.000+02:002013-04-29T07:59:46.117+02:00Vérifier l'état des piles de ses périphériques avec sa zibase et un scénario unique !Voici quelques temps, j'avais créé un scénario pour analyser l'état des piles de nos périphériques et être prévenus si l'un d'entre eux avait des piles faibles.<br />
<br />
Je n'avais jamais fait d'article sur le sujet mais je profite de la sortie il y a quelques jours du firmware 717 de la zibase pour en parler.<br />
<br />
En effet, au préalable, il était possible d'entrer une liste d'identifiants de périphériques pour qu'un scénario se déclenche. Il fallait, au préalable repérer les id de tous ses périphériques et en cas de changement de piles, il ne fallait pas oublier de modifier le scénario.<br />
<br />
Depuis le firmware 717 de la zibase, ce n'est maintenant plus utile car il est possible d'entrer comme stimuli autant de périphériques que souhaité.<br />
<br />
Le premier scénario ci-dessous analyse l'état des piles (nommé Piles - Analyse ETAT ; original :-D):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-FqQbK16TbHQ/UXLAbuniyII/AAAAAAAAAHM/53_LZz29Xu8/s1600/piles1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="http://2.bp.blogspot.com/-FqQbK16TbHQ/UXLAbuniyII/AAAAAAAAAHM/53_LZz29Xu8/s320/piles1.JPG" width="320" /></a></div>
<br />
Cette première partie vous montre comment il est facile d'entrer plusieurs périphériques comme stimuli (nous avons coupé la capture car la liste est longue :-D).<br />
<br />
La suite du scénario Piles - Analyse ETAT :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-CbNVrc88iyc/UXLAdxMFySI/AAAAAAAAAHY/WDeczWUgS6I/s1600/piles2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="http://1.bp.blogspot.com/-CbNVrc88iyc/UXLAdxMFySI/AAAAAAAAAHY/WDeczWUgS6I/s320/piles2.JPG" width="320" /></a></div>
<br />
J'ai paramétré un calendrier fixe pour que ce scénario ne soit lancé que pendant une heure chaque jour. En effet, cela permet de ne pas être alerté continuellement lorsque qu'un périphérique a des piles faibles. Le calendrier est donc paramétré pour ne continuer le scénario qu'entre 20 heures et 21 heures selon la capture ci-dessous (corrigé avec bon image) :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-SdCs70ejHgM/UX4MRYT0zwI/AAAAAAAAAH8/ThSn0sb7CHM/s1600/Capture+calendrieir.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="http://3.bp.blogspot.com/-SdCs70ejHgM/UX4MRYT0zwI/AAAAAAAAAH8/ThSn0sb7CHM/s320/Capture+calendrieir.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-tylgH1UOlGk/UXLBn69BGYI/AAAAAAAAAHs/RfsbodgKasM/s1600/pile+-+calendrier.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a> </div>
<br />
La deuxième action permet au scénario de ne se lancer que toutes les 30 secondes. Cela évite d'être alerté de trop nombreuses fois qu'un périphérique a des piles faibles tout en s'assurant que le scénario sera appelé par toutes les sondes. Oui, je sais; c'est de la bidouille mais je n'ai pas trouvé mieux. N'hésitez pas à laisser des commentaires si vous avez une solution plus "intelligente".<br />
<br />
La troisième action trouve l'identifiant de la sonde qui a déclenché le scénario et le met dans une variable (V10 pour nous).<br />
<br />
La suite (et fin) du scénario Piles - Analyse ETAT est la suivante :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-8_USDkF89wI/UXLAfnhA4II/AAAAAAAAAHg/rzI6v6Ppm7w/s1600/piles3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="85" src="http://3.bp.blogspot.com/-8_USDkF89wI/UXLAfnhA4II/AAAAAAAAAHg/rzI6v6Ppm7w/s320/piles3.JPG" width="320" /></a></div>
<br />
On calcule l'expression ((I2LSL1)LSR3). Cela ne parle pas forcément aux néophytes mais voici les explications de ce calcul : la variable I2 pour toutes les sondes est codée sur 4 bits signifiants (valeur 0 ou 1 pour chaque bit) :<br />
<ul>
<li>bit 0 (0....7) = Boitier Ouvert (Open/Tamper)</li>
<li>bit 1 = Alarme</li>
<li>bit 2 = Batterie basse (détecteur ou sonde) si bit vaut 1 alors batterie basse</li>
<li>bit 3 = Trame de supervision (alive)</li>
</ul>
Par exemple, pour un capteur ouvert, pas en alarme et avec des piles faibles, cela donne :<br />
<br />
bit 0 = 1<br />
bit 1 = 0<br />
bit 2 = 1<br />
bit 3 = 0<br />
L'opérateur LSL1 décale d'un bit à gauche et LSR3 de 3 bit à droite et nous pouvons donc lire le bit 2 directement et vérifier que si celui-ci est positif. Si c'est le cas, cela signifie que les piles du périphériques ayant déclenché le scénario sont faibles. Désolé pour ces explications techniques mais si vous ne les comprenez pas, c'est pas grave, ça marche :-D.<br />
<br />
Dans ce cas, on fait appel au scénario Piles - Alerte Etat (simplissime) qui se présente comme suit :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-4aKggSnfd7I/UXLAhpRT4II/AAAAAAAAAHo/ylh7kqjD744/s1600/piles4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="201" src="http://3.bp.blogspot.com/-4aKggSnfd7I/UXLAhpRT4II/AAAAAAAAAHo/ylh7kqjD744/s320/piles4.JPG" width="320" /></a></div>
<br />
Ce scénario fait juste appel au service pushing box qui permet d'être alerté via de nombreux services (pour ma part, j'utilise twitter, notifry et karotz). Je ne détaille pas l'utilisation de Pushingbox car de nombreux articles le font déjà très bien. Je vous invite par exemple à consulter les articles suivant <a href="http://www.touteladomotique.com/index.php?option=com_content&view=article&id=342&Itemid=14&limitstart=2">http://www.touteladomotique.com/index.php?option=com_content&view=article&id=342&Itemid=14&limitstart=2</a> ou <a href="http://www.domotique-info.fr/2012/03/guide-pushingbox-domotique/">http://www.domotique-info.fr/2012/03/guide-pushingbox-domotique/</a>.<br />
<br />
Par contre, petit détail que vous pouvez voir dans le scénario, il est possible de passer des variables dans l'appel PUSHINGBOX. Nous lui passons donc la variable V10 qui contient l'identifiant de la sonde concernée ce qui nous permet de savoir quelle est la sonde qui a des piles faibles.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com17tag:blogger.com,1999:blog-94176035240798499.post-49031862838635454922013-04-06T13:53:00.000+02:002013-04-06T13:53:00.584+02:00Alarme ZIBASE via le nouveau moduleAprès plusieurs effractions dans notre commune, nous souhaitions profiter de notre Zibase pour être prévenus en cas d'intrusion et faire fuir les indésirables visiteurs sans pour autant investir dans un système d'alarme.<br />
<br />
Bien sur l'utilisation du X10 pour la sirène et la télécommande n'ont pas un grand gage de sécurité (c'est le moins que l'on puisse dire) mais c'est notre choix.<br />
<br />
Nous avions déjà effectué des scénarios pour l'alarme mais le nouveau module ZIBASE nous a donné envie d'aller un peu plus loin.
Tout d'abord, nous disposions déjà de :
<br />
<ul>
<li>
deux détecteurs de mouvements,
</li>
<li>un karotz,
</li>
<li>une caméra : EDIMAX 7010 PTN
</li>
</ul>
Nous avons acquis en plus :
<br />
<ul>
<li><a href="http://www.domadoo.fr/produit,764,1,X10--SH10-Sirène-additionnelle-95dB.htm" target="_blank">une sirene SH10</a>; c'est une sirène très bon marché à 35 euros qui n'est pas d'une puissance extraordinaire, qui est en X10 filaire (sécurité très moyenne et problématique si le courant est coupé) mais qui a le mérite de faire carillon et alarme,
</li>
<li><a href="http://www.domadoo.fr/produit,1348,1,CHACON-Télécommande-Porte-Clés.htm" target="_blank">une télécommande Chacon 54591</a>.</li>
</ul>
Ces deux éléments X10 nécessitent bien évidemment la présence d'un <a href="http://www.domadoo.fr/produit,752,1,ebode--XDOM-RPT-Récepteur-Prise-pour-Appareil-Lampe-et-Interface-Télécommande.htm" target="_blank">RPT</a> ou un <a href="http://www.domadoo.fr/produit,242,1,X10-TM13-Transmetteur-RF-en-courant-porteur-X10.htm" target="_blank">TM13</a> pour assurer la conversion du X10RF envoyé par la zibase en X10CPL.<br />
<br />
Rentrons dans le vif du sujet. Nous pensions qu'il serait simple de mettre en place tout cela grâce au "nouveau" (cela fait quelques mois) module alarme mis à notre disposition par ZODIANET. Finalement, celui-ci dispose de certaines limites qu'il nous a fallu contourner d'où l'intérêt de cet article.<br />
Tout d'abord; voici la configuration du scénario que nous avons nommé "Alarme" :
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-3s0cqaGfdRA/UVcbCkV3CxI/AAAAAAAAAFM/eOQruHl5xm4/s1600/Alarme.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="http://1.bp.blogspot.com/-3s0cqaGfdRA/UVcbCkV3CxI/AAAAAAAAAFM/eOQruHl5xm4/s320/Alarme.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Vous pouvez consulter la documentation ZODIANET (point "?" dans le module alarme) qui explique bien le fonctionnement du module et notamment que les actions placées après une action "METTRE EN PLACE UN SYSTEME D'ALARME" ne sont exécutées qu'une fois la sirène déclenchée (ou non si pas déclarée), c'est à dire après le délai de pré-alerte.<br />
<br />
Néanmoins, à ce stade, trois explications importantes :<br />
<ul>
<li>La sirène n'est pas configurée dans le module de l'alarme puisque le module ne fait qu'un ON sur le périphérique désigné comme "sirène". La plupart des sirènes disponibles sur le marché nécessitent soit :</li>
<ul>
<li>une alternance de on/off continu pour continuer à faire sonner la sirène;</li>
<li>une alternance de on/on continu pour continuer à faire sonner la sirène (c'est le cas de la SH10).</li>
</ul>
<li>La sirène est configurée comme "buzzer" puisque le module fait un on sur le périphérique désigné en tant que "buzzer" et cela a pour effet de faire une sonnerie carillon sur la sirène SH10. Cela permet donc d'être alerté par une sonnerie carillon que l'alarme est en fonctionnement pendant la durée configurée dans le "délai de pré-alerte";</li>
<li>La télécommande nommée "ALARME" n'est pas une télécommande physique mais une télécommande virtuelle qui permettra de fonctionner sans télécommande physique ou avec plusieurs télécommandes physiques.</li>
</ul>
Donc, de notre coté, deux périphériques déclarés :<br />
<ul>
<li>La télécommande virtuelle nommée <strong>"ALARME"</strong> déclarée comme suit :</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-GxAPBJy21XM/UVcfjRaQOrI/AAAAAAAAAFU/P3XFS42h5Ts/s1600/TELECOMMANDE+VIRTUELLE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="http://3.bp.blogspot.com/-GxAPBJy21XM/UVcfjRaQOrI/AAAAAAAAAFU/P3XFS42h5Ts/s320/TELECOMMANDE+VIRTUELLE.png" width="320" /></a></div>
<br />
<ul>
<li>
La télécommande physique nommée <strong>"TELECOMMANDE ALARME"</strong> (utilisée par notre femme de ménage) déclarée comme suit :</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-zIjkMiRHn20/UVcgCuTH5pI/AAAAAAAAAFc/C5bsT5GNegw/s1600/TELECOMMANDE+PHYSIQUE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="http://1.bp.blogspot.com/-zIjkMiRHn20/UVcgCuTH5pI/AAAAAAAAAFc/C5bsT5GNegw/s320/TELECOMMANDE+PHYSIQUE.png" width="320" /></a></div>
<br />
à laquelle sont associés deux scénarios <strong>"Alarme - Simule off"</strong> et <strong>"Alarme - Simule on"</strong> pour simuler l'activation et la désactivation de l'alarme comme présenté ci-dessous :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-ihcrHDcjaE4/UVciV3ZfWaI/AAAAAAAAAFw/Di0-wUHOLqU/s1600/Alarme+simule+off.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="http://1.bp.blogspot.com/-ihcrHDcjaE4/UVciV3ZfWaI/AAAAAAAAAFw/Di0-wUHOLqU/s320/Alarme+simule+off.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-0OttY3Cv1EU/UVciTC_Kx8I/AAAAAAAAAFk/VmyznNewDIs/s1600/Alarme+simule+on.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="http://4.bp.blogspot.com/-0OttY3Cv1EU/UVciTC_Kx8I/AAAAAAAAAFk/VmyznNewDIs/s320/Alarme+simule+on.png" width="320" /></a></div>
<br />
Le script <strong>"sev 2 CS101"</strong> simule le on et <strong>"sev 2 CS100"</strong> simule le off (source documentation "?" du module alarme).<br />
<br />
Voilà donc notre télécommande virtuelle et notre télécommande physique prêtes à faire fonctionner l'alarme.<br />
<br />
Nous avons bien évidemment déclaré la sirène SH10 comme périphérique X10 et nommé de façon original le périphérique <strong>"SIRENE" </strong>comme suit : <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-sEUvw8cw1NE/UV_3IFdLTjI/AAAAAAAAAG8/pe6kWX2I0Qs/s1600/SIRENE+p%C3%A9riph%C3%A9rique.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="http://2.bp.blogspot.com/-sEUvw8cw1NE/UV_3IFdLTjI/AAAAAAAAAG8/pe6kWX2I0Qs/s320/SIRENE+p%C3%A9riph%C3%A9rique.png" width="320" /></a></div>
<br />
Rien de plus simple comme tous les périphériques X10.<br />
<br />
Revenons au scénarios <strong>"Alarme"</strong>. Toutes les actions déclarées après l'action <strong>"Mettre en place un système d'alarme"</strong> sont exécutées sur le déclenchement de l'alarme. Nous avons choisi 4 actions :<br />
<br />
<ul>
<li><strong>"Sirene-activer"</strong> qui va activer la sirène (voir un peu plus loin pour le descriptif de ce scénario et des différents scénarios liés),</li>
<li><strong>"Lance Cam EDIMAX"</strong> qui va activer l'enregistrement de la vidéo via la caméra EDIMAX 7010PTN décrit dans le précédent article <a href="http://missquellegoule.blogspot.fr/search/label/Cam%C3%A9ra" target="_blank">ici</a>,</li>
<li>Un petit appel à l'API pushing box pour faire les actions souhaitées (pour nous, twitter, karotz et notifry),</li>
<li><strong>"Stop Cam EDIMAX"</strong> qui va arrêter l'enregistrement de la vidéo via la caméra EDIMAX 7010PTN décrit dans le précédent article <a href="http://missquellegoule.blogspot.fr/search/label/Cam%C3%A9ra" target="_blank">ici</a>.</li>
</ul>
Voici les écrans correspondants :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-havjHCTG3hY/UV_yFrh2M7I/AAAAAAAAAF8/iOO7YphoArE/s1600/Alarme+action+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="217" src="http://1.bp.blogspot.com/-havjHCTG3hY/UV_yFrh2M7I/AAAAAAAAAF8/iOO7YphoArE/s320/Alarme+action+1.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-niV6EP0I4xY/UV_yHr4x5UI/AAAAAAAAAGE/weCvkcU-ASQ/s1600/Alarme+action+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="211" src="http://4.bp.blogspot.com/-niV6EP0I4xY/UV_yHr4x5UI/AAAAAAAAAGE/weCvkcU-ASQ/s320/Alarme+action+2.png" width="320" /></a></div>
<br />
Revenons au scénario <strong>"Sirène - Activer"</strong> et aux scénarios liés. Le scénario <strong>"Sirène - Activer"</strong> se présente comme suit :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-1WlpjWVA9xU/UV_0c0t3qaI/AAAAAAAAAGU/jblT3l8QomU/s1600/sirene+-+activer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="http://2.bp.blogspot.com/-1WlpjWVA9xU/UV_0c0t3qaI/AAAAAAAAAGU/jblT3l8QomU/s320/sirene+-+activer.png" width="320" /></a></div>
<br />
Ce scénario alloue des tickets illimités au scénario <strong>"Sirene - Gestion"</strong> et le lance. Le scénario <strong>"Sirene - Gestion"</strong> est paramétré comme présenté sur l'écran ci-dessous :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-N8ijPzSOuRQ/UV_0fn7x_HI/AAAAAAAAAGg/uMJSrTjBfk8/s1600/Sir%25C3%25A8ne+-+Gestion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="http://4.bp.blogspot.com/-N8ijPzSOuRQ/UV_0fn7x_HI/AAAAAAAAAGg/uMJSrTjBfk8/s320/Sir%25C3%25A8ne+-+Gestion.png" width="320" /></a></div>
<br />
Ce scénario lance un ON sur le périphérique <strong>"SIRENE"</strong> (paramétré sur l'adresse X10 : B16) et appel le scénario <strong>"SIRENE - Réarmement"</strong> qui fait l'action suivante :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-GQsxM65JDfg/UV_0h0aexEI/AAAAAAAAAGo/4wl_PDPvUxI/s1600/Sir%25C3%25A8ne+-+rearmement.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="http://1.bp.blogspot.com/-GQsxM65JDfg/UV_0h0aexEI/AAAAAAAAAGo/4wl_PDPvUxI/s320/Sir%25C3%25A8ne+-+rearmement.png" width="320" /></a></div>
<br />
Ce scénario ré-appelle donc le scénario <strong>"Sirene - Gestion"</strong> et crée donc une boucle infinie d'appels provoquant des commandes X10 ON sur le périphérique <strong>"SIRENE"</strong> déclaré à l'adresse X10 B16. C'est le seul moyen que j'ai trouvé pour stimuler la sirène et qu'elle continue de sonner.<br />
<br />
Bien évidemment, il faut aussi un scénario permettant de désactiver la sirène nommé <strong>"Sirène - Desactiver"</strong> et faisant les actions suivantes :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-DgNetw4bvdM/UV_0kArVAfI/AAAAAAAAAGw/tA-X2NGqDHE/s1600/Sir%25C3%25A8ne+-+desactiver.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="189" src="http://2.bp.blogspot.com/-DgNetw4bvdM/UV_0kArVAfI/AAAAAAAAAGw/tA-X2NGqDHE/s320/Sir%25C3%25A8ne+-+desactiver.png" width="320" /></a></div>
<br />
La première action est de désactiver le scénario <strong>"Sirene - Gestion"</strong> pour arrêter la boucle infinie de ON et la deuxième de lancer plusieurs ordres X10 OFF à l'adresse X10 B16 (adresse X10 du périphérique <strong>"SIRENE"</strong>) afin d'arrêter la sirène. Nous avons lancé plusieurs ordres OFF volontairement afin que la zibase prenne bien en compte les OFF après la boucle infini de ON.<br />
<br />
Voilà, je pense vous avoir tout dit sur notre mini système d'alarme et j'espère que cela vous aidera dans cette démarche qui finalement n'est pas si simple que cela ne peut y paraître.<br />
<br />
Allez, tous à vos zibases !!!<br />
<br />
<br />
<br />
<ul>
</ul>
<br />Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com6tag:blogger.com,1999:blog-94176035240798499.post-66626718916562971272013-02-03T13:28:00.001+01:002013-02-18T21:53:08.254+01:00VMC 2 VITESSES<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-38599062-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Voilà un peu plus d'un an, nous nous étions intéressés à trouver un moyen de "domotiser" notre VMC 2 vitesses. Nous disposions donc d'une VMC avec un interrupteur 2 vitesses (arrivée de la phase en central au niveau de l'interrupteur qui basculait sur la vitesse 1 ou 2 en fonction de l'interrupteur).<br />
<br />
Après quelques lectures de Forum, je n'avais pas trouvé de module pour la Zibase 1 sans ZWAVE permettant ce basculement de phase. J'avais tenté de détourner le fonctionnement d'un TYXIA 463 qui est un module DELTA VOLET ROULANT à la base en me servant de la fonctionnalité montée/descente comme alimentation de phase Vitesse1/Vitesse2. <br />
<br />
Dans l'absolu, cela devait fonctionner. Malheureusement, ce module dispose d'une sécurité coupant l'alimentation au bout d'environ 1/2 minutes liée, j'imagine, à sa fonction première de commander un volet qui par définition doit être limitée dans le temps.<br />
<br />
Nous avions donc laissé tomber cette idée mais nous y sommes de nouveau intéressé recemment. Et finalement nous avons trouvé "par hasard" le module BLYSS VMC (pour la BLYSSBOX de CASTORAMA) en découvrant qu'il était compatible ZIBASE (attention, seuls les modules BLYSS en 433.92MHz sont compatibles avec la ZIBASE). Ce module est disponible seul à 34.90€. Nous avons opté pour ce module avec un interrupteur permettant aussi de le commander qui est vendu sous forme de pack à 44.90€.<br />
<br />
Le voici : <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-INdBF1TzL_Q/UQ2I2rFFxQI/AAAAAAAAABU/OoiCG3eVbSI/s1600/PACK+BLYSS+-+VMC.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-INdBF1TzL_Q/UQ2I2rFFxQI/AAAAAAAAABU/OoiCG3eVbSI/s1600/PACK+BLYSS+-+VMC.jpg" /></a></div>
N'ayant pas de neutre au niveau de l'interrupteur existant, nous n'avons pas eu d'autres choix que de monter dans les combles (avec toujours autant de plaisir :-D).<br />
<br />
Voici une petite photo du branchement existant de la VMC :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-59VKpY43bfk/UQ2LhSCRa-I/AAAAAAAAADA/xJWAYqnpF9w/s1600/IMG_20130202_175644.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://1.bp.blogspot.com/-59VKpY43bfk/UQ2LhSCRa-I/AAAAAAAAADA/xJWAYqnpF9w/s320/IMG_20130202_175644.jpg" width="240" /></a></div>
<br />
De gauche à droite : <br />
<ul>
<li>Fil bleu : neutre</li>
<li>Fil Marron : vitesse 1 de la VMC (pour rappel alimenté par la phase présent quand l'interrupteur existant est en postion 1)</li>
<li>Fil Noir : Vitesse 2 de la VMC (pour rappel alimenté par la phase présent quand l'interrupteur existant est en postion 2)</li>
<li>Fille Vert/jaune : Terre</li>
</ul>
Sur le module, besoin du neutre, de la phase et deux sorties pour commander Vitesse1/Vitesse2.<br />
<br />
Nous avons décidé d'utiliser le fil Marron pour la phase venant de l'interrupteur existant (celui-ci étant toujours en position 1) et ne pas me servir du fil noir (position 2 de l'interrupteur existant) qui ainsi permettra de couper l'alimentation de la VMC (pour quoi me direz-vous ? ...on ne sait jamais :-D).<br />
<br />
Après cablage cela donne : <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-qTS0EGF2BGs/UQ2KkubF37I/AAAAAAAAACI/_j-ZniB3t2E/s1600/IMG_20130202_182454.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-qTS0EGF2BGs/UQ2KkubF37I/AAAAAAAAACI/_j-ZniB3t2E/s320/IMG_20130202_182454.jpg" width="320" /></a></div>
<br />
Et une fois le tout ordonné :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-uq65MqrxcNs/UQ2LB8E7nRI/AAAAAAAAACg/IvEJnYQNZag/s1600/IMG_20130202_184822.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://3.bp.blogspot.com/-uq65MqrxcNs/UQ2LB8E7nRI/AAAAAAAAACg/IvEJnYQNZag/s320/IMG_20130202_184822.jpg" width="240" /></a></div>
<br />
Le module étant alimenté, il existe ensuite un petit bouton sur le module pour l'associer (appui long jusqu'à ce que la lumière bleue du module clignote). Pendant cette période, si vous avez pris l'interruptuer Blyss qui va avec, vous avez juste à appuyer dessus. A noter que vous pouvez ensuite intervertir vitesse lente/rapide de l'interruptuer blyss juste en appuyant une fois sur le petit bouton du module (évite d'intervertir les fils correspondant à la vitesse lente/rapide).<br />
<br />
Je n'ai rencontré aucun problème pour associer l'interrupteur. Pour l'assocation avec la zibase, il faut juste prendre le protocle XDD868_INTER et déclarer l'identifiant radio en Gx. Ensuite il faut appuyer sur le petit bouton du module jusqu'à clignotement et ensuite cliquer sur ASSOC. Et le tour est joué. Cela donne :<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-bIiOAYo9F3Y/UQ2RqdtzffI/AAAAAAAAADg/EqMuz48MwYo/s1600/Capture+VMC.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="197" src="http://4.bp.blogspot.com/-bIiOAYo9F3Y/UQ2RqdtzffI/AAAAAAAAADg/EqMuz48MwYo/s320/Capture+VMC.JPG" width="320" /></a></div>
<br />
<br />
Le ON correspond en fait à la vitesse 2 et le OFF à la vitesse 1.<br />
<br />
Notre souhait est de passer en deuxième vitesse quand nous prenons une douche dans la salle de bain qui créé de fait une augmentation de l'humidité et surtout la formation de buée qui est un peu gênante sur les miroirs. Nous avons donc installer l'interrupteur sans fil BLYSS dans la salle de bain pour pouvoir forcer le passage en deuxième vitesse. Voici une petite photo de l'interrupteur :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-c62I0KGqwJA/UQ5F-inHOpI/AAAAAAAAADw/msPyS-_8I88/s1600/IMG_20130203_121041.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-c62I0KGqwJA/UQ5F-inHOpI/AAAAAAAAADw/msPyS-_8I88/s320/IMG_20130203_121041.jpg" width="240" /></a></div>
<br />
Un appui sur le bouton haut de l'interrupteur permet le passage en 2ème vitesse et un appui sur le bouton bas permet de revenir en 1ère vitesse. A noter que je n'ai pas réussi à voir l'emission de l'interrupteur dans la Zibase et il est donc non "domotisable" (lié à la Zibase je pense).<br />
<br />
Afin d'automatiser le passage de la vitesse 2 pour éviter la formation de buée, nous avons mis en place des scénarios basés sur le taux d'humidité d'une sonde OREGON THGN800 placée dans la salle de bain.<br />
<br />
Pour cela j'ai créé 4 scénarios :<br />
<br />
<ul>
<li>VMC PASSAGE VITESSE1 : Ce scénario active le périphérique VMC à OFF (Vitesse 1) et alloue un ticket au scénario VMC PASSAGE 2 (permettant l'exécution 1 seul fois du scénario)</li>
<li>VMC PASSAGE VITESSE2 : Ce scénario active le périphérique VMC à ON (Vitesse 2) et alloue un ticket au scénario VMC PASSAGE 1 (permettant l'exécution 1 seul fois du scénario)</li>
<li>VMC GESTION VITESSE : Ce scénario est basé sur le périphérique de la sonde Salle de Bain (la THGN800) et déclenche sur seuil le scénario VMC PASSAGE 2 quand le seuil est supérieur au taux d'humidité défini et le scénario VMC PASSAGE 1 quand le seuil est inférieur au taux d'humidité défini. La gestion de l'allocation de tickets dans les deux scénarios permet de ne pas exécuter le scénario VMC PASSAGE 1 et VMC PASSAGE 2 toutes les minutes (à chaque remontée d'information de la sonde) et également de gérer le fait que la vitesse 2 a pu être actionnée manuellement via l'interrupteur BLYSS.</li>
<li>VMC INIT : Ce scénario est exécuté au démarrage de la zibase et permet de forcer la VMC en VITESSE 1 (OFF sur le périphérique) et de faire l'allocation de 0 ticket au scénario VMC PASSAGE 1 et 1 ticket au scénario VMC PASSAGE 2.</li>
</ul>
Cela donne :<br />
<ul>
<li>VMC PASSAGE VITESSE1</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Y_Q7MRPtLQY/UQ5Lf7a84ZI/AAAAAAAAAEY/g01SnKiLefQ/s1600/VMCINIT1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="http://2.bp.blogspot.com/-Y_Q7MRPtLQY/UQ5Lf7a84ZI/AAAAAAAAAEY/g01SnKiLefQ/s320/VMCINIT1.JPG" width="320" /></a></div>
<ul>
<li>VMC PASSAGE VITESSE2</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-1j3bVD0yFXE/UQ5LXgo_neI/AAAAAAAAAEI/2TBTnnQhOw0/s1600/CaptureVMC2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="219" src="http://2.bp.blogspot.com/-1j3bVD0yFXE/UQ5LXgo_neI/AAAAAAAAAEI/2TBTnnQhOw0/s320/CaptureVMC2.JPG" width="320" /></a></div>
<br />
<ul>
<li> VMC GESTION VITESSE </li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-hzdDhOSfP6A/UQ5LeU498bI/AAAAAAAAAEQ/w4YABMjcA44/s1600/VMC+GESTION+VITESSE.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="http://2.bp.blogspot.com/-hzdDhOSfP6A/UQ5LeU498bI/AAAAAAAAAEQ/w4YABMjcA44/s320/VMC+GESTION+VITESSE.JPG" width="320" /></a></div>
<br />
<ul>
<li>VMC INIT</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-kltCT7lJXRI/UQ5LU8VlvlI/AAAAAAAAAEA/k2YsJkn9PtE/s1600/Capturevmc1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="http://2.bp.blogspot.com/-kltCT7lJXRI/UQ5LU8VlvlI/AAAAAAAAAEA/k2YsJkn9PtE/s320/Capturevmc1.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-mjuJE12cJJ8/UQ5LhLuQ-zI/AAAAAAAAAEc/EOPEnZtk3yM/s1600/VMCINIT2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="http://3.bp.blogspot.com/-mjuJE12cJJ8/UQ5LhLuQ-zI/AAAAAAAAAEc/EOPEnZtk3yM/s320/VMCINIT2.JPG" width="320" /></a></div>
<a href="http://3.bp.blogspot.com/-mjuJE12cJJ8/UQ5LhLuQ-zI/AAAAAAAAAEc/EOPEnZtk3yM/s1600/VMCINIT2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><div style="text-align: left;">
</div>
</a><br />
<br />
<br />
Et voilà, le tour est joué. La Zibase gère ainsi l'humidité dans la salle de bain tout en laissant la possibilité de pouvoir commander la deuxième vitesse manuellement avec l'interrupteur BLYSS. Bref, très pratique et fonctionne parfaitement.<br />
<br />
<br />
<br />
<br />
<br />Stef_33http://www.blogger.com/profile/05233262162771681825noreply@blogger.com11