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/

Interrupteurs et Action !

Dans les propriétés d’un interrupteur on trouve deux champs nommés Action On et Action Off qui permettent de déclencher une url http ou https  ou un script lors du basculement de cet interrupteur.

Je voudrais revenir ici sur l’utilisation de ces 2 champs mais plus particulièrement sur le fonctionnement du mode script://

Script://

Ce mode permet donc d’exécuter un script, quelque soit son langage, en précisant ici le chemin complet vers le script en question du style /home/pi/domoticz/scripts/mon_script.php

Donc ATTENTION : puisque la commande est script:// et que mon chemin est /home/pi/domoticz/scripts/mon_script.ph, il faut donc 3 / apres le script :

Oui,oui 3 😯

Action_on_Action_offDans des versions anciennes de Domoticz cela fonctionnait même avec 2 / uniquement mais depuis quelques version les 3 sont obligatoires, donc n’oubliez pas !!

Ce mode script permet de lancer des scripts dans n’importe quel langage du moment que votre script commence bien par un shebang pour que le shell sache quel langage appeler pour l’exécution de votre script://

Éventuellement le chemin complet peut être nécessaire à préciser si votre PATH ne contient pas le chemin vers votre langage de script.

#!/bin/sh -x
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f
#!/usr/bin/python

http://

Rien de spécial à préciser, introduisez ici l’url complète à appeler avec tous les paramètres nécessaires.

Seule remarque : A ce jour le https n’est pas supporté dans les Action On et Action Off,.

Il faudra  passer par un script de votre langage préféré qui,lui, saura faire du https puis indiquer ce script:/// dans Action

PS : on me signale à l’oreillette que l’on peut exécuter plusieurs scripts dans cette barre avec ou sans paramètres. On sépare chacun des scripts par des &&, on fourni les paramètres après l’appel du script (bien entendu votre script doit savoir les gérer…)

Ainsi ; script:///home/pi/multiple.sh && /home/pi/test1.sh && /home/pi/test2.sh test test2

Lance multiple.sh et test1.sh et test2.sh en donnant test1,test2 au script test2

Après concertation avec le staff technique, une autre astuce mérite de figurer ici

C’est le passage de paramètres depuis un script:///

Exemple :

  • dans mon action on  je mets script:///home/pi/…/radio.sh allume
  • dans mon action off je mets script:///home/pi/…/radio.sh eteint

puis mon script radio.sh commencera par un

 

#!/bin/bash
if [ "$*" = "allume" ] ; then
mon action pour faire allume
elif [ "$*" = "eteint" ] ; then
mon action pour eteint
fi

C’est bien entendu adaptable à d’autre langages qui gèrent les passages de paramètres.

Merci a jackslayter pour ces complément.

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

Les Variables dans Domoticz

Présentation

La notion de variable dans Domoticz à été introduite récemment et permet de stocker des valeurs dans la base de données de Domoticz, ces valeurs sont utilisables partout dans Domoticz (scripts lua, blocky, au travers de l’API JSON )

Ces variables peuvent contenir à ce jour :

  • Des entiers 0,-1,2,10,-10
  • Des nombre flottants 5.2,-74.12,3,5,-5,-88.12
  • Des chaines de caractère : On, Off, « le petit bonhomme en mousse » (sans les « )
  • Des dates au format JJ/MM/AAAA
  • Des heures au format HH:MM sur 24H

Comment définir nos variables

Dans le menu « Configuration », « Plus d’options », « Variables utilisateurs »

Lire la suite

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

raspberry et DHT11

Cet article est ABSOLUMENT, COMPLETEMENT PERIME, OBSOLETE, HS.

NE L’UTILISEZ PAS,

je le conserve par attachement sentimental.

Un nouveau tuto est ici https://easydomoticz.com/?p=3824 qui utilise un nouvelle bibliothèque Adafruit fonctionnelle.

Alors ouste !


Voyons ici comment connecter un capteur de température et de % d’humidité DHT11 à notre Raspberry. la procédure est identique pour un DHT22.

  • Mon expérience de la lecture, des plus délicates de ce composant avec un Raspberry, me fait vous conseiller de ne pas utiliser ce composant avec votre Raspberry, tournez vous vers des Ds18b20 de Dallas pour la température ou alors installez un Arduino dédié au DHT11 car  la lecture y fonctionne bien mieux.
  • We noticed that both examples has a chance to lose data. This is because Raspberry Pi is not running at a real-time system, the delay in the program is not accurate enough, and sometimes that leads to a failure of transmission. Because C is a lower level language, it controls the GPIO pin in a more direct way, so the example in C has less chance to fail.As a work around, we can run the program for several times can pick the correct result.  This should also be possible to be done programmatically.
  • En français : Notons que les deux exemples ont des chances de perdre des données. C’est parce que le Raspberry n’a pas de système temps réel, les délais dans les programmes ne sont pas assez précis, ce qui provoque des incidents de transmission. Parce que le C est un langage de plus bas niveau et contrôle les GPIO de façon plus directe, le programme C aura moins de change d’échouer.
  • En solution de contournement nous pouvons lancer ce programme plusieurs fois en espérant avoir un résultat correct.

Vous voyez donc que la lecture des DHT n’est pas, loin s’en faut, facile et reproductible.

L’exemple de script shell ci dessous tente de contourner les problèmes de lecture en interrogeant plusieurs fois le DHT jusqu’a obtenir un résultat de température. Cette méthode surcharge le Raspbery, parfois jusqu’a saturation du CPU.

Ces précautions étant prises et pour les téméraires, voici l’explication de la mise en place.

Merci de ne pas utiliser les commentaires pour dire « Ca marche pas, ça marche pas bien » , vous êtes prévenus.

Un DHT 111

 

Connexion d’un DHT11 au raspberry

    Câblage

  • 1 du DHT au 3.3 V,
  • 2 du DHT au gpio que vous voulez,
  • 3 rien,
  • 4 GND

Entre 1 et 2 une résistance 4.7K Ohm-10 K

300px-RaspberryPiDHT11

http://www.wurst-wasser.net/wiki/index.php/RaspberryPi_Humidity_and_Temperature_Sensor

Lire la suite

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