Alerte vigilance

Mettez un lien vers vos créations.

Modérateurs : jturlier, Météo Villarzel

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Alerte vigilance

Message par jturlier » 12 juin 2020, 20:24

Bonjour,
pour information, meteofrance a sucré les accès ( erreur : au fichier contenant les infos de vigilance et ) , à la vignette qui permettait d'afficher la vigilance.
Je sais que c'est une mauvaise nouvelle pour certains d'entre nous. :cry:
Cordialement à tous
PS, j'ai modifié le texte de mon post suite à une remarque de Pascal (JP54)
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Alerte vigilance

Message par JP54 » 12 juin 2020, 21:00

Je ne sais depuis quand, mais ton script fonctionne encore
https://www.meteo-jarny.com/index.php
Il fonctionnait cet après-midi nous étions en orange. En tout cas leur nouvelle carte n'est pas mal du tout
https://vigilance.meteofrance.fr/fr
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Alerte vigilance

Message par jturlier » 12 juin 2020, 21:22

Salut Pascal,
peux-tu me passer ton php, car tu ne sembles pas utiliser le même script que moi.
Les stickers ont disparu et le fichier qui contenait tous les départements avec leur situation aussi. Je n'ai plus qu'une vignette avec meteofrance dedans. Peut-être veulent-ils se faire un peu de sous avec de nouvelles applications ... payantes cette fois !
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Alerte vigilance

Message par JP54 » 13 juin 2020, 08:14

je viens de te l'envoyé, tu pourras comparé le tien et le mien, mais ça fonctionne toujours.
https://www.meteo-jarny.com/Vigilance.php
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Alerte vigilance

Message par jturlier » 13 juin 2020, 09:01

Salut Pascal,
je n'ai plus besoin du script, car en fait j'avais rajouté les vignettes MeteoFrance pour avoir l'affichage à l'intérieur de mon header plutôt qu'en fenêtre popup que j'avais désactivée.
Ce sont les vignettes qui ne sont plus disponibles( http://vigilance.meteofrance.com/vignet ... ml?a=34&b=), pas le fichier xml.
Regrettable !!! J'ai donc remis le popup en javascript !
Cordialement
Jean
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Alerte vigilance

Message par JP54 » 13 juin 2020, 11:47

Ok Jean, peut-être que les vignettes seront à nouveau dispo sous une autre forme un peu plus tard. En tout cas comme tu le dis, c'est bien regrettable.
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Alerte vigilance

Message par jturlier » 19 juin 2020, 18:08

Salut Pascal,
d'après ce qu'a répondu la dame qui a traité mon problème c'est qu'en payant j'aurai accès à quelque chose de similaire !!!
Heureusement que ce n'est pas vital, juste une affaire de pognon ... on supprime quelque chose qui fonctionne pour le remplacer par quelque chose de payant!!! C'est presque comme l'industrie pharmaceutique ! Autrefois on soignait les maux de gorge ou les cystites avec du bleu de méthylène qui ne coûtait quasiment rien, maintenant, ce sont des médicaments chers et non remboursés !
Enfin, arrêtons de parler des années 50 et 60, on ne retrouvera pas notre jeunesse !
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

Re: Alerte vigilance

Message par muchistic » 30 août 2020, 15:15

Bonjour à tous

j'ai un petit soucis avec le script de vigilance, j'ai ce message affiché en bas de page :

Code : Tout sélectionner

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 187 Warning: file_get_contents(http://vigilance.meteofrance.com/data/NXFR33_LFPW_.xml): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 187 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 229 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 239 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 249 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 259
j'ai donc modifié le code : file_get_contents() comme indiqué par PascalWMR dans un autre post avec la fonction :

Code : Tout sélectionner

function file_get_contents_curl( $url ) {
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_AUTOREFERER, TRUE );
  curl_setopt( $ch, CURLOPT_HEADER, 0 );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt( $ch, CURLOPT_URL, $url );
  curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE );
  $data = curl_exec( $ch );
  curl_close( $ch );
  return $data;
}
aprés modif voici ce que j'obtient comme erreur :

Code : Tout sélectionner

Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 243 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 253 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 263 Warning: strpos(): Offset not contained in string in /home/httpd/vhosts/meteo-canejan.fr/httpdocs/Vigilance.php on line 273
voici mon script complet, si Jean ou un spécialiste passe par là ?

Code : Tout sélectionner

<!-- réalisé le 24/02/2017 sur une idée de Dominique Herraire, 
conjointement par Dominique et Jean Turlier
Mise à jour le 27/02/2017
La ligne 8 est à personnaliser-->

