# Open Workshop MQTT MQTT IoT Device Integration for Odoo 18 ## Features - ✅ **MQTT Broker Connection** - Connect to external MQTT brokers (Mosquitto, etc.) - ✅ **Device Management** - Configure and monitor IoT devices - ✅ **Session Tracking** - Automatic runtime session detection - ✅ **Flexible Parsers** - Support for Shelly PM Mini G3, Tasmota, Generic JSON - ✅ **Session Strategies** - Power threshold, Last Will Testament, Manual control - ✅ **Analytics** - Pivot tables and graphs for runtime analysis - ✅ **Auto-Reconnect** - Exponential backoff on connection loss - ✅ **Message Logging** - Debug log for MQTT messages ## Installation 1. Install Python dependencies: ```bash pip install paho-mqtt ``` 2. Install the module in Odoo: - Apps → Update Apps List - Search for "Open Workshop MQTT" - Click Install ## Quick Start 1. **Create MQTT Connection** - MQTT → Connections → Create - Enter broker details (host, port, credentials) - Click "Test Connection" then "Start" 2. **Add Device** - MQTT → Devices → Create - Select connection - Configure device ID and topic pattern - Choose parser type (Shelly, Tasmota, etc.) - Set session detection strategy 3. **Monitor Sessions** - MQTT → Sessions - View runtime analytics in Pivot/Graph views ## Session Detection Strategies ### Power Threshold (Recommended) - Dual threshold detection (standby/working) - Configurable debounce timers - Timeout detection - Reference: `python_prototype/session_detector.py` ### Last Will Testament - Uses MQTT LWT for offline detection - Immediate session end on device disconnect ### Manual - Start/stop sessions via buttons or MQTT commands ## Configuration Example **Shelly PM Mini G3:** ```json { "standby_threshold_w": 20, "working_threshold_w": 100, "start_debounce_s": 3, "stop_debounce_s": 15, "message_timeout_s": 20 } ``` ## Optional: Maintenance Integration Install `open_workshop_mqtt_maintenance` (separate module) to link MQTT devices to `maintenance.equipment`. ## Technical Reference See `python_prototype/` directory for: - Implementation reference - Test suite (pytest) - Session detection logic - MQTT client implementation ## Support - Documentation: See `python_prototype/README.md` - Issues: GitHub Issues - Tests: `pytest python_prototype/tests/ -v` ## License LGPL-3