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

 找回密码
 立即注册
查看: 57107|回复: 51

[流程系列] 【Node-RED】鸿雁排插-曲线救国接入HA

[复制链接]

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2019-1-9 09:18:42 | 显示全部楼层 |阅读模式
本帖最后由 neroxps 于 2019-1-9 09:33 编辑

【Node-RED】鸿雁排插-曲线救国接入HA

众所周知,鸿雁排插是博联代工,故此可以使用博联的插件接入 Home-assistant,但官方的Home-Assistant MP1插件响应缓慢,而且博联也经常在 Home-Assistant 中坑爹,而本坛C大之前写的插件,在7开头版本中已经无法使用,目前没有大佬修复的话估计就要寿终正寝。

后来萝卜提醒我,他正使用 Node-RED 的博联插件,所以我就萌生将博联通过 Node-RED 接入 HA的想法。

接入方法分析

通过 Node-RED 的博联插件控制并获得博联插座状态,然后使用 mqtt 传递 Home-Assistant 和 Node-RED 之间的控制命令与状态。

前置需求

  1. 安装好 Node-RED,并安装以下依赖(博联插件,必须大于 1.0.3,1.0.2之前的在状态显示上有bug,这个bug我查了好久,其实很简单就是多了个&符号囧。)
node-red-contrib-broadlink-control
  1. 已配置好 mqtt 服务器并正常使用

配置 Node-RED

1. 导入 Flow

将以下json文件导入Node-RED

01.jpg
02.jpg
03.jpg

2. 配置 Flow

为了简化大家的配置,我已经将 Flow 改了好几版,最终这版是我比较满意的,大部分都复用,用户只需要根据自己的排插数量增加 mqtt in,和编写排插信息就好了。

04.jpg

  1. 双击一个mqtt节点(也就是紫色最前面或者最后面的节点随便一个),加入MQTT服务端。
  2. 编写 mqtt主题(topic),例子broadlink/dating_switchs/cmd,我定义的是前面是broadlink固定的,然后中间插座位置表述,最后是控制或者是状态/state or /cmd.
  3. 双击排查信息 function 节点,按照以下方式输入你的排插信息。

注意,中间的博联不需要添加节点,你只需要编辑下面的switchs 对象,流程会自动根据你要控制的节点去控制相应的插座。

// ---
// 请按以下要求填写排插信息
// mqtt 命名规则 
// broadlink/排插名称/cmd 此为控制 topic
// broadlink/排插名称/state 此为状态显示 topic

// 根据以下范例填写 switchs 对象内容
// "排插名称(和mqtt中的排插名称必须一致)":{
//    "name":"排插名称",
//    "host":"排插IP地址(建议在路由设置静态dhcp分配)",
//    "mac":"排插mac地址"
//}
//
//对象遵循 json 格式.
// ---
var switchs={
    "dating_switchs":{
        "name":"dating_switchs",
        "host":"10.88.10.3",
        "mac":"FF:FF:FF:FF:FF:1F"
    },
    "bookroom_switchs":{
        "name":"bookroom_switchs",
        "host":"10.88.10.1",
        "mac":"FF:FF:FF:FF:FF:2F"
    }
}

Home-assistant 配置

switch:
###
# dating_switchs
###
  - platform: mqtt
    name: drive1
    state_topic: "broadlink/dating_switchs/state"
    value_template: "{{ value_json['s1'] }}"
    command_topic: "broadlink/dating_switchs/cmd"
    payload_on: '{"key":"s1","action":"on"}'
    payload_off: '{"key":"s1","action":"off"}'
    state_on: true
    state_off: false
  - platform: mqtt
    name: drive2
    state_topic: "broadlink/dating_switchs/state"
    value_template: "{{ value_json['s2'] }}"
    command_topic: "broadlink/dating_switchs/cmd"
    payload_on: '{"key":"s2","action":"on"}'
    payload_off: '{"key":"s2","action":"off"}'
    state_on: true
    state_off: false
  - platform: mqtt
    name: drive3
    state_topic: "broadlink/dating_switchs/state"
    value_template: "{{ value_json['s3'] }}"
    command_topic: "broadlink/dating_switchs/cmd"
    payload_on: '{"key":"s3","action":"on"}'
    payload_off: '{"key":"s3","action":"off"}'
    state_on: true
    state_off: false
  - platform: mqtt
    name: drive4
    state_topic: "broadlink/dating_switchs/state"
    value_template: "{{ value_json['s4'] }}"
    command_topic: "broadlink/dating_switchs/cmd"
    payload_on: '{"key":"s4","action":"on"}'
    payload_off: '{"key":"s4","action":"off"}'
    state_on: true
    state_off: false
###
# bookroom_switchs
###
  - platform: mqtt
    name: bookroom_switch_1
    state_topic: "broadlink/bookroom_switchs/state"
    value_template: "{{ value_json['s1'] }}"
    command_topic: "broadlink/bookroom_switchs/cmd"
    payload_on: '{"key":"s1","action":"on"}'
    payload_off: '{"key":"s1","action":"off"}'
    state_on: true
    state_off: false
  - platform: mqtt
    name: bookroom_switch_2
    state_topic: "broadlink/bookroom_switchs/state"
    value_template: "{{ value_json['s2'] }}"
    command_topic: "broadlink/bookroom_switchs/cmd"
    payload_on: '{"key":"s2","action":"on"}'
    payload_off: '{"key":"s2","action":"off"}'
    state_on: true
    state_off: false
  - platform: mqtt
    name: bookroom_switch_3
    state_topic: "broadlink/bookroom_switchs/state"
    value_template: "{{ value_json['s3'] }}"
    command_topic: "broadlink/bookroom_switchs/cmd"
    payload_on: '{"key":"s3","action":"on"}'
    payload_off: '{"key":"s3","action":"off"}'
    state_on: true
    state_off: false
  - platform: mqtt
    name: bookroom_switch_4
    state_topic: "broadlink/bookroom_switchs/state"
    value_template: "{{ value_json['s4'] }}"
    command_topic: "broadlink/bookroom_switchs/cmd"
    payload_on: '{"key":"s4","action":"on"}'
    payload_off: '{"key":"s4","action":"off"}'
    state_on: true
    state_off: false

Enjoy~!

nodered-鸿雁排插.rar (3 KB, 下载次数: 199)

评分

参与人数 3金钱 +40 HASS币 +20 收起 理由
goldstep + 10 好使,加分,功率能加进来就更好了.
windgo + 10 大神666!
+ 20 + 20 这必须是精华级贴子!

查看全部评分

Nero
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16412
金钱
11666
HASS币
45
发表于 2019-1-9 10:12:31 | 显示全部楼层
neroxps 发表于 2019-1-9 10:04
改过不发,差评~扣分

broadlink_mp1.py (7.43 KB, 下载次数: 72)

忘了改了啥了,估计就版本号那改下就行。。抓紧把我分加回来

评分

参与人数 1金钱 +20 收起 理由
neroxps + 20

查看全部评分

回复

使用道具 举报

5

主题

295

帖子

3992

积分

论坛元老

Rank: 8Rank: 8

积分
3992
金钱
3697
HASS币
0
发表于 2019-1-9 09:21:11 | 显示全部楼层
赞,感谢大佬分享,学习了
回复

使用道具 举报

7

主题

235

帖子

1374

积分

金牌会员

Rank: 6Rank: 6

积分
1374
金钱
1129
HASS币
20
发表于 2019-1-9 09:22:32 | 显示全部楼层
用了一段时间。不错
回复

使用道具 举报

27

主题

2143

帖子

8934

积分

论坛元老

Rank: 8Rank: 8

积分
8934
金钱
6786
HASS币
30

论坛元老

发表于 2019-1-9 09:31:56 | 显示全部楼层
顶一下大佬的帖子
回复

使用道具 举报

21

主题

463

帖子

2867

积分

金牌会员

Rank: 6Rank: 6

积分
2867
金钱
2404
HASS币
0
发表于 2019-1-9 09:43:11 | 显示全部楼层
homeassistant博联插件用着正常的啊,版本84.6 84.1
回复

使用道具 举报

15

主题

656

帖子

2832

积分

金牌会员

Rank: 6Rank: 6

积分
2832
金钱
2175
HASS币
91

教程狂人

QQ
发表于 2019-1-9 10:00:02 | 显示全部楼层
用着正常啊,为啥要曲线啊,0.84.6
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
 楼主| 发表于 2019-1-9 10:03:16 | 显示全部楼层
花蟋蟀 发表于 2019-1-9 10:00
用着正常啊,为啥要曲线啊,0.84.6

C大的插件还是官方插件?

我用官方插件开的时候 等至少15秒才能更新状态。
Nero
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16412
金钱
11666
HASS币
45
发表于 2019-1-9 10:03:52 | 显示全部楼层
我0.7.x用c大的插件正常啊,莫非我改过?好像确实改过

评分

参与人数 1金钱 -10 收起 理由
neroxps -10

查看全部评分

回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
 楼主| 发表于 2019-1-9 10:04:42 | 显示全部楼层
Jones 发表于 2019-1-9 10:03
我0.7.x用c大的插件正常啊,莫非我改过?好像确实改过

改过不发,差评~扣分
Nero
回复

使用道具 举报

15

主题

656

帖子

2832

积分

金牌会员

Rank: 6Rank: 6

积分
2832
金钱
2175
HASS币
91

教程狂人

QQ
发表于 2019-1-9 10:10:20 | 显示全部楼层
neroxps 发表于 2019-1-9 10:04
改过不发,差评~扣分

囧帅貌似发过,京东微联版降级版本
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 20:34 , Processed in 0.282500 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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