Piloter des modules Yoctopuce avec des boutons Flic

Piloter des modules Yoctopuce avec des boutons Flic

Après la débâcle de la télécommande NEEO, on a décidé de se consoler en jouant avec les boutons flic, le but étant évidement d'essayer d'utiliser ces boutons pour commander des modules Yoctopuce. Cette semaine, on vous présente le résultat de nos petites expériences à ce sujet...





Présentation

Les boutons Flic se présentent sous la forme de petites capsules en plastique mou qui font penser à des bouchons de bouteille en PET mais en moins haut. Il s'agit en fait de petits émetteurs Bluetooth et l'idée consiste à pouvoir configurer une action arbitraire qui s'exécutera à chaque fois que quelqu'un appuie sur le bouton. Simple et efficace. Ces boutons ont été proposés par la société suédoise Shortcut Labs lors d'une campagne de financement participatif sur Indiegogo il y a un peu plus de 5 cinq ans. Depuis, Shortcut Labs a fait du chemin, puisqu'on trouve ces boutons sur à peu près n'importe quel magasin en ligne vendant de l'électronique grand public.

Les boutons Flic de Shortcutlabs
Les boutons Flic de Shortcutlabs


Ces boutons peuvent être utilisé de plusieurs manières:


Utilisation, Option 1: le smartphone

A la base, les boutons Flic sont pensés pour être utilisés avec votre smartphone. Après avoir acheté vos boutons, vous n'avez qu'à télécharger et installer l'application idoine. Sachez simplement que l'application en question vous obligera à créer un compte Flic pour démarrer et qu'elle vous demandera l'accès au service de localisation de votre téléphone pour appairer les boutons. Ce dernier point est apparemment lié à un bug une fonctionnalité d'Android.

Soupir....
Soupir....



Bref, une fois vos boutons appairés, vous pouvez leur associer une foultitudes d'activités qui vont du générateur de pets au contrôle de TRÅDFRI. Mais une des activités proposées sort du lot: il est possible de forger une requête HTTP lorsqu'un bouton est actionné. Du coup il est possible de piloter sommairement des actuateurs Yoctopuce connectés à un YoctoHub ou un ordinateur sur lequel tourne un VirtualHub.

On peut piloter des actuateurs Yoctopuce forgeant des URL
On peut piloter des actuateurs Yoctopuce forgeant des URL



Par exemple imaginons que vous ayez un Yocto-PowerRelay-V3 dont le le numéro de série est RELAYHI3-100920 connecté à un YoctoHub-Wireless-g dont l'adresse IP est 192.168.1.69, vous pouvez faire commuter le relais vers la sortie B grâce à l'URL suivante:

http://192.168.1.69/bySerial/RELAYHI3-100920/api/relay1?state=1


Vous pouvez aussi le faire basculer d'une sortie vers l'autre grâce à l'URL suivante:

http://192.168.1.69/bySerial/RELAYHI3-100920/api/relay1?state=X


Encore plus fort, vous pouvez le faire passer sur la sortie B puis revenir automatiquement sur la sortie A au bout de 5000ms grâce l'URL:

http://192.168.1.69/bySerial/RELAYHI3-100920/api/relay1?pulseTimer=5000



Les habitués de l'API Yoctopuce auront reconnu les fonctions set_state(), toggle() et pulse() de la classe YRelay. La plupart des fonctions des actuateurs Yoctopuce peuvent être pilotées de manière similaire. Les requêtes à faire ne sont pas explicitement documentées dans le manuel des différents produits, mais vous pouvez les trouver en utilisant la fonction "API browser" des YoctoHub et du VirtualHub

La fenêtre API browser vous donne l'URL qui correspond à chaque commande
La fenêtre API browser vous donne l'URL qui correspond à chaque commande



Vous l'aurez probablement compris, l'essentiel du travail est en fait effectué par l'application Flic. Les boutons ne font qu'avertir cette dernière quand ils ont été pressés. Ce qui signifie que le système s'arrête de marcher dès que le téléphone qui fait tourner l'application s'éloigne de la portée Bluetooth des boutons. En d'autres termes, si vous utilisez le système de boutons Flic pour piloter des lumières chez vous, plus personne ne peut allumer ou éteindre ces lumières dès que vous quitterez la maison. Heureusement il y a une alternative.


Utilisation, Option 2: le Flic Hub

Shortcut Labs commercialise une petite boîte appelée Flic Hub qui peut faire le même travail que l'application Flic. Il vous suffit de l'alimenter avec un simple chargeur USB et de la connecter à votre réseau. On a testé, ça marche furieusement bien. Par contre, vous aurez quand même besoin de faire tourner l'application Flic sur votre téléphone pour configurer le Flic Hub.

Le Flic Hub
Le Flic Hub



Utilisation, Option 3: Yocto-Flic

