The open source smart home automation platform
The logging system is distributed, meaning the measurements are taken by multiple stand-alone devices which then communicate back to a central server via wifi or ethernet. The server runs Home Assistant, which can be used for automation, trend analysis, and visualization. Importantly, it is entirely open source.
This is an example of a visualisation in Home Assistant, showing how much power the heat pump is using. The heat was balanced nicely at 17.5°C with 800W for about 10 hours, before turning off when it hit 18°C, and not restarting until 15°C. This indicates that the control settings need tweaked.
User devices connect to Router B, as in any home network, and the wireless connection between Router A and Router B allows any user connected to the home wifi to view Home Assistant visualizations.
There are a couple of hardware options for running Home Assistant. The first is a Raspberry Pi (Home Assistant recommends at least this one, which will also need an SD card and PSU), which is well supported, but they've been poor value for money since lockdown. The second option is to use a refurbished PC, which can be around 50% cheaper with considerably better specs. Either way, the server needs to run 24/7, so consider power consumption.
With hardware chosen, there are two options for software. First is Home Assistant Operating System (HAOS), a dedicated operating system designed specifically for Home Assistant. HAOS provides a streamlined, all-in-one solution that includes everything needed to run Home Assistant, making it the most hassle-free setup. The second option is to run Home Assistant as a standalone application over a generic operating system, such as Linux or Windows. This approach offers more flexibility, allowing you to use the server for other tasks alongside Home Assistant.
I decided to run Linux (Ubuntu) with Home Assistant as a stand-alone application. This meant I could install a media server alongside it, and use it for file storage, printer sharing and ad blocking.
My network needs two routers because router A is next to the electrical panel and router B is two rooms away, next to the phone point. The system could be simplified to only use a single router if Router A can be connected to the phoneline.
I chose Router A because it is supported by OpenWRT. OpenWRT is open source router firmware that increases performance, privacy and security. This isn't strictly necessary, so can be skipped depending on whether you're willing to trade some complexity for security.
Router B is just my service-provided home wifi router. Anything you're happy to use for your home network will be fine here.