Hacker News new | comments | show | ask | jobs | submit login
Home Assistant is an open-source home automation platform running on Python 3 (home-assistant.io)
552 points by federicoponzi 4 months ago | hide | past | web | favorite | 170 comments

Founder of Home Assistant here. If anyone has any questions, let me know!

Besides being able to install it as a Python package on Python 3, you can also install it using our Hass.io OS. Based on ResinOS and powered by Docker, it offers over the air updates and management of your device via the user interface: https://home-assistant.io/hassio/

Hass has probably been the biggest help to this quadriplegic in the past decade. The way it's made it easy to stitch together a massive variety of Internet connected devices is absolutely awesome. I've got lightbulbs from one company, plugs from another, sensors from another and then there are all the web-based sensors which I can easily control with my Amazon echoes. It truly is a remarkable piece of technology.

Were I to ask a specialist disability company to replicate the setup I have at home it would probably cost me 10 times what it already has, and unfortunately that's not hyperbole is it really would cost me that much.

Not only that, but the Discord[1] channel is not full of terrible old greybeards having a go at n00bs for not knowing things. The amount of patient and helpful advice I've had was learning over these past six months how to set it up has been amazing. That seems to be getting rarer and rarer these days among technical online communities, or maybe it's just confirmation bias. Either way they are very nice people. I've even had the developers help me with problems that are specific to me and my disability and probably not to very many other people just because they could.

They deserve serious props for this work, they really do.

@robotsandcake over on Discord

I've been using Home Assistant for about 1.5 years on an RPi3, controlling some outdoor and indoor lights using a Zwave hub. It has been rock solid and never given me any issues.

Thank you for this awesome software and community!

I apologize if this is silly question but how is the smartphone in the pic on the home page displaying that interface? The control section notes:

>"Control all your devices from a single, mobile-friendly, interface."

I had a cursory look through the github repo and everything just looked like python, nothing UI wise jumped out at me.

There is an extra repo for the web frontend: https://github.com/home-assistant/home-assistant-polymer

I typed: into my phone browser. Adjust your IP accordingly.

Are there any plans to improve the integration with openzwave?

Currently, there is not much feedback available to the API when adding/removing nodes except for viewing the openzwave log files and comparing state lists before and after.

Also, are there any plans to provide hot reloading of config files, instead of having to reset hass? Large zwave networks can take 10mins+ stabilise after a reset.

Contributions to improve Open Z-Wave integration are always welcome :)

We already allow reloading the most important pieces of configuration: groups, scripts and automation.

You allow reloading, but that is not the same as hot reloading. Love your work btw.

We reload right after you make a change in the UI. Seems pretty hot ;-)

If you want automatic reloading when a file changes, feel free to contribute a watchdog component to Home Assistant so people can hook it up themselves.

I've been hammering away on lifx discovery for a month or so, I'm absolutely stuck but in https://github.com/home-assistant/netdisco/issues/128 you've said you don't want to pull in any additional components.

Would you be open to pulling in an extra lifx library that's tested and working until such time as lifx discovery can be rewritten?

I use LIFX bulbs all throughout the house, I think we have about nine of them and they are always discovered every single time I restart Hass and have been doing for as long as I've been using it.

Are yours just not showing up at all, or are they coming on and off-line?

Hass.io? In case you don't know, hass means hatred in German.

Coincidentally, it is also a short name for the home assistant software in English.

In turkish it might sound like "hassiktir," which means "fk off", "WTF", but pronouncing only the first half is very common.

David Hasselhoff will not be pleased to hear that - his surname loosely translates as "Court of Hatred"

If I had to guess, I'd say "Hassel" is related to "Hasel" in this case (as is the case with quite a few similar place names), which would make it more like "David from the farm with the hazel trees" or something.

"Hassel" is German slang and translates to "hassle".

.. but that is new slang, and originates in "hassle" afaik. And I would rather say, it is just used (and written) as the original english word.

It could very well be exactly the other way around. Even my grandparents knew this word and taught it to my parents. It's absolutely not new.

Interesting, I never heard of it and will ask mine. Which area are you from? (maybe it is dialect?)

Anyway, I suppose most teens who use today, got the word from gangsta rap and their "street hassle" ..

When you ask geeks to name a product the result might resemble marketeers engineering it.

Interesting. It is also a not uncommon last name.

It is also a cultivar of avocado, named after its breeder [1]

