Skip to content

v0.49.1 — TRMNL pushes no longer require an MQTT broker

Choose a tag to compare

@dmellok dmellok released this 16 Jun 11:00

Fix

The push pipeline was unconditionally calling `transport.publish()` for every renderer, including HTTP-polled TRMNL clients. On hosts without an MQTT broker (e.g. no Home Assistant Mosquitto add-on installed) the publish raised `RuntimeError: transport not connected`, the latest-render pointer never got stamped, and `/api/display` kept serving the placeholder image.

Fixed: `PushManager` learns to detect HTTP-polled devices (their manifest declares no `status_topic`) and skips the MQTT publish for them. The frame still lands on disk and the latest-renders map gets stamped so `/api/display` picks it up on the next poll. Broker requirement is now lifted for TRMNL-only setups.

Reported by @tommerty on discussion #8.

Upgrade notes

No action needed. Update via your usual path (HA add-on store / Docker pull) and TRMNL pushes will go through without a broker.

For users running broker-backed devices (Pi, ESP32), nothing changes: those devices' manifests declare a `status_topic` and continue to publish to MQTT as before.

Tests

+2 regression tests in `tests/test_push.py` covering the HTTP-polled-skip and the broker-not-connected paths (the exact failure shape from the report). 970 passing, ruff + mypy strict clean.