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/

Domoticz prend l’air de Paris avec Airparif

« Atmosphère, atmosphère. Est ce que j’ai une gueule d’atmosphère » nous disait notre Domoticz à l’instar d’Arletty  dans Hotel du Nord.

Faisons donc prendre l’air à Domoticz en récupérant depuis le site de Airparif.com les mesures de pollution de la capitale.

pollution parisienne

Nous récupérons depuis une API airparif, 4 valeurs d’indice de pollution (indice global, NO2, O3 et pm10: qui sont les particules )

Un programme python est disponible sur le forum dans la section des scripts https://easydomoticz.com/forum/viewtopic.php?f=17&t=436

I – Prérequis

Ce script utilise 4 widgets Pourcentage qu’il faudra créer en tant que capteurs virtuels pourcentages dans le matériel
Dans la liste des périphériques il faudra les nommer avec la flèche verte (global, no2, o3, pm10) et noter leurs idx respectifs

Ce script nécessite le module python requests.

Pour l’installer

sudo apt-get install python-setuptools puis 
sudo pip install requests

Une fois téléchargé puis recopié sous le nom que vous voulez en .py , faites un chmod +x sur ce fichier

Ouvrez le et
Modiifez vos IP et ports, les éventuels user/password

puis affectez les idx de vos périphériques pourcentage virtuels dans cette partie du script :

periph_idx={'dz_indice_global': 52,
            'dz_no2' : 53,
            'dz_o3' : 54,
            'dz_pm10' : 55
            }

On lance ce script par ./le_nom_choisi.py
On le place dans un crontab -e à la fréquence voulue

Vous pouvez télécharger le script ici :

https://easydomoticz.com/scripts/airparif.py

 

Et pour les plus jeunes d’entre vous voici la vidéo de Hotel du Nord avec Arletty et son mythique « Atmosphère, Atmosphère »

 

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

Domoticz se pythonise

Une petite news vite fait  :

La mise à jour Beta 2363 apporte le support du langage python au même titre que Lua.

MAJ du 06/04: Cette fonction est uniquement disponible si on compile Domoticz à partir des sources. Pas de support natif

applaudissement 💡

Il y a maintenant un dossier script/python dans lequel nous pouvons déployer des scripts écrits en python.

Le « nommage »  de ces script doit correspondre à celui bien connu en Lua : script_device_XXXXXX.py pour déclencher un script sur le changement d’état d’un device.

A aujourd’hui l’équivalent de script_time de Lua n’est pas implémenté.

Chaque script python reçoit plusieurs variables :

+ * changed_device: the current device that changed (object of Device)
+ * changed_device_name: name of current device (same as changed_device.name)
+ * is_daytime: boolean, true when it is is daytime
+ * is_nighttime: same for the night
+ * sunrise_in_minutes: integer
+ * sunset_in_minutes: integer
+ * user_variables: dictionary from string to value

ce qui une fois traduit donne à peu prés

+ * changed_device: le  périphérique qui vient de changer d’état
+ * changed_device_name: le nom du périphérique qui vient de changer d’état(pareil que changed_device.name)
+ * is_daytime: true est renvoyé si c’est journée (daytime)
+ * is_nighttime: true  si c’est la nuit (night)
+ * sunrise_in_minutes:  un entier qui donne le lever du soleil
+ * sunset_in_minutes: entier pour le coucher du soleil
+ * user_variables: L ‘accès aux variables ( string to value)

Chaque script doit débuter par un

import domoticz

