Home Assistant Companion App: Your Smart Home in Your Pocket

The Companion App turns your phone into the ultimate smart home remote. Push notifications with camera snapshots, location tracking for presence automations, home screen widgets, phone sensors feeding data into HA, and Apple Watch or Wear OS controls. It is the single most useful thing you can set up after installing Home Assistant. Here is everything you need to know.

Check Your Setup Notifications Guide

iOS vs Android: What You Get on Each Platform

Both apps are excellent, but they have slightly different feature sets. Here is an honest comparison so you know what to expect.

FeatureiOSAndroid
Push notificationsYesYes
Actionable notificationsYesYes
Camera snapshots in notificationsYesYes
Location trackingYesYes
Home screen widgetsYesYes
Phone sensors (battery, steps, etc.)30+ sensors50+ sensors
Smartwatch appApple WatchWear OS
Siri/Google Assistant shortcutsSiri ShortcutsTasker + Assistant
Android Auto / CarPlayCarPlay (beta)Android Auto
Bluetooth proxyNoYes

Bottom line: Android gives you more sensors and a Bluetooth proxy. iOS gives you a polished Apple Watch experience and Siri Shortcuts. Both are excellent for daily use. You really cannot go wrong either way.

Setting Up the Companion App (5 Minutes)

Getting connected is straightforward. Here is the step-by-step for both platforms.

๐Ÿ“ฑ

Step 1: Download the App

iOS: Search "Home Assistant" in the App Store. Look for the blue house icon by Nabu Casa, Inc.

Android: Get it from the Google Play Store or download the APK directly from the GitHub releases page if you prefer sideloading.

๐Ÿ”—

Step 2: Connect to Your Server

Make sure your phone is on the same Wi-Fi network as your Home Assistant. Open the app and it will auto-discover your instance. Tap to connect, then log in with your HA credentials.

If auto-discovery does not work, manually enter your URL: http://homeassistant.local:8123

๐ŸŒ

Step 3: Set Up Remote Access

For access outside your home, configure both an internal and external URL in the app settings. The app switches between them automatically based on your network.

Options: Nabu Casa, Cloudflare Tunnel, Tailscale, or WireGuard. Nabu Casa ($6.50/month) is the easiest. Cloudflare Tunnel is free but takes more setup.

๐Ÿ”‹

Step 4: Disable Battery Optimization

This is the most important step people skip. Your phone will kill the app in the background unless you tell it not to.

Android: Settings, Apps, Home Assistant, Battery, Unrestricted.

iOS: Settings, General, Background App Refresh, On. Location: Always.

Phone Sensors: Turn Your Phone into a Smart Home Sensor

This is the hidden gem most people overlook. Your phone sends dozens of data points back to Home Assistant, and you can use all of them in automations.

Location Sensors

  • GPS coordinates (lat/long)
  • Geocoded location (street address)
  • Speed and altitude
  • Wi-Fi SSID and BSSID

Device Health

  • Battery level and state
  • Charging type (AC/USB/wireless)
  • Storage available (internal + external)
  • Screen on/off state

Activity Sensors

  • Step counter (daily steps)
  • Activity type (walking, driving, still)
  • Last reboot time
  • Do Not Disturb state

Connectivity

  • Wi-Fi connection state
  • Bluetooth state
  • Mobile data type (4G/5G)
  • Audio output (speaker, headphones)

Android Only

  • Bluetooth proxy for BLE devices
  • Next alarm time
  • Current audio volume levels
  • Active notification count

iOS Only

  • Focus mode (Do Not Disturb, Work, etc.)
  • Last updated by Siri shortcut
  • SIM info (carrier name)
  • Pedometer distance

Enable sensors manually: Most sensors are disabled by default. In the app, go to Settings, Companion App, Manage Sensors, and toggle on the ones you want. Each sensor you enable creates entities in Home Assistant that you can use in automations, dashboards, and conditions.

