Skip to content

Home Assistant

A native HACS integration that bridges Home Assistant entity state changes to PushWard Live Activities on your iPhone.

Info

Unlike other PushWard integrations, Home Assistant uses a custom HACS component — no Docker container required.

How It Works

The integration listens for state changes on entities you configure. When an entity enters a start state (e.g., a washer turns on), a Live Activity appears on your Lock Screen. As the entity's state or attributes change, the activity updates in real time. When the entity reaches an end state (e.g., turns off), the activity is dismissed.

Requirements

  • Home Assistant 2025.7.0 or newer
  • PushWard iOS app installed on your iPhone
  • A PushWard integration key (recommended scope: activity:manage, slug pattern: ha-*)

Installation

Via HACS (Recommended)

  1. Open HACS in Home Assistant
  2. Click the three-dot menu and select "Custom repositories"
  3. Add https://github.com/mac-lucky/pushward-hass with category Integration
  4. Search for "PushWard" in HACS and install
  5. Restart Home Assistant

Manual

Copy custom_components/pushward/ from the repository into your Home Assistant's custom_components/ directory and restart.

Setup

Go to Settings > Devices & Services > Add Integration > PushWard.

FieldDescription
Server URLPushWard server base URL (default: https://api.pushward.app)
Integration KeyYour hlk_ token with activity:manage scope
💡 Tip

Create the integration key in the PushWard iOS app under Settings with slug pattern ha-* and activity:manage scope.

Adding Entities

After setup, click "Add tracked entity" on the integration card. Each entity becomes a Live Activity.

FieldDefaultDescription
EntityAny Home Assistant entity
Activity SlugAuto (ha-<entity-id>)Unique identifier on PushWard
Activity NameEntity IDDisplay name shown on iPhone
IconDomain defaultSF Symbol name (e.g., washer, thermometer) or MDI icon with mdi: prefix (e.g., mdi:washing-machine, mdi:thermometer)
Priority10–10 eviction priority
Templategenericgeneric, countdown, alert, or steps
Start StatesDomain defaultComma-separated states that start the activity
End StatesDomain defaultComma-separated states that end the activity
Min. Update Interval5sCooldown between mid-activity updates
Progress AttributeHA attribute holding 0–100 percentage
Remaining Time AttributeHA attribute holding remaining seconds
Accent ColorBlueColor for the Live Activity accent

Domain Defaults

Start/end states and icons are pre-filled based on the entity's domain:

DomainIconStart StatesEnd States
binary_sensorcircle.fillonoff
switchpoweronoff
climatethermometerheating, coolingoff, idle
vacuumfancleaningdocked, idle
media_playerplay.circle.fillplayingoff, idle, paused
locklock.fillunlockedlocked
coverrectangle.portrait.arrowtriangle.2.outwardopening, closingopen, closed
timertimeractiveidle, paused
sensorgaugemanualmanual

Activity Lifecycle

Start

When an entity enters a start state, the integration creates the activity on PushWard (if it doesn't exist) and sends a push-to-start notification. The Live Activity appears on your iPhone.

Updates

While active, any state or attribute change triggers a throttled update. Rapid changes are coalesced — only the latest state is sent when the cooldown expires. If progress_attribute is configured, the progress bar reflects the attribute value.

End

When the entity reaches an end state, a two-phase dismissal runs:

  1. A "Complete" update is sent (green accent, checkmark icon, progress 1.0)
  2. After 5 seconds, the activity is ended and dismissed from the Lock Screen

If the entity starts again during the 5-second window, the end is cancelled.

HA Restart

On Home Assistant restart, any tracked entity already in a start state automatically resumes its Live Activity.

Info

The integration is entirely event-driven — it listens for HA state changes, not polling. The update_interval setting is a rate-limiter, not a polling period.

Example: Washing Machine

Track a washing machine using a sensor entity with a progress attribute:

SettingValue
Entitysensor.washing_machine_status
Iconwasher (or mdi:washing-machine)
Templategeneric
Start Stateswashing, rinsing, spinning
End Statesoff, complete, idle
Progress Attributeprogress_percent
Accent ColorBlue

When the washer starts, a Live Activity appears showing "Washing" with a progress bar. As progress_percent increases, the bar fills. When the cycle completes, a green "Complete" notification appears before the activity dismisses.