Sonoff RF bridge ESPHome

Sonoff RF Bridge installeret med ESPhome – dansk vejledning.

Hvorfor ?
Personligt er der 2 grunde. Den første fordi jeg ønsker at køre ren ESPHome hvis muligt, og den anden er for at stoppe med at bruge MQTT da det som udgangspunkt bare ikke er lige så hurtigt.

Hvordan ?
Jeg vil i denne vejledning prøve at forklare hvordan det gøres, med lidt billeder og forklaring.

I det store hele skal man lave en hardware hack i Sonoff bridgemodulet, fordi at Tasmota som andre bruger, benytter sig af den mikrocontroller på printet som hedder EFM8BB1 til at kommunikere med RF modulet.

Det kan ESPHome ikke i nuværende version, og derfor er denne hack nødvendig – da den i korte træk forbinder ESP8266 chippen direkte med RF-modulet.

Dette skulle gerne være medvirkende til lidt hurtigere respons og flere muligheder da EFM8BB1 vist virker ret begrænset.

So, here we go….

Start med at Sonoff Bridge fra hinanden.

Som det ses på billede, skal der loddes enten en alm. ledning i, eller der vælges 2 modstande mellem 200-600 ohm, som er med til at beskytte andre kredsløb.
Find og flash med din yndlings usb / com adapter.

Her er lige et eksempel på min kode som virker perfekt.

esphome:
  name: esp8266_rf_bridge
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "XXXXX"
  password: "XXXXX"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp8266 Rf Bridge"
    password: "xxxxxxxxxx"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "xxxxxxxxx"

ota:
  password: " xxxxxxxxx"

web_server:
  port: 80
  
sensor:
  - platform: wifi_signal
    name: Sonoff RF Bridge Wifi Signal
    update_interval: 10s
  - platform: uptime
    name: Sonoff RF Bridge Uptime

binary_sensor:
  - platform: status
    name: Sonoff RF Bridge Status

  - platform: remote_receiver
    name: Toilet Motion2
    device_class: motion
    rc_switch_raw:
      code: '11101111110011010'
      protocol: 1
    filters:
      delayed_off: 5s

# door window
  - platform: remote_receiver
    id: door_toilet_open
    internal: true
    rc_switch_raw:
      code: '0010111010001010'
      protocol: 2
    filters:
      delayed_off: 100ms
      
  - platform: remote_receiver
    id: door_toilet_closed
    internal: true
    rc_switch_raw:
      code: '001011100001110'
      protocol: 2
    filters:
      delayed_off: 100ms
      
  - platform: template
    name: Door Window
    device_class: window
    lambda: |-
      if (id(door_toilet_open).state) {
        // door toilet is open
        return true;
      } else if (id(door_toilet_closed).state) {
        // door window closed
        return false;
      } else {
        return {};
      }
remote_receiver:
  pin: 4
  dump: rc_switch
  tolerance: 50
  filter: 4us
  idle: 4ms

remote_transmitter:
  pin: 5
  carrier_duty_percent: 100%

status_led:
  pin:
    number: GPIO13
    inverted: yes