× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

file Sensore pioggia in negativo

Di più
5 Anni 2 Mesi fa #8394 da pierpis
Buongiorno a tutti,
Ho sostituito il sensore pioggia comprandolo originale per la mia stazione PCE FWS 20, ho subito fatto le prove versando un tantino di acqua e mi accorgo che funziona vedendo i dato marcati con 3,00 di acqua.
Siccome oggi piove vado a vedere e vedo il dato 1,8 e tutto sommato giusto (credo) ora andando a rivederlo mi accordo che a pioggia battente mi segna -1227,6 mm mi chiedo che cosa è accaduto, perchè in valore negativo?

Sensori PCE-FWS20, DVB-T 820T2 SDR, BMP085, Raspberry Pi mod. B www.meteoportocervo.it (Abbiadori Porto Cervo - Arzachena - OT) 108 m s.l.m.)

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 2 Mesi fa #8395 da Ciaschini
Risposta da Ciaschini al topic Sensore pioggia in negativo
Ciao, quando si resetta il pluviometro sulla stazione, i dati vanno in negativo, ma a mezzanotte dovrebbero tornare a zero, prova a vedere domani

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 2 Mesi fa #8396 da pierpis
Risposta da pierpis al topic Sensore pioggia in negativo
Grazie, hai ragione ora ho visto che è rientrato nella normalità

Sensori PCE-FWS20, DVB-T 820T2 SDR, BMP085, Raspberry Pi mod. B www.meteoportocervo.it (Abbiadori Porto Cervo - Arzachena - OT) 108 m s.l.m.)

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 1 Mese fa #8398 da S1m0n3
Risposta da S1m0n3 al topic Sensore pioggia in negativo
Anche io ho lo stesso problema, non c'è modo di ovviare al problema? Perché il reset va a sballare il valore dell'accumulo giornaliero e delle ultime 24h per tutta la giornata :S

