mirror of
https://github.com/Andre0512/hon.git
synced 2026-10-30 13:46:00 +00:00
PR #43 (cherry-picked in the previous commit) only swaps async_write_ha_state() for schedule_update_ha_state() inside entity command methods, which run on the event loop anyway. It does NOT address the actual root cause of mmalolepszy/hon-revived#44. pyhon-revived delivers MQTT push notifications from the awscrt network thread: MQTTClient._on_publish_received -> Hon.notify -> self._notify_function(None), with no loop marshalling. The integration registered coordinator.async_set_updated_data directly as that subscriber, so the loop-affine @callback (which fans out to listeners and arms loop timers via _schedule_refresh) was being invoked from a foreign thread. HA Core 2026.5.x enforces thread safety and raises on this, breaking live state updates on 2026.5.4 even with PR #43 applied. Wrap the subscriber in a @callback that re-dispatches via hass.loop.call_soon_threadsafe, so the coordinator update always runs on the event loop. The None payload is preserved (entities read state from self._device, not coordinator.data, so it is only a listener trigger). Refs: https://developers.home-assistant.io/docs/asyncio_thread_safety/ Fixes mmalolepszy/hon-revived#44 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| hon | ||