11-14-2017, 02:38 PM

Okay, I've looked into the log you posted in hope for helping information. The signalduino-program, you used, considered the first 13 bits as the id, but at least my sensor changes bits 9 to 16 randomly with every telegram it sends. So your program puts out a different id with every telegram for every sensor and that is probably, why it mixed up all the sensors, when you had more of them.

For the pilight-code I could use a bit of help finding out, what the remaining bits mean. So I briefly summarise, what I think I already know, and what stays unclear:

Consider the following bit streams:

The first and last line show, what I think the corresponding bits represent.

i is for id, which changes, whenever you take out the batteries, but probably the first 4 bits 0001 stay the same all the time.

t represents the temperature in the following form: divide by ten and subtract 90 from it, then you have the temperature in Fahrenheit

h is the humidity in the following form: the first 4 bits represent the first digit of the humidity, the second 4 bits represent the second digit.

b is probably the battery status, 00 means battery ok

c is the channel, which you can change on the sender with a switch

What stays unclear are the bits marked by ?. Perhaps the last ? belongs already to the temperature, since it's 0 all the time. So there are 8 unknown bits. I assume they are some kind of checksum. So if anybody finds any relationship to some of the rest of the bits, we could work that out. I tried out some very simple algorithms like xor all the bits, but found no connection, so if anyone has a clue what kind of checksum you would usually use in such a case, that would help. For example, what checksum or hash algorithms use similar weather station sensors in pilight?

For the pilight-code I could use a bit of help finding out, what the remaining bits mean. So I briefly summarise, what I think I already know, and what stays unclear:

Consider the following bit streams:

Code:

`iiiiiiii?????????ttttttttttthhhhhhhhbbcc`

00010000100010010110011101100100001100013 - 24.1°C 43%

00010000000110010110011101010100010100013 - 24.0°C 45%

0001000001??10100110011010110100010000013 - 23.5°C 44%

00010000011010100110011010110?00010000013 - 23.5°C 44%

00010000110010100110010111000100010000013 - 22.6°C 44%

00010000111110100110001101100100011100013 - 20.5°C 47%

00010000000010100110001101100100100000013 - 20.5°C 48%

00010000011010100110001110010100100000013 - 20.7°C 48%

00010000001110100110001110000100100000013 - 20.6°C 48%

00010000000010100110001101100100100000013 - 20.5°C 48%

00010000101010100110001101000100100000013 - 20.4°C 48%

00010000011010100110001110010100100000013 - 20.7°C 48%

00010000111110100110001101100100011100013 - 20.5°C 47%

00010111010110000110001000110100100100013 - 19.5°C 49%

00010111011010000110000110100101000000013 - 19.0°C 66.2°F 50%

00010111111110000110000111010101000100013 - 19.1°C 66.5°F 51%

00010111000010000110001000000101000000013 - 19.3°C 66.8°F 50%

00010111110010000110001001100101000100013 - 19.6°C 67.4°F 51%

00010111111110000110001010000101000100013 - 19.7°C 67.6°F 51%

00010111000010000110001010110101000100013 - 19.9°C 67.9°F 51%

00010111001010000110001011100101000100013 - 20.1°C 68.2°F 51%

00010111010100010110001110010101001000013 - 20.7°C 69.3°F 52%

iiiiiiii?????????ttttttttttthhhhhhhhbbcc

i is for id, which changes, whenever you take out the batteries, but probably the first 4 bits 0001 stay the same all the time.

t represents the temperature in the following form: divide by ten and subtract 90 from it, then you have the temperature in Fahrenheit

h is the humidity in the following form: the first 4 bits represent the first digit of the humidity, the second 4 bits represent the second digit.

b is probably the battery status, 00 means battery ok

c is the channel, which you can change on the sender with a switch

What stays unclear are the bits marked by ?. Perhaps the last ? belongs already to the temperature, since it's 0 all the time. So there are 8 unknown bits. I assume they are some kind of checksum. So if anybody finds any relationship to some of the rest of the bits, we could work that out. I tried out some very simple algorithms like xor all the bits, but found no connection, so if anyone has a clue what kind of checksum you would usually use in such a case, that would help. For example, what checksum or hash algorithms use similar weather station sensors in pilight?