Notifications: The Killer Feature

The Companion App gives you push notifications from Home Assistant directly on your phone. You get images, actionable buttons, persistent alerts, and more beyond basic text. For the full breakdown, check our complete notifications guide. Here are the highlights.

Camera Snapshots

Attach a live camera image to any notification. Perfect for doorbell alerts: "Someone is at the front door" with a photo of who it is. Works with any HA camera entity.

Actionable Buttons

Add buttons right in the notification. "Garage door is open. Close it?" with a "Close" button that triggers an automation. No need to open the app at all.

Persistent Notifications

Some alerts should not be swipeable. Water leak detected? Persistent notification stays until you actively dismiss it. Critical alerts can even bypass Do Not Disturb.

Notification Groups

Group related notifications together so your phone does not explode. All motion alerts in one group, all climate alerts in another. Keep your notification shade organized.

Quick Example: Doorbell with Camera Snapshot

automation:
  - alias: "Doorbell notification with photo"
    trigger:
      - platform: state
        entity_id: binary_sensor.doorbell_press
        to: "on"
    action:
      - service: notify.mobile_app_your_phone
        data:
          title: "Someone at the door"
          message: "Doorbell pressed at {{ now().strftime('%H:%M') }}"
          data:
            image: /api/camera_proxy/camera.front_door
            actions:
              - action: "UNLOCK_DOOR"
                title: "Unlock Door"
              - action: "IGNORE"
                title: "Ignore"

Location Tracking and Presence Detection

The Companion App creates a device_tracker entity for each phone. Combined with Home Assistant zones, this gives you reliable presence detection: know when people arrive home, leave work, or enter any custom zone you define.

How It Works

The app uses a mix of GPS, Wi-Fi, and cell tower triangulation. On iOS, it also uses Apple's significant location change API, which is very battery efficient. On Android, it uses geofencing APIs from Google Play Services.

Updates happen when you cross a zone boundary, connect to/disconnect from Wi-Fi, or at a configurable minimum interval.

Setting Up Zones

Go to Settings, Areas and Zones, Zones in Home Assistant. The "Home" zone is created automatically. Add zones for work, school, gym, or anywhere else you want to track arrivals and departures.

Tip: Make your home zone radius at least 100 meters. Too small and GPS drift will cause false departures. 150 to 200 meters works well for most locations.

Battery Impact

Location tracking uses about 1 to 3% extra battery per day in most setups. The app is designed to be battery friendly, using geofencing events rather than constant GPS polling.

If you want even better accuracy without more battery drain, combine the app with your Wi-Fi router's device tracking. See our presence detection guide for a multi-sensor approach.

Home Screen Widgets and Quick Actions

Widgets let you control your smart home without opening any app. Toggle lights, check sensor values, or trigger scripts directly from your home screen.

Entity Widgets

Add any HA entity to your home screen. Toggle a light switch, see the current temperature, check if the garage door is open. Each widget shows live state and can be tapped to toggle or open details.

Button Widgets

Call any HA service with one tap. Create a "Goodnight" button that locks doors, turns off lights, arms the alarm, and sets the thermostat. Or a "Movie Mode" button that dims the lights and turns on the TV.

Watch Complications

Apple Watch: Add complications showing entity states on your watch face. Tap to toggle. Full watch app for browsing entities and triggering actions.

Wear OS: Complications plus a tile for quick entity control. Works even when your phone is not nearby (if the watch has Wi-Fi).

Car Integration

Android Auto: Control HA entities from your car dashboard. Toggle scenes, check sensor states, or trigger "arriving home" scripts while driving.

CarPlay: Currently in beta. Open a dashboard in your car for quick controls.

5 Automations That Make the Companion App Worth It

These automations use the phone sensors and location data from the Companion App. Copy the YAML and adjust entity names to match your setup.

1

Welcome Home: Lights On When You Arrive

