ObserverRepository accepts a list of absolute MQTT topic filters. Filters are
passed to MQTT unchanged, including leading or trailing slashes and MQTT
wildcards such as # and +. TopicService supplies only the application's
optional convenience catalogue; applications may provide any filters directly.
Every received topic is retained in ObserverModel.topic_states, including
topics discovered through wildcard filters. Consumers can await normalized
MqttMessage instances from ObserverRepository.message_queue; the current
value map is updated before each message is queued.
Connection state is available through ObserverRepository.connection_status
and the connection_statuses() stream. It reports connecting, connected,
reconnecting, and disconnected. On reconnect, the repository re-registers
its message handler and subscribes every configured filter exactly once.
python -m pip install -e .
smart-home-observer.exe