[1] https://en.wikipedia.org/wiki/Hass_avocado

Isn't that usually Haas? I know 3 or 4 independent people with the last name Haas, as well as the Haas business school at berkely, but only know Hass as the avocado brand.

Haas is also the name of one of the biggest CNC machine companies. They also have race teams.

Haas is rabbit

Yep, unfortunate naming...

Huge fan of Home Assistant — I'm currently using it with a Broadlink RM3 Mini to control the media setup at a hackerspace.

Thanks everyone for your hard work!

Did you guys consider distributing reference 3D printing designs to accommodate the Raspberry Pi at home. For example replacing a wall light switch? The wall niche for the Pi+ switch is a perfect place because it supplies electricity and is already reserved for a human interface.

I've developed a open hardware 3d printable LCD touchscreen which uses WiFi+MQTT to interact with Home Assistant which fits into a standard wall panel which you can find here: https://github.com/aderusha/HASwitchPlate

This still requires Home Assistant to be running somewhere else on the network and uses an ESP8266 instead of a Pi for several reasons, but it might help you out on your use case.

Wow that is awesome. Good work!

It's weird that you guys with a open source project don't have a IRC chanel, at least I couldn't find one on https://home-assistant.io/help/

We are on Discord which has a better experience for our users https://discord.gg/c5DvZ4e

Have you heard of / considered Matrix/Riot?

Consider Keybase as well.

How is this project funded?

I don't have a external screen and http://hassio.local:8123/ says 'Server not found', because my network is a bit special. Therefor I connected via serial to the rp and now it asks me for a username and password which I can't find. Would you care sharing this?

I'm not a Hass user, but recommend you try user pi with password raspberry. (That's an RPi standard of sorts.)

I tried that but it's not it, this is default for raspbian I guess, the hassio people use Yocto to create a custom linux distribution, I guess I'll need to check out the yocto layers if I can find which password is used.

Hey Baloob. Will you be implementing access control levels anytime soon?

interesting naming, Hass in German meats hate but I guess that was not the intetion.

Founder? Is this for-profit? If so, how you gonna make money?

Edit: glad to see the project on Github is APACHE licensed. Any drawbacks from using the software compiled str8 from Github as opposed to downloading the binary blob from the website?

It is not for-profit. We will soon start a program for people to support the project.

The published version of Home Assistant is 100% what is on GitHub. Home automation is able to gather very private details of your house. It knows when you're home, what TV shows you watch, when you go to sleep. We keep all this data locally in your house, without the cloud. We want to make sure that anyone can check and influence the code that is distributed. No data should leave your house without your permission.

Hey Baloob. I watched you talk at PyCon. How have your experiences been since you switched to asyncio?

asyncio is amazing. It has been way faster and more predictable. Home Assistant has a lot of small tasks running all the time with the occasional task taking a long time (ie. trying to reach a device which has been turned off). The number of tasks running simultaneously used to be limited by the size of the thread worker pool, which is no longer the case. A request taking a long time is now just a coroutine pending result in our event loop.

We still offer the old API on top of asyncio, so we have been able to incrementally transition. By now the core and important components are all fully asyncio. Most integrations are not.

Dude. A blog post on writing application on top of asyncio which may interchangeably use threads or async/await, and incrementally making the switch to asyncio would be awesome.

I work with a large-fintech platform which is partially powered by Python. Our old server was based around threads, queues, and socket multiplexing but we are gradually starting new applications in asyncio.

I recently completed a project in aiohttp which has been fantastic. What are your thoughts on aiohttp vs tornado?

I have not used tornado but I love aiohttp. it's super fast (part in cython) and does HTTP + websocket client and server. Their team is are part of the asyncio contributors, they know their stuff.

this would be another great talk.. consider! :)

I submitted a talk proposal for PyCon 2016 about this but was not selected.

No, and it is encouraged for those who are capable of it. Send pull requests if you think anything can be improved please!

I'm a co-founder of Snips https://snips.ai, we are building a 100% on-device Voice AI platform which protects your privacy as it does not rely on sending voice on servers like Google and Apple do

You can use the platform for free (we will also open-source over time), it can run on Raspberry 3 and we added an integration with the amazing Home Assistant: https://home-assistant.io/components/snips

> (we will also open-source over time)

One tip is to use GPLv3, which would force the users of your code, who would put the software on their hardware, to make it possible for their users to reflash the devices. For everyone who doesn't want to allow that you could offer a commercial license.

