Go Down

Topic: [Solved] Bresser 7002000 weather station sensor decoding riddle (Read 1 time) previous topic - next topic

Riva

If the encoding is similar to other Bresser codes I saw, hhhh and iiii will be the checksum, ffff and gggg humidity, bbbb to eeee temperature  and the second part of <Head> plus aaaa the device ID plus battery status flags.
I don't think your not going to be that lucky.
It seems the left most bit of aaaa is set when the temperature is negative.
Don't PM me for help as I will ignore it.

Riva

Okay I have been messing around some more and have what looks like consistent data (apart from a couple of suspect readings). The fields probably break down more or differently to what I have but the data ties up with what I have sofar. I have not tried to find battery data (assuming it has any) or figure out the CRC/Checksums. It seems the readings are transmitted base 10 but in reverse bit order.

Code: [Select]
0      0      0      1 aaaa 1 bbbb 1 cccc 1 dddd 1 eeee 1 ffff 1 gggg 1 hhhh 1 iiii 1 jjj    Temp   Hum
                              T      T      T      T             H      H                   bed c    hg
0 0000 0 0000 0 0000 1 1000 1 0001 1 0000 1 0110 1 0000 1 0111 1 0100 1 1100 1 0101 1 000   -06.0    32
0 0000 0 0000 0 0000 1 1000 1 0001 1 0000 1 0110 1 0000 1 0111 1 1010 1 1100 1 1011 1 000   -06.0    35
0 0000 0 0000 0 0000 1 1000 1 0001 1 1110 1 1100 1 0000 1 0111 1 1110 1 0010 1 0101 1 000   -03.7    47
0 0000 0 0000 0 0000 1 1000 1 0001 1 0100 1 0000 1 0000 1 0111 1 0001 1 1010 1 0100 1 000   -00.2    58
0 0000 0 0000 0 0000 1 1000 1 0000 1 1010 1 1000 1 0000 1 0111 1 1010 1 0110 1 0100 1 000    01.5    65
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 1100 1 0000 1 0111 1 1001 1 0110 1 1111 1 000    03.6    69
0 0000 0 0000 0 0000 1 1000 1 0000 1 0010 1 1010 1 0000 1 0111 1 0100 1 1110 1 1000 1 000    05.4    72
0 0000 0 0000 0 0000 1 1000 1 0000 1 0001 1 0110 1 0000 1 0111 1 0010 1 1110 1 0001 1 000    06.8    74
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 0001 1 0000 1 0111 1 1010 1 1110 1 1111 1 000    08.0    75< Suspect
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 1001 1 0000 1 0111 1 1010 1 1110 1 0111 1 000    09.0    75
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 0000 1 1000 1 0111 1 1010 1 1110 1 0110 1 000    10.0    75
0 0000 0 0000 0 0000 1 1000 1 0000 1 0001 1 0000 1 1000 1 0111 1 1010 1 1110 1 0111 1 000    10.8    75
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 1000 1 1000 1 0111 1 1100 1 1110 1 1110 1 000    11.6    73
0 0000 0 0000 0 0000 1 1000 1 0000 1 0010 1 0100 1 1000 1 0111 1 0100 1 1110 1 1110 1 000    12.4    72
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 1100 1 1000 1 0111 1 0000 1 1110 1 0000 1 000    13.0    70
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 1100 1 1000 1 0111 1 1001 1 0110 1 0111 1 000    13.6    69
0 0000 0 0000 0 0000 1 1000 1 0000 1 0100 1 0010 1 1000 1 0111 1 0001 1 0110 1 0011 1 000    14.2    68
0 0000 0 0000 0 0000 1 1000 1 0000 1 1100 1 1010 1 1000 1 0111 1 1010 1 0110 1 1000 1 000    14.8    66< Suspect
0 0000 0 0000 0 0000 1 1000 1 0000 1 1100 1 0110 1 1000 1 0111 1 0100 1 0110 1 1010 1 000    15.8    64< Suspect
0 0000 0 0000 0 0000 1 1000 1 0000 1 1110 1 0110 1 1000 1 0111 1 0100 1 0110 1 1000 1 000    16.7    62
0 0000 0 0000 0 0000 1 1000 1 0000 1 1000 1 1110 1 1000 1 0111 1 0000 1 0110 1 0010 1 000    17.1    60
0 0000 0 0000 0 0000 1 1000 1 0000 1 0010 1 1110 1 1000 1 0111 1 1001 1 1010 1 1101 1 000    17.4    59
0 0000 0 0000 0 0000 1 1000 1 0000 1 1110 1 1110 1 1000 1 0111 1 1001 1 1010 1 0001 1 000    17.7    59
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 0001 1 1000 1 0111 1 0001 1 1010 1 1000 1 000    18.0    58
0 0000 0 0000 0 0000 1 1000 1 0000 1 1100 1 0001 1 1000 1 0111 1 1110 1 1010 1 1011 1 000    18.3    57
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 0001 1 1000 1 0111 1 1110 1 1010 1 0001 1 000    18.6    57
0 0000 0 0000 0 0000 1 1000 1 0000 1 0001 1 0001 1 1000 1 0111 1 0110 1 1010 1 1110 1 000    18.8    56
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 1001 1 1000 1 0111 1 1010 1 1010 1 1011 1 000    19.0    55
0 0000 0 0000 0 0000 1 1000 1 0000 1 0100 1 1001 1 1000 1 0111 1 0010 1 1010 1 0111 1 000    19.2    54
0 0000 0 0000 0 0000 1 1000 1 0000 1 0010 1 1001 1 1000 1 0111 1 0010 1 1010 1 0001 1 000    19.4    54
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 1001 1 1000 1 0111 1 1100 1 1010 1 1011 1 000    19.6    53
0 0000 0 0000 0 0000 1 1000 1 0000 1 1110 1 1001 1 1000 1 0111 1 1100 1 1010 1 0011 1 000    19.7    53
0 0000 0 0000 0 0000 1 1000 1 0000 1 1001 1 1001 1 1000 1 0111 1 0100 1 1010 1 1100 1 000    19.9    52
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 0000 1 0100 1 0111 1 0100 1 1010 1 0000 1 000    20.0    52
0 0000 0 0000 0 0000 1 1000 1 0000 1 1000 1 0000 1 0100 1 0111 1 0100 1 1010 1 1000 1 000    20.1    52
0 0000 0 0000 0 0000 1 1000 1 0000 1 0100 1 0000 1 0100 1 0111 1 1000 1 1010 1 1000 1 000    20.2    51
0 0000 0 0000 0 0000 1 1000 1 0000 1 0010 1 0000 1 0100 1 0111 1 1000 1 1010 1 1110 1 000    20.4    51
0 0000 0 0000 0 0000 1 1000 1 0000 1 1010 1 0000 1 0100 1 0111 1 1000 1 1010 1 0110 1 000    20.5    51
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 0000 1 0100 1 0111 1 0000 1 1010 1 0010 1 000    20.6    50
0 0000 0 0000 0 0000 1 1000 1 0000 1 0110 1 0000 1 0100 1 0111 1 0000 1 1010 1 0010 1 000    20.6    50
0 0000 0 0000 0 0000 1 1000 1 0000 1 0001 1 0000 1 0100 1 0111 1 0000 1 1010 1 0101 1 000    20.8    50
0 0000 0 0000 0 0000 1 1000 1 0000 1 0001 1 0000 1 0100 1 0111 1 1001 1 0010 1 0100 1 000    20.8    49
0 0000 0 0000 0 0000 1 1000 1 0000 1 1001 1 0000 1 0100 1 0111 1 1001 1 0010 1 1100 1 000    20.9    49
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 1000 1 0100 1 0111 1 1001 1 0010 1 1101 1 000    21.0    49
0 0000 0 0000 0 0000 1 1000 1 0000 1 0000 1 1000 1 0100 1 0111 1 1001 1 0010 1 1101 1 000    21.0    49
0 0000 0 0000 0 0000 1 1000 1 0000 1 1000 1 1000 1 0100 1 0111 1 0001 1 0010 1 1101 1 000    21.1    48
Don't PM me for help as I will ignore it.

