Why isn't my health data arriving?

Most problems with Life Dashboard Companion come down to four things: the phone stops the app in the background, the watch app doesn't write into Health Connect, a permission is missing, or the phone can't reach the address it sends to. This page goes through them in the order worth checking. The first place to look is always the app's Logs tab: it shows every sync and delivery with the server's answer, and a tap on a row gives the details.

Ask in Discussions

Syncs stop when the app is closed

If the app only syncs when you open it, the phone is stopping its background jobs to save battery. Samsung, Xiaomi, OnePlus, Huawei and other brands do this, often without telling you. Change these settings once, right after installing:

  • Samsung: Settings > Apps > Life Dashboard > Battery, set to Unrestricted. Then Settings > Battery (on some versions under Device care) > Background usage limits > Never sleeping apps, and add Life Dashboard.
  • Xiaomi, Redmi and POCO: switch on autostart for Life Dashboard (on newer versions Background autostart under the app's permissions), and set its battery saver to No restrictions. Locking the app in the recent apps screen, with a long press and the padlock, keeps it from being cleared too.
  • Pixel and other phones close to stock Android: Settings > Apps > Life Dashboard > App battery usage, set to Unrestricted.
  • OnePlus, Oppo, Huawei and other brands: set the app's battery usage to Unrestricted or No restrictions under Settings > Apps > Life Dashboard, and look for a separate autostart or startup manager. The menus move between versions; dontkillmyapp.com keeps the current steps per brand.

Then check that background reading is still allowed in Health Connect (see the next section): without it, only Sync Now works. Even with every setting right, Android runs a background job at most every 15 minutes, and can wait longer when the phone lies idle. The Logs tab shows when syncs actually ran.

Health Connect is empty or the app can't read it

  1. Health Connect is there. On Android 14 and newer it's part of the system settings; search the settings for "Health Connect" (on Samsung it's under Security and privacy). On Android 9 to 13, the card on the app's Health tab offers to install or update it. Android 8 doesn't support it; screen time still works there.
  2. Your watch app writes into it. That's a setting in the other app. In Samsung Health it's Settings > Health Connect; in Garmin Connect it's Settings > Connected Apps > Health Connect, on Android 14 or newer. The Samsung, Garmin and Fitbit guides have the details. Open App on the Health tab opens Health Connect, so you can see whether the data is there at all.
  3. The app may read it. Tap Grant on the Health tab. Health Connect asks for read access per data type and for reading in the background; scheduled syncs need the second one. A dimmed type under Data Types has no permission yet: switch it off and on to ask again.
  4. Older history needs one more permission. Health Connect only lets an app read data from up to 30 days before it first got access. For more, the backfill dialog asks for history access.

Sync Now says "No new data"

Each sync sends only what's new since the last one, and the very first sync reads the last 7 days. View on the Health tab shows what the next sync would send. For older data, run a backfill. Also check that the watch synced with the phone: Garmin Connect writes into Health Connect after the watch syncs, and Samsung Health once the watch connects or when you open Samsung Health.

Nightly values such as HRV, respiratory rate and sleep often arrive hours after you wake up. Watch apps write the night into Health Connect only when they sync in the morning. The app sends it with the first sync after that; nothing is lost.

No sensors in Home Assistant

  • With the integration: Settings > Devices & services > Life Dashboard, then the phone's device. A sensor appears once the phone has sent that type. The entity IDs start with the phone's name, such as sensor.owens_pixel_steps_today. The screen time sensors per app are created disabled: show the disabled entities on the device and enable the apps you want.
  • The history isn't in the sensors but in the long-term statistics. Add a Statistics graph card and pick the phone's statistics from the list.
  • With MQTT: Settings > Devices & services > MQTT, device Life Dashboard Companion.
  • Nothing at all: check the Logs tab. A failed delivery means the phone couldn't reach Home Assistant; see the next section.

The phone can't reach Home Assistant

The phone sends to the address in the pairing code, so that address has to work from the phone.

  • homeassistant.local often fails on Android, which doesn't reliably look up .local names. Use the IP address of Home Assistant instead, such as http://192.168.1.10:8123; it's under Settings > System > Network.
  • A home network address only works on your home Wi-Fi. Syncs away from home fail, the phone keeps the data, and the first sync back home sends it. A notification about failed syncs while you're out is this.
  • A public address, such as a Home Assistant Cloud URL or your own https:// domain, works everywhere.
  • "Plain HTTP is blocked": the address starts with http://. Switch on Allow plain HTTP webhooks under Advanced for a server on your own network or VPN; the data then travels unencrypted on that network.
  • A certificate error on https://: your server uses a certificate from your own CA, or a self-signed one. Under Advanced > Server certificates (app 1.27.0 and newer), trust the CA certificates installed on the phone for that host, or read the server's certificate, check its fingerprint and trust exactly that one. There is no option that ignores certificate errors.

To change the address later, open the integration's Reconfigure in Home Assistant, change it there and scan the new code.

Pairing doesn't work

  • Scanning opens a web page instead of the app. Android checks the pairing link against the app's signature when it's installed. The page has an Open in the app button that always works, and scanning from inside the app, with Scan a pairing code, never depends on that check.
  • "This code is from a newer version". The integration is newer than the app. Update the app and scan again.
  • Pairing works but nothing arrives. The address in the code isn't reachable from the phone: see the section above.

Numbers that look wrong

  • Steps counted twice? Not in Home Assistant. When Samsung Health and Garmin both write a walk, Health Connect keeps both copies but also calculates a daily total that counts the overlap once, and the integration uses that total. Keep Daily totals in payload switched on under Advanced.
  • Screen time differs from Digital Wellbeing. The app's day starts at 04:00 by default, apps used for a minute or less are left out, and only time on screen counts.
  • A field is missing, such as a nutrient. The app sends every field Health Connect has, but only when the app that wrote the record filled it in.

On an iPhone

  • A locked iPhone can't read Apple Health. iOS keeps Health data encrypted while the phone is locked, so a sync at that moment reads nothing; the next sync with the phone unlocked catches up.
  • A type is missing. Check Settings > Health > Data Access & Devices > Life Dashboard, where every type has its own switch.

Common questions

Does the app drain the battery?

No. Between syncs it does nothing: no service runs and no connection stays open. Each sync is a short job Android starts on your schedule, once an hour by default. A backfill uses more while it runs.

Is data lost when a sync fails?

No. A payload that wasn't delivered stays on the phone and goes out with the next sync that reaches your server, oldest first. The Logs tab shows each attempt.

Where do I ask if this page doesn't help?

In Discussions on GitHub, or open an issue with the row from the Logs tab. The full troubleshooting list is in the setup guide.