Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio

Cavaliere

Nuovo Utente
6 Dic 2022
18
0
1
Ciao a tutti,
come da presentazione, sono una appassionato meteo che gestisce una stazione meteo semi professionale, gestita da un programma "meteobridge" che manda i dati online attraverso un template chiamato saratoga, dopo anni adesso vorrei crearmi una tabella personalizzata come piace a me, in php, sistemando i dati della stazione come meglio credo e con i caratteri/immagini di riferimento o colori che piu' mi aggradano.

Sto provando a prelevare questi dati che risiedono su un altro foglio php che vi allego, ma non riesco a beccare alcuni tag, sicuramente sbagliero' codice o foglio dove prenderli, mi hanno detto di usare Include per richiamare il foglio ed echo per prendere i singoli dati e farli vedere nel foglio ma a me non riesce, data la mia totale inesperienza.

Dovrei prelevare i dati da una pagina che ha questo codice:
Codice:
// $WX[] array size = 534 entries.
$WX['date'] = '2022-12-08'; // local date
$WX['time'] = '09:29:19'; // local time
$WX['dateUTC'] = '2022-12-08'; // UTC date
$WX['timeUTC'] = '08:29:19'; // UTCtime
$WX['uomTemp'] = '°C'; // UOM temperature
$WX['uomWind'] = 'km/h'; // UOM wind
$WX['uomBaro'] = 'hPa'; // UOM barometer
$WX['uomRain'] = 'mm'; // UOM rain
$WX['mbsystem-swversion'] = '5.3'; // Meteobridge version string (example: "1.1")
$WX['mbsystem-buildnum'] = '4142'; // build number as integer (example: 1673)
$WX['mbsystem-platform'] = 'TL-MR3020V3'; // string that specifies hw platform (example: "TL-MR3020")
$WX['mbsystem-language'] = 'Italian'; // language used on Meteobridge web interface (example: "English")
$WX['mbsystem-timezone'] = 'Europe/Rome'; // defined timezone (example: "Europe/Berlin")

Il template che uso ora oltre a generare questo foglio con i dati sopra indicato, che dovrei prelevare, genera anche un file di dati tramite ajax, usando questo sistema:
Codice:
http://www.ombarcellonapg.com/saratoga/MB-plugin/conds.php?d=[DD]/[MM]/[YYYY],[hh]:[mm]:[ss],[th0temp-act],[th0hum-act.0],[th0dew-act],[wind0avgwind-act],[wind0wind-act],[wind0dir-act],[rain0rate-act],[rain0total-daysum],[thb0seapress-act],[wind0dir-act],[wind0wind-act=bft.0],m/s,C,hPa,mm,--,[thb0seapress-val60:--],[rain0total-monthsum],[rain0total-yearsum],[rain0total-ydaysum],[thb0temp-act],[thb0hum-act],[wind0chill-act],[th0temp-val60:--],[th0temp-dmax],[th0temp-dmaxtime],[th0temp-dmin],[th0temp-dmintime],[wind0avgwind-dmax],[wind0avgwind-dmaxtime],[wind0wind-dmax],[wind0wind-dmaxtime],[thb0seapress-dmax],[thb0seapress-dmaxtime],[thb0seapress-dmin],[thb0seapress-dmintime],[mbsystem-swversion:--],[mbsystem-buildnum:--],[wind0wind-max10],[wind0avgwind-val30],--,--,[uv0index-act:--],--,[sol0rad-act:--],[wind0dir-avg10:--],[rain0total-sum60],--,[mbsystem-daynightflag:--],--,[wind0dir-avg10:--],--,m,--,[mbsystem-daylength:--],--,--,[uv0index-dmax:--]

