Simple doorbell flow with voice message and Home Assistant video notification
Doorbell flow that sends a Home Assistant mobile notification with a live video feed to your phone or tablet and plays a voice message on a Google Cast device. Please note that live video notifications are currently only supported with Home Assistant iOS app.
If you are not satisfied with the standard node-red-contrib-cast voices then check out my wavenet doorbell flow instead.
Flow
As seen above, my doorbell simply sends a payload to the MQTT topic "doorbell". The MQTT node is easily replaced by an Event state node, deCONZ in node, Flic node, etc, depending on your setup.
Copy the flow below to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option.
Remember to add your camera to Home Assistant and install the required nodes before importing this flow into Node-RED (check out Node types box on this page)
[{"id":"3ad12ac8.436556","type":"tab","label":"Doorbell simple","disabled":false,"info":""},{"id":"49a9f2e.e1b850c","type":"mqtt in","z":"3ad12ac8.436556","name":"","topic":"doorbell","qos":"2","datatype":"auto","broker":"32711c1c.fab404","x":120,"y":160,"wires":[["efc353b8.f919d","7aa8b88a.4b7bc8"]]},{"id":"7aa8b88a.4b7bc8","type":"api-call-service","z":"3ad12ac8.436556","name":"mobile notification with camera feed","server":"","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_<insert_name_of_your_mobile_device_here>","entityId":"","data":"{\"data\":{\"attachment\":{\"content-type\":\"jpeg\"},\"entity_id\":\"camera.hoveddor_http_stream\",\"push\":{\"category\":\"camera\"},\"sticky\":true},\"message\":\"Press and hold for live video feed\",\"title\":\"Someone rang the doorbell\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":510,"y":160,"wires":[[]]},{"id":"491f9c6f.11e9f4","type":"inject","z":"3ad12ac8.436556","name":"Test","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":220,"wires":[["7aa8b88a.4b7bc8","efc353b8.f919d"]]},{"id":"efc353b8.f919d","type":"cast-to-client","z":"3ad12ac8.436556","name":"Cast doorbell message","url":"","contentType":"","message":"Someone rang the doorbell. Mabe it's pizza!","language":"en","ip":"192.168.3.67","port":"","volume":"","x":470,"y":220,"wires":[[]]},{"id":"90c47c6c.a0fd5","type":"comment","z":"3ad12ac8.436556","name":"Create long-lived access tokens in Home Assistant to allow Node-RED to send notifications via the Home Assistant app.","info":"","x":470,"y":100,"wires":[]},{"id":"d0bb4d5f.a7ff","type":"comment","z":"3ad12ac8.436556","name":"Link to latest version of this flow: https://flows.nodered.org/flow/03f502ca8e925faa96473dc623daef82","info":"","x":410,"y":40,"wires":[]},{"id":"32711c1c.fab404","type":"mqtt-broker","z":"","name":"","broker":"192.168.3.62","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]