我试图对交流室内机<->温控器通信进行反向工程。到目前为止,我已经成功解析了位和字节。

我发现例如需要反转上下半字节以获取温度值的连续值,因此我假设该部分是正确。

此外,设备将有效载荷发送两次,所以我认为值是正确的。

最后,我试图计算接收到的值的校验和,但是我找不到能产生匹配校验和的模式。预期的结果。另一方面,将0x01更改为0x10完全不会影响校验和。

这里接收到一些字节(像这样两次接收):

vent hex: 09 da d1 04 01 00 44 13 a4 09 00 40 10 04 01 1d 

cool hex: 09 d8 d1 04 01 00 40 17 a4 09 00 40 10 04 01 6a 

ai   hex: 09 de d1 04 01 01 40 17 a4 09 00 40 10 04 01 7c 

dehumhex: 09 dc d1 04 01 00 40 15 24 09 00 40 10 04 01 5a 

heat hex: 09 d9 d1 04 01 01 40 17 a4 f1 00 40 10 04 01 4c 

hex: 2a d7 10 04 01 00 40 10 04 01 00 48 14 7c 09 78 1=0001

hex: 2a d7 30 04 01 00 40 10 04 01 00 48 14 7c 09 78 3=0011

hex: 2a d7 50 04 01 00 40 10 04 01 00 48 14 7c 09 79 5=0101

hex: 2a d7 70 04 01 00 40 10 04 01 00 48 14 7c 09 79 7=0111

hex: 2a d7 90 04 01 00 40 10 04 01 00 48 14 7c 09 7a 9=1001

hex: 2a d7 b0 04 01 00 40 10 04 01 00 48 14 7c 09 7a B=1011

hex: 2a d7 d0 04 01 00 40 10 04 01 00 48 14 7c 09 7b D=1101

hex: 2a d7 f0 04 01 00 40 10 04 01 00 48 14 7c 09 7b F=1111

hex: 2a d6 10 04 01 00 40 10 04 01 00 48 14 7c 09 7c

hex: 2a d6 30 04 01 00 40 10 04 01 00 48 14 7c 09 7c

hex: 2a d6 70 04 01 00 40 10 04 01 00 48 14 7c 09 7d

hex: 2a d6 50 04 01 00 40 10 04 01 00 48 14 7c 09 7d

hex: 2a d6 b0 04 01 00 40 10 04 01 00 48 14 7c 09 7e

hex: 2a d6 d0 04 01 00 40 10 04 01 00 48 14 7c 09 7f

hex: 2a d6 f0 04 01 00 40 10 04 01 00 48 14 7c 09 7f


这里是一些经过解析的输出的降温输出,其有效载荷(rhex)反向:

source: 09  head 110 mode 38 modeb 11001 fan 0 bfan: 000 unkownb: 1000

swing: 4 bswing 00000100

plasma 1 tempStart: 0001 temp: 90 tempStop: 010 airclean 1

unkown: 01 01 44  splayload: e9  rest: 00 40 10 04 01  chksum: 2a

hex: 09 d9 11 04 01 01 44 15 a5 e9 00 40 10 04 01 2a

rhex 90 9b 88 20 80 80 22 a8 a5 97 00 02 08 20 80 54

source: 09  head 110 mode 38 modeb 11001 fan 0 bfan: 000 unkownb: 1000

swing: 4 bswing 00000100

plasma 1 tempStart: 0001 temp: 88 tempStop: 010 airclean 1

unkown: 01 01 44  splayload: e9  rest: 00 40 10 04 01  chksum: 6a

hex: 09 d9 11 04 01 01 44 11 a5 e9 00 40 10 04 01 6a

rhex 90 9b 88 20 80 80 22 88 a5 97 00 02 08 20 80 56


也许有人可以给我一个正确方向的提示。

测试设置在Raspberry Pi上以Python运行。

评论

Quote:我发现上下半字节需要颠倒才能获得温度值的连续值,例如,因此我认为该部分是正确的。听起来很像Endianess的差异,但也许没有。.您将不得不保持自己所做的,猜测算法。您的快速编辑强烈建议您这样做很简单,因此,如果有时间,我相信您会明白的。

尝试针对它运行reveng.sourceforge.net并使用参数。如果它是正常的crc(初始值为0),则还可以检查身份CRC(A)^ CRC(B)= CRC(A ^ B)和如果是真的,则可以使用它来验证并生成校验和