× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

file filtro dati

More
9 years 11 months ago #4965 by piazza
filtro dati was created by 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!

Please Log in to join the conversation.

More
9 years 11 months ago #4966 by alegrechi
Replied by alegrechi on topic filtro dati
Ciao,
puoi mettere il filtro anche in un plugin, mi pare sia già stata fatta una cosa del genere in passato...

Please Log in to join the conversation.

More
9 years 11 months ago - 9 years 11 months ago #4967 by Ciaschini
Replied by Ciaschini on 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?
Last edit: 9 years 11 months ago by Ciaschini.

Please Log in to join the conversation.

More
9 years 11 months ago #4968 by alegrechi
Replied by alegrechi on 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! ;)
The following user(s) said Thank You: asy961

Please Log in to join the conversation.

More
9 years 11 months ago #4969 by piazza
Replied by piazza on topic filtro dati
Grazie mille per le indicazioni! :lol:

Please Log in to join the conversation.

More
9 years 11 months ago #4973 by asy961
Replied by asy961 on topic filtro dati

alegrechi wrote: 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

Please Log in to join the conversation.

More
9 years 11 months ago #4974 by alegrechi
Replied by alegrechi on 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....
The following user(s) said Thank You: asy961

Please Log in to join the conversation.

More
9 years 11 months ago #5016 by alegrechi
Replied by alegrechi on 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.

Please Log in to join the conversation.

More
9 years 11 months ago - 9 years 11 months ago #5017 by romano
Replied by romano on 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....
Last edit: 9 years 11 months ago by romano.

Please Log in to join the conversation.

More
9 years 11 months ago #5018 by alegrechi
Replied by alegrechi on 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.

Please Log in to join the conversation.

More
9 years 11 months ago #5019 by romano
Replied by romano on 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

Please Log in to join the conversation.

More
9 years 11 months ago - 9 years 11 months ago #5021 by Ciaschini
Replied by Ciaschini on 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
Last edit: 9 years 11 months ago by Ciaschini.

Please Log in to join the conversation.

More
9 years 11 months ago #5030 by romano
Replied by romano on topic filtro dati
.....ma questo codice poi dove andrebbe a collocarsi? Cioè in che file deve essere editato?

Please Log in to join the conversation.

More
9 years 11 months ago #5031 by alegrechi
Replied by alegrechi on 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...

Please Log in to join the conversation.

More
9 years 11 months ago - 9 years 11 months ago #5047 by romano
Replied by romano on 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
Last edit: 9 years 11 months ago by romano.

Please Log in to join the conversation.

More
9 years 11 months ago #5053 by alegrechi
Replied by alegrechi on topic filtro dati
Potete sicuramente aiutarmi segnalandomi i limiti oltre il quale i parametri secondo voi dovrebbero essere scartati...

Please Log in to join the conversation.

More
9 years 10 months ago #5054 by asy961
Replied by asy961 on 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

Please Log in to join the conversation.

More
9 years 10 months ago #5057 by alegrechi
Replied by alegrechi on 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...) ;)

Please Log in to join the conversation.

More
9 years 10 months ago - 9 years 10 months ago #5059 by romano
Replied by romano on 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......
Last edit: 9 years 10 months ago by romano.

Please Log in to join the conversation.

More
9 years 10 months ago #5068 by Ciaschini
Replied by Ciaschini on 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

Please Log in to join the conversation.

More
9 years 10 months ago #5070 by alegrechi
Replied by alegrechi on 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?

Please Log in to join the conversation.

More
9 years 10 months ago #5071 by tony
Replied by tony on 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

Please Log in to join the conversation.

More
9 years 10 months ago #5073 by Ciaschini
Replied by Ciaschini on 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

Please Log in to join the conversation.

More
9 years 10 months ago #5079 by roberto2011
Replied by roberto2011 on 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.

Attachment meteo.jpg not found


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

Please Log in to join the conversation.

More
9 years 10 months ago #5081 by alegrechi
Replied by alegrechi on 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...

Please Log in to join the conversation.

More
9 years 10 months ago #5089 by tony
Replied by tony on 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

Please Log in to join the conversation.

More
9 years 10 months ago - 9 years 10 months ago #5166 by romano
Replied by romano on 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
Last edit: 9 years 10 months ago by romano.

Please Log in to join the conversation.

More
9 years 10 months ago #5169 by alegrechi
Replied by alegrechi on 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...

Please Log in to join the conversation.

More
9 years 10 months ago - 9 years 10 months ago #5175 by tony
Replied by tony on 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
Last edit: 9 years 10 months ago by tony.
The following user(s) said Thank You: Ciaschini

Please Log in to join the conversation.

More
9 years 10 months ago #5311 by romano
Replied by romano on 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:

Please Log in to join the conversation.

Time to create page: 1.035 seconds