- Posts: 99
- Thank you received: 0
- Sint Wind PI - Documentation
- Forum
- Volo Libero Monte Cucco
- Sint Wind PI
- Problemi con il dato pioggia su Oregon WMR88
Postate qui domande o segnalate problemi / bug che riscontrate,
Problemi con il dato pioggia su Oregon WMR88
Please Log in to join the conversation.
Please Log in to join the conversation.
tony wrote: wmr100.py non mi risulta esista !!!
?!?
Ecco il risultato di ls nella directory swpi
actions.py ntplib.pyc swpi-banner.jpg
actions.pyc omnitel.conf swpi.cfg
ADC.py pluginmanager.py swpi.py
at_commands.py pluginmanager.pyc swpi.pyc
at_commands.pyc plugins swpi.sh
audio radio.py swpi-update-all.sh
BMP085.py radio.pyc swpi-update-dev.sh
BMP085.pyc README.md swpi-update.sh
cameraPI.py reset_camera.py swpi_webconfig.py
cameraPI.pyc resetDB.py template.html
camera.py resetDB.pyc tim.conf
camera.pyc sensor_argent80422.py timezone.py
config.py sensor_argent80422.pyc timezone.pyc
config.pyc sensor_davis.py tmpfileTb4wV2
database.py sensor_davis.pyc tre.conf
database.pyc sensor_lacrossTX23.py TTLib.py
db sensor_lacrossTX23.pyc TTLib.pyc
device_cython_hidapi.py sensor_nevio.py TX23
device_cython_hidapi.pyc sensor_nevio.pyc units.py
device_pyusb.py sensor_none.py upload_cfg.html
device_pyusb.pyc sensor_none.pyc upload_cfg.py
DHT sensor.py usbreset
download_cfg.py sensor.pyc usbreset.c
errors.py sensor_simulator.py VERSION
errors.pyc sensor_simulator.pyc version.py
fonts sensors.log version.pyc
globalvars.py sensor_thread.py WeatherStation.py
globalvars.pyc sensor_thread.pyc WeatherStation.pyc
humod.py sensor_vantage_pro2.py webcam.py
humod.pyc sensor_wh1080.py webcam.pyc
I2C.py sensor_wh1080.pyc web_reboot.py
I2C.pyc sensor_wh1080rf.py web_server.py
img sensor_wh1080rf.pyc web_server.pyc
index.html sensor_wm918.py web_status.py
intervalmap.py sensor_wm918.pyc web_swpi_update.py
intervalmap.pyc sensor_wmr100.py wh1080_rf
killswpi.sh sensor_wmr100.pyc wh1080_rf.txt
LICENSE sensor_wmr200.py wifi_reset.sh
log sensor_wmr200.pyc wind.conf
login.py sensor_wmr918.py wmr100.py
mailme.py sensor_wmr918.pyc wmr200.py
mcp3002 sensor_ws2300.py wmr200.pyc
meteodata.py sensor_ws2300.pyc ws2300.py
meteodata.pyc service.py ws2300.pyc
miniterm.py service.pyc wvdial.conf
miniterm.pyc sun.py wvdial.py
ntplib.py sun.pyc
Ci sono i file sensor_wmr100.py e wme100.py e ciò vale anche per altre centraline Oregon non solo...
Please Log in to join the conversation.
Dal log su swpi per altro si vede che vengono comunque già inviati R1h e R24h, quindi vuol dire - per la cronaca - che non ci ho capito molto della struttura del file.
In ogni caso, sarebbero R1h e R24h quelli giusti da inserire nelle dashboard. infatti rain total indica la pioggia totale dall'ultimo reset delle wmr (dato quindi del tutto inutile), mentre con rate viene indicata la pioggia delle ultime 24 ore!!!
Please Log in to join the conversation.
dunque, nell'ordine ho fatto questo:
- sostituzione del file sensor_wmr100.py con quello predisposto da alegrechi che aumenta i log
- reset pluviometro
- reset wmr88
- impostato l'invio dati di swpi sia tramite logger sia tramite upload del file meteo.txt
Ecco come appare il log:
04/02/2014-23:50:43] Rain Battery Ok: True Rate 0, This Hr 1.016, This Day 1.016, Total 1.016 since 2009/ 1/ 1 12: 0
[04/02/2014-23:51:01] Temp Battery Ok: True Sensor thInt Temperature: 20.1 C (Steady), Humidity: 57 % (Good, Steady), Dew Point: 11 C
[04/02/2014-23:51:02] record[0]: 0, record[1]: 72,record[2]: 3,record[3]: 12,record[4]: 0, record[5]: 0, record[6]: 0, record[7]: 0, record[8]: 32, record[9]: 119
[04/02/2014-23:51:02] Calculating Meteo data and statistics
[04/02/2014-23:51:02] Logging data to Database
[04/02/2014-23:51:03] Dir: ENE - Spd: 0.0 - Gst: 0.0 - Tout: 6.0 - Tin: 20.1 - Hout: 98.0 - Hin: 57.0 - P: 1011 - Rtot: 1.0 - RDay: -9.7 - R1h: 1.0 - R24h: -9.7 - CB: 260
Ho poi fatto un'altro passaggio, ho resettato il db interno di swpi lanciando il comando da terminale "python resetDB". Ecco il log:
[05/02/2014-00:09:45] Rain Battery Ok: True Rate 0, This Hr 1.016, This Day 1.016, Total 1.016 since 2009/ 1/ 1 12: 0
[05/02/2014-00:10:25] Temp Battery Ok: True Sensor thInt Temperature: 20.1 C (Steady), Humidity: 56 % (Good, Steady), Dew Point: 11 C
[05/02/2014-00:10:28] Barometer Forecast: PartlyCloudy, Absolute pressure: 985.0 mb, Sea Level Pressure: 985.0
[05/02/2014-00:10:29] record[0]: 0, record[1]: 72,record[2]: 6,record[3]: 12,record[4]: 0, record[5]: 0, record[6]: 0, record[7]: 0, record[8]: 32, record[9]: 122
[05/02/2014-00:10:29] Calculating Meteo data and statistics
[05/02/2014-00:10:29] Logging data to Database
[05/02/2014-00:10:29] Dir: SE - Spd: 0.0 - Gst: 0.0 - Tout: 6.0 - Tin: 20.1 - Hout: 98.0 - Hin: 56.0 - P: 1011 - Rtot: 1.0 - RDay: 0.0 - CB: 260
Please Log in to join the conversation.
Rate 0 (che sarà, il rain rate istantaneo?)
This hour: 1.016 (presumo sia la pioggia dell'ultima ora, che dunque dovrebbe coincidere con il rain rate di swpi)
La pioggia del giorno (this day) coincide con quella dell'ultima ora. Qui c'è qualcosa che non va a meno che non abbia iniziato a piovere solo da meno di 1h.
Altra prova che farei: resetta il pluviometro, togliendo e rimettendo le batterie.
Continua a monitorare quella riga, magari quando piove!
Please Log in to join the conversation.
Questo corrisponde a questa situazione della scorsa notte:
- pluviometro appena resettato;
- wmr appena resettata (ecco perchè si legge "since 2009");
- db swpi appena resettato.
- aveva appena smesso di piovere.
rate, thisHour, thisDay e total sono pari pari i campi parsati dal file sensor_wmr100.py Questi sono in realtà del tutto corretti! Infatti nella condizione descritta sopra aveva appena smesso di piovere, qunidi giusto che rate=0 e la pioggia dell'ultima ora corrispondeva anche alla pioggia dell'ultima ora e al totale.
Ora però se guardi il log dopo "logging data to database" viene inviato Rtot=1 (e qui sembrerebbe giusto) ma Rday=0 e questo non corriposnde al log di sensor_wmr100!
Il rpoblema quindi è che sensor_wmr100 legge i dati giusti dalla centralina, ma vengono loggati errati nel db!
Ma i dati che vengono loggati nel db da dove vengono presi???
Please Log in to join the conversation.
Ora inviava il rate istantaneo al posto di quello dell'ultima ora (ecco perchè leggevi zero), e la pioggia totale dal reset al posto di quella del giorno (questo sarà corretto? Dovrei aver conferma da Tony)
Alla riga 324 del file sensor_wmr100.py
modifica questa riga:
self._report_rain(total, rate)
In questa:
self._report_rain(thisDay, thisHour)
Riavvia e ricontrolla il log
Edit, ho ricontrollato mi sa che swpi vuole la pioggia totale generale. Prova a mettere cosi:
self._report_rain(total, thisHour)
Please Log in to join the conversation.
Ora, dopo il reset della centralina e del db posso riprovare a farlo, però vorrei mettermi nella condizione di poter ritornare indietro...
Please Log in to join the conversation.
In ogni caso con il comando "swpi-update" scarichi sempre l'ultima versione di swpi ed i file si aggiornano, sovrascrivendo eventuali modifiche.
Comunque se Tony ci legge ci può dire con sicurezza quale è il parametro giusto da passare a swpi
Please Log in to join the conversation.
5/2/2014 – h. 0,00 Reset pluviometro – wmr88 – db swpi - invio dati ogni 5 minuti - non sta piovendo:
rain_rate = 0
rain = 1
rain_rate_1h = 0
rain_rate_24h = null
Nel corso della giornata piove praticamente in maniera continuativa, con poche pause. Ad esempio, alle 19,36:
rain_rate = 5,1
rain = 6,1
rain_rate_1h = 1
rain_rate_24h = null
Poco dopo l’intensità della pioggia aumenta:
rain_rate = 6,4
rain = 7,4
rain_rate_1h = 2,3
rain_rate_24h = null
Si osserva che:
- rain cresce insieme a rain_rate mantenendo sempre la differenza pari a 1;
- rain sembra rappresentare la pioggia totale dall’ultimo reset;
- rain_rate risulta il cumulativo giornaliero.
- rain_rate_1h sembra tenere traccia della pioggia “in diretta”;
- rain_rate_24h continua ad essere senza valore;
- non c’è un perfetto allineamento dei dati. Ad esempio osservo che se smette di piovere e poi ricomincia, magari rain_rate si incrementa, ma rain_rate_1h mostra la nuova pioggia solo dopo qualche log. In ogni caso dopo massimo 20 minuti i quattro valori ritornano ad essere allineati.
Vediamo cosa succede a mezzanotte… poco prima delle ore 00,00 del 6/2/2014 sta ancora piovendo. I valori sono:
rain_rate = 13,7
rain = 14,7
rain_rate_1h = valore della pioggia corrente
rain_rate_24h = null
Poco dopo la mezzanotte sta ancora piovendo. Diamo a swpi il tempo di stabilizzare l’invio dati (due, tre log) e i valori si presentano così:
rain_rate = 0
rain = 14,7
rain_rate_1h = valore della pioggia corrente
rain_rate_24h = 13,7
Quindi deduciamo che:
- rain_rate “consegna “ il cumulativo giornaliero a rain_rate_24h e ritorna a zero;
- rain continua a cumulare;
- rain_rate_1h continua a seguire la pioggia in diretta (in realtà noto dei lievi sfasamenti col valore che visualizzo “live” sulla console (ma questo forse è un’altro problema… visto che riguarda tutti i parametri meteo).
Andiamo avanti. Siamo alle ore 1 e la pioggia continua:
rain_rate = 1
rain = 15,7
rain_rate_1h = 1
rain_rate_24h = 14,7
Verso le 2 la pioggia smette:
rain_rate = 1
rain = 15,7
rain_rate_1h = 0
rain_rate_24h = 14,7
Infine, se guardiamo i dati attuali (6/2/2014 ore 10:40) troviamo:
rain_rate = 1
rain = 15,7
rain_rate_1h = 0
rain_rate_24h = 12,7
Si conferma quindi che:
- rain_rate è la pioggia cumulativa dalle ore 00,00 alle ore 00,00 del giorno successivo (il nome del parametro quindi è improprio);
- rain = è la pioggia cumulativa dall’ultimo reset della centralina (dato quindi meteorologicamente inutile)
- rain_rate_1h = è il dato che più si avvicina alla pioggia in tempo reale (anche se non è chiaro se misuri i mm istantanei o un trend da misurare in mm/h)
- rain_rate_24h = è la pioggia cumulativa delle ultime 24 ore (è diverso da rain_rate!!!)
Spero queste informazioni possano essere utili. Il monitoraggio continua. Dato quanto sopra ritengo che non sia essenziale modificare il codice di sensor_wmr100.py (il rischio di scombinare il tutto lo vedo alto…). Piuttosto occorre fare in modo che i dati vengano gestiti in maniera corretta quando si vanno a leggere dal database.
Per la cronaca rain_rate_1h e rain_arte_24h sono loggati su mateo.txt ma non su tabella METEO. Per farlo, occorre modificare la tabella inserendo questi due nuovi campi.
Inoltre, rilevo che sebbene dal codice di sensor_wmr100.py sembra che solo total (rain?) e rate (rain_rate?) sono restituiti come risultati, in meteo.txt compaiono evidentemente anche i dati thisHour (rain_rate_1h?) r thisDay (rain_rate_24h?).
A presto!
Please Log in to join the conversation.
alegrechi wrote: basta che ti fai una copia dei file modificati.
In ogni caso con il comando "swpi-update" scarichi sempre l'ultima versione di swpi ed i file si aggiornano, sovrascrivendo eventuali modifiche.
Comunque se Tony ci legge ci può dire con sicurezza quale è il parametro giusto da passare a swpi
Ho sempre fatto l'update dal configuratore web. Però se swpi è già aggiornato non lo fa fare. Come si lancia il comando update da terminale?
Altra domanda: leggevo in altri post che tu aggiorni regolarmente la versione di debain, senza che questo alteri le impostazioni di swpi. E' davvero così? Mi sai dire come procedere?
Please Log in to join the conversation.
I parametri (che immagino siano quelli di swpi e non quelli inviati dalla stazione) sono esattamente quello che hai capito
rain_rate: pioggia dalla mezzanotte di oggi
rain_rate_1h: è il rain rate vero e proprio, la pioggia caduta nell'ultima ora. E' questo per esempio che viene inviato a wunderground, insieme al rain_rate
rain_rate_24h: ultime 24h
rain: pioggia totale dal reset.
Riguardando ieri un po' il codice, mi è tornato in mente il funzionamento di swpi.
Il programma legge solo il valore totale (rain) e gli altri rate vengono tutti CALCOLATI dal database interno, ecco perchè non ha bisogno di altro. Funziona così anche per le altre stazioni meteo supportate.
Insomma, alla fine i dati vengono correttamente letti e salvati da swpi nel suo database INTERNO. E inviati correttamente con il meteo.txt.
C'è solo da inserirli nel database esterno, oppure fare in modo di calcolarseli esattamente come fa swpi a partire dal valore totale di pioggia presente
Per quanto riguarda l'aggiornamento, cliccando il bottone sul web non fa altro che eseguire il comando da consolle che ti ho detto, verificando in più solo se esiste una versione piu recente.
Per forzarlo, da terminale, basta digitare quello che ti ho scritto: "swpi-update" e invio.
Per aggiornare raspbian:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get upgrade
Please Log in to join the conversation.
Per l'aggiornamento, invece, i tre comandi sono da lanciare in successione?
Confermi che una volta aggiornato raspbian, swpi rimane così com'è, nel senso che impostazioni e file rimangono inalterati?
Perdona la paranoia...
Please Log in to join the conversation.
Confermo che i file di swpi e le impostazioni rimangono inalterati. Uno è il sistema operativo, l'altro un "programma". Son due cose distinte!
Please Log in to join the conversation.
- Sint Wind PI - Documentation
- Forum
- Volo Libero Monte Cucco
- Sint Wind PI
- Problemi con il dato pioggia su Oregon WMR88