When your phone enters the Home zone and it is after sunset, turn on the porch light and hallway light. Only triggers if the lights are actually off (no re-triggering if you step outside briefly).

automation:
  - alias: "Welcome home lights"
    trigger:
      - platform: zone
        entity_id: device_tracker.phone_ruud
        zone: zone.home
        event: enter
    condition:
      - condition: sun
        after: sunset
      - condition: state
        entity_id: light.hallway
        state: "off"
    action:
      - service: light.turn_on
        target:
          entity_id:
            - light.porch
            - light.hallway
        data:
          brightness_pct: 80
2

Low Battery Warning Before Bed

At 10 PM, if your phone battery is below 30% and it is not charging, send a notification reminding you to plug in. Never wake up to a dead phone again.

automation:
  - alias: "Low battery bedtime reminder"
    trigger:
      - platform: time
        at: "22:00:00"
    condition:
      - condition: numeric_state
        entity_id: sensor.phone_ruud_battery_level
        below: 30
      - condition: state
        entity_id: sensor.phone_ruud_battery_state
        state: "discharging"
    action:
      - service: notify.mobile_app_phone_ruud
        data:
          title: "Charge your phone"
          message: "Battery at {{ states('sensor.phone_ruud_battery_level') }}%. Plug in before bed."
          data:
            tag: "battery-reminder"
3

Auto-Arm Alarm When Everyone Leaves

When the last person leaves the house (all tracked phones are away), wait 5 minutes (in case someone forgot something), then arm the alarm and turn off non-essential devices.

automation:
  - alias: "Arm alarm when everyone leaves"
    trigger:
      - platform: state
        entity_id: group.family_devices
        to: "not_home"
        for: "00:05:00"
    action:
      - service: alarm_control_panel.alarm_arm_away
        target:
          entity_id: alarm_control_panel.home_alarm
      - service: climate.set_preset_mode
        target:
          entity_id: climate.thermostat
        data:
          preset_mode: "away"
      - service: notify.family_phones
        data:
          title: "House secured"
          message: "Alarm armed and thermostat set to away mode."
4

Pre-heat When Leaving Work

When your phone leaves the "Work" zone, start heating the house so it is warm when you arrive. Only runs on weekdays during winter months.

automation:
  - alias: "Pre-heat when leaving work"
    trigger:
      - platform: zone
        entity_id: device_tracker.phone_ruud
        zone: zone.work
        event: leave
    condition:
      - condition: time
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
      - condition: template
        value_template: "{{ now().month in [1,2,3,10,11,12] }}"
    action:
      - service: climate.set_temperature
        target:
          entity_id: climate.thermostat
        data:
          temperature: 21
      - service: notify.mobile_app_phone_ruud
        data:
          title: "Heating up"
          message: "Thermostat set to 21C. Should be warm when you get home."
5

Wake-Up Alarm Sync

Android only. Reads your next alarm time from the phone sensor and starts a gentle wake-up routine 15 minutes before: slowly ramp bedroom lights, start the coffee maker, adjust thermostat.

automation:
  - alias: "Wake-up routine from phone alarm"
    trigger:
      - platform: template
        value_template: >
          {{ as_timestamp(states('sensor.phone_ruud_next_alarm'))
             - as_timestamp(now()) < 900
             and as_timestamp(states('sensor.phone_ruud_next_alarm'))
             - as_timestamp(now()) > 840 }}
    action:
      - service: light.turn_on
        target:
          entity_id: light.bedroom
        data:
          brightness_pct: 10
          color_temp_kelvin: 2700
      - delay: "00:05:00"
      - service: light.turn_on
        target:
          entity_id: light.bedroom
        data:
          brightness_pct: 40
          color_temp_kelvin: 3500
          transition: 300
      - service: switch.turn_on
        target:
          entity_id: switch.coffee_maker
      - service: climate.set_temperature
        target:
          entity_id: climate.thermostat
        data:
          temperature: 21

Pro Tips for Power Users

