Niimbot Label Printer Custom Integration

Hm I am also having issues with the speed here… I noticed it works a lot better though when I disable the Bermuda BLE and Passive BLE Tracker integrations (that I was not using for the most part anyway…) I also disabled active scanning there…

Still need to to more testing…

B21 Pro has been added very recently, although to be fair it’s not 100% reliable (sometimes it prints an empty label, guh). It’s probably my fault.

There is also a crash concerning labels with large amounts of vertical empty space, that will be fixed after another (currently open) PR is merged.

Finally, a new element type of new_multiline may be added soon, which will auto-fit the width of multiline text to a bounding box you can define.

1 Like

The latest features:

  • performance settings to tweak how HA talks to the printer and make it go faster
  • a “last label made” image entity that you can place on your dashboard
  • preview-only mode for when you want to design a label using the niimbot.print service call but you don’t want to waste paper; complements last label made image very well
  • multiline labels with auto-fit line width

It’s looking good! Thanks to eigger for prompt PR reviews.

This should be fixable with the new config settings (you can test them via the service call, but to make them permanent you have to delete and readd the config entry).

Hey everyone,
Is anyone else getting this error message in Home Assistant when their Niimbot is offline?

The automation “Etikette - Essen” (automation.etikette_essen) has an unknown action: niimbot.print.

This error prevents the automation from running correctly. This action may no longer be available or it may have been caused by a typo.

To fix this error, edit the automation and remove this action.

Click OK below to confirm that you have corrected this automation.

It seems to happen whenever the printer isn’t running. Any ideas?

I have never gotten that notification. If my printer is offline, instead of getting a notification like that, I get an error in the trace of the automation or script that ran the service call.

By the way, the combination of Grocy (the Inventory for Personal Homes app), its support for label making via JSON and HTTP REST endpoint, and Home Assistant with the Niimbot is PHENOMENAL.

SUP FOLKS MEGA HEADS UP FOR ALL NIIMBOT PRINTER USERS:

If you are using Bluetooth proxies to print labels with this integration (almost certain many of you are), update your Bluetooth proxies to ESPHome 2025.11.2 right now.

Prints that would take 20-30 seconds before now come out in a flash. It’s almost instantaneous.

Reliability of prints is also enormously improved. I used to see refusal to print (until the integration was reloaded) every 3 out of 10 labels. Now it works errytiem always.

Seriously, leap into the latest ESPHome ASAP.

The main technical reason for this improvement is that, whereas before, every line sent to the printer would wait for an acknowledgement up to 16 milliseconds in the event loop of the Bluetooth proxy device, now these GATT acknowledgments are received instantaneously and processed using a loopback process inside of the ESP device. In previous iterations of the integration, I added a feature that would allow BT proxies to relay a configurable number of print lines without waiting for acknowledgments, but relying on that usually came at the cost of reliability. Now that acknowledgments are lightning fast, this does not need to be enabled, although you still might see some tiny improvement in print speed compared to the baseline configuration. It should also be possible to configure a lower time to wait between print lines being sent, and gain performance this way.

OP you may want to update the README to mention this development.

1 Like

Thanks a lot for the heads-up!
Really appreciate the info — I’ll make sure to add this to the README.

1 Like