Recently I wanted to monitor the temperature and humidity of a sauna. I figured the safest way to go would be to place a battery-powered temperature/humidity sensor on a shelf, the kind of sensor that is commonly available on AliExpress for €1-5 each.
Most of the cheap "remote sensors" transmit their data over a short 433Mhz radio-transmission. So I just assumed it'd be possible to work something out.
The first step was to plug an SDR-dongle into my laptop, that worked just fine when testing, I could hear "stuff". But of course a Sauna is wood-lined, and beyond a tiled-shower area. In practice I just couldn't recieve the signal if my laptop lived in its usual location.
So I came up with a fall-back plan:
- Wire a 433Mhz receiver to an ESP8266 device.
- Sniff the radio-transmission.
- Decode it
- Inject into an MQ-host, via WiFi
Since the receiver could be within 10m of the transmitter I figured that would work fine - and it did. The real problem came when I tried to do this. There are a few projects you can find for acting as a 433Mhz -> WiFi bridge and none of them understood the transmission(s) my sensor was submitting.
In the end I had to listen for packets, work out the bit-spacing, and then later work out the actual contents of the packets. All by hand.
Anyway the end result is that I have something which will sniff the packets from the radio-transmitter, correctly calculate the temperature/humidity values and post them to MQ. From MQ a service polls the values and logs them to SQLite for later display. As a bonus I post to Slack the first time the temperature exceeds 50 °ree; a day:
- "Hot? It's like a sauna in here."
- "Main steam on, somebody set us up the beer."
- etc.
Next week I'll talk about how I had a similar (read: identical) problem reacting to the 433Mhz transmission triggered by a doorbell. None of the gateways I looked at logged a thing when the button was pressed. So I'll have to save the transmission via rtl_433
, analyze it with audacity
, and do the necessary.
For reference these are the three existing firmwares/solutions/projects I tried; on a Wemos Mini D1:
- https://github.com/xoseperez/espurna
- https://github.com/arendst/Sonoff-Tasmota
- Liked this one best for the UI.
- https://github.com/1technophile/OpenMQTTGateway
- This was sparse, but recommended too.
- Tried two different modules: RF, RFPilight, wasn't clear what the difference was, no change anyway.