Volets roulants Somfy RTS et Zibase

Volets roulants Somfy RTS et Zibase


L'objet de cet article est de vous présenter une synthèse de la communication entre la Zibase et Somfy RTS.

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 ici.

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).

Pour les associer,  rien de plus simple,  il suffit de :
  • Etape 1: 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 sans valider la création :



puis avant de valider :
  • Etape 2: 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;
  • Etape 3: 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.
Vous n'avez qu'à répéter ces 3 petites étapes pour chacun des volets et en quelques minutes, tout fonctionne parfaitement.

Sur la Zibase,  les commandes possibles avec le RTS  Somfy sont les suivantes :
  • ON déclenche l'ouverture du volet;
  • OFF déclenche la fermeture du volet;
  • DIM (quel que soit la valeur du DIM) à deux actions possibles :
    • il arrête le volet si celui-ci est en cours de descente ou de montée;
    • il met le volet en position favorite (équivalent à la position définie sur le bouton "My" de la télécommande) si le volet est à l'arrêt.
Pour ma part,  j'ai réglé  le bouton "My" pour fermer le volet complètement mais en mode ajourée pour laisser passer la lumière. A vous de voir...

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. 

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.

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% :



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 "My" de la télécommande quand le volet n'est pas en action de descente ou de montée).




J'ai multiplié les scénari simples pour fermer ou ouvrir tous les volets; ou uniquement les deux volets de la salle à manger.

Espérant que ce résumé vous permettra de bien comprendre les subtilités de la gestion du RTS via la zibase.

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.

[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 ici présentant des scénari liés à la gestion des volets en fonction de l’ensoleillement.


Balance Withings et Zibase via IFTTT et sans aucune ligne de code


BALANCE WITHINGS ET INTERACTIONS POSSIBLES AVEC ZIBASE VIA IFTTT



Le but

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 article précédent pour comprendre ce qu'est IFTTT).

Préambule

Une technique de remontée des informations de la balance Withings existe déjà et fonctionne très bien : IFTTT-2-API décrit ici créée et mise à disposition par nos amis abavala. 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...

Les grands principes

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).

Nous allons créer deux "recettes" (Recipe) dans IFTTT permettant à chaque mesure de poids sur la balance Withings pour une personne donnée  :

  • d'alimenter la variable V6 avec le poids pour le premier "recipe", 
  • d'alimenter  la variable V7 avec la masse graisseuse pour le deuxième "recipe" 

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.

Mise en oeuvre

  • Eléments à mettre en place sur la ZIBASE

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 :



Quelques explications sur ce scénario :

  • 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);
  • 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). 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";
  • 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);
  • 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);
  • Le coefficient de conversion sur IO sera de 4.536 car nous allons récupérer le poids de la balance en livre (pound / lb) 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é;
  • 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;
  • 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;
  • Il faut également choisir le canal de votre sonde virtuelle en fonction de celle que vous possédez déjà. 
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é :

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 :


Quelques explications sur cette sonde virtuelle :

  • Il faut créer une sonde de mesure de type THGR328N afin de pouvoir gérer deux informations;
  • Prendre Générale comme logo (cela permet de redéfinir les unités des axes);
  • Dans l'identifiant radio, entrer l'identifiant précédemment renvoyé par le scénario; dans notre cas, OS3391881218.
  • Redéfinir les unités avec en mesure principale le poids et secondaire la masse Graisseuse ainsi que les unités associées. 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.
Enregistrer ce périphérique et votre sonde virtuelle est maintenant active. 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.

Il suffit maintenant de mettre en place les "recipe" sur IFTTT pour alimenter les variables V6 et V7. 

  • Eléments à mettre en place sur IFTTT
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. 

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). 

L'enregistrement d'une valeur dans une variable Zibase se fait via l'appel http suivant :

https://zibase.net/m/zapi_remote_zibase_set.php?action=rowzibasecommand&device=ZiBASEXXXXXX&token=YYYYYYYYYY&&param1=5&param2=[Valeur]&param3=1&param4=[NUM_VARIABLE]
  • ZiBASEXXXXXX est votre identifiant principal et YYYYYYYYYY votre token disponible dans votre interface de configuration Zibase en mode expert dans la partie système;
  • [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";
  • [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). 
Il faut activer sur IFTTT le Channel Withing et Drive.

Ci-dessous toutes les étapes pour créer le "recipe" sur IFTTT permettant de récupérer le poids (ingrédient "WeightLB" de la balance) et de le mettre dans la variable V6 de la Zibase :

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 V7 avec la masse graisseuse (ingrédient "FatPercent" de la balance) : vos deux recettes sont alors créées : 


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.


Cela n'affecte en rien le fonctionnement et les variables sont bien alimentées

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.

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é :


Et sur l'interface de l'application android, votre poids s'affiche comme ceci :



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. 

Et vous, vous en pensez-quoi ? N'hésitez pas à laisser des commentaires et partager des trucs si vous optimisez cette solution.

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é :)

Dans un prochain article, nous reviendrons sur les volets roulants via motorisation SOMFY RTS et les actions possibles avec la zibase (article disponible ici depuis le 15/02/2015)..