Device payload (e.g. lasercutter/session):
{session_id, session_minutes, session_seconds, session_start_time, freetime_s, ip}
- parsers/direct_session_parser.py: new parser returning message_type='session_complete'
- parsers/registry.py: register 'direct_session' with freetime_s parameter (default 0)
- mqtt_device.py: add ('direct_session', 'Direct Session (Lasercutter)') to _PARSER_SELECTION
- tests/unit/test_direct_session_parser.py: 24 tests (happy-path, missing fields, defaults, registry)
|
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| extra-addons/open_workshop | ||
| iot_bridge | ||
| odoo | ||
| .gitignore | ||
| .readthedocs.yaml | ||
| DEPLOYMENT.md | ||
| DOCUMENTATION_STRATEGY.md | ||
| IMPLEMENTATION_PLAN.md | ||