(+39) 351 838 6453 [email protected]
Home · Projects · Solaria
Project · Control system

Solaria: control of complex heating plants

A complete system, from the sensor to the web dashboard, to run complex heating plants with heat pumps, boilers, solar thermal and storage tanks, remotely and across many sites.

Raspberry PiESP32ESP32-S3RS-485MQTTESP-NOWPHP · Python

The project

A complex heating plant combines several heat sources, such as heat pumps, boilers and solar thermal collectors, with storage tanks, heating circuits, pumps, mixing valves and dozens of temperature probes. To run it well you need a controller that decides which source to use, when to switch each pump on and at what speed, based on temperatures, schedules and priorities.

With Solaria we designed the whole system: module firmware, central unit software, touch displays for the user and a web portal for technicians. Each plant has its own central unit, and every central unit is managed from a single remote dashboard.

In short: hardware, firmware and software developed together, so every part talks reliably to the others, from the pump module in the boiler room to the web portal.

How the system is built

Solaria is built in layers. Each layer keeps working even when the one above is unreachable: the plant keeps running without Internet.

Remote dashboardPHP web portal: central units, programs, live status over MQTT on WebSocket
Central unitRaspberry Pi with Apache, PHP and Python services: runs the programs and coordinates the modules
Modules and displaysESP32 pump modules, ESP32 light central units and 5" and 7" ESP32-S3 touch displays
PlantHeat pumps, boilers, solar thermal, storage tanks, pumps, mixing valves and probes

What it does

  • Schedules and conditions: each output follows rules on temperatures, times, holidays and priorities, with ON, OFF and timer modes
  • Variable-speed pump control (PWM and analog output) and mixing valves, with flow temperature calculation
  • Probes and averages: temperature readings, averages over configurable intervals and user-defined constants
  • Touch displays in the rooms to see temperatures and plant status and change settings
  • Remote dashboard listing the active central units, each module's programs and live status
  • Alarms sent to Telegram when a value goes out of range
  • A remote reboot board to reset stuck equipment on site over MQTT

Installation and updates

A system spread over many plants has to be easy to install and keep up to date without travelling to site.

  • The central unit installs on a new Raspberry Pi with a single command, and upgrades to a new version the same way
  • The ESP32 modules update over the network from a manifest: they download firmware and web pages only when a newer version exists, and check every file
  • For first-time programming in the workshop we use our ST ESP32 Flash Tool
  • Watchdogs on every module task and a service Wi-Fi access point for configuration on site

Technologies

Raspberry Pi

Apache and PHP for the pages, Python services for programs, serial bus and MQTT.

Central unit

ESP32

C++ firmware on FreeRTOS: one core for Wi-Fi, web and MQTT, one dedicated to the RS-485 bus.

Modules

ESP32-S3 displays

5" and 7" touch displays with an LVGL graphical interface.

Interface

MQTT

Mosquitto broker and a web dashboard that follows every central unit live.

Remote

Telegram

A bot that sends plant alarms straight to your phone.

Alerts

OTA

Firmware and web page updates over the network, with version checks.

Maintenance

Have a plant to control?

We build custom control systems: electronics, module firmware, central unit software and web portal.