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).
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.
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:
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.
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.
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:
google-health-cli (Apache 2.0) — Google Health API v4 endpoints, OAuth scopes, all 40 data types and raw response formats
homey-app-skill (MIT, by dvflw) — Homey SDK v3 conventions and best practices
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.
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.
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.
New test build is live. This one is all about more data and better accuracy.
New health data (all with Insights):
Nutrition: calorie intake, carbs, protein, fat
Blood glucose (+ a Flow trigger for new measurements)
Basal calories & sedentary minutes
Respiratory rate, VO2 max, altitude
Skin-temperature variation (the deviation-from-baseline value your wearable actually reports during sleep)
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.
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
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.
One-tap copyable password — no more typing the access password by hand.
Fixed report generation in the mobile app — it previously only worked on a PC; now it works the same on your phone.
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