我发现例如需要反转上下半字节以获取温度值的连续值,因此我假设该部分是正确。
此外,设备将有效载荷发送两次,所以我认为值是正确的。
最后,我试图计算接收到的值的校验和,但是我找不到能产生匹配校验和的模式。预期的结果。另一方面,将
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)和如果是真的,则可以使用它来验证并生成校验和