× 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
7 years 11 months ago #7533 by Ciaschini
Ho reinstallato tutto e ho risolto, grazie! :)

Please Log in to join the conversation.

More
7 years 10 months ago #7570 by modavionlus
Buonasera a tutti.

Sto cercando di installare da ore la parte sw per la chiavetta rtl433.
Tutto ok fino alla compilazione del raspberry_rtl_wh1080. Lanciando il comando make ho questo messaggio di errore alla fine della compilazione:

Linking C executable rtl_433
CMakeFiles/rtl_433.dir/devices/fineoffset_wh1080.c.o: nella funzione "bmp085_i2c_Read_Int":
/home/pi/raspberry_rtl_wh1080/src/devices/fineoffset_wh1080.c:159: riferimento non definito a "i2c_smbus_read_word_data"
CMakeFiles/rtl_433.dir/devices/fineoffset_wh1080.c.o: nella funzione "bmp085_i2c_Write_Byte":
/home/pi/raspberry_rtl_wh1080/src/devices/fineoffset_wh1080.c:174: riferimento non definito a "i2c_smbus_write_byte_data"
CMakeFiles/rtl_433.dir/devices/fineoffset_wh1080.c.o: nella funzione "bmp085_i2c_Read_Block":
/home/pi/raspberry_rtl_wh1080/src/devices/fineoffset_wh1080.c:183: riferimento non definito a "i2c_smbus_read_i2c_block_data"
collect2: error: ld returned 1 exit status
src/CMakeFiles/rtl_433.dir/build.make:261: set di istruzioni per l'obiettivo "src/rtl_433" non riuscito
make[2]: *** [src/rtl_433] Errore 1
CMakeFiles/Makefile2:158: set di istruzioni per l'obiettivo "src/CMakeFiles/rtl_433.dir/all" non riuscito
make[1]: *** [src/CMakeFiles/rtl_433.dir/all] Errore 2
Makefile:117: set di istruzioni per l'obiettivo "all" non riuscito
make: *** [all] Errore 2

Ho provato a modificare il file in C, sostituendo il valore da 1 a 0, ma nulla.

Cosa posso fare?

Please Log in to join the conversation.

More
7 years 10 months ago - 7 years 10 months ago #7571 by seven
Ciao!

raspberry_rtl_wh1080 è un "parente" del driver utilizzato in swpi, ma non è compatibile con swpi stesso. Può andare bene se hai uno script tuo per estrarre i dati che legge via json, altrimenti l'unica cosa che fa è presentarti i dati a video.

Il driver per swpi invece lo trovi nella repository GitHub di Tony (dentro la cartella 'rtl_433'):

https://github.com/ToninoTarsi/swpi


E' questo che devi compilare. Tieni presente che a seconda della tua versione di PCE/WH1080 potrebbe essere necessario modificare qualche riga del driver prima di compilarlo (vedi questo post e successivi).
Last edit: 7 years 10 months ago by seven.
The following user(s) said Thank You: modavionlus

Please Log in to join the conversation.

More
7 years 10 months ago #7572 by modavionlus
Grazie seven per la tua risposta. Ho fatto come mi hai consigliato.
Tecnicamente adesso potrei rimuovere il cavo usb che collega raspberry alla consolle?

Please Log in to join the conversation.

More
7 years 10 months ago #7573 by seven
Di nulla figurati! Si, seleziona il driver wh1080_rtlsdr dal pannello di controllo di swpi e salva l'impostazione, spegni la raspberry (meglio se con il comando "sudo poweroff" da console), stacca l'alimentazione ed il cavo usb dalla raspberry. Collega la chiavetta rtlsdr, l'antenna alla chiavetta e riaccendi. Entro 10 minuti dovresti vederla ricevere i dati. Altrimenti ci sentiamo per di qua.
The following user(s) said Thank You: modavionlus

Please Log in to join the conversation.

More
7 years 10 months ago - 7 years 10 months ago #7579 by modavionlus
Buongiorno a tutti.

Dopo i consigli di seven tutto sembra funzionare, tranne la pressione.

www.wunderground.com/personal-weather-st...=IABRUZZO125#history

