× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

lightbulb Ricezione dati con chiavetta USB DVB rtl433

More
8 years 3 months ago - 8 years 3 months ago #7190 by seven
Ciao khris. Se dai un'occhiata al gruppo di discussione di rtl_433 troverai un thread in cui ho discusso con un utente che aveva il tuo stesso problema. Ha acquistato i soli sensori (non la consolle) da un fornitore in Germania ed anche lui ha collegato soltanto parzialmente tutto l'ambaradan. Se sia un caso non lo so, ma l'output dei suoi sensori era simile al tuo, nonostante in seguito l'utente abbia collegato i sensori mancanti.
Il problema, come hai già notato, è che vengono trasmessi 87 bytes di dati (vedi questo valore anche nel tuo output) anziché gli 88 'classici' decodificati da rtl_433.

Visto che amo il brivido ho deciso di acquistare lo stesso sensore dallo stesso fornitore per approfondire la questione, ma ho collegato TUTTI i sensori di cui è composto prima di farlo partire. Risultato: il sensore funziona perfettamente a 88 bytes e i dati che trasmette li puoi vedere qua: http://video.wifi4all.it/cam13.jpg


A questo punto suppongo che il non collegare tutti i sensori possa avere un peso...

Purtroppo togliere e rimettere la batteria sembra non aver risolto il problema all'amico di cui ti parlavo all'inizio, ma mentre leggevo il tuo post mi è venuto in mente che da qualche parte sotto il pannello solare dovrebbe esserci un pulsante di reset...
Quindi collega tutti i sensori, premi (se serve tieni premuto per qualche secondo) il pulsante di reset e fammi sapere se cambia qualcosa.
Last edit: 8 years 3 months ago by seven.

Please Log in to join the conversation.

More
8 years 3 months ago #7193 by khris81
Ciao, grazie per la risposta, l'unica cosa che non ho collegato è il pannellino solare che ricarica la batteria, ma quest'ultimo che ho aperto in quanto risulta non funzionante, non ha alcun tipo di elettronica a bordo, non capisco come possa fare la differenza, non fa altro che ricaricare le pile e fare da ponte al sensore pioggia. Comunque ho riprovato ora a ricollegare il tutto anche premendo il tasto reset, ma con il pannellino collegato non ricevo alcun dato nemmeno sulla consolle principale, suppongo che sia difettoso il pannello solare, non posso nemmeno rimandarlo indietro in garanzia in quanto ho tagliato il cavo, ma ripeto magari mi sbaglio, ma dubito che faccia la differenza non avendo alcun tipo di elettronica a bordo. Sono dell'idea che ci sono varianti di questa stazione meteo che differiscono da quelle qui testate, probabilmente differenti release.
Ho però notato una cosa, ogni volta che tolgo e rimetto le batterie, ricevo i dati dalla stazione meteo! Peccato che li ricevo solamente la prima volta e poi più fino a quando non scollego e ricollego le batterie! Secondo te da cosa può dipendere questo comportamento?

grazie.

Please Log in to join the conversation.

More
8 years 3 months ago #7194 by khris81
sto cercando di modificare il file fineoffset_wh1080.c per adattarlo alla mia stazione meteo, il motivo per il quale non ricevo output è:

1) come abbiamo già visto che la mia stazione invia 87 byte invece che 88
2) commentando il return del controllo dei byte trasmessi, l'altro errore è il crc mismatch

Please Log in to join the conversation.

More
8 years 3 months ago #7197 by khris81
aggiornamenti, ho acquistato una nuova stazione meteo (visto che nella precedente avevo tagliato i cavi per non averli troppo lunghi, ovviamente non mi è stata cambiata in garanzia), che ho ricevuto poco meno di un ora fa. Anche questa invia 87 byte! A questo punto si tratta di qualche modifica al firmware che è stata fatta nelle stazioni più recenti oppure solamente in alcuni un lotti, non saprei cos'altro pensare!

questi sono i miei dati in output, ho dovuto modificare il file fineoffset_wh1080.c per poterli vedere, ma sono sballati rispetto ai dati che visualizza la consolle:

output dati rtl_433:
{"time" : "2016-08-01 17:28:41", "model" : "Fine Offset WH1080 weather station", "msg_type" : 0, "id" : 112, "temperature_C" : 94.800, "humidity" : 120, "direction_str" : "E", "direction_deg" : "90", "speed" : 31.824, "gust" : 39.168, "rain" : 0.000}


dati visualizzati sulla consolle:
temperatura 27,4

umidità 60%

velocità vento 15,8

direzione vento ne

pioggia 0

Ho visto che il file fineoffset_wh1080.c fa diversi calcoli (sui dati che riceve che non so in quale formato siano) per ottenere gli sessi dati visualizzati sulla consolle. Devo modificare i calcoli, Seven mi puoi aiutare a farlo? Oppure darmi qualche dritta?

grazie, ciao.

Please Log in to join the conversation.

More
8 years 3 months ago - 8 years 3 months ago #7204 by seven
Eccomi, scusami se ogni tanto sparisco... Estate, ferie e compagnia bella ehehehhe ;)


Per creare il 'modulo' WH1080 di rtl_433 (che è costituito proprio dal file fineoffset_wh1080.c) mi sono servito della 'mappatura' dei bytes che costituiscono ogni trasmissione della stazione. L'ho trovata qui:


www.sevenwatt.com/main/wh1080-protocol-v2-fsk/


