My 10 favorite & most useful smart home tools – for your DIY smart home
Building a DIY smart home needs a good set of software tools to write code, monitor your devices and update data. Here are my favorite smart home tools. Over the years I have used quite a lot and those turned out to be the best for the job so far.
To make the setup easy and have the option to use all my programs on any machine I use a software called portable apps to install and manage most of these programs. This allows you to “install” software that is fully contained within a file system. If you want to use it somewhere else just copy the data.
1. Git & cmder
If you are working on ever changing code and configuration files you will need some toll to keep track of versions and changes. git is the most prominent software tool for that – a distributed version control system.
There are a lot of GUI clients for git but to me personally the command line just seems cleaner here. Most advanced IDEs indicate changes files and content and offer support for git but for simple changes the command line is still faster.
To get a Linux like console that supports git on any system I am using the portable version of cmder. I am running Windows as my main system but development is easier with a proper console. While there is now the Linux subsystem for Windows this is a simpler solution for me. I also like the design.
2. SSH & SCP with Putty & WinSCP
If you run any system on a remote server (like a headless Raspberry Pi for my DIY smart home server) you need some way to access it without physically moving there and adding a screen and keyboard. The solution is SSH – an encrypted “tunnel” into the command line of the system.
Unfortunately Windows does not natively support SSH (MacOS and Linux do) so I use two other programs here. Putty is used to access my Raspberry Pis and other servers via SSH. The interface is minimalist but support everything you need. It includes support for login via a key file and can even generate new keys.
If I also need access to the remote file system to up/-download files I used WinSCP. This gives you an explorer like view of your local and remote file systems and can easily copy files back and forth.
I only recently started using it but MobaXterm might just be the better version of Putty & WinSCP combined. It allows you to use tabs for multiple SSH connections at the same time and automatically also opens a small menu with a file explorer.
The switch from Putty was super easy as it automatically detected my profiles created in Putty. Awesome! It also includes monitoring of the (remote) resources, a tool for port scanning and much more. I will use this much more in the future, I am sure!
4. Visual Studio Code
If you have a DIY smart home chances are you will need to write at least a little bit of code (configuration files mostly). I do most of that inside Visual Studio Code. It is pretty light weight for a full IDE but you can install plugins with support for pretty much everything: from Arduino to OpenHab I have used this IDE for a lot of tasks.
VSC might not be as powerful as “real” IDEs like Visual Studio or IntelliJ by default but it is great for simpler tasks like this.
5. Sublime Text 3
If I am not using Visual Studio Code I am using sublime text 3 for these simpler tasks. This is less of an IDE and more a very powerful text editor. Once you get used to some of its features like the awesome multi-line selection you will miss it in all other editors though.
While auto-completion is not really there (at least not a smart one) it has profiles for file types like JSON, yaml and more. Perfect to edit docker-compose files for my ZFS full home server for example.
Whenever I work with MQTT (like Zigbee2MQTT or the Octoprint Home Assistant integration via MQTT) I used MQTTExplorer to monitor my MQTT messages and topics.
This small program has it all: it looks great, is intuitive to use and even automatically draws diagrams if when regular datapoints are detected. I can really recommend this!
7. Docker & docker-compose
Docker and docker-compose might just be the best tools I have used for (smart) home networks. No more fiddling with incompatible dependencies or long and complicated installation processes. Find your application on the Docker hub and add it to your docker-compose file. Write one command and boom – your server is now ready.
Or even better – you use someone else’s setup. Like my smart home server setup. I use containers pretty much everywhere now!
If you do not like using the command line and docker-compose files for these tasks there is also Portainer. This small program allows you to control and create containers via a nice user interface.
8. Monitoring – Heimdall and Grafana
Once your smart home server is running you need a simple way of monitoring everything. I use a couple of different tools here. To get a quick overview of all of my services I use a small dashboard called Heimdall that is hosted on the same Raspberry Pi. It is easy to set up, looks neat and even shows some information from the linked apps right there. It is part of my smart home server setup.
For more in-depth information I have a dashboard built with Grafana. This tool creates very nice looking and really powerful visualizations and is perfect for usage with Home Assistant. You can even add logs of your services right to the dashboard.
9. Automatic updates with Watchtower
If you run a lot of software it becomes a big task to keep everything up to date. With Docker & docker-compose this becomes easier but you can even automate it. I am using Watchtower to automatically update most of my containers. The setup is quite simple.
Some software, that is either important and Internet facing or might include breaking changes, is not automatically updated. I excluded those from Watchtower and update them manually. For Home Assistant I have written about this in-depth.
10. Push notification with Pushover
While my smart home runs on its own most of the time sometimes immediate action from my side is needed. In those cases I use notifications. Either the build in ones from Home Assistant if I am at home or Pushover if I am not.
For sending general alarms like my water leak sensor or status updates from my 3D printer to problems with my server hardware or backups – I use this a lot. Even Watchtower can send notification on updating containers.
These are my 10 most used and favorite tools regarding my smart home. Let me know if there are any great tools out there I might have missed!