『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 607|回复: 1

[经验分享] 简单粗暴设置米家蓝牙mesh多键无线场景开关接入HA实现.功能

[复制链接]

24

主题

755

帖子

3962

积分

论坛元老

Rank: 8Rank: 8

积分
3962
金钱
3202
HASS币
20
发表于 2024-12-27 15:45:20 | 显示全部楼层 |阅读模式
本帖最后由 ms2 于 2025-1-2 23:46 编辑

家里换了几个米家的风扇灯,带一个遥控器,我家里的开关是单火的,想来想去,还是用蓝牙mesh的场景开关合适(米家场景通过自动化设置可以支持同一个按键开关风扇灯里的灯,但不支持同个按键开关风扇),想怎么定义就怎么定义,虽然用的是电池,感觉换电池的时间应该也挺长的,就开干了。我买了2种试用,长这样的:
微信图片_20241231142728.png 微信图片_20241231142801.png
长得不一样,但用法都一样,本来以为买回来,用xiaomi多模网关2一接入就直接用的,结果跟想像中不一样呀,根本用不了。然后开始研究,因为看到的资料是散开的,所以写这个帖子,搞简单点,方便大家一看就会,一用就废
首先,大概是这帖子说的意思 :Xiaomi Gateway 3添加不在支持列表中的设备,先大概说一下怎么接入。首先在小米米家产品库找到面板的设备型号代码,就是在根目录下建个xiaomi_gateway3.py的文件如下,然后把要的设备写进去:

from custom_components.xiaomi_gateway3.core.devices import *

DEVICES = [{
    16186: ["giot", "V5 Wireless Eight Key Switch (BLE)", "giot.remote.v58kwm"],
    16181: ["GIOT", "V5 Wireless Three Key Switch", "giot.remote.v53kwm"],
    "spec": [
        BaseConv("action", "sensor"),
        MapConv("action", mi="2.e.1012.p.1", map={1: BUTTON_1_SINGLE, 2: BUTTON_2_SINGLE, 3: BUTTON_3_SINGLE, 4: BUTTON_4_SINGLE, 5: "button_5_single", 6: "button_6_single", 7: "button_7_single", 8: "button_8_single"}),
        MapConv("action", mi="2.e.1013.p.1", map={1: BUTTON_1_DOUBLE, 2: BUTTON_2_DOUBLE, 3: BUTTON_3_DOUBLE, 4: "button_4_double", 5: "button_5_double", 6: "button_6_double", 7: "button_7_double", 8: "button_8_double"}),
        MapConv("action", mi="2.e.1014.p.1", map={1: BUTTON_1_HOLD, 2: BUTTON_2_HOLD, 3: BUTTON_3_HOLD, 4: BUTTON_4_HOLD, 5: "button_5_hold", 6: "button_6_hold", 7: "button_7_hold", 8: "button_8_hold"}),
    ],
    "ttl": "1h"
  }] + DEVICES

但我折腾来折腾去,都没有显示开关出来(但其实是有用的),重启HA后,最主要应该会显示这个:
微信图片_20241227154426.png
然后接入这块就完成了,剩下的就是自动化的事了。
---------------------------------------------------------------------------------
开始说自动化设置,我说个我想做的稍微复杂一点点的做个例子,简单的自己搞就行了,我的需求是当我按第2个键时,切换亮度,按一下变成1(暗),再按一下变成100(亮),同一个按键可以随时切换。
先直接上代码,想省事的可以直接抄:
游客,如果您要查看本帖隐藏内容请回复

先新建一个自动化,按下图的设置就行(每当):
微信图片_20241227160648.png
先建第一个条件,注意红框里的,那个变为:button_2_single,可以在多模网关3的插件下图红框里看到,当点击面板按键时,单击,双击,长按都会有不同的显示:
微信图片_20241231113029.png
下面第二个(且如果)我没有设置,我把判断放在(就执行)里设置,在(就执行)里,选择“添加组件”界面选择“如果-就”这样会有生成一个判断:如果XXXX,就XXX,否则XXX的规则:
微信图片_20241231113833.png
添加这个组件后,设置(如果*)的条件,点击添加条件,选择“实体”:
微信图片_20241231114234.png
点击进入后,选择“数值状态”:
微信图片_20241231114551.png
点击进入后,就可以根据自己想要控制的设备进行条件设置了,我的是风扇灯,红框内是我设置的条件:
微信图片_20241231114732.png
然后设置执行(就*),因为我的这个是米家的设备,我是直接调用xiaomi auto的设置命令的,这样简单,我想要执行什么直接调用就可以了,大家不一定要跟我一样,点击“添加动作”选择“其它动作”: 微信图片_20241231115403.png
点击进入后,选择“执行动作”:
微信图片_20241231115547.png
点击进入后,选择动作,我选择的是“xiaomi miot auto set miot property”,这个意思是可以根据小米标准的miot协议,设置各种动作,然后选择我的米家风扇灯,指定siid(2,指的是灯值)跟piid(2指的是亮度),,value设置为“1”(指的是亮度设置为最暗的1):
微信图片_20241231141107.png
siid跟piid的值怎么设置,可以参考小米官方的定义,我的是雷士风扇灯pro,看一下就懂了。
设置完成后,设置下一个“否则“,其它设置不变,只是把value值设置为”100“:
微信图片_20241231141856.png
这样就完成了,意思是:当灯的亮度大于50时,我按一下,变会变暗,否则当灯的亮度小于50时,我按一下,就会变亮,因为我每个房间有摄像头,可以感应到人休移动,我又做了一个当感应到人时,如果灯亮度小于50自动变亮,当没人五分钟后,灯自动变暗,这样应该可以省不少的电,因为我每个风扇灯最亮的时候是100瓦,最暗的时候才10瓦。



回复

使用道具 举报

24

主题

755

帖子

3962

积分

论坛元老

Rank: 8Rank: 8

积分
3962
金钱
3202
HASS币
20
 楼主| 发表于 2024-12-31 14:38:46 | 显示全部楼层
写了一堆,实际代码不多,也就几行,用图形化设置的目的主要是方便里面有各种功能,在不懂代码的情况下,可以试着玩。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-2-3 04:41 , Processed in 0.171116 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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