Page 3 sur 4

Re: Recuperation Airparif

Publié : 19 août 2015, 20:56
par MelloXVI
Merci bien !
Enfin bon j'ai du faire une connerie, plus rien ne marche x)

Re: Recuperation Airparif

Publié : 06 mars 2016, 17:49
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

Re: Recuperation Airparif

Publié : 07 mars 2016, 10:50
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é...

Re: Recuperation Airparif

Publié : 07 mars 2016, 18:37
par patrice
Bonsoir
Je ne vous promet pas mais je vais essayer de regarder ça ce soir

Re: Recuperation Airparif

Publié : 07 mars 2016, 20:09
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

Re: Recuperation Airparif

Publié : 07 mars 2016, 21:21
par Flintstones
Nickel chez moi !

Un grand merci Patrice, je n'aurais pas penser à l’identification du navigateur...

Re: Recuperation Airparif

Publié : 09 mars 2016, 09:22
par js-martin
Bien vu Patrice !

Re: Recuperation Airparif

Publié : 20 avr. 2016, 22:55
par bran2000
Merci marche nickel le nouveau script !

Re: Recuperation Airparif

Publié : 04 mai 2016, 22:37
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"


Re: Recuperation Airparif

Publié : 30 juin 2016, 21:59
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