<?php

function file_get_contents_curl( $url ) {
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_AUTOREFERER, TRUE );
  curl_setopt( $ch, CURLOPT_HEADER, 0 );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt( $ch, CURLOPT_URL, $url );
  curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE );
  $data = curl_exec( $ch );
  curl_close( $ch );
  return $data;
}

$dept="33";	/*******give here departement number with 2 digits****

****************************************************
**********détermination du type d'alerte************
****************************************************/
	function vigi($alerte)										//convert vigilance identifier to description
	{
        switch ($alerte) 
		{
		case 1:
			return " Pas d'alerte";
        break;
		case 2:
			return " Vigilance JAUNE EN COURS";
        break;
		case 3:
			return " Vigilance ORANGE EN COURS";;
        break;
		case 4:
			return " Vigilance ROUGE EN COURS";
        break;
		}
	}
/***************************************************
**********détermination du type de risque***********
****************************************************/
function risque($risque)										
	{
        switch ($risque) {
		case 1:
			return  "     Vent violent";
        break;
		case 2:
			return  "     Pluie-inondation";
        break;
		case 3:
			return  "     Orages";
        break;
		case 4:
			return  "    Inondation";
        break;
		case 5:
			return  "    Neige-verglas";
        break;
		case 6:
			return  "    Canicule";
        break;
		case 7:
			return  "    Grand-froid";
        break;
		case 8:
			return  "    Avalanche";
        break;
		case 9:
			return  "    Vagues-submersion";
        break;
		}
	}
/***************************************************
***************formatage de la date*****************
****************************************************/
function formatdate($madate)
	{
		return substr($madate,6,2).'/'.substr($madate,4,2).'/'.substr($madate,0,4).' à '.substr($madate,8,2).'h'.substr($madate,10,2);
	}
	
	function departement($dept)
{
    $nom_departement = array ( 
		"01" => "l'Ain", 
		"02" => "l'Aisne", 
		"03" => "l'Allier", 
		"04" => "les Alpes-de-Haute Provence", 
		"05" => "les Hautes-Alpes", 
		"06" => "les Alpes Maritimes", 
		"07" => "l'Ardèche", 
		"08" => "les Ardennes", 
		"09" => "l'Ariège", 
		"10" => "l'Aube", 
		"11" => "l'Aude", 
		"12" => "l'Aveyron", 
		"13" => "les Bouches-du-Rhône", 
		"14" => "le Calvados", 
		"15" => "le Cantal", 
		"16" => "les Charentes", 
		"17" => "la Charente-Maritime", 
		"18" => "le Cher", 
		"19" => "la Corrèze", 
		"20" => "la Corse", 
		"21" => "la Côte d'Or", 
		"22" => "les Côtes d'Armor", 
		"23" => "la Creuse", 
		"24" => "la Dordogne", 
		"25" => "le Doubs", 
		"26" => "la Drôme", 
		"27" => "l'Eure", 
		"28" => "l'Eure-et-Loire", 
		"29" => "le Finistère", 
		"30" => "le Gard", 
		"31" => "la Haute-Garonne", 
		"32" => "Gers", 
		"33" => "la Gironde", 
		"34" => "Hérault", 
		"35" => "Ille-et-Vilaine", 
		"36" => "Indre", 
		"37" => "Indre-et-Loire", 
		"38" => "Isère", 
		"39" => "le Jura", 
		"40" => "les Landes", 
		"41" => "le Loir-et-Cher", 
		"42" => "la Loire", 
		"43" => "la Haute-Loire", 
		"44" => "la Loire-Atlantique", 
		"45" => "le Loiret", 
		"46" => "le Lot", 
		"47" => "le Lot-et-Garonne", 
		"48" => "la Lozère", 
		"49" => "le Maine-et-Loire", 
		"50" => "la Manche", 
		"51" => "la Marne", 
		"52" => "la Haute-Marne", 
		"53" => "la Mayenne", 
		"54" => "la Meurthe-et-Moselle", 
		"55" => "la Meuse", 
		"56" => "le Morbihan", 
		"57" => "la Moselle", 
		"58" => "la Nièvre", 
		"59" => "le Nord", 
		"60" => "l'Oise", 
		"61" => "l'Orne", 
		"62" => "le Pas-de-Calais", 
		"63" => "le Puy-de-Dôme", 
		"64" => "les Pyrenées-Atlantiques", 
		"65" => "les Hautes-Pyrenées", 
		"66" => "les Pyrenées-Orientales", 
		"67" => "le Bas-Rhin", 
		"68" => "le Haut-Rhin", 
		"69" => "le Rhône", 
		"70" => "la Haute-Saône", 
		"71" => "la Saône-et-Loire", 
		"72" => "la Sarthe", 
		"73" => "la Savoie", 
		"74" => "la Haute-Savoie", 
		"75" => "Paris", 
		"76" => "la Seine-Maritime", 
		"77" => "la Seine-et-Marne", 
		"78" => "Yvelines", 
		"79" => "les Deux-Sèvres", 
		"80" => "la Somme", 
		"81" => "le Tarn", 
		"82" => "le Tarn-et-Garonne", 
		"83" => "le Var", 
		"84" => "le Vaucluse", 
		"85" => "la Vendée", 
		"86" => "la Vienne", 
		"87" => "la Haute-Vienne", 
		"88" => "les Vosges", 
		"89" => "Yonne", 
		"90" => "le Territoire de Belfort", 
		"91" => "l'Essonne", 
		"92" => "les Hauts-de-Seine", 
		"93" => "la Seine-Saint-Denis", 
		"94" => "le Val-de-Marne", 
		"95" => "le Val-d'Oise" 
	); 
	

	return $nom_departement[$dept];
}
	
