cleanup README
This commit is contained in:
101
README.md
101
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
|
||||
```
|
||||
Reference in New Issue
Block a user