When I started thinking about software in the house, the list was simple:

  • HomeAssistant and
  • KNX

Since then, I have been collecting information about other useful bits of software. I thought to compose a list of commercial and open source software I would like to install in the house.

States

Before I start with the actual list, I'd like to mention the states I have defined for the software:

State Description
Initial I have found it exists
Investigating Try to configure/run it on my local machine
Test Installed on a machine, see if it's useful
Acceptance Run with real data, accessible to users
Production Definitive installation on the infrastructure

Core software

I'm using the following core/infrastructure software:

Name Description Justification Status Version
VmWare ESXi Virtualization software I need virtualization to separate the concerns Production 6.7.0
TrueNAS NAS Use this to store data (documents etc.) Acceptance TrueNAS-12.0-RC
CentOS Base OS Multiple installs for different things Production 8
UniFi UniFi controller To manage the Ubiquiti infrastructure Production Docker

VmWare ESXi

When I established the initial needs, I figured I needed some processing power for the smart house stuff and another storage-intensive thing for the data I have. Rather than buying multiple machines, I chose to get a second hand server + some RAM and fill it up with SSDs and HDDs.

After that, I had a choice to run a monster linux machine on bare metal or to virtualise things. Since the more popular NAS is on BSD (FreeNAS), I had do virtualise things.

TrueNAS

When investigating choices, I discovered a Synology rip, FreeNas and OpenMediaVault. Given this has to be somewhat stable (multimedia, backups etc.), I went for FreeNAS (with the footnotes of running FreeNAS on a VM).

CentOS

I investigated some linux distributions: Ubuntu, ClearLinux and CentOS. I've started first with ClearLinux, but I've ran into a wall for a potential thing with the Nvidia support. So, I had to choose another distro. CentOS seemed interesting :)

UniFi Controller (networking)

I have bought a few UniFi hardware for the internal infrastructure of the house. UniFi has this nice unified (d'oh!) configuration mechanism. Now, I could have shelled more for a Dream Pro machine but, given the hardware I already have, I chose to install the UniFi controller in a Docker environment (with external volumes for saving the important data)

Smart house

For the smarts of the house I (want to) use the following:

Name Description Justification Status Version
HomeAssistant Smart house control To improve the KNX logic Acceptance 0.110
ESPHome Program ESP-based sensors Measure temperature, humidity etc. Testing Part of HA
MQTT Messaging for IoT Allow IoT devices to connect to e.g. HA Investigating Docker
NodeRed Workflows Automate actions based on events Initial Docker
ETS KNX programming Program the KNX devices Investigating Windows
Grafana Data visualisation House state Investigating Docker

HomeAssistant

I have been playing around with HomeAssistant for a while now. It's quite pretty when combined with ESPHome and with ZigBee. And you can run it off a Raspberry Pi 3.

For the time being I'm able to control a light bulb, to view some sensors and record their data in a DB. I can also see my Sonos' status.

ESPHome

I have a couple of ESP-based sensors. I use ESPHome to program them and connect them to my HomeAssistant instance. For the time being, I don't have any smarts behind these sensors, just logging their data in a DB.

MQTT

MQTT is a messaging system, where various entities can subscribe to an event. When the event happens, those said entities can react to it. Pretty useful for IoT (and the reason for which I placed it in this category)

NodeRed

Node-RED in an event-driven flow automation tool. I'm thinking to use it in order to program more complex actions and complement the KNX infrastructure and HomeAssistant.

ETS

ETS is a commercial piece of software used by professionals to program their KNX devices. As the house will be with KNX, these devices will need to be programmed and likely adapted to needs. This runs off a Windows machine and is designed to program KNX devices (and inspect their statuses).

This is an expensive commercial program, and it's really recommended if you want to seriously mess around with your KNX installation. If not, then buy the 'Inside' variant or call a professional.

Grafana

Grafana is a cute piece of software to visualize things. You can tell it to monitor various sources and can give you nice graphs in real time. I've worked a bit professionally and I think it'll be useful to add it to get a bird's eye view of the house state. I am a data hoarder, after all :)

Other software

There's a number of items which don't have (yet) a dedicated category:

Name Description Justification Status Version
Firefly III Financial management It'd be nice to know where money actually goes Initial
NextCloud Remote drive Save/synchronise documents on the NAS Initial

Financial

Firefly III seems a nice-to-have tool to help with finances. I will install it and try to monitor my accounts. Who knows?

Document management

NextCloud seems a good local alternative to e.g. google drive, although one would need to set up a very complex infrastructure to access files remotely. I will try to install the new version (20.0.0 at the time of writing this article) to make automatic backups from the personal machines easier.