This way of open sourcing works quite well for example for the Qt Company, they sell commercial licenses to automobile companies which don't want people to reflash their in vehicle infotainment systems for some reason, so they pay a per device commercial license. The Qt Company takes the money and pays developers to keep on working on the free software version of Qt which is GPLv3.

Kind of win win for everyone, small users who play with the sofware on their raspberry pi get the source code and big companies with their own propriatary hardware would pay licenses.

This is a blog post on how to integrate Snips with Home Assistant to build your own 100% on-device Voice AI for home automation https://medium.com/snips-ai/integrating-snips-with-home-assi...

This is a blog post on how to create your own custom assistants https://medium.com/snips-ai/build-a-weather-assistant-with-s...

Can you recommend a far field microphone for use with your project?

Or really one as good as or better than those in the echo dot would be amazing, because that is what my baseline is right now.

We are using a ReSpeaker, and we made a blog post to benchmark some microphones at https://medium.com/snips-ai/benchmarking-microphone-arrays-r...

Z Wave is supported but is zigbee? Zigbee hardware tend to be quite a bitcheaper and have has a wider range of devices.

I'm controlling zigbee devices with hass via a lightify hub, and I know there are other supported methods as well.

EDIT: clarified that I am using homeassistant to talk to the lightify hub.

You guys are even using Rust for some of your projects on Github [0]. Yay :).

[0]: https://github.com/snipsco

We love Rust :)

> which protects your privacy as it does not rely on sending voice on servers like Google and Apple do

And on your website:

> The First On-Device Voice Platform

Android already has on-device voice recognition. Just try getting in airplane mode and saying "OK Google, play music" or something that does not require being online.

Yes, but their business model is still to get and sell your data to advertiser

We do a 100% on-device platform, where your data never leaves the platform, and we want to power the next generation of private-by-design smart IoT devices


How many times do we have to do this? Google isn't selling your data to advertisers.

How many times do we have to do what?

Google is absolutely selling your data to advertisers.

If you mean they won't sell it to them in raw form I guess you're technically correct, and I'd of course agree with you, but I don't think this is the parent posters point.

They aren't being altruistic by not doing this; if they did they wouldn't be able to monetize it anymore.

Am I misunderstanding something here or are you just being pedantic?

It's the same reason I'm an iPhone user. I'd rather deal with a company whose business model is to sell me overpriced hardware rather than to "sell my data to advertisers"

I just watched an interview with Trump where the interviewer asked about the possibility of regulating tech and specifically mentioned all the info these large tech companies are gathering and "selling" our data. While it may be considered pedantic, I think the nuance is important. Fake news often has a kernel of truth in it and being sloppy about the facts has implications.

Here on HN, we know the specifics, but FOX viewers don't (for the most part).

Sure, but the Google platform is still in the cloud.

Can apps/services hook into that?

How are you able to improve the training over time if you aren't centralizing the data anywhere?

We have many methods, but mostly voice and text can be trained offline and we refine it online with methods that can train on the device

Allow people to explicitly opt in to send training data to them, or otherwise generate their own training data through volunteers.

Thank you. What is the accuracy of recognition? Does accuracy improve overtime, if so how?

The accuracy is actually very good, and will improve a lot with the new models in the next release you can test them for yourself by downloading the platform which is free!

thank you for your work on this, I was thinking last week of nice to have assistant like echo or google, but I don't trust either company

Thank you :)

> (we will also open-source over time)

What portion of it is currently open source?

We have a few open-source repositories now, but we will start open-sourcing more during next year

Is anyone else here completely confused at how much hype there is around automated light management systems? I don’t get it. Is it really that hard to turn on and off lights manually that people really need all this stuff? What am I not getting?

While I understand your skepticism, there are a few use cases for which I use HA which would be either painful manually, or would require alternate devices such as timers/etc:

1 - outside lights - various lights which light our home's pathway or areas we prefer to have lit at night come on automatically at sundown and turn off at sun-up.

2 - scenes; with HA, we can click one button - a switch with scene control in our case - and have the lights in the room go to a specific set point, receiver come on, select sonos, and tune in to a particular station - an activity which would conventionally require several manual steps with various input devices.

3 - notifications; with HA, I get notifications when the front door or garage doors are opened/closed.

There are several things I plan to implement:

1 - using presence detection and adjusting temps/lights/etc based upon that

2 - fan control; we are heavy users of ceiling fans, and integrating them into home automation would be a significant upgrade. Haven't found a replacement for our Minka controllers which supports zwave (or anything else).

All of this has been possible for years - usually with single vendor solutions which are very costly; HA integrates nearly all automation platforms into a single system allowing each platform's features to work together relatively seamlessly. It's a moving target, but has become very stable/reliable with recent releases.

Tried to get a single outside light automated through a z-wave gaget hidden behind the switch. Endless hours later the thing is still either working intermittently or not at all. Even with the nodes in the network right next to each other the network is fragile as hell. I just can't believe how expensive z-wave things can be so much worse than the old 433mhz things that have been around for ages.

I finally gave up and now it's just on (or off) 24/7...

I'm considering giving it another try but I'm not to keen on investing in another tech only to see it fail as miserably as first gen z-wave

Is there no good standard that works over electric lines? Seems it could be so much more reliable and cheap. And every single device already has the wires.

Powerline Ethernet is sketchy with some wiring configurations but you'd think that these minimal bandwidths could be handled in nearly all wiring setups.

Z-wave is a mesh network, so the more devices you have the better the connectivity. If you only need a single device, try locating your hub as close to the switch as possible. Otherwise, ironically, the solution may be to invest in more light switches.

Yes. I considered the distance but before spending more money on switches I don't really need, I figured I'd try with the base next to the switch. Didn't work reliably there either. So I'm not going to dare buying more nodes.

Is there any standard that isnt mesh based? Hub and spoke with lots of power like wifi seems much smarter.

Seems like complete idiocy to use a fragile low power mesh network for something that a) has to have 99.9999 reliability (like lights) and also has unlimited power (2kW+ available at each node!!) like lights.

The reason I went with zwave was because of the need to work behind an existing switch. For sockets it would have been much easier with 433-plugs.

You’re probably using one of those cheap USB z-wave stick. Attaching it to a USB extension will improve reception significantly. You can also try changing the angle of the stick.

Definitely a regular z-stick yes. I don't think it's the problem though, because it reliably switches an external wall socket plug I use for testing. Just not the recessed switch I need it to manage...

I think the problem is that the switch itself is too weak in signal, and sits built into the wall. The z-stick doesn't reliably switch it even if I have it inches from the switch.

My Kuna security cameras turn lights on at night and off at sun-up. My Nest already has presence detection and adjusts temps based on that.

More importantly, I didn't buy a Kuna for lights on and off with the sun, nor a Nest for presence detection, so I still don't see these functions as killer apps for HA.

Can you use the Nest's presence detection to turn your lights off when there's nobody home?

One of the "killer apps" for HA is connecting different silo'd smart devices.

My $8 "dumb" LED outdoor bulbs have sunrise/sunset sensors built in...

Can you have them turn on 30 mins before sunset?

There is usually a screw to adjust at what light level they turn on. So I suppose you could hit the 30 min. mark with some trial and error. But why would you?

You can get an astronomical light switch that replaces the manual light switch that can do that and more based around actual sunrise/sunset time for $30 - it’s a little pricey but they just work.

All of my Zigbee stuff 'just works' as well and is under $30/bulb for basic lights.

Yes but I have 4 bulbs outdoors controlled by my $27 switch. Bulbs will fail over time, especially when exposed to the elements and seasonal temperature swings. I can set my lights to turn on off at a fixed time relative to sunset/rise or randomize it +- 30 mins. All with a switch that I bought at a big box store 10 years ago.

that would definitely require them to not be "dumb" anymore.

A simple sunset/sunrise detector can be had from a cheap photo-resistor. 30 minutes prior to sunset sounds like it needs at least a micro controller with a real time clock and a lookup table with sunset times

I don't mean this to sound snarky, I really don't so please don't take it as such but yes, it is really hard to turn light switches on and off when you are quadriplegic. This software solves that problem completely.

Again, I am not trying to flame you, just telling you how I use it and giving you my reason for using the software.

Have a nice day! :-)

Cron job on my home server starts sending commands over zwave at 6am for about half an hour to slowly increase the brightness of my master bedroom light from 0% to 100% at 1% increments. So when I get up, it's not pitch black, and I don't go from zero to blinding light in one moment. Probably my favourite thing I've done with home automation so far.

Built into the Hue app, but I bet it was fun to code :)

Some basic bash scripting and a cron job.

Can I control a Hue light bulb with some basic bash scripting and a cron job? Can I do it without calling out to some Internet based web service?


    curl --request PUT --data '{"on":true}' http://<local bridge ip address>/api/<your api key>/lights/<light id>/state

That's good. Does it generate any Internet traffic it all, or is it entirely local?

One thing I noticed from your command: No authentication. Looks like any software on any device on the LAN can control the light. Is that really true?

You were being offered a slightly simplified example, the Hue bridge does indeed require authentication.

To answer your other question, the bridge can be accessible via the online “meethue” portal for things like easy remote access but I think this is optional.

EDIT: oh, and it’ll generate internet traffic for firmware updates I suppose!

Ok. I'll probably stick with Z-Wave then. Hue doesn't seem to offer anything extra.

Yes, the Hue hub will expose a local internal REST API where you can easily GET the status of your bulbs and POST updates, and really do anything the Hue app can.

You just curl to your hub and everything...works.

Lots of time I'm lying in bed, almost falling asleep and suddenly realizing I left the kitchen light on. In fact, I'm not sure I did. But it doesn't allow me to sleep, so now I need to wake up, check the kitchen for a light that might not even be on. At that moment I'd be willing to pay a lot for a button on my phone to turn off all the lights.

I have a Roomba and if I don't close my bathroom door at night, it always gets stuck in the bathroom when it goes off in the morning. So every night, I make sure the bathroom door is closed before I go to bed. I would not pay anything for an app that closed my bathroom door. I just make sure I check at night. It still doesn't make sense to me.

Roomba makes sense to me. Sweeping is hard and takes a significant amount of time. Flipping a switch is not hard and takes no time at all.

One use I like is having the lamp come on gradually about 20 minutes before my alarm in the morning.

That's cool, I like that one, except the sun does that for me in my case. But if I needed to wake up earlier than the sun, I could see that being useful.

That is a pretty cool use case

I think light switches are an absolutely fantastic UI. You can look at them to determine state, you an interact with them without unlocking a device and when they're placed well you can just "wave your hand" and lights come on.

However, when the light switches aren't well placed it is nice to add a layer of software abstraction between the switch and the light to be able to rearrange existing switches in your home without having to pull new wiring. So you can essentially just keep what you are already doing but make the existing, mature UI even more suited to your needs even if you're skeptical of all of the rest of it.

This might sound crazy but my remote dimming hue lightbulb is probably my favorite purchase all year - more than my 55" 4k tv and new gaming computer.

Light dimming alone is a huge improvement but the ability to start a movie or go to sleep without needing to get up to turn off the light is really great. Believe me I was just as skeptical as many people here.

All the other options I tried before the (admittedly more expensive) hue bulb were either clunky/big or unreliable.

I installed extra lighting temporarily in the corner of my garage/shop. By using a zwave outlet controller, zwave light switch, and Home assistant, in about 10 minutes I could turn those lights on or off with the main lights without having to rewire my garage. When I’m done with my project I can simply take the lights down or move them around the garage without changing any wiring. It’s simple and convenient.

Another benefit not already mentioned is home security. Getting some cheap zigbee window/door/presence senors, I was able to completely set up a home security system for < $200 by myself. That's about an order of magnitude less than existing solutions. Granted its a self-monitored solution, you could just as easily pay for a monitoring service afterwards.

Is your first reaction to anything you don't understand to question its existence? Maybe try to find the value others see first, then you will be better prepared to weigh that value against your own values.

> Maybe try to find the value others see first

That is exactly what he's doing.

No, the questions in the original comment were posed in a clearly dismissive way, in a way trying to get others to join in the dismissal ("Does anybody else..." isn't an honest question, it's a call to action).

I don't get why people are all excited about pushing buttons on a machine to write. Is it so hard to carve stuff into a stone tablet? Help me out here.

