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/

jq: Manipuler les données JSON de Domoticz en shell

 

jq

 

Ayant eu récemment besoin de parcourir un fichier JSON à la recherche de valeurs (parser un json, quoi!), j’ai mis en place l’outil bien connu jq.

Il s’agit d’un programme pour la ligne de commande qui nous dépiaute tout un json et nous renvoie la valeur recherchée.

Site web http://stedolan.github.io/jq/

Euh oui, d’accord mais à quoi ça sert diront les newbies ?

Rappel du fonctionnement Domoticz via l’API JSON.

Domoticz dans son travail quotidien interroge nos périphériques, range les données dans la base de données et met également à notre disposition un moyen de récupérer les valeurs en question.

Cela passe par l’appel d’une URL ou l’on demande l’état d’un dispositif par son idx. (L’idx est consultable dans le menu des dispositifs)

idx_domoticz

 

Ainsi l’appel dans un navigateur de :

http://ip:8080/json.htm?type=devices&rid=35

 

nous renvoie les données concernant le périphérique dont l’idx est 35. Nous recevons quelque chose comme cela :

{
   "5MinuteHistoryDays" : 1,
   "ActTime" : 1432055898,
   "AllowWidgetOrdering" : true,
   "DashboardType" : 0,
   "Latitude" : "44.",
   "Longitude" : "3.146575",
   "MobileType" : 0,
   "ServerTime" : "May 19 2015 19:18:18",
   "Sunrise" : "06:30:00",
   "Sunset" : "21:23:00",
   "TempScale" : 1.0,
   "TempSign" : "C",
   "WindScale" : 1.0,
   "WindSign" : "m/s",
   "dontcachehtml" : true,
    result" : 
    {
         "BatteryLevel" : 255,
         "CustomImage" : 0,
         "Data" : "Open, Level: 93 %",
         "Favorite" : 1,
         "HardwareID" : 3,
         "HardwareName" : "Rfxcommusb10",
         "HaveDimmer" : true,
         "HaveGroupCmd" : true,
         "HaveTimeout" : false,
         "ID" : "0945F16",
         "Image" : "Light",
         "IsSubDevice" : false,
         "LastUpdate" : "2015-05-06 14:06:44",
         ....
        "Status" : "Open",
         "StrParam1" : ""

La partie que j’ai figurée en vert sont sont paramètres globaux Domoticz généralement peu intéressants.

Nous avons besoin plus souvent de récupérer des valeurs dans la partie du bas précédée par « result », comme la valeur de la batterie, le status (Open,On ou Off) , la date de mise à jour…

L’utilitaire  jq va nous aider à cette tâche.

Son rôle est de lire une trame JSON à la recherche d’un nom et de nous renvoyer la valeur associée.

Voyons comment installer et utiliser cet outil

Installation

Depuis les sources

git clone https://github.com/stedolan/jq.git
cd jq
autoreconf -i
./configure --disable-maintainer-mode
make
sudo make install

Sinon comme maintenant (10/2015) jq fait partie des packages pour les distributions Linux les plus populaires, utilisez votre apt-get, yum, …. favori pour installer  jq

ou sinon pour la version 1.5

wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz
tar xfvz jq-1.3.tar.gz
cd jq-1.3
./configure
make
make install

 

Utilisation

En ligne de commande

curl -s "http://192.168.1.82:8080/json.htm?type=devices&rid=35"| jq -r .Sunrise

nous renvoie la valeur du champ Sunrise

curl -s "http://192.168.1.82:8080/json.htm?type=devices&rid=35"| jq -r .result[].Status

nous permettra de récupérer la valeur du champ « Status »

Remarquez qu’il est écrit result[].Status

Le result est le nom du bloc (écrit en noir plus haut) dans lequel je recherche le champ Status, cette ligne me renvoie donc « Open ».

ATTENTION : les majuscules/minuscules sont importantes, il faut vraiment se référer à ce que l’on obtient dans le navigateur.

Un exemple de script sous bash

#!/bin/bash

result=$(curl -s "http://192.168.1.82:8080/json.htm?type=devices&rid=35"| jq -r .result[].Status)


echo $result

if [ $result = "Open" ]
    then
     curl 'http://192.168.1.82:8080/json.htm?type=command&param=switchlight&idx=112&switchcmd=On&level=0'

elif [ $result = "Closed" ]
    then 
          curl 'http://192.168.1.82:8080/json.htm?type=command&param=switchlight&idx=112&switchcmd=Off&level=0'

fi

L’intégration en Lua
Vous trouverez ici un exemple d’intégration dans un script Lua Domoticz

http://www.domoticz.com/wiki/Battery_level_check#Dependencies_-_hardware_.2F_software_.2F_operating_system

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

Mother & Cookies Sen.se : intégration dans Domoticz 2eme partie

Les créateurs du lapin connecté bien connu ont développé une nouvelle invention « Mother » et ses petits cookies.

Mother

Les cookies sont des capteurs polyvalents connectés à leur « Mother », elle même reliée au cloud.

La société commercialisant cet objet connecté se nomme sen.se
Dans l’article précédent nous avons vu comment récupérer une clé d’API sen.se, créer les widgets Domoticz, etc…
Voyons ici comment installer, configurer le script python de récupération.

Généralités

Vous trouverez plus loin un script python destiné à récupérer les données POUR 1 seul COOKIE.
Si vous envisagez de gérer plusieurs cookies, il faudra recopier le script plusieurs fois sous des noms différents (celui du cookie par exemple) et faire les paramétrages des widgets Domoticz dans chaque script.

N.B : Il existe une bibliothèque spécifique python sense dans un github. J’ai fait le choix de ne pas l’utiliser car autant l’API sen.se est bien décrite et documentée que cette bibliothèque est pauvre en littérature.

Installation

Si ce n’est déjà fait, installer python et pip par un

sudo apt-get install python	 	
sudo apt-get install python-pip

puis  les bibliothèques ssl pour https,  nécessaires pour interroger sen.se.

sudo pip install requests==2.5.3
sudo pip install requests[security]

et si cela ne marchait pas (erreurs SSL lors du lancement du script) faites 
sudo pip install pyopenssl ndg-httpsclient pyasn1

L’intégration de ces 3 dernières bibliothèques ralentit considérablement les scripts écrits en python 2 , python 3 donne des temps d’exécution bien plus rapides.

A ce jour un bug est ouvert https://github.com/pyca/pyopenssl/issues/137

LA solution serait de convertir le script en python3 ou d’atttendre une mise à jour de python2 qui corrigerait ce phénomène.

Le script python

Il n’est pas hyperpythonisé pour qu’il puisse être compréhensible.

Il est téléchargeable ici https://easydomoticz.com/scripts/cookie1.py
Créez un fichier .py au nom de votre cookie par exemple mon cookie se nommant « golden eyes », je choisis de nommer le script golden.py.
Copiez/collez le script dans votre nouveau fichier.

Examinons le contenu du fichier.

La config Domoticz

Tout d’abord arrivent les ip,port, user/password de Domoticz.
Comme j’utilise beaucoup de scripts python j’ai crée, une fois pour toute, un fichier nommé config_Domoticz.py contenant tous les paramètres usuels de ma configuration Domoticz que j’importe systématiquement à chaque nouveau développement.
Voila la structure du config_Domoticz.py

#!/usr/bin/python
 	 
# -*- coding: utf-8 -*-	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
# les parametres de Domoticz	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
domoticz_ip='192.168.1.82'	 	 
domoticz_port='8080'	 	 
domoticz_user=''	 	 
domoticz_password=''	 	 

Créez ce fichier sous le nom de config_Domoticz.py copier/coller les lignes ci-dessus, modifiez suivant votre installation , les ip, port, user,password.
Mais ceci n’est pas obligatoire, bien que pratique.
Vous verrez dans le script python que l’on peut les encoder directement ou faire référence à  ce fichier de paramètres (config_Domoticz.py) que l’on importe et qui fournira ces données. Supprimez le bloc qui n’est pas nécessaire ou commentez le par des # en décommentant l’autre.

~~~~~~~~~~ Parametres Domoticz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
domoticz_ip='192.168.1.82'	 	 
domoticz_port='8080'	 	 
user=''	 	 
password=''	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
#~~~~~~~~~~ Parametres Domoticz importes depuis le fichier config_Domoticz.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
########### import de mes parametres Domoticz #################################	 	 
#import config_Domoticz	 	 
#domoticz_ip=config_Domoticz.domoticz_ip	 	 
#domoticz_port=config_Domoticz.domoticz_port	 	 
#user=config_Domoticz.domoticz_user	 	 
#password=config_Domoticz.domoticz_password	 	 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 

Mode debug et param

La ligne debug=0 peut être modifiée en debug=1 pour afficher les URL lues de chez sen.se et les URL que nous écrirons dans Domoticz.

fparam=0 , le passage à 1 de cette variable permet d’avoir quelques indications sur les widgets à créer.

Repassez ces 2 variables à 0 une fois débuggé l’ensemble.

les idx des widgets

Il s’agit du bloc ci-dessous :

#~~~~~~~~~~~ Parametres des widget Domoticz~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	 	 
### Parametrage des idx des widget de Domoticz ##########################	 	 
## creer un widget 'compteur' poubelle et affecter a son idx tous les parametres	 	 
## non desires 	 	 
periph_idx= { 'Motion_durationSeconds' : 11, 	 	 
 'Motion_numberMovements' : 13,	 	 
 'Motion_avgIntensity' : 14,	 	 
 'Alerte' : 6,	 	 
 'Presence' : 10,	 	 
 'Temperature' : 8,	 	 
 'Batterie' : 7,	 	 
 }	 	 
##################################################################################	 	 

Dans l’article précédent nous avions crée des widgets destinés à recevoir nos valeurs et avions noté leurs idx Domoticz.
Nous allons reporter ces idx en face de chaque paramètre (nommé Event chez Sen.se, regardez l’api sen.se ou l’article précédent pour la signification de ces events)
Ne supprimez pas de ligne dans ce bloc.

Si vous ne désirez pas certaines valeurs, mettez un chiffre bidon, mais gardez les textes tels qu’ils sont.

Ou alors créez un compteur « poubelle » et affectez son idx à tous les compteurs que vous ne voulez pas afficher.
Ainsi si j’ai un compteur caché nomme $dechets dont l’idx est 44 , les 3 valeurs de motion et la batterie ne seront pas affichés dans Domoticz grâce à

periph_idx= { 'Motion_durationSeconds' : 44, 	 	 
 'Motion_numberMovements' : 44,	 	 
 'Motion_avgIntensity' : 44,	 	 
 'Alerte' : 6,	 	 
 'Presence' : 10,	 	 
 'Temperature' : 8,	 	 
 'Batterie' : 44,	 	 
 }	 	 
##################################################################################

Les paramètres de chez sen.se

Ensuite nous  configurons les paramètres de notre compte sen.se

La clé d’api (c.f le 1er épisode ou https://sen.se/board/ ) puis le nom du cookie (c.f le 1er épisode ou https://sen.se/board/ )

# la cle API
sense_api_key = '5qddhhhjtddsj443EFGTYGghgg35RDZfff'
# cookie_id
cookie_name='golden eyes'

Utilisation du script python.

chmod +x golden_eye.py
./golden_eye.py pour le lancer

Vérifiez, vérifiez et vérifiez que tous les widgets sont correctement alimentés.

Une fois correct placez une ligne dans le crontab  à la fréquence que vous désirez par un crontab -e

*/10 * * * * root /domoticz/scripts/golden_eye.py

Cette ligne déclenche le script golden_eye.py toutes les 10 minutes

A ce sujet je constate que les envois de données ne se font pas régulièrement mais à chaque fois que une valeur change pour ce cookie.

Le script python ne récupère QUE la valeur la plus récente.

Merci à Knox du forum pour sa demande initiale, sa participation aux tests et sa relecture attentive.

J’espère que cet article vous prouvera une fois de plus que : Nobody loves me but my mother.

et pour les amateurs de blues | bd
http://zepworld.blog.lemonde.fr/2015/05/18/b-b-king-moi/

 

P.S :Et vous qui êtes le petit cookie de votre Mother, n’oubliez pas de lui souhaiter sa fête le 31 Mai 😆

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

Mother & Cookies Sen.se : intégration dans Domoticz 1ere partie

Les créateurs du lapin connecté bien connu ont développé une nouvelle invention nommée « Mother » et accompagnée de petits « cookies ».

On dirait un croisement entre un barbapapa et une poupée russe.

mother2

Le site « les numériques »  nous  dit que  :

Mother, cette véritable « mère juive », comme s’en amuse son créateur, est à la tête d’une famille de petits capteurs connectés baptisés Motion Cookies. Polyvalents, ceux-ci sont paramétrables. Le principe repose sur l’interrogation : « Qu’est-ce qui est important pour moi en ce moment ? » Tout comme les réponses à cette question, la programmation des tâches est multiple et modulable.

Sécurité, santé, bien-être… Sen.se promet aux utilisateurs d’inventer la vie connectée dont ils ont envie, transformant les Cookies en podomètre connecté, thermomètre, outil de vérification… Quelle distance ai-je parcourue aujourd’hui ? Combien de calories ai-je dépensées ? Mes enfants sont-ils bien rentrés de l’école ? Se sont-ils soigneusement brossé les dents ? Quelqu’un est-il entré chez moi ? Si oui, à quelle heure ? Toutes les activités sont enregistrées et délivrées en temps réel.

source http://www.lesnumeriques.com/objet-connecte/mother-p18525/test.html

Vous pouvez assister à démo publicitaire sur le site web de référence https://sen.se/store/mother/

Le fonctionnement de cette solution est le suivant : chacun des cookies envoie à intervalles réguliers (?) ses infos de geoloc, température, présence…, à  sa ‘mère’ qui elle même retransmet cela sur le site sen.se en mode cloud.

Ainsi on peut suivre individuellement chaque cookie, sa présence, ses paramètres…

On peut imaginer de tels de scénarios :

Je rentre à la maison, il fait nuit dehors, les lumières s’allument, mais si il fait jour j’ouvre les volets.
ou
Si aucune personne n’est détectée dans la maison, on active le mode alarm.

 

Ce qui va nous occuper ici sera la connexion de Mother à notre plate forme préférée de domotique. Pour cela allons devoir interroger l’API de sen.se pour récupérer les données individuelles de chaque capteur-cookie.

 

Vous trouverez plus loin un lien sur script python destiné à cet usage. Ce script ne récupère les données QUE POUR 1 seul COOKIE.

Donc si vous envisagez de gérer plusieurs cookies dans Domoticz, il faudra recopier le script sous un nom différent et faire les paramètrages des widgets Domoticz dans chaque script.

N.B : Il existe une bibliothèque spécifique python sense dans un github. J’ai fait le choix de ne pas l’utiliser car autant l’API sen.se est bien décrite et documentée que cette bibliothèque est pauvre en littérature.

Nous partirons du fait que l’installation est fonctionnelle, que le compte est crée chez sen.se, les capteurs et la mère associés correctement à votre compte comme décrit dans le mode opératoire fourni avec votre achat.

Récupération des identifiants sen.se.

La clé d’API.

Toute l’interrogation du cloud sen.se se base sur des échanges sécurisés en https par le biais d’un identifiant unique nommé « Clé API ».

Rendez vous à l’adresse : https://sen.se/board/, connectez vous à votre compte, utilisez maintenant le menu en haut à  droite pour accéder au menu « Développeur » puis « Clé d’API ».

apikey

Copiez cette clé par un clic droit.

Les cookies

Chaque cookie envoie donc ses données via Mother au board sen.se.

Nous aurons besoin du nom du cookie pour interroger les données lui appartenant.

Allez récupérer le nom dans le menu du bas « Things-Mes objets » ou via ce lien https://sen.se/devices/

Attention : Notez bien les espaces, majuscules/minuscules.

Nom-Cookie

Les données envoyées par les cookies

A l’adresse https://sen.se/api/docs/v2/events/# nous voyons que de nombreuses données sont disponibles.

Certaines sont liées à Mother, d’autres à chacun des cookies.

Le script python dans son état actuel récupère pour un cookie donné les paramètres suivants :

  • Alert : (Détection mouvement) : https://sen.se/api/docs/v2/events/#alert, on récupère une ‘intensité’ (de mouvement j’imagine) sans unité , je n’ai pas d’ordre de grandeur de cette valeur.
  • Presence : Présence de ce cookie auprès de sa mère.  https://sen.se/api/docs/v2/events/#presence la valeur 200 est renvoyée si il est à proximité, 404 si il est hors de vue durant 2 minutes et 201 lorsque le cookie est proche mais n’est pas relié à sa mère (les données ne sont alors pas transmises au cloud sen.se)
  • Motion :  mesure de « secouage™ » du cookie (lavage de dents, sommeil…) https://sen.se/api/docs/v2/events/#motion 3 paramètres sont lus  : « numberMovements », « durationSeconds » , « avgIntensity » et affectés à Domoticz pour l’usage qui vous conviendra dans 3 widgets.

Vous constatez que au total ce sont 7 paramètres maximum que l’on récupère PAR COOKIE.

 Configuration de Domoticz

On a vu qu’au maximum chaque cookie peut envoyer 7 paramètres différents. Il nous faudra donc 7 widgets dans Domoticz.

Respectez les types de widget demandés ci dessous, car le script python s’attend à trouver tel type pour la batterie, tel autre pour la présence et ne saura pas écrire dans le widget si vous ne l’avez pas créé avec le bon type.

Nous créerons les widgets en tant que « capteur virtuel » : mode opératoire ici https://easydomoticz.com/detection-de-presence-basee-sur-ip#virtual_dev/

Alors c’est parti :

  • Temperature : ici ça coule de source vous créerez un capteur virtuel temperature.
  • Battery : capteur compteur de type counter. Il existe bien un type de capteur « Voltage » dans Domoticz mais l’API n’est pas documentée pour son utilisation JSON.
  • Alert : capteur compteur de type counter.
  • Presence : Nous utilisons ici un simple interrupteur pour indiquer On : présence ou Off: absence du cookie. Le troisième état (Not Linked : en vue de Mother mais pas lié à elle !) n’est pas géré. Knox, heureux possesseur d’une Mother nous communique un pack d’icônes prêt à l’emploi destiné à illustrer l’état du switch de Présence du cookie, utilisez ce lien (https://easydomoticz.com/scripts/Cookies.zip) pour télécharger le pack complet.
  • Motion :  Cet événement nous donne 3 valeurs : « numberMovements » , « durationSeconds » , « avgIntensity » que nous afficherons au travers de compteurs « counter »

Les compteurs sont tous des « counter »

counter

Ce type « Counter » ne peut être changé que depuis de menu des « Mesures »

Lorsque vous allez ajouter vos capteurs virtuels depuis le menu des « Dispositifs » par la flèche verte et que le nom vous est demandé pensez à nommer correctement le widget car vous serez amené à avoir le même paramètre pour plusieurs cookies.

Si j’ajoute la batterie pour le cookie nommé « Golden eye » je nomme mon widget « Golden_batt », la température « Golden_temp, « Golden_number », « Golden_seconds », « Golden_intesite », pour les 3 paramètres de motion (c.f. ci-dessus)

Les widgets du cookie « Smooth avocado » seront « Smooth_batt », « Smooth_temp » et vous avez compris.

Depuis le menu des dispositifs Domoticz, notez les idx que vous voulez gérer.

idx_domoticz

 

Je vous laisse digérer tout cela et on se prépare pour la prochaine étape du script python.

De la lecture technique concernant l’API ici https://sen.se/developers/documentation/ et aussi ici  https://sen.se/developers/browse/

Merci à Knox du forum pour sa demande initiale, sa participation aux tests et sa relecture attentive.

Bonus : Knox nous remet un pack d’icônes

COOKYELLOW48_Off COOKYELLOW48_On COOKBLUE48_On COOKGREEN48_On COOKORANGE48_On

prêt à l’emploi destiné à illustrer l’état du switch de Présence du cookie, utilisez ce lien (https://easydomoticz.com/scripts/Cookies.zip) pour télécharger le pack complet et celui ci (https://easydomoticz.com/un-outil-pour-ajouter-nos-icones-domoticz-custom-icons/#icones_envoi) pour un mode d’emploi sur l’ajout de set d’icônes (Réglages/Plus d’options/Icônes Personnalisées)

L’article suivant se trouve ici https://easydomoticz.com/mother-cookies-sen-se-integration-dans-domoticz-2eme-partie/

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

Domoticz : Intégrer les données qualité de l’air en dehors de Paris

Edit du 11/01/2017 : Comme indiqué dans les commentaires l’adresse http://www.lcsqa.org/surveillance/indices/prevus/jour/xml/ ne répond plus. Ce qui suit est donc inexploitable.

Si vous avez des infos sur les endroits ou on peut degoter les indices de qualité d’air, faites en part dans les commentaires.


Après l’article concernant l’intégration des données de qualité de l’air à Paris grâce à Airparif,  voyons comment intégrer la qualité de l’air à Domoticz pour d’autres villes que la capitale.

Un commentaire d’ Emmanuel Pierre nous indiquait l’existence d’un script perl permettant d’intégrer la qualité de l’air depuis le site lcsqa.org : Laboratoire Central de Surveillance de la Qualité de l’Air pour de nombreuses viles Françaises.

Bonjour,

Le même script en perl mais qui permet de récupérer ces données pour une ville de France:

https://github.com/empierre/domoticz/blob/master/AIQ-LCSQA.pl

 

Un commentaire du mois de juin de Nam nous propose un script Lua dont vous trouverez le code plus bas dans l’article.

Le site lcsqa.org  met à notre disposition une API interrogeable par le nom de la ville.

On peut visualiser sur cette carte http://www.lcsqa.org/surveillance/indices/cartographie les indices et récupérer le nom de la ville qui nous intéresse en cliquant dessus..

ou sous forme de liste complété pour une date précise http://www.lcsqa.org/surveillance/indices/liste?date_indice=2015-04-19

Le paramétrage de Domoticz.

Il faut créer dans Domoticz 5 capteurs virtuels « Qualité de l’air » correspondant aux indices partiels et global : indice global, No2, So2,O3, pm10  et noter leur idx respectifs.

Le script Perl

Il nécessite la bibliothèque XML:Simple et JSON :  installez les par

sudo apt-get install libjson-perl libdatetime-perl libwww-perl libxml-simple-perl

Modifiez la partie ci dessous pour la faire correspondre à votre configuration

#A adapter à votre configuration:
my $domo_ip="192.168.0.28";
my $domo_port="8080";
my $agglomeration="PARIS";
my $dz_ind=211;
my $dz_o3=220;
my $dz_no2=221;
my $dz_so2=222;
my $dz_pm10=219;

A noter : Les valeurs des polluants restent souvent à 0 , on ne récupère  que l’indice global.

Le script Lua

Edit du 19/10/2015: suppression du script Lua

Il reste toutefois dans les commentaires de ce billet au cas ou une bonne volonté aurait envie de corriger/refaire un script correct.

 

Ça y est nous avons tous nos indices de pollution comme les parisiens !!

Mais chez nous, pas de pollution !!!

frankreich_bordeaux_aussicht

Merci à Empierre pour son travail.

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