找回密码
 立即注册

微信扫码登录

搜索
查看: 37437|回复: 15

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

[复制链接]

17

主题

790

回帖

5913

积分

论坛元老

积分
5913
金钱
5101
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解决~

回复

使用道具 举报

17

主题

790

回帖

5913

积分

论坛元老

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

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

使用道具 举报

17

主题

790

回帖

5913

积分

论坛元老

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

改开关芯片的固件?
回复

使用道具 举报

17

主题

790

回帖

5913

积分

论坛元老

积分
5913
金钱
5101
HASS币
0
 楼主| 发表于 2023-8-4 20:54:01 | 显示全部楼层
Rorschach 发表于 2023-8-1 11:00
老哥 我想在配置文件里写个门磁,直接写这个data不行啊,是需要怎么配置?我配置的不对,这个数值没反应 ...

rf设备基本都扔了- -!
不过你这个,你看下rfkey这个,记得是不带0x的
她返回的实际是个字符串,而不是HEX数据
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-5 11:00 , Processed in 0.447395 second(s), 5 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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