Home Assistant 通过OpenMQTTGateway实现通过MQTT发送和接收红外指令。
之前我又篇文章介绍了如何使用ESPHome 来抓取和并发送红外代码,来实现用NodeMCU来制作一个万能遥控器,当时上一次的方法需要每次更新了红外代码都要刷新一次esp8266的固件才可以控制新设备或者修改设备代码,实现起来比较繁琐。
于是本文给大家带来OpenMQTTGateway方法来实现红外代码的学习和发送,OpenMQTTGateway是一个红外发送接收的中间件,这个中间件会把收到的任何格式的红外代码通过MQTT的形式发布到对应的主题上,这样我们就可以从mqtt服务器端直接看到收到的红外代码,并且取回后还可以通过发布到mqtt的commands主题实现让esp8266通过发射头发射信号出去,这样就可以简单的实现万能遥控功能。
OpenMQTTGateway支持很多形式的信号收发转mqtt,本文仅针对红外收发做描述。
首先我们下载固件并写入NodeMCU。 项目地址;https://github.com/1technophile/OpenMQTTGateway 在release页面下载最新nodemcuv2-ir-firmware.bin 然后我们再下载ESP8266刷固件程序 下载地址:https://github.com/marcelstoer/nodemcu-pyflasher/releases 将固件刷写到NodeMCU里,芯片会发射出一个信号,我们连接到信号,会自动弹出网页带大家到配置界面。 配置界面引导我们配置好WiFi信号和MQTT相关信息。
然后就是nodemcu的连线部分参考下图: 简单总结就是发射头接D0,接收头接D4
全部配置完毕后我们向接收头发送红外命令,从MQTT端可以看到收到json格式的数据内容,证明成功配置接收端。
发送数据部分我们要向 home/OpenMQTTGateway_ESP8266_IR/commands/MQTTtoIR 这个topic发送json格式的命令,即可从NodeMCU的发射头发送出去相应的红外代码。 NEC格式红外代码发送例子: SONY格式红外代码发送例子: RAW格式红外代码发送例子: 可以定义"repeat": N 在json内容中,来实现重复发送多少次,以防止命令丢失。
Home Assistant配置红外开关例子:
大佬你好,我按照你的教程做好了红外遥控器,本想用来遥控美的风扇的,但是发现美的风扇遥控器按了之后,接收头有闪烁反应,但是在MQTT里面并没有收到消息,请问这个该如何解决呢?我用了电视遥控器及淘宝卖的那种编程用的红外遥控器都可以收得到码,唯独美的风扇的收不到
您好,为什么 我的红外发射管会常亮???在负极串联了一个100Ω的电阻还是会常亮,在正极串联也会。现在RF测试基本成功了,现在红外一直没法发射。。。