Come vedi è descritta la maggior parte dei dati nascosti nei bytes/nibbles del messaggio radio.
Il messaggio, come già detto, è lungo 88 bit (nei miei precedenti posts parlavo di bytes, ma avendoli scritti a tarda sera era il sonno a parlare per me :P )
Tu invece ne hai 87 e questo rivoluziona per forza di cose tutto l'ordine dei byte/nibbles del messaggio...
Non basta quindi far riconoscere a rtl_433 il messaggio lungo 87 bit anziché 88, bisogna anche dirgli come sono organizzati gli 87 bit. Occorre dirgli che (ad esempio) il primo byte contiene il tipo di messaggio, il secondo contiene l'ID della stazione, e così via. Queste sono proprio le info che trovi nel link di cui sopra.
Per quanto riguarda il protocollo a 87 bit non ho ancora trovato, purtroppo, alcun link di riferimento.

Tuttavia sul gruppo di discussione di rtl_433 si è recentemente fatta avanti una persona che riferisce di avere una stazione meteo FineOffset WH5301 (o meglio una sua versione rebrandizzata). Il protocollo radio sembra differire dalla WH1080 ed è formato, guardacaso, da messaggi di 87 bit

Il tipo posta poi l'output raccolto da rtl_433 con anche i dati che lui leggeva sulla console durante ciascuna trasmissione. Il link è il seguente:

groups.google.com/forum/#!topic/rtl_433/-Foh026foBI


Riassumo di seguito la parte saliente:

TEMP(Temperature) 
RN(Rain)  
D(Wind Direction)  
H(Humidity)  
SP(Wind Speed)
===========================================================
                   		   TEMP  RN   D   H   SP
00 be dc 09 4f eb e5 fe 41 ee 74 - 10.8  1.5  s   88 10.1
00 be dc 09 4f e7 db fe 41 f2 36 - 13.0  1.5  se  88 10.1
00 be dc 09 4f f1 ed fe 41 ef 8c -  7.6  1.5  s   88 10.1
00 be dc 05 4d e9 e3 fe 41 ee 6c - 11.9  1.5  s   89 10.9
00 be dc 05 4d e9 e3 fe 41 ee 6c - 11.9  1.5  sw  89 10.9
00 be dc 05 4f eb db fe 3f f3 58 - 10.8  0.0  se  88 10.9
00 be dc 05 4d eb e3 fe 3f ef 9c - 10.8  0.0  s   89 10.9
00 be dc 05 4d dd d3 fe 3f f3 e6 - 18.4  0.0  se  89 10.9


Ecco qui, direi che questo è un buon punto di partenza se vuoi.
Noto, ad occhio, che si tratta di dati registrati in due giornate diverse: infatti fino alla 5a riga la pioggia è a 1.5 mm, mentre dalla 6a è a 0 mm.

Se guardi il 4° byte noterai che nelle prime 3 righe è 09, nelle altre è 05. Guarda ora la velocità del vento: nelle prime 3 righe è 10.1, nelle altre è 10.9. Vuoi vedere che il 4° byte ha a che fare con la velocità del vento? ;)

Ecco, è solo uno spunto, se trovo un minuto ci darò un'occhiata anch'io ma sono sicuro che riuscirai a scoprire qualcosa di più partendo da qui. :cheer:
Last edit: 8 years 3 months ago by seven.

Please Log in to join the conversation.

More
8 years 3 months ago #7205 by khris81
Ciao seven, grazie mille per la risposta, allora sono riuscito ad ottenere gli stessi dati della consolle, nel file fineoffset_wh1080.c non ho fatto altro che dividere per due tutti gli elementi dell'array br, così facendo ottengo gli stessi dati che visualizzo sulla consolle, l'unico dato che non so se è corretto e l'id della stazione perché non ho modo di confrontarlo, la consolle non lo visualizza o almeno non l'ho visto da nessuna parte. È stato semplicemente un colpo di fortuna sono andato per tentativi, ma non so se sia il metodo corretto quello di divedere per 2 tutte gli altri elementi dell'array br, i dati sono gli stessi, ma magari c'è un metodo migliore non saprei, a dire il vero non so nemmeno perché dividendo per due riesco ad avere i dati corretti. Altra domanda da me oggi è piovuto è normale che il pluviometro segni sempre l'ultima quantità di pioggia rilevata? La consolle visualizza la quantità di pioggia in base ad ultima ora, giorno weekend e il totale, a me arriva sempre la quantità di pioggia totale, fa così anche la vostra stazione meteo?

Please Log in to join the conversation.

More
8 years 3 months ago - 8 years 3 months ago #7206 by seven
Intanto complimenti perché vedo che ci sai fare e ad occhio sei sulla strada buona. Ottimo!!
Per la WH1080 l'interpretazione dei bytes è stata fatta da diverse persone basandosi sui valori letti in console quando veniva ricevuto il messaggio radio. Non c'era un documento di riferimento. Tu stai facendo la stessa cosa e non ho trovato nessun altro in rete che lo stia facendo per il tuo modello di stazione. Grande!
L'unico modo quindi che abbiamo per sapere se hai trovato la formula esatta è continuare a monitorare console e rtl_433 per vedere se i valori continuano ad essere coerenti.

Per quanto riguarda il pluviometro: se progettando la tua stazione la FineOffset ha mantenuto la stessa caratteristica della WH1080 allora è tutto normale: il valore della pioggia viene accumulato continuamente, spetta alla console (o al software che legge i dati in uscita da rtl_433) calcolare giorno per giorno la differenza dei valori letti (in altre parole: se ieri il contatore era a 10 mm ed oggi è ad 11 mm allora oggi ha piovuto per 1 mm.).

Infine l'ID: non è visibile in console, potresti anche trascurarlo ma fa molto comodo per leggere i dati di una singola stazione, evitando quelli provenienti dalla stazione del vicino che ha un ID diverso...
A naso anche qui è stata mantenuta una struttura simile alla WH1080: il primo byte e mezzo (00 b) potrebbe essere il tipo di messaggio (messaggio contenente dati meteo), mentre il secondo nibble del secondo byte ed il primo del terzo potrebbero essere l'ID (te li metto in rosso: 00 be dc 09 4f eb e5 fe 41 ee 74).

Guardando al tuo post iniziale in cui hai incollato i dati della tua stazione il tuo ID sarebbe quindi EF (00 be fa 81 a5 fb f9 ff ff e6 b8).

E' anche possibile che i primi 2 byte (00 be) rappresentino il tipo di stazione, e che l'ID sia il byte successivo: dovrai fare delle prove. Nella WH1080 l'ID cambia ogni volta che togli e rimetti le batterie del sensore: questa operazione potrebbe darti la conferma, verifica quali sono i bytes che cambiano ad ogni reset!

Il valore dell'ID è in esadecimale, va convertito in decimale se vogliamo rispettare le convenzioni di rtl_433 (239 quindi, nel caso di EF).

Continua così, se nel lungo termine i dati rimangono validi direi che potresti contribuire con il tuo codice a rtl_433! :cheer:
Last edit: 8 years 3 months ago by seven.

Please Log in to join the conversation.

More
8 years 3 months ago - 8 years 3 months ago #7208 by khris81
Aggiornamenti. I dati sono coerenti con quelli rilevati dalla consolle, ma ahimè c'è sempre qualche problema dietro l'angolo, purtroppo ogni tanto arrivano valori totalmente sballati, esempio:

temperature oltre i 200°
umidita oltre il 100%
precipitazioni di 200mm nel giro di un minuto
venti a 200km/h

ma ovviamente arrivano anche valori errati più "umani", esempio:

temperatura di 5° superiore alla lettura precedente, per poi tornare normale alla lettura successiva
precipitazioni di 3mm superiore alla lettura precedente, quando in realtà non è mai piovuto, per poi tornare normale alla lettura successiva

sono letture sporadiche, ma che ovviamente rovinano il mio database!
Come fa la consolle a filtrare questi errori? Possibile che siano errori letti errati dalla chiavetta usb? Oppure sono realmente errori di trasmissione da parte dal trasmettitore? Il trasmettitore possibile che non invii nessun controllo dati???
Altri di voi hanno notato queste anomalie? Se si come li filtrate?

grazie.
Last edit: 8 years 3 months ago by khris81.

Please Log in to join the conversation.

More
8 years 3 months ago - 8 years 3 months ago #7209 by seven
Purtroppo qui va di intuizione (e un bel po' di fortuna, ci vuole anche quella...)
Parlando della WH1080: il sensore esterno contiene un ricevitore/decoder per l'ora esatta DCF77 che viene irradiata sui 77.5 Khz da Francoforte. Ad ogni 59° minuto delle ore dispari il sensore esterno smette di trasmettere dati meteo, se ne sta un po' zitto per circa 4 minuti, poi per alcuni minuti trasmette il segnale orario al posto dei dati meteo.
Questo mi ha dato qualche grattacapo, perché non avendo implementato alcun filtro per circa 5 minuti i dati meteo letti erano completamente sballati (per forza, erano data ed ora!).

Ho visto poi che i progettisti della stazione hanno inserito un byte diverso per tipo di messaggio all'inizio della trasmissione: se non ricordo male i messaggi meteo iniziano con la coppia FF Ax, ed i messaggi data-ora iniziano con FF Bx. Questo mi ha dato modo di implementare un filtro che "dirottasse" il tipo di messaggio verso l'opportuna sezione di decodifica a seconda del valore di questi bytes (in fineoffset_wh1080.c sono le righe 221-225).

Adesso non so se la tua stazione disponga dello stesso sistema di data/ora e che magari lo alterni ai dati meteo con tempistiche diverse dalle mie...
Fai quindi caso ai primi bytes (e segnateli) che compongono il messaggio durante le letture sballate, potresti distinguere e tentare di interpretare il messaggio particolare a cui appartengono (qualsiasi cosa siano i dati che contiene, non è detto siano data ed ora), oppure filtrare il messaggio ed ignorarlo in presenza di quei fatidici bytes.
Last edit: 8 years 3 months ago by seven.

Please Log in to join the conversation.

More
8 years 2 months ago #7229 by seven
Intanto qualcosa si muove sul fronte rtl_433: sembra che sia sufficiente aggiungere fittiziamente un bit ai famosi 87 per far quadrare il cerchio. In altre parole anche questa stazione dovrebbe essere supportata! Dovrò fare alcune prove, poi in caso di esito positivo sottoporrò l'update della repository Git a Tony.

Please Log in to join the conversation.

More
8 years 2 months ago #7242 by Pietro
Ciao ragazzi, leggo con molto interesse questo argomento. L'utilizzo della chiavetta è già funzione ufficiale di swpi?
Potreste inviarmi qualche link dei siti in cui comprare la chiavetta?
Grazie
Pietro

Please Log in to join the conversation.

More
8 years 2 months ago #7253 by khris81
Ciao ragazzi, purtroppo da circa 1 settimana è morto il trasmettitore della mia stazione meteo, ho provato a. Ambiare pile, ricaricabili e non, ma non è servito a nulla.
Scrivo per informarvi che visti i problemi riscontrati, ricezione di dati a volte fuori scala ex, ora questo problema, ho deciso di cambiare approccio, voglio collegare direttamente i sensori al raspberry, velocità e direzione e vento vanno interfacciati con un convertitore ad, mentre pluviometro essendo di fatto un contatto reed può essere collegato direttamente, sensori temperatura, umidità e pressione, sono digitali.
Appena terminato il progetto vi aggiorno sulla riuscita o meno, di certo ho maggiore controllo sulle letture, non devo attendere la ricezione del segnale, ma è il raspberry che interroga direttamente inse sensori ed in caso di letture sbagliate, posso rifarle immediatamente senza dover attendere la ricezione del segnale successivo.
Grazie per l'aiuto fornitomi.

Please Log in to join the conversation.

More
8 years 1 month ago #7260 by seven
In bocca al lupo khris! Sempre che tu non decida di acquistare il solo trasmettitore (parliamo di WH1080/PCE), che in giro lo si trova, basta cercare... :)


Per Pietro: è ufficiale sì, trovi i sorgenti in GitHub (Tonino Tarsi --> SWPI). Se non ti vuoi compilare tutto da te scarica l'immagine 3 che contiene già tutto. La uso ininterrottamente da circa maggio (sensore WH1080 + chiavetta USB DVB-T) e non perde un colpo.


La chiavetta DEVE essere basata sul chipset RTL2832U della Realtek ed avere a bordo il tuner R820T o meglio ancora il R820T2, che è più recente e sensibile.

Cerca quindi su Ebay "rtl2832u r820t" e ne trovi uno sterminio anche a meno di 10 euro. Come sempre quelle di venditori italiani costano un po' di più ma arrivano prima, mentre quelle dei venditori cinesi costano davvero molto poco ma ci mettono una quarantina di giorni ad arrivare a casa. Sono sempre le stesse comunque. :)

Ti suggerisco quelle azzurre, di solito contengono il tuner R820T2, il più recente (comunque leggi bene la descrizione del prodotto in vendita per sicurezza).

Ciao!

Nik

Please Log in to join the conversation.

More
8 years 1 month ago - 8 years 1 month ago #7316 by ulisse
Ragazzi, sono in possesso di una chiavetta DVB con i chip giusti, ho fuori in giardino i sensori di una Lacrosse WS2357 e riesco a leggere i valori senza problemi con rtl_433 usando il protocollo 34...

Quello che mi manca sono le competenze per scrivere una "driver" analogo a sensor_wh1080rtlsdr.py :P

Non è che qualche volenteroso del settore magari ha voglia di scriverlo al posto mio? Io sarei a disposizione per eventuali prove e test...


Allego un po' di output del comando rtl_433:
pi@swpi(rw):~/swpi$ rtl_433 -R 34 -F json
Registering protocol "LaCrosse WS-2310 Weather Station"
Found 1 device(s):
  0:  Generic, RTL2832U, SN: 77771111153705700

Using device 0: Generic RTL2832U
Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 8000.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433920000 Hz.
{"time" : "2016-09-30 20:28:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:28:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:28:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:28:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:28:24", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:28:24", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:30:31", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:30:32", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:30:32", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "rainfall_mm" : 103.600}
{"time" : "2016-09-30 20:30:32", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:30:32", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:30:33", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:30:33", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "rainfall_mm" : 103.600}
{"time" : "2016-09-30 20:30:33", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:32:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:32:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:32:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:32:41", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:32:41", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:32:41", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:34:48", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:34:49", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:34:49", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:34:49", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:34:49", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:34:50", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:36:56", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:36:57", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:36:57", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:36:57", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:36:58", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:36:58", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:39:05", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:39:05", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:39:05", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "rainfall_mm" : 103.600}
{"time" : "2016-09-30 20:39:06", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:39:06", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.300}
{"time" : "2016-09-30 20:39:06", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:39:06", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "rainfall_mm" : 103.600}
{"time" : "2016-09-30 20:39:07", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:41:14", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.200}
{"time" : "2016-09-30 20:41:14", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:41:14", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:41:14", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.200}
{"time" : "2016-09-30 20:41:15", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:41:15", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:43:22", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.100}
{"time" : "2016-09-30 20:43:22", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:43:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:43:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.100}
{"time" : "2016-09-30 20:43:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:43:23", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:45:31", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.100}
{"time" : "2016-09-30 20:45:31", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:45:31", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:45:31", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.100}
{"time" : "2016-09-30 20:45:32", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:45:32", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 45.000}
{"time" : "2016-09-30 20:47:39", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.000}
{"time" : "2016-09-30 20:47:39", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:47:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "rainfall_mm" : 103.600}
{"time" : "2016-09-30 20:47:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:47:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.000}
{"time" : "2016-09-30 20:47:40", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:47:41", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "rainfall_mm" : 103.600}
{"time" : "2016-09-30 20:47:41", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:49:48", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.000}
{"time" : "2016-09-30 20:49:48", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:49:48", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
{"time" : "2016-09-30 20:49:48", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "temperature_C" : 17.000}
{"time" : "2016-09-30 20:49:49", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "humidity" : 77}
{"time" : "2016-09-30 20:49:49", "model" : "LaCrosse WS", "ws_id" : 9, "id" : 150, "wind_speed_ms" : 0.000, "wind_direction" : 22.500}
^CSignal caught, exiting!

User cancel, exiting...
Reattached kernel driver

Last edit: 8 years 1 month ago by ulisse.

Please Log in to join the conversation.

More
8 years 1 month ago #7320 by seven
Uhm... E' molto intrigante!! Non dovrebbe essere difficile adattare sensor_wh1080rtlsdr.py per fare qualche prova. Bisognerà tener conto però che, da quanto vedo, la tua stazione "sparpaglia" i dati derivati dai sensori in più messaggi, ciascuno contenente un dato da un tipo di sensore (temp, pioggia, hum, vento), mentre la WH1080 raccoglie il tutto in un messaggio unico ogni 48 secondi.
Sfortunatamente non sono in possesso di una Lacrosse, se nel frattempo non si fa avanti nessun altro con qualche idea vedremo come si può fare...

Please Log in to join the conversation.

More
8 years 1 month ago #7324 by ulisse
Io sto muovendo adesso i miei primi timidi passi nel Python, se mi spieghi cosa dovrebbe fare sensor_wh1080rtlsdr.py e mi dai qualche dritta, posso provare a pispolarci anch'io... (in realtà l'ho già fatto ma con scarsi risultati :P )
Vedo che viene letto un file di testo, "wh1080-rtl_433.txt", ma non ho idea nè di chi lo scriva e nè di cosa debba esserci dentro...

In extremis potrei anche attacharti(?) un raspi via Hamachi, così ci lavori da remoto

Please Log in to join the conversation.

More
8 years 1 month ago #7348 by pierpis
Arrivata la chiavetta USB..... ma ho paura a smontare tutto l'ambaradam :blush: :blush:

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.)
Attachments:

Please Log in to join the conversation.

More
8 years 3 weeks ago - 8 years 3 weeks ago #7355 by asy961

seven wrote: Intanto qualcosa si muove sul fronte rtl_433: sembra che sia sufficiente aggiungere fittiziamente un bit ai famosi 87 per far quadrare il cerchio. In altre parole anche questa stazione dovrebbe essere supportata! Dovrò fare alcune prove, poi in caso di esito positivo sottoporrò l'update della repository Git a Tony.


Ciao Seven,
montando una nuova stazione ho anch'io il problema degli 87 bit.....

ci sono novità in merito??


EDIT:

la stazione è la PCE-FWS20 ed è acquistata direttamente dalla PCE.
probabilmente le ultime hanno questa nuova configurazione

Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah
Last edit: 8 years 3 weeks ago by asy961.

Please Log in to join the conversation.

More
8 years 3 weeks ago - 8 years 3 weeks ago #7364 by asy961
Dunque....
ho fatto alcune prove con la chiavetta e due sensori, uno da 88 bit e uno da 87bit, le ho fatte su un pc portatile con linux installato dove avevo già fatto le prime prove qualche mese fa...

all'inizio riuscivo a ricevere entrambi i sensori ma solo il sensore a 88 bit veniva decodificato e leggevo i dati mentre quello a 87 bit vinva ricevuto ma non era decodificato nessun dato.

Allora mi sono controllato il file fineoffset_wh1080.c sul github rtl_433 di merbanan e ho visto che avevano implementato la docodifica a 87 bit....

A questo punto ho reinstallato tutto sul pc portatile seguendo le solite procedure indicate da Nicola e.......

sul pc portatile adesso legge e decodifica entrambi i sensori :cheer: :cheer: :cheer:

sia a 88 bit
Detected OOK package
2016-10-26 13:01:26 :	Fine Offset WH1080 weather station
	Msg type:	 0
	StationID:	 0004
	Temperature:	 25.4 C
	Humidity:	 73 %
	Wind string:	 N
	Wind degrees:	 0
	Wind avg speed:	 0.00
	Wind gust:	 0.00
	Total rainfall:	 0.0
Analyzing pulses...
Total count:   88,  width: 48950		(195.8 ms)
Pulse width distribution:
 [ 0] count:   24,  width:   133 [132;135]	( 532 us)
 [ 1] count:   64,  width:   377 [376;380]	(1508 us)
Gap width distribution:
 [ 0] count:   87,  width:   247 [245;250]	( 988 us)
Pulse period distribution:
 [ 0] count:   23,  width:   381 [380;383]	(1524 us)
 [ 1] count:   64,  width:   625 [623;628]	(2500 us)
Level estimates [high, low]:   1081,      3
Frequency offsets [F1, F2]:  -22730,      0	(-86.7 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with fixed gap
Attempting demodulation... short_limit: 255, long_limit: 251, reset_limit: 251, demod_arg: 0
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 1 
[00] {88} ff a0 42 8e 49 00 00 00 00 80 65 


2016-10-26 16:34:06 :	Fine Offset WH1080 weather station
	Msg type:	 0
	StationID:	 0008
	Temperature:	 25.9 C
	Humidity:	 75 %
	Wind string:	 N
	Wind degrees:	 0
	Wind avg speed:	 0.00
	Wind gust:	 0.00
	Total rainfall:	 0.0
	Battery:	 OK
2016-10-26 16:34:06 :	Fine Offset WH1080 weather station
	Msg type:	 0
	StationID:	 0008
	Temperature:	 25.9 C
	Humidity:	 75 %
	Wind string:	 N
	Wind degrees:	 0
	Wind avg speed:	 0.00
	Wind gust:	 0.00
	Total rainfall:	 0.0
	Battery:	 OK


che 87 bit.... :cheer: :cheer: :cheer:

Detected OOK package
Analyzing pulses...
Total count:   87,  width: 45786		(183.1 ms)
Pulse width distribution:
 [ 0] count:   29,  width:   124 [124;129]	( 496 us)
 [ 1] count:   58,  width:   368 [367;370]	(1472 us)
Gap width distribution:
 [ 0] count:   86,  width:   241 [240;243]	( 964 us)
Pulse period distribution:
 [ 0] count:   28,  width:   366 [365;371]	(1464 us)
 [ 1] count:   58,  width:   610 [608;612]	(2440 us)
Level estimates [high, low]:  15883,      5
Frequency offsets [F1, F2]:   22473,      0	(+85.7 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with fixed gap
Attempting demodulation... short_limit: 246, long_limit: 244, reset_limit: 244, demod_arg: 0
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 1 
[00] {87} ff 59 64 f4 92 00 00 00 01 20 4e 


2016-10-26 16:28:26 :	Fine Offset WH1080 weather station
	Msg type:	 0
	StationID:	 0073
	Temperature:	 24.1 C
	Humidity:	 71 %
	Wind string:	 N
	Wind degrees:	 0
	Wind avg speed:	 0.00
	Wind gust:	 0.00
	Total rainfall:	 0.0
	Battery:	 OK
2016-10-26 16:28:26 :	Fine Offset WH1080 weather station
	Msg type:	 0
	StationID:	 0073
	Temperature:	 24.1 C
	Humidity:	 71 %
	Wind string:	 N
	Wind degrees:	 0
	Wind avg speed:	 0.00
	Wind gust:	 0.00
	Total rainfall:	 0.0
	Battery:	 OK

E' FATTA!!! :woohoo: :woohoo: :woohoo: ho pensato....
ho reinstallato tutto anche sul raspberry ma il sensore a 87 bit non ne vuole sapere.....

ho anche provato a smanettare un pò (per quel che no so) nei file di rtl_433 ma senza risultato....

Nicola mettici le mani perché mi pare che i nuovi sensori arrivano tutti a 87 bit......

Io intanto continuo a provare..... :( :( :(


EDIT:
ho provato sia la versione 2 su rpi-zero e rpi-b (1b)
e la versione 3 solo rpi-zero

:( :( per ora niente.....

Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah
Last edit: 8 years 3 weeks ago by asy961.

Please Log in to join the conversation.

More
8 years 3 weeks ago #7366 by asy961
dopo un pò di tempo a 'smanettare' nel codice...
pi@swpi ~ $ /usr/local/bin/rtl_eeprom
Found 1 device(s):
  0:  Generic RTL2832U OEM

Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner

Current configuration:
__________________________________________
Vendor ID:		0x0bda
Product ID:		0x2838
Manufacturer:		Realtek
Product:		RTL2838UHIDIR
Serial number:		00000001
Serial number enabled:	yes
IR endpoint enabled:	yes
Remote wakeup enabled:	no
__________________________________________
Reattached kernel driver
pi@swpi ~ $ rtl_433 -f 868300000 -l 0 -A
Registering protocol "Silvercrest Remote Control"
Registering protocol "Rubicson Temperature Sensor"
Registering protocol "Prologue Temperature Sensor"
Registering protocol "Waveman Switch Transmitter"
Registering protocol "Steffen Switch Transmitter"
Registering protocol "ELV EM 1000"
Registering protocol "ELV WS 2000"
Registering protocol "LaCrosse TX Temperature / Humidity Sensor"
Registering protocol "Acurite 5n1 Weather Station"
Registering protocol "Acurite 896 Rain Gauge"
Registering protocol "Acurite Temperature and Humidity Sensor"
Registering protocol "Oregon Scientific Weather Sensor"
Registering protocol "Mebus 433"
Registering protocol "Intertechno 433"
Registering protocol "KlikAanKlikUit Wireless Switch"
Registering protocol "AlectoV1 Weather Sensor (Alecto WS3500 WS4500 Ventus W155/W044 Oregon)"
Registering protocol "Cardin S466-TX2"
Registering protocol "Fine Offset Electronics, WH-2 Sensor"
Registering protocol "Nexus Temperature & Humidity Sensor"
Registering protocol "Ambient Weather Temperature Sensor"
Registering protocol "Calibeur RF-104 Sensor"
Registering protocol "X10 RF"
Registering protocol "DSC Security Contact"
Registering protocol "Brennstuhl RCS 2044"
Registering protocol "GT-WT-02 Sensor"
Registering protocol "Danfoss CFR Thermostat"
Registering protocol "Energy Count 3000 (868.3 MHz)"
Registering protocol "Valeo Car Key"
Registering protocol "Chuango Security Technology"
Registering protocol "Generic Remote SC226x EV1527"
Registering protocol "TFA-Twin-Plus-30.3049 and Ea2 BL999"
Registering protocol "Fine Offset WH1080 Weather Station"
Registering protocol "WT450"
Registering protocol "LaCrosse WS-2310 Weather Station"
Registering protocol "Esperanza EWS"
Registering protocol "Efergy e2 classic"
Registering protocol "Inovalley kw9015b rain and Temperature weather station"
Registering protocol "Generic temperature sensor 1"
Registering protocol "Acurite 592TXR Temperature/Humidity Sensor and 5n1 Weather Station"
Registering protocol "Acurite 986 Refrigerator / Freezer Thermometer"
Registering protocol "HIDEKI TS04 Temperature and Humidity Sensor"
Registering protocol "Watchman Sonic / Apollo Ultrasonic / Beckett Rocket oil tank monitor"
Registering protocol "CurrentCost Current Sensor"
Registering protocol "emonTx OpenEnergyMonitor"
Registering protocol "HT680 Remote control"
Registering protocol "S3318P Temperature & Humidity Sensor"
Registering protocol "Akhan 100F14 remote keyless entry"
Registering protocol "Quhwa"
Registering protocol "OSv1 Temperature Sensor"
Registering protocol "Proove"
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 0.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868300000 Hz.
Detected OOK package
Analyzing pulses...
Total count:   87,  width: 45779		(183.1 ms)
Pulse width distribution:
 [ 0] count:   29,  width:   120 [118;125]	( 480 us)
 [ 1] count:   58,  width:   363 [362;365]	(1452 us)
Gap width distribution:
 [ 0] count:   86,  width:   246 [245;248]	( 984 us)
Pulse period distribution:
 [ 0] count:   28,  width:   366 [365;370]	(1464 us)
 [ 1] count:   58,  width:   610 [608;612]	(2440 us)
Level estimates [high, low]:   4249,     17
Frequency offsets [F1, F2]:   -1263,      0	(-4.8 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with fixed gap
Attempting demodulation... short_limit: 241, long_limit: 249, reset_limit: 249, demod_arg: 0
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 1 
[00] {87} ff 54 04 fe 44 00 00 00 01 1b 16

da terminale sembra che anche il raspberry (sto provando con uno zero)
riesca a ricevere il sensore a 87 bit.....
ma swpi non lo decodifica..... :( :(

devo continuare a 'smanettare'.... :S :S

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
8 years 3 weeks ago #7367 by seven
Uazzz!!! :woohoo: :woohoo: :woohoo:
GRANDE Asy!!
Mi serve che tu faccia questa cosa qua: facendo partire rtl_433 con dei parametri particolari genererai alcuni files che utilizzerò (io e chiunque avrà voglia di provare, naturalmente) per "ricostruire" l'output a 87 bits della tua stazione. A quel punto potrò (potremo) vedere dove si inceppa l'ambaradan.

Crea una cartella in /home/pi , portatici dentro in consolle e da lì digita:

sudo /usr/local/bin/rtl_433 -f 868250000 -l 0 -a -t


Lascialo andare per una decina di minuti, intercetterà i segnali provenienti dalla/e WH1080. Alla fine la cartella conterrà diversi files dal nome tipo gfile001.data, gfile002.data....
Posta qua uno zip dei files che poi vediamo. :cheer:

Please Log in to join the conversation.

More
8 years 3 weeks ago - 8 years 3 weeks ago #7368 by asy961
Grazie Nicola

ecco le prove richieste

spero siano sufficienti....

Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah
Attachments:
Last edit: 8 years 3 weeks ago by asy961.

Please Log in to join the conversation.

More
8 years 3 weeks ago #7369 by seven
Certo che si! Ottimo lavoro, ci sto già smanettando ;)

Please Log in to join the conversation.

More
8 years 3 weeks ago #7370 by asy961
Nicola

se ti può essere utile questo è il risultato con il sensore a 88 bit

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

Please Log in to join the conversation.

More
8 years 3 weeks ago - 7 years 10 months ago #7371 by seven
Grazie asy!
La soluzione è molto più semplice di quanto ci si potesse aspettare: basta mettere in rw il sistema, scaricare i sorgenti di rtl_433 e ricompilarlo, MA PRIMA: ....

...Poichè SWPI utilizza una versione di rtl_433 modificata ed adattata alla bisogna, devi editare il file sorgente
/src/devices/fineoffset_wh1080.c


prima di compilarlo, aggiungendo la parte che ad ogni lettura dati sovrascrive il file


/dev/shm/wh1080-rtl_433.txt




Le righe da aggiungere sono quelle che nei sorgenti di SWPI (in GitHub) attualmente si trovano nel file github.com/ToninoTarsi/swpi/blob/master/.../fineoffset_wh1080.c

dalla 270 alla 295 comprese.



Per comodità lo allego già modificato, ho solo voluto spiegare il perchè la ricezione dati non poteva funzionare con la semplice ricompilazione di rtl_433... Può essere utile ad altri smanettoni :P

Quindi ricapitoliamo: scàricati i nuovi sorgenti di rtl_433 da qui (cosa che hai già fatto);

Con il sistema in rw scompattali in una cartella vuota;

Sovrascrivi il file
(rtl_433)/src/devices/fineoffset_wh1080.c
con quello allegato;

Nella cartella principale dei sorgenti crea la cartella
/build


Dopo averla creata, l'albero delle cartelle si presenterà così:







Entra nella cartella /build con il comando

cd build


Dai in sequenza i comandi

cmake ../
make
sudo make install



Dovresti essere a posto. Facci sapere!




P.S.: Ulisse, non mi sono dimenticato di te. Se mi mandi i files, analogamente a quanto ho chiesto a Asy nel post #7367 ci posso dare un occhio.
La tua linea di comando però è diversa perchè diversa è la frequenza operativa della tua stazione (433 Mhz).
Prova con il comando:


sudo /usr/local/bin/rtl_433 -R 34 -l 0 -a -t


Aspetto i files, ciaoo!



File Attachment:

File Name: fineoffset_wh1080.zip
File Size:5 KB
Attachments:
Last edit: 7 years 10 months ago by seven.
The following user(s) said Thank You: Ciaschini

Please Log in to join the conversation.

More
8 years 3 weeks ago #7372 by asy961
GRANDE NICOLA!!! FUNZIONA ANCHE A 87 BIT!!! :woohoo: :woohoo: :woohoo:

devo dire che mi ero accorto della modifica per swpi sul vecchio sorgente ed avevo già editato il nuovo con la tua modifica per swpi.... ;) ;)

mi mancava solo di compilarlo...... :huh:

la mia (pochissima) esperienza non mi ci aveva (ancora) portato..... :)



e ora però una curiosità..... :ohmy:

facendo molte prove in questi giorni mi è venuto un dubbio per via dell'id del trasmettitore PCE/WH1080 che sono diversi per ogni trasmettitore (ovviamente), ma che cambiano anche dopo la sostituzione o stacco/riattacco delle batterie

se per esempio nel raggio di ricezione della chiavetta ci sono due o più trasmettitori PCE/WH1080 come possiamo essere sicuri, visto che la chiavetta riceve contemporaneamente tutti i sensori accesi, che swpi selezioni solo quello che ci interessa??

è vero che l'id del sensore non dovrebbe cambiare fino alla sostituzione delle batterie, però swpi in molte stazioni, specie quelle isolate alimentate da pannelli solari, la notte si spegne per riaccendersi la mattina....

facendo delle prove, senza spengere il raspberry, quando faccio il cambio sensore (spengo uno accendo l'altro) swpi continua il suo lavoro con il sensore che in quel momento è acceso.....

insomma non c'è una vera selezione......

che ne pensi Nicola??

ah....grazie

Valerio

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
8 years 3 weeks ago - 8 years 3 weeks ago #7373 by seven
Di nulla Valerio, grazie a te anzi, insieme abbiamo migliorato ancora un po' questa funzionalità di SWPI e magari abbiamo pure imparato qualcosa di nuovo, che è sempre utile! ;)

Appena possibile chiederò il merge a Tony in GitHub.

Per quanto riguarda l'ID del sensore della WH1080, come hai già sottolineato tu varia automaticamente ad ogni reset/cambio batteria e di volta in volta non sembra -che io sappia- che il nuovo ID possa essere in qualche modo prevedibile.
Ne consegue che l'unico modo per averlo fisso, riconoscibile e "selezionabile" da SWPI, è che il sensore non si fermi mai... :)
Perciò se anche il sensore, così come la Raspberry, viene alimentato da un sistema solare che di notte cessa di produrre energia elettrica, occorrerà dotarlo di un sistema di batterie tampone ricaricabili che lo faccia funzionare indipendentemente dal resto del sistema.

A onor del vero c'è da dire che i più recenti sensori WH1080 incorporano un piccolo pannellino solare che alimenta il sensore stesso e tiene in carica le sue batterie interne ricaricabili, e devo dire per esperienza personale che nemmeno nelle corte e nebbiose giornate invernali avute lo scorso anno qui a Padova ho mai riscontrato problemi di carica batterie: la poca luce era comunque sufficiente a mantenerle ben funzionanti (ed il sensore ha sempre lo stesso ID oramai da tre anni e passa).

Se io dovessi modificare il codice di SWPI per 'fixare' l'attenzione su un solo ID di sensore WH1080 proverei a fare così:

andrei innanzitutto ad aprire il file /dev/shm/wh1080-rtl_433.txt per vedere l'ID del sensore che mi interessa (nel mio caso: "station_id" : "0005" ).

Poi modificherei il file /swpi/sensor_wh1080rtlsdr.py e cambierei la riga

if ( station_id == "None" ):


in

if ( station_id == "None" or station_id != "0005" ):



Questa riga scarta infatti eventuali dati pervenuti da sensori privi di station_id; l'aggiunta fa sì che anche dati provenienti da station_id diversi da "0005" vengano scartati, ed il gioco è bello che fatto.

Infine commenterei le linee 258-259 da così

if ( station_id == "None"):
	log("Bad data received from WH1080_RTL-SDR")


a così

#if ( station_id == "None"):
#	log("Bad data received from WH1080_RTL-SDR")


per evitare che ad ogni ricezione dati da stazione diversa da quella che desidero (e pertanto scartata) mi appaia un messaggio di errore o che venga scritto nei log.


Naturalmente ti sto parlando a braccio, non ho testato il codice ma secondo me funziona :lol:
Last edit: 8 years 3 weeks ago by seven.

Please Log in to join the conversation.

More
8 years 3 weeks ago #7375 by asy961
OK Nicola,
è solo una curiosità perché credo che sia altamente difficile trovare due stazioni/sensori PCE/WH1080 nel raggio di qualche decina di metri...

però potrebbe anche essere che il tuo vicino di casa voglia montare una stazione meteo, magari uguale alla tua, per gestire i dati in privato solo sul suo pc....

anche nelle stazioni isolate di solito il sensore è montato come il tuo, con le sue batterie e il suo pannellino solare, però il raspberry, e tutto quello che è collegato via cavo ad esso si spegne...

quando la mattina si riaccende come fa a riconoscere il sensore della tua stazione?

credo che le modifiche che hai segnalato funzionino (io non ho provato ma sembrano abbastanza chiare e semplici) bisognerà vedere se in futuro si presenterà un caso del genere, a quel punto bisognerà lavorarci e rendere semplice l'identificazione dell'ID e la sua configurazione su SWPI.

Valerio.

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
8 years 3 weeks ago - 8 years 3 weeks ago #7376 by seven

asy961 wrote: OK ... però il raspberry, e tutto quello che è collegato via cavo ad esso si spegne...

quando la mattina si riaccende come fa a riconoscere il sensore della tua stazione?



l'ID del sensore non viene assegnato arbitrariamente dalla Raspberry, ma viene trasmesso dal sensore stesso ad ogni invio di dati meteo. E' anzi -nell'ordine- il primo dato che viene inviato all'interno del pacchetto che costituisce l'intera trasmissione da parte del sensore. Seguono poi temperatura ecc. ecc.
E' come se il sensore firmasse con il suo nome ogni pacchetto di dati che trasmette.

Per averne un'idea guarda il file /dev/shm/wh1080-rtl_433.txt: contiene l'intera stringa di dati ricevuta direttamente dal sensore.

SWPI lo riconosce quindi perchè il sensore, che è rimasto acceso, avrà lo stesso codice di ieri e la Rasp conterrà il codice modificato come da post più sopra :)

Per questo è importante che il sensore non si spenga mai: in questo modo non cambierà codice e la Rasp alla riaccensione tornerà a seguire solo quello che è programmata ad ascoltare (nel mio caso quello con ID "0005").

Se questa cosa risulterà essere importante potrebbe sì valer la pena di inserire un'apposita voce nel menu di configurazione del sensore RTL-SDR ;)
Last edit: 8 years 3 weeks ago by seven.

Please Log in to join the conversation.

More
8 years 3 weeks ago - 8 years 3 weeks ago #7377 by asy961

seven wrote: l'ID del sensore non viene assegnato arbitrariamente dalla Raspberry, ma viene trasmesso dal sensore stesso ad ogni invio di dati meteo.....


quello era chiaro


la Rasp conterrà il codice modificato come da post più sopra


se intendi questo

if ( station_id == "None" or station_id != "0005" ):


ok

ma la versione attuale non contiene questa modifica

Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah
Last edit: 8 years 3 weeks ago by asy961.

Please Log in to join the conversation.

Time to create page: 0.736 seconds