找回密码
 立即注册

微信扫码登录

搜索
查看: 5242|回复: 24

[技术探讨] 【求助】【已解决】关于gateway3添加新旋钮设备

[复制链接]

33

主题

1122

回帖

5546

积分

论坛元老

积分
5546
金钱
4376
HASS币
90
发表于 2024-6-18 19:13:23 | 显示全部楼层

回帖奖励 +5 金钱

本帖最后由 relliky 于 2024-6-18 20:50 编辑

看着没问题啊,service iid, event iid, property iid看着都是对的。你用的是最新的xiaomi gateway3吗?最近几个版本才改的这个新的语法。
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

33

主题

1122

回帖

5546

积分

论坛元老

积分
5546
金钱
4376
HASS币
90
发表于 2024-6-18 20:48:45 | 显示全部楼层
本帖最后由 relliky 于 2024-6-18 21:25 编辑

看你已经研究了一部分了,你要是看得懂python,也可去翻一下alexiit的源代码。。就算有些看不懂的地方,忽略掉它们,只在关键地方去打印点信息出来看看是哪步错了。
如果你想查错源代码,给你点思路,从这里查起 https://github.com/AlexxIT/Xiaom ... core/device.py#L340
查为什么这个eid最后没有生成你想要的
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

33

主题

1122

回帖

5546

积分

论坛元老

积分
5546
金钱
4376
HASS币
90
发表于 2024-6-19 00:47:51 | 显示全部楼层
本帖最后由 relliky 于 2024-6-19 00:56 编辑
invincible 发表于 2024-6-18 23:38
大佬,目前歪打正着解决了按钮和旋转角度的问题。以下是当前的xiaomi_gateway3.py
1、抱着试试的心态,抄 ...

嗯嗯,这个值是sint8,我猜大概是在python里面要用把这个sint8用sign extension来转换成sint64,python应该才会正确显示。直接把sint8转换到sint64,会把sint8当成uint8来使用。

负数都是最高位是sign bit,所以表示的意义不同
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

33

主题

1122

回帖

5546

积分

论坛元老

积分
5546
金钱
4376
HASS币
90
发表于 2024-6-19 18:08:30 | 显示全部楼层
本帖最后由 relliky 于 2024-6-19 18:22 编辑
invincible 发表于 2024-6-19 07:45
哈哈 吃了不懂技术的亏 都是一边gpt一边试

哈哈,能搞定已经很棒了。

负数的定义叫二补码 https://baike.baidu.com/item/%E8%A1%A5%E7%A0%81/6854613
sint8正数最大是 0x7F (+127)
负数最大是0x80 (-128)

最高位是sign bit,sign extension就是把最高位复制。
sint8->sint32
0x7F 最高位是0 -> 0x0000_007F
0x80 最高位是1-> 0xFFFF_FF80
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-18 03:04 , Processed in 0.368755 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表