[App][Pro] Health Sync for Google Health

Bring your health data to Homey! This app connects Homey Pro to the Google Health API and turns your steps, heart rate, sleep, weight and more into Homey device capabilities — with full Insights history and a rich set of Flow cards.

Works with any data source that feeds Google Health (Pixel Watch, Fitbit, and other connected apps/devices).

:bar_chart: 16 sensors, all with Insights

Activity Heart Body Sleep & more
Steps today Heart rate (latest) Weight Sleep last night (h)
Distance today Resting heart rate Body fat Water intake today
Calories today Heart rate variability (HRV) Blood oxygen (SpO2)
Active calories today VO2 max Respiratory rate
Floors today
Active zone minutes

Daily counters reset at local midnight automatically.

:wrench: Setup

Google grants Health API access per Google Cloud project, so you bring your own (free) OAuth client — the app’s settings page walks you through it step by step:

  1. Create a (free) project in the Google Cloud Console and enable the Google Health API
  2. Create an OAuth client (type Web application) with redirect URI https://callback.athom.com/oauth2/callback and add yourself as a test user
  3. Paste Client ID + Secret into the app settings, then add the “Google Health” device and sign in
  4. Important: tick ALL permission checkboxes on Google’s consent screen (Google leaves them unchecked by default)

:test_tube: Test version

:backhand_index_pointing_right: Install the test version

Known limitations while testing:

  • Data arrives via polling (configurable, 5–1440 min) — no realtime push yet
  • While your Google consent screen is in “Testing” mode, Google expires logins after 7 days → just use Repair on the device (or publish your consent screen to make logins permanent)

Feedback, bug reports and feature requests are very welcome — either here or on GitHub.

:locked: Privacy & security

Health data is sensitive, and this app was largely written by an AI — so here is exactly where your data goes, all of it verifiable in the public source code:

  • Your data never touches my servers — there are none. The app runs 100% locally on your Homey Pro and talks to exactly one endpoint: Google’s Health API (health.googleapis.com), plus Google’s OAuth endpoints for login. No telemetry, no analytics, no third-party services.
  • You own the API access. The OAuth client belongs to your own Google Cloud project. I never see your Client ID, secret, tokens or any health data — I couldn’t even if I wanted to.
  • Tokens stay on your Homey. Access/refresh tokens are stored in Homey’s device store on your Homey Pro, nowhere else.
  • Read-only by default. The app only requests read scopes. Write access (for the “Log weight/body fat” Flow cards) is opt-in and off by default.
  • Zero runtime dependencies. No third-party npm packages in the app — just Node.js built-ins and the official Homey SDK. Nothing to hide in, small attack surface, quick to audit.
  • No special Homey permissions. The manifest’s permission list is empty.
  • Fully open source (MIT). Every line is public. The AI-generated code went through a multi-agent adversarial review and you’re welcome to review it yourself — that’s the honest answer to “can I trust vibe-coded software”: don’t trust, verify.

:robot: Credits & sources

This app was built end-to-end with Claude Fable 5 (Anthropic) in Claude Code — as a real-world test of Fable 5’s capabilities: multi-agent code-review workflows with adversarial verification, reverse-engineering the API semantics from CLI source code, logo design rendered via headless Chromium, and live debugging against a real Homey Pro.

Sources used:

This app is not affiliated with Google. Google Health is a trademark of Google LLC.

Hi,

FYI these are shown in the app store already, in theory there’s no need to list these here :wink:

Hi :slight_smile:
Will edit the Post :slight_smile: Thanks!!

Update: Health Report (PDF) & Asleep sensor :tada:

A big update just landed on the test channel:

:page_facing_up: Printable health report — Google Health itself has no PDF export, so the app
now does it for you: open the app settings, pick a period (14/30/60/90 days) and
generate a report with summary stats, trend charts (steps, resting heart rate,
sleep, weight) and a full daily-values table — made to hand to your doctor.
It renders dark on screen and switches to a clean light layout automatically when
you print / save as PDF. Under the hood the report is served briefly (5 minutes)
from your Homey Pro on your local network, protected by a freshly generated
one-time password — nothing ever leaves your home.

