Created
January 23, 2026 01:53
-
-
Save lobianco/22693a12017ed3dd27949dc16578f1d7 to your computer and use it in GitHub Desktop.
Doorbell two-way audio
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| blueprint: | |
| name: 2-way audio doorbell popupsv5 | |
| description: Trigger a popup and perform actions when a visitor rings the doorbell with 2-way audio | |
| author: victorigualada | |
| domain: automation | |
| input: | |
| doorbell_sensor: | |
| name: Doorbell Sensor | |
| description: The binary sensor triggered when the doorbell is pressed. | |
| selector: | |
| entity: | |
| domain: binary_sensor | |
| browser_ids: | |
| name: Browser IDs | |
| description: List of Browser Mod IDs for displaying the popup. | |
| selector: | |
| device: | |
| multiple: true | |
| filter: | |
| - integration: browser_mod | |
| camera_entity: | |
| name: Camera Entity | |
| description: The camera to display in the popup. This should be the normal stream produced by the camera. | |
| selector: | |
| entity: | |
| domain: camera | |
| go2rtc_url: | |
| name: 2-way audio go2rtc stream | |
| description: The stream exposed by go2rtc that includes 2-way audio. This MUST match the stream name configured in go2rtc | |
| default: camera.2way_audio_doorbell | |
| open_gate_script: | |
| name: Open Gate Script | |
| description: The script to open the gate. | |
| default: null | |
| selector: | |
| entity: | |
| domain: script | |
| trigger: | |
| - platform: state | |
| entity_id: !input doorbell_sensor | |
| from: "off" | |
| to: "on" | |
| action: | |
| - service: browser_mod.popup | |
| data: | |
| tag: doorbell-popup | |
| size: normal | |
| browser_id: !input browser_ids | |
| style: |- | |
| ha-dialog { | |
| --mdc-dialog-min-width: 600px !important; | |
| } | |
| .content { | |
| width: auto !important; | |
| } | |
| content: | |
| type: picture-elements | |
| elements: | |
| # Pick-up button | |
| - type: icon | |
| style: | |
| left: 15% | |
| bottom: 0 | |
| background-color: "#4CAF50" | |
| color: white | |
| padding: 14px | |
| font-size: 18px | |
| border: none | |
| border-radius: 50px | |
| display: inline-flex | |
| align-items: center | |
| cursor: pointer | |
| z-index: 1 | |
| icon: mdi:phone | |
| tap_action: | |
| tag: anwser-popup | |
| action: call-service | |
| service: browser_mod.popup | |
| service_data: | |
| tag: doorbell-call | |
| size: wide | |
| dismissable: true | |
| style: |- | |
| ha-dialog { | |
| --mdc-dialog-min-width: 600px !important; | |
| } | |
| .content { | |
| width: auto !important; | |
| } | |
| browser_id: !input browser_ids | |
| sequence: | |
| - service: browser_mod.close_popup | |
| - service: browser_mod.delay | |
| data: | |
| delay: 1 | |
| - service: browser_mod.popup | |
| data: | |
| content: | |
| type: picture-elements | |
| content: | |
| type: picture-elements | |
| card_mod: | |
| style: | | |
| #root { max-height: 436.65px } | |
| elements: | |
| - type: icon | |
| icon: mdi:phone-off | |
| tap_action: | |
| action: call-service | |
| service: browser_mod.close_popup | |
| service_data: | |
| tag: doorbell-call | |
| style: | |
| left: 85% | |
| bottom: 0 | |
| width: 20px | |
| background-color: "#f44336" | |
| color: white | |
| padding: 14px | |
| font-size: 18px | |
| border: none | |
| border-radius: 50px | |
| display: inline-flex | |
| align-items: center | |
| cursor: pointer | |
| z-index: 1 | |
| - type: icon | |
| icon: mdi:lock-open | |
| tap_action: | |
| action: call-service | |
| service: script.turn_on | |
| service_data: | |
| entity_id: !input open_gate_script | |
| style: | |
| left: 15% | |
| bottom: 0 | |
| background-color: "#2196F3" | |
| color: white | |
| padding: 14px | |
| font-size: 18px | |
| border: none | |
| border-radius: 50px | |
| display: inline-flex | |
| align-items: center | |
| cursor: pointer | |
| z-index: 1 | |
| - type: custom:webrtc-camera | |
| ui: true | |
| url: !input go2rtc_url | |
| media: video,audio,microphone | |
| mode: webrtc | |
| style: | |
| position: absolute | |
| top: 50% | |
| left: 50% | |
| width: 100% | |
| height: 100% | |
| card_mod: | |
| style: | | |
| .fullscreen {display: none} | |
| .screenshot {display: none} | |
| .pictureinpicture {display: none} | |
| video {aspect-ratio: 16/9} | |
| image: https://upload.wikimedia.org/wikipedia/commons/c/ca/1x1.png | |
| # Hang-up button | |
| - type: icon | |
| style: | |
| left: 85% | |
| bottom: 0 | |
| width: 20px | |
| background-color: "#f44336" | |
| color: white | |
| padding: 14px | |
| font-size: 18px | |
| border: none | |
| border-radius: 50px | |
| display: inline-flex | |
| align-items: center | |
| cursor: pointer | |
| z-index: 1 | |
| icon: mdi:phone-off | |
| tap_action: | |
| action: call-service | |
| service: browser_mod.close_popup | |
| # Open door button | |
| - type: icon | |
| style: | |
| left: 50% | |
| bottom: 0 | |
| background-color: "#2196F3" | |
| color: white | |
| padding: 14px | |
| font-size: 18px | |
| border: none | |
| border-radius: 50px | |
| display: inline-flex | |
| align-items: center | |
| cursor: pointer | |
| z-index: 1 | |
| icon: mdi:lock-open | |
| tap_action: | |
| action: call-service | |
| service: script.turn_on | |
| service_data: | |
| entity_id: !input open_gate_script | |
| # Camera stream | |
| - type: custom:more-info-card | |
| entity: !input camera_entity | |
| style: | |
| position: absolute | |
| top: 50% | |
| left: 50% | |
| width: 100% | |
| height: 100% | |
| z-index: 0 | |
| card_mod: | |
| style: | | |
| :host { padding: 0} | |
| .card-header { display: none;} | |
| .card-content { padding: 0; margin-top: 0 } | |
| image: https://upload.wikimedia.org/wikipedia/commons/c/ca/1x1.png | |
| card_mod: | |
| style: | | |
| #root { height: 420px } | |
| - wait_template: >- | |
| {{ states('!input doorbell_sensor') == 'off' }} | |
| timeout: "60" | |
| continue_on_timeout: true | |
| - service: browser_mod.close_popup | |
| data: | |
| sequence: | |
| # ENSURE MORE-INFO IS CLOSED (modern >2.5.0 way) | |
| - service: browser_mod.more_info | |
| data: | |
| close: true | |
| # CLOSE MAIN POPUP | |
| - service: browser_mod.close_popup | |
| data: | |
| tag: doorbell-popup | |
| browser_id: !input browser_ids | |
| mode: single |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment