Home Assistant – open-source home automation
home-assistant.io
home-assistant.io
Home Assistant is turning 8 years this week. To celebrate we have launched crowdfunding campaign for Home Assistant Amber, a device for both beginners and home automation enthusiasts and the easiest way to get started with Home Assistant.
For more info see https://www.crowdsupply.com/nabu-casa/home-assistant-amber
Whenever I buy smart-home stuff I first check if it is supported by HA. (So no more Kasa, and Nest was a huge compromise, I'm thinking there is a place for HA to make a [OpenTherm] Thermostat, like you made the P1 smartreader ["SlimmeLezer", reads energy and gas usage in the Netherlands]). The new Energy dashboard is extremely cool and useful and it's making a difference.
I love what you are doing and it's making Home Automation/IoT a better place. It is how Home Automation should be, with privacy and local control as founding principles. Keep it up.
Edit: Amber looks great! M.2 nice! I thought you were all about Odroid internally, so I'm a bit surprised it has a Pi compute module, I like that though. What drove that decision? Maybe you can go on the Self-Hosted podcast [0] again and talk about Amber, I enjoyed the previous interview [1] :)
https://news.ycombinator.com/item?id=27505277
To the point that they will threaten to relicense their own software: https://github.com/NixOS/nixpkgs/pull/126326#issuecomment-86...
And when they ask about it: https://community.home-assistant.io/t/consider-to-avoid-addi...
It gets delisted.
As the author of FOSS tools, I have worked to make sure things I have developed get packaged and used, and I have even spent a fair amount of time helping others to port it to their systems, even if it does nothing to help my use case. Frankly, seeing tsuch a hostile stance towards redistribution makes me wary of using it.
The gist is that NixOS has some weird dependency management that overrides Home Assistant's in a way that makes HA on NixOS a unique experience. And NixOS is not done repackaging HA, so it is in an unfinished state that only advanced users should attempt. ThIS will inevitably confuse users. Those users will then go to HA for support and will be unable to get it. HA doesn't want to support that and was pretty clear about it. Then this Jorg person got all up in arms and threw a hiss fit all over the internet and everybody got tense.
The NixOS also offered several ways to prevent just "go[ing] to HA for support and will be unable to get it":
https://github.com/NixOS/nixpkgs/pull/126326#issuecomment-86...
https://github.com/NixOS/nixpkgs/pull/126326#issuecomment-86...
Also, if you look, the HA dev has the same complaint about Fedora:
https://github.com/NixOS/nixpkgs/pull/126326#issuecomment-86...
So it is not just NixOS's "weird dependency management".
The threat to relicense the software came after the NixOS devs offering several ways to prevent more burden, and after the HA dev discovered Fedora packages it too:
https://github.com/NixOS/nixpkgs/pull/126326#issuecomment-86... (Feel free to scroll up from here to find the other two linked comments)
In other words, NixOS does what every other distro do and package every dependency required to run the application beforehand. HA devs appear to be claiming in almost every single one of the linked discussions that the Nix package is broken, but I can't find them pointing to any concrete evidence or specifics. I doubt they have any, because they can't have tried it out in a matter of few hours.
> And NixOS is not done repackaging HA
HA devs appears to be making a whole point out of this too, but it's quite overblown considering that the example being listed is a dependency that was introduced only days prior [1].
> HA doesn't want to support that and was pretty clear about it.
Did you see the Nix devs' proposal early on about requiring users to set the option `config.ambee.acceptThatThisPackageIsNotSupportedByUpstreamDevelopersAndIWillGoToNixpkgsToReportAnyIssues = true` [2] in order to be able to use the package? That was met with immediate hostility from HA devs.
> Then this Jorg person got all up in arms and threw a hiss fit all over the internet and everybody got tense.
That's likely not the impression people get from looking at any of the mentioned links, which is presumably why the prior HN thread mentioned in GP seems to have blown up. If anything, it makes me think twice about using HA myself because I fear this is the standard response I'd get from HA devs if I ever dare file an issue.
[1]: https://github.com/NixOS/nixpkgs/pull/126319#issuecomment-86...
[2]: https://github.com/NixOS/nixpkgs/pull/126326#issuecomment-86...
I did see that but it's somewhat irrelevant because the person that would know what that means would already know where to ask the right question. And the person that has no idea what they're doing would just type 'true' and not know why. I'm in the latter camp btw. Things have to be mostly idiot proof for me. When they're not I'm going to ask questions where I think the most experts are. If I have a problem with HA, I dont care where I got it from or what configs I had to do surgery on, I'm gonna post my question in the HA forums.
To be clear if I was trying to use HA on NixOs at this very moment, I would have no idea what questions are appropriate where except that my problem is with HA so thats where I'd ask it.
> That's likely not the impression people get from looking at any of the mentioned links
We're all different, but as a person ignorant of NixOs and HA, it's the impression I came away with.
How can people not know where to ask questions when all the people who'd ask has been told exactly where in a single short English sentence? What's not clear about "accept that this package is not supported by upstream developers and I will go to Nixpkgs to report any issues"?
> it's the impression I came away with
It's not a reasonable one on two counts. Let's go over the statement again:
> Then this Jorg person got all up in arms and threw a hiss fit all over the internet and everybody got tense.
First, he did not appear "all over the internet." The are only two places where I can find him discussing the topic online: in the Nixpkgs GitHub issue and a single Home Assistant thread where he sought to get clarifications from upstream regarding licensing policies.
Second, that he "threw a hiss fit" is taking your imagination to a real stretch. In no single comment did he express anger or frustration. All he ever did in his very few comments was 1. decline to drop the package from Nixpkgs and 2. ask about Home Assistant licensing. Take that in contrast with the behavior of HA devs where almost every single comment in the linked threads is provocative, sarcastic, and condescending, making evidence-free claims of incompetence and breakage at every step of the way right from the start.
I will answer this, though, because its happened to me a thousand times: > How can people not know where to ask questions when all the people who'd ask has been told exactly where in a single short English sentence? What's not clear about "accept that this package is not supported by upstream developers and I will go to Nixpkgs to report any issues"?
I install HA on NixOS and everything seems to work perfectly and I'm happy. I buy the latest, just released Phillips Hue light and try to connect it and can't get it connected. I go to HA to try and troubleshoot ( because thats what I'm using and where this question is most relevant). HA devs tell me I'm missing a dependency and to pip it in or add it or however it normally works. I can't on NixOS and start collecting weird exception messages. In the end, HA devs spend hours wondering wtf is going on with my system until they realize it's NixOS and doesn't work the way they expect it to. I've now wasted their time unintentionally and had no idea it was actually an issue related to packaging I should have been asking about in NixOS - who are totally unaware of the trouble being caused to HA. That's just how the real world works.
It looks like you get:
* Zigbee module ($45 for rp4 https://phoscon.de/en/raspbee2)
* PoE module ($20 if desired for rp4 https://www.sparkfun.com/products/14882)
* M.2 Slot (but no SD card slot)
* battery powered RTC
* A case
It's priced at $149 with all that, whereas rp4 2GB w. zigbee and PoE would be $45 + $45 + $20 = $110, so price seems reasonable if you need all those things as you're getting the rtc, m.2 and case all in a nice package.
My use would probably only need the Zigbee module and I can 3D print a case, so I'd go with the rp4 especially as I have a bunch lying around anyway! But Seems like a really nice package if you need all those things, and especially PoE is nice to have built in.
I'm guessing largely the "for beginners" part in the description. That and people who lack time or for other reasons want something working out-of-the-box?
The Zigbee module is the main place that support will be better
Otherwise, it looks like a pretty decent package, though.
Any chance declarative configuration (tank or any other format) will be getting a second chance? Like many here it’s the one way of working with HASS that feels/felt nice.
Now I feel that it would take me days to recreate the configurations that I needed to make with the UI.
Deprecating yaml is bad for configuration versioning.
I feel like you're missing an opportunity by launching this as a DIY type device. That market segment can already cater for themselves with a Raspberry pi etc..
You've made big leaps with the Config Flow system, I feel like the time is right to launch a fully polished device. Cater for the people who don't want to ever see the PCB, they're tech savy but want a pretty device to sit on the mantle piece with a GUI that just works.
I'm very excited about this device. I've been using Smartthings and then IKEAs gateway, but haven't been happy with their performance and features.
Also, Z-Wave licensing is an absolute nightmare, and significantly expensive.
They have a great amount of hardware already available and lots of knowledge to accelerate and cheapen your roadmap.... If you are willing to share the design of course.
I’m unsure of the maintainers motives, I’m also unclear on whether they’re even a hass core developer, but I don’t really care enough to read more either.
The best/easiest way to run it is to use Docker. They have a script that will set it up for you. After that, the container can basically self update and self manage. Any addons that you want to use are installed as separate docker containers that talk to the main home assistant container. It's super seamless and easy.
In my case, I just setup a barebones Debian VM and ran their setup script. It took care of all the Docker stuff and got it up and running.
The HomeKit Controller integration is also neat. All kinds of HomeKit compatible devices can just work with Home Assistant. Honeywell Lyric is the best example: PIR sensors with local push for lighting automation or special alerts when gates open to prevent the dog from escaping the backyard.
Edit: More useful things!
I have my washer and dryer in a garage. Can’t hear the machines inside. The Z-Wave light switches around my house have status LEDs, so one LED is dedicated to the washer and dryer status based on power draw from the outlet. Works really well. The same status LEDs are shared for all light switches around the house, so it’s a good ambient notification.
The Mac app can provide webcam or mic status as a sensor, which turns on a key light when I join video calls and turns on an LED on the light switch outside my office to signal when I’m on a call.
I also get a push notification on my computer and a LED light on the light switches when the Roomba is full. It fills up a few times during its typical run while I’m working.
I also have the door status (open/closed/locked) from the Lyric as LEDs on the light switches. Very easy to tell if something is unlocked or open at a glance while walking around the house.
* Every single light in my house moves from dim/orange -> bright/bluer -> very dim/orange throughout the day (basically like an whole-home f.lux or Night Shift). Sadly still third party, but it's easy to use: Circadian Lighting component will find it
* I have "night" modes in all my rooms. This is usually a single bulb in lowest-brightness full red. You can barely see it during the day, but at night it makes bathroom trips a non-blinding affair
* I have 6+ speaker zones, on Raspberry Pis mostly. Snapcast runs the audio stream, but turning on/off a room mutes the speakers in it (walking into a room turns on the lights via motion detectors and music continues to follow, which is neat)
* I pipe a lot of text-to-speech messages. Some rooms won't play them if the room is off (outer stuff like my garage), but others always do (so I hear them). This is more custom now, and I even duck the playing music stream for the TTS portion. It can take in text, so I do things like have my automation say a bunch of things every morning (my age in days, some web-scraped snippets, etc)
* $10 power sensor is enough to know when your washer is finished. Power for awhile -> running state, no power after awhile in running state -> finished. This goes right into the text to speech system
* Every room has a 10-button remote (the very, very cheap zap remote kind). Most of the layout is the same--room on, room off, start music (or skip track if playing), stop music, full-bright lights, night lights. This still leaves a few for custom-to-the-room buttons, which I use
* Contact sensors on all openings to the house. I let me cats into the backyard during the day. Cat access via any configuration is still open, and sun is below X degrees? Text to speech
* Most of my logic is Node-RED (another comment here about that), which gives me a lot of flexibility. I have a global "house" mode, which I can set to guests or party to suppress most of my assumptions that I'm home alone
* Example of one of those: My setup knows if I'm using one of my two desk computers. If I am, and house is in "home" (alone) mode, I turn off all the other rooms in the house
I could go on--I went pretty deep when I first set up Home Assistant, but that was years ago now. Every now and then I do a major update or add functionality to smooth over something that's been bugging me
Once you hit some tipping point of soooo many things available as sensors or services in HASS, adding completely new functionality is a very incremental change
What’s nice is the Home Assistant automations tend to stay working without major overhaul far longer than stuff I used in the past, such as SmartThings which I no longer use. Always better to use your own small server and code for things like this. IOT platforms and services change way too much and it’s a lot more work to maintain than local HA.
This is a major selling point, and also why I haven't bought into any cloud-based home automation system (unlikely I ever could get past the surveillance aspect anyway). These systems are supposed to last as long as your home does, you don't want to replace/overhaul the system every few years because the supplier wants to earn more money from you.
I don't even know offhand how old my installation is, but it's been a couple of years for sure. Two things really help with longevity:
* Local-only devices. My only cloud-integrated thing is a Nest thermostat, and only because I already had it before my HASS adventures. Lights/sensors/etc is all offline, so it can't break from some company giving up on a product line
* Home Assistant itself is quite stable as software! I do keep my install up to date here and there, but not religiously. Once every year or so, a minor deprecation thing might finally drop off completely and need a quick configuration update, but very rarely. (I'm pretty deep into a "homelab" style setup too; my HASS install is a linux VM, I have a separate storage layer, etc)
So early on, it was probably a few hours of work a week, but these days I can go several months without even thinking about it or changing anything.
Quick note on audio: I use Spotify out of sheer laziness. I think they've lightened up since I did my initial setup--or just stabilized API maybe, but years ago it was common for libspotify-type client integrations to break and need an update.
So now my audio stream is routed out of the linux VM itself at the system level. Unless Spotify is willing to drop the linux client completely, they can't break my use case. And if I ever switch back to my own local file collection, I just need something that can play audio on linux to do it. I could even have a line-in wire hanging off that hardware to play any audio source broadcast to my Snapcast network too.
- Home Assistant runs locally, in my house. None of this data is uploaded anywhere outside of my control
- I live alone. And really, the vast majority of my automation really uses/needs that assumption (computer activity turning off other rooms, etc)
- I don't have any interior-facing cameras, because yeah--even with those also purely-local, it's very odd to know they're there. Years ago, when I did leave the house every day for work, I had a living room camera to keep an eye on my cats. I completely de-powered its PoE port based on whether my automation knew I was home or not--it was only on if I was gone. There are a couple of ways to do person tracking, but I just used my phone and Home Assistant's app
- I do have a global override for a "guest" mode, mostly so lights don't inexplicably turn off. That mode turns on automatically when my girlfriend uses her keypad to unlock my door
That said, I do occasionally browse the wider HASS forums and communities. I don't have kids, but I see people use some automation pretty effectively for things like chore management/reminders. People do stuff like put cheap tablets somewhere central with status updates of who is supposed to take out the trash, reminders if any perimeter doors are open, etc
Do you know if there's anything good in this space yet for detecting presence (not just entry)? There are some spots in my home where I only want the lights on while I'm there, and I haven't found anything yet that can reliably detect that somebody's actually left a space other than Hiome (https://www.hiome.com), and that doesn't work for something not delineated by a doorway.
I keep toying with the idea of a bunch of BLE beacons in every room and then using signal strength triangulation in a mobile app to determine which room someone is in but that falls over the moment someone leaves their phone in a room.
I do have a bed occupancy sensor, in the form of a SparkFun OpenScale under the legs. There was a Raspberry Pi in the room for speakers already, so it's just on that.
It needs some fancy calibration to deal with temperature changes, but I just constantly tare it when my desktop computer is active (and I'm home alone I'm certainly not on the bed). That's been super responsive and great. Bed transitioning from empty->occupied when bedroom is in night mode turns off all the other rooms again.
In general, I've found that it's a lot easier to track actions than presence. So computer activity, or a door opening.
I did just flash some ESP32s with this, which is a way to report bluetooth signal for a single device across a network of listeners. They can report direct to HASS via MQTT, but it also has its own persistent python thing to more carefully triangulate. No idea if it'll work reliably or fast enough to really be useful: https://espresense.com/
My favourite is the automatic switch on for the espresso machine at 6am each day. It changed everything.
Which sensor do you recommend. I am searching but some are low amps
It is possible to watch much higher-power systems with power clamps--the same magnetic sensor kind you can put on your entire house power feed. I have one on my 220v dryer for completeness, although I never even bothered to rig up automation. There's no real penalty for ignored dry clothes like there is for ignored wet clothes--I guess it'd be useful for people with roommates, though.
Specifics devices will depend on zigbee vs z-wave vs wifi. If I were starting totally fresh, I'd go all zigbee.
It’s connected as a USB serial device to integrate into HA. The HA forums have a custom component for it.
This can be useful for monitoring the entire home power. No load center clamps needed, it communicates with my power meter over Zigbee.
My dryer is gas so I don’t need anything special. Would maybe check out the smart Leviton load center mentioned in this thread for new construction.
Could you elaborate on how this works? Which Z-Wave light switches measure the power draw?
I just send the same commands to all the dimmers so they all show the same thing.
If it's possible to set those status LEDs arbitrarily, you could use another power-sensing outlet's data, so a different device entirely.
This is the magic of Home Assistant in general--it's really just a big bag of sensors (temperature/power/times/etc) and a bag of services (turn on, set to X, change color). You can have sensors from anything trigger a service on anything else.
When I first started working in home automation my boss at the time had a saying “if you have to press a button, it’s not home automation”. That single phrase is the core of making automation work with non-technical users. The house should always do the least surprising thing by default, for example turning on lights when you enter a room, but only if it’s dark. Light switches should turn the lights on and off, rather than disable the light automation (looking at you Hue).
If you can configure things to that extent, then yeah, it works beautifully. If everyone has to faff around with a mobile app to be able to see where their aiming on a 4am toilet run it’ll be hated with a passion.
Also anything that involved having to use an app to do anything was a very hard No.
I have a Hue Tap, which has 4 buttons to program, we set: 1: Normal on, 2: Cosy on, 3: Cooking on (bright in the kitchen) and 4: All off. Near the couch I have an extra Hue switch to dim the couch area even more if desired. That works well for us. Atm this doesn't involve HA but it would if I had any other brands of lights and I would also want other aspects changed (like room temp, i.e. "cosy on" could also raise the thermostat by 1 degree, because it's couch time) with the same Hue Tap buttons. HA is great at having different brands of home automation stuff talk to each other, so you can pick the best of all worlds.
I just got a smart thermostat, so my "All-off" Hue Tap button may just as well set the thermostat to "eco", of course only at night because otherwise it may just mean the sun being bright enough was the reason I turned all lights off. Or, maybe when I set my thermostat to "away", HA can signal the rest of the house that the lights and the coffee machine can now be turned off, if any were still left on, I'd do that with a 10 min delay or so because I may still be running around the house to get stuff. HA is perfect for this type of logic.
Using a phone for anything is a big No for both of us as well. Home automation for us means having single buttons that do many things at once. We set timers for our garden lighting (dawn=off and sunset=on). And we use some motion sensors. In the bathroom for example, the Hue motion sensor switches the light on, and then HA turns on the fan, through a Sonoff flashed with Tasmota. At night the light also switches on but less bright, everybody loves this automation (more than the previous manual solution), and it's completely in line with Home Assistant's vision for Home Automation: [0]. It's easy to over-do Home Automation, the people you live with are good indicators for when you do so ;)
[0]: https://www.home-assistant.io/blog/2016/01/19/perfect-home-a...
They also have "press up 2x" "press up 3x" "hold up" "hold up released", and the same for the down direction.
My GF and I use these to switch the room between modes that we want. My main modes are "passive" "gaming" "movie" "meeting" "off" and "party".
The modes are a state machine written in both node-red, using a global state variable that is saved to disk, and homeassistant using a select template variable. They stay in sync through a node-red flow, so changing the mode from either has the exact same result.
Why are you looking at them? The Hue lights wired properly do exactly what you describe. You wire them in so they are constantly fed with electricity and send smart signals with a wall mounted control panel. They sell you this control panel. It looks like a switch.
Heck if you are retrofitting a building you you can use their wall switch module to adapt any traditional wall switch to become a smart switch.
They have the spunk to also work with half-assed installations. You can define in what state the bulb should be after the power is restored to them. Of course if you go this route they can't be turned on when the power to the bulb is off. What would you expect them to do? Should they pack an RTG in their bulbs to have the option to illuminate when the power is off? Should they throw a tantrum and tell you off for installing the lights wrong? Of course they don't do either of those. They just keep on trucking the best they can.
Yes. That is an option. Not a default option because when most people flick a switch ON they expect light. If by default the light would not come on, they would receive a lot of returns. But you can totally set that if option if that is your preference.
> Could they interrogate the switch to see what state they are 'supposed' to be in when power is restored?
What type of switch? The dumb one they know is on. If you have a smart switch they could. But if you have a smart switch why would you not wire the bulbs to be always powered? (always as in when the circuit breaker is ON, not literally always :) )
I don’t do a lot of fixed unchanging automation. I do a lot more ambient status and voice assistant integration.
It actually was really nice when my lady moved in after our wedding because my HomeKit things were able to work right away with her Google Home she was used to. :)
The webcam hall status light was to know when either of us are in a meeting. We are both working from home so it’s like a free/busy signal.
Also, how does HA know when the dog is asleep?
HomeSeer is coming out with a new model soon so that model is discontinued. But the new one looks better since it doesn’t need a neutral wire!
My dog has really consistent daytime nap times. So I can disable the doorbell chime during those times to prevent the barking during a delivery. :)
I have the same question! Until OP answers, I'm going to guess some accelerometer collar that reports when little motion has occurred in 3 minutes?
But if anyone out there has made an API client for the Fi collar… let me know!
I still get phone and other notifications when the button is pushed! Just no indoor bell.
Although most of the things currently just work, especially with the (migrated) UI integrations. Some things still feel very unfinished, like blueprints. Which was a terrific idea, but maintaining and keeping those up to date is an absolute nightmare and you will have to that yourself [1]. Same with battery powered devices. When they work, it's all great, but having to watch their battery level is just a hassle. You can create your own automation to do that for you, but it seems unnecessary.
For me the community also sometimes feels very hostile. For instance, you can have a Portainer add-on, but installing other Docker images makes your system 'unsupported'. Same with some blacklisted images [2], which break Home Assistant Supervisor. Or when the maintainer of one of the add-ons completely ignores a breaking issue after a day [3].
1. https://community.home-assistant.io/t/reload-automations-aut...
2. https://github.com/home-assistant/supervisor/blob/main/super...
3. https://github.com/hassio-addons/addon-adguard-home/issues/1...
The developers have shown that they're very opinionated about how their software should be used, and they're hostile to everything that falls outside of that. That makes their OS totally unusable as a general-purpose solution. Besides, it's an OS that doesn't get regular security updates, so that alone should disqualify it from serious use.
Of course it's their right to steer their project and decide what you can and cannot do with their software, but it does make Home Assistant significantly less attractive for lots of people that don't agree with all their choices (and judging by the mixed feedback in this thread, that's not a negligible group).
For me it was giving up too much control over the device. I'm running plain docker image for over a year now with zero issues. Upgrade is done by simple bash script, functionality offered by add-ons can be achieved by manual installation as add-ons are simply wrappers for various software.
Anyway HA is awesome. Highly recommend it.
HASS seems like the least bad OSS solution for home automation--it has a lot of inertia but I'm not a fan of the group (company?) making big decisions for the project. I really wish they hadn't dictated the end of YAML/declarative configurations.
Agree here. I wouldn't mind replacing YAML itself with some kind of other configuration language or stable configuration API as long as I'm able to use a IaC/declarative approach to create a immutable/disposable HA instance. But they seem to be going more and more toward GUI only configurations. Meaning if the application state is broken, you can only rely on (outdated) backups or doing everything manually through the GUI again.
This, together with the core team's hostile attitude towards alternative installation methods and other OSS projects like NixOS[0] has really turned me sour against what used to be a great and fun open source project to contribute to.
Nabu Casa (for profit company behind home assistant) made some of the decisions that were questionable at best.
Instead, I found appdaemon along with HASS. This allows me to write all my automations as python code rather than dragging and dropping boxes around. And it’s easier for me to use vs HASS yaml files.
I pony upped for a Hubitat earlier this year, and although the GUI is fugly, it just works and I don't have to keep babysitting it constantly like I did with Home Assistant.
If only one day Hubitat makes usable dashboards (I know there are third party ones, but it means either some cloud solution that will die one day, or some hacky custom stuff I’ll need to fight with) then it’ll be perfect home automation solution for techies IMO.
HASSOS is pretty much an appliance at that point. I can’t remember the last time I had to ssh into it. Upgrades, backups, etc are all done via the web UI or the iOS app with a couple of clicks.
That's exactly why I stopped using it. I used it for five years and witnessed tons of features introduced then dropped and re-architectures for no other reason than the devs got bored with something. One example is dropping support for Python 3.7 earlier this year when 3.7's not EOL for another two years. Maintainability is of little concern for this project.
Can you elaborate a bit here? I might be on an older version but afaict it's still configured via yml configs.
I don't know about op, but I very much prefer config files. Using tools like sed or grep to make changes is much faster than mouse clicks - but I understand the devs point of view.
https://www.home-assistant.io/blog/2020/04/14/the-future-of-...
Sounds like I can still do what I need. The only difference being, those configuration files can also be changed via UI which is fine. Thanks for the link.
The constant work to keep things updated is a hassle, requiring python upgrades unavailable in the raspbian distro meaning slow compiles from source (which somehow fails on 3.9 and requires dropping to 3.8).
I would be very happy with something that just works, without constantly needing fiddling and handholding.
I think the consensus now is to just use HASS, node-red isn't necessary?
I feel that if there was a way to introduce temporary state and force an expression as the value of a switch it could be great. I would love for something ASP/Datalog based.
Having a light that's just on if some expression is True and off if the expression is false is more difficult than it should be. The automations are not goal-based. But maybe in a decade the next project will do it that way.
https://community.home-assistant.io/t/home-assistant-communi...
Say I want something like the light should be off it is dark and the window is open (bugs), but if the window is closed and it is dark, the light should be on.
dark & window.open -> !light
dark & !window.open -> light
Obviously, it can't close the window. But it can turn the light to make the formulas true.If this were answer-set-based, the system could find multiple ways to make the formulas true (that's why I say goal-based) and act in a truly intelligent manner.
Edit: if it could close the window, it had a second way to make the formulas true. That would be nice as well, that the window closes when I turn on the light.
Edit 2: note that at daytime the formulas are always true, such that I can adjust the light and window as I like.
Edit 3: We could also rewrite this as
dark -> (window.open != light)
And it is great that we could reason about our rules in that manner.That's what I've been missing as well. Node-RED comes close, but is event based.
I've been thinking of implementing this kind of system. It has similar principles to functional languages or a reactive system like Mgmt[0]. But I foresee a few issues that would render potential simple formulae into complex ones. Things like keeping state on event based inputs (push-type wall switches), time based decisions and outputs that don't provide feedback on their current state.
If I ever find the time to get practical with the idea and work out these issues I might put it into a Show HN.
Here's a simple example that would send a notification if I left my kitchen LEDs on 200 brightness or more for longer than two hours.
alias: Kitchen
description: ''
trigger:
- platform: template
value_template: ' {{ state_attr('light.kitchen_led', 'brightness')|int >= 200 and as_timestamp(states.light.kitchen_led.last_updated) + 3600 < as_timestamp(now()) }} '
condition: []
action:
- service: notify.my_phone
data:
title: Kitchen lights still on
message: The kitchen LEDs have been on very bright for more than 2 hours.
mode: singleI have to have another check (or two automations) to trigger the off/on-action. Home assistant basically has no idea how to bring entities to a desired state.
I've got it hooked up to a Z-Wave Hub so that I can control mechanized blinds with HomeKit (where no native integration exists), all the way over to Volvo On Call to report where my car is, how much gas is in the tank, and what the odometer reports. It's got a great community, and isn't too difficult to extend that it's not worth mucking around in the guts when I really want something to work.
I do have to say, the amount of integrations are quite remarkable. I’ve been running Homeassistant for about two years now. It can only see it getting even better.
It solves the Usecase, where not all BT(LE) devices in the house are reachable from the main HA, and you need remote "pickups" for their signals, and then want to integrate them back into the "master instance". It also solves a bunch of other problems, like integrating some sensors of the HA of your holiday home into the HA of your main home.
The author describes the rationale better here: https://github.com/home-assistant/architecture/issues/246
For some reason, NabuCasa doesn't want to integrate it. Maybe they see it as competing with an own upcoming (cloud?) solution of their own?
And what about the second-home-case I also mentioned?
Also, I use remote_homeassistant also for e.g HDMI-CEC-control of devices in other rooms/places, which ESPHome cannot do.
(I agree though, ESPhome@ESP32 is a viable solution for some subset of situations)
Ended up giving up and just have a dumb home now.
Well a couple of months ago I found this[1] and hacked together my own daemon to read my power meter and publish the result via MQTT. I then wrote a couple of sensors in Home Assistant to estimate my upcoming electric bill and the instantaneous power draw of my house.
It's been rock solid so far. I've been surprised how much energy I use while sleeping in the middle of the night (something like 350W)
[1] https://hackaday.com/2017/12/21/read-home-power-meters-with-...
One warning though: If you're running it off an SD card or other small, solid-state device, your first priority should be turning down the amount of logging. Without reducing log spewage, expect your SD card to die within the first few months of use.
I can't complain too much, it's free software and I don't have the resources to contribute much right now, but there are some sharp edges you need to watch out for.
I’m going to try OpenHAB next, as I’ve seen relatively complex setups with it.
If you are interested, we could have a look at integrating weather data without the need of your users to sign up for API plans with their personal data.
..so yes, thats kind of what I'm fishing for. Is anyone aware of something a little more shell-oriented?
Appdaemon however is exactly what I wanted. It can do anything python can and there is no drag and drop UI, you write actual code to make things happen.
Up until the switch I’ve had a patchwork system consisting of Alexa, Smart Life (app), Smart Things, and a lot of digital duct tape.
Having both 1) a central "command center" and 2) Zigbee/Z-Wave capabilities (requires a dongle) suddenly opens up so much more opportunities than WiFi components alone. EG I've attached door sensors to my garage doors to trigger lights and notify my dumbass when I leave the garage open at night.
Plus, I'm no longer locked into one brand's ecosystem and can keep my patchwork hardware setup.
Big fan here, strongly recommended.
Note: I have no association with any smart home brand/equipment nor home assistant… though I'd consider being associated with HA.
Home Assistant frontpages on HN probably every other month, fear not, lol.
There’s a tricky balance between a dumb appliance that doesn’t do what you want and a smart one that requires too much babysitting, and for me HA is just too far towards the latter. Not enough that I’m going to replace it tomorrow but I’ve been looking at Hubitat lately:
More and more I’m liking the idea of a box that runs itself more than HA does.
It's also great being able to set whatever rules for automation I want. Far more powerful than IFTTT or any routines with Google Assistant or Alexa.
I wonder if there are any plans to make the UX feel simpler and less crowded…
Essentially I use the trigger blocks to schedule my function calls. The function then ignores the inputs entirely and just inspects the variables from home assistant that it cares about, it then sends this output to any devices I want to toggle.
This way, I'm just writing code. This works naturally for me, since it's my day job. But I can use node-red for visually organizing input output tuples, and the debugging data that it shows as things activate.
I also add one manual trigger and one debug output node on each end of the function so I can just run it manually if desired.
So far it's pretty goos, but I'm missing stuff like writing tests, which means I test my functions by turning on/off devices or something which isn't ideal.
If something at your place uses SSDP/MDNS/UPNP/etc to communicate/find_each_other, you'll then have to start doing multicast bridging/rewriting and other hacks. And for those, there is no one-recipe-fits-all.
If you want the TV to reach the Internet for some things (e.g. Netflix, Youtube, WhatEv), but also isolate it from your other devices, block ads, yet be able to use the UPNP-mediaservers in your network, and want to use the phone to control it for the things HomeAssistant cannot yet do, then you'll run into some difficulties. They can be worked around, but will need intimate knowledge of protocols and such.
Also some of these issues can be worked around by e.g. using HomeAssistant also as UPNP-MediaController, which I haven't gotten around to set up yet.
But "true", some categories of smart devices can be nicely sequestered into isolated VLANs.
A few years ago one of my clients which ran a school wanted to give airprint access to his guest network so that parents could print documents into the school office printers.
Creating those records is a bit of a PITA and you need to find out how to replicate SRV and TXT values but it works.
Here is a good source for this type of configuration:
The forums didnt had any example and the discord/irc channels couldn't help.
LONG RANT
1. Too many moving pieces to get Z-Wave working, they deprecated native Z-Wave support and now use 2 or 3 different JS open source projects whose reliability is still in-flux! (running on node!, NPM is part of your home automation)
2. Z-Wave network randomly goes down, if you enable logging to debug the issue it will only show top 20 or 30 lines, no indication on how to access rest of the log data. After you google for it, you have install addons for SSH and go through bunch of steps to enable it and then google where the logs are getting stored. WHY the heck are logs not downloadable in UI?
3. Forced updates, yes the system will auto update after certain days and restart itself. No way to disable it, the dev for OS actively refuses providing option to disable auto updates. They push updates VERY frequently, multiple times every month, I guess my home automation is that dev's russian roulette? Screw your pool pump if it runs too long or doesn't run or burns itself because update messed up automation task.
4.iOS app makes your system cloud dependent!. I don't think the dev who writes iOS app uses HA himself. The app in your own home, on your own Wifi requires the local computer named connection to have valid SSL certs, it can't save signature of self signed or cloudflare or letsenrypt cert and verify that for future connections. You have to override your router DNS resolution and use public domain name. App has option for internal/external URL's but uses WiFi name to decide which to use, which requires iOS location permission!. BRUH, why don't you try local URL connection in parallel and if it connects, use it?, Why is there no option to ignore local URL cert verification and make app not internet/cloud dependent?
5. Number of "ideas" to name stuff, "Blue Prints" - Auomation template, "Scripts" - Automation without trigger, "Automation", "Devices" - DuckDNS and File Editor are devices, "Entities", "Helpers" - Variables for use in automation, "Scenes" - Goodluck, "Addons", "Integrations"
6. Significantly less reliable than Samsung Smart Home, which ran for 5 years and rebooted less than dozen times (and Samsung notified me about update reboot through email ahead of time). If you can't beat Samsung's software reliability that says something.
7. The left navigation screen is cluttered with irrelevant(for me) hard-coded links. (Energy - for solar panels because everybody got them?, Map - Why?, Media Browser - Why would I want my automation server to deal with video streams - is it reliable home automation or storage for movie files?),
8. Log book and History, why aren't these same thing with different visual options?, it's like 2 people developed them without talking to each other and both had git permission to hard code those links in left nav.
9. History defaults to 3 hours, if you change it and leave that screen it will go back to 3 hours again. Good luck debugging any issue which spans more than 3 hours.
10. iOS app starts auto-tracking iOS device properties without asking if user wants them, these properties flood your logbook and history, can't disable or delete these easily. Dozen of these properties start showing up in every screen and drop down.