I just wanted to share my ESPHome config for the RF Bridge.
It’s nothing special, but as I was asked about it, here’s the config (the RF codes have been change to protect the innocent :-D)
I have added my standard set of sensors as well.
# Setting up standard info
substitutions:
device_name: sonoff_rfbridge_1
esphome:
name: ${device_name}
platform: ESP8266
board: esp01_1m
# Resetting sensors on boot
on_boot:
then:
lambda: |-
{
id(stairsswitch_above).publish_state(false);
id(stairsswitch_below).publish_state(false);
id(hallswitch_kitchen).publish_state(false);
id(hallswitch_entry).publish_state(false);
id(bedtroomswitch).publish_state(false);
id(bedroomwindow).publish_state(false);
id(entrydoor).publish_state(false);
id(gardendoor).publish_state(false);
id(chestfreezerdoor).publish_state(false);
id(frontdoor).publish_state(false);
}
# Setting up WIFI access
wifi:
ssid: "SSID"
password: "PW"
manual_ip:
static_ip: 192.168.1.100
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable logging
logger:
# Enable Home Assistant API
api:
# Setting up OTA
ota:
password: "PW"
# Activating Webserver
web_server:
port: 80
# Setting up the remote receiver
remote_receiver:
pin: 4
dump: rc_switch
tolerance: 50
filter: 4us
idle: 4ms
# Setting up the remote transmitter
remote_transmitter:
pin: 5
carrier_duty_percent: 100%
# Setting up the LED
status_led:
pin:
number: GPIO13
inverted: yes
# Setting up my default sensors about wifi and esphome
text_sensor:
- platform: version
name: '${device_name} ESPHome Version'
- platform: wifi_info
ip_address:
name: '${device_name} ip'
ssid:
name: '${device_name} ssid'
# Setting up a counted for uptime in days
sensor:
- platform: uptime
name: '${device_name} Uptime'
unit_of_measurement: days
update_interval: 300s
accuracy_decimals: 1
filters:
- multiply: 0.000011574
# Setting up sensors with single states
binary_sensor:
- platform: status
name: Sonoff RF Bridge Status
- platform: remote_receiver
name: stairsswitch_above
id: stairsswitch_above
rc_switch_raw:
code: 'CODE'
protocol: 1
filters:
delayed_off: 100ms
- platform: remote_receiver
name: stairsswitch_below
id: stairsswitch_below
rc_switch_raw:
code: 'CODE'
protocol: 1
filters:
delayed_off: 100ms
- platform: remote_receiver
name: hallswitch_kitchen
id: hallswitch_kitchen
rc_switch_raw:
code: 'CODE'
protocol: 1
filters:
delayed_off: 100ms
- platform: remote_receiver
name: hallswitch_entry
id: hallswitch_entry
rc_switch_raw:
code: 'CODE'
protocol: 1
filters:
delayed_off: 100ms
- platform: remote_receiver
name: bedtroomswitch
id: bedtroomswitch
rc_switch_raw:
code: 'CODE'
protocol: 1
filters:
delayed_off: 100ms
# Setting up sensors with dual state, first two internal sensors and then
# a sensor that sends the resulting state to HA
- platform: remote_receiver
id: bedroomwindow_open
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: remote_receiver
id: bedroomwindow_close
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: template
name: bedroomwindow
id: bedroomwindow
device_class: window
lambda: |-
if (id(bedroomwindow_open).state) {
return true;
} else if (id(bedroomwindow_close).state) {
return false;
} else {
return {};
}
- platform: remote_receiver
id: entrydoor_open
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: remote_receiver
id: entrydoor_close
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: template
name: entrydoor
id: entrydoor
device_class: door
lambda: |-
if (id(entrydoor_open).state) {
return true;
} else if (id(entrydoor_close).state) {
return false;
} else {
return {};
}
- platform: remote_receiver
id: gardendoor_open
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: remote_receiver
id: gardendoor_close
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: template
name: gardendoor
id: gardendoor
device_class: door
lambda: |-
if (id(gardendoor_open).state) {
return true;
} else if (id(gardendoor_close).state) {
return false;
} else {
return {};
}
- platform: remote_receiver
id: freezerdoor_open
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: remote_receiver
id: freezerdoor_close
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: template
name: chestfreezerdoor
id: chestfreezerdoor
device_class: door
lambda: |-
if (id(freezerdoor_open).state) {
return true;
} else if (id(freezerdoor_close).state) {
return false;
} else {
return {};
}
- platform: remote_receiver
id: frontdoor_open
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: remote_receiver
id: frontdoor_close
internal: true
rc_switch_raw:
code: 'CODE'
protocol: 2
filters:
delayed_off: 100ms
- platform: template
name: frontdoor
id: frontdoor
device_class: door
lambda: |-
if (id(frontdoor_open).state) {
return true;
} else if (id(frontdoor_close).state) {
return false;
} else {
return {};
}