All documentation

Destinations

MQTT

Publish batches and latest values to MQTT.

Format
Metrics JSON
Protocol
MQTT 3.1.1, QoS 0, retained
Schemes
mqtt:// and mqtts://

Hozz publishes batches and latest values to your MQTT broker.

Setting it up#

  1. Enter the broker address#

    For example mqtt://homeassistant.local:1883. Use mqtts:// for TLS.

  2. Add a username and password if your broker requires them#

    Credentials go to the device Keychain, not into the destination record.

  3. Send a test#

    Subscribe to hozz/#. The probe contains no Health data.

Topics#

Batches go to <root>/batch. Metrics JSON also publishes each latest point to <root>/<metric>. The default root is hozz.

Topics published for a Metrics JSON batch
hozz/batch          the whole batch, in the destination's format
hozz/heart_rate     the latest point of that metric
hozz/step_count     the latest point of that metric
hozz/sleep_analysis the latest point of that metric

Other formats publish only <root>/batch.

Payload on hozz/heart_rate
{
  "date": "2026-08-22T21:10:46.500Z",
  "qty": 62.5,
  "source": "Apple Watch",
  "units": "count/min"
}

Metric names are the same lowercase snake_case names used everywhere else — see the schema.

Retained messages#

Metric topics are retained at QoS 0, so new subscribers receive the latest value.

Using it from Home Assistant#

configuration.yaml
mqtt:
  sensor:
    - name: "Heart rate"
      state_topic: "hozz/heart_rate"
      value_template: "{{ value_json.qty }}"
      unit_of_measurement: "bpm"
      device_class: measurement

Without a broker, use the Home Assistant destination.

What Hozz implements#

Hozz implements CONNECT, QoS 0 PUBLISH and DISCONNECT. It does not subscribe.