[Python] Recuperation Airparif
Re: Recuperation Airparif
Merci bien !
Enfin bon j'ai du faire une connerie, plus rien ne marche x)
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
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
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
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é...
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
Re: Recuperation Airparif
Bonsoir
Je ne vous promet pas mais je vais essayer de regarder ça ce soir
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
Objectif : WAF > 1
Re: Recuperation Airparif
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
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
Objectif : WAF > 1
-
Flintstones
- Messages : 41
- Inscription : 20 janv. 2015, 22:56
Re: Recuperation Airparif
Nickel chez moi !
Un grand merci Patrice, je n'aurais pas penser à l’identification du navigateur...
Un grand merci Patrice, je n'aurais pas penser à l’identification du navigateur...
Re: Recuperation Airparif
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
Re: Recuperation Airparif
Merci marche nickel le nouveau script !
Re: Recuperation Airparif
Pour info, version qui fonctionne.
Tof
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¶m=udevice&idx='
json_url_text2='&svalue='
#http://IP:PORT/json.htm?type=command¶m=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
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
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