User Tools

Site Tools


espdoorbell
captive_portal:

web_server:
  port: 80 
  version: 3

# Grabs the IP address for the boot message
text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP Address"
      id: ip_address

rtttl:
  output: buzzer_pwm
  id: doorbell_chime      

# Add a template component alongside your GPIO pin
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO14 # D5 on NodeMCU
      mode: INPUT_PULLUP 
      inverted: true
    name: "Doorbell Physical Button"
    # When physically pressed, toggle our master virtual sensor
    on_press:
      - binary_sensor.template.publish:
          id: doorbell_master
          state: ON
      - delay: 500ms
      - binary_sensor.template.publish:
          id: doorbell_master
          state: OFF
    filters:
      - delayed_on: 50ms 
    
    # This is the master entity Home Assistant will watch. 
    # It acts exactly like your old buttonPressed global flag.
  - platform: template
    name: "Doorbell Button"
    id: doorbell_master
    on_press:
      then:
        - logger.log: "Doorbell Triggered! Playing Chime..."
        # Plays a crisp "Ding-Dong" tone
        # e6 = Ding (High note), c6 = Dong (Low note)
        - rtttl.play: "dingdong2:d=4,b=120:e6,2c6,p,e6,2c6"
    

# Exposed to Home Assistant as clickable Button entities
button:
  - platform: restart
    name: "Restart Doorbell"

  - platform: template
    name: "Test Doorbell Press"
    # Clicking PRESS in the WebUI now triggers this exact same master sensor
    on_press:
      - logger.log: "WebUI Test Button Pressed!"
      - binary_sensor.template.publish:
          id: doorbell_master
          state: ON
      - delay: 500ms
      - binary_sensor.template.publish:
          id: doorbell_master
          state: OFF

# Status LED Configuration (Blinks every 5 seconds to show it's alive)
output:
  - platform: gpio
    pin:
      number: GPIO2 # LED_BUILTIN (active low)
      inverted: true
    id: builtin_led
  - platform: esp8266_pwm
    pin: GPIO12 # D6 on NodeMCU
    id: buzzer_pwm

interval:
  - interval: 10s
    then:
      - output.turn_on: builtin_led
      - delay: 25ms
      - output.turn_off: builtin_led
espdoorbell.txt · Last modified: by jwan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki