How phunkafizer/ot-thing works
OTthing is ESP32 firmware bridging OpenTherm equipment to local web, MQTT, and Home Assistant interfaces. Its main loop initializes and services the communication, network, portal, sensor, and integration modules. The graph preserves the documented heating-control stages and major user-facing capabilities. Some subsystem interactions are documented only at a high level; dashed edges mark those unverified links rather than asserting source-level calls.
Main entry points: otcontrol.cpp OpenTherm control · main.cpp Firmware runtime · portal.cpp Web portal and API · mqtt.cpp MQTT integration
Components 24
Runtime and network
- Firmware runtime
Firmware/src/main.cpp - WiFi provisioning
Firmware/src/netw.cpp - Device configuration
Firmware/src/devconfig.cpp
OpenTherm gateway
- OpenTherm control
Firmware/src/otcontrol.cpp - Master requests
Firmware/src/masterrequests.cpp - OpenTherm values
Firmware/src/otvalues.cpp
Heating control
- Heating circuits
Firmware/src/CHcontrol.cpp - Heating curve
Firmware/src/heatingcurve.cpp - Time scheduler
Firmware/src/scheduler.cpp - DHW control
Firmware/src/dhwControl.cpp - Ventilation control
Firmware/src/vent.cpp - Flame statistics
Firmware/src/flamestats.cpp
Web interface
- Web portal and API
Firmware/src/portal.cpp - Command interface
Firmware/src/command.cpp
Integrations and telemetry
- Sensors and telemetry
Firmware/src/sensors.cpp - Auxiliary inputs
Firmware/src/auxInput.cpp - Runtime status
Firmware/src/devstatus.cpp - MQTT integration
Firmware/src/mqtt.cpp - Home Assistant discovery
Firmware/src/HADiscLocal.cpp - Discovery publisher
Firmware/lib/HADiscovery/src/HADiscovery.cpp
Other components
- Local user
- Boiler / thermostat
- Home Assistant
- MQTT broker
Connections 31
- Firmware runtime → WiFi provisioning: initializes / services
Firmware/src/main.cpp - Firmware runtime → Device configuration: initializes / services
Firmware/src/main.cpp - Firmware runtime → OpenTherm control: initializes / services
Firmware/src/main.cpp - Firmware runtime → Web portal and API: initializes / services
Firmware/src/main.cpp - Firmware runtime → Command interface: initializes
Firmware/src/main.cpp - Firmware runtime → Sensors and telemetry: initializes / services
Firmware/src/main.cpp - Firmware runtime → Home Assistant discovery: initializes
Firmware/src/main.cpp - Firmware runtime → MQTT integration: initializes / services
Firmware/src/main.cpp - Firmware runtime → Auxiliary inputs: services
Firmware/src/main.cpp - Local user → Web portal and API: uses dashboard / API
README.md - Web portal and API → WiFi provisioning: provisions WiFi
- Web portal and API → OpenTherm control: requests control
- Web portal and API → Device configuration: reads / updates
- Boiler / thermostat → OpenTherm control: OpenTherm messages
README.md - OpenTherm control → Master requests: uses polling requests
- OpenTherm control → OpenTherm values: decodes / exposes
- OpenTherm control → Heating circuits: manages circuits
- Heating circuits → Heating curve: calculates flow target
- Heating circuits → Time scheduler: schedules setpoints
- OpenTherm control → DHW control: coordinates DHW
- OpenTherm control → Ventilation control: supports ventilation
- OpenTherm control → Flame statistics: tracks flame data
- Sensors and telemetry → OpenTherm control: provides measurements
- Auxiliary inputs → Heating circuits: supplies control inputs
- OpenTherm control → Runtime status: updates health state
- MQTT integration → MQTT broker: publishes / subscribes
README.md - Home Assistant → MQTT broker: integrates through MQTT
README.md - Home Assistant discovery → Discovery publisher: uses discovery support
- Home Assistant discovery → MQTT integration: publishes discovery
- MQTT integration → OpenTherm control: applies control topics
- MQTT integration → Sensors and telemetry: publishes telemetry