:sleeping_face: New “Asleep” sensor — realtime sleep state isn’t possible with the Google
Health API (sleep sessions sync after you wake), so this is a pragmatic hybrid:
set it via the new “Mark as asleep” flow action in your bedtime routine (e.g.
phone starts charging after 10 pm), and it flips back to awake automatically
when your freshly ended night’s sleep syncs. Comes with an Asleep/Awake
condition card and Insights history of your sleep windows.

:drop_of_blood: SpO2 fix — blood oxygen now uses Google’s daily summary instead of raw
spot readings, so a single low-confidence sample (looking at you, 50 %) no longer
skews the value.

Update via the test link
feedback very welcome!

Update — v0.4.0 (Test)

New test build is live. This one is all about more data and better accuracy.

New health data (all with Insights):

  • :red_apple: Nutrition: calorie intake, carbs, protein, fat
  • :drop_of_blood: Blood glucose (+ a Flow trigger for new measurements)
  • :fire: Basal calories & :chair: sedentary minutes
  • :wind_face: Respiratory rate, :dashing_away: VO2 max, :mountain: altitude
  • :thermometer: Skin-temperature variation (the deviation-from-baseline value your wearable actually reports during sleep)
  • :heart: Optional ECG & irregular-heart-rhythm data — off by default, needs an extra Google permission you can enable in the app settings

Fixed:

  • Water, nutrition macros and sedentary minutes now read correctly from Google Health (they were coming up empty before)
  • More accurate blood-glucose parsing

A quick note on empty tiles: if something like floors, VO2 max or core body temperature stays blank, it usually just means Google Health has no data of that type for your account/device — not a bug. The app now logs per-type diagnostics, so if you think a value should be there, grab the [diag] line from the app log and I’ll take a look.

As always: still built and tested with Claude Fable 5, and it only talks to your own Google Cloud project — no data ever passes through me. Feedback and logs welcome. :folded_hands:

Update — v0.5.0 (Test)

This release adds dashboard widgets and makes the health report a lot friendlier.

New: dashboard widgets (light/dark aware)

  • Health tile — a compact tile for a single metric. Pick any of the ~24 data points, the device, and an accent colour. Add one per data point to build your own row of tiles.
  • Health overview — several key values at a glance in one card; choose which ones via checkboxes, and it only shows metrics that actually have data.
  • Each metric gets a data-type-matched icon — an ECG zig-zag for heart rate, waves for water, a moon for sleep, a flame for calories, footsteps for steps, and so on.

Health report improvements

  • :puzzle_piece: Customize it right on the page — tick/untick whole sections (patient details, summary, individual charts, daily table, disclaimer) and individual table columns. Unticked parts aren’t printed or saved to the PDF, and your choices are remembered.
  • :clipboard: One-tap copyable password — no more typing the access password by hand.
  • :mobile_phone: Fixed report generation in the mobile app — it previously only worked on a PC; now it works the same on your phone.

As always: built and tested with Claude Fable 5

Update — v1.0.0 :tada:

First stable release is out and submitted for certification — Health Sync for Google Health is on its way to the public Homey App Store!

New: dashboard widgets (native Homey styling, light/dark aware, each metric with a data-type-matched icon — ECG line for heart rate, waves for water, moon for sleep, flame for calories…)

  • Health tiles — a grid of small square metric tiles; pick which data points show via checkboxes.
  • Health tile — a single metric shown large, with a live sparkline of recent values.
  • Health overview — several key values in one compact card.

The app is now fully read-only — it only ever reads from Google Health and never writes anything back.

Fixes & polish

  • Safer account verification when repairing a device
  • No spurious Flow triggers firing on install
  • The health report no longer fails when generating over long periods (e.g. 90 days)
  • Escaped names / clearer empty states in the report and widgets

Feedback welcome! :slight_smile: