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

标题: 315RF网关接入homeassistant和小度音箱 [打印本页]

作者: 姚远    时间: 2020-1-7 14:16
标题: 315RF网关接入homeassistant和小度音箱
本帖最后由 姚远 于 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收发模块,没有其他的了
[attach]20312[/attach]
过程,就是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上直接测试
[attach]20313[/attach]
结果一看,wifi,mqtt配置都有问题。在user_config.h修改,重新刷机
3、Ardino IDE串口窗口观察正常了,但mqtt监视页面还是没有反应。原来接收模块是433的,换成与遥控器匹配的315
4、距离太短,剪一棵25cm的电线,焊在315模块的外接天线位置,立即解决
5、发射模块调试的时候,一切正常,就是我家里的遥控灯没反应。homeassistant的configuration.yaml中mqtt主题配置不对,重新配置。正确主题在Arduino下,config_RF.h库中的字段,拷贝过来就行了
[attach]20314[/attach]
6、还不行,原先编码是带“”的字符,改为数字,通过

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

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


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


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




作者: lai95588    时间: 2020-1-7 19:50
谢谢楼主分享

作者: xlsj519    时间: 2020-1-8 15:36
学习下8266射频接入,准备试试
作者: netsnake    时间: 2020-1-8 16:01
1、估计还是串口读写错误造成的(主要是接收到的数据读取,不是数据有误,而是如何截断和丢弃)
3、这玩意真有这个问题,自己的rf网关经常就能接收到未知rf信号,如果按照这信号再发出去,估计不知哪里会发生什么

作者: 姚远    时间: 2020-1-8 20:39
本帖最后由 姚远 于 2020-1-11 02:09 编辑
netsnake 发表于 2020-1-8 16:01
1、估计还是串口读写错误造成的(主要是接收到的数据读取,不是数据有误,而是如何截断和丢弃)
3、这玩意 ...

原先不知道,这看到数据之后就睡不着觉了。我的86型遥控开关是买来的成品,这说明千家万户的“智能开关”都可能是裸奔着呢。
而且我做完之后发现,RF网关,在这些前辈们不懈努力下,并不难实现,至少远比树莓派和ESP8266的学习要简单得多得多啊。太可怕了
作者: 姚远    时间: 2020-1-8 20:43
xlsj519 发表于 2020-1-8 15:36
学习下8266射频接入,准备试试

做成之后回头看,这个RF网关实现很简单的。我之前之所以不敢动手,就是那个Arduino不敢碰,又看到网上各式方案,把自己给吓住了。毕竟我是太小白了,一点开发基础都没有
作者: sirakawa    时间: 2020-1-8 20:47
感谢分享。
我家里没有315的,只有一部分433,直接用SONOFF的RF BRIDGE搞定了- -
ESP8266主要是插电麻烦,所以基本能走小米电池的设备就走小米电池的,其次才是ESP8266以及RF
433主要用来作为小米电池传感器的预备,又时候碰到小米掉线时候作为后备使用。。
RF还是尽量不要用来作为操作的指令,只当作传感器来说还可以,不过主设备还是尽量ZIGBEE这种设备吧

作者: 姚远    时间: 2020-1-8 20:56
sirakawa 发表于 2020-1-8 20:47
感谢分享。
我家里没有315的,只有一部分433,直接用SONOFF的RF BRIDGE搞定了- -
ESP8266主要是插电麻烦, ...

那个zigbee太贵了。你大多数都是走的zigbee?所以家里wifi还撑得住?我是华为路由器,现在最多在线12个wifi终端。再多,就不知道什么时候哪个会掉线了。看来智能家居的技术还是不完整啊
作者: sirakawa    时间: 2020-1-8 21:33
姚远 发表于 2020-1-8 20:56
那个zigbee太贵了。你大多数都是走的zigbee?所以家里wifi还撑得住?我是华为路由器,现在最多在线12个wi ...

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

很多我之所以买小米的zigbee,主要就是zigbee的电池设备,可以随便粘,电池可以2年,小米的外观也不错价格也是最便宜的。还有就是接入省事。。。
作者: plutosherry    时间: 2020-1-10 12:46
DIY RF之前有玩过,后来也是因为存在同样的问题,考虑到坑比较多,果断放弃了,现在转蓝牙阵营
作者: 姚远    时间: 2020-1-11 02:14
plutosherry 发表于 2020-1-10 12:46
DIY RF之前有玩过,后来也是因为存在同样的问题,考虑到坑比较多,果断放弃了,现在转蓝牙阵营 ...

你说的太对了,我最近在看蓝牙mesh,但网上教程太少了,示例也非常少。但是我感觉传感器接入可能蓝牙会对环境影响小一些,能够mesh就更方便了。只是,太贵了。我是搞财务的,我给自己选方案的原则就是一定要足够便宜
作者: 姚远    时间: 2020-1-11 02:17
sirakawa 发表于 2020-1-8 21:33
我zigbee和wifi都走
zigbee大概负载在个小米网关+1个zigbee2mqtt。
wifi单独一个k2p刷华硕之后独立网段, ...

原先以为10几个wifi就不能再连上新设备了,被你刺激到了,一下子就闯进路由器试验中了,刚买了2套AC+AP路由器组合,看看能撑住多少台wifi端点
作者: plutosherry    时间: 2020-1-11 10:48
姚远 发表于 2020-1-11 02:17
原先以为10几个wifi就不能再连上新设备了,被你刺激到了,一下子就闯进路由器试验中了,刚买了2套AC+AP路 ...

呃。。。。好路由可以接入的点数也要多些,不会出现假WIFI情况(术语叫WIFI拒绝服务,主要表现为SSID存在但无法连接上,甚至会提示WIFI密码错误)。我用的AX88U+AC68U组mesh全房覆盖,关闭smartconnect,家用移动设备用5G,智能家居设备用2.4G,信号分离很稳。但目前有看到homeassistant.io坛子有洋人说建议采取不同局域网(不同VLAN)来组建,目前没有太多精力折腾,也许趁过年期间试试。
另外zigbee相对于蓝牙区别在于支持自适应组网方式,覆盖范围会更广,另一方面主要是功耗也会相对要低些,不过我现在基本也是混用模式,米家套件用的zigbee,后来出的米家pro版的温湿度传感器也只支持蓝牙接入,就用ESP32搞了个BLE采集后传到HA中,省去了换米家万能网关的银子
作者: sirakawa    时间: 2020-1-11 23:38
plutosherry 发表于 2020-1-11 10:48
呃。。。。好路由可以接入的点数也要多些,不会出现假WIFI情况(术语叫WIFI拒绝服务,主要表现为SSID存在 ...

vlan太折腾,而且也不用旗舰路由,弄个一般7621a的这种,关了5g,2.4g专心给智能设备就好
然后路由独立网段,作为主路由的子路由就好
作者: plutosherry    时间: 2020-1-13 10:27
sirakawa 发表于 2020-1-11 23:38
vlan太折腾,而且也不用旗舰路由,弄个一般7621a的这种,关了5g,2.4g专心给智能设备就好
然后路由独立网 ...

说的也是,从物理上分离路由器设备,然后在主路由上把路由打通就好呢。
作者: peter5858    时间: 2020-2-2 10:34
本帖最后由 peter5858 于 2020-2-2 10:37 编辑

你好,现在新程序需要ArduinoJson 6 的才可以编译,哪里有下载ArduinoJson 6 呢?谢谢!!
-----上面的问题已解决,ArduinoJson库需要退回到ArduinoJson v5就没问题----------
现在的问题是RF库不知道用那个RCSwitch 在网上找了一个始终不对,楼主能否上传个RCSwitch库文件呢?谢谢!!


在请问下下面的设置,是需要那个功能就开那个功能对吗?

/*-------------DEFINE THE MODULES YOU WANT BELOW----------------*/
//Addons and module management, comment the Z line

#define ZgatewayRF     "RF"       //ESP8266, Arduino, ESP32
//#define ZgatewayIR     "IR"       //ESP8266, Arduino,         Sonoff RF Bridge
//#define ZgatewayLORA   "LORA"       //ESP8266, Arduino, ESP32
//#define ZgatewayPilight "Pilight" //ESP8266, Arduino, ESP32
//#define ZgatewayBT     "BT"       //ESP8266, ESP32
//#define ZgatewayRF2    "RF2"      //ESP8266, Arduino, ESP32
//#define ZgatewaySRFB   "SRFB"     //                          Sonoff RF Bridge
//#define Zgateway2G     "2G"       //ESP8266, Arduino, ESP32
//#define ZgatewayRFM69  "RFM69"    //ESP8266, Arduino, ESP32
//#define ZactuatorONOFF "ONOFF"    //ESP8266, Arduino, ESP32,  Sonoff RF Bridge
//#define ZsensorINA226  "INA226"   //ESP8266, Arduino, ESP32
//#define ZsensorHCSR501 "HCSR501"  //ESP8266, Arduino, ESP32,  Sonoff RF Bridge
//#define ZsensorADC     "ADC"      //ESP8266, Arduino, ESP32
//#define ZsensorBH1750  "BH1750"   //ESP8266, Arduino, ESP32
//#define ZsensorTSL2561 "TSL2561"  //ESP8266, Arduino, ESP32
//#define ZsensorBME280  "BME280"   //ESP8266, Arduino, ESP32
//#define ZsensorDHT     "DHT"      //ESP8266, Arduino, ESP32,  Sonoff RF Bridge
//#define ZsensorGPIOKeyCode "GPIOKeyCode" //ESP8266, Arduino, ESP32
//#define ZsensorGPIOInput "GPIOInput" //ESP8266, Arduino, ESP32


作者: 姚远    时间: 2020-2-2 19:28
peter5858 发表于 2020-2-2 10:34
你好,现在新程序需要ArduinoJson 6 的才可以编译,哪里有下载ArduinoJson 6 呢?谢谢!!
-----上面的问题 ...

没太明白你遇到啥问题了。
其实我是一个纯纯的小白,完全是按照教程走。你就按照我列出来的连接,全部下载下来就可以了,没有什么特殊的库了,我也没有做过任何改动。这里最麻烦的是两个文件都要设置,你按照我那个步骤一步一步走下来应该没有问题的。
用哪个功能,就把那个//拿掉就可以了。有些功能之间可能冲突,只需要注意外部端口没有冲突,这里的功能应该就不冲突了。另外,同一个功能,使用Arduino或ESP,可能需要起效的语句不一样,别搞错了。
作者: peter5858    时间: 2020-2-2 19:35
姚远 发表于 2020-2-2 19:28
没太明白你遇到啥问题了。
其实我是一个纯纯的小白,完全是按照教程走。你就按照我列出来的连接,全部下 ...

谢谢回复,其他的都搞定了就是打开需要的功能后编译就报错,现在刷的是作者编译好了的二进制固件,刷机后设置都可以了,手上没433的设备,等初15后去购买原件,回来在试试,谢谢!!!
作者: 姚远    时间: 2020-2-2 20:10
peter5858 发表于 2020-2-2 19:35
谢谢回复,其他的都搞定了就是打开需要的功能后编译就报错,现在刷的是作者编译好了的二进制固件,刷机后 ...

我记得开始的时候好像也是有些错误,应该是改那两个文件没有改对。后面我就自己记下了这个教程,刷了4个了再也没有出过错。我不太懂技术,对Arduino也不想太多研究。我是按照自己的这个教程只改了这两个文件,其他都没有动。现在唯一的问题就是wifi刷不对,我是用Arduino IDE示例中8266 wifi advance再刷一次wifi就行了。两个文件是user_config.h和config_RF.h(我只用了RF,所以只改了这个文件)。
其实你把Arduino IDE中的port口打开,就能观察到是什么问题,启动后wifi、编码什么的,都能看到。433只是实际发射或接收。我一般是在port口看着都没问题了,433再没有反应,我就认为是433那里出问题了。
我刷的是ESP-01,我现在只使用了RF。因为门磁433信号太弱,所以我是每个房间放了一个,塞在一个角落里或是柜子上面看不到的地方。蓝牙目前需求不大,红外对位置有些要求,所以一个ESP只做一个功能。目前看,还是稳定。
作者: peter5858    时间: 2020-2-2 21:21
姚远 发表于 2020-2-2 20:10
我记得开始的时候好像也是有些错误,应该是改那两个文件没有改对。后面我就自己记下了这个教程,刷了4个 ...

好的,我在认真看看你的步骤和源程序,谢谢!!
作者: peter5858    时间: 2020-2-3 12:40
请问下,我下面的消息应该是链接成功了。
[12:33:44]omgStatusDiscovery
[12:33:44]Pub json into:
[12:33:44]homeassistant/binary_sensor/5CCF7F06FB29/config
[12:33:44]{"stat_t":"home/OpenMQTTGateway_ESP8266_RF/LWT","name":"OpenMQTTGateway_ESP8266_RF","uniq_id":"5CCF7F06FB29","dev_cla":"connectivity","pl_on":"online","pl_off":"offline","pl_avail":"online","pl_not_avail":"offline","device":{"name":"OpenMQTTGateway_ESP8266_RF","manufacturer":"OMG_community","sw_version":"0.9.2","identifiers":["5CCF7F06FB29"]}}
[12:33:44]gatewayRFDiscovery
[12:33:44]CreateDiscoverySensor
[12:33:44]gatewayRF
[12:33:44]Pub json into:
--------------------------
esp8266模块上接433的发射和接收模块 ,这样就是一套系统,请问下,怎么配对呢?受控的设备又怎么和这个系统配对呢?谢谢哈,一点基础都没有,所以请教下。
作者: 姚远    时间: 2020-2-3 13:13
peter5858 发表于 2020-2-3 12:40
请问下,我下面的消息应该是链接成功了。
[12:33:44]omgStatusDiscovery
[12:33:44]Pub json into:

拿到433或是315,你马上就知道了。
1 先找编码:使用你新买的433或315的接收模块。你先找一个现有的遥控开关,按开关,你的现有受控设备就会有反应。与此同时,你在mqtt监控中就可以看到这串编码。记下编码。遥控器实质上就是发出了一串编码,并被你的接收模块接收到了。
2 控制,使用你新买的433或是315的发射模块:你在mqtt中,发布刚才的编码。你会看到受控设备应该有相应的反应。
3 纳入hass中,编写configuration.yaml。switch,接收,发射。
4 如果你的受控设备支持编码学习,你就可以自己编码,发射,受控端学习编码。你现在就是使用新增的433或315,独立控制设备了。
这些需要你拿到发射模块和接收模块之后,具体实践,马上就清楚了
作者: peter5858    时间: 2020-2-3 17:04
姚远 发表于 2020-2-3 13:13
拿到433或是315,你马上就知道了。
1 先找编码:使用你新买的433或315的接收模块。你先找一个现有的遥 ...

哦,我是买的433MHz ASK发射模块|超外差接收模块 STX882+SRX882+铜质弹簧天线,是看官网上推荐的型号,应该不会有问题哦,谢谢你!
作者: peter5858    时间: 2020-2-27 18:29
请问下,调试时,看接收码是用串口助手调试看接收码吗?谢谢!
作者: 姚远    时间: 2020-2-28 08:44
peter5858 发表于 2020-2-27 18:29
请问下,调试时,看接收码是用串口助手调试看接收码吗?谢谢!

超级简单,没啥调试的。我用的是esp01,刷机用了串口转换板,所以在转换板上把接收用的引脚引出来,然后在Arduino IDE的端口窗口观察是否可接受。真正调试的时候,不要看这个端口输出,里面什么都有,太乱。在mqtt端口看,那才是你是否可以接进来的数据,很干净的码。然后按照这个码做发射码就可以了。mqtt查看命令:
mosquitto_sub -t "#" -v -u mqtt用户名 -P mqtt密码 -h 主机ip

作者: peter5858    时间: 2020-2-28 09:49
本帖最后由 peter5858 于 2020-2-28 09:51 编辑
姚远 发表于 2020-2-28 08:44
超级简单,没啥调试的。我用的是esp01,刷机用了串口转换板,所以在转换板上把接收用的引脚引出来,然后 ...
我的RF模块买成433的了,家里又没433的遥控,汗!!由只有去买315的
是在终端上输入上面的命令吗?我ha装在群晖上的

作者: peter5858    时间: 2020-2-28 10:49
姚远 发表于 2020-2-28 08:44
超级简单,没啥调试的。我用的是esp01,刷机用了串口转换板,所以在转换板上把接收用的引脚引出来,然后 ...

MQTT客户端软件是用的那个呢?能否发一个给我,谢谢!!!
邮箱 :[email protected]
作者: 姚远    时间: 2020-2-28 10:56
peter5858 发表于 2020-2-28 09:49
我的RF模块买成433的了,家里又没433的遥控,汗!!由只有去买315的
是在终端上输入上面的命令吗?我ha装在 ...

兄弟,看来你hass中没有安装配置mqtt啊。这样可是用不了的,这个gateway是通过mqtt与hass交互的。mqtt是hass一个标准配置。
这个命令是在hass主机窗口输入的,用来监视所有发出或传入hass的mqtt主题。你安装配置好了mqtt,这个命令才能使用。
作者: peter5858    时间: 2020-2-28 11:12
姚远 发表于 2020-2-28 10:56
兄弟,看来你hass中没有安装配置mqtt啊。这样可是用不了的,这个gateway是通过mqtt与hass交互的。mqtt ...

我才接触,好多不懂,ha里装了mqtt,不知道在hass主机窗口是那个,能裁个图吗?谢谢
作者: 姚远    时间: 2020-2-28 12:57
peter5858 发表于 2020-2-28 11:12
我才接触,好多不懂,ha里装了mqtt,不知道在hass主机窗口是那个,能裁个图吗?谢谢 ...
  1. # 配置mqtt
  2. mqtt:
  3.    broker: 192.168.3.3
  4.    port: 1883
  5.    username: ha123456                                         # 自己设置的mqtt用户名
  6.    password: ha123456                                         # 自己设置的mqtt,“ha123456”用户的密码
  7.    discovery: true

  8. # 配置家中315开关
  9. switch:
  10.   - platform: mqtt
  11.     name: "主卧开关灯"
  12.     state_topic: "home/OpenMQTTGateway/433toMQTT"                 # defined by subjectGTWRFtoMQTT in User_config.h
  13.     command_topic: "home/OpenMQTTGateway/commands/MQTTto433_1"    # 使用协议 1
  14.     payload_on: 123456                                            # 自己编制,并已经与遥控接收端匹配的开灯码
  15.     payload_off: 123457                                           # 自己编制,并已经与遥控接收端匹配的关灯码
  16.     optimistic: false
  17.     retain: true
复制代码
hass发送代码测试
[attach]21307[/attach]
mqtt监听(主机上执行监听命令)可以看到的
[attach]21308[/attach]
加上315发射模块,并且发射成功,是这样的
[attach]21309[/attach]
是否真有效,就看你的灯是不是开了

作者: peter5858    时间: 2020-2-28 13:13
姚远 发表于 2020-2-28 12:57
hass发送代码测试

mqtt监听(主机上执行监听命令)可以看到的

谢谢,试试看我能行不。
作者: peter5858    时间: 2020-2-28 18:14
姚远 发表于 2020-2-28 12:57
hass发送代码测试

mqtt监听(主机上执行监听命令)可以看到的


                               
登录/注册后可看大图

在麻烦下這个窗口在哪里看呢?
我开启shh也没看见什么数据,我太笨了,都不好意思了。
作者: peter5858    时间: 2020-3-12 11:31
本帖最后由 peter5858 于 2020-3-12 11:34 编辑

朋友请帮我看看,搞了好多天终于明白了些,现在就是在ha里按按键不能控制设备,看看我的哪里不对。按遥控在MQTT里能看见遥控码,用mqtt里的码填在配置里还是设备不能控制,都不知道怎么做了,能指点下吗?谢谢!1
配置的按钮
[attach]21604[/attach]
MQTT监控
[attach]21606[/attach]

配置文件,里面的遥控码修改成了我自已的
  1. switch:
  2.   - platform: mqtt
  3.     name: "第一个"
  4.     state_topic: "home/OpenMQTTGateway/433toMQTT" # defined by subjectGTWRFtoMQTT in User_config.h
  5.     command_topic: "home/OpenMQTTGateway/commands/MQTTto433_1" #发射的命令,如果没有反馈请更换后面的数字
  6.     payload_on: 14102482   #自己编制,并已经与遥控接收端匹配的开灯码
  7.     payload_off: 14102482   #自己编制,并已经与遥控接收端匹配的开灯码
  8.     optimistic: false
  9.     retain: true

  10.   - platform: mqtt
  11.     name: "次卧开关灯"
  12.     state_topic: "home/OpenMQTTGateway/433toMQTT" # defined by subjectGTWRFtoMQTT in User_config.h
  13.     command_topic: "home/OpenMQTTGateway/commands/MQTTto433_1" #发射的命令,如果没有反馈请更换后面的数字
  14.     payload_on: 2654321 #自己编制,并已经与遥控接收端匹配的开灯码
  15.     payload_off: 2123456 #自己编制,并已经与遥控接收端匹配的开灯码
  16.     optimistic: false
  17.     retain: true
复制代码











作者: 姚远    时间: 2020-3-15 21:58
peter5858 发表于 2020-3-12 11:31
朋友请帮我看看,搞了好多天终于明白了些,现在就是在ha里按按键不能控制设备,看看我的哪里不对。按遥控在 ...

搞定了吗?没太看明白。你一步一步测试
1 接收
  1.1 实物遥控器-->OMG-->mqtt监控:实物遥控器发射,看mqtt监控,应该看见编码。
  1.2 mqtt-->hass:hass页面应该看到开关状态的变化。如果有问题,一般是configuration.ymal配置问题。
2 发射
  2.1 hass-->mqtt:hass页面开或关,mqtt监控应该能看得见
  2.2 mqtt-->OMG-->被控制实物:如果有问题,首先看发射模块,要有天线,否则距离特别短;如果还有问题,一般就是configuration.yaml的command这行的问题。
你是都不能控制吗?估计你command这行有问题。你看看Arduino中rf文件里面怎么配置的,就是我前面中的第5条
作者: peter5858    时间: 2020-3-15 22:13
本帖最后由 peter5858 于 2020-3-15 22:15 编辑
姚远 发表于 2020-3-15 21:58
搞定了吗?没太看明白。你一步一步测试
1 接收
  1.1 实物遥控器-->OMG-->mqtt监控:实物遥控器发射,看m ...

谢谢你,基本搞好了,按照你的配置怎么都不对,
state_topic: "home/OpenMQTTGateway/commands/MQTTto433_1"没办法就去官网看说明,COPY它的配置

state_topic: "home/OpenMQTTGateway/commands/MQTTto433",就对了,另外请教下,如果家里要安装几个這个应该怎么配置网关呢,我用2个就用不了,把另外个网关名字改了下,也只能用一个。

作者: 姚远    时间: 2020-3-15 22:24
peter5858 发表于 2020-3-15 22:13
谢谢你,基本搞好了,按照你的配置怎么都不对,
state_topic: "home/OpenMQTTGateway/commands/MQTTto433_ ...

官网说有个版本可以配置成类似于mesh方式,我始终没有配置成功。我现在有一部分接收是433,接收距离特别短,所以一房间配置了一个。就把这个房间可以接收的设备都配到这个gate上就行了。即使某个gateway也能接收到其他房间的设备,不用管他。
你就想想315(或433)这东西是广播模式,gateway就是一个发射器,你配置一个gateway对应到那些具体设备就行了
作者: peter5858    时间: 2020-3-16 09:18
姚远 发表于 2020-3-15 22:24
官网说有个版本可以配置成类似于mesh方式,我始终没有配置成功。我现在有一部分接收是433,接收距离特别 ...

大楷明白了,也就是315或者433也只能配置一个,对吧!如果要多个就必须做成mesh方式,就好像路由的AP样才可以,可以这样理解吗?
作者: 姚远    时间: 2020-3-16 19:53
peter5858 发表于 2020-3-16 09:18
大楷明白了,也就是315或者433也只能配置一个,对吧!如果要多个就必须做成mesh方式,就好像路由的AP样才 ...

差不多吧。举个例子,我有三个房间,每个房间都有433传感器设备和315开关。433的传感器接收只能在各自房间才能收到信号,315则是可以收发所有房间的信号。
需要配置4个gateway,1个315收发,3个433收发。315收发放在客厅里,433收发放到各个房间。hass配置configuration.yaml时,则是315gateway配置所有315的设备,433gateway配置各自房间的设备。
作者: peter5858    时间: 2020-3-16 21:38
本帖最后由 peter5858 于 2020-3-16 21:41 编辑
姚远 发表于 2020-3-16 19:53
差不多吧。举个例子,我有三个房间,每个房间都有433传感器设备和315开关。433的传感器接收只能在各自房 ...

我以前装修基本是买的成品(级联和博联),做这些都是玩,wifi的其实还简单得多,都玩过了,现在才学RF和IF的,先以为zigbee复杂结果比這个RF简单,玩过了就放一边了,
作者: 姚远    时间: 2020-3-16 22:15
peter5858 发表于 2020-3-16 21:38
我以前装修基本是买的成品(级联和博联),做这些都是玩,wifi的其实还简单得多,都玩过了,现在才学RF和I ...

其实你说的正是我考虑很长很长时间的问题。我的原则是,首先要足够便宜,成品太贵了,它会影响我最终完整方案的覆盖面。当然,所谓便宜就意味着要投入很大的精力,要填坑,整体成本可能会更高,但知识也在不断地积累。其次,要足够的灵活,不能被一根柱子困住自己。但也意味着跨知识领域,投入会更多。最关键的是,我的其中一个专业是IT规划,原先对于硬件、嵌入式、物联网链接、关系型数据库的整合、网络规划等等,都是理论的、架构的。通过家居智能化,理论联系实践,才感觉到这东西其实不难,过去都是被很多厂商忽悠了
另外,RF/IF本质上是广播,它没有wifi等完整的回馈,所以它的成本一定会更便宜、更简单、距离更远。只是我们一开始都按照wifi逻辑在面对它,所以才会到处是坑。而且网上的教程真的太杂了,忽悠的太多,这也是我把RF单独放出一个帖子的原因
作者: xzgs    时间: 2020-8-4 23:34
请楼主分享一下接线啊,文档里的不是EPS1.

另外超再生的接受模块电压是5V吗,有两个data PIN如何接线,多谢!
作者: 姚远    时间: 2020-8-5 13:50
xzgs 发表于 2020-8-4 23:34
请楼主分享一下接线啊,文档里的不是EPS1.

另外超再生的接受模块电压是5V吗,有两个data PIN如何接线,多 ...

本质上,只要和原项目中的GPIO号对上就OK的。[attach]24231[/attach]

作者: xzgs    时间: 2020-8-5 14:02
姚远 发表于 2020-8-5 13:50
本质上,只要和原项目中的GPIO号对上就OK的。

赞赞赞赞赞赞赞赞赞
作者: s08512180    时间: 2020-11-16 11:08
MARK备用,好像可以解决我的问题

作者: 姚远    时间: 2020-12-4 13:10
本帖最后由 姚远 于 2020-12-4 13:13 编辑

最近要配置一个ESP32板子,使用了OMG最新版0.9.5,发现只能接收不能发送。后来发现自从0.9.3版开始就有这个问题了。后来经过开发作者的指导,终于解决了。问题是由于现在的RF发射的payload,由原来的数字(比如 123456),修改为 {"value":123456}
相应的homeassistant的配置也改为了:
  1. switch:
  2.   - platform: mqtt
  3.     name: "警铃"
  4.     state_topic: "home/OpenMQTTGateway/commands/MQTTto433" # defined by subjectGTWRFtoMQTT in User_config.h
  5.     command_topic: "home/OpenMQTTGateway/commands/MQTTto433_1" #发射的命令,如果没有反馈请更换后面的数字
  6.     payload_on: '{"value":123456}'   #自己编制,并已经与遥控接收端匹配的开灯码
  7.     qos: "0"
  8.     retain: true
复制代码


如果你使用OMG0.9.3及其之后的版本,请予以注意

作者: 姚远    时间: 2020-12-19 13:22
本帖最后由 姚远 于 2020-12-19 13:30 编辑

新更新说明
之前一直使用这个OpenMQTTGateway(简称OMG),将家里的无线开关、门磁等接入homeassistant,还比较正常。最近给父母家配置无线开关和小米温湿度计2,重新配置OMG硬件和刷机固件。这次的变化主要有:
1. 小米温湿度计2需要使用蓝牙网关,增加蓝牙部分。所以选用了ESP32. 20块钱包邮到家,对比8266+蓝牙模块,既稳定又便宜,接线还少了很多
2. 部分OMG增加了DHT温湿度传感器
3. 官方OMG已经升级到0.9.5版本
4. 解决OMG经常没有反应问题
5. 解决传输距离太近的问题。发射可以整体房间一个发射模块就够用了,但是接收模块要一屋一个,太弱了。
硬件配置
1. ESP32 DEVKIT DOIT,30引脚。该模块包括了蓝牙。强烈提醒,最好不使用ESP01,经常假死机
2. RF433发射和接收模块:我给三个地方做了三套。略有不同
    一个OMG使用了CC1101,不推荐,有点复杂也有点贵。但是很紧凑
    两个使用了 H5V3M/H5V4D 接收模块,强烈推荐,接收距离非常远。要注意按照自己的相关开关或门磁,选对频率,是433还是315。发射模块无所谓,基本够用
3. DHT11,很便宜的模块,精度还是可以的


ESP32引脚图
[attach]26393[/attach]

CC1101引脚图
[attach]26394[/attach]


H5V4D(433)引脚图
[attach]26395[/attach]
硬件接线
请参考官方接线图:https://docs.openmqttgateway.com/setitup/rf.html#compatible-parts


刷机
刷机工具:二选一
  Arduino IDE :如果使用ESP01,则只能使用它来刷机。注意:需要下载对应的库文件。库文件不对时,刷机过程不一定报错,但后续使用排错很麻烦
  或 VSC PlatformIO ,推荐使用。如果加入了DHT温湿度传感器,最好使用 PlatformIO 刷机,Arduino IDE可能刷不过去。不需要下载库文件,刷机过程中会自动去匹配、下载、安装库文件。但是,对于我这样的小白,安装、配置和使用VSC PlatformIO有点小麻烦
下载刷机固件:https://github.com/1technophile/OpenMQTTGateway/releases
  1. 下载、解压缩刷机固件: Source code.zip 文件
2. 下载、解压缩库文件:如果使用VSC PlatformIO 刷机,则不需要此下载
        蓝牙相关的库:esp32dev-ble-libraries.zip
        RF相关的库:esp32dev-rf-libraries.zip
使用VSC PlatformIO工具刷机的方法
VSC 安装 PlatformIO IDE

使用PlatformIO IDE
1. 打开项目
在VSC PlatformIO中打开项目。
[attach]26397[/attach]


2. 打开 platformio.ino 文件
[attach]26399[/attach]


配置功能

官方配置说明:https://docs.openmqttgateway.com/upload/pio.html
1. 创建一个自定义的环境
[attach]26400[/attach]


2. 配置环境
  1. [env:esp32dev-ble-rf]
  2. platform = ${com.esp32_platform}
  3. board = esp32dev
  4. board_build.partitions = min_spiffs.csv
  5. lib_deps =
  6.   ${com-esp.lib_deps}
  7.   ${libraries.rc-switch}
  8.   ${libraries.ble}
  9.   ${libraries.dht}
  10.   ${libraries.unifiedsensor}
  11. build_flags =
  12.   ${com-esp.build_flags}
  13.   '-DZgatewayRF="RF"'
  14.   '-DZgatewayBT="BT"'
  15.   '-DLED_RECEIVE=2'
  16.   '-DLED_RECEIVE_ON=0'
  17.   '-DZsensorDHT="DHT"'
  18.   '-DGateway_Name="OpenMQTTGateway_ESP32_RF"'
复制代码
[attach]26401[/attach]

3. 配置User_config.h
[attach]26402[/attach]


PlatformIO IDE 编译、上传、端口监控
[attach]26403[/attach]

启用OMG
参考官方说明:https://docs.openmqttgateway.com ... witch-based-gateway
联机:wifi查找到名称为 “OpenMQTTGateway_ESP32_RF” 的网络,并连接。wifi密码是 your_password
配置wifi  mqtt


可在端口监控中看到整个过程,以及RF收发过程,和蓝牙接收数据,以及接收到的DHT11数据


homeassistant配置
参见官网配置示例:https://github.com/1technophile/ ... sistant.md#switches


效果
1. 小米温湿度计2,以及各蓝牙设备,顺利接入
2. DHT温湿度传感器,顺利接入
3. 启用官方0.9.5版本。之前只是使用到 0.9.3rc 版本,是因为发射时的内容改变,造成OMG无法发送。后来官方给出了正确方法,随即可以使用。https://community.openmqttgatewa ... -rf-fs1000a/1304/11
4. 解决OMG经常没有反应问题:是因为ESP01问题。我将ESP01 和 ESP32,都刷了0.9.5版,收发模块也都一样的情况下发现,ESP01配置的OMG对RF信号经常没有反应。而ESP32反应迅速,几乎没有丢失。所以,我全面弃用了ESP01
5. 解决传输距离太近的问题:使用CC1101,或是H5V4D,距离提升非常非常明显,100平米,一个网关就可以完全覆盖了

希望可以能给RF控制家电的朋友们提供到参考


作者: peter5858    时间: 2021-3-25 20:44
本帖最后由 peter5858 于 2021-3-26 10:34 编辑
姚远 发表于 2020-12-19 13:22
新更新说明
之前一直使用这个OpenMQTTGateway(简称OMG),将家里的无线开关、门磁等接入homeassistant,还 ...

你好!!请问下,在用户配置里WIFI和MQTT配置这些,可以不配置吗?等刷好固件联网后在配置,可以吗?还有就是怎么手动在PlatformIO IDE,里添加库,我在OpenMQTTGateway网站已下载了全部库文件,如果
可以手动添加就比PlatformIO快多了;还有就是,用源文件编译老报错

{        "resource": "/F:/PlatformIO/095/OpenMQTTGateway-0.9.5_1/OpenMQTTGateway-0.9.5/main/User_config.h",
        "owner": "C/C++",
        "code": "1696",
        "severity": 8,
        "message": "检测到 #include 错误。请更新 includePath。已为此翻译单元(F:\\PLATFORMIO\\095\\OPENMQTTGATEWAY-0.9.5_1\\OPENMQTTGATEWAY-0.9.5\\MAIN\\MAIN.INO.CPP)禁用波形曲线。",
        "source": "C/C++",
        "startLineNumber": 2,
        "startColumn": 1,
        "endLineNumber": 2,
        "endColumn": 72

}
不知道是不是库没安装好,还是怎么起的。
已搭了梯子的======================================
假如我直接下载esp32的相应固件是不是直接写入到板上在配网,这样断电后配置好像又回到原来的状态下了。這个该怎么解决呢?谢谢!!





作者: 姚远    时间: 2021-4-1 23:01
peter5858 发表于 2021-3-25 20:44
你好!!请问下,在用户配置里WIFI和MQTT配置这些,可以不配置吗?等刷好固件联网后在配置,可以吗?还有 ...

PlatformIO IDE几点说明啊,
1 这个不适用于ESP-01。我是都改用了ESP-32
2 不需要下载所有的库。PlatformIO IDE会根据它的ino文件中的配置自己去找相关的库,即使你下载了库,它也不会用,还是自己去找。我的经验是让它自己去找,因为有些库是改动过的,它自己找更准确
3 使用PlatformIO IDE,一般配置ino文件就可以了,其他不用去管它。这里特别要注意的是,要自己配置一段配置。就是“配置功能”部分的1、2部分。这个需要配置正确了。我没有使用缺省的配置,而是照猫画虎,自己新增了两个配置,然后把原先一些默认配置的对应内容抄了过来。
4 “配置功能”中的3 配置User_config.h,最好也配置了
5 wifi和mqtt都不需要配置,第一次启动的时候,找到对应的wifi,会强制打开浏览器192.168.4.1,在这个页面中配置就可以了。
6 你这个问题我没碰到过。但之前使用PlatformIO IDE出现各种莫名其妙的错误,直到我摸索出这个方法。这个方法还是很顺的,我已经刷了6块ESP-32了,非常顺
作者: peter5858    时间: 2021-4-2 16:50
本帖最后由 peter5858 于 2021-4-2 17:41 编辑
姚远 发表于 2021-4-1 23:01
PlatformIO IDE几点说明啊,
1 这个不适用于ESP-01。我是都改用了ESP-32
2 不需要下载所有的库。Platform ...

谢谢,一直跟着你的经验在搞,目前还是用的esp01做的网关,因为我只有几个控制点,关于PlatformIO IDE还没熟悉,编译的配置也是按照你上面图片的配置的,始终没成功,唯一成功了的就是几年前有位老大的3位开关带315-433RF那个编译成功了,我的那个visual感觉始终都在重复的下载东西样,还没搞懂,
作者: 姚远    时间: 2021-4-3 15:58
peter5858 发表于 2021-4-2 16:50
谢谢,一直跟着你的经验在搞,目前还是用的esp01做的网关,因为我只有几个控制点,关于PlatformIO IDE还没 ...

ESP01啊?那不能用PlatformIO,只能用Arduino 。如果使用这个,那就需要把库下载了。
所需库和版本,在platformio.ini文件里都列示出来了。你需要把Arduino库中已有的库去掉,然后将设置首选项中的库文件夹指向你下载解压后的文件夹。Arduino方式最烦人的就是库的文件夹指向。
他这个应用改了好几个库,一定要用下载的库,不要使用Arduino默认的库,尤其注意:
arduinojson = [email protected]
arduinolog = https://github.com/1technophile/Arduino-Log.git#d13cd80
pubsubclient = [email protected]
rc-switch = https://github.com/1technophile/rc-switch.git#385a7e0
wifimanager = https://github.com/tzapu/WiFiManager.git#c3ff582
作者: peter5858    时间: 2021-4-7 11:00
本帖最后由 peter5858 于 2021-4-7 17:32 编辑
姚远 发表于 2021-4-3 15:58
ESP01啊?那不能用PlatformIO,只能用Arduino 。如果使用这个,那就需要把库下载了。
所需库和版本,在pl ...

谢谢!arduino都搞定了,现在想学习下PlatformIO的编译,我在arduino下编译通过了的在PlatformIO里面就不行,只有慢慢来了。我用piltformio编译esp8266的通过了就是esp32的不行编译不过,不知道是哪里有问题。

作者: yangrusen    时间: 2024-4-22 09:56
挖个坟。请问楼主 OMG能不能做成分布式RF网关,就是感觉射频接收器偶尔有漏收开关信号,我排查完认为是信号的问题。如果能多做几个类似的网关,然后每个屋子放一个,就好了吧。但是这样会不会同时收到好几次射频信号,导致多次触发相关自动化?去重的机制有没有思路。
作者: 姚远    时间: 2024-5-1 00:39
yangrusen 发表于 2024-4-22 09:56
挖个坟。请问楼主 OMG能不能做成分布式RF网关,就是感觉射频接收器偶尔有漏收开关信号,我排查完认为是信号 ...

我是一个房间放一个,然后一个控制这个房间的几个设备或接收这个房间的传感器。差不多90平米做2个也可以
作者: qiang_lim    时间: 2024-5-1 11:39

多谢楼主分享。
作者: yangrusen    时间: 2024-5-1 14:39
姚远 发表于 2024-5-1 00:39
我是一个房间放一个,然后一个控制这个房间的几个设备或接收这个房间的传感器。差不多90平米做2个也可以 ...

找到了OMG论坛上的资料,说RF gateway可以射频信号去重,所以这样应该是可以的。其他类型的网关应该是不可以去重。
作者: 姚远    时间: 2024-5-10 16:54
yangrusen 发表于 2024-5-1 14:39
找到了OMG论坛上的资料,说RF gateway可以射频信号去重,所以这样应该是可以的。其他类型的网关应该是不 ...

其实RF模式,就是一个广播模式,没有握手反馈。OMG也不知道是不是发送成功了。所谓广播,就是都发一个信号,也是可以的




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5