一直很懒没有去拆DC1刷固件,之前一直使用Home Assistant的DC1插件劫持域名来使用,用了一阵子发现稳定性很差,后来发现网上有个Node-Red的流也可以控制DC1,试了一下,果然稳定,果断改了改支持了MQTT,集成到了Home Assistant里。

视频教程:

斐讯DC1原生固件劫持方法,利用Node-Red接入,并且在Home Assistant的MQTT中可以直接发现4个开关,2个传感器,分别为一个总开关,三个子开关,电压,功率传感器。

Node-Red自带网页控制 http://node-red-ip-address:1880/ui

Home Assistant 网页控制

本流是根据大佬们原有流程增加MQTT和Home Assistant自动发现而来,并且支持多DC1接入但需要自行修改。

使用方法:
1.节点管理里安装 node-red-dashboard。


2.下载好流文件,用文本编辑器打开,把文件内所有MAC地址替换为你自己的MAC地址再导入Node-Red。

Node-Red 一键安装

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

下载地址:

此内容查看价格为1.99智能币立即购买
你的支持是我更新原创的动力,如果有疑问详询qq:16900693

119 对 “Node-Red 控制斐讯DC1插排,同时拥有UI控制/MQTT控制/Home Assistant自动发现”的想法;

  1. 已配置上,有个很奇葩的现象,偶尔会出现发出1个开/关指令后,那个开关就会以超快的速度无限循环,on.off.on.off.on.off……..,软故障,触发概率随机,研究了几个晚上还没明白咋回事。。。
    另:通过快速多次点击开关,可以有效触发这种故障(不知道故障原因是不是一样的。。)

      1. 先谢谢楼主。我用的是N1。刚才回家开电脑的时候用手机点了一下开关,就触发了那个故障,只有强制重启机器。现在已按照你给的办法,在输出到mqtt之前增加了一个1s的延时,再用两天看看。
        刚才用鼠标快速点击触发开/关3个来回左右,还是会出现无限循环。

  2. 你好,显示全部连通,但是无法控制。 日志显示:”TypeError: Cannot read property ‘sw_10’ of undefined” ,请问是什么原因?

  3. 头一次接触HA,搞得头大,大佬帮我看下
    HA,nodered,mosquitto都是运行在docker下,
    按照视频都搞完了,最后MQTT启用实体,弹出对话框“重启Home Assistant以完成实体启用 ”
    可无论docker重启容器,还是在HA配置里重启服务,都不能控制DC1,应该是实体没有被启用
    Home Assistant版本是0.118.2,请问哪里出了问题
    请问大佬哪里出了问题?

  4. 请教一下楼主,按照您的方法,我的是3b+最新的树莓派桌面系统,按照您的教程安装的node-red,以及homeeassisant和mqtt,
    1.DC1已经配网并且连上WiFi。
    2.域名也劫持指向了node-red。
    3.导入流也是正常的。node red 的状态与homeassisant控制面板的实体开关状态是能同步的。
    但是无法控制DC1。 node red报错
    TypeError: Cannot read property ‘sw_10’ of undefined
    麻烦您指导一下是什么原因导致的。谢谢

      1. nodeRED的ui界面显示正常,但是也控制不了,mqtt我在树莓派就执行了一条sudo apt install mosquitto的指令,没做任何其他操作。是不是mqtt还做什么配置呀?

          1. MAC地址替换过了。流也是从您网站下载的流文件替换了mac导入的,导入也没有提示如何错误 ,我在重新下载一份重新修改mac试试。

  5. 楼主您好:看了教程和视频受益很深,您提供的流文件模板是单个DC1和三个DC1的,再多插排怎么控制?比如我有7个DC1,里面的id是怎么来的?

  6. 楼主你好,N1 OpenWRT下docker安装的HASSIO能不能装Nodered?我的supervisor插件库里没有Nodered,删了重新加社区插件库,还是没有,HACS的集成库里倒是有,装了无法配置,也无法进入网页端,折腾了好几天,翻了很多论坛,始终无法解决。

  7. 搞好了,特来感谢下和分享下。
    用的是三DC1.json,部署完之后有1个DC1正常,另2个DC1报TypeError: Cannot read property ‘sw_10’ of undefined。
    研究了下,用DC1配网工具重新配网,之后3个DC1都正常了。

  8. 乱跳问题。我在homeassistant中发现斐讯在nodered下dc1的1和3口乱跳的问题,随后使用nodered自带的ui测试了一下,发现问题依旧。随后我测试了一下,可能是nodered下的数据分组的问题。我将Object.assign中的2,4,8全部去掉之后,dc1下的开关都正常,只有一个总开关有时会触发乱跳。同时将心跳节点下的延时调高至2000即两秒后,总开关也不会触发乱跳,随后功能一切正常。不知道原理,但是我这么改过之后没有出现问题。。。

    1. 终于成功了,你这个是唯一的正确解答,楼主那个代码就有bug,你这个方法完美解决了,但是我不是去掉我是注释掉了

发表回复