Script PHP modificato per la gestione dell’output della temperatura sul RasP

di | 12/06/2015

In aggiunta al mio precedente script presente sul sito, da leggere per le varie configurazioni di base e per l’avvio in automatico della trasmissione dei valori rilevati, integro quanto inviatoci dal collega Andrea IZ0XBM, che ringrazio.


Ricordo che tutto deve essere caricato sotto /var/www

Queste le note del collega:

Per avere il beacon della temperatura della città voluta, bisogna modificare prima il file index.php nella cartella meteo.
Alla riga 55 <?php getMeteoTargetweb(“http://weather.yahooapis.com/forecastrss?w=781739&u=c”); ?> bisogna cambiare le sei cifre, quelle di esempio qui sono per la città di Basilea 781739.
Per trovare quella desiderata andare sul sito https://weather.yahoo.com/ nel campo ricerca inserire la città e dare invio.
Nel campo URL ci sarà la risposta voluta, copiare solo le sei cifre che compongono la url ed incollarla nella pagina index.php alla riga 55.

Fatto questo, salvare e aprire la pagina cattura2.php. (NdR da ik5xmk – era cattura.php)
Alla riga 5 modificare la stringa con indirizzo dns associato alla raspberry:
$ch = curl_init(“http://indirizzo dns della raspberry/meteo/index.php”);

(NdR da ik5xmk: mettere “localhost” ove indicato “indirizzo dns della raspberry”)

alla riga sei nel campo $ricerca inserire la città cosi come viene vista dalla pagina Yahoo. In questo caso Basel.

Ciao
Andrea IZ0XBM

Questo lo script che chiameremo cattura2.php, dove presente page.txt ho sostituito page2.txt per far coabitare entrambi gli script qualora presenti sul sistema (era il nostro caso…). ik5xmk

Sono indicati di seguito i dati di Firenze, per ogni città va obbligatoriamente rivista la formattazione della stringa perchè i nomi non hanno la stessa lunghezza, quindi occorre agire sul codice aumentando o diminuendo i valori che “catturano” il testo dentro il file page2 …

*** inizio script, iniziare a copiare da <?

<?php

//cattura la pagina e la registra in un file di testo [page2.txt]

$ch = curl_init(“http://localhost/meteo/index.php”);
$fp = fopen(“page2.txt”, “w”);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

//ricerca nel file quello che ci interessa
//togliendo i caratteri html e quant’altro di non necessario

$ricerca = “Florence”;
//$ricerca1 = “Temperatura”;
$haystack = file(‘page2.txt’);
for ($i=0;$i<count($haystack);$i++)
{
//ogni riga del file e’ un record e facciamo un controllo per vedere
//se quel record contiene la parola cercata
if (strstr($haystack[$i], $ricerca))
{
//ok e’ stata trovata allora gestiscila
//toglie i caratteri html
$risultato[$i]= strip_tags($haystack[$i]);
//ricerca nuovamente nel record trovato per posizionarsi alla parola
$risultato[$i]= strstr($risultato[$i], $ricerca);
//preleva solo caratteri fino alla C (+1 per comprendere la C)
//se metto -1 tolgo oltra alla C anche il segno del grado che non riconosce l’rtx
$risultato[$i]= substr($risultato[$i],0,strpos($risultato[$i], “C”) -1);
//adesso lo formatto coma piace a roberto
$primaparte=substr($risultato[$i],0,7);
$secondaparte=substr($risultato[$i],7,strlen($risultato[$i])-strlen($primaparte));
$msg = $primaparte . “: ” . $secondaparte . “gradi”;
//invia in frequenza
$comando = “texttransmit ir5ubo_b -text ‘”. $msg . “‘”;
$output = shell_exec(“$comando”);

}
}

?>

*** fine script a ?>

Questo il file da “unzippare” sul nostro raspberry che contiene la pagina index.php e la cartella meteo:

meteo