本帖最后由 李丑男 于 2019-10-2 12:30 编辑
因为自己的新能源车需要充电,而厂商的APP里面连预约充电功能都没有完善,搞得我每次要充电,都是要用充电栓配的遥控器按一下,又因为把家里的电费设置成了峰谷计时的方式,为了省那么点钱,每次想充电时,都要在晚上10点时,再找出遥控器去按一下,又因为离的有点远,有时操作不到,或者看不到,反正就是麻烦加不爽。 这个充电桩配的遥控器是433MHz的。既然都有了HA,那为什么不把这件事交给HA来办呢?
言归正传。论坛搜了一遍也没有找到怎么用sonoff basic来发射射频码,好像sonoff RF也只能当成桥来用,发射不了。上淘某找,正好看到有串口通过的发射和接收射频模块。把自己的充电桩遥控器拆开,看了一下上面的晶振,确定是433Mhz的,然后就在某宝下单了一个发射和接收模块。
在等待收货的期间,研究了很久Tasmota的 Serial Bridge用法。其实刚开始是看那个RF BRIDGE,搞得七晕八素的,最后发现不可以。
https://github.com/arendst/Sonoff-Tasmota/wiki/Commands#serial-bridge
进入正题之前,先放两张射频码的格式说明给大家参考一下。
下面真正进入正题。
一、SONOFF BASIC + RF射频解码模块 = 读取解码现有的遥控器的发射码。
把sonoff basic上面的引脚该焊的焊,把5V电源引出来。固件刷成Tasmota,连好模块的线,对接收模块来讲,只需要把接收模块的TX接到sonoff的RX上就行。并设置一下模块参数。我这里使用的是GPIO1 / GPIO 3,你如果使用其他端口也一样,不同的是下面的命令到时不一样。
设置好重启之后,就要通过Tasmota 的web终端输入命令,设置一下串口参数了。
a.先把串口日志关掉
b.设置串口波特率,我买的这个模块的波特率是9600bps,大家根据自己的设置,
如果你用的是其他GPIO端口的话,就是使用的软件端口
c.设置串口输出格式,我发现只能设置成128才可以接收到
d.假装发一条消息,来格式需要收到的信息格式,主要是为了让收到的消息是以HEX格式显示
serialsend5 FD 03 3A 1A 21 30 DF
同样,如果你使用的是其他GPIO端口的放,就使用
sserialsend5 FD 03 3A 1A 21 30 DF
到此,就完结了。这个时候,你拿来需要解码的遥控器,接一下遥控器上面的键,看看你的sonoff有没有收到消息,并在终端里面给你返回一条信息。正常的话,你应该会收到一条6位码的数据。比如
这个就是你这个遥控器这个按键的编码了,把它记下来,到时发送的时候会用到。
二、SONOFF BASIC + 串口转射频模块 = 可以发送任意码的遥控器
把Sonoff basic与串口转射频模块接好,做实验时把RX和TX都接,方便看反馈,实际使用时,只需要把接射频模块的RX和SONOFF的TX连接就行了。如果的新的模块,就按上面的把日志和波特率设置一下。
a.然后在终端里面输入你上面得到的发送码。
serialsend5 FD 03 3A 1A 21 30 DF
如果你使用的是其他端口的话,就使用
sserialsend5 FD 03 3A 1A 21 30 DF
注意我上面使用红色标注的03,不要把这个数字设置的太大,要不就会一直发射。
正常情况你,你会得到两条反馈,一条是sonoff本身的发送完成
或者
和射频模块的反馈
这样,系统就把你的码发送出去,正常这个时候你的接收设备应该就会动作了。
大家在测试的时候,最好是两个模块一起配合着试方便调试,比如你试接收模块的话,就用电脑接串口接发射模块。反过来也一样。
三、整合到HA里面,手动或者定时发送。
a、经过以上的调试,大家把自己需要模拟的遥控器按键都解码出来。然后整合到HA里面,就可以了。HA示例(我接的GPIO14)
switch:
- platform: mqtt
name: "Charger"
command_topic: "cmnd/charger/sserialsend5"
qos: 0
payload_on: "FD 03 3A 1A 21 50 DF"
payload_off: "FD 03 3A 1A 22 50 DF"
optimistic: false
b、添加自动化(我的是控制我的充电桩,所以我在每天的22:00时发送一下开的信号,大家根据自己的实际情况使用)
- id: '1569824163685'
alias: auto_chargering
trigger:
- at: '22:00'
platform: time
condition: []
action:
- data:
entity_id:
- switch.charger
service: switch.turn_on
c、下面是我自己最终的成果,我是一个sonoff上接了PZEM-004T和串口转射频模块,新的PZEM-004T使用的是Modbus-RTU通讯,所以需要改成PZEM-016才可以与sonoff通信上。在这里也请教大佬一个问题,如何把这个开关状态与电流关系关联起来?当电流小于1时,我的充电栓其实是未充电的状态,这个时候开关应该是在“关”的状态,如果大于1时,应该是开的状态。
d、我也添加一段回复可见的注意事项
研究了半天也不到在哪里设置回复可见的选项,算了,就当一次大赠送了。
注意!注意!注意!
射频发射模块不要放在sonoff basic旁边,要不一发射sonoff就会死掉,屡试不爽!
|