× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

file Sensore pioggia in negativo

More
3 months 7 hours ago #8394 by 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.)

Please Log in or Create an account to join the conversation.

More
3 months 7 hours ago #8395 by Ciaschini
Ciao, quando si resetta il pluviometro sulla stazione, i dati vanno in negativo, ma a mezzanotte dovrebbero tornare a zero, prova a vedere domani

Please Log in or Create an account to join the conversation.

More
2 months 4 weeks ago #8396 by pierpis
Replied by pierpis on 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.)

Please Log in or Create an account to join the conversation.

More
2 months 2 weeks ago #8398 by S1m0n3
Replied by S1m0n3 on 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

Please Log in or Create an account to join the conversation.

More
1 month 4 weeks ago #8403 by sn3ik
Replied by sn3ik on 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

Please Log in or Create an account to join the conversation.

Time to create page: 0.491 seconds