Use Notification Tags

Add a tag to notifications that update. A "currently playing" notification can update in place instead of stacking. A weather alert can replace the old one when conditions change.

Combine with Tasker (Android)

Tasker can call HA webhooks, and HA can send commands back to Tasker through notifications. Use this for things HA cannot do natively: change phone volume, toggle airplane mode, or open specific apps.

Use Siri Shortcuts (iOS)

Create Siri Shortcuts that call HA services. "Hey Siri, I'm going to bed" can trigger your entire goodnight routine. Add them to the Shortcuts widget for one-tap access without voice.

Multiple Servers

The app supports connecting to multiple Home Assistant instances. Useful if you have a test server, or if you manage smart homes for family members. Switch between servers from the app settings.

Kiosk Mode for Tablets

Turn a cheap tablet into a wall dashboard. Enable "Always On" display, set the default dashboard, and use the kiosk-mode HACS plugin to hide the sidebar and header. A Fire HD 10 on sale makes a perfect panel.

Location Accuracy Tricks

For more reliable home detection: combine the app's GPS with Wi-Fi SSID detection (the sensor reports which network you are on). Create a Bayesian sensor that considers both for near-perfect accuracy.

Your First Weekend with the Companion App

Here is a realistic plan to get the most out of the app without burning out.

๐Ÿ•

Saturday Morning (30 min)

  • Install the app on all household phones
  • Connect to your HA instance
  • Set up remote access (Nabu Casa or Cloudflare Tunnel)
  • Disable battery optimization on every phone
๐Ÿ•‘

Saturday Afternoon (30 min)

  • Enable key sensors (battery, location, Wi-Fi, activity)
  • Set up Home and Work zones
  • Create your first automation (welcome home lights)
  • Test a camera snapshot notification
๐Ÿ•’

Sunday (20 min)

  • Add home screen widgets for your most-used controls
  • Set up an "everyone left" automation
  • Configure Apple Watch or Wear OS complications
  • Fine-tune notification groups to avoid alert fatigue

Not Sure If Your Devices Work with Home Assistant?

Before you set up the Companion App, make sure your smart home devices are compatible. Our free scan checks your setup and tells you exactly what works, what needs adapters, and what to replace.

Run the Free Scan

Frequently Asked Questions

Is the Home Assistant Companion App free?

The Android app is completely free. The iOS app is also free to download and use, with an optional in-app purchase to support development. All features work without paying. The app itself costs nothing, but you may need Nabu Casa ($6.50/month) or a VPN/tunnel for remote access outside your home network.

Why are my phone sensors not updating in Home Assistant?

The most common cause is battery optimization. Both Android and iOS aggressively kill background apps. On Android: Settings, Apps, Home Assistant, Battery, Unrestricted. On iOS: enable Background App Refresh and set Location to Always. Also check that sensors are enabled in the app under Settings, Companion App, Manage Sensors.

Can I use the app on multiple devices?

Yes. Each device registers separately in Home Assistant with its own entities, sensors, and notification target. This is actually great for household presence detection, since you can track who is home based on which phones are connected.

Does the app drain my battery?

In typical use, the app uses 1 to 3% extra battery per day. It uses efficient geofencing APIs rather than constant GPS polling. If you see higher drain, check if you have too many sensors set to update at a very short interval. The default settings are well optimized.

Does it work on tablets and smartwatches?

Yes to both. The app works on iPads and Android tablets (great as wall dashboards). The iOS version includes an Apple Watch app with complications and entity controls. Wear OS has a separate companion with tiles and complications. Tablets are especially useful with Fully Kiosk Browser for dedicated wall panels.

How do I get notifications when I am away from home?

You need remote access. The easiest option is Nabu Casa ($6.50/month), which handles everything automatically. Free alternatives include Cloudflare Tunnel, Tailscale, or WireGuard VPN. Check our remote access guide for step-by-step setup of each option.