计算空调校验和的问题

逆向工程 固件 二元诊断
2021-07-08 04:32:05

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

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

此外,该单元发送了两次有效载荷,所以我假设这些值是正确的。

最后,我试图计算接收值的校验和,但我找不到导致匹配校验和的模式。

我确实注意到值的变化0x01将校验和提高了0x10,所以我尝试反转每个值并将它们相加,但这并没有提供预期的结果。另一方面,更改0x100x30根本不会影响校验和。

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

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 运行。

0个回答
没有发现任何回复~