Miq1

Wow! I have always thought I would be good in seeing patterns, but you easily are beating me at it!  :D

I have a suggestion on the values - could it be there is a '1' bit between every nibble? Then we would have (in reverse bit order) a plain BCD encoding. one bit in bbb is the sign, the temperature is "ffff eeee . dddd" and the humidity "hhhh gggg":

Code: [Select]

            Head aaaa 1 bbb b 1 cccc 1 dddd 1 eeee 1 ffff 1 gggg 1 hhhh 1 iiii Tail    Temp   Hum
0000000000000001 1000 1 000 1 1 0000 1 0110 1 0000 1 0111 1 0100 1 1100 1 0101 1000   -06.0    32
0000000000000001 1000 1 000 1 1 0000 1 0110 1 0000 1 0111 1 1010 1 1100 1 1011 1000   -06.0    35
0000000000000001 1000 1 000 1 1 1110 1 1100 1 0000 1 0111 1 1110 1 0010 1 0101 1000   -03.7    47
0000000000000001 1000 1 000 1 1 0100 1 0000 1 0000 1 0111 1 0001 1 1010 1 0100 1000   -00.2    58
0000000000000001 1000 1 000 0 1 1010 1 1000 1 0000 1 0111 1 1010 1 0110 1 0100 1000    01.5    65
0000000000000001 1000 1 000 0 1 0110 1 1100 1 0000 1 0111 1 1001 1 0110 1 1111 1000    03.6    69
0000000000000001 1000 1 000 0 1 0010 1 1010 1 0000 1 0111 1 0100 1 1110 1 1000 1000    05.4    72
0000000000000001 1000 1 000 0 1 0001 1 0110 1 0000 1 0111 1 0010 1 1110 1 0001 1000    06.8    74
0000000000000001 1000 1 000 0 1 0000 1 0001 1 0000 1 0111 1 1010 1 1110 1 1111 1000    08.0    75
0000000000000001 1000 1 000 0 1 0000 1 1001 1 0000 1 0111 1 1010 1 1110 1 0111 1000    09.0    75
0000000000000001 1000 1 000 0 1 0000 1 0000 1 1000 1 0111 1 1010 1 1110 1 0110 1000    10.0    75
0000000000000001 1000 1 000 0 1 0001 1 0000 1 1000 1 0111 1 1010 1 1110 1 0111 1000    10.8    75
0000000000000001 1000 1 000 0 1 0110 1 1000 1 1000 1 0111 1 1100 1 1110 1 1110 1000    11.6    73
0000000000000001 1000 1 000 0 1 0010 1 0100 1 1000 1 0111 1 0100 1 1110 1 1110 1000    12.4    72
0000000000000001 1000 1 000 0 1 0000 1 1100 1 1000 1 0111 1 0000 1 1110 1 0000 1000    13.0    70
0000000000000001 1000 1 000 0 1 0110 1 1100 1 1000 1 0111 1 1001 1 0110 1 0111 1000    13.6    69
0000000000000001 1000 1 000 0 1 0100 1 0010 1 1000 1 0111 1 0001 1 0110 1 0011 1000    14.2    68
0000000000000001 1000 1 000 0 1 1100 1 1010 1 1000 1 0111 1 1010 1 0110 1 1000 1000    14.8    66< Suspect
0000000000000001 1000 1 000 0 1 1100 1 0110 1 1000 1 0111 1 0100 1 0110 1 1010 1000    15.8    64< Suspect
0000000000000001 1000 1 000 0 1 1110 1 0110 1 1000 1 0111 1 0100 1 0110 1 1000 1000    16.7    62
0000000000000001 1000 1 000 0 1 1000 1 1110 1 1000 1 0111 1 0000 1 0110 1 0010 1000    17.1    60
0000000000000001 1000 1 000 0 1 0010 1 1110 1 1000 1 0111 1 1001 1 1010 1 1101 1000    17.4    59
0000000000000001 1000 1 000 0 1 1110 1 1110 1 1000 1 0111 1 1001 1 1010 1 0001 1000    17.7    59
0000000000000001 1000 1 000 0 1 0000 1 0001 1 1000 1 0111 1 0001 1 1010 1 1000 1000    18.0    58
0000000000000001 1000 1 000 0 1 1100 1 0001 1 1000 1 0111 1 1110 1 1010 1 1011 1000    18.3    57
0000000000000001 1000 1 000 0 1 0110 1 0001 1 1000 1 0111 1 1110 1 1010 1 0001 1000    18.6    57
0000000000000001 1000 1 000 0 1 0001 1 0001 1 1000 1 0111 1 0110 1 1010 1 1110 1000    18.8    56
0000000000000001 1000 1 000 0 1 0000 1 1001 1 1000 1 0111 1 1010 1 1010 1 1011 1000    19.0    55
0000000000000001 1000 1 000 0 1 0100 1 1001 1 1000 1 0111 1 0010 1 1010 1 0111 1000    19.2    54
0000000000000001 1000 1 000 0 1 0010 1 1001 1 1000 1 0111 1 0010 1 1010 1 0001 1000    19.4    54
0000000000000001 1000 1 000 0 1 0110 1 1001 1 1000 1 0111 1 1100 1 1010 1 1011 1000    19.6    53
0000000000000001 1000 1 000 0 1 1110 1 1001 1 1000 1 0111 1 1100 1 1010 1 0011 1000    19.7    53
0000000000000001 1000 1 000 0 1 1001 1 1001 1 1000 1 0111 1 0100 1 1010 1 1100 1000    19.9    52
0000000000000001 1000 1 000 0 1 0000 1 0000 1 0100 1 0111 1 0100 1 1010 1 0000 1000    20.0    52
0000000000000001 1000 1 000 0 1 1000 1 0000 1 0100 1 0111 1 0100 1 1010 1 1000 1000    20.1    52
0000000000000001 1000 1 000 0 1 0100 1 0000 1 0100 1 0111 1 1000 1 1010 1 1000 1000    20.2    51
0000000000000001 1000 1 000 0 1 0010 1 0000 1 0100 1 0111 1 1000 1 1010 1 1110 1000    20.4    51
0000000000000001 1000 1 000 0 1 1010 1 0000 1 0100 1 0111 1 1000 1 1010 1 0110 1000    20.5    51
0000000000000001 1000 1 000 0 1 0110 1 0000 1 0100 1 0111 1 0000 1 1010 1 0010 1000    20.6    50
0000000000000001 1000 1 000 0 1 0110 1 0000 1 0100 1 0111 1 0000 1 1010 1 0010 1000    20.6    50
0000000000000001 1000 1 000 0 1 0001 1 0000 1 0100 1 0111 1 0000 1 1010 1 0101 1000    20.8    50
0000000000000001 1000 1 000 0 1 0001 1 0000 1 0100 1 0111 1 1001 1 0010 1 0100 1000    20.8    49
0000000000000001 1000 1 000 0 1 1001 1 0000 1 0100 1 0111 1 1001 1 0010 1 1100 1000    20.9    49
0000000000000001 1000 1 000 0 1 0000 1 1000 1 0100 1 0111 1 1001 1 0010 1 1101 1000    21.0    49
0000000000000001 1000 1 000 0 1 0000 1 1000 1 0100 1 0111 1 1001 1 0010 1 1101 1000    21.0    49
0000000000000001 1000 1 000 0 1 1000 1 1000 1 0100 1 0111 1 0001 1 0010 1 1101 1000    21.1    48

