How mit4el/iotmanager works
IoTManager is ESP8266/ESP32 smart-home firmware: it connects peripheral devices to a shared model, runs configurable automation, and exposes readings and controls through MQTT and a local web interface. The principal workflow is device input → item/event handling → scenario logic → device action, with status also synchronized to clients. README capabilities include remote MQTT control, local web control, graphs, and notifications. The tree supports the major subsystem paths, but most module wiring is unsampled; uncertain call relationships are omitted.
Main entry points: IoTItem.cpp Device items · Main.cpp Firmware runtime · MqttClient.cpp MQTT client · IoTScenario.cpp Scenarios
Components 23
Runtime and model
- Firmware runtime
src/Main.cpp - Device items
src/classes/IoTItem.cpp - Scenarios
src/classes/IoTScenario.cpp - Events and orders
src/EventsAndOrders.cpp - IoT database
src/classes/IoTDB.cpp - Periodic tasks
src/PeriodicTasks.cpp - Configuration files
src/EspFileSystem.cpp
Device modules
- Sensor modules
src/modules/sensors - Action modules
src/modules/exec - Virtual modules
src/modules/virtual - Display modules
src/modules/display
Client interfaces
- MQTT client
src/MqttClient.cpp - Web servers
src/StandWebServer.cpp - Async web server
src/AsyncWebServer.cpp - WebSockets
src/WsServer.cpp - Device API
src/modules/API.cpp - Home discovery
src/classes/IoTDiscovery.cpp
External services
- MQTT broker
- Telegram
Other components
- Homeowner
- Mobile app
- Web browser
- Sensors and actuators
Connections 27
- Homeowner → Mobile app: controls remotely
- Homeowner → Web browser: controls locally
- Sensors and actuators → Sensor modules: provide readings
- Sensor modules → Device items: device data
- Device items → Scenarios: trigger logic
- Scenarios → Action modules: request actions
- Action modules → Sensors and actuators: control devices
- Device items → Events and orders: raise events
- Scenarios → Events and orders: issue orders
- Firmware runtime → Configuration files: initializes
- Firmware runtime → Async web server: initializes
- Firmware runtime → Web servers: initializes
- Firmware runtime → WebSockets: initializes
- Firmware runtime → Periodic tasks: schedules
- MQTT client → Device items: dispatches messages
- MQTT client → MQTT broker: publishes and subscribes
- MQTT broker → MQTT client: delivers messages
- Mobile app → MQTT broker: exchanges state
- Web servers → Web browser: serves controls
- Async web server → Web browser: serves controls
- WebSockets → Web browser: synchronizes updates
- Device items → MQTT client: publishes status
- Virtual modules → Device items: provide functions
- Display modules → Device items: show device state
- Home discovery → MQTT client: announces devices
- Device items → IoT database: stores data
- Telegram → Action modules: optional notifications