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/

Nouveau système de notification

La version 2404 de Domoticz introduit une nouvelle gestion des notifications liées aux interrupteurs, capteurs, etc.

Le système de notification à été étendu en fonctionnalités et services puisque on peut dorénavant envoyer, pour un même événement,  plusieurs types de notification (mail,sms,http…) mais également paramétrer le contenu des messages de notification.

Examinons cela en précision.

Les notifications : rappels.

Quelques petits rappels : ce sont des messages, principalement destinés à nos smartphones, qui peuvent être envoyés au changement d’état d’un dispositif Domoticz (basculement d’un interrupteur, température supérieure à, inférieure à… ).

Plusieurs systèmes de notification sont disponibles que ce soit pour Iphone (Prowl et PushOver) ou pour Android (Mma, Pushover) et même pour Windows Phone (!) via Pushalot.

Ces services nécessitent  une inscription, les versions ‘free’ ne permettent de recevoir que X notifications par jour, variable suivant les fournisseurs.

L’utilisation de ces services est paramétrable dans le menu « Réglages/Paramètres/Notifications ».

Notifications_Domoticz

Vous pouvez depuis ici accéder aux sites web des fournisseurs de service puis copier/coller les clés d’utilisation qu’ils vous ont octroyées.

Concernant l’utilisation des notifications, les boutons « Notification » permettent de définir les critères d’alerte et depuis la version 2404, bien plus.

En effet, jusqu’à la version 2404, une seule notification pouvait être envoyée.

Maintenant plusieurs services peuvent être contactés pour une même notification, on peut envoyer des SMS par le biais de Clickatell, le contenu des messages envoyés est configurable.

Un lien nous renvoie vers clickatell ou 10 messages sms nous sont offerts, sinon c’est 5.1 centime le SMS (pour la France) une fois le compte ouvert.

Les champs HTTP Personnalisés/Action servent à pouvoir appeler un script ou une url en lui donnant des paramètres.

Ainsi imaginez que je veuille contacter un site web nommé messms.com qui nécessite une url de ce type :

https://www.messms.com/pushurl.php?username=mon_user_name&password=#mon_password&apikey=#ma_cle_secrete&from=#le_nom_de_l’emetteur&to=#le_numero_a_contacter&message=#mon_message

En remplissant comme suit ce formulaire , les champs FIELD1,2,3,4 et TO,MESSAGE sont remplacés par leur correspondance lord de l’envoi de la notification.

notifs2

Donc si votre fournisseur favori de SMS vous donne une url spéciale pour envoyer vos SMS , le paramétrage se fait ici dans le champ URL et les champs FIELD1234 permettre de définir vos user/password …

Si vous avez un autre système à la maison qui dialogue via http, envoyez lui vos notifications par ce biais.

Ce système permet aussi de passer des valeurs à un de vos propres scripts pour peu que celui gère correctement le passage de paramètres.

notifs

Voyez ici que le script home/pi/domoticz/scripts/envsms.sh est appelé et Domoticz « lui donne à manger » FIELD1,FIELD2, MESSAGE que le script utilise suivant sa logique. (Il y a bien 3 / après script:, ce n’est pas une erreur)

Le script ressemble à cela :

#!/bin/sh
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=#FIELD1&pass=#FIELD2&msg=#MESSAGE"

il appelle l’url free ici par exemple et lui passe les 3 variables FIELD1,2;MESSAGE

N.B

En bas de l’écran de configuration des notifications il y a un paramétrage qui permet de définir la fréquence d’envoi des messages de notification afin d’éviter d’être  bipé en permanence par la température de son aquarium.

Par défaut une notification survenant sur un interrupteur est envoyée directement, alors que les capteurs attendront 12h pour vous renvoyer une nouvelle alerte.

notif_intervalles

Gérer les notifications

Sur chaque dispositif on peut assigner des notifications.

notif

L’écran suivant permet d’ajouter autant de notification et de moyen de les envoyer.

ajout_notif

Ainsi on voit ici que si la température est supérieure à 22 , j’envoie un email et une notification via nma (Android) avec le message « Température sup a 22 » et lorsque on est a 28 ° idem plus un sms clickatell avec le message « Temperature sup a 28 ».

Les notifications sur les switches sont configurables de la même manière.

Voila encore une joli avancée qui va nous éviter quelques scripts shell et python 😛

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/