This program reads the temperatures from 10 (or more) DS18B20 sensors and displays them on the 20x4LCD.
Based on multiple conditions connected to temperatures and 2 digital inputs, it activates (LOW active) 4 outputs.
One module with 4 relays takes these signals and drive 4 hot water pumps for the heating system and domestic hot water tank.
There are more information available in 3-5 modes of the display (time, graphic/numeric representation of the energy, energy percent, time until full, time until empty, lifetime of the pumps and MCU). The lifetime variables are updated and stored in EEPROM.
For the human interaction, the software reads an analog input to check which button is pressed (5 way switch). The display in connected to Arduino NANO through a I2C LCD backpack. On the same I2C busthere is connected a DS3231 RTC module.