Hi everyone, this article is the first in a new series about IoT. I want to share my experience setting up my self-hosted IoT stack.

This article will summarize the process I went through to discover, choose, implement and use Home Automation technologies.

Have fun !

🏠 What is home automation?

First, let’s start with some definitions, my own definitions. I know there are many definitions out there, but this is how I see them.


Home Automation is about automating things in your home (no surprise here).

The first things you may think about are the control and automation of basic objects, like your blinds, change your lights colors, turn yours the heaters and many other things.

It can help you with monitoring, and link values from sensors to your objects listed above, for example starting the heaters at a specific temperature (a thermostat), monitor the humidity, pressure, detect persons through presence sensors or video feeds.

And then you can combine all those sensors and actuators altogether with scenes, routines, automations, scripts or whatever name you prefer, depending on the software you use to control your home automation.


IoT, or Internet of Things defines the different objects or “things” you can control or receive data from. They are the basic brick of Home Automation. Now, here is the confusing part, you don’t actually need “Internet” to use them, it’s more about a network of connected devices, but it could very well be a private network !

Anyway, you’ll need IoT devices to control your home, but I’m pretty sure you already have some handy like your phone with many built-in sensors, or your TV and AC most likely controllable with your infrared remote.

💵 DIY or buy?

Now, you may be thinking about the well known products you may have heard of or you may even possess. Nowadays, there are many brands providing Home Automation solutions and devices, but they do not follow the same vision.


Google Nest, Blink, Ecobee, Apple HomeKit, Ring, TP-Link Kasa, and many names you may be familiar with. Those belong to the same “category” of cloud-first IoT.

Basically, you buy their devices, you sign-up for a free account on their online platform, you install an app, and you’re good to go! Perfect right?

Well, think about what would happen if they shut down their services for some reason, or if they stop selling old and new products. It happened to some of them already:

After offering their services for free, they may start asking some money to unlock some features or even to keep using them properly:

Basically, everything works well enough as long as you pick the right company and they stay alive, selling the products you want and not asking more money about it.


Now, there are other companies, like Ikea, Philips Hue, Yale, Belkin and some other. They all have something else in common; as the others they provide devices, an app to use them easily, and you can even create an online account to access them remotely. But those devices are using a shared, open protocol, and you can even use devices from one brand with the app of another. Cool right?

Well, that’s a huge difference, the companies I named above are mostly using Zigbee technology to connect and control their IoT devices. An open protocol where you can mix and match hubs to connect the devices from many brands like Sengled, Sonoff, Xiaomi, Enbrighten, …

If you prefer to stick with the built-in features of those hubs and apps, that’s fine. But if you want to have more control and build crazy things, that would be the way to go.

This is what we’re going to talk about in this article series 🙂

🤔 My reasons to work on Home Automation

As soon as you start playing with those open protocols, you quickly discover that some of the devices can be really inexpensive. The main reason is the cost of the raw electronic components, and those are really cheap.

As an example, I built my first “connected” light a long time ago. I was able to turn it on and off from my computer and phone in one click. To build it, I needed a light, a relay (https://en.wikipedia.org/wiki/Relay, CAD 2~3) and a controller (a mini PC like a Raspberry Pi or a controller like an Arduino).

As I mentioned above, many of us already have some devices (phones, routers, TVs, …) you may be able to connect together without buying a lot of new hardware.

Knowing that, I wanted to go further and control my heaters to optimize my energy consumption during winter, being smarter with the temperature setpoint.

🏞️ My journey through IoT

After my first “connected” light experiment, I started to build a few frameworks and applications myself playing with more and more IoT devices. At some point, I realized some projects like OpenHAB covered some of those needs already. I still think some of my projects bring interesting approaches and I will published then at some point!

For now, let's focus on the solution rather than the implementation. I wanted to reach my goal and to automate my heaters, and those products were enough for my need.

Like every tool or software I chose for myself, I’m trying to find the best available, considering the community, the openness and extensibility, and the fit for my environment (not choosing hard-to-setup solutions).

After trying different solutions like OpenHAB, Domoticz, Mozilla WebThings, I decided to stick with Home Assistant. They had the largest community and plug-ins available, a very extensive solution where you can write Python plug-ins for everything, and a nice API.

Not everything was perfect, but I still run Home Assistant today !

🔮 My vision of Home Automation

We talked about the what, how and why, but I also want to share my vision of Home Automation. For sure the tech is cool, but is it really easier opening your phone to open lights than pushing the wall switch, or setting your thermostat to 21°C all winter long?


To me, home automation is about making things smarter without getting in your way.


Here are a few examples:


To be honest, I keep hearing stories and seeing Home Automation implementations where you need to use a specific device like a tablet to control everything. If internet is down or if your tablet’s battery is dead, you loose all your automation or even worse, access to your devices.

I want a simple and low-friction / well integrated solution assisting me with smart behaviors.

In the next articles we’ll cover in more details the way I work towards this goal.