merbanan / rtl_433

Program to decode radio transmissions from devices on the ISM bands (and other frequencies)
GNU General Public License v2.0
5.98k stars 1.3k forks source link

Acurite 609TX differenciation #2018

Closed bkenobi closed 2 years ago

bkenobi commented 2 years ago

I just picked up an Acurite 609TX to expand my temperature/humidity measurement capabilities. The other devices I use are Acurite 592TXR. The 609 seems to be part of the unit 11 code and the 592 are decoded by 40. The 592 have a channel switch inside the battery bay to set either A, B, or C. The 609 does not have a switch that I have seen and from testing seems to pick a new ID each time the batteries are replaced. My intent was to source several more temperature/humidity sensors to place in various locations. The problem is, it doesn't appear that the ID can be tracked as is. Is there anything in rtl_433 that would let me identify individual 609 sensors so I could use multiple without having to figure out the ID each time batteries are replaced?

zuckschwerdt commented 2 years ago

Yes, the 609 has only ID, temp, hum: https://github.com/merbanan/rtl_433/blob/master/src/devices/acurite.c#L165-L177 The ID though is supported to identify devices. What output are you using?

bkenobi commented 2 years ago

I removed the batteries and reinserted 3x to show what happens after each reset. Appears to provide a new ID each time.

pi@Raspi3:~ $ rtl_433 -R 11
rtl_433 version 21.12-8-g2fc328e7 branch feat-rtsrv at 202112232347 inputs file rtl_tcp RTL-SDR
Use -h for usage help and see https://triq.org/ for documentation.
Trying conf file at "rtl_433.conf"...
Trying conf file at "/home/pi/.config/rtl_433/rtl_433.conf"...
Trying conf file at "/usr/local/etc/rtl_433/rtl_433.conf"...
Trying conf file at "/etc/rtl_433/rtl_433.conf"...
Registered 1 out of 208 device decoding protocols [ 11 ]
Found Fitipower FC0013 tuner
Exact sample rate is: 250000.000414 Hz
Sample rate set to 250000 S/s.
Tuner gain set to Auto.
Tuned to 433.920MHz.
Allocating 15 zero-copy buffers
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:41
model     : Acurite-609TXC                         id        : 192
Battery   : 1            Temperature: 20.6 C       Humidity  : 41 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:41
model     : Acurite-609TXC                         id        : 192
Battery   : 1            Temperature: 20.6 C       Humidity  : 41 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:42
model     : Acurite-609TXC                         id        : 192
Battery   : 1            Temperature: 20.6 C       Humidity  : 41 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:42
model     : Acurite-609TXC                         id        : 192
Battery   : 1            Temperature: 20.6 C       Humidity  : 41 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:49
model     : Acurite-609TXC                         id        : 158
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:49
model     : Acurite-609TXC                         id        : 158
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:49
model     : Acurite-609TXC                         id        : 158
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:49
model     : Acurite-609TXC                         id        : 158
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:50
model     : Acurite-609TXC                         id        : 158
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:56
model     : Acurite-609TXC                         id        : 26
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:56
model     : Acurite-609TXC                         id        : 26
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:56
model     : Acurite-609TXC                         id        : 26
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:56
model     : Acurite-609TXC                         id        : 26
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:56
model     : Acurite-609TXC                         id        : 26
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2022-03-21 10:18:56
model     : Acurite-609TXC                         id        : 26
Battery   : 1            Temperature: 20.6 C       Humidity  : 42 %
status    : 1            Integrity : CHECKSUM
^CSignal caught, exiting!
rct commented 2 years ago

The 609 and other devices like it that have volatile IDs (determined at power up) aren't really well suited to long term data tracking. If the battery voltage briefly drops low enough the unit may power cycle and change IDs without you knowing it. This happens on my old Lacrosse TX7 sensors, especially if they are in lower temperatures.

While the Acurite tower family of sensors (592TXR and related indoor/outdoor units) only have 3 choices of "channel" (sic), they do have a fixed ID that will never change. So you can use more than 3 592TXR tower sensors. You only need to use the the model + ID to uniquely identify the unit.

