Dans la série des objets connectés et connectables, voici le module blink(1) de la société thingm http://blink1.thingm.com/
Ce module USB est un indicateur lumineux programmable en couleur, luminosité mais aussi motifs lumineux.
Issu d’un projet Kickstarter, Open source, il est compatible avec de multiples langages et OS (Mac, Windows, Linux), liens avec IFTTT, processing , extension chrome et bien plus.
L’appli Windows est très complète en permettant des liens IFTTT, sur le matériel, sur la réception de mail, un mode serveur (c.f plus bas).
Nous allons voir la mise en place et le lien avec Domoticz dans cet article.
Merci a Domadoo pour le prêt de ce matériel, http://www.domadoo.fr/fr/informatique/2861-blink1-mk2-indicateur-led-rgb-usb.html
Une autre lecture d’un test du Blink(1) http://www.maison-et-domotique.com/55484-test-du-blink-un-petit-dongle-pour-des-notifications-lumineuses/
Le prix d’une trentaine d’euros en fait un gadget abordable et fun.
L’objectif ici n’est pas de faire un tuto sur l’utilisation de blink(1) mais sur sa mise en place sur le raspberry et les liens avec Domoticz.
Nous n’utiliserons ici que les outils en ligne de commande.
Installation des outil blink(1)
Nous allons récupérer l’ensemble des outils blink pour les différents langages et système d’exploitation supportés par blink(1). Vous pourrez ensuite sans doute supprimer quelques dossiers inutiles (Java, Windows …)
Donc
sudo apt-get install libusb-1.0-0-dev
git clone https://github.com/todbot/blink1.git
cd blink1/commandline
make
sudo ./blink1-tool --on
La dernière instruction permet d’allumer la clé blink(1)
Nous avons donc à notre disposition maintenant un outil en ligne de commande nommé blink1-tool qui permet de piloter l’objet.
En tapant sudo ./blink-tool vous obtenez la liste, fort longue, des commandes utilisables.
Un exemple :
sudo ./blink-tool --red sudo ./blink-tool --yellow sudo ./blink-tool --blue
Simplifions l’utilisation.
Afin d’éviter le sudo préalable à toutes les commandes on doit affecter le matériel dans udev.
Allez dans le dossier /linux de votre installation blink
Puis on copiera le fichier 51-blink1.rules dans /etc/udev/rules.d
# Copy this udev with " sudo cp 51-blink1.rules /etc/udev/rules.d/
puis un
sudo udevadm control --reload-rules
Retirez et reinserez le blink
Repassez dans le dossier commandline et tapez maintenant directement
./blink-tool --red
Raccourcissons la ligne de commande.
Notre outil blink-tool se trouve dans blink/commandline, cela signifie que l’appel devra toujours être blink1/commandline/blink1-tool –red
Ce qui sera rapidement fastidieux, simplifions aussi cela en créant un alias nommé ‘pouet’ 🙄
alias pouet='/home/pi/blink1/commandline/blink1-tool'
Ainsi la commande pouet –red devient l’équivalent de
/home/pi/blink1/commandline/blink1-tool --red
Afin que cette commande persiste au reboot du pi, placez la ligne d’alias dans .bash_aliases. http://doc.ubuntu-fr.org/alias.
Créez le fichier .bash_aliases dans /home/pi
Puis placez y l’alias.
alias pouet='/home/pi/blink1/commandline/blink1-tool'
déconnectez vous, reconnectez vous de votre session ssh.
en ligne de commande un pouet –green fonctionnera.
Pour une utilisation de cet alias au sein de scripts shell il faudra placer en tête du script un
source ~/.bash_aliases shopt -s expand_aliases
afin de pouvoir bénéficier de nos alias du fichier ./bash_aliases
Exemple de script utilisant blink(1)
Ce script récupère la valeur d’un switch et bascule la couleur du blink(1) en fonction de l’état Open/Close.
#!/bin/bash source ~/.bash_aliases shopt -s expand_aliases result=$(curl -s "http://192.168.1.82:8080/json.htm?type=devices&rid=35"| jq -r .result[].Status) if [ $result = "Open" ] then pouet --blue elif [ $result = "Closed" ] then pouet --red fi
Remarquez que l’on utilise jq pour lire les données JSON de Domoticz. Un autre article y fait référence.
Dans le cas ou vous désireriez afficher plusieurs couleurs consécutives il faudra passer par la construction de « pattern ».
Une autre idée (mauvaise) est de faire une boucle infinie
while [ 1 ] ; do pouet -q -l 2 --red pouet -q -l 1 --blue sleep 0.5 pouet -q -l 1 --red pouet -q -l 2 --blue sleep 0.5 done
l’inconvénient est que cela s’exécute sans fin en mémoire et au bout de X boucles comme celle ci, la saturation mémoire approche.
Voila, ce tuto touche à sa fin, il nous aura permis de découvrir la mise en place, sans forcement rentrer dans les arcanes, de blink(1), je vous laisse jouer avec les
blink1-tool --playpattern "10,#ff00ff,0.1,0,#00ff00,0.1,0"
N.B. Il existe une librairie python pour piloter le blink et un mode « serveur », je n’ai pas réussi à utiliser ni l’un ni l’autre (problèmes de compilation sur la Raspberry).
Si vous avez des infos à ce sujet, n’hésitez pas à donner vos solutions dans les commentaires.
Blink(1), Windows & Domoticz
Si vous utilisez et connectez le blink(1) sous Windows, le logiciel Blink(1) propose un mode serveur qui permettra en appelant quelques URL de faire clignoter votre blink comme bon vous semble , documentation ici https://github.com/todbot/blink1/blob/master/docs/app-url-api.md
Le port 8934 du PC est utilisé, il faut aussi penser à lancer le logiciel au démarrage du PC et le laisser allumé 24/24.
Et ainsi une url
http://ip_de_mon_pc_windows:8934/blink1/fadeToRGB?rgb=%23FF00FF&time=6&ledn=2
lancée depuis Domoticz vers mon Pc windows colore la clé 2 (Celle du dessous (B)) en magenta.