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

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

[经验分享] 315RF网关接入homeassistant和小度音箱

[复制链接]

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
发表于 2020-1-7 14:16:43 | 显示全部楼层 |阅读模式
本帖最后由 姚远 于 2020-12-19 11:22 编辑

新更新说明
之前一直使用这个OpenMQTTGateway(简称OMG),将家里的无线开关、门磁等接入homeassistant,还比较正常。最近给父母家配置无线开关和小米温湿度计2,重新配置OMG硬件和刷机固件。这次的变化主要有:
1. 小米温湿度计2需要使用蓝牙网关,增加蓝牙部分。所以选用了ESP32. 20块钱包邮到家,对比8266+蓝牙模块,既稳定又便宜,接线还少了很多
2. 部分OMG增加了DHT温湿度传感器
3. 官方OMG已经升级到0.9.5版本
4. 解决OMG经常没有反应问题
5. 解决传输距离太近的问题。发射可以整体房间一个发射模块就够用了,但是接收模块要一屋一个,太弱了。
具体方案参见#46楼
原方案
背景:为什么我要接入315RF。1、之前使用ESP8266构建了部分终端,但这东西好费电啊,必须接入到某个插座或开关内,而且如果是配置在原开关的位置,还要配一棵零线过来。最重要的是这家伙高能耗啊,总是热热的,是绝对不能使用电池供电的。
2、最致命的是wifi撑不住了。家里虽然人口不多,但接入wifi的设备不少,网络已经明显拥堵,并经常会有设备掉线。而用于智慧家居的wifi设备才接入了6个,还有安防、各房间的温湿度、好多灯没有接入呢。需要为wifi解压。
3、之前有几个灯的开关使用了86型遥控开关+随意贴,虽然使用很方便,但和整体智慧家居形不成一体,需要将它们纳入进来。
4、之前的无线门铃,主从机不稳定,时有时无,而且也没有纳入到整体中来。
5、基本的门磁还没有纳入进来,每个窗户、门,估计要20几个呢,最好还要电池供电。
6、温湿度传感器,应该每个房间都要配置,而且最好不接入ESP8266。8266高能耗,周围都是热热的,影响测温结果。
7、还要接入红外和蓝牙。
好吧,我初步设想,ESP8266还是做单片机+wifi应用吧,把它更多定位在网关环节,或者是节点上需要很多传感器组合的地方
首先要搞清楚我要什么,树莓派+homeassistant+RF网关(ESP8266+RF收发模块)。RF与homeassistant的交互,在网络上有无数的帖子,越看越看不懂,越看越不敢下手,完全懵圈了,整整2个月,才明白我想要什么。我要网关,网关,一个汇集家中所有315、433RF的集中网关,并可对部分终端发送指令的网关,是智慧家居整体控制的一个hub。理论上,RF网关有一个就够了,其他遥控器是“随手而控”的一个组成。
技术路线选择,ESP8266+Arduino,315或433超再生收发模块,RF网关支持学习编码。
开始:组装RF网关,耗时3天,中途差点放弃,很多坑。首先需要感谢前辈们的教程和提供的免费应用。
受到刺激与鼓舞的前辈:https://bbs.hassbian.com/thread-6132-1-1.html
Arduino教程:https://www.geek-workshop.com/thread-2719-1-1.html
RF网关教程:https://bbs.hassbian.com/thread-894-1-1.html
RF网关项目:https://docs.openmqttgateway.com/
   选择的版本是,OpenMQTTGateway v0.9.2,主程序是CODE-OpenMQTTGateway-V092.zip,库文件是ESP8266_OpenMQTTGateway_V092_RF.zip
小度接入homeassistant项目:https://ljr.im/articles/plugin-smart-speaker-connected-to-home-assistant-integration-plus/。之前已经接入homeassistant,之所以再次感谢,我觉得智慧音箱是智慧家居的最重要控制入口,简洁、方便,并且越来越成熟。我现在是每个房间一个小度play音箱,几十块钱解决的却是核心的用户体验。
现在的半成品,看起来非常简单的,成本不高,也不需要多么强的动手能力。本质上就是一个ESP8266+RF收发模块,没有其他的了
rf网关.jpg
过程,就是https://bbs.hassbian.com/thread-894-1-1.html这个教程,一步一步做下来就好了。基本步骤是,
1、ESP-01刷机-基本系统,
   电脑端安装Arduino IDE,参照前面列出的教程
   Arduino IDE中增加8266开发版
   ESP8266刷Arduino系统,可参照前面我列出的教程
