Going further
Switching from Health Auto Export
Field mappings and compatibility limits.
Compatibility mode keeps existing field names for Home Assistant, MQTT and web address destinations using Metrics JSON.
What maps to what#
| Hozz | Compatibility mode | |
|---|---|---|
| Date format | 2026-02-06T22:30:00.000Z | 2026-02-06 14:30:00 -0800 — local time, space separated, numeric offset, not ISO 8601 |
| Heart rate points | qty | Min, Avg, Max — capitalised, with no qty |
| Heart rate units | count/min | bpm |
| Sleep points | date, qty as a raw stage number | startDate, endDate, qty in hours, value as a stage name |
| Sleep units | count | hr |
| Sleep stage | 0–5 | In Bed, Asleep, Awake, Core, Deep, REM |
| Workout name | Workout | The activity, e.g. Running |
| Workout duration | absent | Seconds |
| Per-point units | present | absent |
{
"data": {
"metrics": [
{
"name": "heart_rate",
"units": "bpm",
"data": [
{
"date": "2026-02-06 14:30:00 -0800",
"Min": 62,
"Avg": 62,
"Max": 62,
"source": "Apple Watch"
}
]
},
{
"name": "sleep_analysis",
"units": "hr",
"data": [
{
"startDate": "2026-02-05 23:00:00 -0800",
"endDate": "2026-02-06 00:30:00 -0800",
"qty": 1.5,
"value": "Core",
"source": "Apple Watch"
}
]
}
],
"workouts": [
{
"id": "7b21…",
"name": "Running",
"start": "2026-02-06 07:00:00 -0800",
"end": "2026-02-06 07:30:00 -0800",
"duration": 1800
}
]
}
}What this mode does not claim#
Field renaming cannot remove these differences.
A heart rate point carries the same number three times#
Hozz sends individual samples, not rollups. Each heart-rate point repeats its value in Min, Avg and Max. Aggregated sleep is absent.
Automations that require differing Min and Max will not work.
Blood pressure stays split#
Hozz sends systolic and diastolic as separate metrics. It does not guess pairings.
Metadata-derived point fields are not emitted#
Metadata-derived fields such as mealTime and reason are absent.
Deletions are still included#
Hozz adds a deletions key. Existing consumers may ignore it.
Compatibility boundary#
Hozz matches the published data.metrics[].{name, units, data} envelope, the yyyy-MM-dd HH:mm:ss Z timestamp, qty, the capitalised Min/Avg/Max, and the sleep point's startDate/endDate/value.
Undocumented behaviour is not covered. Test any dependency on it.
Running both at once#
Run Hozz beside the existing exporter and compare separate destinations before switching.