Open sourceNo cloudNo account

Health Connect and screen time, sent to your own server

Life Dashboard Companion is an open-source Android app that sends Health Connect data and screen time per app to Home Assistant, MQTT or your own webhook, with no cloud and no account. It reads what Samsung Health, Google Health, Garmin Connect, Oura, Withings and others write to Health Connect.

Google Play: coming, as a paid listing of the same app · Obtainium · F‑Droid: coming

The Health tab of the Android app

What it does

33 Health Connect types

Steps, sleep stages, heart rate, HRV, weight, blood pressure, glucose, workouts, nutrition and cycle tracking, each with its own switch.

Every record, with its source

Each record goes out with a stable ID and the app that wrote it. Daily totals count a walk once.

A year of history

Backfill 30, 90 or 365 days. In Home Assistant each day lands on its own date in long-term statistics.

Screen time per app

Foreground minutes for every app, with a day boundary you choose and a filter that keeps the apps you pick out of what's sent.

Three ways out

The Life Dashboard integration, MQTT with Home Assistant Discovery, or any webhook that accepts a JSON POST. Several at once works too.

Receive into Health Connect

Scale and blood pressure readings from Home Assistant go into Health Connect, where Samsung Health and Google Health read weight.

The Pair with a receiver dialog in the Android app
Home Assistant and MQTT

Into Home Assistant, with or without a broker

The Life Dashboard integration pairs with one QR code and keeps every day in long-term statistics. MQTT with Home Assistant Discovery suits a setup that already runs a broker and only needs current values.

  • Sensors for 25 of the 33 types Today's steps, distance and calories, the latest heart rate, sleep, weight, blood pressure, glucose and more, and the last workout. MQTT gets 24, without the workout.
  • Screen time in total and per app Both routes get the totals. The sensor per app comes with the integration.
  • Two phones on one broker Give each a Phone name under Advanced, and each gets its own device and topics.
  • Pick one route Running both gives you two devices with the same numbers.
How to add Health Connect to Home Assistant
The Webhook settings with an HMAC signing secret
Webhooks

Every record as JSON, to a server you run

Point the app at n8n, Node-RED, the Grafana stack or a short script. A webhook also gets what no sensor holds: single meals, cycle tracking entries and workout details.

  • HMAC-SHA256 signatures An X-Signature header your server can check. Generate creates a secret of 32 random bytes.
  • Client certificates (mTLS) Picked from Android's credential store, for a server behind a reverse proxy that requires one.
  • An outbox on the phone Up to 700 payloads wait while your server is down, and the next sync sends them first.
  • Deletions reported A record deleted in Health Connect is named in the next payload, so your receiver can drop it too.
Send Health Connect data to your own webhook
The Screen Time tab of the Android app
Screen time

Android screen time per app, next to your health data

The app reads foreground time per app from Android's usage statistics, the same numbers Digital Wellbeing uses. Screen time has its own schedule and webhooks, and works without Health Connect on Android 8.0 or newer.

  • A day boundary of your own On by default at 04:00, so phone use after midnight counts toward the day before.
  • All, All except or Only An app you filter out is not named in what's sent; the day's total still counts its time.
  • The last 7 days in every sync A day that was still running at one sync is corrected by the next.
  • A sensor per app in Home Assistant Created disabled, so you enable only the apps you want to automate on.
Android screen time in Home Assistant
Install

Get the Android app

Life Dashboard Companion for Android

Health Connect and screen time per app

Download the free APK

Open it on your phone and allow installs from your browser once. Each new release is on GitHub, or Obtainium updates it for you.

  • Google Play ComingIn closed testing now. It will be a paid listing; the APK on GitHub stays free.
  • Obtainium AvailableAn app updater for GitHub apps: installs the same APK and keeps it up to date. Open this link on your phone.
  • F-Droid ComingSubmitted and in review.

What you need

Health data needs Android 9 or newer with Health Connect, which is built into Android 14 and later and comes from Google Play on Android 9 through 13. Screen time works on Android 8.0 and newer. The Life Dashboard integration needs Home Assistant 2026.3 or newer with HACS. MQTT needs a broker, and a webhook needs a server that accepts a JSON POST.

Sends to the Home Assistant integration, the Grafana stack, an MQTT broker or any webhook.

FAQ

Questions about the Android app

Which Health Connect types become Home Assistant sensors?

25 of the 33 through the integration, 24 over MQTT. The other eight (nutrition, mindfulness, sexual activity and five cycle tracking types) are events rather than values, so they get no sensor; the integration counts mindfulness minutes per day. Workouts get a last workout sensor and the minutes of today and yesterday in the integration. A webhook of your own gets those records in full.

Can it send to Home Assistant and a webhook at the same time?

Yes, with two things to know today. Each tab keeps one signing secret, and pairing with Home Assistant sets it, so give a second receiver the same secret. And a payload counts as delivered once one destination takes it, so a destination that's down at that moment misses it. Health Connect and Screen Time can each send to several webhooks and to MQTT at once. Giving every destination its own secret and delivery is planned.

What happens when my server is down?

Each sync writes its payload to the phone first and deletes it only once a webhook has accepted it. The outbox holds up to 700 Health Connect payloads, about a week of syncs at the 15-minute interval, and the next sync that gets through delivers them first.

Can it sync at fixed times instead of an interval?

Yes. Each tab has its own Sync Schedule: every 15 minutes or longer, or a list of times, on the days you pick, with quiet hours. A Quick Settings tile, Tasker and MacroDroid can start a sync too.

Does Receive work over MQTT?

No. Readings come back in the integration's signed response to the webhook call the app already makes, so Receive needs the Life Dashboard integration. Smart scale to Samsung Health walks through the setup.

How does the app store my secrets?

Auth headers, signing secrets and MQTT passwords are encrypted with AES-256-GCM, with a key the Android Keystore holds. Android's own backup leaves them out, along with the webhook logs.

How much battery does it use?

Between syncs the app does nothing: no service keeps running and no connection stays open. Each sync is a short job that Android starts on your schedule. On Samsung, Xiaomi and similar phones, set the app's battery usage to Unrestricted, or Android stops the scheduled syncs; the setup guide has the paths per brand.

What does the app ask for, and what leaves the phone?

Health Connect read permissions for the types you switch on, write permissions only for the Receive types you switch on, usage access for screen time, the camera only while you scan a pairing code, internet access, and notifications for failed syncs and backfill progress. Data goes only to the addresses you enter. The privacy policy lists every permission and every field.

Can I switch between GitHub, Obtainium, F-Droid and Google Play later?

Yes. Every build has the same package name and is signed with the same key, so one installs over the other and your settings stay.