Self-hosted label printing for Brother QL printers — now in Home Assistant.
lah-beh-LEE-toh · /la.beˈli.to/ · a Spanish diminutive of "label"
A Home Assistant custom integration for labelito, the self-hosted label printing service for Brother QL printers. Print labels from automations, scripts, dashboards, and by voice through Assist.
- Printer entities — state, loaded roll, connectivity, faults, and lifetime label count.
labelito.printservice — print any template with field values, validated against the live catalog before anything reaches the printer. Supports auto-numbered ({{seq}}) batches.labelito.reprint_last— service and button to print the last label again.- Voice — "print a pantry label for tomato soup" via Assist custom sentences, generated from your own templates (and their spoken aliases) so a name is matched exactly, not guessed.
- Add-on discovery — one-click setup when labelito runs as the addon-labelito add-on.
labelito is three pieces. This repo is the Home Assistant integration — it does not run the printer service itself; it talks to a labelito service you run separately (or as the add-on).
| Project | What it is | Use it when |
|---|---|---|
labelito |
The label-printing service (the engine). | You want to run it anywhere with Docker. |
addon-labelito |
Packages that service as a Home Assistant add-on. | You run Home Assistant OS/Supervised. |
ha-labelito (this repo) |
HACS integration — entities, services, voice. | You want to print from automations, dashboards, or Assist. |
- A running labelito service (Docker, bare metal, or the Home Assistant add-on) reachable from Home Assistant, speaking labelito API version 3 (labelito 1.0.0 still speaks it).
- Home Assistant 2026.9 or newer (it ships probatio, the validation library the integration's schemas are built with, and Python 3.14).
The integration is in the HACS default store — no custom repository needed:
- Click the badge above, or open HACS and search for labelito.
- Open the labelito entry and press Download.
- Restart Home Assistant.
Manual alternative: copy custom_components/labelito/ into <config>/custom_components/ and
restart.
- Go to Settings → Devices & services → Add integration and search for labelito.
- Enter the host, port (default
8765), and the API token (leave empty only if labelito runs withALLOW_UNAUTHENTICATED=true). - Submit. The flow verifies reachability, checks the API version, and validates the token.
If labelito runs as the Home Assistant add-on, the integration is discovered automatically and setup is a single confirmation click.
Options (gear icon): override the printer status poll interval (default 30 s for network
printers, 90 s for USB), and dry-run voice prints — prints from the built-in LabelitoPrint
intent are rendered and validated but never put on tape, which is what makes tuning sentences and
template names practical. It does not cover automations that call labelito.print from a
conversation trigger; that service has its own dry_run field. See
docs/voice-assist.md.
labelito serves plain HTTP by design, which is fine on a trusted LAN and the only thing the
add-on needs. If you front it with a TLS-terminating reverse proxy — so the API token is not
crossing the network in cleartext — tick Use HTTPS in the same step (the port is then usually
443, not 8765).
Verify SSL certificate stays on by default, so an untrusted certificate fails loudly instead of being accepted silently. Turn it off only for a self-signed certificate you control; a certificate the integration cannot verify is reported as its own error, not as a generic connection failure.
Already set up over HTTP? Use Settings → Devices & services → labelito → ⋮ → Reconfigure to change the address, port, and HTTPS settings in place — no need to delete and re-add the integration. Your API token is left untouched (use Reconfigure for the address, the reauth prompt for the token).
action: labelito.print
data:
template: pantry
fields:
title: "Tomato soup"
copies: 2See the reference docs for the full surface:
- docs/services.md —
labelito.print/labelito.reprint_lastfields, responses, and error behavior. - docs/entities.md — every sensor/binary sensor/button, and how the "Labels printed" counter is sourced.
- docs/voice-assist.md — setting up the voice sentences for Assist (see also Home Assistant's custom sentences docs).
Ready-to-adapt automations live in examples/.
This integration is licensed under the MIT License. labelito itself is GPL-3.0: the integration talks to it purely over its HTTP API and vendors none of its code, so the licenses remain independent.