> * Rationally, I might have been better off going with Home Assistant, which has ready-made integrations with Shelly, Zigbee dimmers, and probably thousands of other device types, but I wanted complete control and hackability, and I preferred to spend time building my own system rather than learning and customizing Home Assistant and maybe never getting it to work like I want it to.*
This thought was correct. Home Assistant is absolutely incredible, easy to use, polished, and flexible. You can get it to do all of this easily.
I got it installed and configured within ~3 hours.
I've got some Shelly Plugs. I decided to operate them with a self made web app running on my home server. That app makes HTTP calls to the API of the plug. It's very simple, just a curl from bash would work. One call to turn on the plug, one to turn it off and one to read the power meter. I put buttons on the web page and it does what I need.
There are no dependecies from other services and especially no dependency from Amazon or Google (the plugs work with them too.) Given the size of the web app maybe it also spared me some time because I suspect that installing, configuring Home Assistant and learning how to use it and what works and what doesn't are not zero time activities.
I don't myself but I know that many use Node-RED[0] for home assistant applications. It comes with thousands of plugins, easy to construct web frontends and it's completely open source.
I believe one can also combine it with Home Assistant, I think there are interfaces.
Learning curve is initial exponential (think of visual Unix pipes) but once understood, there are limitless things that you can do with Node-RED. It's basically a visual programming frontend to NodeJS.
Yeah, one of these days I expect to set up homeassistant, and even recommend it to others, but I'm happy driving my shelly plugs with bash+curl from a streamdeckui entry for now :-)
I have different opinion on Home Assistant. It's surprisingly heavy compared to alternatives, the YAML configs are insanely overcomplicated, they move too fast with Python versions (phasing out 3.9 when it was still the default on the then stable Debian, etc).
My 2 cents go for Zigbee2MQTT, Mosquitton, and Domoticz. Domoticz has it's problems, but it's been a faithful workhorse for me for the past 6 or more years.
Limited; as in you might have to find a way to configure some things in a different way than you are used to.
HAOS in a principle is a lightweight immutable distro for running containers; the HA itself is the same container that you would be running if you went the Docker path.
In my case, I have my IoT toys in a separate VLAN; HAOS needed to have access to both, main LAN (for the frontend) and IoT LAN (to talk to the devices). Configuring that meant installing container with SSH, making sure I can connect to the host via that (the featured "Terminal & SSH" addon won't allow that, you need the other, "Advanced SSH & Web Terminal"), and then using nmcli to configure the network.
If you want yaml based configs and running on a non HomeAssistant provided OS you are already making it hard for yourself.
This is not the most popular route and therefore also less supported my advice:
- use a raspberry-pi with Home Assistant OS or buy one of their self made raspberry-pi alternatives Home Assistant Yellow etc.
You can run docker but it's still not straightforward because then you need to passthrough like USB Devices etc, I would recommend against it.
And from there use the yamls to define a very basic config like language, location etc (I'm not sure that you even need to do that). But only use the GUI from there on.
Everything can be done with the GUI, I haven't touched my yaml files in years.
And I regularly upgrade versions too, haven't had any upgrade issues either.
> Everything can be done with the GUI, I haven't touched my yaml files in years.
Command line sensors, REST sensors, some types of virtual sensors, groups (I think), there's a lot of stuff you still can't do in the GUI, and even if you don't mind writing their stupid YAML-based config, the documentation isn't very friendly and in places outdated and contradicting itself.
Another vote for home assistant, also from another thread further down use a dockerized version, no issues. I have all kinds of things connected, lights, switches, shellys, custom sensors/collectors and it all works flawlessly. Just amazed how good HA performs after using various other things over the years.
You're also not tied to HA, but can develop using anything then once it all works put the result on HA.
I love HA for it's stability. However, I've written several HA integrations and I've got to say that their component API is insane. Inheritance based, vaguely documented, shifting terminology, etc. I'm working on my own use-case based API just to rationalize it a bit.
In order to get some sensors working I used Arduino examples from the web, understood the example and how it interfaces with my platform. Once it all worked I was able to transfer everything to HA, successfully. Going with "I'll just use HA from beginning", got me stuck thoroughly.
I feel like one of the people waving at the cloud saying: "Use Home Assistant", same as back in the days of use linux for all your troubles.
OpenHAB abstracts all of your devices. So your light switch can directly interact with Spotify , or your tv input can influence the color of your Philips hue bulbs. I know that is not a good example but it exemplifies the integration between different objects you may want to automate. This is native, you can also do scripting to support custom actions as well, which is based on JavaScript. Then you can build many different uis. You can have the home assistant-esque UI or you can build your own ui complete with custom css and js to give a completely unique interface to your automation environment.
Also notifications aren’t locked behind a paywall with openHAB. OpenHAB cloud is free, or you can launch your own OpenHAB cloud container and self host notifications (assuming you get the relevant Apple/android api keys)
> OpenHAB abstracts all of your devices. So your light switch can directly interact with Spotify , or your tv input can influence the color of your Philips hue bulbs.
Yes, this is exactly what HA does. I have devices of wildly different, closed-off brands working with each other.
> This is native, you can also do scripting to support custom actions as well, which is based on JavaScript.
HA also has this.
> Also notifications aren’t locked behind a paywall with openHAB.
They're not in HA either.
> OpenHAB cloud is free
I would rather pay my home automation system to make sure they can survive and keep maintaining the software. I think I pay like $5/month. I was recently trying to figure out how to pay them more, honestly.
I think the other commenter was hoping for some compelling reasons why you prefer OpenHAB over HA. On the surface both system seem very similar, I can't really figure out where they differ from looking at both homepages.
The Shelly stuff is very nice, extremely reliable. I've used a whole pile of different products to test in single units and finally settled on using Shelly wherever I can and some special stuff for the few things that require different interfaces than Shelly provides. I use their 3 phase power sensors, thermostatic controls for on the radiators, temperature and humidity sensors and relays. Everything is on a separate WiFi network to make it independent of the rest of the house internet setup and it all runs off a Raspi 400 running HA. It's been up and running for well over a year now without a hitch and does all of the energy management, heating, cooling and monitoring.
The only gripe I have about the Shelly stuff is that it uses more power than what you would expect for stuff that is pretty much very intermittent use and as a result I've wired up everything with 5V wall warts, very low power to save on parasitic drain. We've done what we could to knock down our daily average and typically do about 8-10KWh/day so every little bit counts.
What a great coincidence to see this. I've been doing something pretty similar over the past few weeks, slapping together an Elixir app [0] that controls lights in my house via zigbee2mqtt. For now it only handles a motion sensor nightlight, but I have grand plans of course.
I have a couple of Shelly relay switches for various purposes in a separate IoT vlan which is not connected to the cloud. The new Shelly android app not only is worse and barely functional but also pushes you to use the cloud. On top of that, they try to sell some functionality as a subscription Model. On the other hand you don't need the cloud and their http API is super well documented and does everything you would expect. I really prefer Tools like this for products like Shelly, good job!
Fortunately their cloud stuff is still optional and easy to disable on all of their current products (usually it is disabled when it is sold).
The easiest way is to ignore their apps and other cloud based components and just to run HA on a small computer that you stash away near your distribution panel.
Interesting that you also used Elixir. It's also quite interesting contrasting your approach to OP's. Was there a specific reason that you chose Elixir?
Eh, Elixir has just become my go-to for personal projects. GenServers, pattern matching, releases, being able to pop a shell into my program, the beautiful colors of the IEx shell... I miss all these things when choosing other languages. I also planned on eventually integrating it with a chatbot of mine which is also written in Elixir.
What is your reasoning behind nr.3? I don’t disagree as they seem hostile towards the nix HA project. At least that is what I gathered when I set up my zigbee devices on a NixOS server.
There are parts of NixOS that require specific support or you apps simply don’t work, and I can see why a developer would not want NixOS issues causing tickets for them.
IIRC they didn't want distributed via any package manager (apt, yum &c.); nixpkgs was not singled-out[1]. This was a while ago, so I may have misremembered.
1: Though NixOS users have both social and technical reasons for more strongly wanting software to be in nixpkgs than e.g. Ubuntu users have for wanting the software to be distributed via apt.
I'm not sure NixOS users are that different from users of other distros, all want a tool that properly manages their systems (rather than random packages being scattered everywhere).
The big thing I really like about the shelly devices is that you can flash tasmota onto them. I don't have the need or desire to do so but it means I can't find myself with a dead home automation setup because some company went belly up as has happened several times before.
I also want to use Shelly dimmers, but I haven’t found simple stateless light switches. I want automation and app control in many cases, but also want simple tactile button for on/off or hold for brightness control. Amazingly hard to find.
Not OP, but the Shelly 1 works very well as a simple switch, and it supports both physical and remote operations. Not sure what you mean by "stateless", though (I mean, the thing is either on or off?), so that might prevent you from using it, but otherwise it's highly recommended!
Shelly 1 and Plus 1 (the gen 2 device) allows you to separate the relay from the switch and expose both via API or MQTT.
That's how I have my lights setup - normal light switches (switched live) will toggle the switch sensor which is picked up by HomeAssistant which then either toggles the relay (for non smart lights) or sends a command to a light group (Zigbee IKEA Tradfri bulbs, using a Sonoff Zigbee dongle for comms) to turn on or off.
The only issue you might have is that they require a neutral, so unless you have a neutral behind each switch you'll need to put the Shelly elsewhere, either in the light fitting or ceiling (in my case).
I just use the Ikea trådfri dimmers[1] and have them bound to the lights I want them to control. That way they can do on/off and dim.
They no longer seem to offer them. But the replacement might work as well. Support for the device was merged into Z2M last month so not sure if it's already included in the latest release.
For that I use Klikaan/Klikuit, I have a whole bunch of these set up throughout the house and they're pretty easy to use and configure. Outside of NL these are sold under the 'Intertechno' brand. Batteries seem to last forever, I've had these in the house for five years now and never had to change a single battery.
OP here, the switches we used are push-button Berker switches. I can't say I'm 100% happy with them, they look nice and are tactile but they are the "toggle" type - push and hold to either dim or brighten (never really know which) then again for the other direction, or quick push for on/off. My other annoyance is that sometimes a quick push does not register, but I don't know if this is because of the switch or because of the Shelly dimmer... I think more likely it's the dimmer.
This thought was correct. Home Assistant is absolutely incredible, easy to use, polished, and flexible. You can get it to do all of this easily.
I got it installed and configured within ~3 hours.