From 430b4cb69072f80ca2ed7e86f63474db2f5b08851fc545664659e5e9472d1a03 Mon Sep 17 00:00:00 2001 From: localhorst Date: Sat, 10 Jan 2026 13:42:24 +0100 Subject: [PATCH] cleanup README --- README.md | 101 +++++++++++++----------------------------------------- 1 file changed, 23 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 07d79a3..04a79af 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,13 @@ -# smart-oil-heating-control-system +# Smart Oil Heating Control System -## Software -### Design +ESP32-based control system for oil-fired central heating with schedule-based temperature management, safety monitoring, and Prometheus metrics export. -```mermaid -classDiagram -Inputs <|-- Control -Outputs <|-- Control -Sntp <|-- Control -Inputs <|-- Safety -Outputs <|--|> Safety +## Features -Inputs <|-- Metrics -Outputs <|-- Metrics -Control <|-- Metrics -Safety <|-- Metrics -Sntp <|-- Metrics - - class Inputs{ - +initInputs() - -initMeasurement() - -updateAverage() - -updatePrediction() - -taskInput() - -linearRegressionPredict() - +getChamberTemperature() - +getOutdoorTemperature() - +getInletFlowTemperature() - +getReturnFlowTemperature() - +getBurnerError() - } - - class Outputs{ - +initOutputs() - +getCirculationPumpState() - +setCirculationPumpState() - +getBurnerState() - +setBurnerState() - +getSafetyControlState() - +setSafetyControlState() - } - - class Control{ - initControl() - +taskControl() - +getControlCurrentWeekday() - -findControlCurrentTemperatureEntry() - +getControlCurrentTemperatureEntry() - -controlTable - +getControlState() - } - - class Safety{ - +initSafety() - -taskSafety() - -setSafeState() - -checkSensorSanity() - +getSensorSanityStates() - +getSafetyState() - } - - - class Wifi{ - +initWifi() - } - - class Sntp{ - +initSntp() - +getSntpState() - } - - class Metrics{ - +initMetrics() - -taskMetrics() - -metrics - +event_handler() - +connect_wifi() - +setMetrics() - } -``` +- **Schedule Control**: Day/night temperature targets per weekday +- **Summer Mode**: Automatic heating disable based on outdoor temperature +- **Safety Monitoring**: Sensor sanity checks with automatic safe-state fallback +- **Prometheus Metrics**: HTTP endpoint at port 9100 ### Prometheus Metrics `curl http://X.X.X.X:9100/metrics` @@ -180,4 +109,20 @@ wifi_rssi -72 | Input Burner Fault | IO19 | Digital Input IN1 | | Input Temperature DS10B20 | IO04 | 1-Wire | +## Configuration +All parameters configurable via `idf.py menuconfig`: +- WiFi credentials and static IP +- GPIO pin assignments +- 1-Wire sensor addresses +- Temperature thresholds and limits +- Heating schedule (day/night per weekday) +- Damping factors + +## Building + +```bash +idf.py set-target esp32 +idf.py menuconfig # Configure settings +idf.py build flash monitor +``` \ No newline at end of file