www.pwsweather.com/obs/MODAVIPC.html#

Cosa potrebbe essere?

Il log di swpi è questo:

[27/01/2017-10:55:00] New data received from WH1080_RTL-SDR station 0093. Processing...
[27/01/2017-10:55:00] Calculating Meteo data and statistics
[27/01/2017-10:55:00] Log to Wunderground : success
[27/01/2017-10:55:03] Deleted file : /dev/shm/meteo.txt
[27/01/2017-10:55:03] Sending file to server : meteo.txt OK Deleted
[27/01/2017-10:55:04] Data sent to server : Wrong password
[27/01/2017-10:55:13] Logging data to Database
[27/01/2017-10:55:13] Dir: NW - Spd: 0.0 - Gst: 0.732 - Tout: 12.4 - Hout: 42.0 - Rtot: 192.6 - RDay: 0.0 - R1h: 0.0 - R24h: -1228.8 - CB: 1836 - Trend: 0.31
Last edit: 7 years 10 months ago by modavionlus.

Please Log in to join the conversation.

More
7 years 10 months ago - 7 years 10 months ago #7580 by asy961
Come per molte stazioni della serie WH anche la tua ha il sensore di pressione all'interno della consolle/display...
quindi devi integrare il valore della pressione installando un sensore sulla GPIO del raspberry

qui e qui trovi info al riguardo

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: 7 years 10 months ago by asy961.
The following user(s) said Thank You: modavionlus

Please Log in to join the conversation.

More
7 years 10 months ago #7583 by modavionlus
Grazie asy961 per la tua risposta. A quel punto però swpi prende la lettura dell'umidità e della pressione dal BMP280/BME280 giusto? Dovrei installare dunque tutto all'esterno?

Please Log in to join the conversation.

More
7 years 10 months ago - 7 years 10 months ago #7584 by asy961
se monti il bme280 si, ti consiglio un montaggio esterno...
altrimenti monti bmp085, che legge pressione e temperatura, e lo puoi lasciare all'interno insieme al raspberry, l'umidità continuerà a leggerla dal sensore WH che hai all'esterno

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: 7 years 10 months ago by asy961.
The following user(s) said Thank You: modavionlus

Please Log in to join the conversation.

More
7 years 10 months ago #7586 by modavionlus
Buongiorno a tutti.

Forse sto chiedendo troppo, ma non sarebbe possibile in caso di utilizzo del bme280 prendere in considerazione solo la misura relativa alla pressione?

Please Log in to join the conversation.

More
7 years 8 months ago #7718 by seven
Ciao a te, scusa il 'leggero' ritardo nel risponderti... :unsure:
Riallacciandomi ai post precedenti: se ciò di cui hai bisogno è semplicemente integrare ai dati della PCE anche quello della pressione ti suggerisco un 'semplice' BMP085 o BMP180, sono davvero economici, vedrai (non fermarti al primo venditore).

Selezionando tale sensore dal pannello di controllo di SWPI arricchirai i dati provenienti dalla PCE con quelli di temperatura interna e pressione atmosferica. A riguardo di quest'ultimo aspetto: non è necessario montare il sensore all'aperto in quanto la pressione sarà pressoché identica sia dentro che fuori casa tua, non è come la temperatura o l'umidità dell'aria che cambiano a seconda di dove metti il sensore.

Non escludo che tutto quanto detto valga anche per il BME280, ma non ne ho esperienza diretta perché non l'ho ancora provato.

Ciaoo!

Please Log in to join the conversation.