/***************************************************/
/***************************************************/
/***************************************************/
/***************************************************/
	
if (strlen($dept)!=2){$dept=substr($dept,0,2);}
/***************************************************
****************début du traitement*****************
****************************************************/
$xml = file_get_contents_curl('http://vigilance.meteofrance.com/data/NXFR33_LFPW_.xml');
 // your file is in the string "$xml" now.
file_put_contents("vigilance.xml",$xml); 					// now your xml file is saved. There is no way to use directly fopen with xml web page
$position = strpos($xml, "dateinsert="); 					// look for dateinsert
$dateinsert= substr($xml,$position+12,12);					// get its value
$position = strpos($xml, "dateprevue="); 					// look for dateprevue
$dateprevue= substr($xml,$position+12,12);					// get its value
$texte='Vigilance météo pour le département de la Gironde et/ou son littoral \n\n';$datediffusion = "Diffusion : le ".formatdate($dateinsert);
$datedebut = "Validité : jusqu'au ".formatdate($dateprevue);
$pos=0;
/***************************************************/
$position = strpos($xml, '<DV dep="'.$dept.'" coul=');		//locate departement
$couleur= substr($xml,$position+19,1)*1;						// get its vigilance value
/***************************************************/
/*****************entête de la box******************/
/***************************************************/
if ($couleur !=1)
	{
	$texte .=$datediffusion. '\n';
	$texte .=$datedebut.'\n';
	$texte .=  vigi($couleur);
	$texte .= '\n';
	}
/***************************************************/
/***************************************************/
/**************Détermination des risques************/
/***************************************************/
/***************************************************/

/***************************************************/
/************Détermination du 1er risque************/
/***************************************************/
 if ($couleur !=1 )
	{
	$pos = strpos($xml, "risque val=",$position); 			// in case of vigilance locate its risque identifier
	$risque= substr($xml,$pos+12,1);						//get risque identifier
	$texte .= " Risque(s) : ";
	$texte .= '\n';
	$texte .= risque($risque);								//get risque description
	$pos +=1;												//offset to start 1 char farer
	/***************************************************/
	/***********Détermination du 2éme risque************/
	/***************************************************/
	$pos1 = strpos($xml, "risque val=",$pos)*1;
	if (($pos1-$pos)<20)
		{ 
			$risque= substr($xml,$pos1+12,1);
			$texte .= '\n';
			$texte .= risque($risque);
			$pos1 +=1;
		/***************************************************/
		/**********Détermination du 3ème   risque***********/
		/***************************************************/
		$pos2 = strpos($xml, "risque val=",$pos1)*1;
		if (($pos2-$pos1)<20 )
			{ 
				$risque= substr($xml,$pos2+12,1);
				$texte .= '\n';
				$texte .= risque($risque);
				$pos2 +=1;
			/***************************************************/
			/**********Détermination du 4ème   risque***********/
			/***************************************************/
			$pos3 = strpos($xml, "risque val=",$pos2)*1;
			if (($pos3-$pos2)<19)
				{ 
					$risque= substr($xml,$pos3+12,1);
					$texte .= '\n';
					$texte .= risque($risque);
					$pos3 +=1;
				/***************************************************/
				/**********Détermination du 5ème   risque***********/
				/***************************************************/
				$pos4 = strpos($xml, "risque val=",$pos3)*1;
				if (($pos4-$pos3)<20)
					{ 
						$risque= substr($xml,$pos4+12,1);
						$texte .= '\n';
						$texte .= risque($risque);
						$pos4 +=1;
					}
				}
			}
		}
	}
	$texte .= '\n';
/***************************************************/
/***************************************************/
/***************Departement littoral****************/
/*************cas où on a un dept +10***************/
/***************************************************/

$couleur1=0;
$position1 = strpos($xml, '<DV dep="'.$dept.'10" coul=');		//locate departement value
$couleur1= substr($xml,$position1+21,1);	
				// get its vigilance value
/***************************************************/
/**************Détermination vigilance**************/
/***************************************************/
if ($pos!=0)
	{
	/***************************************************/
	/***********entête si le reste du dept *************/
	/*************n'est pas en vigilance****************/
	/***************************************************/
	if (($couleur1>1) && ($couleur<=1))
		{
		$texte .=$datediffusion. '\n';
		$texte .=$datedebut.'\n';
		$texte .= '\n';
		}
	}	
if ($couleur1 >1)		
	{
	$texte .="Littoral : ".  vigi($couleur1);
	$texte .= '\n';
	$pos = strpos($xml, "risque val=",$position1); 			// in case of vigilance locate its risque identifier
	$risque= substr($xml,$pos+12,1);						//get risque identifier
	$texte .= " Risque :".'\n'.risque($risque);//get risque description
	}
	
if ($couleur1 >=3 || $couleur >=3  )
	{
	$posdeb = strpos($xml, '<VCOMMENTAIRE texte="'); 		// look for dateinsert
	If ($posdeb>10)
		{
		$posdeb += 21;
		$posfin = strpos($xml, '"/>',$posdeb); 				// look for dateinsert
		$long=$posfin-$posdeb;
		$commentaire= substr($xml,$posdeb,$long);
		if(strlen($commentaire)>70)
			{
			$texte .='\n\n Commentaires : \n';	
			/***************************************************/
			/**************Mise des commentaires****************/
			/********** sur plusieurs lignes pour***************/ 
			/*********réduire la taille de la boxe**************/
			/***************************************************/
			$posbeg=0;
			$i=0;
			$nbligne=floor($long / 70)+1;
			while ($i < $nbligne) :
				{
				if ($posbeg+70>strlen($commentaire)) {$myoffset= strlen($commentaire)*1;}
				else {$myoffset=$posbeg+70;}
				$posend=strpos($commentaire," ",$myoffset)*1;//(($i+1)*50));
				if ($posend==0) {$posend=$long;}
				$mylong=$posend-$posbeg;
				$myline = substr($commentaire,$posbeg,$mylong);
				$texte .= $myline.'\n';
				$i++;
				$posbeg=$posend;
				} 
			endwhile;
			}
		else
			{
				$texte .='\n\n Commentaires Météo France : \n';	
				$mycomment=$commentaire;	
			}
		}
	}
$texte .= '\n';
$texte .= '\nPlus de details en cliquant sur la carte de vigilance';
$texte .= '\nSource : Météo France';
?>


<script type="text/javascript">
var texte = "<?php echo $texte; ?>";
var couleur = "<?php echo $couleur; ?>";
var couleur1 = "<?php echo $couleur1; ?>";
//if((couleur != 1 || couleur1 != 1 ) &amp;&amp; couleur !=2 ){alert (texte);};		//create popup alert box without yellow vigilance
if(couleur >= 2 || couleur1 >= 2   ){alert (texte);};					//	create popup alert box for vigilance 2, 3 and 4
</script>
https://www.meteo-canejan.fr/index.php message d'erreur en bas de page
Bon dimanche à tous
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Alerte vigilance

Message par jturlier » 31 août 2020, 13:51

Salut Domi,
n'oublie pas que cURL ne fonctionne que pour les sites sécurisés de type https, et pas http ! (c'est pour ça qu'il a été créé, du moins je crois)
Amicalement
Jean
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

muchistic
Messages : 142
Enregistré le : 17 févr. 2014, 20:20
Localisation : Canejan (33)
Contact :

Re: Alerte vigilance

Message par muchistic » 31 août 2020, 13:58

Bonjour Jean
merci pour ta réponse, les messages d'erreurs ont disparus peu après que j'ai posté mon message, pourquoi ?? j'en sais rien :D :D
Le lien MF était pourtant toujours actif !
Amicalement
Dominique
https://www.meteo-canejan.fr/

ma config : VP2sql , Weaterlink 6.03 , NOAAtable, minimaxibis (sonde agricole), Windows 10 .

Répondre