On Smart Home

I'm building a smart home in my new apartments and describe the process here.

Naming

First of all: I don't like all this movement with Internet of Anything, like IoT, IoE and so on. All this is just advertising bullshit and nothing more.

The most appropriate word in my opinion is "industrial automation", but it's about really industrial things, where no one cares about price or compatibility and interconnection with other systems. I mean when you're trying to add automation into steel production facility, you're ready to pay even for creation of own network standards or produce some custom wire types if they are needed. But when you just try to improve your quality of life locally, you have to find kind of trade-off.

So basically it's home automation, but I'm to improve the system with small decision making capabilities, so can proudly call it Smart, therefore Smart Home it is.

Key points

My view to the smart home idea based on several key points

Absolutely custom

No mass-production from famous brands may be used in key points of real smart home.

  1. Security

    They say that "The letter S in IoT stands for Security". And that's true—big companies do not treat security at all, the idea is to fill the market with a huge set of devices and force customers to buy them using advertisement.

  2. Data policy

    Any company, either huge corporation like Google or any small startup wants to collect your data first of all. All devices you buy follow only one single target: gather all your data to make advertisements work more effective (or resell the data to someone, who cares). Actually I don't really care about ads (I'm not a target audience anyway), but nearly every IoT service has security flaws and the data becomes available to everyone which is not good at all.

  3. Internet connectivity

    Almost every mass-market smart home solution strongly requires internet connectivity to function. This is absolutely inappropriate: even if we don't take internet censorship in Russia which just switched off Xiaomi smart home devices one day, we can't be sure that provider has 100% SLA, there will be no issues with uplink network hardware and so on.

  4. Customization

    This point is related to almost all hardware now: you don't buy devices anymore, you rent them. Every vendor makes everything to lock you in own infrastructure, forbid you change any behavior and so on. This might be fine for large purchases with support, like building a business center, when you can sign up a contract and vendor is interested in customization for your purposes. But this is not fine at all when you have a single apartment (or house) and just want to control your devices the way you want.

Fully autonomous

I'm going to design the system which will be fully autonomous and will require nothing but electrical power to function. This includes:

  1. No internet connectivity required

    Using cloud to control your home is a sick idea, as I already mentioned. Local server should be enough to get all features work.

  2. No internet connectivity used

    In order to improve security all devices which use network should be isolated in one dedicated net (physically), so no 0-day bug will affect smart home in any way.

  3. No server required

    Even if server goes down, devices must have a fallback solution to be controlled. Again: single point of failure is not an option.

  4. No wireless connectivity

    All devices are to be connected using wires.

    It's not so hard to achieve when you build the solution from scratch, but it solves lots of issues:

    • You don't depend on environment, which is now an issue in city, e.g. wi-fi frequencies are full of devices and connectivity is not so good.
    • Hacking from outside is not possible: you have to enter the room to connect to the network.
    • No power issues for sensors: when you use something like ESP8266, you have to think about power and either you will constantly change power cells, or you have to provide a wall outlet connection which is also awful.

Fully open-source

From my personal experience, open-source solutions are the best options if you know what you do. I'm not a GPL fanatic, but when you control the program's behavior it's much easier to solve any issue. You may try to buy the whole proprietary solution which will work out-of-box and have beautiful design (and maybe even support for the first time), but when you want to customize it slightly different than owner (vendor, not you) wants it, you're busted. And you never know what's inside and what will the device do next moment, and the worst part is: you have no way to know it.

Optional points

Configurability

Not sure how wide the limits of this point should be, but I'm not the fan of "made once, works forever" approach. We live in a changing world, so putting wires inside concrete walls is not my choice. Still I do understand, that I may agree to that if price difference is big enough.

If we talk about software, I see no problems at all: using open source software solves this problem completely.

Reproduction possibility

From side of vendors/component developers I expect detailed technical specification, not just user manual and several examples, as some companies like to do. As I mentioned already, I want to be able to control every pdevice in my system or replace it with something else.

From my side I'll describe my adventures in this blog and publish all sources or hardware descriptions created during the process. The more success (opr failure) stories we have, the more possibilities we give to those who comes after us. And I consider experience sharing to be the great thing.

Есть русская версия этого поста