× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

file Problemi con il dato pioggia su Oregon WMR88

More
10 years 10 months ago #3425 by Fisico
Ciao, ho notato che il plugin WMR100 invia al logger il dato totale pioggia e il cumulativo giornaliero, invece del totale giornaliero e il dato orario, come ci si aspetterebbe scorrendo il file meteo.txt oppure il database. Volevo provare a fare delle modifiche... qual è il file su cui intervenire su swpi? sensor_wmr100.py oppure wmr100.py?

Please Log in to join the conversation.

More
10 years 10 months ago #3431 by tony
wmr100.py non mi risulta esista !!!

Please Log in to join the conversation.

More
10 years 10 months ago #3448 by Fisico

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.

More
10 years 10 months ago #3479 by Fisico
Ho provato a modificare il file sensor_wmr100.py. Ho visto che nella sezione "report data" contiene solo i dati rate e total. Ho aggiunto thisHour e thisDay, ma non cambia nulla.
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.

More
10 years 10 months ago #3532 by Fisico
Sto cercando di fissare qualche punto fermo sulla questione, sperando che questo possa servire per risolvere il problema...
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
C'è una evidente differenza tra i dati della prima riga e quelli dell'ultima. I primi sono quelli, deduco, inviati da wmr88, gli ultimi sono quelli sciiti nel db interno. Non riesco a capire da dove nasce la differenza...
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
Ora non compaiono più piogge negative, però ci sono sempre differenze non spiegate...

Please Log in to join the conversation.

More
10 years 10 months ago #3533 by alegrechi
Il problema è probabilmente evidenziato nella prima riga del log, che riporta i dati ricevuti dal pluviometro:
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.

More
10 years 10 months ago #3541 by Fisico
Mi concentro sul secondo log che ho postato.
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.

More
10 years 10 months ago - 10 years 10 months ago #3542 by alegrechi
Ok, mi torna. E forse ho trovato l'errore.
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)
Last edit: 10 years 10 months ago by alegrechi. Reason: edit

Please Log in to join the conversation.

More
10 years 10 months ago #3544 by Fisico
Ok... in realtà, l'altro ieri ho già provato a mettere thisDay e thisHour, in realtà senza avere la consapevolezza di adesso. Il risultato è che mi sono ritrovato con piogge negative!!!, ecco perchè poi chiedevo conferma che sensor_wmr100 fosse l'unico file da toccare o ci fossero altri file coinvolti (ad esempio, ho visto che il logging dopo "logging data to database" viene preso dal file datameteo.py).
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.

More
10 years 10 months ago #3545 by alegrechi
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 :)

Please Log in to join the conversation.

More
10 years 10 months ago #3553 by Fisico
A seguire il monitoraggio da me condotto per cercare di capirci qualcosa di più:

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.

More
10 years 10 months ago #3554 by Fisico

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.

More
10 years 10 months ago #3555 by alegrechi
Fisico dal report che hai fatto dunque risulta che il pluviometro funziona!

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.

More
10 years 10 months ago #3556 by Fisico
Ok, tutto è più chiaro!
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.

More
10 years 10 months ago #3557 by alegrechi
si, sono da lanciare in successione.

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.

Time to create page: 0.970 seconds