Home Assistant
Push from any Home Assistant automation or script.
Home Assistant's `rest_command` integration sends HTTP requests to any URL. Point it at your Chirp webhook and you can push notifications from any automation, script, or scene — door opens, washing machine finishes, temperature alert, motion detected, you name it.
Unlike the built-in iOS companion app notifications, Chirp notifications work on any device signed in to your Chirp account and can trigger Live Activities for ongoing states (garage door open, HVAC running, security arm countdown).
Prerequisites
- A running Home Assistant instance.
- Access to edit `configuration.yaml` (or the File Editor / VS Code add-on).
- A Chirp account and webhook URL from your dashboard.
Setup
- 1
Grab your Chirp webhook URL
In the Chirp dashboard, copy your inbound webhook URL. It looks like
https://api.chirpapp.dev/v1/webhooks/inbound?key=YOUR_KEY. - 2
Add a rest_command
Open
configuration.yamland add arest_commandentry. Themessagevariable is passed from automations at call time.yamlrest_command: chirp_notify: url: "https://api.chirpapp.dev/v1/webhooks/inbound?key=YOUR_KEY" method: post content_type: "application/json" payload: '{"title":"{{ title }}","body":"{{ message }}"}' - 3
Restart Home Assistant
Go to Developer Tools → YAML → Restart. The new command loads as
rest_command.chirp_notify. - 4
Call it from an automation
Use the command as an action in any automation. Pass
titleandmessageas service data.yamlautomation: - alias: "Notify when dryer finishes" trigger: - platform: state entity_id: sensor.dryer_status to: "off" action: - service: rest_command.chirp_notify data: title: "Laundry" message: "The dryer has finished" - 5
(Optional) Use for Live Activities
For persistent lock screen cards (garage door open, HVAC status), create separate rest_commands that hit the
/v1/activity/start,/update, and/endendpoints with the appropriate schema.yamlrest_command: chirp_activity_start: url: "https://api.chirpapp.dev/v1/activity/start" method: post headers: Authorization: "Bearer YOUR_API_KEY" Content-Type: "application/json" payload: '{"schema_id":"@monitor","data":{"title":"{{ title }}","status":"{{ status }}"}}'
What you’ll see
A push notification with the title and message from your automation. If you use activity endpoints, a persistent Live Activity card on your lock screen that updates as the state changes.
Troubleshooting
- rest_command.chirp_notify doesn't appear as a service.
- Restart Home Assistant fully (not just a config reload).
rest_commandrequires a restart to register new commands. - Automation fires but notification doesn't arrive.
- Check Home Assistant logs for HTTP errors. The most common cause is a malformed YAML payload — make sure the JSON string uses single quotes on the outside and double quotes inside, and that Jinja templates are properly escaped.
- Template variables show as literal text (e.g., '{{ message }}').
- Ensure the payload string uses single quotes (not double quotes) around the outer YAML value, so Home Assistant's Jinja engine processes the
{{ }}templates before sending.