2、ESP-01刷机-RF网关,
   下载OpenMQTTGateway,参考前面的教程和连接,或是直接参考https://docs.openmqttgateway.com/upload/arduino-ide.html
   下载RF库文件,解压缩,并放在Arduino IDE默认库文件夹位置
   打开电脑端Arduino IDE,并加载OpenMQTTGateway主文件,main.ino
   修改user_config.h,启用RF,并配置wifi和mqtt
   修改config_RF.h,配置mqtt主题
   连接ESP-01,刷机。Arduino IDE“上传”
3、测试,
   找一个315的遥控器,按遥控器按钮,应该在MQTT的监视窗口看见遥控器发出的RF编码
ESP-01刷机成功。
遇到的几个坑,
1、刷应用的过程中,找不到相关的库:之前完全没有使用过Arduino,没有下载RF库文件
2、测试的时候,完全没有反应,不知道问题出在哪里:其实要实现RF网关功能,逻辑上分为两部分,即Arduion8266wifi。测试的时候,ESP-01放置在面包板上,脱离了串口,在电脑Arduino IDE窗口看不到任何情况,不知道是Arduino出问题了,还是8266wifi出问题了。动手改装8266的串口烧录器,引出RF315接收模块所需要的三棵线,然后在USB上直接测试
改串口烧录器.jpg
结果一看,wifi,mqtt配置都有问题。在user_config.h修改,重新刷机
3、Ardino IDE串口窗口观察正常了,但mqtt监视页面还是没有反应。原来接收模块是433的,换成与遥控器匹配的315
4、距离太短,剪一棵25cm的电线,焊在315模块的外接天线位置,立即解决
5、发射模块调试的时候,一切正常,就是我家里的遥控灯没反应。homeassistant的configuration.yaml中mqtt主题配置不对,重新配置。正确主题在Arduino下,config_RF.h库中的字段,拷贝过来就行了
rf主题配置.png
6、还不行,原先编码是带“”的字符,改为数字,通过