More
7 years 8 months ago #7723 by ulisse
Confermo che funziona anche col BME280, se presente ed abilitato nella configurazione, i dati letti dal sensore vengono usati per Pressione e Temperatura Interna (l'umidità viene letta ma non so se venga usata come umidità interna...)


Per quanto riguarda la chiavetta DVB, a me succede che ogni tanto si "disconnetta", o più verosimilmente vada in crash rtl_433, e SWPI smette di raccogliere dati finchè non lo riavvio...
Esaminando il file sensor_wh1080rtlsdr.py mi pare di aver capito che sia previsto in qualche modo che rtl_433 possa terminare ed essere riavviato, ma non sembra che accada.

Come workaround ho scritto un plugin che controlla l'età del file /dev/shm/rtl_433.txt e se è più vecchio di 5 minuti, esegue uno script che ammazza SWPI e lo riavvia, ma non è una soluzione elegante...

Please Log in to join the conversation.

More
7 years 8 months ago #7725 by seven
Ottime le info per il BME280, grazie Ulisse.
Ottimo anche il workaround, ma il crash della chiavetta non è normale e mi fa pensare ad un problema hardware, forse legato all'alimentatore (sottodimensionato o poco stabile)...

Please Log in to join the conversation.

More
7 years 8 months ago - 7 years 8 months ago #7726 by ulisse
Rettifico quanto scritto per il BME280, la temperatura letta dal sensore viene messa nel database come TEMPINT ma l'umidità va a finire in HUM, quindi esterna...
Sto cercando di capire come funzioni il ciclo di lettura dei sensori per vedere se riesco a modificare qualcosa, ma mi sono perso quando sono arrivato a sensor.py...

SWPI è troppo complesso per poterlo "risalire" con le poche conoscenze che ho :P se vuoi darmi qualche dritta, sentiti libero di farlo!

EDIT: Ero nel posto giusto, con un po' di impegno sono riuscito nel mio intento!
Ho modificato il file sensor.py alla riga 210, dove c'era questo:
globalvars.meteo_data.hum_out = humidity

e l'ho fatto diventare così:
if ( self.cfg.sensor_type not in self.implementedStations):
globalvars.meteo_data.hum_out = humidity
else:
globalvars.meteo_data.hum_in = humidity

e adesso l'umidità letta dal BME280, al pari della temperatura, viene loggata come interna!
Last edit: 7 years 8 months ago by ulisse.

Please Log in to join the conversation.

More
7 years 8 months ago #7727 by seven
Perfetto! Stavo sclerando col mio pc che poco dopo aver fatto un doppio post si è piantato.
Bravissimo
The following user(s) said Thank You: ulisse

Please Log in to join the conversation.

More
7 years 8 months ago #7728 by ulisse
Allego il file modificato, così quando farò per sbaglio un swpi-update saprò dove venire a riprenderlo :lol:
Attachments:

Please Log in to join the conversation.

More
7 years 8 months ago #7734 by ulisse
Seven, ho visto che stai sottoponendo delle migliorie a Tonino per un merge... ce la faresti a buttare dentro anche la mia modifica di cui sopra?
Penso possa far comodo anche ad altri...

Please Log in to join the conversation.

More
7 years 8 months ago #7735 by seven
Yesss, Ulisse, fatto!
Non l'ho potuto testare non avendo il BME280, ma ritengo che la tua soluzione sia valida.
Tony scrive in Github che rientrerà per fine mese, periodo dal quale potrà esaminare le modifiche ed eventualmente fare il merge.
The following user(s) said Thank You: ulisse

Please Log in to join the conversation.

More
7 years 8 months ago #7737 by ulisse
Nicola, ho provato a compilare la tua versione di rtl_433 (clonando il tuo repo github) ma c'è qualcosa che non va con il file che produce in /dev/shm, ci sono alcuni caratteri con codifica errata nella stringa della data.
Modificando il master originale di merbanan con le righe del repo di Tonino invece tutto funziona alla grande

Please Log in to join the conversation.

More
7 years 8 months ago #7738 by seven
Azz... Mi potresti mostrare l'errore Ulisse? A me finora non ha dato questo problema, vorrei capire cosa va storto...

Please Log in to join the conversation.

More
7 years 8 months ago #7739 by ulisse
In allegato i due file generati dalle due versioni degli eseguibili, i nomi sono autoesplicativi.

La tua versione di rtl_433 l'ho compilata pari pari come è venuta clonata da GIT, utilizzando il tuo script, la versione di Merbanan l'ho modificata aggiungendo le righe di Tonino (come dal tuo post famoso) e compilata con le stesse modalità.

L'hardware è esattamente lo stesso, un RPi3, chiavetta riconosciuta come "Rafael Micro R820T tuner".
Il sistema è Raspbian Jessie aggiornato.
Attachments:
The following user(s) said Thank You: seven

Please Log in to join the conversation.

More
7 years 8 months ago #7740 by seven
Oooh, adesso l'ho visto. :lol:
Ho fatto un'analisi un po' veloce ma non riesco a capire dove si annidi la menta. Oltretutto QUELLA parte di struttura lì non l'ho neanche toccata per aggiornarla alla WH3080, l'ho copiata paro-paro e dovrebbe funzionare come prima, a meno che non siano state apportate modifiche relative a data/ora su altre parti di rtl_433 da Merbanan (ed almeno una l'avrei anche trovata, ma al momento non saprei quanto potrebbe influire).

Tornando a swpi il campo [time] (nel contesto dei due files in /dev/shm) è lì come riferimento per noi umani, in realtà non viene utilizzato in alcun modo da swpi: quest'ultimo infatti utilizza data ed ora di creazione del file per sincronizzare la lettura dei dati, mentre data ed ora estratti dal segnale WH1080/WH3080 vanno direttamente a settare il clock della Rasp (non 'passano' quindi per i due famosi files).
A parte quindi una magagna di tipo "estetico" (che tra l'altro io non riesco proprio a riprodurre qui da me) non dovrebbe esserci alcun problema sul funzionamento di swpi. Sicuramente approfondirò comunque l'argomento.

Grazie mille però per la segnalazione (e complimenti per l'occhio), ti chiedo anzi di continuare a vegliare sui miei smanettamenti perché se non c'è chi riporta le magagne è impossibile poi per me curarle :cheer:

Please Log in to join the conversation.

More
7 years 8 months ago #7741 by ulisse
Più che occhio è stata necessità, visto che il file col carattere sbagliato veniva bollato da SWPI come "Bad data" ed ignorato... ho dovuto fare un po' di debug :)

Please Log in to join the conversation.

More
7 years 8 months ago #7742 by seven
Mah, non so cosa dirti... Quel campo viene ignorato del tutto da swpi, lui non sa nemmeno che esiste.
A meno che il problema non si verifichi saltuariamente anche con altri campi, ma allora là c'è qualcos'altro che non va.

EDIT: Ho notato un commit dei sorgenti di rtl_433 fatto 4 giorni fa (quindi DOPO la mia versione di rtl_433).

Guardacaso coinvolge proprio local_time_str, che viene chiamato in causa per generare la stringa data-ora che ci affligge. Ho riportato la modifica anche sulla mia repo, vuoi provare a vedere se ora va?

Please Log in to join the conversation.

More
7 years 8 months ago #7743 by ulisse
Niente da fare Nik, ho fatto un pull del tuo repo e ricompilato, il risultato è lo stesso (file allegato).

Ho provato a prendere il file "funzionante" fineoffset_wh1080.c e copiarlo al posto del fineoffset_wh1080_wh3080.c nel tuo repo, ma come c'era da aspettarsi ho ottenuto solo errori di compilazione :P
Attachments:

Please Log in to join the conversation.

More
7 years 8 months ago #7744 by seven
Eh si Ulisse, non può -ovviamente- funzionare così :)
Continuo ad indagare.

Please Log in to join the conversation.

More
6 years 9 months ago #8069 by superbug
Buongiorno,sto testando un sensore pce e a casa ho già una.pce con console che va da anni. Il sensore che sto testando invia 87 bit invece che 88, facendo la lettura dei dati con rtl_443 e tutti i suoi comandi, il sensore viene visto.
Quando invece swpi è avviato, mi rimane in "starting RF listening",non riceve nessun dato e poi va in sleeping.
Qualcuno ha avuto questi problemi?

Please Log in to join the conversation.

More
5 years 11 months ago - 5 years 11 months ago #8361 by asy961

seven wrote: Noo, Valerio, infatti non lo contiene... Finora anzi mi pare non sia mai stata nemmeno considerata l'ipotesi di selezionare un singolo ID sensore, neanche all'interno del codice RFM01.
Ritengo si tratti di casi limite (per carità: sempre possibili, tuttavia remoti come probabilità...) avere la sfiga che il vicino si compri la stazione meteo identica alla propria :lol: :lol: :lol:

Per questo considero sia meno laborioso modificare da sè -in caso di necessità- il file sensor_wh1080rtlsdr.py così come esposto sopra anzichè sclerare per implementare la funzione direttamente nel pannello di controllo (le variazioni da eseguire in questo caso sarebbero moooolto numerose, credimi), anche se indubbiamente una volta fatto il lavoro renderebbe swpi ancora più fantastico. ;)




Ciao Nicola,
per la ormai classica 'Legge di Murphy' in questi giorni abbiamo proprio questo problema con una delle nostre stazioni.......un vicino ha installato una stazione meteo WH1080 e adesso la chiavetta RTL riceve i dati da entrambe le stazioni e li invia a swpi che ci mostra delle situazioni a volte inconsuete nella direzione e nella intensità del vento oltre ai valori di umidità......

per risolvere come diresti di procedere?
modificare/inserire qualche riga di codice in questa parte del file sensor_wh1080rtlsdr.py?


def ReadData(self):
		with file('/dev/shm/wh1080-rtl_433.txt') as f:
			data_file = f.read()
			try:
				line = json.loads(data_file)
				if str(line['msg_type']) == '0':
					try:
						station_id = str(line['station_id'])
						if ( station_id  == "None" ):
							return "None",0,0,0,0,"",0,0
						temp = float(round(line['temperature'],1))
						hum = (line['humidity'])
						Wind_speed = (line['wind_speed'])*self.cfg.windspeed_gain + self.cfg.windspeed_offset
						Gust_Speed  = (line['wind_gust'])*self.cfg.windspeed_gain + self.cfg.windspeed_offset
						dir_code = str(line['wind_dir_str'])
						dire = float(line['wind_dir_deg'])
						rain = (round(line['total_rain'],2))



come avevi già proposto qui?

oppure integrare un nuovo parametro nella configurazione per indicare l'ID della stazione?

In attesa ti Auguro un Felice 2019 :) :) :)

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: 5 years 11 months ago by asy961.

