Configuration

Configure the add-on by setting the three required fields — llu_email, llu_password, llu_region — and the Glucose sensor entity sensor.gluco_hub_<client_id>_glucose will appear in Home Assistant.

Quick start

  1. Set llu_email to your LibreLink Up account email.
  2. Set llu_password to your LibreLink Up account password.
  3. Set llu_region to your LibreView account region (e.g. EU).

Save and start the add-on. Your sensor entity is sensor.gluco_hub_ha_glucose (with the default client_id: ha).

Sensor entity naming

Your sensor entity ID is sensor.gluco_hub_<client_id>_glucose. With the default client_id: ha, that is sensor.gluco_hub_ha_glucose. Use this ID in every automation and dashboard card.

Note

For every option below, default values are chosen so that a fresh install works once you provide llu_email, llu_password, and llu_region.

How it works

The polling, MQTT publishing, MQTT discovery, and persistent retry queue are all implemented by the upstream gluco-hub-rs binary. This add-on configures and runs that binary — it provides the config.yaml schema, the run.sh entrypoint, and HA Ingress wiring. No polling or MQTT logic lives in this repository.

Option reference

Quick reference

OptionTypeDefaultDescription
llu_emailstringrequiredLibreLink Up account email.
llu_passwordstringrequiredLibreLink Up account password. Never written to MQTT or logs.
llu_regionenumEURegional API endpoint. Must match your LibreView account region, not your physical location.
llu_timezoneIANA TZUTCPatient's local timezone. Without this, timestamps appear shifted. Example: Europe/Berlin.
poll_interval_secsint (30–600)60Poll interval in seconds.
glucose_unitenummgdlSensor state unit: mgdl for mg/dL, mmol for mmol/L.
llu_patient_idstring—Patient UUID. Leave empty to use the first connection.
device_namestring—Friendly device name in HA. Defaults to Gluco Hub (<client_id>).
topic_prefixstringgluco-hub/haMQTT topic prefix. Readings publish to <prefix>/glucose.
client_idstringhaMQTT client ID (1–23 chars). Appears in the HA discovery unique ID.
llu_versionstring—LibreLink Up app-version header sent to the API. Leave empty to use the upstream default.
log_levelenuminfoLog verbosity. Use debug to troubleshoot.
llu_accountslist[]Named multi-account/multi-patient sources. See multi-account setup.

Required

llu_email

Required. LibreLink Up account email. The account that holds the family-share invitation. No default — the add-on refuses to start without this.

Example: anna@example.com.

llu_password

Required. LibreLink Up account password. Stored only in the add-on options database; never written to MQTT or logs. No default.

Example: correct-horse-battery-staple.

Don't paste your password into a troubleshooting trace

The add-on never logs it; if you see it in a log, that is a bug — open an issue.

llu_region

Regional API endpoint. Must match your LibreView account region — not your physical location. Default: EU.

Valid values: AE, AP, AU, CA, DE, EU, EU2, FR, JP, US, LA, RU, CN.

Don't set llu_region to your physical country

Use the region of your LibreView account — they often differ. If unsure, open the LibreView app; the region is shown under Account settings.

llu_timezone

IANA timezone name of the sensor wearer. Default: UTC. LibreLink Up timestamps are local wall-clock time with no UTC offset; without this, your readings appear time-shifted.

Example: Europe/Berlin.

poll_interval_secs

Poll interval in seconds. Range: 30–600. Default: 60. Values below 30 waste API calls; LibreLink Up updates every ~60 s.

Don't set poll_interval_secs below 30

LibreLink Up updates roughly every 60 seconds; faster polling wastes your API quota and can trigger rate limits.

glucose_unit

Sensor state unit: mgdl for mg/dL, mmol for mmol/L. Default: mgdl. In multi-account mode (llu_accounts) this option does not affect MQTT discovery — discovery always advertises mg/dL regardless.

llu_patient_id

Patient UUID. Required only if your account has multiple connections. Leave empty to use the first connection.

Advanced

device_name

Friendly device name shown in Home Assistant. Empty falls back to Gluco Hub (<client_id>).

topic_prefix

MQTT topic prefix. Default: gluco-hub/ha. Readings publish to <prefix>/glucose. With the default, your reading topic is gluco-hub/ha/glucose.

client_id

MQTT client ID. 1–23 characters, alphanumeric, -, or _. Default: ha. Appears in the HA discovery unique ID — changing it orphans previously published entities. In multi-account mode (llu_accounts), this option is ignored and client_id = "ha" is hard-coded.

Don't set client_id in multi-account mode

The generated TOML hard-codes client_id = "ha" and the option is silently ignored.

llu_version

LibreLink Up app-version header sent to the API. Leave empty to use the upstream default. Override only as a last resort when upstream's default is no longer accepted.

log_level

Log verbosity. Default: info. Use debug when troubleshooting LibreLink Up issues. Valid values: trace, debug, info, warn, error.

Multi-account

llu_accounts

List of named LibreLink Up sources for multi-account polling. Default: [] (empty). When non-empty, supersedes the single-account llu_* fields above. Full schema and a worked example are on the multi-account setup page.

Don't mix llu_accounts with single-account llu_* fields

When llu_accounts is non-empty, the single-account fields above are superseded and any value you set there is ignored.

Sensor

The Glucose sensor appears under the Gluco Hub device in Home Assistant (Settings → Devices & Services → MQTT).

State: current reading in mg/dL (or mmol/L if configured).

Attributes:

AttributeDescription
mgdlReading in mg/dL.
mmolReading in mmol/L.
trendTrend arrow: DoubleDown, SingleDown, FortyFiveDown, Flat, FortyFiveUp, SingleUp, DoubleUp, NotComputable, or OutOfRange.
timestampISO-8601 timestamp (UTC).
patient_idLibreLink Up patient identifier.

MQTT topics

With the default topic_prefix: gluco-hub/ha, the topics are:

TopicRetainedPurpose
gluco-hub/ha/glucosenoLatest reading (JSON).
gluco-hub/ha/_healthyesLiveness: {"online": true/false}. Used as availability_topic.
gluco-hub/ha/_statsyesPer-minute poll/sink summary. Useful for dashboards.
gluco-hub/ha/_patientsyesPatient list. JSON array of {id, display_name, is_active}. display_name is abbreviated (e.g. Anna M.).
homeassistant/sensor/gluco_hub_ha_glucose/configyesHA MQTT discovery config. Published after every reconnect.

For non-default topic_prefix and client_id, substitute <prefix> and <client_id> respectively:

  • Reading: <prefix>/glucose
  • Discovery: homeassistant/sensor/gluco_hub_<client_id>_glucose/config

Next steps


Disclaimer

Not affiliated with Abbott Laboratories. Unofficial research and self-hosting tool. Use may violate Abbott's LibreLink Up Terms of Service. No warranty. Not for medical decisions, therapy, dosing, or diagnosis.

LibreLink, LibreView, FreeStyle Libre, Libre 2, and Libre 3 are trademarks of Abbott.