As earlier mentioned I’m a big fan of local solutions, part because of security and knowing where your data is stored and part being ownership.
Too many times a cloud solution leads to sudden risk of privacy, data or even your devices. Last seen with Sonos excluding old devices.
Therefore I went for a local doorbell solution.
The parts I have been using is a cheap TP C100 security camera (with rtsp support) and an Aqara WXKG11LM button.
For weatherproofing I ordered this one. It’s not a perfect fit because it was ment for the TP KC100 but good enough.
The doorbell camera can also be included in a security system with rtsp. Can recommend Blue Iris and Milestone.
Adjust to your liking!
Pushover notification:
Lovelace:
camera_image: camera.main_door_cam_stream image_click: play entities: - binary_sensor.main_door_camera_motion - switch.street_lights style: | ha-card { border-radius: 15px; } title: Main door type: picture-glance
Camera:
- platform: ffmpeg name: Main door cam stream input: -rtsp_transport tcp -i rtsp://xxxcam:looooongpassword@ip.ip.ip.ip:port/stream1
Script:
pause_media_doorbell: alias: Doorbell pause media sequence: - service: remote.send_command entity_id: remote.living_room_hub data: device: xxxxxx command: Pause - service: remote.send_command entity_id: remote.living_room_hub data: device: xxxxxx command: Pause hallway_ceiling1_white_flash: alias: Hallway ceiling 1 white flash mode: single sequence: - service: light.turn_on target: entity_id: light.hallway_ceiling_1 data: brightness: 255 flash: long - delay: '5' - service: light.turn_off target: entity_id: light.hallway_ceiling_1 hallway_ceiling2_white_flash: alias: Hallway ceiling 2 white flash mode: single sequence: - service: light.turn_on target: entity_id: light.hallway_ceiling_2 data: brightness: 255 flash: long - delay: '5' - service: light.turn_off target: entity_id: light.hallway_ceiling_2 kitchen_lamp_purple_flash: alias: Kitchen lamp purple flash mode: single sequence: - service: light.turn_on data: xy_color: [0.291,0.141] brightness: 255 flash: long entity: light.kitchen_lamp - delay: '5' - service: light.turn_off data: entity_id: light.kitchen_lamp sofa_lamp_purple_flash: alias: Sofa lamp purple flash mode: single sequence: - service: light.turn_on data: xy_color: [0.291,0.141] brightness: 255 flash: long entity: light.sofa_lamp - delay: '5' - service: light.turn_off data: entity_id: light.sofa_lamp living_room_lamp_purple_flash: alias: Living room lamp purple flash sequence: - service: light.turn_on data: xy_color: [0.291,0.141] brightness: 255 flash: long entity_id: light.living_room_lamp office_ceiling_white_flash: alias: Office ceiling white flash mode: single sequence: - service: light.turn_on target: entity_id: light.office_ceiling data: brightness: 255 flash: long - delay: '5' - service: light.turn_off target: entity_id: light.office_ceiling
Group:
doorbell_notification_script: name: Doorbell script entities: - script.hallway_ceiling1_white_flash - script.hallway_ceiling2_white_flash - script.kitchen_lamp_purple_flash - script.living_room_lamp_purple_flash - script.sofa_lamp_purple_flash - script.office_ceiling_white_flash
Automation:
# Doorbell notification lights and voice - alias: Doorbell notification lights and voice id: doorbell_notification_lights_voice description: 'Flash lights light blue when someone presses the doorbell' trigger: - platform: state entity_id: sensor.doorbell_action to: hold - platform: state entity_id: sensor.doorbell_action to: release condition: - condition: state entity_id: group.all_people state: 'home' action: - service: homeassistant.turn_on entity_id: script.pause_media_doorbell - service: rest_command.rhasspy_speak data_template: payload_data: "You have visitors at the main door!" - service: scene.create data_template: scene_id: doorbell_notification_revert snapshot_entities: - light.hallway_ceiling_1 - light.hallway_ceiling_2 - light.kitchen_lamp - light.sofa_lamp - light.living_room_lamp - light.office_ceiling - light.attic_ceiling - service: homeassistant.turn_on entity_id: group.doorbell_notification_script - delay: '20' - service: scene.turn_on data: entity_id: scene.doorbell_notification_revert # Doorbell notification pushover and tv - alias: Doorbell notification_pushover_tv id: doorbell_notification_pushover_tv trigger: - platform: state entity_id: sensor.doorbell_action to: hold - platform: state entity_id: sensor.doorbell_action to: release condition: [] action: - choose: # Tv off - conditions: - condition: and conditions: - condition: state entity_id: remote.living_room_hub state: 'off' sequence: - service: timer.cancel entity_id: timer.doorbell - service: timer.start entity_id: timer.doorbell - service: camera.snapshot data: entity_id: camera.main_door_cam_stream filename: '/config/www/snapshots/main_door_camera_snapshot.jpg' - service_template: notify.pushover data_template: title: "Doorbell rang!" message: "Visitors at the main door!" data: attachment: /config/www/snapshots/main_door_camera_snapshot.jpg html: "1" sound: "bike" # User home and tv on - conditions: - condition: and conditions: - condition: state entity_id: group.all_people state: 'home' - condition: state entity_id: remote.living_room_hub state: 'on' sequence: - service: timer.cancel entity_id: timer.doorbell - service: timer.start entity_id: timer.doorbell - service: camera.snapshot data: entity_id: camera.main_door_cam_stream filename: '/config/www/snapshots/main_door_camera_snapshot.jpg' - service: notify.living_room_media_center data_template: title: "Doorbell rang!" message: "Visitors at the main door!" data: duration: 15 font-size: max transparency: 50% position: bottom-right image: path: "/config/www/snapshots/main_door_camera_snapshot.jpg" - service_template: notify.pushover data_template: title: "Doorbell rang!" message: "You have visitors at the main door!" data: attachment: /config/www/snapshots/main_door_camera_snapshot.jpg html: "1" sound: "bike"