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

 找回密码
 立即注册
查看: 13298|回复: 15

[进阶教程] Sonoff Rf Bridge 纯ha设置教程

[复制链接]

17

主题

764

帖子

5306

积分

论坛元老

Rank: 8Rank: 8

积分
5306
金钱
4537
HASS币
0
发表于 2018-5-29 20:55:00 | 显示全部楼层 |阅读模式
本帖最后由 sirakawa 于 2018-5-29 20:57 编辑

头几个月买了个Sonoff Rf Bridge,发现这按钮,开关这类不需要反馈的,用rf十分的方便

不过rf这玩意问题也不少,主要是2个,
一个多个RF设备同时发信号会导致干扰,
一个就是同一个按钮连续按(1秒1次就算连续),发出的信号是一样的。而且是完全一样,导致没法触发ha的状态变更

解决方法嘛,1就是RF只用来开关这类人工操作的,降低重复的几率,而且失败了也可以再按一下
2就是给他做一个状态变更出来~~

前期准备
Sonoff Rf Bridge 刷好 Sonoff-Tasmota

之所以用Sonoff-Tasmota而不是别的,一个是别的没怎么用过,一个是Sonoff-Tasmota会把所有接收到的信号都反馈给HAS
rf bridge本身只能记忆16个信号,如果不能把没记忆的信号返回给ha的话,就会导致使用的局限性

再HA中添加
sonoffRB换成你的rfbridge的名字

sensor:
  #  Sonoff RF Bridge
  - platform: mqtt
    name: 'Sonoff_RF_Bridge'
    state_topic: '/sonoffRB/RESULT'
    value_template: '{{ value_json.RfReceived.RfKey }}'
    json_attributes:
      - RfReceived
    qos: 1


然后在自动化中写入下面的代码
#------------------------------------------------------------------------------#
# 收到RF信号更改覆盖MQTT情报,用来初始化传感器情报,便于RF发送重复CODE时候触发
#------------------------------------------------------------------------------#
- alias: Change Sonoff Rf Bridge Data
  id: 'Change Sonoff Rf Bridge Data'
  trigger:
  - platform: state
    entity_id: sensor.sonoff_rf_bridge
  condition:
    # 初期以外
    - condition: template
      value_template: '{{ states.sensor.sonoff_rf_bridge.state != "unknown" }}'
    - condition: template
      value_template: '{{ states.sensor.sonoff_rf_bridge.attributes.RfReceived.Data != "Resend" }}'
  action:
    - service: mqtt.publish
      data_template:
        topic: '/sonoffRB/RESULT'
        qos: 1
        retain: false
        payload_template: >-
          {% if  states.sensor.sonoff_rf_bridge.attributes.RfReceived.Data == '6C754E' %}
            {% set RfState = 'Remote Key1' %}
          {% elif  states.sensor.sonoff_rf_bridge.attributes.RfReceived.Data == '6C754C' %}
            {% set RfState = 'Remote Key2' %}
          {% else %}
            {% set RfState = 'Other' %}
          {% endif %}
          {"RfReceived":
            {"RfKey":"{{ RfState }}","Data":"Resend","D":
                "Data:{{ states.sensor.sonoff_rf_bridge.attributes.RfReceived.Data }} High:{{ states.sensor.sonoff_rf_bridge.attributes.RfReceived.High }} Low:{{ states.sensor.sonoff_rf_bridge.attributes.RfReceived.Low }} Sync:{{ states.sensor.sonoff_rf_bridge.attributes.RfReceived.Sync }} RfKey:{{ states.sensor.sonoff_rf_bridge.attributes.RfReceived.RfKey }}"}}
##############


其中6C754E这类16进制代码改成你的RF开关发射的DATA,然后下面的rfstate这个名字可以随便起
这个的作用就是收到信号之后再次发送一个mqtt消息,覆盖之前的状态,这样下次来新的哪怕是重复的信号都会触发状态变更

使用
仿照下面这么用就可以,状态变更到你上面设置的名字那里就会触发~

- alias: key1
  id: 'Remote Key1'
  trigger:
  - platform: state
    entity_id: sensor.sonoff_rf_bridge
    to: 'Remote Key1'
  action:
  - service:  switch.toggle
    entity_id: switch.xxxxxxxx


完工~~
而且不需要任何第三方组件,纯HA解决~

回复

使用道具 举报

5

主题

137

帖子

1872

积分

金牌会员

Rank: 6Rank: 6

积分
1872
金钱
1735
HASS币
0
发表于 2018-5-29 21:09:28 | 显示全部楼层
这个接收射频信号,测试一下最短也只能2秒间隔,1秒内连续按就识别不到。不过也足够一般使用了。
回复

