× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

file filtro dati

Di più
9 Anni 10 Mesi fa #4965 da piazza
filtro dati è stato creato da piazza
Ciao!
Ho in mente di realizzare una sorta di filtro dati. In altre parole vorrei applicare un controllo ai dati letti dalla stazione, prima che vengano archiviati nel database e inviati nel server. Questo perchè talvolta ritrovo archiviati dati errati per esempio di raffiche di vento o di temperatura. Vorrei sapere se sia possibile agire attraverso un plug-in o se sia necessario mettere mano a qualche codice.
Grazie mille!

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #4966 da alegrechi
Risposta da alegrechi al topic filtro dati
Ciao,
puoi mettere il filtro anche in un plugin, mi pare sia già stata fatta una cosa del genere in passato...

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa - 9 Anni 10 Mesi fa #4967 da Ciaschini
Risposta da Ciaschini al topic filtro dati
Ciao, io avevo problemi con la temperatura che in alcune letture saliva a più di 300°, ti linko la soluzione di alegrechi tramite la modifica del pugni allLogger:
www.vololiberomontecucco.it/vlmc/index.p...=180&Itemid=210#2767

Una cosa volevo chiedere ad Ale, quando parli di disattivare la configurazione di invio intendi tramite php?
Ultima Modifica 9 Anni 10 Mesi fa da Ciaschini.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #4968 da alegrechi
Risposta da alegrechi al topic filtro dati
Ah ecco, mi ricordavo di aver scritto qualcosa, grazie per averlo ritrovato Ciaschini ! :)

In quella discussione intendevo che se si usa un plugin per il logging e l'invio dei dati, bisogna disabilitarli da pagina di configurazione web, altrimenti vengono inviati due volte! ;)
Ringraziano per il messaggio: asy961

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #4969 da piazza
Risposta da piazza al topic filtro dati
Grazie mille per le indicazioni! :lol:

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #4973 da asy961
Risposta da asy961 al topic filtro dati

alegrechi ha scritto: Ah ecco, mi ricordavo di aver scritto qualcosa, grazie per averlo ritrovato Ciaschini ! :)

In quella discussione intendevo che se si usa un plugin per il logging e l'invio dei dati, bisogna disabilitarli da pagina di configurazione web, altrimenti vengono inviati due volte! ;)


Ciao Alessandro

per la precisione potresti postare la sezione dove bisona disabilitare l'invio dei dati??

Grazie

Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #4974 da alegrechi
Risposta da alegrechi al topic filtro dati
Ciao,
dipende da cosa usi nel tuo plugin.

Se nel tuo plugin c'è la riga che invia i dati a wunderground -> devi disattivare nella configurazione web l'invio a wunderground.

Stessa cosa per gli altri servizi e per il logging di default su file (meteo.txt)

E così via....
Ringraziano per il messaggio: asy961

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #5016 da alegrechi
Risposta da alegrechi al topic filtro dati
Visto che è stato chiesto da molti, stavo pensando di implementare nel codice un filtro per i dati che sia facilmente utilizzabile da tutti.

A chi ha avuto problemi, chiedo quali sono i parametri che secondo voi andrebbero filtrati.

A tony e gli altri più "tecnici" invece vorrei chiedere se un approccio del genere potrebbe essere sufficiente per ignorare la misura
def FilterData(self)
        if (self.temp_out > 60 or self.temp_out < 50 or self.wind_ave > 100 or self.wind_ave < 0 or self.rain_rate > 60):
            TTLib.log("Sensor data out of range, ignore current measure")
            self.last_measure_time == None
            return False
        else
            return True
Chiamerei questo FilterData() subito dopo aver letto i dati dal sensore, prima di loggarli sul DB locale.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa - 9 Anni 10 Mesi fa #5017 da romano
Risposta da romano al topic filtro dati
......Se si può fare per un parametro, lo si può far per tutti....no?
Ad esempio:
Se nell'arco dell'invio dati, la temperatura è aumentata o diminuita più di 10 gradi per fare un esempio, il valore che verrà inviato sarà nullo, oppure max 2° maggiore o minore del precedente inviato (dipende se l'errore dei 10 gradi e più, era in diminuzione o in aumento)
Se il dato di pioggia supera un valore che per i 5 minuti di attesa tra un invio e l'altro sarebbe spropositato
Idem si potrebbe fare per la pressione e il vento
....non so se sono riuscito a farmi capire....
Ultima Modifica 9 Anni 10 Mesi fa da romano.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #5018 da alegrechi
Risposta da alegrechi al topic filtro dati
Si può fare per tutti i parametri, ma tu intendi già in un modo più complesso, ovvero lo scarto con la misura precedente.

Io pensavo per adesso ad una cosa più basilare, ovvero: se almeno uno dei parametri eccede un range prefissato (es: temp > 50, wind_ave > 100...), tutta la misura viene scartata.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa #5019 da romano
Risposta da romano al topic filtro dati
ma certo che sarebbe ottima la tua soluzione......io vedevo anche già in ottica futura, per migliorare ancor più il sint :P

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 10 Mesi fa - 9 Anni 9 Mesi fa #5021 da Ciaschini
Risposta da Ciaschini al topic filtro dati
io avendo avuti degli sbalzi di temperatura sempre sopra 300° mi son permesso di inserire nel file del sensore wh1080 rf, come diceva ale, un superamento di quella che potrebbe essere una temperatura realistica.

diciamo che come soluzione è sicuramente molto più grezza, però funziona bloccando l'analisi dei dati ricevuti
Ultima Modifica 9 Anni 9 Mesi fa da Ciaschini.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5030 da romano
Risposta da romano al topic filtro dati
.....ma questo codice poi dove andrebbe a collocarsi? Cioè in che file deve essere editato?

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5031 da alegrechi
Risposta da alegrechi al topic filtro dati
sarà una modifica al codice di swpi. Se tony deciderà di integrarlo nella release ufficiale, vi basterà poi aggiornare come sempre... altrimenti vi dirò come fare per aggiornare :)

Nel weekend vedo di trovare un po' di tempo per completarlo e testarlo...

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa - 9 Anni 9 Mesi fa #5047 da romano
Risposta da romano al topic filtro dati

Nel weekend vedo di trovare un po' di tempo per completarlo e testarlo...


Grande alegrechi......molti confidano in te!!! :woohoo:

P.S.: Di python e altri linguaggi non ne capisco quasi nulla, ma se ti serve una mano per testare o idee per migliorare ancora di più, puoi contare anche su di me :P
Ultima Modifica 9 Anni 9 Mesi fa da romano.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5053 da alegrechi
Risposta da alegrechi al topic filtro dati
Potete sicuramente aiutarmi segnalandomi i limiti oltre il quale i parametri secondo voi dovrebbero essere scartati...

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5054 da asy961
Risposta da asy961 al topic filtro dati
Ciao Alessandro,
(premesso che con python non sono molto ferrato)
visto che la stazione viene usata in posti e per scopi differenti non potresti creare delle variabili da inserire nel swpi.cfg cosi che ognuno se le possa personalizzare a seconda dell'uso che gli serve?

Forse ho detto una.......

Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5057 da alegrechi
Risposta da alegrechi al topic filtro dati
Ciao,
si ci avevo pensato, sarebbe sicuramente la soluzione migliore, anche se questo complicherebbe un po', dato che per ogni parametro da filtrare bisognerebbe inserire il valore limite minimo e quello massimo.
Comunque cerco di farmi venire un'idea.. (e di trovare un po' di tempo...) ;)

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa - 9 Anni 9 Mesi fa #5059 da romano
Risposta da romano al topic filtro dati
Dirò un'altra cavolata, ma credo che il fattore principale da tener presente è l'ultimo dato inviato.
Vi faccio un esempio.....
Ho una pressione di 1011,9 hpa inviato, nel secondo invio mi scende a 1000,9 per "errore", nel terzo invio mi risale a 1011,1.
Ora io non posso filtrare la pressione al di sotto di 1001,0, perchè sopratutto in inverno quel valore lo potrei benissimo ritrovarmelo normalmente.
Questo era un esempio, ma lo si può fare anche per la pioggia, dove non posso andar a filtrare un valore di 6mm quando 6mm possono cadere benissimo in 5 min......
Ecco, da profano in merito, credo che il nocciolo del filtro si dovrebbe basare sull'ultimo dato inviato e poi da li decidere di quanto filtrare eventualmente il valore che verrà.
Se la pressione è di 1000 e mi sale di 0.015 in 5 minuti allora verrà filtrato perchè sarebbe impossibile un aumento così repentino in 5 min, ma non posso filtrare a prescindere il valore di 1010.
Non so se ho reso l'idea......
Ultima Modifica 9 Anni 9 Mesi fa da romano.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5068 da Ciaschini
Risposta da Ciaschini al topic filtro dati
In questo caso lo script dovrebbe prendere una lettura, e subito dopo confrontarla con una seconda lettura, se la differenza dei due valori è maggiore ad'una variazione plausibile mettiamo di 2° in 48 secondi, la lettura viene scartata, sicuramente più complicato anche da realizzare, io facendo un po di test ho fissato un'ipotetica temperatura massima di 45 gradi, nel file sensor_wh1080rf sono andato ad applicare la condizione alla funzione che da il valore true a good_data, non ho ancora testato bene ma in teoria la lettura sballata dovrebbe essere sostituita da un bad data a monte del sistema, non ho ancora verificato il corretto funzionamento

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5070 da alegrechi
Risposta da alegrechi al topic filtro dati
il filtro sullo scostamento è già abbastanza più complesso, anche perchè per come è fatto adesso dovrebbe andarsi a recuperare tutti i dati precedenti dal db (ed è una cosa abbastanza lenta). Controllare il solo valore precedente a quel punto non sarebbe così corretto... sarebbe meglio fare una media degli ultimi minuti e vedere quanto il valore attuale si discosta dalla media.

Però a quanto risulta adesso, quando c'è un valore sballato (es: vento), ce n'è sempre un altro nella stessa misura che è sballato in modo molto più evidente: es la pressione ,oppure temperature eccessive. Eliminando tutta la misura sarebbe già un buon passo avanti... no?

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5071 da tony
Risposta da tony al topic filtro dati
uuuummm . non mi piace.
Preferirei fosse la parte di analisi o visualizzazione a filtrare i dati e non SWPI che dovrebbe continuare ad essere uno stupido programmino di acquisizione dati dai sensori... anche se sbagliati.
A me non è mai successo di avere misure sbagliate ma se dovesse succedere mettei i filtri nella parte web.
@Ciaschini : Hai provato a cambiare sensore ??
TT

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5073 da Ciaschini
Risposta da Ciaschini al topic filtro dati
In effetti Tony ho pensato potesse dipendere dal sensore, appena posso provo anche a tirare fuori l'rfm più lontano da alimentatori Ecc..
Comunque colgo l'occasione per farvi i complimenti per tutto il programma, si vede che ci avete lavorato molto ed è venuto fuori un sistema da urlo ma soprattutto molto comodo e flessibile

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5079 da roberto2011
Risposta da roberto2011 al topic filtro dati
@tony: l'unico problema è l'invio a wu che avviene direttamente dal swpi.

io modificherei solo la def logDataToWunderground.

come dice ale, l'intera lettura risulta evidentemente sballata.

Allegato meteo.jpg non trovato


Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Allegati:

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5081 da alegrechi
Risposta da alegrechi al topic filtro dati
Il problema roberto non è solo a Wu, ma anche a tutti gli altri servizi che (eventualmente) vengono usati.
Non solo, anche le statistiche interne vengono sbagliate, per cui i valori estremi della giornata risultato errati anche nel meteo.txt.

Capisco il tuo punto di vista tony, infatti anche io sono d'accordo a non eliminare tutti i dati strani, ma solamente quelli più grossolani e indubbiamente sbagliati, che sono probabilmente dovuti non tanto ai sensori, quanto ad interferenze elettriche o elettromagnetiche. L'esempio che mostra Roberto nello screen è abbastanza evidente...

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5089 da tony
Risposta da tony al topic filtro dati
Si .. questo si può fare Ale semplicemente e senza configurazioni.
Definiamo solo dei range di plausibilità (fissi) del vari parametri e li mettiamo nel codice.
TT

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa - 9 Anni 9 Mesi fa #5166 da romano
Risposta da romano al topic filtro dati
non sarebbe più semplice fare in modo che ognuno, secondo le sue esigenze di zona, potesse cambiare i valori a piacimento? Cioè creare un plugin con valori variabili dall'utente che ne fa uso?

if ( globalvars.meteo_data.status == 0 and globalvars.meteo_data.temp_out > 45 ):
if ( globalvars.meteo_data.status == 0 and globalvars.meteo_data.temp_out < -8 ):
if ( globalvars.meteo_data.status == 0 and globalvars.meteo_data.wind_ave > 100 ):
if ( globalvars.meteo_data.status == 0 and globalvars.meteo_data.abs_pressure > 1060.0 ):
if ( globalvars.meteo_data.status == 0 and globalvars.meteo_data.abs_pressure < 970.0 ):
if ( globalvars.meteo_data.status == 0 and globalvars.meteo_data.rain > 60 ):


P.S.: Non cercate di decifrare il codice.....ho copiato e incollato qua e la ma giusto per rendere l'idea :P
Ultima Modifica 9 Anni 9 Mesi fa da romano.

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa #5169 da alegrechi
Risposta da alegrechi al topic filtro dati
Il plugin puoi crearlo anche da solo, simile a come hai suggerito...(basta mettere i parametri in OR tra di lorò...
il problema è che passando dal plugin i dati errati vengono comunque scritti nel db interno di swpi. Per come è fatto adesso, l'unico modo è mettere un filtro a monte...
Scusate ma negli ultimi giorni non ho avuto il tempo di riguardarci...

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 9 Mesi fa - 9 Anni 9 Mesi fa #5175 da tony
Risposta da tony al topic filtro dati
Si .. effettivamente la lettura dei dati meteo fa parte del "core" del software ed un plugin non mi sembra adatto allo scopo.

Il punto più corretto ( da testare ) dovrebbe essere in meteodata.py nella funzione "CalcStatistics" che viene richiamata dopo ogni lettura ....

In questo momento sto lavorando ad altro e se fate delle modifiche usate un push su github.

TT
Ultima Modifica 9 Anni 9 Mesi fa da tony.
Ringraziano per il messaggio: Ciaschini

Si prega Accedi a partecipare alla conversazione.

Di più
9 Anni 8 Mesi fa #5311 da romano
Risposta da romano al topic filtro dati
Le avevo provate proprio tutte......
Cambiando scheda memoria, reistallare il tutto, cambiando raspberry, cambiando cavo di rete, aggiungendo ferrodi ai vari cavetti, pulendo la console centrale (lacrosse 2350), pulendo i plug dei sensori esterni, cambiando il canvertitore COM-USB con 2 diversi tipi, allontanando la consolle centrale al raspberry e lo stesso da pc, tv, o altre fonti di campi elettromagnetici, aggiungendo la messa a terra sia al rasp che alla stazione meteo......insomma proprio tutto al punto di essermi quasi arreso nella speranza che qualcuno creasse un filtro per far si che i dati che andavano in rete, fossero esenti da valori sballati.
Sapevo bene che il problema era dalla consolle in poi, dato che sulla stessa i valori erano sempre validi e non sballati.
Sui valori che arrivavano a wunderground (temperatura, umidità, pioggia e vento), almeno 10-12 valori al giorno erano sballati e dovevo cancellarli.
Poi mi son ricordato che quando comprai la mia stazione meteo, vi era nella confezione un convertitore COM-USB senza cavetto, cioè le due porte erano sullo stesso blocco.
Nel frattempo ho fatto un trasloco e con un pò di pazienza mi son messo a cercare........e finalmente ieri sera l'ho trovato.
Ne avevo provati già altri due diversi, ma la speranza non l'avevo del tutto persa.
Ebbene......da ieri sera non sto avendo nessun tipo di dato sballato in nessun parametro!, cosa che da quando uso questo sistema non era mai capitato
Mi mantengo ancora "calmo".......ma credo di aver risolto il problema :woohoo:

Si prega Accedi a partecipare alla conversazione.

Tempo creazione pagina: 1.086 secondi