Sint Wind Pi - WH3080 - Raspberry Pi 3 B+
roccadibotte.online

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 1 Mese fa #8403 da sn3ik
Risposta da sn3ik al topic Sensore pioggia in negativo
Salve,
i valori negativi della pioggia mi hanno tormentato per un bel pò, inizialmente pensavo fosse la mia stazione, ma dopo aver studiato un pò l'intero e meraviglioso lavoro fatto da Tony e da altri su questo forum ho deciso di mettere mano al codice.
Il problema di questo bug è che la stazione meteo trasmette il dato pioggia cumulato (è l'unico dato che cumula) finche la memoria non è piena e riparte da 0, quindi la swpi avrà un record nel db che sottrae al valore passato dalla stazione quando questa si resetta ecco che capita il problema, per ovviare a ciò ho aggiunto una colonna nel db chiamato RAIN_OLD ed ho modificato il file meteodata.py così facendo:

innanzitutto inizializziamo la variabile:
...
self.the_real_rain = None
...

poi ho modificato questo blocco

...
if (self.rain != None ):
conn = sqlite3.connect('db/swpi.s3db',200)
dbCursor = conn.cursor()
dbCursor.execute("SELECT * FROM METEO order by rowid asc limit 1")
data = dbCursor.fetchall()
if ( len(data) == 1 ):
the_old_rain = (data[0][33])
real_rain = (data[0][9])
#self.the_real_rain = (data[0][9])
if (the_old_rain != None):
if ( the_old_rain > self.rain):
self.the_real_rain = real_rain + self.rain
else:
self.the_real_rain = real_rain + (self.rain - the_old_rain)

# Rain 24h - rain 1h - pressure_trend
if ( self.rain != None or self.rel_pressure != None):

if (self.rain != None ):
dbCursor.execute("SELECT * FROM METEO where datetime(TIMESTAMP_LOCAL) > datetime('now','-1 day','localtime') order by rowid asc limit 1")
data = dbCursor.fetchall()
if ( len(data) == 1):
therain = (data[0][9])
if (therain != None) :
self.rain_rate_24h = self.the_real_rain - therain

dbCursor.execute("SELECT * FROM METEO where datetime(TIMESTAMP_LOCAL) > datetime('now','-1 hour','localtime') order by rowid asc limit 1")
data = dbCursor.fetchall()
if ( len(data) == 1):
therain = (data[0][9])
if (therain != None and self.rain != None ) :
self.rain_rate_1h = self.the_real_rain - therain
thepress= (data[0][7])
if ( thepress != None and self.rel_pressure != None):
self.pressure_trend = self.rel_pressure - thepress
if conn:
conn.close()
...

ho aggiunto delle variabili di appoggio *rain, c'è una condizione dove l'algoritmo capisce se la memoria si è resettata oppure no, così facendo la pioggia viene sempre cumulata

nella classe che inserisce i dati nel db va aggiunta la modifica:
...
dbCursor.execute("insert into METEO(TIMESTAMP_LOCAL,TIMESTAMP_IDX,WINDIR_CODE,WIND_DIR,WIND_AVE,WIND_GUST,TEMP,PRESSURE,HUM,RAIN,RAIN_RATE,TEMPINT,HUMINT,WIND_CHILL,TEMP_APPARENT,DEW_POINT,UV_INDEX,SOLAR_RAD,WIND_DAY_MIN,WIND_DAY_MAX,WIND_DAY_GUST_MIN ,WIND_DAY_GUST_MAX ,TEMP_OUT_DAY_MIN ,TEMP_OUT_DAY_MAX,TEMP_IN_DAY_MIN ,TEMP_IN_DAY_MAX ,HUM_OUT_DAY_MIN ,HUM_OUT_DAY_MAX ,HUM_IN_DAY_MIN ,HUM_IN_DAY_MAX ,PRESSURE_DAY_MIN ,PRESSURE_DAY_MAX,WIND_DIR_AVE,RAIN_OLD ) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", (self.last_measure_time,self.last_measure_time,self.wind_dir_code,self.wind_dir,self.wind_ave,self.wind_gust,self.temp_out,self.rel_pressure,self.hum_out,self.the_real_rain,self.rain_rate,self.temp_in,self.hum_in,self.wind_chill,self.temp_apparent,self.dew_point,self.uv,self.illuminance,self.winDayMin,self.winDayMax,self.winDayGustMin,self.winDayGustMax,self.TempOutMin,self.TempOutMax,self.TempInMin,self.TempInMax,self.UmOutMin,self.UmOutMax,self.UmInMin,self.UmInMax,self.PressureMin,self.PressureMax,self.wind_dir_ave,self.rain))
...

purtroppo viaggio con la versione 3 di swpi e la modifico ogni volta che che ho bisogno di sistemare qualcosa, quindi può darsi che il codice differisca con la versione ufficiale su github

Saluti
Francesco

Si prega Accedi a partecipare alla conversazione.

Di più
4 Anni 4 Mesi fa #8507 da S1m0n3
Risposta da S1m0n3 al topic Sensore pioggia in negativo
ho provato a fare la modifica che dici ma ho qualche problema con il cumulo giornaliero, potresti trascrivere tutto il meteodata.py per vedere in dettaglio le modifiche che hai apportato? Sarebbe davvero fantastico! Grazie!

Sint Wind Pi - WH3080 - Raspberry Pi 3 B+
roccadibotte.online

Si prega Accedi a partecipare alla conversazione.

Di più
4 Anni 4 Mesi fa #8508 da sn3ik
Risposta da sn3ik al topic Sensore pioggia in negativo
Ciao,
ecco a te! ricordarsi che va aggiunto un record (di appoggio) nel database. Inoltre siccome io salvo tutto su un database mysql in remoto, ho preferito tenere il db della swpi leggero, quindi dopo ogni insert fa una delete dei record più vecchi di due giorni, per eliminare questo passaggio basta cancellare o commentare:

TTLib.log("[SWPI] - Delete old data to Database")
conn_del = sqlite3.connect('db/swpi.s3db',200)
dbCursor_del = conn_del.cursor()
dbCursor_del.execute("DELETE FROM METEO where datetime(TIMESTAMP_LOCAL) < datetime('now','-2 day','localtime')")
conn_del.commit()
conn_del.close()

Cambia anche un pò la fase di log...

File allegato:

Nome del file: meteodata.py
Dimensione del file:23 KB
Allegati:

Si prega Accedi a partecipare alla conversazione.

Di più
4 Anni 4 Mesi fa #8509 da S1m0n3
Risposta da S1m0n3 al topic Sensore pioggia in negativo
Grazie! Sei stato gentilissimo!

Sint Wind Pi - WH3080 - Raspberry Pi 3 B+
roccadibotte.online

Si prega Accedi a partecipare alla conversazione.

Di più
4 Anni 4 Mesi fa #8510 da sn3ik
Risposta da sn3ik al topic Sensore pioggia in negativo
Prego!

Si prega Accedi a partecipare alla conversazione.

Di più
4 Anni 4 Mesi fa #8511 da S1m0n3
Risposta da S1m0n3 al topic Sensore pioggia in negativo
Ciao sn3ik, sei sicuro sia l'unico file che hai modificato? Una volta che la stazione meteo resetta l'accumulo i dati mi vanno comunque in negativo purtroppo!

Sint Wind Pi - WH3080 - Raspberry Pi 3 B+
roccadibotte.online

Si prega Accedi a partecipare alla conversazione.

Tempo creazione pagina: 1.173 secondi