This sorts out the suspect 8.0 line as well. The two remaining suspects at least lie in the expectable range. So what if the transmission is completely decoupled from display? These could be values already measured without being displayed?

ffff is constant 0111 - battery? and iiii jumps across the table - may be the checksum nibble.

Riva

Wow! I have always thought I would be good in seeing patterns, but you easily are beating me at it!  :D

I have a suggestion on the values - could it be there is a '1' bit between every nibble? Then we would have (in reverse bit order) a plain BCD encoding. one bit in bbb is the sign, the temperature is "ffff eeee . dddd" and the humidity "hhhh gggg":

This sorts out the suspect 8.0 line as well. The two remaining suspects at least lie in the expectable range. So what if the transmission is completely decoupled from display? These could be values already measured without being displayed?

ffff is constant 0111 - battery? and iiii jumps across the table - may be the checksum nibble.
Sorry I have been updating my data so the one you just posted sort of matches my last offering but the header is different so you may be using an old set.

Yes the nibbles do seem to be guarded by an extra bit (0 in the sync & 1 in the data) and also looks to be BCD in reverse bit order.
aaaa, ffff & iiii are still undefined but I suspect one (aaaa) would be device or channel number. This number may change when the batteries are replaced so you could maybe try this and see what happens.
ffff is possibly battery level but to confirm you would need old batteries to test or power from a bench supply and slowly lower the voltage between readings.
iiii is most likely a checksum or CRC.
Don't PM me for help as I will ignore it.

