I purchased a cheap 433 MHz pool thermometer on Amazon (see details
here). The rtl_433 software is able to read the signal using the following:
Use a flex decoder with -X 'n=name,m=OOK_PPM,s=1940,l=3892,g=3908,r=8780'
The transmitted code is 45 bits sent 8 times (single 0 bit at the end I think), except for the last transmission the ending zero bit is missing. Based on me playing around I think the code is something like this:
10010011 10110000 TTTTTTTTTTTT 00000000 CCCCCCCC 0
---------------- -------------- --------------------------- --------------- -------------------
8 bit ID? battery? temperature humidity? CRC?
- The first 8 bits seem to be fixed so it may be the ID.
- I haven't been able to get the next 4 bits to change and I suspect that it might be battery (0, 1/3, 2/3, 3/3, working on getting battery to show something else than 2/3). The receiver is supposed to get battery status (according to pictures on Amazon) but no battery status is shown on the receiver so I don't know what is not working. I guess it could also be part of the ID.
- The next 4 bits are always 0000
- Temperature is 12 bits signed integer. Divide by 10 to get temperature in Celcius
- Next 8 bits are always 0 and I suspect that they are for humidity values for weather stations (no humidity here)
- Finally there are 8 bits which I'm assuming are some sort of a CRC
- Ends with a single 0 bit for the first 7 transmissions
So 20.3C transmission is this:
{45}93b00cb003d0, {45}93b00cb003d0, {45}93b00cb003d0, {45}93b00cb003d0, {45}93b00cb003d0, {45}93b00cb003d0, {45}93b00cb003d0, {44}93b00cb003d
My question is, anyone have any idea what the CRC might be or how I might go around figuring it out? I've tried several common CRC-8 methods but nothing seems to match.
Here are few different values with the final zero bit:
93b00b000380
93b0035003f0
93b002f00190
93b000200ee0
93b0ffa007f0
93b0ff2006f0
93b0fef00c80
93b0fec004d0
Thanks,
HS