Voici quelques commandes glanées dans le code python

  • device.on() et device.on (after=XXX)
  • device.off(), idem ci-dessus
  • device.ison
  • domoticz.devices ; liste des périphériques
  • domoticz.log (le message a affiche dans le log)
  • domoticz.user_variables.get (« nom de la variable »,valeur (??)

Les quelques essais que j’ai mené hier soir après abus de pina colada n’ont pas été concluants (rien dans les logs Domoticz) même avec un test tout simple. 😕

En effet et pour cause : la compilation est obligatoire à partir des sources et non pas via le téléchargement d’une Béta.

Partie remise à plus tard en attente de vos commentaires éclairés.

Un exemple se trouve donc dans le dossier /scripts/python

Bon Week End de Pâques et bonne chasse aux Oeufs.

lapins_nabaztag_geek

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

RFLINK : Un Module 433Mhz Arduino MEGA : Partie 2 : le lien avec Domoticz

A la suite de l’article décrivant le montage électronique du module Rflink dont le rôle est de gérer un ensemble de protocoles 433Mhz, je vous propose ici, toujours avec  la participation de Deennoo de voir la partie inclusion au sein de Domoticz.

Un petit rappel de présentation :

RFLink (http://rflink.sourceforge.net/) est un outil OPENSOURCE/DIY a base d’Arduino Mega qui permet de sniffer et d’envoyer des trames Radio Frequence en 433 MHZ de différents protocoles.

C’est un très bon complément au RFXTRX de RFXCOM.

Les termes Rfxcom/Rfxtrx étant marques déposées par leur propriétaire ne seront pas utilisées ici.

Il a été crée par la Stuntteam, une équipe de développeurs néerlandais passionnés de domotique qui a travaillé auparavant sur Nodo (http://www.nodo-domotica.nl/).

Il est rendu compatible avec Domoticz depuis la bêta  2.2336.

La version stable 2.2344 comporte le support de Rflink.

Il est impératif d’utiliser une carte ARDUINO MEGA, la taille des programme est trop importante pour d’autres modèles d’Arduino.

1 – RFLink dans l’Arduino MEGA

  1. Vous téléchargez le ZIP a cette adresse :  http://sourceforge.net/projects/rflink/?source=typ_redirect
  2. une fois téléchargé il faut le décompresser dans un emplacement de votre choix.
  3. Ouvrez ensuite le dossier dans lequel vous avez tout décompressé puis lancez RflinlLoader.exe
  4. Sélectionnez le rflink.cpp.hex
  5. Choissiez le port Série auquel l’arduino est connecté
  6. Cliquez sur « Programm » et attendez la fin
Mon camarade Deenno nous à fait de jolis slides détaillant l’utilisation de cet outil, en voici le lien https://drive.google.com/file/d/0BwZyGxESbZNpMktucENVWDRXWUU/view.

2 – Branchement au Raspberry

Il est important d’avoir une bonne alimentation électrique pour le RPI (5v 2 Ampères).

  • Vous branchez votre ArduinoMega et son câble Usb a l’une des prises USB du PI.
  • Rendez vous sur la page Matériel de Domoticz :
  • Créez votre nouveau matériel : Rflink Gateway USB. (si cette option n’apparait pas , lisez ici)

rfllin_domoticz

Lire la suite

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

RFLINK : Un Module 433Mhz Arduino MEGA : Partie 1 : le matériel

Grâce à la complicité de mon ami Deennoo, je vous propose cet article qui devrait faire du bruit dans les chaumières, puisque il s’agit ni plus ni moins de confectionner un module compatible avec les protocoles 433Mhz en mode « C’est moi qui l’ai fait ! »

rfl_rxtx
ArduinoMega rf2

Présentation

RFLink (http://rflink.sourceforge.net/) est un outil OPENSOURCE/DIY a base d’Arduino Mega qui permet de sniffer et d’envoyer des trames Radio Frequence en 433 MHZ de différents protocoles basés sur cette fréquence.

RFLink se fait donc passer pour un équipement autre et il est donc reconnu comme tel dans Domoticz.

C’est un très bon complément (pour ne pas dire plus) au RFXTRX de RFXCOM.

Les termes Rfxcom/Rfxtrx étant marques déposées par leur propriétaire ne seront pas utilisées ici.

Le Rflink  fonctionne comme les modèles précédemment cités en embarquant les protocoles les plus populaires..

Il a été crée par la Stuntteam, une équipe de développeurs néerlandais passionnés de domotique qui a travaillé auparavant sur Nodo (http://www.nodo-domotica.nl/).

Il est rendu compatible avec Domoticz depuis la bêta  2.2336.

La version stable 2344 de Domoticz intègre Rflink nativement.

Grâce a des Plug Ins en langage C, Il permet de décoder et de piloter les appareils suivants : (liste exhaustive à ce jour (25/03/15)  mais en constante et rapide évolution.

Prises et interupteurs RF

  • Klik Aan Klik Uit (Code Wheel) (Send + Receive)
  • Princeton PT2262 / MOSDESIGN M3EB / Domia Lite / Klik-Aan-Klik-Uit / Intertechno)
  • CoCo Technologies / Cogex / D-IO (Chacon) / Nexa / Düwi Terminal
  • Klik Aan Klik Uit (Automatic Code Learning) (Send + Receive)
  • Home Easy (Code Wheel) (Send + Receive)
  • Flamingo FA500R/S/DSS/WD (Automatic Code Learning) (Send + Receive)
  • SilverCrest 91210/60494 RCS AAA3680
  • Mumbi M-FS300
  • Unitec 48110 EIM 826 / 48111 EIM 821
  • Elro Home Comfort AB600 (Send + Receive)
  • Intertek Eurodomest 972080(Automatic Code Learning) (Send + Receive)
  • Blyss (Send + Receive)
  • Conrad RSL2 (Receive only)
  • Kambrook RF3399/RF3405/RF3672/RF3689/RF4471R (Receive only)
  • X10 RF switches (Send + Receive)

Capteurs Meteo :

  • Alecto V1:
  • Alecto WS3500, SilverCrest, Otio SHT-10, Otio SHT-20
  • Auriol H13726, Ventus WS155, Hama EWS 1500, Meteoscan W155/W160
  • Alecto WS4500, Ventus W044, Balance RF-WS105
  • Alecto V2: (868 Mhz! A donc besoin d’un )
  • ACH2010, DKW2012
  • Alecto V3:
  • WS1100, WS1200
  • Cresta/Hideki:
  • Hideki, TFA Nexus, Mebus, Irox, Irox-Pro X, Honeywell, Cresta TE923, TE923W, TE821W,
  • WXR810, DV928, Ventus W906, HomeWizard Rain meter
  • Mebus:
  • Mebus Outdoor Sensor
  • Stacja Pogody WS-9941-M
  • UPM/Esic:
  • UPM, Esic, Emos, DVM, Clas Ohlson, Dickson
  • WT260,WT260H,WT440H,WT450,WT450H,WDS500,RG700
  • LaCrosse:
  • Lacrosse TX3-TH Thermo/Humidity, Lacrosse TX4
  • WS7000-15: Anemometer, WS7000-16: Rain precipitation, WS2500-19: Brightness Luxmeter,
  • WS7000-20: Thermo/Humidity/Barometer
  • Auriol:
  • Z31743, Z31055A, Rubicson
  • Oregon V1/2/3:
  • THC238, THC268, THN132N, THWR288A, THRN122N, THN122N, AW129, AW131, THGR268, THGR122X,
  • THGN122N, THGN123N, THGR122NX, THGR228N, THGR238, WTGR800, THGR918, THGRN228NX, THGN500,
  • THGR810, RTGR328N, THGR328N, Huger BTHR918, BTHR918N, BTHR968, RGR126, RGR682, RGR918, PCR122
  • THWR800, THR128, THR138, THC138, OWL CM119, cent-a-meter, OWL CM113, Electrisave
  • UVN128, UV138, UVN800, Huger-STR918, WGR918, WGR800, PCR800, WGTR800, BTHG968

Commande de Volets / Store

  • Kaku ASUN650

Detecteurs de mouvement et d’ouverture de porte :

  • Low Budget Chinese PIR
  • Ajax Chub Varel PIR

Dectecteur Incendie:

  • Mertik G6R H4T1 / Dru

Detecteurs de fumée:

  • KD101 (Send + Receive)
  • Flamingo FA20RF (Send + Receive)

Carillons:

  • SelectPlus (200689103 – Black – Datecode:0614), 1 by One, Delta (O00 QH-0031) (Send + Receive)
  • SelectPlus (200689101 – White – Datecode:0914) (Send + Receive)
  • Byron SX (Send + Receive)
  • Plieger York (Receive) Note that when the Plieger button is detected as Conrad RSL2, you need to use the button on the inside to change the address code of the Plieger.

Nodo Slave Sensors:

  • Temperature, Humidity, UV, barometric Pressure, OpenTherm and any other kind of Nodo sensor you want to include.

On voit bien que pour l’instant le nombre de périphériques supportés est bien moindre que ceux du RfxTrx, mais l’équipe de développement travaille à ajouter de nouvelles compatibilités tous les jours. Et puis, comme c’est open source, libre a vous de développer vos propres Plug Ins pour les protocoles qui ne sont pas encore reconnus et de les partager dans la communauté. 😆

Lire la suite

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