[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.
MelloXVI
Messages : 113
Inscription : 28 avr. 2015, 20:17

Re: Recuperation Airparif

Message par MelloXVI »

Merci bien !
Enfin bon j'ai du faire une connerie, plus rien ne marche x)
Flintstones
Messages : 41
Inscription : 20 janv. 2015, 22:56

Re: Recuperation Airparif

Message par Flintstones »

Bonjour, a priori depuis le 22/02/2016 le script ne fonctionne plus.
J'ai regardé un peu (je ne suis pas un expert).

l'adresse de l'api revoit bien des infos :
http://www.airparif.asso.fr/appli/api/indice?date=jour

mais lors du test du request :
if r.status_code == 200:

r.status_code est = à 404, une idée ? je sèche
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Recuperation Airparif

Message par js-martin »

J'ai le même problème.

Je n'ai pas vu d'où cela venait.

Un test avec http://www.airparif.asso.fr/appli/api montre que la commande requests fonctionne. Il y a peut-être une histoire de synthaxe qui a évolué...
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Recuperation Airparif

Message par patrice »

Bonsoir
Je ne vous promet pas mais je vais essayer de regarder ça ce soir
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 »

Bonsoir

Ah les coquins !
Je m'en doutais un peu

Depuis peu (?) le site de airparif n'accepte plus les connexions directes sans la directive user-agent pour identifier le navigateur ou machin qui fait la demande.
Le script python n'utilisait bien entendu pas cela , je viens de la rajouter à l'instant et cela fonctionne

Je n'ai pas testé l'envoi vers Domoticz (pas mon Domoticz sous la main) mais avec la modif on a plus l'erreur 404
Reprenez le script depuis ici http://easydomoticz.com/scripts/airparif.py
et refaites vos paramétrages et dites moi si c'est ok
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
Flintstones
Messages : 41
Inscription : 20 janv. 2015, 22:56

Re: Recuperation Airparif

Message par Flintstones »

Nickel chez moi !

Un grand merci Patrice, je n'aurais pas penser à l’identification du navigateur...
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Recuperation Airparif

Message par js-martin »

Bien vu Patrice !
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
bran2000
Messages : 8
Inscription : 11 juin 2015, 20:23

Re: Recuperation Airparif

Message par bran2000 »

Merci marche nickel le nouveau script !
bruch05
Messages : 47
Inscription : 27 févr. 2016, 21:06

Re: Recuperation Airparif

Message par bruch05 »

Pour info, version qui fonctionne.

Tof

Code : Tout sélectionner

#!/usr/bin/python

 
import json
import requests
from requests.auth import HTTPBasicAuth
import time


############# Parametres ################################# 

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

domoticz_ip='192.168.0.252'
domoticz_port='8084'
user=''
password=''
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les IDX des switch "Alerte"
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# soit 4 widget POURCENTAGE differents
# un pour l'indice global
# un  pour no2
# un pour O3
# un pour pm10
#remplacer les 116,124,125 par vos idx de vos widgets


periph_idx={'dz_indice_global': 57,
            'dz_no2' : 58,
            'dz_o3' : 59,
            'dz_pm10' : 60
            }

###############  fin des parametres #############################

print "******************************************************************************************"
print time.strftime('Nous sommes en %Y, et il est %H:%M.',time.localtime()) 


# l URL Domoticz pour le widget virtuel 
json_url_text1='/json.htm?type=command&param=udevice&idx='
json_url_text2='&svalue='
#http://IP:PORT/json.htm?type=command&param=udevice&idx=mon_idx&svalue=POURCENTAGE

def maj_widget(domoticz_idx,val):
    requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+val
    print requete
    r=requests.get(requete,auth=HTTPBasicAuth(user,password))
    if  r.status_code != 200:
        print "Erreur API Domoticz"
        print "Erreur API Domoticz"

headers = {
    'User-Agent': 'Mozilla/5.0',
}

r = requests.get('http://www.airparif.asso.fr/appli/api/indice?date=jour', headers=headers)



status=r.status_code
if status == 200:
# l'API renvoie 200 si tout est OK
    airparif=r.json()

#extraire les valeurs du dict avec les cles global,no2,O3,pm10

    #print airparif.get('global')
    globaldict= airparif.get('global')
    val= str(globaldict.get('indice'))
    domoticz_idx=str(periph_idx['dz_indice_global'])
    maj_widget (domoticz_idx,val) 

    #print airparif.get('no2')
    no2dict= airparif.get('no2')
    val=str(no2dict.get('indice'))
    domoticz_idx=str(periph_idx['dz_no2'])
    maj_widget (domoticz_idx,val) 

    #print airparif.get('o3')
    o3dict= airparif.get('o3')
    val= str(o3dict.get('indice'))
    domoticz_idx=str(periph_idx['dz_o3'])
    maj_widget (domoticz_idx,val) 

    #print airparif.get('pm10')
    pm10dict= airparif.get('pm10')
    val= str(pm10dict.get('indice'))
    domoticz_idx=str(periph_idx['dz_pm10'])
    maj_widget (domoticz_idx,val) 

else:

    print "Erreur Api Airparif"

bruch05
Messages : 47
Inscription : 27 févr. 2016, 21:06

Re: Recuperation Airparif

Message par bruch05 »

Bonsoir,

Le script ne fonctionne plus car airparif semble avoir changé le retour de l'appel.
A priori, il n'y a plus le détail par composant de l'air, mais seulement le global pour hier, aujourd'hui et une prévision pour le lendemain.

[{"date":"hier","url_carte":"http:\/\/www.airparif.asso.fr\/services\/cartes\/indice\/date\/hier","indice":33},{"date":"jour","url_carte":"http:\/\/www.airparif.asso.fr\/services\/cartes\/indice\/date\/jour","indice":27},{"date":"demain","url_carte":"http:\/\/www.airparif.asso.fr\/services\/cartes\/indice\/date\/demain","indice":31}]

Est ce que l'un d'entre vous s'est penché sur le sujet ?
Tof
Répondre