ed usa questi tag sopra e li trascrive in questo file
Codice:
08/12/2022 09:11:59 16.4 76 12.2 0.0 0.0 144.0 0.0 0.0 1014.7 SE 0 m/s C hPa mm -- 0.2 252.5 944.4 0.0 21.1 66.0 16.4 2.3 16.4 09:10 13.2 06:23 2.7 07:33 4.0 07:29 1014.8 08:52 1013.2 05:17 5.3 4142 0.9 16.4 18.7 1.0 -- 276.0 147.0 0.0 -- 1 -- SSE -- m -- 09:36 -- -- 1.0 _Increasing_clouds_with_little_temperature_change. --

io dovrei prelevare come esemio l'orario e poi la data e a seguire temperatura, umidita' ecc.... non so da quale dei due file conviene fare il prelievo dei dati, per potermi creare una tabella come piace a me.

Mi scuso se e' poco chiaro, ma dovrei mettere i link alle pagine, ma servono 5 messaggi e previa autorizzazione vostra.

Grazie anticipate
 
Aggiungo ulteriori dettagli che possono farmi aiutare da voi:

il file conds.php al suo interno riporta questo :

Codice:
Program: conds.php
# Purpose: receive GET mode conditions from Meteobridge HTTP Push Services
#    and save for MBrealtime.txt
#    to use in ajaxMBwx.js script for AJAX Conditions updates.
 
personalizzata come piace a me, in php, sistemando i dati della stazione come meglio credo e con i caratteri/immagini di riferimento o colori che piu' mi aggradano.
quindi un restyling della "pagina",

potresti agire sul file indexDesktop.php
ne fai una copia che conservi per evitare inconvenienti
poi modifichi a tuo piacere il layout del file citato
possibile ?
 
quindi un restyling della "pagina",

potresti agire sul file indexDesktop.php
ne fai una copia che conservi per evitare inconvenienti
poi modifichi a tuo piacere il layout del file citato
possibile ?
Ciao Marino,
no realmente non pensavo ad un restyling della pagina esistente, ma la creazione di una nuova pagina html o php, che gestisse i dati con un ordine impostato da me in tabelle. Quindi quello che c'e' ora resta cosi com'e'.
 
Per dare un idea migliore e piu' realista di cio' che vorrei realizzare e' questa in allegasto.
 

Allegati

  • tabellaesempio.png
    tabellaesempio.png
    169,5 KB · Visite: 115
forse é difficile anche spiegare e farsi comprendere,

lo script indexDesktop.php contiene tutte le funzionalità per raccogliere i dati che vai cercando,
giusto una piccola parte,
1670674545586.png


se ne fai una copia e modifichi questa, puoi cambiare completamente il codice html e css creando il layout che vuoi, ma trovando già tutti i dati disponibili
 
  • Like
Reactions: Cavaliere
forse é difficile anche spiegare e farsi comprendere,

lo script indexDesktop.php contiene tutte le funzionalità per raccogliere i dati che vai cercando,
giusto una piccola parte,
Vedi l'allegato 8136

se ne fai una copia e modifichi questa, puoi cambiare completamente il codice html e css creando il layout che vuoi, ma trovando già tutti i dati disponibili
Assolutamente si, e' sarebbe ottimo ed ideale.
Ma rispetto a quello che vedi sopra da me indicato come "esempio", mancano altre parti che quel template a quanto pare non ha proprio, almeno integrate in quella pagina.

La rosa dei venti che cambia in base alla direzione, del vento, che dovrei creare in ogni caso e ancora non so come.. Il nome del vento che sta spirando in quel momento. l'orario in cui e' stata rilevata una massima raffica di vento.
le Medie di tutti i sensori. Ma anche le massime registrate da sempre di ogni singolo sensore.
Sempre rispetto all'esempio sopra indicato da parte mia, realizzare delle righe di riempimento in base alla temperatura.

Pensi che sia realizzabile tutto questo con quello gia' esistente?

Comunque sto gia' lavorando ad un template con quasi tutti i tags possibili: http://www.ombarcellonapg.com/saratoga/dashboard2.html Naturalmente sto lavorando alla tabella sottostante.
 
Per dire come prima cosa sto pensando che la tabella in questa pagina si deve aggiornare automaticamente ogni 15-20 secondi, conviene farlo con codice php o html? e quale sarebbe il codice cortesemente?
 
