blink(1) : Des notification Domoticz en couleurs !

blink

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.

Blink(1)_Control

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.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in domoticz, domotique, interfaces, materiel, scripts and tagged , , , .

2 Comments

  1. Pingback: French blink(1) reviews & tech article | ThingM Blog

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *