Skip to content
Get the appGet app

Home Assistant Live Activities on iPhone

Home Assistant can put Live Activities on your iPhone’s Lock Screen and Dynamic Island in two ways. The free Companion app gives you one built-in layout for activities that end within eight hours. Aivi adds layout templates, widgets fed from the same entities, sharing with your household, and activities that keep running past eight hours, all set up from a panel in Home Assistant with the free Aivi integration. Aivi costs $2.99 a month or $23.99 a year, and the first week is free.

Lock Screen Live Activity for a dishwasher driven by Home Assistant: Washing, 1h 32m left, progress bar at 65%.

Set it up in a few minutes · Compare with the Companion app

Setting up Live Activities for Home Assistant

Section titled “Setting up Live Activities for Home Assistant”

You need an iPhone on iOS 18.4 or later, and a Home Assistant that can make outgoing HTTPS requests. Any installation type works: no port forwarding, no Home Assistant Cloud, and no remote access to your Home Assistant.

There are three ways to do it. We recommend the HACS integration.

  1. Install Aivi from the App Store, open the Settings tab, sign in, and start your free week. Then copy your API token from the same tab.

  2. In the Activities tab, create an activity with the Progress template.

  3. In Home Assistant, install the Aivi integration through HACS and paste your token. The integration guide has the two buttons that do it.

  4. Open Aivi in the Home Assistant sidebar, select your activity, and choose the entities that feed it: the one that says your device is running, its progress, its time left. Select Save.

  5. Start your device. Its progress appears on your Lock Screen and in the Dynamic Island.

Everything else the integration does, including widgets and buttons on your Home Screen, is in the integration guide.

Prefer plain automations? A blueprint gives you one automation per activity that you can read and edit, with an option for every detail. It needs one rest_command in your configuration.

  1. Install Aivi from the App Store, open the Settings tab, sign in, and start your free week. Then copy your API token from the same tab.

  2. In the Activities tab, create an activity with the Progress template and the slug dishwasher (or any name for your device). Your automation updates the activity by this slug; the API returns 404 for a slug that does not exist yet.

  3. Add a RESTful command to your configuration.yaml, then reload your configuration:

    rest_command:
    update_live_activity:
    url: 'https://api.getaivi.app/activities/{{ slug }}'
    method: PATCH
    headers:
    content-type: application/json
    authorization: Token [token]
    payload: '{{ payload }}'
  4. Import the quick-start blueprint and point it at your device’s sensors and the slug from step 2.

    The blueprint calls rest_command.update_live_activity with the Progress template whenever one of your sensors changes. For segmented bars, timer-driven progress, and the Monitor layout, see the blueprints catalog.

    Your entities don’t match the blueprint inputs?

    Adapt them with helpers. For example, if your device does not expose a binary “running” state, create a Template Binary Sensor helper that turns a device state (such as a text value) into one.

  5. Start your device. Its progress appears on your Lock Screen and in the Dynamic Island, and updates as the automation runs. Nothing showing up? See Troubleshooting.

Since release 2026.9, the Home Assistant Companion app can turn a notification into a Live Activity on its own. See Live Activities and Live Updates in the Companion docs.

The Companion app is enough if you want a title, a message, a progress bar or a timer, an MDI icon, and your own colors, for something that finishes within a few hours. It is free, needs no extra app, and runs on iOS 17.2 or later.

Some of Aivi’s layouts, each set up from the integration’s panel or with a one-click blueprint:

Aivi is the better fit if you want:

  • Templates beyond a single card. Progress bars in one piece, in segments, or layered against a target, and a Monitor of live, color-coded values, with any SF Symbol as the icon. See Live Activity Templates.
  • Widgets built for your data. Thirteen widget templates, from Battery to Energy, for the Home Screen, Lock Screen, StandBy, and Apple Watch, set up from the same panel or automations. The Aivi Board combines several into one grid.
  • Activities longer than eight hours. Companion activities expire at Apple’s limit; Aivi’s long-running activities hand over to a fresh one.
  • Updates away from home without remote access. Companion activities need a token handshake between your phone and Home Assistant, so away from home they only start and update if you have remote access set up. With Aivi, Home Assistant only sends outgoing requests to Aivi’s API; your phone never connects to it.
  • Sharing without Home Assistant accounts. Up to five people see your activity or widget; they install Aivi and pay nothing.
  • The same API outside Home Assistant, from scripts, CI, Shortcuts, or anything that can make an HTTP request. See the API reference.