Ho fatto qualche upgrade, ma mi resta qualche intoppo, su una parte di codice php che in base al valore di [rain0rate-act], dovrebbe stamparmi, Assente, Pioggia debole, moderata ecc.... sapete indicarmi dove sbaglio, intanto ho fatto qualche modifica ed il file adesso e' raggiungibile qui http://www.ombarcellonapg.com/saratoga/dashboard2.php. La parte di codice della tabella su cui sto lavorando e' :
Codice:
<table align="center" class="tabella" style="width:1000" >
  <tbody>
    <tr>
      <th height="30" colspan="3" class="intestazione"><p>TEMPERATURA</p></th>
      <th width="314" height="30" class="intestazione"><p>VENTO</p></th>
      <th width="250" height="30" class="intestazione"><p>PIOGGIA</p></th>
    </tr>
    <tr>
      <td height="120" colspan="3" class="valoriprincipali"><p class="valoriprincipali">[th0temp-act.1:--]&deg; C</p></td>
      <td height="120" class="valoriprincipali"><p class="valoriprincipali">[wind0wind-act] km/h [wind0dir-act] [wind0dir-act=endir:--]</p></td>
      <td height="120" class="valoriprincipali"><p class="valoriprincipali">[rain0total-sumday.1:--] mm  [rain0rate-act] mm/h <br>
          <?php
                    if ( ($valore[rain0rate-act] > -0)     and ($valore[rain0rate-act] <=  0.0) )   {print "Assente";}   
                        if ( ($valore[rain0rate-act] > 0.5)   and ($valore[rain0rate-act] <=  5.5) )  {print "Pioggia debole";}   
                    if ( ($valore[rain0rate-act] > 0.032)  and ($valore[rain0rate-act] <= 0.1))      {print "Pioggia moderata";}   
                    if ( ($valore[rain0rate-act] >  0.1)   and ($valore[rain0rate-act] <= 0.167))    {print "Pioggia forte";}   
                    if ( ($valore[rain0rate-act] >  0.167) and ($valore[rain0rate-act] <= 1))        {print "Rovescio";}   
                    if ( ($valore[rain0rate-act] >   1)    and ($valore[rain0rate-act] <= 50))       {print "Nubifragio";}
                    ?></p></td>
    </tr>
    <tr>
      <td width="80" class="valoriminimi">MIN: [th0temp-dmin]&deg; C</td>
      <td width="80" class="valorimedi">MED: [th0temp-davg]&deg; C</td>
      <td width="80" class="valorimassimi">MAX: [th0temp-dmax]&deg; C</td>
        <hr>
 
semplificherei il codice, ma soprattutto sistemerei i valori che mi sembrano un poco a .... caso
PHP:
                                        s$ = "Nubifragio";
if ( $valore[rain0rate-act] <= 5.5 )    $s = "Rovescio";
if ( $valore[rain0rate-act] <= 1 )      $s = "Pioggia forte";
if ( $valore[rain0rate-act] <= 0.5 )    $s = "Pioggia moderata";
if ( $valore[rain0rate-act] <= 0.167 )  $s = "Pioggia debole";
if ( $valore[rain0rate-act] <= 0.1 )    $s = "Assente";
print $s;
 
Ultima modifica:
semplificherei il codice, ma soprattutto sistemerei i valori che mi sembrano un poco a .... caso
PHP:
                                        s$ = "Nubifragio";