(Seriously, I use a nanoleaf aurora to make a nice sunrise to wake up to, and it also acts as a clock and part of it lights up red if any of my servers are down. I'm pretty excited about open HA.)

What am I not getting?

How lazy I am once in bed.

How does it compare to OpenHAB 2, other than the language (OpenHAB is written in Java)?

I'm currently running OpenHAB and it's rock solid (I have one with >2 years uptime on a BananaPI). If I want to extend it, I usually write Python scripts that either use OpenHAB HTTP API or send MQTT messages, so I've not yet felt the need to write Java code. While I'm proficient with Java, I'd have to set up a development environment.

But the OpenHAB scripting language - while very powerful - has a very steep learning curve. It's hard to work with if you don't use it all the time and you end up having to google everything single thing you want to do.

The Home Assistant community appears to be more active (about 2x) and the barrier for entry is much lower.

> The Home Assistant community appears to be more active (about 2x) and the barrier for entry is much lower.

I would go so far as to say Home Assistant is literally the best open source community out there today. Very active, lots of folks happy to help users with issues, and lots of devs happy to help newer devs through the PR process.

Having contributed to a number of projects via github, this is not true at all. I have had prs closed within minutes with curt replies. That is not how you “help newer devs through a PR process.” In another case this happened for a very clear bug. I’m cool with making amendments but maintainers do not seem open to that often, feeling more content to close things because they see the fix as a “hack”. Compared to other projects HASS is one of the worst I have dealt with, sorry to say.

Obviously this is an entirely subjective thing, and neither of us is "right" or "wrong".

Home Assistant has certainly gotten a lot more particular about new code as the project has grown, but I still feel they do a great job of helping new users along.

Bummer you had such a negative experience...

Which is sad considering an issue I was attempting to contribute was a bug fix rather than new feature work. Clearly a lot of the earlier code suffers from lack of design.

As I mentioned later I have had PRs accepted but overall I find maintainership to be a real mixed bag. Better run open source projects do not have this inconsistency.

As a counterpoint, I had a really good experience with the 2 or 3 PRs I submitted. They were merged pretty quickly with helpful feedback. It definitely makes me more likely to contribute in the future.

This has not been my experience at all when contributing to HA. Maybe we interacted with different people.

They do have strict code standards, but it's hard to argue that's a bad thing.

Probably. I had a couple prs accepted by another maintainer fwiw. The code standards were not the issue, nor were unit tests. Not my first rodeo. The later interactions were not pleasant and did not engender much interest in further contribution.

Mind mentioning a link to the PRs you're referring to?

Sure. https://github.com/home-assistant/home-assistant/pull/9272 Closed with prejudice as a “hack.” I actually spent some time to make this feature request implementation consistent with other code as another contributor mentioned.

https://github.com/home-assistant/home-assistant/pull/9270 The second one was based on an observed defect in the UI. The defect is still there but apparently this is flippantly a “feature” now.

Disagreements about implementation aside this is not the response I’ve gotten from better maintained projects.

Sorry to hear that you had a bad experience. As an open source project we get bombarded with pull requests where people have spent time and research to create something without reaching out to us in advance. This means that sometimes the way you are architecting your new feature doesn't fit with the current design or our vision. It means that we will sometimes say the feature needs changing.

We are all volunteers and the last thing we want is to start argueing with every person on the internet. The maintainers would burn out pretty quickly. And that means that if we are looking at 20 PRs a night, we will make mistakes and judge too quickly. Can we look at less PRs and spent more time on each PR? Sure, then people get pissed that it takes too long to get feedback on their PRs. There is no winning for us here and so each maintainer will have to find their balance.

For 9272, Pascal has offered the correct solution: a service switch. Every platform could be sharing code with other platforms given enough configuration parameters. We have made the decision that that is not in our best interest as it means that growing one platform now has to be made compatible with all the other configuration options and it becomes a mess. So create a new platform if your change is changing the core of a platform (like removing the template from a template switch). Your comments after the PR got closed got probably missed.

For 9270, you rebased after the discussion took place and I don't remember if the code was different before. The current change looks fine for me. You've removed your clone so I can't re-open the PR for you, but feel free to open a new PR with those changes and tag me in the PR message.

I'm a software developer for one of those biG tech companies programming in Java and c++ all day, and I found openhab largely inscrutable without putting a large amount of time in. In contrast, I had the relatively simple time setting up hass and got to my desired level of automation in about 1hr.

So, it was an easy choice for me. I also really like home assistants philosphy on library code- there is basically no device or tech specific code in Hass, their rule is to only use third party libraries with a wrapper around them. This greatly reduced the scope of the task for developing the internals of a home automation system

Finally, there is now a system in place in has where you can pretty easily write straight python code for scripts, instead of using a yaml config

For people interested in the tech stack:

Backend is Python 3 with asyncio. Source: https://github.com/home-assistant/home-assistant - License: Apache 2

Frontend is a PWA powered by Polymer 2 Source: https://github.com/home-assistant/home-assistant-polymer - License: Apache 2 - Demo: https://home-assistant.io/demo/

I've experimented with both Home Assistant, Domoticz and OpenHab. They're all pretty good in different ways, but in the end in decided to roll my own.

They all have built-in scripting, but it's pretty common to send events to mqtt and use some external tools for scripting. In ended up using node-red, because it looked interesting and was really easy to get going.

After a while it seemed like the only reason for using any of those 3 systems was the device support, and since I was just using z-wave, for which there is a nice node-red library, I decided to do it all on my own. It only took a couple of week nights before I had most of the things I needed.

It did feel kinda silly to do drag and drop programming, and I did en up using the function node a whole lot, but in the end I stuck with it because it allowed me to show the family what it does and how it works.

I was able to get Home Assistant spun up via Hass.io on an RPi2 very rapidly, switched to RPi3 for improved UI performance though.

OTA updates have been seamless, but the out-of-box still requires some conf file editing, which may be a turn off for some. It did automatically discover AppleTV, Roku, and Hue (easy pairing).

For integrating "homebrew" sensors I was able to roll MySensors[0] platform with parts lying around in drawers to get house-wide temperature monitoring with a few lines of yaml.

Looking forward to further refinements to the platform!!

[0]: https://www.mysensors.org

This thing seems to be mostly an interface for other home automation devices. In the demo, it doesn't directly control anything important. It's not like there are motor control relays connected to the Raspberry Pi's GPIO ports.

A big question is how this fails. It needs to fail into some safe condition. Raspberry Pi machines have a full Linux and no stall timer, so they can end up crashed or hung. If this thing turns devices on and is relied on to turn them off, that's a problem.

Home Assistant supports sensors and switches using GPIO pins (if you're running on a Pi, obviously)


Home Assistant is indeed an "aggregator" for a lot of different home automation devices. Personally, I find it very useful to have my Nest, my ZWave devices, various ESP8266 "things" (garage door controller, temp/humidity sensors, my doorbell, etc), along with my Chromecasts, and the home/away status of my wife and I all rolled into one state machine (plus a lot of "general" information... the time, sunrise/sunset timing, current weather in my area, traffic conditions, etc).

Having all that information in one place means those various components can be controlled intelligently, based on all the available information, rather than just the small island each of them would be on their own.

A Pi is totally optional, BTW. You can run HA on pretty much anything that runs Python3.

Wonderful , this summarized the capabilities of this HAss

> A Pi is totally optional, BTW. You can run HA on pretty much anything that runs Python3.

> Home Assistant supports sensors and switches using GPIO pins (if you're running on a Pi, obviously)

> Home Assistant is indeed an "aggregator" for a lot of different home automation devices.

> Having all that information in one place means those various components can be controlled intelligently, based on all the available information, rather than just the small island each of them would be on their own.

Assuming I have a few lights controllable via GPIO on the Raspberry pi (with custom circuitry to power the lights), what’d be the easiest way to integrate them with Hass?

(btw, hass means 'hate' in German)

Feel free to call it Home Assistant instead of hass :)

One of the primary deployment platforms is the Raspberry Pi, so it is very well supported. I believe this would do exactly what you want:


Hm, I can’t do multiple pins with PWM with that, can I? Because I currently have for each LED strip 3 pins with R G B using PWM.

You would likely be better off using some other solution for your light control, and then talking to that over HTTP/MQTT.

I use a version of this: https://www.stavros.io/posts/wifi-enabled-rgb-led-strip-cont...

It integrates nicely with HA via MQTT.

Yeah, I’m trying to switch to an arduino-based solution, but I just really want to avoid WiFi. And building custom protocols isn’t that optimal either.

There are MQTT libraries for Arduino that work with the Ethernet shield.

Good idea, for some reason I forgot that the Ethernet shield exists!

Thank you a lot, this really helps.

Also, the ESP8266 (which supports the Android SDK) has WiFi onboard, and is available in some very small form factors. I'm particularly fond of the WeMos D1 Mini (which you can get for a couple bucks each).


Yeah, that’s what I had seen before, but I really want to avoid WiFi. (Where I live the spectrum is quite congested, and reliability of WiFi is low)

Here is a really nice post from one of the home assistant contributors on visualizing the home using home assistant and some other goodies:


Reasonable satisfied user here. I love python and even contributed support for one particular device to a component library.

But my plan for the next free weekend is to look into Node-RED and a fully MQTT based system. I feel like that's the way to mix and match different frontends, automations, components etc.

Looks interesting, can this function as a ZWave controller hub when used on system with a ZWave USB stick?

It sure can! Many of our users (I say our somewhat sarcastically as I'm only an occasional contributor) use this USB zwave stick successfully:


See this documentation for more info please:


And this for the specific controllers officially supported:


If you're a new user, hass.io is going to be the most approachable way to get hass up and running while making it easy to install all of the add-ons and configure things securely + upgrade easily. The docs for zwave on hass.io are pretty straightforward as well


And if you want to learn more about what hass.io does ontop of normal home assistant, please visit this page:


I hope this helps answer your question.

Yep! I run a network with a dozen or so zwave devices on hassio on an RPi3. See https://home-assistant.io/hassio/zwave/ for details.

Yes, I have a few z wave devices that are controlled and monitored by my Synology Nas ruining hass with among other things a zwave transceiver

One of the best things of HA is the Emulated Hue Bridge. It allows you the mapping of any kind of Hardware on the corresponding Hue Device. It basically translates e.g. MQTT to Hue. This nicely allowed it to me to integrate my custom built devices in my Home Automation and control them with Amazons Echo Dot.

I had a lot of challenges running home-assistant. Wouldnt find devices properly, issues with devices falling out of the zwave network. Would constantly have to "re-sync".

I went and spent the money on HomeSeer and it has been so much better. Tons of great plugins that just work like MQ for the garage, IFTTT, etc. Has schedules, adhoc scripting integeration so you can run your own shell scripts on events, multi-event groups, a decent UI, logging and strong device support.

Its strangely written in VB but from a device support standpoint has been extremely solid and finding any device i throw at it quite easily.

I originally tried to use OpenHab and was turned off it because it required me to define all my stuff manually instead of discovering it automatically. Does HA do the same thing?

HA has a bunch of things it will discover... See https://home-assistant.io/components/discovery/ and the list of manually configured components in the top tab.

The home IoT world is broken - I got lots of devices (Sonos, Hue, Alexa, Roku, ...) and they don't play well with each other.

Shoutout for data and API integration layer for Home IoT.

Haven't used it but I've heard openHAB is an option to speak to the various devices (alexa and hue directly supported, sonos and roku supported through IFTTT)


I love Home Assistant, by far my favorite automation platform. I couldn't recommend it more. At home we use it to automatically dim the lights based on the luminance outside, send us messages when laundry is done, activate and deactivate our alarm system based on who is home, turn the radio on in the morning when we enter the living room, turn off all lights in the house when we go to bed, etc. etc. !

I really really wanted to set this up and have it working, but configuring devices and actions with it is so unnecessarily complicated that I ended up writing my own scripts to do whatever I wanted rather than writing templating code inside YAML config files (literally) to do certain things.

If you want to build everything yourself you can get stuff for very cheap eg a pir sensor for 1$ and it will be a good learning experience. If you think it's fun you can even start selling stuff, there's a huge market with huge margins.

Is there anything out there for setting up a DMX controlled light strip to something smart?

Has the automation scripting improved recently?

Last time I looked into this there was an uninvuative (for a newbie) config file that required a server restart to see changes. Not exactly the easiest way to learn as it was a very slow feedback loop.

Automations can now be created via the user interface: https://www.youtube.com/watch?v=f3isVVpmiq4

(Automations have been able to be reloaded without restarting for a while now by calling the automation/reload service)

[edit: added word "service" at the end]

Thanks for the reply! I'll check it out again.

I have used this for a while now and say it's the best choice I've made, Still a WIP but really really good

The Android client is on F-Droid. Nice. People who don't use Google services can download it easily.

I have been using the web interface on Android without installing anything. Home Assistant leverages web app manifest (essentially, creates an icon in apps list/homescreen which opens the web interface in a full-screen web browser).

That's not an official app (Home Assistant works well in a mobile browser, just add it to your home screen).

You might be interested in this analysis (that I co-authored) showing Home Assistant as one of the 20 highest velocity open source projects: https://www.cncf.io/blog/2017/06/05/30-highest-velocity-open...

I love Home Assistant. I do wish that the auto-discovery feature was working in Windows 10.

Is it right that home automation is really just light automation? Or did I miss something?

How would you maintain all those APIs ?

Applications are open for YC Summer 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact