- Nom du scénario : Prunay - Objet parent : Météo - Mode du scénario : schedule - Programmation : */30 * * * * CODE (code) // On récupère les tags du scénario $tags = $scenario->getTags(); // On extrait l'éventuel tag maj $maj = $tags['#maj#']; // Prunay $url = "https://www.infoclimat.fr/observations-meteo/temps-reel/reims-prunay/07072.html"; $data = file_get_contents($url); @$dom = new DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTML($data); libxml_use_internal_errors(false); $xpath = new DomXPath($dom); $j1 = 0;$j2 = 0; $s = 1; // 1 si colonne avec liens vers stations météo //$node = $xpath->query("//*[@id=\"tableau-releves\"]/thead/tr/th[2]/a"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/thead/tr/th[3]/a"); $val = $node[0]->nodeValue; $scenario->setLog("Colonne 'Temps' ? : ".$val); if ($val === "Temps") { $j1 = 1;//Ajout d'une colonne dans le tableau } $scenario->setLog("Valeur de j1 : ".$j1); //$node = $xpath->query("//*[@id=\"tableau-releves\"]/thead/tr/th[".(3+$j)."]/a"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/thead/tr/th[".(6+$s+$j1)."]/a"); $val = $node[0]->nodeValue; if ($val === "Bio-météo") { $j2 = 1;//Ajout d'une colonne dans le tableau } $scenario->setLog("Valeur de j2 : ".$j2); //Heure //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/th/span"); $nouvelle_heure = preg_replace ('#h$#','h00',$node[0]->nodeValue); $cmd = cmd::byString("#723#"); $ancienne_heure = $cmd->execCmd(); $scenario->setLog("Prunay ".$ancienne_heure. " vs ".$nouvelle_heure); //Température $i = 1 + $s; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span[1]"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]"); $nouvelle_temp = $node[0]->nodeValue; $scenario->setLog("Prunay - Température ".$nouvelle_temp); if ( ($nouvelle_heure != $ancienne_heure || $maj) && ($nouvelle_heure != "") && ($nouvelle_temp != "") ) { //Mise à jour heure et température $scenario->setLog("=> Mise à jour Prunay"); $cmd->event($nouvelle_heure); cmd::byString("#724#")->event($nouvelle_temp); //Pluie $i = 3 + $s + $j1; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span/text()"); //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]"); cmd::byString("#725#")->event($node[0]->nodeValue); //Humidité $i = 5 + $s + $j1; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]"); cmd::byString("#726#")->event($node[0]->nodeValue); //Point de rosée $i = 7 + $s + $j1 + $j2; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]"); cmd::byString("#727#")->event($node[0]->nodeValue); //Vent $i = 4 + $s + $j1; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span[1]"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[1]"); cmd::byString("#728#")->event($node[0]->nodeValue); //Rafales $i = 4 + $s + $j1; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/span[5]"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]/span[5]"); cmd::byString("#729#")->event($node[0]->nodeValue); //Pression $i = 8 + $s + $j1 + $j2; //$node = $xpath->query("//*[@id=\"cdata0\"]/td[".$i."]/text()"); $node = $xpath->query("//*[@id=\"resptable-releves\"]/tbody/tr[1]/td[".$i."]"); cmd::byString("#730#")->event($node[0]->nodeValue); //Précipitations $precipitations = 0; for ($k = 3; $k <= 12; $k++) { $node = $xpath->query("//*[contains(@class, \"recap-clim-resp\")]/tr[".$k."]/td[1]"); $texte = $node[0]->nodeValue; $scenario->setLog("Libellé : $texte"); if (stripos($texte, 'Cumul 24h glissantes') !== FALSE) { $scenario->setLog("Match trouvé"); $node = $xpath->query("//*[contains(@class, \"recap-clim-resp\")]/tr[".$k."]/td[2]/div"); $precipitations = $node[0]->nodeValue; } } cmd::byString("#742#")->event($precipitations); }