J'ai cre un script permettant de recuperer les dennées du site http://www.pollens.fr/docs/vigilance.html
Il necessite l'extension GD de php mais si vous ne l'avez pas, j'en ai codé un autre exploitant l'api de cette appli http://www.pollens.fr/alerte-pollens/
Code : Tout sélectionner
<?php
$dep = 89;
//general
$im = imagecreatefrompng("http://www.pollens.fr/docs/Departements_de_France-simple.png");
$x = getDep($dep,"x");
$y = getDep($dep,"y");
$rgb = imagecolorat($im, $x, $y);
$colors = imagecolorsforindex($im, $rgb);
if ($colors['red'] == 0 && $colors['green'] == 128 && $colors['blue'] == 0)
{
$pollens[0]["color"] = "green";
$pollens[0]["class"] = 0;
}
elseif ($colors['red'] == 255 && $colors['green'] == 255 && $colors['blue'] == 0)
{
$pollens[0]["color"] = "yellow";
$pollens[0]["class"] = 1;
}
elseif ($colors['red'] == 255 && $colors['green'] == 153 && $colors['blue'] == 85)
{
$pollens[0]["color"] = "orange";
$pollens[0]["class"] = 2;
}
else
{
$pollens[0]["color"] = "red";
$pollens[0]["class"] = 3;
}
//detail
$i = 1;
$im = imagecreatefromgif("http://www.pollens.fr/docs/d%20".$dep.".gif");
$x = 116;$y = 45;
while ($i != 20)
{
$rgb = imagecolorat($im, $x, $y);
$colors = imagecolorsforindex($im, $rgb);
if ($colors['red'] == 255 && $colors['green'] == 255 && $colors['blue'] == 255 || $colors['red'] == 135 && $colors['green'] == 135 && $colors['blue'] == 135)
{
$pollens[$i]["color"] = "brown";
$pollens[$i]["class"] = 0;
}
elseif ($colors['red'] == 0 && $colors['green'] == 255 && $colors['blue'] == 0)
{
$pollens[$i]["color"] = "green";
$pollens[$i]["class"] = 1;
}
elseif ($colors['red'] == 0 && $colors['green'] == 176 && $colors['blue'] == 80)
{
$pollens[$i]["color"] = "yellow";
$pollens[$i]["class"] = 2;
}
elseif ($colors['red'] == 255 && $colors['green'] == 255 && $colors['blue'] == 0)
{
$pollens[$i]["color"] = "orange";
$pollens[$i]["class"] = 3;
}
elseif ($colors['red'] == 247 && $colors['green'] == 150 && $colors['blue'] == 70)
{
$pollens[$i]["color"] = "red";
$pollens[$i]["class"] = 4;
}
else
{
$pollens[$i]["color"] = "violet";
$pollens[$i]["class"] = 5;
}
$y = $y + 20;
$i++;
}
$pollens["goals"]["min"] = 0;
$pollens["goals"]["max"] = 5;
$pollens[0]["name"] = "general";
$pollens[1]["name"] = "crupressacées";
$pollens[2]["name"] = "noisetier";
$pollens[3]["name"] = "aulne";
$pollens[4]["name"] = "peuplier";
$pollens[5]["name"] = "saule";
$pollens[6]["name"] = "frene";
$pollens[7]["name"] = "charme";
$pollens[8]["name"] = "bouleau";
$pollens[9]["name"] = "platane";
$pollens[10]["name"] = "chene";
$pollens[11]["name"] = "olivier";
$pollens[12]["name"] = "tilleul";
$pollens[13]["name"] = "chataigner";
$pollens[14]["name"] = "rumex";
$pollens[15]["name"] = "graminées";
$pollens[16]["name"] = "plantain";
$pollens[17]["name"] = "urticacées";
$pollens[18]["name"] = "armoises";
$pollens[19]["name"] = "ambroisies";
/*
//affiche dirctement les donnees sur la page web
$j = 0;
while ($j != 20)
{
echo "<font color=".$pollens[$j]["color"].">".$pollens[$j]["name"].": ".$pollens[$j]["class"]."</font><br>";
$j++;
}
*/
$color = $pollens[12]["color"];
$level = $pollens[12]["class"];
//exemple pour domoticz (tilleul) :
file_get_contents("http://192.168.1.147:8080/json.htm?type=command¶m=udevice&idx=160&nvalue=$level&svalue=$color");
function getDep($dep,$v)
{
switch($dep)
{
case "62":
$x = 293;
$y = 39;
break;
case "59":
$x = 355;
$y = 54;
break;
case "76":
$x = 292;
$y = 65;
break;
case "80":
$x = 295;
$y = 74;
break;
case "02":
$x = 360;
$y = 91;
break;
case "08":
$x = 403;
$y = 93;
break;
case "27":
$x = 243;
$y = 124;
break;
case "60":
$x = 303;
$y = 115;
break;
case "51":
$x = 385;
$y = 136;
break;
case "55":
$x = 439;
$y = 149;
break;
case "54":
$x = 470;
$y = 156;
break;
case "57":
$x = 485;
$y = 126;
break;
case "67":
$x = 532;
$y = 143;
break;
case "50":
$x = 150;
$y = 130;
break;
case "14":
$x = 182;
$y = 124;
break;
case "95":
$x = 301;
$y = 132;
break;
case "78":
$x = 288;
$y = 149;
break;
case "91":
$x = 305;
$y = 164;
break;
case "92":
$x = 303;
$y = 149;
break;
case "75":
$x = 308;
$y = 147;
break;
case "93":
$x = 314;
$y = 143;
break;
case "94":
$x = 314;
$y = 152;
break;
case "61":
$x = 215;
$y = 160;
break;
case "28":
$x = 262;
$y = 175;
break;
case "77":
$x = 331;
$y = 158;
break;
case "10":
$x = 375;
$y = 180;
break;
case "52":
$x = 431;
$y = 184;
break;
case "88":
$x = 485;
$y = 186;
break;
case "68":
$x = 520;
$y = 197;
break;
case "29":
$x = 33;
$y = 177;
break;
case "22":
$x = 83;
$y = 167;
break;
case "35":
$x = 135;
$y = 177;
break;
case "56":
$x = 76;
$y = 203;
break;
case "53":
$x = 163;
$y = 192;
break;
case "72":
$x = 215;
$y = 197;
break;
case "41":
$x = 262;
$y = 221;
break;
case "45":
$x = 314;
$y = 206;
break;
case "89":
$x = 360;
$y = 208;
break;
case "21":
$x = 411;
$y = 229;
break;
case "70":
$x = 476;
$y = 221;
break;
case "90":
$x = 507;
$y = 219;
break;
case "44":
$x = 119;
$y = 240;
break;
case "49":
$x = 178;
$y = 236;
break;
case "37":
$x = 232;
$y = 244;
break;
case "36":
$x = 269;
$y = 275;
break;
case "18":
$x = 312;
$y = 275;
break;
case "58":
$x = 359;
$y = 259;
break;
case "71":
$x = 396;
$y = 288;
break;
case "39":
$x = 461;
$y = 281;
break;
case "25":
$x = 483;
$y = 251;
break;
case "85":
$x = 146;
$y = 285;
break;
case "79":
$x = 187;
$y = 287;
break;
case "86":
$x = 225;
$y = 290;
break;
case "23":
$x = 292;
$y = 316;
break;
case "63":
$x = 340;
$y = 341;
break;
case "42":
$x = 390;
$y = 354;
break;
case "03":
$x = 333;
$y = 305;
break;
case "69":
$x = 409;
$y = 339;
break;
case "01":
$x = 439;
$y = 316;
break;
case "74":
$x = 496;
$y = 322;
break;
case "73":
$x = 494;
$y = 367;
break;
case "38":
$x = 455;
$y = 370;
break;
case "05":
$x = 496;
$y = 411;
break;
case "26":
$x = 437;
$y = 411;
break;
case "84":
$x = 442;
$y = 460;
break;
case "13":
$x = 435;
$y = 490;
break;
case "04":
$x = 483;
$y = 447;
break;
case "83":
$x = 494;
$y = 497;
break;
case "06":
$x = 532;
$y = 454;
break;
case "17":
$x = 167;
$y = 341;
break;
case "16":
$x = 206;
$y = 346;
break;
case "87":
$x = 258;
$y = 341;
break;
case "23":
$x = 292;
$y = 396;
break;
case "63":
$x = 331;
$y = 342;
break;
case "43":
$x = 359;
$y = 383;
break;
case "07":
$x = 398;
$y = 419;
break;
case "30":
$x = 396;
$y = 456;
break;
case "33":
$x = 169;
$y = 402;
break;
case "24":
$x = 228;
$y = 389;
break;
case "19":
$x = 282;
$y = 372;
break;
case "15":
$x = 321;
$y = 389;
break;
case "46":
$x = 267;
$y = 419;
break;
case "47":
$x = 210;
$y = 438;
break;
case "40":
$x = 160;
$y = 462;
break;
case "64":
$x = 148;
$y = 505;
break;
case "32":
$x = 223;
$y = 480;
break;
case "82":
$x = 253;
$y = 452;
break;
case "12":
$x = 320;
$y = 439;
break;
case "48":
$x = 364;
$y = 434;
break;
case "65":
$x = 206;
$y = 521;
break;
case "31":
$x = 262;
$y = 495;
break;
case "81":
$x = 293;
$y = 469;
break;
case "34":
$x = 340;
$y = 490;
break;
case "09":
$x = 266;
$y = 531;
break;
case "11":
$x = 305;
$y = 520;
break;
case "66":
$x = 318;
$y = 549;
break;
case "20":
$x = 530;
$y = 557;
break;
}
if ($v == "x")
{
return $x;
}
else
{
return $y;
}
}
?>Code : Tout sélectionner
<?php
// AMBR Ambroisie
// ARMO Armoise
// AULN Aulne
// BOUL Bouleau
// CHAT Chataigner
// CHEN Chene
// CYPR Cypres
// FREN Frene
// GRAM Gramines
// NOIS Noisetier
// OLIV Olivier
// PARI Parietaire
// PEUP Peuplier
// PLAN Plantain
// PLAT Platane
// SAUL Saule
// TILL Tilleul
$key_url = "http://api-pollens.stallergenes.fr/users/api/2.0/json?_dc=1461696648863";
$key_param = "uuid=9150ac7314d0130c&device=Phone&os=Android&version=4.4.2&width=360&height=615";
$cmd = "curl $key_url -X POST -d '$key_param'";
$rep = shell_exec ($cmd);
$rep = json_decode($rep);
$var = json_decode(json_encode($rep), True);
$key = $var["apiKey"];
$arbres = "AMBR%2CARMO%2CAULN%2CBOUL%2CCHAT%2CCHEN%2CCYPR%2CFREN%2CGRAM%2CNOIS%2COLIV%2CPARI%2CPEUP%2CPLAN%2CPLAT%2CSAUL%2CTILL";
$dep = "89";
$req = file_get_contents("http://api-pollens.stallergenes.fr/alerts/api/2.0/json?_dc=1461696689507&key=".$key."&pollens=".$arbres."&departments=".$dep."&dp=1461696690&dpu=1461696648");
$var = json_decode($req);
$var = json_decode(json_encode($var), True);
/*
//affiche directement les données sur la page web
$i = 0;
while ($i != 17)
{
$l = $var["data"]["alerts"][0]["pollens"][$i]["level"];
if ($l == 0)
$c = "green";
elseif($l == 1)
$c = "yellow";
elseif ($l == 2)
$c = "orange";
else
$c = "red";
echo "<font color=".$c.">".$var["data"]["alerts"][0]["pollens"][$i]["name"].": ".$l."</font><br>";
$i++;
}*/
//exemple pour domoticz
$level = $var["data"]["alerts"][0]["pollens"][2]["level"];
file_get_contents("http://192.168.1.147:8080/json.htm?type=command¶m=udevice&idx=159&nvalue=$level&svalue=$level");
?>PS: Cette api n'est en aucun cas officielle et est le resultat du'une longue analyse du code html,elle peut donc cesser de fonctionner a tout moment.