The thing I don't like about the Acurite devices is they transmit way more often than is needed for temperature/humidity monitoring, so the more of those you have the more likely you'll have 'collisions' where devices "talk over" each other.

My current preferred temperature/humidity sensor is the Ambient Weather FT012TH and F007TH. (These may be sold under other names in other countries) They have a DIP switch to let you set 8 channel IDs. They also have a volatile ID that changes at each power up. For a unique name use model + channel. They transmit once a minute, which is good if you have a bunch of them. Currently the FT012TH is only $9 USD on Amazon.

The one problem I have with the Ambient units, is occasional bad data getting through the message integrity checks. Adding a reasonableness check to the code like was added to the Acurite devices a month or two ago should eliminate many of those.

Hope this helps

bkenobi commented 2 years ago

I'll look at those Ambient sensors. I like the 592 because they are fairly accurate, transmit probably too often but can track quickly changing things. I used the 3 to test my furnace by placing one at the thermostat, one at the outlet register, and one at the inlet register. Things were cycling every 10 minutes or so and I could watch at 30s intervals as the register temperatures changed. For things like outside temps, they report too frequently though.

The down side to the 592 is that there are only 3 channels and so adding more would mean I'd have no way to know which was reporting other than somehow tracking where it was and hoping they never cross paths. Better to just get something like the Ambient that has 8 channels to start with.

EDIT: I looked at the modules you recommended and it looks like the FT012TH is an indoor unit so I'd be looking at the F007TH. I don't need 8 right now, but I'm looking to get whatever the maximum channels I could use for future use rather than get stuck without them.

rct commented 2 years ago

The down side to the 592 is that there are only 3 channels and so adding more would mean I'd have no way to know which was reporting

If you are using rtl_433, you have access to the ID field. On the 592 the ID field never changes so you only need that (and model) to identify the unit. Note that the Acurite Access / and "My Acurite" only use the ID and do not pay attention to channel at all. The access supposrts up to 7 devices

So yes you can have more than 3. I'm currently using 4 of the Acurite "tower" sensors, the 3 original 592TXRs and a 6044m which is the indoor/display version of the 592TXR.

If you are looking for outdoor units, two drawbacks of the F007TH I should mention: 1) the mounting hole is really small, certainly not as convenient for mounting on a hook as the 592TXR 2) Acurite's "pagoda" for the 592TXR is much more reasonably priced than the Ambient one.

bkenobi commented 2 years ago

Oh interesting. I didn't see that before. That may be the way to go then since I don't really need an additional 7-8, just a total of 7-8. Very useful info!

bkenobi commented 2 years ago

There are newer models than the 592 that I've seen in some of the stores. Have these been tested to see if they work and, if so, if they hold their ID? The 592 also has a non-humidity version but this one is listed as 592TXR / 06002 usually. Acurite lists 3 options for replacement sensors: 592, 609, and 606.

https://www.acurite.com/shop-all/weather-instruments/weather-sensors-and-parts/replacement-parts/indoor-outdoor-temperature-humidity-sensor.html?ref=name

But it looks like the 606 is just temperature and the 609 is the one in this issue that varies the ID by reset. So I guess that leaves the 592 as the only option.

rct commented 2 years ago

I think the 606 uses a different protocol, and has a decoder in rtl_433. The 275 series has also an rtl_433 decoder. You might want to skim some of the comments in src/devices/acurite.c

TIP: If you look for sensors that are compatible with "My Acurite" you find devices that have fixed IDs"

bkenobi commented 2 years ago

I picked up a few more 592TXR sensors and they do appear to work together without issue. I don't know what the upper limit of these would be, but I imagine it would come down to flooding the 433MHz bandwidth with sensors that transmit at the same period. At some point, the odds that more than one will be reset at the same time become high enough that there are regular collisions. I have 7x 592 and one 609 as well as a 5in1 weather station and a pool temperature sensor.

I'm currently planning on using 3 for my attic fan controller so the other 4x 592 and 1x 609 for transient things like checking the HVAC or confirming the camper isn't too cold/humid.

gdt commented 2 years ago

This issue is really a discussion not a bug report and I think it has run its course. @bkenobi are you ok with closing?

bkenobi commented 2 years ago

I have a working solution so I will close the issue.