Riva

To maybe explain the header/data from #31 the second row with the upper case T & H chars is to show what column deals with temperature and humidity and the bits on the end of the row that spell out 'bed c hg' is the column the data is stored in.
b = column bbbb that is the temperature sign
e = column eeee and is the tens of degrees (BCD)
d = column dddd and is the ones of degrees (BCD)
c = column cccc and is the tenths of degree (BCD)

h = column hhhh and is the tens of humidity (BCD)
g = column gggg and is the ones of humidity (BCD)

Don't PM me for help as I will ignore it.

Miq1

Thanks a lot, man! That solves my riddle good enough to use the sensor further on. I will collect the aaaa, ffff and iiii data for a while to see if a pattern evolves there as well.

Thanks again!

Miq1

Addition. I got a working formula to calculate the checksum iiii, that fits all data I collected so far. I do not trust it too much, though, as it contains the arbitrary constant 4 and is not using the ffff nibble at all:

Code: [Select]

crc = 4^nibble[0]^nibble[1]^nibble[2]^nibble[3]^nibble[4]^nibble[6]^nibble[7]

Riva

Nothing wrong with a starting constant but I would expect the CRC to include column ffff though.
Can you include the ffff column and end up with a different starting constant?
Don't PM me for help as I will ignore it.

Miq1

I am using a home-grown Genetic Programming tool to find out the formula (I am lazy  :D), so I have few influence on the values it takes into consideration. The ones it found with ffff included are too ugly to be true:
Code: [Select]

dddd^eeee^gggg^bbbb^((ffff^aaaa)&(hhhh^133^cccc)) or
aaaa^bbbb^cccc^dddd^eeee^(ffff&196)^gggg^hhhh      (ffff&196 is effectively a 4)


By the way: I replaced the sensor's batteries with fresh ones today, but ffff still remained at a value of 14.

Go Up