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.
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.
With the HACS integration (recommended)
Section titled “With the HACS integration (recommended)”-
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.
-
In the Activities tab, create an activity with the Progress template.
-
In Home Assistant, install the Aivi integration through HACS and paste your token. The integration guide has the two buttons that do it.
-
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.
-
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.
With a blueprint
Section titled “With a blueprint”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.
-
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.
-
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 returns404for a slug that does not exist yet. -
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: PATCHheaders:content-type: application/jsonauthorization: Token [token]payload: '{{ payload }}' -
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_activitywith 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.
-
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.
Aivi or the Companion app?
Section titled “Aivi or the Companion app?”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.
Setup without blueprint
Section titled “Setup without blueprint”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.
Adapting the example
Section titled “Adapting the example”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.
Keep it running past 8 hours
Section titled “Keep it running past 8 hours”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.
Widgets too
Section titled “Widgets too”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.
Troubleshooting
Section titled “Troubleshooting”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 inconfiguration.yamlis 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 returnedunavailableorunknown. Add defaults such as| float(0)as in the example above. A422withToo many ongoing activitiesmeans 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.
Common questions
Section titled “Common questions”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.
Aivi: Live Activities and widgets over an API · Pricing · App Store