All integrations

Home Assistant

Push from any Home Assistant automation or script.

LiveWebhooksigned URL

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. 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. 2

    Add a rest_command

    Open configuration.yaml and add a rest_command entry. The message variable is passed from automations at call time.

    yaml
    rest_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. 3

    Restart Home Assistant

    Go to Developer Tools → YAML → Restart. The new command loads as rest_command.chirp_notify.

  4. 4

    Call it from an automation

    Use the command as an action in any automation. Pass title and message as service data.

    yaml
    automation:
      - 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. 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 /end endpoints with the appropriate schema.

    yaml
    rest_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_command requires 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.
External docs →