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.
Member discussion: