Les DHT 11, 22, Raspberry ça marche enfin !

Aaahhh, le Raspberry et les DHT de tout type viennent de faire un grand pas car Adafruit met à notre disposition une bibliothèque destinée à faire les acquisitions depuis les DHT11, 22, 2308 QUI FONCTIONNE.

Si, si je vous jure !

un autre article mentionnait ici l’installation et les problèmes liés à l’acquisition des données, c’est du passé.

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

Un DHT 111

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, si ça marche pas avec 4.7K , passez à une 10k.

Attention vérifiez la répartition des pins GPIO suivant votre modèle de Raspberry.

Un tuto en anglais de chez Adafruit : https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/wiring

Software

Les outils Adafruit ont été déplacés sur github et consistent maintenant en une librairie C que nous devrons utiliser dans un script python.

Récupérons les sources et compilons la bibliothèque DHT.

Une fois terminé et pour tester cela, on exécute la commande suivante (pour un  DHT11) , un DHT 22 sera interrogé par Adafruit_DHT 22 XX, XX étant le numéro du GPIO concerné.

J’indique au plus têtus d’entre vous que le sudo EST OBLIGATOIRE pour accéder aux GPIO du Raspi.
Attention : le message d’erreur ci-dessous indique que le mode « device-tree » n’est pas activé sur le Raspberry.

Tapez sudo raspi-config puis dans le point 8 « Advanced Options », faites un « Enable Device Tree » et rebootez.
Vérifiez que tout fonctionne avec :

Le 11 étant le type de DHT que vous avez (11 ,22 ou 2302) et 4 le numéro du GPIO que vous avez câblé.

OK tout est bon on a température et humidité, on passe à la suite.

Attention : Le DHT11 et le  DHT22 ne répondent que 1 fois par seconde, inutile donc de les interroger plus rapidement.

Domoticz

On  va dans l’onglet « Matèriel » pour créer un virtual device puis dans ce virtual device.

On ajoute un virtual sensor Temp+Humidité ,

2014-09-05 19_01_10-Domoticz

Maintenant on revient dans  « Réglages/Dispositifs », on clique sur la flèche verte pour l’ajouter puis on on note l’ IDX Domoticz (44) dans mon cas

2014-09-05 19_03_06-DomoticzLire la suite

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

Dans le lab d’OVH : l’internet des objets et Runabove iot pour Domoticz

« Les vacances scolaires sont là » ou « Comment dépenser notre temps libre en activités chronophages ».

Bien connue pour ses solutions d’hébergement de sites web, OVH innove souvent et propose des produits révolutionnaires comme ces derniers temps l’outil d’agrégation d’ADSL https://www.ovhtelecom.fr/overthebox/ par exemple.

Mais il ne s’agit pas aujourd’hui de présenter un produit fini mais plutôt un concept à tester.

runabove

Je voulais faire découvrir dans cet article une des dernières innovations issue du laboratoire de la société OVH. Il s’agit de IOT, time series , autrement dit une base de données pour l’internet des objets (Internet Of Things) que OVH nous met à disposition pour tester. Suivront des outils de reporting dans un avenir proche.

Notez bien qu’il s’agit d’un produit de laboratoire dont on ne connait pas la durée de vie. Pour l’instant c’est gratuit mais cela ne durera pas. Ne construisez donc rien de définitif basé la dessus pour l’instant.

De quoi s’agit il ?

Il s’agit d’une base de données cloud destinée à stocker des données issues d’objets communicants et à mon avis Domoticz fait partie du lot.

Un descriptif général ici https://www.runabove.com/iot-paas-timeseries.xml

La caractéristique majeure de cette base de données est qu’elle est faite pour stocker des millions de points, rapide à la milliseconde, sans SQL dedans.

Elle appartient à la famille des bases de données dites temporelles ou chronologiques (RRDtools, InfluxDB) qui sont conçues pour ne conserver « QUE » une date/heure, une valeur, le nom à laquelle est relié cette valeur et des tags. 20152013153945125,34,raspberry.temp.cpu,rasp:temp serait un exemple de stockage.

L »idée est donc de pousser des valeurs récupérées de Domoticz dans cette base par quelque programme Lua et python et ensuite d’en faire des graphiques via un outil nommé grafana.

Envoi des données vers iot-pass-timeseries.

Ouvrons un compte par ici https://cloud.runabove.com/signup/?launch=iot

Une fois identifié allez dans le menu de gauche dans « Internet of Things »

Lire la suite

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

Les batteries en Z-Wave

La version de Domoticz v2152 généralise la récupération par Domoticz de l’état des batteries des périphériques Z-Wave.

Certains de nos équipements étant relativement inaccessibles,

Voyons comment récupérer le % de batteries restant et se faire avertir en dessous d’un seuil, histoire d’avoir le temps de changer les piles.

Ce pourcentage est visible depuis le menu de configuration des dispositifs.

Batt_levelC’est celui ci que nous récupérerons grâce à un script python qui alimente un widget « Pourcentage » auquel nous pourrons associer des notifications.

N.B les versions récentes de Domoticz (>2563 de Juin 2015) incluent nativement ce contrôle automatique, utilisez cet article pour en savoir plus.

 I – Domoticz

Commençons par créer un virtual sensor Pourcentage

Comme d’habitude dans « Matériel » et « Create virtual sensor » créons un capteur « Pourcentage »

virtual sensorPuis dans l’onglet des dispositifs, utiliser la flèche verte pour le nommer et le « pousser » dans l’onglet. Noter son Idx (38 ici)

idx_domoticz

Récupérons l ‘IDX du périphérique Z-wave pour lequel l’etat des batteries m’intéresse , ici 105.2014-12-11 13_11_55

2 – Prérequis

L’idée est d’interroger Domoticz pour récupérer l’information sur la batterie de ce composant z-wave.

On utilise l’API Json de Domoticz qui renvoie l’état d’un périphérique et comme depuis la version 2152 on a le % de batterie on peut traiter cela facilement.

L’url interrogée est celle ci : avec IDX qui est la valeur du périphérique Z-Wave

Donc si dans votre navigateur vous lancez un

Vous obtenez cela :

On voit que c’est le terme « BatteryLevel » qui contient le niveau des batteries et qu’il y a un guillemet,espace,deux point avant la valeur.

Bien,

3 – Le script de récupération

Le script python nécessite la bibliothèque requests  un sudo pip install requests fera l’affaire. Si le module pip n’est pas présent : sudo apt-get install python-pip

Dans le script on peut placer debug=1 pour voir ce que l’on reçoit de Domoticz.

On y définit :

  • l’adresse et le port Domoticz, l’Idx du Z-wave a interroger,
  • l’idx du virtual sensor, le terme a rechercher dans la chaine envoyée par Domoticz (BatteryLevel) attention aux majuscules/minuscules.
  • N.B ce script doit pouvoir extraire n’importe quoi de n’importe quelle url JSON Domoticz dans le bloc JSON ‘result’.

adaptez ce qui est nécessaire, puis un chmod +x sur le script pour le rendre exécutable.

Utilisez l’option debug=1 pour consulter les messages envoyés par Domoticz et ce que le script décode.

N.B : En  python 3 pensez à parenthèser les print en bas et à modifier la ligne

en

 4 – Les notifications

Il suffit maintenant d’établir une notification sur ce composant pour être averti à bon escient.

Dupliquez et adaptez ce script pour chaque capteur dont vous voulez suivre la consommation.

5 – Déclenchement régulier

Utiliser crontab -e pour déclencher votre script une fois par jour.

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

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

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

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.

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 :

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 à

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/ )

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

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/