我正在尝试对交流室内机 <-> 恒温器通信进行逆向工程。到目前为止,我已经成功解析了位和字节。
例如,我发现需要颠倒上下半字节以获取温度值的连续值,因此我假设该部分是正确的。
此外,该单元发送了两次有效载荷,所以我假设这些值是正确的。
最后,我试图计算接收值的校验和,但我找不到导致匹配校验和的模式。
我确实注意到值的变化0x01
将校验和提高了0x10
,所以我尝试反转每个值并将它们相加,但这并没有提供预期的结果。另一方面,更改0x10
为0x30
根本不会影响校验和。
这里有一些接收到的字节(像这样接收了两次):
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 运行。