if ( $valore[rain0rate-act] <= 5.5 )    $s = "Rovescio";
if ( $valore[rain0rate-act] <= 1 )      $s = "Pioggia forte";
if ( $valore[rain0rate-act] <= 0.5 )    $s = "Pioggia moderata";
if ( $valore[rain0rate-act] <= 0.167 )  $s = "Pioggia debole";
if ( $valore[rain0rate-act] <= 0.1 )    $s = "Assente";
print $s;
Il codice mi sembra in errore alla prima riga o sbaglio? questo codice deve corrispondere al dato del tag RAINRATE, che spiegato in italiano, sarebbe il valore di pioggia che cade durante un evento piovoso, misurato in Millimetri Orari, mm/h, quindi se per esempio: il valore e' 0 la pioggia e' assente, se inizia a piove con un intensita' da 0.5 a 1.5 lo definiamo pioggia debole, se invece aumenta con un intensita' da 3.0 a 10.0 la consideriamo pioggia moderata e' via via cosi....spero di essermi spiegato, ma non capisco come mai non funziona il mio codice di prima.
 
Buongiorno, alla fine dopo varie prove, sono riuscito a sistemare il codicephp, in modo che apparisse il valore di intensita' di pioggia.

Per caso e' realizzabile, anche farlo fare, per la direzione del vento, indicando SCIROCCO, OSTRO, TRAMONTANA, MAESTRALE ecc.... in base ad uno dei due tag o quello dei gradi di direzione del vento o in base ai tags SE- S- NE- NW. ? Considerando che un maestrale dovrebbe apparire scritto sia se c'e' scritto WNW, NW, NNW.
 
per avere un codice più leggibile, userei lo "switch", esempio
PHP:
switch ($direzione_del_vento)
{
  case "WNW":
  case "NW":
  case "NNW":
    $s = "Maestrale";
    break;

  case "abc":
    $s = "abc";
    break;

  case "xyz":
    $s = "xyz";
    break;
}
print $s
Grazie per la soluzione:
Ma per prendere il valore devo richiamare il tag interessato in questo caso il seguente [wind0dir-act=endir:--] , solo che quando lo metto al posto di direzione del vento mi da errore come mai?
 
si ho scritto male, la variabile é $s



inserisci i valori che desideri ed il codice funziona

Vedi l'allegato 8138



puoi usare lo stesso grafico passandogli i valori attuali
No a me serva che funziona secondo quel codice, da un valore ad un valore minimo ad uno massimo, pero' adesso mi scrive solo assente, pure se sta piovendo ed ho un RAIN RATE A 1.8 come mai? il codice e' cosi:
Codice:
 <?php
                    if ( ($valore[rain0rate-act] >= 0.0)     and ($valore[rain0rate-act] <=  0.1) )   {print "Assente";}   
                    if ( ($valore[rain0rate-act] > 0.5)   and ($valore[rain0rate-act] <=  5.0) )  {print "Pioggia debole";}   
                    if ( ($valore[rain0rate-act] > 6.0)  and ($valore[rain0rate-act] <= 10.0))      {print "Pioggia moderata";}   
                    if ( ($valore[rain0rate-act] >  10.5)   and ($valore[rain0rate-act] <= 20.0))    {print "Pioggia forte";}   
                    if ( ($valore[rain0rate-act] >  20.5) and ($valore[rain0rate-act] <= 35.5))        {print "Rovescio";}   
                    if ( ($valore[rain0rate-act] >   36.0)    and ($valore[rain0rate-act] <= 100.0))       {print "Nubifragio";}
                    ?></p>

Per i venti mi serve proprio una rosa dei venti dinamica, fatta apposta.
 
come mai? il codice e' cosi:
ti ho postato una versione semplificata del tuo codice invitandoti a sistemare solo i valori,
te lo ripropongo con i valori sistemati e con il risultato della mia prova,
invitandoti ad usarlo
PHP:
                                       $s = "Nubifragio";
if ( $valore[rain0rate-act] <= 35.5 )  $s = "Rovescio";
if ( $valore[rain0rate-act] <= 20.0 )  $s = "Pioggia forte";
if ( $valore[rain0rate-act] <= 10.0 )  $s = "Pioggia moderata";
if ( $valore[rain0rate-act] <= 5.0  )  $s = "Pioggia debole";
if ( $valore[rain0rate-act] <= 0.1  )  $s = "Assente";
print $valore[rain0rate-act] . " -> " . $s . "</br>";

1670924097543.png
 

Discussioni simili