Lasercutter (direct_session) sendet Plain-Text 'online'/'offline' auf
<device-id>/availability – bislang wurden diese Nachrichten still verworfen.
Änderungen:
- mqtt_client.py: non-JSON Payloads als {'_raw': text} durchleiten
(statt bei JSONDecodeError komplett zu verwerfen)
- device_manager._add_device: direct_session-Geräte abonnieren zusätzlich
<device_id>/availability; Eintrag landet in device_map
- device_manager._remove_device: entfernt ALLE Topics eines Geräts
(vorher nur das erste gefundene – Bug bei mehreren Topics)
- device_manager.route_message: {'_raw': 'online'/'offline'} erzeugt
device_online / device_offline Event in der Queue (case-insensitive)
- 15 neue Unit-Tests in test_availability_pipeline.py (102/102 grün)
|
||
|---|---|---|
| .. | ||
| fixtures | ||
| integration | ||
| tools | ||
| unit | ||
| __init__.py | ||
| conftest.py | ||
| helpers.py | ||
| test_e2e_push_architecture.py | ||
| test_mqtt_config_push.py | ||
| test-config-push.json | ||
| test-config-push.sh | ||