How hoverclub/timer-controller works
This is an ESP8266/ESP32 programmable timer controller. Users configure Wi-Fi, then use the web interface to define controls, schedules, and sensor conditions; the device evaluates timers and sensor readings to drive physical outputs. The graph preserves documented display, backup/restore, and network-time capabilities. Source excerpts show the web routes, persistence API, hardware setup, and time setup; links for unsampled modules rely only on explicit README statements or are omitted where ownership is unclear.
Main entry points: webPages.cpp Web routes · main.cpp Startup coordinator · timerControl.cpp Network time · timer.js Browser interface
Components 20
Device setup
- Startup coordinator
src/main.cpp - Wi-Fi provisioning
src/wifiConfig.cpp - Network time
src/timerControl.cpp - POSIX time zones
src/tzPosix.cpp - Debug output
src/DebugOut.cpp
Web configuration
- Web routes
src/webPages.cpp - Browser interface
data/timer.js - Web page assets
data/index.html - Controller settings
src/webPages.cpp - Controls and schedules
src/webPages.cpp - Config backup
src/webPages.cpp
Timer operation
- Config persistence
src/timerControl.cpp - Timer evaluation
src/timerControl.cpp
I/O and display
- Sensor sampling
src/timerControl.cpp - Output control
src/timerControl.cpp - Pin definitions
src/pinDefs.cpp - OLED setup display
src/wifiConfig.cpp
Other components
- Local user
- NTP servers
- GPIO and I2C devices
Connections 21
- Local user → Wi-Fi provisioning: provisions network
README.MD - Startup coordinator → Wi-Fi provisioning: initializes
src/main.cpp - Startup coordinator → Web routes: starts server
src/main.cpp - Startup coordinator → Network time: starts time sync
src/main.cpp - Network time → NTP servers: synchronizes time
README.MD - Local user → Browser interface: configures device
README.MD - Browser interface → Web routes: requests routes
src/webPages.cpp - Web routes → Web page assets: serves assets
src/webPages.cpp - Web routes → Controller settings: handles settings
src/webPages.cpp - Web routes → Controls and schedules: handles updates
src/webPages.cpp - Web routes → Config backup: supports backup
README.MD - Controls and schedules → Config persistence: saves configuration
src/webPages.cpp - Startup coordinator → Config persistence: loads configuration
src/main.cpp - Controller settings → POSIX time zones: sets time zone
src/webPages.cpp - Network time → POSIX time zones: cleans time zone
src/timerControl.cpp - Timer evaluation → Config persistence: reads schedules
src/timerControl.cpp - Timer evaluation → Sensor sampling: checks sensor conditions
src/timerControl.cpp - Sensor sampling → Pin definitions: uses pin definitions
- Output control → GPIO and I2C devices: drives outputs
README.MD - Startup coordinator → Pin definitions: initializes sensor I/O
src/main.cpp - OLED setup display → Local user: shows setup address
README.MD