将全家86型遥控开关接入homeassistant:
全家已经配置了86型遥控开关,并都已经配有随意贴遥控器,可实现主开关点动开灯或者关灯,以及随意贴点动开灯或是关灯。希望这些遥控开关,通过rf网关接入HA,实现自动控制。
前提,86型遥控开关是315或433无线模式,并且主开关需要具备学习遥控编码能力,以及主开关可以配置某个随意贴点动开/关灯、只是开灯、只是关灯的能力。
自定义每个灯的开关灯RF编码,并与每个灯的主控开关配对。需要配置成“开灯码”只开灯,“关灯码”只关灯。
homeassistant的configuration.yaml的配置:(如果是OMG0.9.5版,此处配置有变。请参看#45楼)
switch:
  - platform: mqtt
    name: "主卧开关灯"
    state_topic: "home/OpenMQTTGateway/433toMQTT" # defined by subjectGTWRFtoMQTT in User_config.h
    command_topic: "home/OpenMQTTGateway/commands/MQTTto433_1" #发射的命令,如果没有反馈请更换后面的数字
    payload_on: 123456 #自己编制,并已经与遥控接收端匹配的开灯码
    payload_off: 654321 #自己编制,并已经与遥控接收端匹配的开灯码
    optimistic: false
    retain: true

  - platform: mqtt
    name: "次卧开关灯"
    state_topic: "home/OpenMQTTGateway/433toMQTT" # defined by subjectGTWRFtoMQTT in User_config.h
    command_topic: "home/OpenMQTTGateway/commands/MQTTto433_1" #发射的命令,如果没有反馈请更换后面的数字
    payload_on: 2654321 #自己编制,并已经与遥控接收端匹配的开灯码
    payload_off: 2123456 #自己编制,并已经与遥控接收端匹配的开灯码
    optimistic: false
    retain: true
homeassistant主页面这个样子
homeassistant.png
配置小度音箱:havcs.yaml
switch.zhu_wo_kai_guan_deng:
  havce_device_name: 主卧灯
switch.ci_wo_kai_guan_deng:
  havce_device_name: 次卧灯
将配置带入homeassistant
havcs.png
小度自动发现设备
小度中将新设备配置到位置:“主卧室”、“次卧室”
在主卧室呼唤小度音箱,小度小度开灯
在次卧室呼唤小度音箱,小度小度开灯


尚未解决的问题
问题:
1、这个发射模块总是装死。隔一段时间没有发射命令,homeassistant中发布开关灯命令,mqtt也是发出去了,但是灯没有反应。不知道是不是315发射模块有问题。
2、面包板上的电源部分和8266部分好热啊,这是怎么回事啊
3、最严重的问题,这家庭的315(或是433)通信在裸奔啊,不知道哪天门口一个坏人就把我家的灯打开了,我的门磁系统可以被假冒啊。如果不使用滚码加密,哪位大神有什么加密措施吗?


下一步,买一堆的无线门磁



回复

使用道具 举报

4

主题

255

帖子

2137

积分

金牌会员

Rank: 6Rank: 6

积分
2137
金钱
1882
HASS币
0
发表于 2020-1-7 19:50:18 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

7

主题

181

帖子

2162

积分

金牌会员

Rank: 6Rank: 6

积分
2162
金钱
1981
HASS币
0
发表于 2020-1-8 15:36:12 | 显示全部楼层
学习下8266射频接入,准备试试
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2020-1-8 16:01:47 | 显示全部楼层
1、估计还是串口读写错误造成的(主要是接收到的数据读取,不是数据有误,而是如何截断和丢弃)
3、这玩意真有这个问题,自己的rf网关经常就能接收到未知rf信号,如果按照这信号再发出去,估计不知哪里会发生什么
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-1-8 20:39:35 | 显示全部楼层
本帖最后由 姚远 于 2020-1-11 02:09 编辑
netsnake 发表于 2020-1-8 16:01
1、估计还是串口读写错误造成的(主要是接收到的数据读取,不是数据有误,而是如何截断和丢弃)
3、这玩意 ...

原先不知道,这看到数据之后就睡不着觉了。我的86型遥控开关是买来的成品,这说明千家万户的“智能开关”都可能是裸奔着呢。
而且我做完之后发现,RF网关,在这些前辈们不懈努力下,并不难实现,至少远比树莓派和ESP8266的学习要简单得多得多啊。太可怕了
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-1-8 20:43:50 | 显示全部楼层
xlsj519 发表于 2020-1-8 15:36
学习下8266射频接入,准备试试

做成之后回头看,这个RF网关实现很简单的。我之前之所以不敢动手,就是那个Arduino不敢碰,又看到网上各式方案,把自己给吓住了。毕竟我是太小白了,一点开发基础都没有
回复

使用道具 举报

17

主题

760

帖子

5278

积分

论坛元老

Rank: 8Rank: 8

积分
5278
金钱
4513
HASS币
0
发表于 2020-1-8 20:47:41 | 显示全部楼层
感谢分享。
我家里没有315的,只有一部分433,直接用SONOFF的RF BRIDGE搞定了- -
ESP8266主要是插电麻烦,所以基本能走小米电池的设备就走小米电池的,其次才是ESP8266以及RF
433主要用来作为小米电池传感器的预备,又时候碰到小米掉线时候作为后备使用。。
RF还是尽量不要用来作为操作的指令,只当作传感器来说还可以,不过主设备还是尽量ZIGBEE这种设备吧
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
 楼主| 发表于 2020-1-8 20:56:17 | 显示全部楼层
sirakawa 发表于 2020-1-8 20:47
感谢分享。
我家里没有315的,只有一部分433,直接用SONOFF的RF BRIDGE搞定了- -
ESP8266主要是插电麻烦, ...

那个zigbee太贵了。你大多数都是走的zigbee?所以家里wifi还撑得住?我是华为路由器,现在最多在线12个wifi终端。再多,就不知道什么时候哪个会掉线了。看来智能家居的技术还是不完整啊
回复

使用道具 举报

17

主题

760

帖子

5278

积分

论坛元老

Rank: 8Rank: 8

积分
5278
金钱
4513
HASS币
0
发表于 2020-1-8 21:33:52 | 显示全部楼层
姚远 发表于 2020-1-8 20:56
那个zigbee太贵了。你大多数都是走的zigbee?所以家里wifi还撑得住?我是华为路由器,现在最多在线12个wi ...

我zigbee和wifi都走
zigbee大概负载在个小米网关+1个zigbee2mqtt。
wifi单独一个k2p刷华硕之后独立网段,目前30多个wifi的很稳定。
华为的家用产品挺差的。。换个把。。

很多我之所以买小米的zigbee,主要就是zigbee的电池设备,可以随便粘,电池可以2年,小米的外观也不错价格也是最便宜的。还有就是接入省事。。。
回复

使用道具 举报

65

主题

853

帖子

3038

积分

论坛元老

Rank: 8Rank: 8

积分
3038
金钱
2180
HASS币
40
发表于 2020-1-10 12:46:42 | 显示全部楼层
DIY RF之前有玩过,后来也是因为存在同样的问题,考虑到坑比较多,果断放弃了,现在转蓝牙阵营
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 11:05 , Processed in 0.060868 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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