v0.6.5 — Real-time push is not possible, and why
A documentation release. No code changes, so there is no urgency in taking it, but it settles a question that has been open since this project started.
Real-time push is not possible
Previous releases described this as a roadblock, and the README described it as "in progress". Both implied unfinished work that someone might eventually pick up. That was wrong, and the reason has now been traced.
The broker accepts the connection and refuses the subscription with SUBACK 0x80. That refusal is correct behaviour, not a misconfiguration:
- The client identity the app uses is chosen by the client, not assigned by the server. Supplying our own was never the obstacle.
- Immediately after login, the app runs a push-registration step that reads a Firebase Cloud Messaging token and does nothing without one.
- The broker authorises subscriptions only for identities registered that way.
An FCM token belongs to a real Android installation of Lockly's own Firebase project. Home Assistant cannot obtain one, and no credential, username or client id will change that.
If your logs show this, it is expected and nothing is wrong:
Lockly MQTT connected, subscribing to 'server'
Lockly MQTT: broker REFUSED the subscription to 'server' (SUBACK 0x80)
What this means in practice
Nothing changes about how the integration behaves. Lock state is refreshed at startup and immediately after any command sent from Home Assistant. Changes made at the keypad or in the Lockly app are not seen until one of those happens, unless your hub firmware supports silent polling (build 422 or newer on major-version-2 hubs), in which case state refreshes every 30 seconds.
The integration still attempts the broker connection at startup. The attempt is cheap and the resulting log line is a useful diagnostic, but no push message will ever arrive.
Why say this so bluntly
Because the alternative wastes people's time. Anyone reading "roadblock" reasonably assumes a determined person might get past it. Nobody can, without Lockly's own app signing identity, and it is more useful to say so than to leave the possibility hanging.
The full trace, including the exact code path through login and push registration, is in docs/api.md section 17.
Unchanged
Everything else is as in v0.6.4. Silent polling still needs hub firmware build 422 or newer, and locks with no hub are still unsupported.