Please Log in to join the conversation.

More
5 years 10 months ago #8374 by seven
Ciao Asy, innanzitutto grazie per gli auguri che contraccambio, che sia anche per te uno splendido 2019!

Per la modifica bisognerebbe aggiungere il parametro nell'interfaccia di SWPI, ma ci vorrà un po' di tempo e soprattutto al momento non ho una raspberry disponibile per le prove. Al momento puoi modificare la funzione ReadData come segue, sperando che si mantenga la formattazione quando copierai questa parte in sensor_wh1080rtlsdr.py:

def ReadData(self):
		with file('/dev/shm/wh1080-rtl_433.txt') as f:
			data_file = f.read()
			try:
				line = json.loads(data_file)
				if str(line['msg_type']) == '0':
					try:
						station_id = str(line['station_id'])
						if ( station_id  == "None" ):
							return "None",0,0,0,0,"",0,0
                        elif ( station_id  == "<id_stazione>" ):
                            temp = float(round(line['temperature'],1))
                            hum = (line['humidity'])
                            Wind_speed = (line['wind_speed'])*self.cfg.windspeed_gain + self.cfg.windspeed_offset
                            Gust_Speed  = (line['wind_gust'])*self.cfg.windspeed_gain + self.cfg.windspeed_offset
                            dir_code = str(line['wind_dir_str'])
                            dire = float(line['wind_dir_deg'])
                            rain = (round(line['total_rain'],2))




Sostituisci <id_stazione> con l'id della tua stazione. Non ho potuto testarlo, ma dovrebbe funzionare. Fammi sapere!

Please Log in to join the conversation.

More
5 years 7 months ago #8472 by gnieddu
Ciao Alessandro, io ho eseguito le istruzioni per rilevare le misurazioni dalla PCE FWS 20, ma il risultato che ottengo è questo sai cosa posso aver sbagliato?
Attachments:

Please Log in to join the conversation.

Time to create page: 0.734 seconds