yeelight 浴霸接入node-red和ha

已经测试了一周多了,基本功能都有了,现在可以优雅的脱光光了 :nerd_face:
接入的功能包括:浴霸灯(含夜灯功能),浴霸的四个功能:暖风、换气、干燥(浴后和干衣)、吹风,风速分为低、中、高。基本够用了吧
先来个图:


用的是climate的平台来做的,其中heat是暖风,cool是换气,dry是干燥,fan only是吹风,其中干燥浴后和干衣模式通过开关来控制。
接入是通过node-red实现的。需要配置的是浴霸的ip和token

还有就是mqtt设置了,如果你是yeelight浴霸(不是pro版的)其他都不需要变动。

更新风速判断

最后附上配置:yeelink_bhf_light.rar (3.7 KB)

漂亮 强烈支持 请问是那款浴霸,用了那些节点,导入后缺少节点

1 个赞

感谢抓包提供的属性关键词跟设定关键词,之前缺少关键词一直list获取不到,现在可以搞定了。
另:速度反馈的判断可能有点问题,
ABCDE五位数,
E为暖风,D为换气,A为干燥,B为吹风,
D可为0/1/2/9,其他都为0/1/2,对应低/中/高/暴风

等了好久终于等到今天

你好,浴霸风速一直报错是为何啊?别的都正常,NR里面和HA里面都报错
QQ截图20200302132329 QQ截图20200302132348

注释掉的那部分为原来的代码,用新的替换

if (data.bh_mode === "warmwind"){
    if(data.fan_speed_idx.toString().slice(-1) === "0"){
        data.fan_speed_idx = "low";
    } else if (data.fan_speed_idx.toString().slice(-1) === "1"){
        data.fan_speed_idx = "medium";
    } else if (data.fan_speed_idx.toString().slice(-1) === "2"){
        data.fan_speed_idx = "high";
    }
} else if (data.bh_mode === "venting"){
    if(data.fan_speed_idx.toString().slice(-2,-1) === "0"){
        data.fan_speed_idx = "low";
    } else if (data.fan_speed_idx.toString().slice(-2,-1) === "1"){
        data.fan_speed_idx = "medium";
    } else if (data.fan_speed_idx.toString().slice(-2,-1) === "2"){
        data.fan_speed_idx = "high";
    } else if (data.fan_speed_idx.toString().slice(-2,-1) === "9"){
        data.fan_speed_idx = "tophigh"; //暴风
    }
} else if (data.bh_mode === "drying"){
    if(data.fan_speed_idx.toString().slice(-3,-2) === "0" || data.fan_speed_idx.toString().slice(-3,-2) === "" ){
        data.fan_speed_idx = "low";
    } else if (data.fan_speed_idx.toString().slice(-3,-2) === '1'){
        data.fan_speed_idx = "medium";
    } else if (data.fan_speed_idx.toString().slice(-3,-2) === '2'){
        data.fan_speed_idx = "high";
    }
} else if (data.bh_mode === "coolwind"){
    if(data.fan_speed_idx.toString().slice(-4,-3) === "0" || data.fan_speed_idx.toString().slice(-4,-3) === "" ){
        data.fan_speed_idx = "low";
    } else if (data.fan_speed_idx.toString().slice(-4,-3) === '1'){
        data.fan_speed_idx = "medium";
    } else if (data.fan_speed_idx.toString().slice(-4,-3) === '2'){
        data.fan_speed_idx = "high";
    }
} else if (data.bh_mode === "drying_cloth"){
    if(data.fan_speed_idx.toString().slice(-5,-4) === "0" || data.fan_speed_idx.toString().slice(-5,-4) === "" ){
        data.fan_speed_idx = "low";
    } else if (data.fan_speed_idx.toString().slice(-5,-4) === '1'){
        data.fan_speed_idx = "medium";
    } else if (data.fan_speed_idx.toString().slice(-5,-4) === '2'){
        data.fan_speed_idx = "high";
    }
} else if (data.bh_mode === "bh_off"){
    data.fan_speed_idx = "auto"; //关机预设值
}

/// if (data.fan_speed_idx === 11110) {
/// data.fan_speed_idx = “low”;
/// } else if (data.fan_speed_idx === 11111) {
/// data.fan_speed_idx = “medium”;
/// } else if (data.fan_speed_idx === 11112) {
/// data.fan_speed_idx = “high”;
/// }

多谢!!!!!!

这是两端代码啊?

今天发现个奇怪现象,原先是ABCDE,干燥为A,今天突然发现干燥变成C了。难道这还会变?

请问一下,浴霸接入了,可以正常使用。唯一缺点就是配置NR或者重启HA的时候浴霸灯都会从关灯变开灯,看了一下米家app是断电默认开灯,如何解决配置不影响浴霸灯的正常使用,求解决 :wink:

有个模式一直报错,有办法改进吗?

日志详细信息( ERROR )

Logger: homeassistant.components.mqtt.climate
Source: components/mqtt/climate.py:485
Integration: MQTT (documentation, issues)
First occurred: 上午11:54:20 (147 occurrences)
Last logged: 下午12:06:05

Invalid fan_modes mode: auto1111

climate的平台,这个是哪个插件呀

climate的平台, 你好,有链接不,找了好几天没找到 :joy:

你好,这个面板开关怎么调出来呀

不用插件,这个用的homeassistant的climate的平台,但是NR使用MQTT发送过来的,面板开关压缩包里面不是有吗,yaml那个就是HA的配置啊

面板已经弄出来了,就是MQTT好像有点错误。面板开关都是灰色的,不能控制,不知道是那里问题,愁死了

你要把你的安装过程还有具体的配置文件贴出来,否则判断不了出了什么问题。

MQTT服务器搭好了吗?NR里面设置好MQTT IN和OUT了吗?yeeligh浴霸填写正确的ip和token了吗?

非常感谢,已经可以用了

按照教程弄好了,显示已经连接,但是 显示不可用 原因是 该实体没有唯一的 ID,因此无法由 UI 管理其设置。

怎么解决