Page 1 sur 4

[Python] Recuperation Airparif

Publié : 29 mars 2015, 19:57
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

Re: Recuperation Airparif

Publié : 30 mars 2015, 20:12
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 !

Re: Recuperation Airparif

Publié : 30 mars 2015, 20:44
par vil1driver
bonsoir,

ici RAS,

joli travail Patrice.

Re: Recuperation Airparif

Publié : 30 mars 2015, 22:22
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'}

Re: Recuperation Airparif

Publié : 30 mars 2015, 23:19
par vil1driver
Password ?

Re: Recuperation Airparif

Publié : 31 mars 2015, 08:51
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.*)

Re: Recuperation Airparif

Publié : 02 avr. 2015, 12:20
par patrice
Ahh
Pour une fois ou je n'ai pas intégré user/pass
Paf !
Je rajouterai l'Identification ds le script, promis !

Re: Recuperation Airparif

Publié : 02 avr. 2015, 13:58
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=''

Re: Recuperation Airparif

Publié : 10 avr. 2015, 23:59
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

Re: Recuperation Airparif

Publié : 11 avr. 2015, 09:02
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 ....