Buon anno a tutti.
Leggendo (scopiazzando) in vari siti sono riuscito a creare questo codice che mi consente di prelevare da Open-Meteo il file json, con le previsioni per tre giorni, e mi registra un file txt che poi importo su Arduino.
Le mie competenze in questo campo sono giurassiche, per cui richiedo anche informazioni.
La pagina è in php.
Problema 1
Deve lavorare in background senza l’intervento umano.
Problema 2
Deve aggiornarsi ogni -tot- minuti per evitare che faccia troppe richieste al sito in questione, altrimenti mi blocca la consegna dei dati.
NB - L’accesso al file è libero, non ci sono API o password particolari.
Ho bisogno di integrare il codice seguente che funziona bene con l’intervento umano usando il reload -forzato- della pagina, ma questo deve lavorare (aggiornare) in piena autonomia in background.
Inoltre ho alcune domande da farvi per capire come lavora il file.
Un file php di questo tipo lavora solo quando abbiamo una finestra aperta nel browser oppure si carica con un loop infinito anche quando è chiuso il browser?
Se metto uno sleep(tot sec); perché non mi aggiorna la stampa a video?
Uno sleep(tot sec); blocca realmente le richieste?
Si può usare un metodo (tipo WordPress vedi aggiornamento plugins) per aggiornare la pagina ogni tot tempo (credo che ci voglia un Cron, ma non saprei proprio implementarlo)?
Grazie in anticipo.
codice:
<?php
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'https://api.open-meteo.com/v1/forecast?latitude=45.3982&longitude=8.9168¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,pressure_msl,surface_pressure,wind_speed_10m,wind_direction_10m&hourly=temperature_2m,relative_humidity_2m,weather_code&timezone=auto&forecast_days=3');
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
$query = curl_exec($curl_handle);
$data = json_decode($query, true);
$all_data = $query;
echo $all_data;
curl_close($curl_handle);
if (file_exists($filename0)) {
// Non fare nulla
} else {
$fp = fopen('data_2.txt', 'w');
fwrite($fp, $all_data,);
fclose($fp);
}
?>