433 MHz RF - Temperature and humidity sensor

Riva:
I still wonder if first 8/10 bits are random number used as device ID
BC looks like 2 bit battery condition
CH is channel number from switch position?
Have not figured out the CRC yet but that's what I assume it is.

CH is indeed 3 position switch behind the sensor. Currently I use it on CH2 because on CH1 there's some sensor near used by neighbour and i got 2 readings (but can't reach them lately).
The device ID - look at the google document here: EZ6 Meteo Temp&Humi Sensor - Google Docs
I've marked yellow the moment, that (what you assume BC is) changes.
Batteries didn't change by that moment, the only thing that changed was the sensor was held by me in hand and I was pushing "transmit" button all the time to get near-readings every fewteen seconds.

The other thing is, that on the most of the readings on that document i cut out all leading 'zeroes' which i assume was a mistake now.
But all the same readings are in post above here - i'll paste them back there.

andriej:
CH is indeed 3 position switch behind the sensor. Currently I use it on CH2 because on CH1 there's some sensor near used by neighbour and i got 2 readings (but can't reach them lately).
The device ID - look at the google document here: EZ6 Meteo Temp&Humi Sensor - Google Docs
I've marked yellow the moment, that (what you assume BC is) changes.
Batteries didn't change by that moment, the only thing that changed was the sensor was held by me in hand and I was pushing "transmit" button all the time to get near-readings every fewteen seconds.
Cold temperatures degrade the battery output. You did not change the batteries but the temperature is steadily climbing and the batteries power output with it. This is probably why the BC condition changed like this.

The other thing is, that on the most of the readings on that document i cut out all leading 'zeroes' which i assume was a mistake now.
The data packet looks to be 40 or 42 bits long (see image) so as long as your keep 42 bit there is no problem trimming off the leading zeros
But all the same readings are in post above here - i'll paste them back there.

I've reedited the google document now to get easier group-readings (and see the battery easier):

I don't know if its possible (or used ever before), but maybe the battery sensor reading is 3 bits left of CH?

