× 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

Di più
7 Anni 10 Mesi fa #7533 da Ciaschini
Ho reinstallato tutto e ho risolto, grazie! :)

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7570 da 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?

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #7571 da 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).
Ultima Modifica 7 Anni 9 Mesi fa da seven.
Ringraziano per il messaggio: modavionlus

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7572 da 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?

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7573 da 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.
Ringraziano per il messaggio: modavionlus

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #7579 da 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
Ultima Modifica 7 Anni 9 Mesi fa da modavionlus.

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #7580 da 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
Ultima Modifica 7 Anni 9 Mesi fa da asy961.
Ringraziano per il messaggio: modavionlus

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7583 da 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?

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #7584 da 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
Ultima Modifica 7 Anni 9 Mesi fa da asy961.
Ringraziano per il messaggio: modavionlus

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7586 da 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?

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7718 da 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!

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7723 da 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...

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7725 da 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)...

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa - 7 Anni 8 Mesi fa #7726 da 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!
Ultima Modifica 7 Anni 8 Mesi fa da ulisse.

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7727 da seven
Perfetto! Stavo sclerando col mio pc che poco dopo aver fatto un doppio post si è piantato.
Bravissimo
Ringraziano per il messaggio: ulisse

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7728 da ulisse
Allego il file modificato, così quando farò per sbaglio un swpi-update saprò dove venire a riprenderlo :lol:
Allegati:

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7734 da 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...

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 8 Mesi fa #7735 da 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.
Ringraziano per il messaggio: ulisse

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7737 da 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

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7738 da seven
Azz... Mi potresti mostrare l'errore Ulisse? A me finora non ha dato questo problema, vorrei capire cosa va storto...

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7739 da 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.
Allegati:
Ringraziano per il messaggio: seven

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7740 da 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:

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7741 da 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 :)

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7742 da 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?

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7743 da 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
Allegati:

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 7 Mesi fa #7744 da seven
Eh si Ulisse, non può -ovviamente- funzionare così :)
Continuo ad indagare.

Si prega Accedi a partecipare alla conversazione.

Di più
6 Anni 9 Mesi fa #8069 da 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?

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 10 Mesi fa - 5 Anni 10 Mesi fa #8361 da asy961

seven ha scritto: 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
Ultima Modifica 5 Anni 10 Mesi fa da asy961.

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 10 Mesi fa #8374 da 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!

Si prega Accedi a partecipare alla conversazione.

Di più
5 Anni 7 Mesi fa #8472 da 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?
Allegati:

Si prega Accedi a partecipare alla conversazione.

Tempo creazione pagina: 0.787 secondi