The greeting option returns, but it is now sent as an automatic reply to
incoming messages only when "Route incoming messages to Assist" is disabled,
so senders get an acknowledgement instead of silence. When Assist handles
messages the greeting is not used. Blank disables it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drops the CONF_GREETING option, the first-contact greeting logic and its
RuntimeData state, and all related strings/translations/README text. Any
greeting value left in an existing entry's options is simply ignored.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- entity.py: decorate the dispatcher target _handle_update with @callback so it
runs on the event loop. Without it, async_dispatcher_send offloaded the plain
sync callback to an executor thread, and async_write_ha_state raised
"calls async_write_ha_state from a thread other than the event loop".
- config_flow.py: replace the free-text Assist agent field with
ConversationAgentSelector (a proper agent dropdown), and use LanguageSelector
for the language field.
- README: clarify that the built-in Assist agent only handles device commands;
an LLM conversation agent is required for free-form chat.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Custom integration connecting Home Assistant to a Reticulum network over a
TCPClientInterface and exchanging LXMF messages, with an Assist conversation
bridge, notify entity, sensors (incl. interface telemetry), buttons, services,
bus events and device triggers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>