So, by:
5,7*C it was outside: 101 - dec: 5 (out of 10?)
inside, got a little warmer:
110 - dec: 6 (out of 10?)
later readings all are 6/10 (batteries are outside for 2-3 months already, and it is winter now)
then i started manipulating with batteries and other reading:
100 - dec: 4 (weaker battery, got a little stronger last read)
and after all the mess i threw sensor outside again and the last read noticed is:
010 - dec: 2 which messes all my theory... (or maybe it's 10 - 2/10? so battery is 8/10...)

Edit:
Also, about CRC.
Assuming it's again LLLLHHHH, the only values I see on LLLL are:

0000 - dec: 0 
0001 - dec: 1
1000 - dec: 8
1001 - dec: 9

The CRC has me stumped. :disappointed_relieved: Though it might not be a CRC! Program code I wrote should be fairly robust as it reports 2x consecutive matching reads.
But here is what I see sofar.

Temp*C RH% ?? DeviceID BC CH Temperature- Humidity --CRC?--
              Rnd Num- BB XX LLLLMMMMHHHH LLLLHHHH
 7,1*C 93% 00 01010111 01 01 001101000101 11010101 10011000
 7,3*C 92% 00 01010111 01 01 011101000101 11000101 10010110
 7,3*C 92% 00 01010111 01 01 011101000101 11000101 10010110
 8.1*C 91% 00 01010111 10 01 010101010101 10110101 10010001
 9.0*C 90% 00 01010111 10 01 011001100101 10100101 10011000
 9.2*C 88% 00 01010111 10 01 100101100101 10000101 10010110
10.3*C 85% 00 01010111 10 01 111001110101 01010101 00010001
10.6*C 85% 00 01010111 10 01 001010000101 01010101 10011010
10.9*C 84% 00 01010111 10 01 100110000101 01000101 10010000
11.8*C 83% 00 01010111 10 01 100010010101 00110101 10011100
11.9*C 83% 00 01010111 10 01 101110010101 00110101 10010110
12.2*C 81% 00 01010111 10 01 000010100101 00010101 10010101
12.6*C 79% 00 01010111 10 01 011010100101 11110100 10010010
13.2*C 75% 00 01010111 10 01 000110110101 10110100 10010110
13.4*C 75% 00 01010111 10 01 011010110101 10110100 10010111
13.7*C 75% 00 01010111 10 01 101010110101 10110100 00010001 (no force)
13.9*C 75% 00 01010111 10 01 111010110101 10110100 10010010
14.2*C 75% 00 01010111 10 01 001111000101 10110100 00011100 (no force)
14.4*C 75% 00 01010111 10 01 011111000101 10110100 10011111
14.6*C 75% 00 01010111 10 01 101111000101 10110100 10010001
14.6*C 75% 00 01010111 10 01 101111000101 10110100 00011001 (no force)
14.8*C 75% 00 01010111 10 01 111111000101 10110100 10011010
15.3*C 73% 00 01010111 10 01 011111010101 10010100 10010111
16.2*C 67% 00 01010111 10 01 011111100101 00110100 10010101
16.6*C 64% 00 01010111 10 01 111111100101 00000100 00010111 (no force)
16.9*C 66% 00 01010111 10 01 010111110101 00100100 00010110 (no force)
17.2*C 65% 00 01010111 10 01 101011110101 00010100 00011101
17.4*C 64% 00 01010111 10 01 111011110101 00000100 00010011 (no force)
17.6*C 63% 00 01010111 10 01 000000000110 11110011 00010001
17.7*C 61% 00 01010111 10 01 001100000110 11010011 10011001
17.9*C 60% 00 01010111 10 01 011100000110 11000011 00011111
CH 1 ------                                        
18.0*C 58% 00 01010111 10 00 100000000110 10100011 10010100
18.2*C 58% 00 01010111 10 00 110000000110 10100011 00010111
CH 2 ------                                        
19.0*C 56% 00 01010111 10 01 101000010110 10000011 10011010
19.2*C 56% 00 01010111 10 01 110100010110 10000011 10011011
19.2*C 56% 00 01010111 10 01 110100010110 10000011 00010011
19.3*C 56% 00 01010111 10 01 000000100110 10000011 10010101
19.5*C 55% 00 01010111 10 01 001100100110 01110011 00010001
19.7*C 55% 00 01010111 10 01 011000100110 01110011 10010100
19.8*C 54% 00 01010111 10 01 100000100110 01100011 10010011
19.9*C 55% 00 01010111 10 01 101000100110 01110011 10011010
20.0*C 55% 00 01010111 10 01 110000100110 01110011 10011101
20.1*C 54% 00 01010111 10 01 111000100110 01100011 10010100
20.1*C 54% 00 01010111 10 01 111000100110 01100011 10010100
CH 3 ------                                        
18.4*C 59% 00 01010111 10 10 111100000110 10110011 10010111
18.6*C 57% 00 01010111 10 10 001000010110 10010011 10010111
18.7*C 56% 00 01010111 10 10 010100010110 10000011 10010011
                                                   
20.1*C 47% 00 01010111 10 01 110100100110 11110010 10010110
20.1*C 47% 00 01010111 10 01 110100100110 11110010 00011110
20.1*C 48% 00 01010111 10 01 111000100110 00000011 00010001 (no force)
20.2*C 48% 00 01010111 10 01 111100100110 00000011 10011111
20.2*C 47% 00 01010111 10 01 000000110110 11110010 10011100
                                                   
20.0*C 44% 00 01010111 10 00 110000100110 11000010 00011101 CH1
20.0*c 44% 00 01010111 10 01 110000100110 11000010 00010111 CH2
20.1*C 44% 00 01010111 10 10 111000100110 11000010 10011110 CH3
                                                   
           00 00101111 10 01 001000110110 01110010 00001010 BATTERY + OLD NI-MH accu BATTERY [station DOESNT show this as a 'weak battery']
           00 10101101 00 01 110000110110 01010010 10001010 USED BATTERY
           00 11110101 00 01 011101000110 01000010 10001011 ONE USED AND ONE GOOD BATTERY
           00 10100100 00 01 110001000110 00110010 10000110 AND BACK TO GOOD BATTERY (pair which I used for all measures)

           00 10100100 00 01 110001000110 00110010 10000110
           00 10100100 00 01 110001000110 00110010 10000110
           00 10100100 00 01 110001000110 00110010 10000110
           00 10100100 00 01 110001000110 00110010 10000110
           00 10100100 00 01 110001000110 00110010 10000110
           00 10100100 00 01 110001000110 00110010 00001110
           00 10100100 00 01 110001000110 00010010 00000100
           00 10100100 00 01 110001000110 00010010 00000100
           00 10100100 00 01 110001000110 00010010 00000100
           00 10100100 00 01 110001000110 00010010 00000100
           00 10100100 00 01 110001000110 00000010 00000001
           00 10100100 00 01 110001000110 00000010 00000001
           00 10100100 00 01 110101000110 11110001 00000100
           00 10100100 00 01 110101000110 11110001 00000100
           00 10100100 00 01 110101000110 11110001 00000100
           00 10100100 00 01 110101000110 11110001 00000100
           00 10100100 00 01 111001000110 11100001 00001011
           00 10100100 10 01 111001000110 11100001 00000100
           00 10100100 10 01 111001000110 11100001 00000100
           00 10100100 10 01 111001000110 11100001 00000100
           00 10100100 10 01 000001010110 11100001 00000100
           00 10100100 10 01 000001010110 11100001 00000100
           00 10100100 10 01 000001010110 11110001 00000001
           00 10100100 10 01 000001010110 11100001 00000100
           00 10100100 10 01 000001010110 11100001 00000100
           00 10100100 10 01 000001010110 11100001 00000100
           00 10100100 10 01 000101010110 11100001 00000010
           00 10100100 10 01 001001010110 11100001 00001000
           00 10100100 10 01 001001010110 11100001 00001000
           00 10100100 10 01 001001010110 11100001 00001000
           00 10100100 10 01 001001010110 11100001 00001000
           00 10100100 10 01 001101010110 11100001 00001110
           00 10100100 10 01 010001010110 11010001 00000000
           00 10100100 10 01 011001010110 11010001 00001100

I've just added some new regular readings, without touching the sensor outside. CH2, temperature around 2.7*C on last read, humid 80%.
In the doc: EZ6 Meteo Temp&Humi Sensor - Google Docs

Also, about CRC.
Assuming it's again LLLLHHHH, the only values I see on LLLL are:

0000 - dec: 0 

0001 - dec: 1
1000 - dec: 8
1001 - dec: 9

I'm tending to agree with you here. I would expect a true CRC value to be a lot more random. Maybe greater minds than ours can enlighten us!

I added another ton of readings from night (without values, but may be a hint for the CRC part). Nothing else really changed during these hours.

I hope someone maybe will have a fresh look on it.

We're almost there... Right now I'm testing out Riva's code and reading Fahrenheit values.
Still no CRC and not 100% sure battery part.
Can be seen up-to-date on google docs: https://docs.google.com/document/d/121ZH3omAZsdhFi3GSB-YdnasMjIQSGIcaS7QW6KsACA/edit?usp=sharing
or in the post:

--RIVA SKETCH started 19:03 05/02/2013:

          BB CC LLLLMMMMHHHH LLLLHHHH 
Preamble- B? CH Temperature- Humidity --CRC?--   TT.TT*F HH%
001010010000 01 011000010101 11100100 00001001   40.20 F 78%
001010010000 01 010100010101 11100100 00000011   40.10 F 78%
001010010000 01 010100010101 11100100 00000011   40.10 F 78%
001010010000 01 010100010101 11100100 00000011   40.10 F 78%
001010010000 01 010100010101 11100100 00000011   40.10 F 78%
001010010000 01 011100010101 11110100 00001010   40.30 F 79%
001010010000 01 101100010101 00000101 00000001   40.70 F 80%
001010010000 01 110100010101 00000101 00000110   40.90 F 80%
001010010000 01 110100010101 00000101 00000110   40.90 F 80%
001010010000 01 110100010101 11110100 00000011   40.90 F 79%
001010010000 01 110100010101 11110100 10001011   40.90 F 79%
001010010000 01 110100010101 11110100 10001011   40.90 F 79%
001010010000 01 110100010101 11110100 10001011   40.90 F 79%
001010010000 01 111000010101 00000101 00001100   41.00 F 80%
001010010000 01 111000010101 00000101 00001100   41.00 F 80%
001010010000 01 111000010101 00000101 00001100   41.00 F 80%
001010010001 01 100100100101 00110101 00001010   42.10 F 83%
001010010001 01 100100100101 00110101 00001010   42.10 F 83%
001010010001 01 111100110101 01000101 00010110   44.30 F 84%
001010010001 01 111100110101 01000101 00010110   44.30 F 84%
001010010001 01 010001010101 01010101 00010000   46.40 F 85%
001010010001 01 010001010101 01010101 00010000   46.40 F 85%
001010010001 01 100001010101 01010101 00011110   46.80 F 85%
001010010001 01 100001010101 01010101 00011110   46.80 F 85%
001010010001 01 100001010101 01010101 00011110   46.80 F 85%
001010010001 01 001101100101 01010101 00010111   47.90 F 85%
001010010001 01 001101100101 01010101 00010111   47.90 F 85%
001010010001 01 001101100101 01010101 00010111   47.90 F 85%
001010010001 01 111001100101 00110101 00010010   49.00 F 83%
001010010001 01 111001100101 00110101 00010010   49.00 F 83%
001010010001 01 111001100101 00110101 00010010   49.00 F 83%
001010010001 01 100101110101 00100101 00010100   50.10 F 82%
001010010001 01 100101110101 00100101 00010100   50.10 F 82%
001010010001 01 100101110101 00100101 00010100   50.10 F 82%
001010010010 01 111101110101 00010101 00011101   50.70 F 81%
001010010010 01 111101110101 00010101 00011101   50.70 F 81%
001010010010 01 111101110101 00010101 00011101   50.70 F 81%
001010010010 01 100110000101 11110100 00010111   51.70 F 79%
001010010010 01 100110000101 11110100 00010111   51.70 F 79%
001010010010 01 001110010101 11010100 00010110   52.70 F 77%
001010010010 01 001110010101 11010100 00010110   52.70 F 77%
001010010010 01 110110010101 11000100 00010001   53.70 F 76%
001010010010 01 110110010101 11000100 00010001   53.70 F 76%
001010010010 01 001010100101 11000100 00010011   54.20 F 76%
001010010010 01 001010100101 11000100 00010011   54.20 F 76%
001010010010 01 001010100101 11000100 00010011   54.20 F 76%
001010010010 01 001010100101 11000100 00010011   54.20 F 76%
001010010010 01 101010100101 10110100 00011110   55.00 F 75%
001010010010 01 101010100101 10110100 00011110   55.00 F 75%
001010010010 01 101010100101 10110100 00011110   55.00 F 75%
001010010010 01 001010110101 10010100 00010011   55.80 F 73%
001010010010 01 001010110101 10010100 00010011   55.80 F 73%
001010010010 01 001010110101 10010100 00010011   55.80 F 73%
001010010010 01 100010110101 10000100 00011111   56.40 F 72%
001010010010 01 100010110101 10000100 00011111   56.40 F 72%
001010010010 01 100010110101 10000100 00011111   56.40 F 72%
001010010010 01 101110110101 01110100 00010011   56.70 F 71%
001010010010 01 101110110101 01110100 00010011   56.70 F 71%
001010010010 01 000111000101 01100100 00010001   57.30 F 70%
001010010010 01 000111000101 01100100 00010001   57.30 F 70%
001010010010 01 100011000101 01010100 00011101   58.00 F 69%
001010010010 01 100011000101 01010100 00011101   58.00 F 69%

Riva made some updates to the code, testing it right now. We thought we caught the battery bit... But I've found 2 nimh accu's loaded with around 1,2V and had 2 good 1,46V batteries for comparison.
Just look at the payloads in the code below or under the doc: EZ6 Meteo Temp&Humi Sensor - Google Docs
I don't get a thing... it looks like whole payload is random except two leading zeroes...
It's even more strange because on one pair I caught a "low battery" indicator on weather station.

I also managed to put sensor in cold place (around -13*C degrees) - everything is below...

        BBBB CC LLLLMMMMHHHH LLLLHHHH 
??RandNr--                            ????????
Preambl.Batt CH Temperature- Humidity --CRC?--   BT bits=x CHannel=x Temperature=XXXF Humidity=XX%  Comments
001010010001 01 110111010011 00000010 10100100 - Battery=1 Channel=1 Temperature=8.9F Humidity=32%  NEW CRC VALUE!
001010010001 01 110111010011 00000010 10100100 - Battery=1 Channel=1 Temperature=8.9F Humidity=32%  NEW CRC VALUE!!
001010010001 01 001011100011 11000010 00100111 - Battery=1 Channel=1 Temperature=9.4F Humidity=44%
001010010001 01 011011110011 00100011 10010101 - Battery=1 Channel=1 Temperature=11.4F Humidity=50% CRC-channel!!!
001010010001 10 011011110011 00100011 10011000 - Battery=1 Channel=2 Temperature=11.4F Humidity=50% CH-3 test
001010010001 00 011011110011 00100011 00010111 - Battery=1 Channel=0 Temperature=11.4F Humidity=50% CH-1 test
001010010001 01 010100000100 00100011 00010001 - Battery=1 Channel=1 Temperature=12.9F Humidity=50%
001010010001 01 111000010100 00010100 00011010 - Battery=1 Channel=1 Temperature=15.4F Humidity=65%
001010010001 01 111000010100 00010100 00011010 - Battery=1 Channel=1 Temperature=15.4F Humidity=65%
001010010001 01 100101000100 11110100 00010010 - Battery=1 Channel=1 Temperature=19.7F Humidity=79%
001010010001 01 110001100100 01100101 00010011 - Battery=1 Channel=1 Temperature=23.2F Humidity=86%
001010010001 01 100110010100 11000101 00010111 - Battery=1 Channel=1 Temperature=27.7F Humidity=92%
001010010001 01 000010110100 11000101 00010000 - Battery=1 Channel=1 Temperature=30.0F Humidity=92%
001010010001 01 011111000100 11000101 00011111 - Battery=1 Channel=1 Temperature=32.3F Humidity=92%
001010010001 01 011111000100 11000101 00011111 - Battery=1 Channel=1 Temperature=32.3F Humidity=92%
001010010001 01 110011010100 10110101 00011010 - Battery=1 Channel=1 Temperature=34.4F Humidity=91%
001010010001 01 110011010100 10110101 00011010 - Battery=1 Channel=1 Temperature=34.4F Humidity=91%
001010010001 01 000011100100 10110101 00010010 - Battery=1 Channel=1 Temperature=34.8F Humidity=91%
001010010001 01 010111110100 10010101 00010111 - Battery=1 Channel=1 Temperature=36.9F Humidity=89%
001010010001 01 000000000101 10000101 00011101 - Battery=1 Channel=1 Temperature=38.0F Humidity=88%
001010010001 01 110100000101 01100101 00010110 - Battery=1 Channel=1 Temperature=39.3F Humidity=86% 
001010010010 01 110100010101 01010101 00011010 - Battery=2 Channel=1 Temperature=40.9F Humidity=85% BATTERY CHANGE
001010010010 01 110100010101 01010101 00011010 - Battery=2 Channel=1 Temperature=40.9F Humidity=85% got warmer and 
001010010010 01 011000100101 01000101 00010110 - Battery=2 Channel=1 Temperature=41.8F Humidity=84% LCD becameclear
001010010010 01 011000010110 11010011 00010011 - Battery=2 Channel=1 Temperature=65.8F Humidity=61%
001010010010 01 100100010110 11010011 00010111 - Battery=2 Channel=1 Temperature=66.1F Humidity=61%
001010010010 01 100100010110 11010011 00010111 - Battery=2 Channel=1 Temperature=66.1F Humidity=61%
001010010010 01 101000010110 11000011 00011000 - Battery=2 Channel=1 Temperature=66.2F Humidity=60%
001010010010 01 110100010110 11000011 00011001 - Battery=2 Channel=1 Temperature=66.5F Humidity=60%
--- weak batteries
2x 1,23V NiMH (Philips) [multimeter]
000100101100 01 100100110110 11000011 11001110 - Battery=0 Channel=1 Temperature=69.3F Humidity=60%
000100101110 01 011001100110 10000011 11011001 - Battery=2 Channel=1 Temperature=73.8F Humidity=56%
000100101110 01 011001100110 10000011 11011001 - Battery=2 Channel=1 Temperature=73.8F Humidity=56%
000100101110 01 011001100110 10000011 11011001 - Battery=2 Channel=1 Temperature=73.8F Humidity=56%
000100101110 01 101001100110 01110011 01011001 - Battery=2 Channel=1 Temperature=74.2F Humidity=55%
000100101110 01 101001100110 01110011 01011001 - Battery=2 Channel=1 Temperature=74.2F Humidity=55%
000100101110 01 101001100110 01110011 01011001 - Battery=2 Channel=1 Temperature=74.2F Humidity=55%
000100101110 01 110101100110 01100011 11010101 - Battery=2 Channel=1 Temperature=74.5F Humidity=54%
000100101110 01 110101100110 01100011 11010101 - Battery=2 Channel=1 Temperature=74.5F Humidity=54%
000100101110 01 001101110110 00100011 11010010 - Battery=2 Channel=1 Temperature=75.1F Humidity=50%
000100101110 01 001101110110 00100011 11010010 - Battery=2 Channel=1 Temperature=75.1F Humidity=50%
000100101110 01 001101110110 00100011 01011010 - Battery=2 Channel=1 Temperature=75.1F Humidity=50%
000100101110 01 001101110110 00100011 01011010 - Battery=2 Channel=1 Temperature=75.1F Humidity=50%
000100101110 01 010101110110 00010011 01010010 - Battery=2 Channel=1 Temperature=75.3F Humidity=49%
000100101110 01 010101110110 00010011 01010010 - Battery=2 Channel=1 Temperature=75.3F Humidity=49% 
--- mixed (1 weak and 1 good varta) [batt + nimh]
001011111100 01 011001110110 00000011 00001111 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
001011111100 01 011001110110 00000011 00001111 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
001011111100 10 111101100110 00010011 00000110 - Battery=0 Channel=2 Temperature=74.7F Humidity=49% CH2 for test
001011111100 01 111101100110 00010011 00001011 - Battery=0 Channel=1 Temperature=74.7F Humidity=49%
001011111100 01 011101100110 00100011 00000001 - Battery=0 Channel=1 Temperature=73.9F Humidity=50%
001011111100 01 011101100110 00100011 00000001 - Battery=0 Channel=1 Temperature=73.9F Humidity=50%
001011111100 01 011001100110 00010011 00001000 - Battery=0 Channel=1 Temperature=73.8F Humidity=49%
001011111100 01 011001100110 00010011 00001000 - Battery=0 Channel=1 Temperature=73.8F Humidity=49%
001011111100 01 011001100110 00000011 00001101 - Battery=0 Channel=1 Temperature=73.8F Humidity=48%
001011111100 01 011101100110 11110010 00001110 - Battery=0 Channel=1 Temperature=73.9F Humidity=47%
--- mixed (other pair, not the same batteries: 1 weak and 1 good varta) [batt + nimh]
000011000100 01 000001110110 00000011 10001100 - Battery=0 Channel=1 Temperature=74.8F Humidity=48%
000011000100 01 000101110110 00010011 00000111 - Battery=0 Channel=1 Temperature=74.9F Humidity=49%
000011000100 01 001101110110 00000011 10000110 - Battery=0 Channel=1 Temperature=75.1F Humidity=48%
000011000100 01 001101110110 00000011 10000110 - Battery=0 Channel=1 Temperature=75.1F Humidity=48%
000011000100 01 011001110110 00000011 10001011 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
000011000100 01 011001110110 00000011 10001011 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
000011000100 01 101101110110 11100010 00001011 - Battery=0 Channel=1 Temperature=75.9F Humidity=46%
000011000100 01 101101110110 11100010 10000011 - Battery=0 Channel=1 Temperature=75.9F Humidity=46%
000011000100 01 101101110110 11100010 10000011 - Battery=0 Channel=1 Temperature=75.9F Humidity=46%
--- back to pair of weak+good batteries (the round before above) 
--- the payload there was: 001011111100 - will it be the same?
001000111000 01 010110000110 11010010 00000110 - Battery=0 Channel=1 Temperature=76.9F Humidity=45%
001000111000 01 010110000110 11010010 00000110 - Battery=0 Channel=1 Temperature=76.9F Humidity=45%
000001110000 01 001110000110 11100010 10001101 - Battery=0 Channel=1 Temperature=76.7F Humidity=46%
000001110000 01 001110000110 11100010 10001101 - Battery=0 Channel=1 Temperature=76.7F Humidity=46%
^-- its not. i even switched accu with battery to see if it changes. payload is different from any above.
--- and now probably let the magic happen - lets go back to the original 2 varta batteries and see if payload is again: 001010010010 
001110100100 01 101110000110 11000010 00001111 - Battery=0 Channel=1 Temperature=77.5F Humidity=44%
001110100100 01 101110000110 11000010 10000111 - Battery=0 Channel=1 Temperature=77.5F Humidity=44%
001110100100 01 100110000110 11000010 10001011 - Battery=0 Channel=1 Temperature=77.3F Humidity=44%
001110100100 01 100110000110 11000010 10001011 - Battery=0 Channel=1 Temperature=77.3F Humidity=44%
001110100100 01 100110000110 10110010 10000011 - Battery=0 Channel=1 Temperature=77.3F Humidity=43%
001110100100 01 100110000110 10110010 10000011 - Battery=0 Channel=1 Temperature=77.3F Humidity=43%
^--- no! it has changed...
---the only always-the-same-parameters are two leading zeroes... strange as hell. is it random number then?

It also seems that CRC is hugely dependant on that random data. Especially the first 4 bits.

Here is a latter version of the program to capture the senders data that's been tidied up a bit and shows more information.

WeatherRF2.ino (6.7 KB)

New CRC findings:

  • same values of temp and HUM, different "random"
001011111100 01 011001110110 00000011 00001111 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
001011111100 01 011001110110 00000011 00001111 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
000011000100 01 011001110110 00000011 10001011 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
000011000100 01 011001110110 00000011 10001011 - Battery=0 Channel=1 Temperature=75.4F Humidity=48%
  • CRC is channel-number dependend
001010010001 01 011011110011 00100011 10010101 - Battery=1 Channel=1 Temperature=11.4F Humidity=50% CH-2
001010010001 10 011011110011 00100011 10011000 - Battery=1 Channel=2 Temperature=11.4F Humidity=50% CH-3 
001010010001 00 011011110011 00100011 00010111 - Battery=1 Channel=0 Temperature=11.4F Humidity=50% CH-1

or

001011111100 10 111101100110 00010011 00000110 - Battery=0 Channel=2 Temperature=74.7F Humidity=49% CH2
001011111100 01 111101100110 00010011 00001011 - Battery=0 Channel=1 Temperature=74.7F Humidity=49% CH1

I got almost-succesful one lucky-shot of CRC calculation, but I couldn't repeat it with others... :frowning:
I summed up values of: Random + CH-dec + tempF (the after-dot value) and HUM - the number altogether was 1-2dec different from CRC (CRC 137, value 138).

Also one strange thing - same CRC, same temp and HUM, different binary?!

001110100100 01 001001110111 00101010 00101011 - Battery=0 Channel=1 Temperature=75.0F Humidity=43%
001110100100 01 001001110110 10110010 00101011 - Battery=0 Channel=1 Temperature=75.0F Humidity=43%

I give up trying to figure out the CRC.
As such a small change like flipping the bits of the transmitter channel can make such a large difference to the CRC I can only guess it's a proper CRC system instead of the usual simple byte sum methods. Way beyond my maths skills to work it out.

Thanks for this analysis. For anyone who's interested this method also works for the external temperature sensor on the Auriol Z31055 currently being sold by Lidl in the UK:
http://www.lidl.co.uk/cps/rde/xchg/lidl_uk/hs.xsl/index_38538.htm

These sensors use a slightly different protocol with a 36 bit packet length with no humidity information. These are the changes I made to extract the temperature info from the packet:

in the definitions:

const unsigned long bit1_MIN = 2300;
const unsigned long bit1_MAX = 2700;
const unsigned long bit0_MIN = 1330;
const unsigned long bit0_MAX = 1730;
const unsigned long sync_MIN = 4300;
const unsigned long sync_MAX = 4700;
const unsigned long glitch_Length = 300;

In the loop section:

if (bitRead(isrFlags,F_GOOD_DATA) == 1) {
// We have at least 2 consecutive matching reads
myData0 = read_Buffer[0]; // Read the data spread over 2x 32 variables
myData1 = read_Buffer[1];
bitClear(isrFlags,F_HAVE_DATA); // Flag we have read the data
dec2binLong(myData0,4);
dec2binLong(myData1,32);

Serial.print(" Temperature=");
int Temperature = (myData1 >> 12) & 0xFF; // Get Temperature word by shifting 12 bits to the right
Serial.println(Temperature/10.0,1);
}

I'm not 100% sure about all the bits in the packet but I get the temperature reading pretty well all the time.

Bits 0-7 are a random ID, bit 8 battery state and three other unknown bits.

The temp data is in bits 12-23. For temps between 0 and 25.5 degrees, bits 16-23 contain the temp in .1 degree increments.

All I have to do now is figure out what to do when the temperature turns negative or goes above 25.5 degrees and the temp info spreads out to 12 bit instead of eight. I think it's a twos complement or something like that. At the moment it works for a single byte temp reading for temps between 0 and 25.5 celsius.

Thanks again for showing the way.

Glad it's working for you with a few small modifications.
Did you also change #define allDataBits 42                                    // Number of data bits to expect
to 36 else I would expect it to never set F_GOOD_DATA

Yes, sorry, you're quite right.

allanayr:
Yes, sorry, you're quite right.

No problem, just so others reading your post will not have issues. Glad the code works on your sensor with little modification. If your having problems working out temperature >25.5 then post a few readings with the displayed temperature and maybe someone can work it out for you.

Bizzarely I haven't experienced any temperatures above 25.5 in the recent past!

But I think these are some readings from the wrong side of 0 celsius:

1 1 1 1 1 1 1 1 1 0 0 0
-0.8

1 1 1 1 1 1 1 0 1 1 0 1
-1.9

1 1 1 1 1 1 1 0 0 1 0 1
-2.7

It kinda looks like an inversion of .1 of a degree less than the absolute of the actual reported temp. ie if you invert all the bits you get 7, 18 and 26 I think. I'll give it some thought.

See Two's complement - Wikipedia It seems unreasonable the sensor only goes up to 25.5C there must be other bits.

Just for clarity, I'm not saying that the sensor only reads up to 25.5, only that it's simple to read, if it is in the range 0 to 25.5 becuase it occupies the eight bits between 16 and 23 as a straight forward .1 degree scale.

The bits between 12 and 15 are also included which allows readings greater than 25.5 and less than 0, it's just that I haven't worked out how to deal with that yet.

Hi andriej,

Have you got any further in trying to work out the CRC? I came across an interesting article here but to have a chance of calculating the Polynomial I need several consecutive readings that vary by only one bit between them. I had a look at all your results but cannot find enough samples to do this yet. I'm still trying though.