If you want full control over the automation logic, create the automation manually:

  • Add triggers for each entity you reference (running state, progress, etc). This keeps the Live Activity updated whenever any value changes.
  • Set up an action that posts the activity state to Aivi:
- action: rest_command.update_live_activity
response_variable: aivi_response
data:
slug: dishwasher
payload: >-
{% set running = is_state("binary_sensor.dishwasher_running", "on") %}
{
"state": "{{ 'ONGOING' if running else 'IDLE' }}",
"content": {
"template": "progress",
"icon": "washer",
"progress": {
"style": "simple",
"value": {{ (states('sensor.dishwasher_progress') | float(0)) / 100 }}
},
"header_left": {
"value": "{{ states('sensor.dishwasher_cycle_status') }}"
},
"header_right": {
"value": "{{ states('sensor.dishwasher_eta_minutes') | int(0) }} min left"
}
}
}

ONGOING starts the Live Activity or updates it in place, and IDLE ends it and dismisses it. See Activity states.

The | float(0) and | int(0) filters keep the payload valid JSON even when a sensor is briefly unavailable: they fall back to 0 instead of emitting an invalid value. The progress sensor is assumed to report 0–100, so it is divided by 100 to fit the 0.0–1.0 range the API expects.

The example above is specific to a dishwasher, but you can adapt it for any device in Home Assistant:

  • Change the slug to match your device (e.g., washing_machine, robot_vacuum, 3d_printer)
  • Update the sensor names to match your Home Assistant entities
  • Adjust the state logic to fit your device’s behavior (running, idle, paused, etc.)
  • Pick a different icon from SF Symbols that matches your device

Track several devices at once by creating one activity and one automation per device, each with its own slug. For more starting points (washing machine, EV charging, robot vacuum, oven, and more), each with its template and matching blueprint, see Use Cases. The Live Activity Templates page covers every layout option.

Apple ends every Live Activity after about eight hours. For a long 3D print, an overnight EV charge, or an automation that runs all day, turn on Long-running when you create or edit the activity in Aivi. Shortly before the limit, Aivi replaces the Live Activity with a fresh one carrying the same content, and it carries on.

Keep sending updates: if a long-running activity has received none for about six hours, Aivi ends it at the next handover instead of leaving a frozen card on your Lock Screen. For devices that go quiet for long stretches, send an occasional update to keep it live. See Forever Activities for the details.

Live Activities are the real-time layer: they appear while something is happening and dismiss when it is done. For state you want permanently on the Home Screen or Lock Screen (battery levels across your devices, electricity prices, energy flow), Aivi’s persistent widgets are set up in the same Aivi panel, and every display template also has a ready-made blueprint. See Home Assistant widgets on iPhone for the setup, the widget blueprints, or publishing widgets from Home Assistant for the underlying setup and a working automation.

With the integration, problems appear under Settings → System → Repairs, each with what to do; see If something is not working. The rest of this section is for blueprints and your own automations.

When a call fails, Home Assistant logs a rest_command warning with the status code under Settings > System > Logs. In a hand-written automation, the response_variable: aivi_response line also puts the response in the automation’s trace.

  • 401: the token in configuration.yaml is missing or mistyped. Copy it again from the app and reload your configuration.
  • 402: the token is valid, but the account has no active subscription.
  • 404: no activity with that slug exists. Create it in the app first, and check that the slug matches exactly.
  • 422: the payload is not valid for the template, often because a sensor returned unavailable or unknown. Add defaults such as | float(0) as in the example above. A 422 with Too many ongoing activities means you are at your plan’s limit of activities running at once.

If the calls succeed but the activity stops updating, iOS may be throttling it: Apple budgets how many Live Activities can start and how many updates each one receives. Trigger on meaningful changes rather than every sensor tick. See Limitations for the numbers we have observed.

Is a live notification the same as a Live Activity? On iPhone, yes: Apple calls them Live Activities, shown on the Lock Screen and in the Dynamic Island. On Android, the Companion app’s Live Updates play the same role; Aivi is for Apple devices only.

Do I still need the Companion app? Not for Aivi. Home Assistant talks to Aivi’s API directly, and the Aivi app receives the updates.

Does my Home Assistant need to be reachable from the internet? No. Home Assistant only makes outgoing requests to Aivi’s API, and your phone receives updates through Apple’s push service, at home or away.

Do I need to keep the Aivi app open? No. Live Activities update even when the app is closed.

Can someone else in my household see the activity? Yes. Share it from the app with up to five people. One update from Home Assistant reaches everyone’s devices, and they do not need a Home Assistant account.

How much does it cost? $2.99 a month or $23.99 a year, with the first week free. People you share with pay nothing.