[Python] Recuperation Airparif

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

[Python] Recuperation Airparif

Message par patrice »

Bonsoir
La question de la récupération de la qualité de l'air de ces pauvres parisiens via Airparif ayant été posée sur le forum, j'ai commis un petit script python destiné à alimenter 4 widgets Domoticz.

L'interrogation de l'API Aiparif renvoie, je cite
le réultat est le suivant :
- indice global
- indice no2 pour l'Ozone
- indice o3 pour Dioxyde d'Azote
- indice pm10 pour les Particules fines

Ces indices définissent le niveau de pollution dans l’air extérieur. Ils comprennent 5 niveaux, avec une échelle
allant de 0 (très faible) à >100 (très élevé). Ils prennent en compte les 3 polluants les plus problématiques : les particules (PM10), le dioxyde d'azote (NO2), et l’ozone (O3)
Ce script utilise donc 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.
Notez bien que vous pouvez donner des noms à votre convenance car seuls les idx sont utilisés par la suite.

Ce script nécessite le module requests :

Code : Tout sélectionner

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

Code : Tout sélectionner

sudo apt-get install python-pip
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
Modifez vos IP et ports, les éventuels user/password

puis dans la partie

Code : Tout sélectionner

periph_idx={'dz_indice_global': 52,
            'dz_no2' : 53,
            'dz_o3' : 54,
            'dz_pm10' : 55
            }
vous affectez les idx crées plus haut


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 http://easydomoticz.com/scripts/airparif.py
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
livehome
Messages : 5
Inscription : 28 mars 2015, 17:58

Re: Recuperation Airparif

Message par livehome »

Bonsoir Patrice

je viens de tester ton script à l'instant

Voici l'erreur en sortie du script :

Code : Tout sélectionner

pi@raspberrypi ~/domoticz/scripts/py $ ./airparif.py
http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=94&svalue=39
Erreur API Domoticz
http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=93&svalue=30
Erreur API Domoticz
http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=92&svalue=39
Erreur API Domoticz
http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=91&svalue=20
Erreur API Domoticz
aucun indicateur n'est à jour sur domoticz !
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Recuperation Airparif

Message par vil1driver »

bonsoir,

ici RAS,

joli travail Patrice.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
livehome
Messages : 5
Inscription : 28 mars 2015, 17:58

Re: Recuperation Airparif

Message par livehome »

mon problème est lié à l'autorisation d'accès à l'API de mon domoticz

Code : Tout sélectionner

401 <html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html> {'content-length': '91', 'content-type': 'text/html'}
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Recuperation Airparif

Message par vil1driver »

Password ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
livehome
Messages : 5
Inscription : 28 mars 2015, 17:58

Re: Recuperation Airparif

Message par livehome »

j'ai réglé le problème en mettant l'adresse IP de domoticz dans le parametrage ci-dessous :

Réseaux locaux (pas d'identifiant/mot de passe à fournir):
Réseaux: 192.168.1.X
(Séparer par un point-virgule, par exemple: 127.0.0.*;192.168.0.*)
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Recuperation Airparif

Message par patrice »

Ahh
Pour une fois ou je n'ai pas intégré user/pass
Paf !
Je rajouterai l'Identification ds le script, promis !
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Recuperation Airparif

Message par patrice »

Vous pouvez reprendre le script modifié
Dans les parametres il faut ajouter votre user /password


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.1.82'
domoticz_port='8080'
user=''
password=''
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Merangle
Messages : 81
Inscription : 18 mars 2015, 23:04

Re: Recuperation Airparif

Message par Merangle »

Bonsoir

Merci Patrice pour ce post tout à fait d'actualité.

J'ai eu des problèmes d'installation pour Python
a) j'ai du faire "sudo apt-get install python-pip"
b) j'ai du faire "sudo pip install requests"

et l'installation se fait sans problème

Apparemment, on peut donner un autre nom au widget : AirParif pour global du moment qu'on lui donne le bon numéro d'idx.

A part ces détails, merci pour la solution.
Je cherchais l'api de AirParif pour faire un widget identique... et hop !!!

Bonne soirée
Synology DS212 + RFXTrx433 + AEon Stick S2
Oregon - Thgr122Nx / Chacon - module 1000w - détecteur de fumée 34131 / OWL -CM180 / Greenwave Multiprise
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Recuperation Airparif

Message par patrice »

Bonjour
En effet Merangle, les noms sont laissés au libre choix de l'utilisateur car seuls les idx sont utilisés.
Je complète avec tes remarques concernant requests
et heureux que cela puisse vous servir, pauvres parisiens que vous êtes ....
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Répondre