使用道具 举报

5

主题

137

帖子

1872

积分

金牌会员

Rank: 6Rank: 6

积分
1872
金钱
1735
HASS币
0
发表于 2018-5-29 21:10:34 | 显示全部楼层
我的脚本这样写也能够使用的
  - alias: rf_receive_ketingdeng
    trigger:
      - platform: mqtt
        topic: 'tele/sonoffbridge/RESULT'     # sonoffbridge为你的mqtt的topic
    action:
      - service: light.toggle                   #开关灯
        entity_id: light.keting_deng           # light.keting_deng为你的灯id  
    condition:
      - condition: template
        value_template: "{{ trigger.payload_json['RfReceived'].Data == '431003' }}"
回复

使用道具 举报

17

主题

764

帖子

5306

积分

论坛元老

Rank: 8Rank: 8

积分
5306
金钱
4537
HASS币
0
 楼主| 发表于 2018-5-29 21:13:14 | 显示全部楼层
launze 发表于 2018-5-29 21:10
我的脚本这样写也能够使用的
[code]  - alias: rf_receive_ketingdeng
    trigge ...

嗯,其实都能用,不过我更喜欢把状态转换成能直接看到的文本= =
强迫症~
回复

使用道具 举报

19

主题

457

帖子

8123

积分

元老级技术达人

云淡风轻近午天

积分
8123
金钱
7666
HASS币
0

教程狂人

发表于 2018-5-29 22:49:59 来自手机 | 显示全部楼层
你说的那个同一个触发信号可以在固件改的,默认是2秒,改了就好多了
回复

使用道具 举报

17

主题

336

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

积分
2477
金钱
2141
HASS币
0
发表于 2018-5-30 09:01:34 | 显示全部楼层
嗯,rf的帖子还是比较少的,很及时,下步开整,
回复

使用道具 举报

17

主题

764

帖子

5306

积分

论坛元老

Rank: 8Rank: 8

积分
5306
金钱
4537
HASS币
0
 楼主| 发表于 2018-5-30 17:48:13 | 显示全部楼层
luzai 发表于 2018-5-29 22:49
你说的那个同一个触发信号可以在固件改的,默认是2秒,改了就好多了

改开关芯片的固件?
回复

使用道具 举报

9

主题

86

帖子

243

积分

论坛积极会员

积分
243
金钱
157
HASS币
0
发表于 2020-1-3 23:18:12 来自手机 | 显示全部楼层
luzai 发表于 2018-5-29 22:49
你说的那个同一个触发信号可以在固件改的,默认是2秒,改了就好多了

你好,在固件的哪里改呀,求教
回复

使用道具 举报

9

主题

250

帖子

2170

积分

金牌会员

Rank: 6Rank: 6

积分
2170
金钱
1920
HASS币
15
发表于 2020-3-3 23:02:18 | 显示全部楼层
本帖最后由 diba.qiu 于 2020-3-4 07:50 编辑

我是小小小白,試著理解前輩們刷Tasmota的目的,若是理解錯誤,前輩們莫笑...
1. 刷Tasmota之前,RfBridge只能使用Sonoff的軟件,接入Sonoff出的硬件產品例如: 門磁感應、煙霧報警、水位報警..., 訊號到雲端繞一圈才回來,外網斷了功能就廢了。
2. 刷Tasmota之後,讓RfBridge從內部網路直接把所有接收到的資訊都發給HA,從HA去設定收到訊號之後要做甚麼事情,例如門磁感應,根本不用考慮甚麼配對接入,直接拿著門磁感應器在RfBridge旁邊做開門關門的動作,看RfBridge收到甚麼訊號並紀錄下來再來後續處理就好,甚至只要是Rf433訊號的東西例如無線門鈴,也能設定成有人按門鈴,HA推播訊息給手機? 或是拿來控制無線訊號同為Rf433的吸頂燈?



回复

使用道具 举报

0

主题

32

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
金钱
224
HASS币
0
发表于 2021-5-24 17:49:06 | 显示全部楼层
买了Sonoff Rf Bridge,固件已刷好!家里的433人体感应器和光栅也都读对RFRAW码,但是不会接入HA啊!求大神帮写几行码接入到HA,实现收到特定的RFRAW码就提示防区打开。再帮写段代码让Bridge发送RFRAW码当遥控器用,谢谢!   谢谢!  谢谢!

下午5:36 收到关于 tele/sonoff/RESULT 的消息[ 2 ]
{
    "RfReceived": {
        "Sync": 9610,
        "Low": 270,
        "High": 870,
        "Data": "720BC7",
        "RfKey": "None"
    }
}
QoS: 0 - Retain: false
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-7 05:37 , Processed in 0.151449 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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