[Python] Recuperation Airparif
Re: Recuperation Airparif
Bonjour
En effet le format à changé, les indices individuels ne sont plus renvoyés , il n'y a que les indices globaux.
Si une bonne ame à le temps de se pencher sur le sujet ...
En effet le format à changé, les indices individuels ne sont plus renvoyés , il n'y a que les indices globaux.
Si une bonne ame à le temps de se pencher sur le sujet ...
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
airparif diffuse ses données sur le site http://www.lcsqa.org/
les indices du jour pour Paris sont disponible via le script lua
viewtopic.php?f=17&t=2006&p=17939
ou via
http://easydomoticz.com/domoticz-integr ... -de-paris/
les indices du jour pour Paris sont disponible via le script lua
viewtopic.php?f=17&t=2006&p=17939
ou via
http://easydomoticz.com/domoticz-integr ... -de-paris/
-
Flintstones
- Messages : 41
- Inscription : 20 janv. 2015, 22:56
Re: Recuperation Airparif
J'ai enfin pris le temps de faire la modif et d'essayer ce script.
Ca fonctionne sauf pour le SO² qui ne sont pas dans la page données du jour mais ils sont dans la page données consolidées.
Une idée pour modifier le script pour aller faire une recherche sur les données consolidées ?
Ca fonctionne sauf pour le SO² qui ne sont pas dans la page données du jour mais ils sont dans la page données consolidées.
Une idée pour modifier le script pour aller faire une recherche sur les données consolidées ?
Re: Recuperation Airparif
faire deux appels de fichiers pour récupérer les infos du fichier consolidé.
-
Flintstones
- Messages : 41
- Inscription : 20 janv. 2015, 22:56
Re: Recuperation Airparif
c'est ce que j'essaye de faire.... mais je ne suis pas un pro 
des que j'y arrive je posterai ma solution.
des que j'y arrive je posterai ma solution.
-
Flintstones
- Messages : 41
- Inscription : 20 janv. 2015, 22:56
Re: Recuperation Airparif
je seche sur la ligne " print Dumper $decoded; " .
a priori elle ne fonctionne pas et donc je n'arrive pas à voir comment est renvoyé la liste des données consolidées
a priori elle ne fonctionne pas et donc je n'arrive pas à voir comment est renvoyé la liste des données consolidées
Re: Recuperation Airparif
Bonjour,
Lorsque je lance le script ./airparif.py, j'obtiens l'erreur suivante :
airparif.py = r.json()
TypeError:'List' object is not callable
Merci pour votre aide
Lorsque je lance le script ./airparif.py, j'obtiens l'erreur suivante :
airparif.py = r.json()
TypeError:'List' object is not callable
Merci pour votre aide
-
Flintstones
- Messages : 41
- Inscription : 20 janv. 2015, 22:56
Re: Recuperation Airparif
Airparif ne renvois plus depuis longtemps les infos.
voici un nouveau script celui ci récupère les données de la veille.
Il faudra définir 5 custom sensors (Global,O3,no²,so²,pm10) :
Penser à mettre a jour :
- l'adress ip
- l'agglomeration : la liste
- les idx des sensors
et peut-etre à installer les librairies necessaires : sudo apt-get install libjson-perl libdatetime-perl libwww-perl libxml-simple-perl
voici un nouveau script celui ci récupère les données de la veille.
Il faudra définir 5 custom sensors (Global,O3,no²,so²,pm10) :
Penser à mettre a jour :
- l'adress ip
- l'agglomeration : la liste
- les idx des sensors
et peut-etre à installer les librairies necessaires : sudo apt-get install libjson-perl libdatetime-perl libwww-perl libxml-simple-perl
Code : Tout sélectionner
#!/usr/bin/perl
use v5.14;
use LWP::Simple; # From CPAN
use XML::Simple; # From CPAN
use strict; # Good practice
use warnings; # Good practice
use utf8;
use POSIX;
use feature qw< unicode_strings >;
use Time::Piece;
use Time::Seconds;
#Support: domoticz@e-nef.com ou forum Domoticz
#Pour ajouter les librairies necessaires:
#sudo apt-get install libjson-perl libdatetime-perl libwww-perl libxml-simple-perl
#A adapter a votre configuration:
my $domo_ip="xxx.xxx.xxx.xxx";
my $domo_port="8080";
my $agglomeration="xxx";
my $dz_ind=xxx; #ID d'un device virtuel de type CO2 pour tous les suivants
my $dz_o3=xxx;
my $dz_no2=xxx;
my $dz_so2=xxx;
my $dz_pm10=xxx;
#Ne pas toucher en dessous
# subtract secs in day from current epoch time
my ($s, $min, $h, $d, $m, $y) = localtime();
my $hier = strftime "%Y-%m-%d", $s, $min, $h, $d-1, $m, $y;
my $trendsurl = " http://www.lcsqa.org/indices-qualite-air/xml/$hier";
my $json = get( $trendsurl );
die "Could not get $trendsurl!" unless defined $json;
my $xml = new XML::Simple;
# Decode the entire JSON
my $decoded = $xml->XMLin( $json );
foreach my $f ( @{$decoded->{node}} ) {
if ($f->{"agglomeration"}eq $agglomeration) {
print $f->{"valeurIndice"} . " " . $f->{"SousIndiceO3"} . " " . $f->{"SousIndiceNO2"} ." ". $f->{"SousIndiceSO2"} . " " .$f->{"SousIndicePM10"} . "\n";
my $payload=$f->{"valeurIndice"};
if (isdigit($payload)) { `curl -s "http://$domo_ip:$domo_port/json.htm?type=command¶m=udevice&idx=$dz_ind&nvalue=0&svalue=$payload"`; }
$payload=$f->{"SousIndiceO3"};
if (isdigit($payload)) { `curl -s "http://$domo_ip:$domo_port/json.htm?type=command¶m=udevice&idx=$dz_o3&nvalue=0&svalue=$payload"`; }
$payload=$f->{"SousIndiceNO2"};
if (isdigit($payload)) { `curl -s "http://$domo_ip:$domo_port/json.htm?type=command¶m=udevice&idx=$dz_no2&nvalue=0&svalue=$payload"`; }
$payload=$f->{"SousIndiceSO2"};
if (isdigit($payload)) { `curl -s "http://$domo_ip:$domo_port/json.htm?type=command¶m=udevice&idx=$dz_so2&nvalue=0&svalue=$payload"`; }
$payload=$f->{"SousIndicePM10"};
if (isdigit($payload)) { `curl -s "http://$domo_ip:$domo_port/json.htm?type=command¶m=udevice&idx=$dz_pm10&nvalue=0&svalue=$payload"`; }
}
}