For the past several weeks, I’ve been continuing a journey to immerse myself with Home Assistant, the open-source software platform used as a DIY local smart home hub
If you’ve missed the previous steps I’ve taken so far with my Home Assistant project, here’s what I’ve been up to:
- Why I’ve decided to try Home Assistant
- Home Assistant smart home setup: Easy for techies, less so for “normals”
- Tested: Home Assistant integrations, remote access, and voice commands
- How secure is Home Assistant? (Hint: very)
With the system up and running for several weeks now, I haven’t had a single issue. It’s been rock solid. The only minor glitch I ran into was a software update where I got a pretty inexplicable log message telling me the update failed. Luckily, the Home Assistant user forums are packed with good advice and a simple remote reboot of my Raspberry Pi resolved that issue.
For months, if not years, I had heard that Home Assistant automations are practically unlimited, so that’s where I’ve focused my time over the past week. Long story short: The rumors are true. I keep coming back to the phrase that automations on Home Assistant are like IFTTT on steroids, and without any latency since they take place locally. As a sidenote, Stacey even tested latency to turn on a bulb in my home from 2,500 miles away: It was instantaneous.
The setup process for automations threw me at first because I had read you need to set them up on your Raspberry Pi in text files using the .yaml specification. That sounded tedious but I did install a Terminal & SSH add-on to make it easier; my Raspberry Pi is headless and I didn’t feel like setting up the monitor, keyboard, and mouse for it.
But it turns out that all of the test automations I wanted to create can be easily done without any text file modifications as Home Assistant is adding user interface options that can replace the .yaml file editing.
The Home Assistant Dashboard (called the Lovelace UI) offers support for automation setup using a card-like system. which should be familiar to users of SmartThings. Even better, you start out by entering a simple text description of what you want to automate and Home Assistant parses that to get the necessary information. It’s a clever system that’s actually powered by Almond, an open-source virtual assistant created by Stanford that runs locally to protect your privacy.
As an example, I want to know when my wife turns the bedroom light off each night as I’m typically in my office and usually need to then turn down sound on the TV or computer. I suppose I could wait until she bangs on the wall but I know from experience that’s not the best situation! So I decided to set up a simple automation that brightens my office light when the bedroom light is turned off:
After Almond parsed my automation name, Home Assistant knows that I want a trigger event and an action to occur. It’s now just a matter of picking these from the drop-down menus and choosing the Create Automation option.
Of course, that’s just the tip of the iceberg for automation. The choices you have can lead to very complex but very useful automations, depending on your needs.
Even just this example can be modified in so many ways with different conditions (maybe I only want this automation on weekdays, for example), some other trigger event, or the ability to add multiple actions for various devices in the same automation.
Here are some examples to give you an idea of the multitude of options available to you:
There’s even support for custom notifications that can be sent to an iOS device so I may kick the tires of that functionality in the coming weeks. In some cases, a phone notification might work better than a light or other device to alert me that it’s time to keep the noise down, for example.
Regardless, there’s such a wide range of options for every piece of an automation, that it makes store-bought hubs look like toys by comparison.
Granted, for some of the options, such as MQTT or webhooks, you’ll need a little a bit of technical skill.
But not everyone needs to use those features and those that do probably understand how to use them. Even for people new to the smart home scene, powerful automations can be made quite easily.
All in all, Home Assistant automations live up to the hype based on my experience in the last few weeks. If you can think it, you can probably make it happen. And best of all, I’ve seen absolutely no latency for any of my automations: It’s like the house has a sharp mind of its own, and isn’t that what we really want: A smart home that’s actually smart?
Wow, what a change article from the previous ones in this series.
No mention of “normals”, whoever they are.
No mention of “the mainstream”, whoever they are.
No comparing the product to “off-the-shelve” alternatives that only serve to lock in the users to branded ecospheres in the cloud that get shut down over and over again and that no-one seems to be happy with.
No lazily framed disappointments.
In fact you both seem transformed, Stacey has gone from ‘no-way’ on downloading a file and running it, to helping you run cross-national remote latency tests.
Dare I say that Homeassistant is transforming you both.
” isn’t that what we really want: A smart home that’s actually smart?”
– Don’t forget secure, I guess that’s more of a need than a want.
Keep up the good work, starting to enjoy your enthusiasm.
Maynard Handley says
Kevin, Stacey it’s not for me to tell you how to do your job. But I can tell you what I, as a reader, want from these sorts of analyses…
The problem is have with practically all IoT journalism today is that the writers are so unambitious! People get excited by the fact that “I can tell Siri to turn the fan on” or “the lights dim when I leave the house” like those count as huge programming achievements. No-one is willing to state the obvious, that those are utterly trivial; table stakes in this space. It’s a truly sad poverty of low expectations.
So here’s what I would like to see in these articles:
– voice assistance is not interesting.
– security is not especially interesting.
– inter-op is not especially interesting.
All of these are IMPORTANT. But they are also just the first step. If you can’t provide them, go home. But just providing them doesn’t make you special…
Every serious contender can cobble together something from HomeBridge (or equivalent) and/or IFTTT (or equivalent). Not interesting!
What IS interesting, what matters going forward? The answer is what I’m going to call the equivalent of Visual Basic for Applications.
VBA was and is not something used by most Office users. But the fact that it was there allowed a few power users to convert Office into something that was vastly more valuable for everyone else around them.
And what is missing today is that equivalent, a serious REAL programming language for IoT automation.
Everyone in this space claims they have this. But the fact that not one of them actually calls what they are offering a program language ought to clue you in to the reality. They’re offering “flows” or “recipes” or “shortcuts” or some similar childish BS.
What’s wrong with these? Well, try to do anything serious.
You want your lights to go when it gets dark then off at midnight. OK, that’s a trivial trigger then action.
But now what if you ALSO want that the light are full brightness when you are home, and dim when you leave the house?
Now add security rules — if I am away from the house, and something happens, the lights go to full brightness and stay on till I manually override them.
Now add manual vs default behavior — I still want the lights to go on when it gets dark, and switch off at midnight but if I say “TV Time” then the lights stay very dim until TV Time is over.
Now add rules for the lights to change color temperature based on time of day; or color based on holidays.
etc etc etc
The full set of rules one wants is actually NOT that hard to codify using a traditional programming language, one that offers variables, boolean logic, if/then statements, modularization of functionality into separate discrete functions, comments, and all the other technology for writing computer programs that we understood in 1970.
But not one of these hubs — Apple, Alexa, Google, Homey, Home Assistant, Hubitat, etc — offers anything like a real language. They all offer a set of toy rules that can only do the sort of thing I describe via insane levels of combinatorial explosion — 32 or more rules trying to implement what should be one small function with some boolean logic and if/then statements! Believe me, I’ve tried…
So here’s what I would like to see going forward:
– don’t buy into the hype from the people pushing their particular OSS solution, whether it’s HA, Hubitat or Homey! They offer voice (yawn), interop (yawn) and a toy language. In other words they’re doing the same thing they always do — copying the big boys. The one thing they SHOULD be doing is offering something that is not a toy, ie a real language not a set of rules. But these guys suffer from a crippling level of lack of self-awareness, and so can ONLY copy what the big boys are already doing. If Apple provides rules for its hub, not a real language, then, god dammit, we’re going to provide rules not a language.
It makes zero sense to me — the only people interested in buying your hobby systems are people who have been writing programs since they were six years old, yet you treat them as idiots who will be terrified if you provide them with a JS environment and use words like subroutine and editor? But, like I said, these people are driven by *nothing* but the urge to copy Apple/Google/Amazon in every tiny detail, no matter how insane that cargo-cult behavior might be.
– don’t buy into the hype from the big boys.
For every one of them, ask: How would you create the sort of AUTOMATION I described, automation that schedules lighting based on time, presence, security, manual override, and other inputs. (I WANT my lights to move slowly from blue white to yellow over the day and over the year, based on temperature and time of day — but no-one makes that possible right now). Don’t listen to the hype, demand details.
Alexa offers voice. When they claim to offer automation, look at the details and just how pathetic they are. Just how much can you do in an Alexa automation without voice interaction?
IFTTT? Ever looked at their Hue controls in detail? You can’t even set the color temperature of a bulb… And god help you if you want an if A and B but not C.
HomeKit? No way to pass variables around. Sure, I can conditionalize if temperature is hotter than X, run scene Y (which sets a bulb to some color), but what I CANNOT do is perform some arithmetic on a temperature reading to calculate a color or color temperature and set the bulb directly to that calculated value.
And so it goes. EVERYONE in this space is banging two rocks together and insisting that you praise them as though they’ve invented space travel. It’s freaking pathetic! I’d love to see at least one journalist whose primary shtick is to interview and review each one of these products and tell us exactly how pathetic it is.
Stop trying to do the trivial! Demand the ability to do the non-trivial, and tell us where each product fails. Because, god knows, *I* want to do the non-trivial, and I am tired, and exhausted, by having one scam artist after another tell me that their pathetic PoS counts as a true programming environment where “the only limit is my imagination”!
We don’t need more toys. We need power tools so that, even if most people will not use them, some of us WILL use them, to lay the foundations for TRULY intelligent homes.
“Of course, that’s just the tip of the iceberg for automation.” No it is NOT. THAT IS THE ENTIRE DAMN ICECUBE! There is no iceberg! That’s all they offer, slightly fancier versions of “trigger + conditions + action”.
This is not programming, nothing close to it! I can do more serious programming in the Scratch programming environment they use to teach eight-year-olds!
Lots of virtual sensors, MQTT, webhooks don’t change this fundamental reality. You do not have variables, you do not have useful conditionals, you don’t have arithmetic, you don’t have modules; you do not have that VBA power to put true logic into your routines.
Surely as someone who keeps talking about “actual smarts” you get this?
Like I said, don’t take my word for it. Think through EVERYTHING you’d want your house to do, just with lights, informed by sensors. Then ask yourself how you could possibly implement any of that via the trivial tools being offered to you right now, by HA (and by everyone else)?!?
Mr Bree Lindsay-Stewart says
Do you know HA has Third party integrations?
One of these integrations is called AppDeamon which gives you full access to the Python programming language if that is what you are after, check it out here https://community.home-assistant.io/c/third-party/appdaemon/21
Or try integrating HA with node-red to really boost your automation tools. One of the best things of Home Assistant is that there are plenty of options to achieve your goals. Also remember it’s not even V1 yet. The are no security framework yet to implement ACLs … But there are really good people and a very active community working on it.
@Maynard. Everything you mentioned can absolutely be done in Home Assistant +more. And in alot of instances have already been created for you via. Add-ons and app-daemon.
Buy in to the hype with Home Assistant. All of these things are possible. Example. I just built an automation that automatically closes my blinds when the sunlight is shining directly at my tv. It is triggered by a sudden increase in a lux sensor I placed directly on the top of the tv. But this only happens if I am home, and if the tv is on. No special coding required. I have circadian lighting hooked up that mimics the color of the sun. This was done by an add-on that someone else developed. My TV turns and follows me when I move from the kitchen to the living room. I am an avid tv watcher. Lol. When someone walks onto my deck, Google assistant notifies me when I am home, but when I am not home, and it is late at night and I should be in bed. The lights turn on in sequence to mimic someone coming down the stairs. The stereo inside starts playing the sound of a barking dog. If they don’t leave. The lights start flashing red blue and the stereo changes to a siren at 100% volume. Pretty cool stuff