When [Elixir of Progress] was looking at setting up environmental sensors around their home to keep track of temperature, humidity and such, the obvious ideas of using WiFi-connected sensors didn’t work due to lack of WiFi range. Although Zigbee (Z-wave) sensors have longer range than WiFi, they are decidedly more expensive, proprietary and require a special transceiver hub. That’s where 433 MHz sensors for weather stations come into the picture.
The idea is simple: virtually all of those sensors – many of them rated for outdoor use – use the unlicensed 433 MHz spectrum that can easily be captured using cheap RTL-SDR (software defined radio) USB dongles. With the data stream from these sensors captured, the open source rtl_433 project enables automatic decoding of these data streams for a wide range of supported sensors.
While Realtek RTL2832-based and other RTL-SDRs can be found for quite cheap, it should be noted that these can run quite hot. Rather than heatsinking the IC, for this project it was elected to only listen sporadically and allow the RTL-SDR receiver to cool down in between listening sessions.
Getting the data from there into Home Assistant, InfluxDB or similar is easy, as rtl_433 can output the decoded data directly to an Influx database, MQTT broker as well as other formats. In this case, the data was sent via MQTT with the Home Assistant instance configured to treat these MQTT topics as sensors. With each sensor’s location carefully registered, this allows for setting up a dense, very low-power network of 433 MHz sensors for monitoring and home automation purposes.
Last I checked zig-bee reaches out the same distances as WiFi. This has been done to death in the HA community.
I did this to get the temperature of our pool. Not many choices for sensors and not easy as the transmitter ends up below ground level.
If you want to penetrate concrete or operate below ground level, you would first select a lower frequency like 915MHz (868MHz if in Europe) or 433MHz. Next you need to realize that to handle major signal attenuation through dense materials you either need to transmit at a higher power, or increase your sensitivity. For TX at a higher power, XBEE modules can get into the 1 Watt range. That’s 30dBm output power. Every 6 dBm you double the range if the pathway was free space. So if you are using a 17dBm module, you can get quite a bit more distance by using a 1 watt version. FYI, going from 915MHz to 433MHz also doubles the free space range and the opposite is true (going from 433 to 915 cuts the maximum free space range in half.)
I would have gone with a LoRa module.
I have been using Lora for some years, however a simple outdoor TH sensor could be in the range of 50 to 100 usd whereas a 433 wireless sensor could be as low as 5 10 usd
Last I checked, WiFi at 915MHz was not that common. Zigbee on the other handβ¦
915MHz will go further through obstacles than 2.4GHz.
Zigbee is on 2.4 in EU, not sure about other countries.
You’re thinking of Z-Wave that transmits at 915MHz (depending on country).
ZigBee is 2.4GHz.
There are sensors that transmit of 915, and are decodable by rlt_433 natively.
That is correct, you lose approximatley 10dB going from 915MHz to 2.4GHz in free space, all else being equal, so roughly 1/4 the maximum distance.
I originally wrote this tutorial because while I could find mentions of the idea on Reddit, I couldn’t find a clear 1 stop tutorial for how to do everything with only YAML editing.
Also, even those zigbee 915Mhz sensors are way more expensive than these cheapo outdoor 433mhz sensors I’ve been picking up. A zigbee USB stick in the US costs $1-$5 USD more than the complete RTL-SDR kit with external antennas as well. So even compared to zigbee and z-wave, this approach has merit as a cost-cutting alternative or for environments that wreck hardware (heat and humidity in my case).
433 will also give you far better battery life 5-15 years vs months on ZigBee or ~year in zwave). 433 is king for things that only need simple one way communication and PoE isn’t feasible.
Great use of SDR. Maybe a lot easier to get it from the cloud api where the weather station already posts the data. Not as much fun on tinkering, I understand ;)
weewx works great with an sdr and rtl_433. I don’t bother dumping the the AcuRite cloud api anymore.
One of the fun parts of living on the edge of a dramatic microclimate is that my weather can differ from the local city sensors by 15% or more, particularly in windspeed and humidity. Cliff edges by the ocean can have dramatic effects on local weather.
So for me, it was just a quest to find an inexpensive way to instrument a very hostile environment.
the 433MHz connected electrical cable power sensing clamp (Efergy) that I have doesn’t send the same ID number after battery replacement which is frustrating. But now I know it does that can edit HomeAssistant sensor yaml file to change the MQTT topic to match.
AND is very pleasing to be able to easily link up open and free software in this way, big thanks to all who make that possible.
I use about 8 or 10 Acurite sensors in my HA system using this exact technique. Batteries last forever (and they’re mostly just rechargeable AA’s anyway) and they’re _so_ much cheaper than Z-wave sensors (which I do use a few of as well, mostly where I want a motion sensor too), but $40 for 1 sensor vs $15 for a 3-pack of Acurite’s…). I do use Energizer Lithium non-rechargeable’s for fridge/2 freezers/outside sensors though.
Where do you find Acurite sensors for $5 each?
I have an ESPHome code that decodes the 433 MHz stream from a superheterodyne receiver, and reports the data to HA :-) a lot hacky but does the job without requiring SDR.
2’nd where are you finding 3 sensor for $15. I am seeing on aliexpress a “weather station 433mhz” for $4.98 but not outdoor rated and definitely not rated for outside or refrigerator/freezer use
Maybe they aren’t rated for it, haha
+1, I’m also very interested in learning about [Jim D]’s source for cheap Acurite sensors, it would make a great difference for a project of mine.
A lot of 433 sensors work this way and in fact it can be very complicated to understand what is going on when you lose data.
I use ZigBee for motion and am slowly switching bulbs to it because it seems to be a lot more stable than wifi. It also ends up having better range because new devices on the perimeter expand the range. All of my temp/humidity sensors are passive Bluetooth that’s sniffed by the esp32s that I use when I need to build a custom sensor. While the aqara fp1 sensor works perfectly for the living room and kitchen occupancy, it’s far too expensive to put in each room. I bought a few 24ghz occupancy boards and paired them with esp32s and they seem good enough for detecting humans and ignoring cats that all the other rooms will get them eventually.
RFlink ( https://www.rflink.nl/wires.php ) is a nice solution for 315/433/β¦MHz sensors which works with dedicated receivers on an arduino.
Exactly! Cool project however 433 MHz ASK receiver modules abound for $1 or $2 and they work fine with AcuRite sensors, no need for a DC-to-GHz SDR and CPU board that costs 20x more. I have tested that with my weather station sensors and decoding the data bursts on an equally cheap Arduino MCU was a fun hack. Actually, some newer modules are as low as $0.73 + free shipping on EB, they may work just as well. There is a MQTT lib for Arduino or ESP8266, ESP32 etc.. as well (just don’t use TLS with the Arduino Ethernet shield unless you have a beefy Arduino).
I almost went this way, myself. However, the fact that this was just a cron job away meant it was a lot lower overhead to test the efficacy of. As is so often the case, the quick test job suddenly ends up being my primary solution π
Regarding the mentioned thermal problems: I did manage to burn out one cheap RTL-SDR and cripple another (only works at 250k now).
My findings are that sample rate affects the temperature. At 250k there are no problems at all. Even 1M works fine. At 2M I would opt for adding a heat sink or use the NooElec ones with metal casing.
All my faults occured at 3M sample rate — which I would discourage without proper heat-sinking.
I do a very similar thing to pull my electric meter into HA using the rtlamr project and an rtl-sdr dongle. I grab the meter info out of the air using rtlamr, publish it to mqtt and have HA read the info to an appropriate entity. That is then fed into the energy dashboard. Works very well and I don’t have to touch my electric utility or breaker box to get an actual real time reading. Obviously this requires a meter that broadcasts the usage readings.
433mhz Lora for Europe. Why not just use a Lora chip???
915 mhz for us 433 for Europe.
Because they’re much more expensive. They are quite good if you have them lying around though.
Why did you not used LoRa protocol instead? Dozens of kilometers range and low energy.
The entire point is to use pre-existing sensor devices that can be bought cheap. They don’t use Lora! You can’t convert them to use Lora! It’s a waste of time and money to even try!
I can buy 3 of these cheap old 433Mhz sensors *and* see several others from nearby neighbors for less than the cost of a single LoRA sensor probe with no receiver, and receiving it with an SDR is somewhat involved.
LoRA is very cool, but has yet to match the price point of 15 year old hardware. That hardware cannot be reasonably upconverted.
Why not just use Aqara ZigBee sensors, which record temperature, pressure, and humidity, and connect directly to Home Assistant via ZHA (no hub required)? They’re also not expensive at around Β£20 each, and you can pick them up for as cheap as Β£14 each on deals.
I have one of those, and I also have some accurate sensors which I use receive with and SDR. Other than cost, the update frequently is much higher on the accurite sensors vs the Aqara ZigBee sensors. My Aqara sensor seems unpredictable in how frequently it updates. It’s been 16 minutes since it last sent an update right now, where that accurite sensors seem to send an update every 10-15 seconds.
A Zigbee receiver, at least over here, costs more than an SDR stick (which I already had) and costs about 1.4x as much as the temperature+pressure+humidity sensors I currently am using.
Someone tell Chris Fisher at Jupiter Broadcasting!