Il se trouve que Shortcut Labs met aussi à disposition un SDK qui permet d'interfacer ces boutons. On en a évidement profité pour écrire notre propre application de contrôle pour boutons Flic qu'on a appelé Yocto-Flic. Elle est écrite en Python, elle implémente un petit serveur Web qui permet de piloter divers actuateurs Yoctopuce: relais, sorties servos, buzzer, sorties 4-20mA et sorties 0-10V.

On a écrit notre propre application de  contrôle
On a écrit notre propre application de contrôle



Avoir notre propre application pour piloter des modules Yoctopuce permet de se passer complètement de l'application originale et de sa confidentialité douteuse mais elle permet aussi d'offrir une interface de configuration un peu plus conviviale que de taper des URLs à la main.

On a développé cette application avec et pour un Raspberry Pi 3 B+. L'intérêt du Raspberry Pi, c'est qu'on peut le laisser tourner tout seul dans un coin, et si en plus on lui a monté un Raspberry Pi PoE HAT il suffira d'un câble UTP avec du PoE pour le faire fonctionner sans avoir de prise électrique à proximité. Ceci dit, il est probablement possible de faire marcher Yocto-Flic sous Windows 10, mais on n'a pas essayé.

Installation de l'application Yocto-Flic

Pour profiter de notre application Yocto-Flic, la première chose à faire consiste à télécharger le SDK depuis GitHub. Si au moment où vous lisez cet article, l'archive a disparu, vous trouverez une copie de sauvegarde ici. Dézippez le contenu de l'archive où bon vous semble sur votre Raspberry Pi, lisez le ficher readme.md puis placez-vous dans le répertoire bin/armv6l/ et lancez la commande

sudo setcap cap_net_admin=ep ./flicd


pour que le serveur puisse accéder à l'adaptateur Bluetooth, vous n'aurez besoin de le faire qu'une fois. Puis lancez le serveur Flic avec la commande

./flicd -f flic.sqlite3


une fois lancé, ce serveur fourni précompilé par Shortcut Labs se chargera de la communication Bluetooth avec les boutons Flic.

Ensuite téléchargez Yocto-Flic depuis GitHub, dézippez le contenu de l'archive où bon vous semble et lancez l'application avec la commande

python3 Yocto-flic.py


Notez que vous pouvez utiliser systemd pour lancer automatiquement les deux processus au démarrage du Raspberry Pi.

Yocto-Flic crée un serveur Web sur le port 8081 de votre Raspberry Pi ce qui rend son utilisation compatible avec n'importe quel appareil capable de faire tourner un browser web raisonnablement récent.

Utilisation de Yocto-Flic

Pour utiliser Yocto-Flic connectez vous simplement sur le port 8081 de votre Raspberry Pi avec un browser web. Ainsi, si l'adresse IP de votre Raspberry Pi est 192.168.1.70, l'URL pour accéder à l'application sera

http://192.168.1.70:8081



L'interface vous permet d'appairer des boutons, et d'ajouter des adresses IP de YoctoHub ou VirtualHub. L'application trouvera toute seule les actuateurs Yoctopuce compatibles connectés à ces hubs et vous les proposera spontanément lorsque que vous configurerez les actions des boutons.

Exemple de configuration d'un relais dans Yocto-Flic
Exemple de configuration d'un relais dans Yocto-Flic



Yocto-Flic n'a pas besoin des serveurs de Shortcut Labs pour fonctionner, sauf pendant l'appairage des boutons avec le Raspberry Pi. Mais sachant qu'avec le SDK, vous n'avez pas besoin d'un compte Shortcut Labs pour cet appairage, cet action restera relativement anonyme.

On vous a préparé une petite demo du système en action qui met en scène la rallonge WiFi qu'on a construite il y a 3 semaines et un Yocto-Buzzer.

  




Conclusion: ce qu'on pense des boutons Flic

Du point de vue fonctionnalités, on n'a rien à redire: ça fonctionne, c'est stable et c'est immensément pratique pour piloter des petits accessoires n'importe où dans nos locaux. Le marketing de Shortcut Labs est assez efficace et amusant, leur pré-campagne pour la version 2 des boutons Flic valait littéralement des points. Par contre l'envers du décor n'est pas tout à fait aussi propret. Leur SDK fonctionne mais la doc associée est pour le moins lacunaire, obtenir des réponses sur leur de forum de développeurs demande de patienter pendant plus d'une semaine. Il y a cette application qui vous oblige à fournir à Shortcut Labs des données qui ne sont certainement pas indispensables au bon fonctionnement de ces boutons. Enfin il y a l'appairage qui nécessite une connexion aux serveurs de Shortcut Labs, si cette société venait à disparaitre , les boutons deviendraient probablement inutilisables à court terme.

Cependant, pour être totalement objectif, il faut bien reconnaître que Shortcut Labs a promis dans sa campagne kickstarter que les boutons Version 2 n'aurons plus ces problèmes de confidentialité.

En voilà une bonne idée (capture de la campagne Kickstarter pour Flic 2)
En voilà une bonne idée (capture de la campagne Kickstarter pour Flic 2)



Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.