Pollens

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Domo89
Messages : 15
Enregistré le : 04 août 2015, 00:49

Pollens

Message par Domo89 » 06 mai 2016, 09:24

Bonjour,
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&param=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;
		}
	}
	?>
et saans GD (moins fiable):

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&param=udevice&idx=159&nvalue=$level&svalue=$level");
	?>
J'ai mis un exemple pour chaque script,il suffit de modifier (pour changer de pollen) le 12 de $color = $pollens[12]["color"] pour le premier et le 2 de $level = $var["data"]["alerts"][0]["pollens"][2]["level"]; pour le second.
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.
Modifié en dernier par Domo89 le 07 mai 2016, 01:25, modifié 2 fois.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


vil1driver
Messages : 5120
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Pollens

Message par vil1driver » 06 mai 2016, 09:54

Salut,

Merci du partage ;)

deennoo
Messages : 4006
Enregistré le : 25 janv. 2015, 02:00

Re: Pollens

Message par deennoo » 07 mai 2016, 00:48

Merci pour ce Script !

Je prends la version GD

Par contre j'ai un petit probleme : je souhaite avoir le niveau d'alerte "general" donc le [0] dans le classement.

Habitant en Gironde et suivant cette carte :

http://www.pollens.fr/docs/Departements ... simple.png

Mon niveau doit etre "vert" mais le script me remonte "red".

Une idee?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

Domo89
Messages : 15
Enregistré le : 04 août 2015, 00:49

Re: Pollens

Message par Domo89 » 07 mai 2016, 01:26

Corrige,
Le script etant assez recent,je n'avais pas encore la decomposition de la couleur verte (si aucune couleur ne corrspond c'est la rouge qui est affichée).

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


deennoo
Messages : 4006
Enregistré le : 25 janv. 2015, 02:00

Re: Pollens

Message par deennoo » 07 mai 2016, 01:35

Comme il depote le Gars ! le triangle est Gris...tj pas vert (idem chez les moustiques)
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

Domo89
Messages : 15
Enregistré le : 04 août 2015, 00:49

Re: Pollens

Message par Domo89 » 07 mai 2016, 02:18

Pour les pollens et moustiques,il y a 5 ou 6 valeurs possibles j'utilise donc le gris en primier en plus des autres (tu peux verifier que le systeme marche en decommantant la section "affiche dirctement les donnees sur la page web" normalement le script renvoie un code html et dans ton cas tu peux lire

Code : Tout sélectionner

<font color=green>general: 0</font>
).Tu peux changer ca sur les lignes 12 a 28 et 41 a 67

Code : Tout sélectionner

$pollens[$i]["class"] = 2;
,0 c'est gris,1 vert,2 jaune ... et pour les moustiques suffit de changer les ligne 29 a 41

Code : Tout sélectionner

$mosquitto = "0";

deennoo
Messages : 4006
Enregistré le : 25 janv. 2015, 02:00

Re: Pollens

Message par deennoo » 07 mai 2016, 08:03

Merci
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

natacha3
Messages : 17
Enregistré le : 19 oct. 2016, 13:47

Re: Pollens

Message par natacha3 » 26 févr. 2017, 20:36

Je tenterais bien l'installation de de script (avec les beaux jours qui reviennent, les pollens ne tarderont pas !) mais j'ai peur de faire des bêtises avec mon domoticz qui marche plutôt bien !

Est-ce que pour installer l'extension GD cette commande irait bien ?

Code : Tout sélectionner

sudo apt-get install php5-gd

Et dans les 2 scripts (bien sûr je n' en utiliserait qu'un !) il s'agit bien de les enregistrer sous "script_device_xxx.lua" ?

Merci !

brogen67
Messages : 35
Enregistré le : 13 oct. 2016, 09:50
Localisation : Alsace
Contact :

Re: Pollens

Message par brogen67 » 16 mars 2017, 15:50

Salut à tous,

Je sais, je sais... ce n'est pas exactement le bon endroit pour, mais...

Je ne sais pas trop comment utiliser ce genre de script. C'est la première fois que je souhaite en mettre un en place, et je suis un peu comme un âne devant mon domoticz ^^.

J'ai chercher comment mettre en place un script php, mais... je n'ai pas l'impression que ce soir la bonne façon de faire (mettre le script dans la section "Action ON" du périphérique

Si une âme charitable pouvait partager un lien, ou un tuto ce serait vraiment super sympa :-).
Box domotique Homewizard + Raspberry Pi3 avec domoticz + RFLINK

manu663
Messages : 71
Enregistré le : 06 août 2016, 14:35

Re: Pollens

Message par manu663 » 18 mars 2017, 16:26

Salut Brogen,

Je vais tenter de répondre à ta question mais je ne suis pas le plus qualifié pour ça. :oops:
Voilà comment je fais:

Tout d'abord pour manipuler le script, je me sers de notepad++ (menu langage/L/LUA) pour du ... lua bien sûr! :mrgreen:
une fois le script édité et adapté (config, IP, mot de passe, adressage ou tempo bref tu te le customise à ta sauce) je le sauvegarde avec le nom suivant:
script_device_xxle nom de ton scriptxx.lua

(attention les scripts peuvent être de 2 types:
device=si changement d' état d' un capteur ou autre
time=s'execute en fonction de l'heure

donc par exemple pour un scrip que je nommerai "exemple":
script_time_exemple.lua
ou
script_device_exemple.lua

Puis avec le programme Win SCP (par exemple) je transfère ce fichier script dans mon raspberry a l'emplacement suivant:
home/pi/domoticz/scripts/lua

Voilà, n'hésites pas à revenir si tu as des soucis !

==> Natacha3, désolé mais je n' ai pas installé ce script et mes connaissances sont trop limitées pour pouvoir t'aider.
Mais je ne doute pas qu'un balaise du forum passera ici et te donnera le coup de main attendu ! Patience !

[EDIT] Oh le boulet ! C'est effectivement du PHP ! :roll:
Modifié en dernier par manu663 le 20 mars 2017, 14:55, modifié 3 fois.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre