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)
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_availability_pipeline.py | ||
| test_bootstrap.py | ||
| test_config_schema.py | ||
| test_config.py | ||
| test_dependencies.py | ||
| test_device_manager.py | ||
| test_direct_session_parser.py | ||
| test_event_queue.py | ||
| test_exceptions.py | ||
| test_odoo_client_error_handling.py | ||
| test_parser_registry.py | ||
| test_service_manager.py | ||
| test_session_detector.py | ||