ESPHome man-in-the-middle Reolink Video Doorbell

Hello! That’s my frist “Give to the community”


I have a special situation in my home, and I bet it’s very common, especially in Europe.
My doorbell switch is on a wall in the street, and my Video Doorbell (a Great Reolink Video Doorbell) is about 1,5meters from the closed gate. So, because of the lack of support from reolink, to have an external “call” switch, i had to make my own.
As in the image.

Step 1 - Your warranty is now void!
Step 2 - Wire a line to the switch and use a screw hole as ground.

Note (After a direct connection to the wall switch, the wire was more than 12 meters and sometimes failed to activate)

Step 3 - use a man-in-the-middle



Note. For the WEMOS D1 Mini i had used a code that forces more volt’s from the GPIO that probably some day will kill it, but thats prototyping!

I used the interior pullup resistor.

Step 4 - The code with a safeguard.

esphome:
  name: doorbellaux
  friendly_name: doorbell.aux

esp8266:
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "bzzzzzzzzzzzzzzz"

ota:
  password: "bzzzzzzzzzzzzzzzzzzzzz"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Doorbellaux Fallback Hotspot"
    password: "bzzzzzzzzzzzzzzzzzzzz"


binary_sensor:
  - platform: gpio
    pin:
      number: D1
      inverted: true
      mode:
        input: true
        pullup: true #enable pullup resistor
    name: "doorbell-aux"
    on_press:
      then: 
        if:
          condition:
            switch.is_on: overrideswitchext #read the template switch "Override"
          then:
           - switch.toggle: RelayReolink1
           - delay: 1s
           - switch.toggle: RelayReolink1
          else:
           - switch.turn_off: RelayReolink1
        

switch:
  - platform: gpio
    name: "RelayReolink"
    id: RelayReolink1
    pin: 
      number: D2
      inverted: true
      mode: 
        output: True
        open_drain: True
    restore_mode: ALWAYS_OFF # that part enable the use of the port to output more volt's and so activate the Relay use at your own risk!

  - platform: template # i need to control when the wallswitch is activated 
    name: "override-switch-exterior"
    id: overrideswitchext
    optimistic: true

button: #its needed to Home Assistant control the template switch "override-switch-exterior"
  - platform: template
    name: botão_overrride_doorbell
    on_press:
      then:
        - switch.toggle: overrideswitchext



captive_portal:
    

And thats my liitle project!
I didnt make any automation on Homeassistant for now.
bye!!

4 Likes