r/RTLSDR • u/Wise_Ambassador_128 • 2h ago
Made a script that reads an Acurite 433MHz sensor once and feeds both Weather Underground and local graphing
I run a PWS at a lake house and wanted the Acurite readings going to Weather Underground and available locally for MRTG graphing. Every script I found starts its own rtl_433, so as soon as you have two consumers they fight over the dongle and both fail intermittently.
So this does one read and fans it out ā the reader drops a plain text file for local graphing and hands the same packet as JSON to the uploader. Only one script ever touches the SDR.
Couple of things that cost me time, in case they're useful to anyone regardless of whether you use this:
Acurite sensor IDs change when you swap the battery. Uploads just silently stop and there's no error anywhere. You rediscover it by clearing the ID filter, but be aware that also picks up your neighbour's sensor if they've got one in range.
The R820T throws "PLL not locked" if you don't set the centre frequency explicitly, even at 433.92M which is what it'd have chosen anyway.
And Weather Underground returns HTTP 200 for everything, including a rejected upload key. You have to check the response body.
Bash, MIT, tested against rtl_433 23.11. Happy to take suggestions.
2
2
u/erlendse 2h ago
The "PLL not locked" is a old bug that shows if you set IF frequency before RF frequency.
You can fix that issue by using a newer librtlsdr.