Hacker News new | ask | show | jobs
by ssl-3 227 days ago
Home Assistant does great at tying all kinds of things together.

People had a habit of leaving the basement lights on here. Now they turn themselves off after a timer expires, and also whenever nobody's home. Using HA and a cheap Shelly relay (chosen for form factor), I was able to do this while retaining the existing lighting circuits, light switch, and the lights themselves.

It works perfectly, is completely local, and the end-user UI is completely natural. Toggle the same plain-Jane light switch that has always been there at the top of the basement stairs and the lights change state. (UI doesn't get more intuitive than that.)

Or: Fans. This house has a good furnace and central aircon, but the ductwork doesn't really extend upstairs. By default, this makes the upstairs-parts very hot in the summer and cooler than I'd like in the winter -- even though it's nice downstairs during all seasons.

I fixed that to my satisfaction by putting a fan on the landing that is controlled by an inexpensive smart switch, just to improve circulation. HA runs this show; the fan runs when the HVAC is doing something, and whenever people are home and it is either too hot or too cold upstairs (based on a temperature sensor). It's not a perfect solution, but it's kept the temperatures sane (and provided logging to prove it), it was cheap to implement, and it is cheap to run.

I already had the parts kicking around; it just took software and time.

(The best option for efficiency and comfort is probably installing mini-splits up there, but... sheesh, that's into the realm of orders-of-magnitude more expensive. Maybe some day.)

2 comments

I'm curious how you used the shelly? They look neat but I'm not sure how people are wiring them into existing switches.
Good question.

I put the Shelly relay in a pre-existing junction box in the basement.

Previously, this box worked like this: There were romex cables for power/neutral, lights, and the switch itself all inside of that box. The switch, located elsewhere, interrupted power to the lights. (This isn't necessarily the most-typical arrangement, but it's how it is in the house I've got.)

Currently, the box works like this: We still have romex cables for power/neutral, lights, and the switch itself inside of that box. That part hasn't changed at all. But now the Shelly relay interrupts power to the lights.

Thus, the lights are always controlled by software.

And the light switch? That just provides an input that is acted upon by a software script.

The script (which runs internally within the Shelly relay) only does 3 things:

1. If relay is on and switch toggles, turn relay off.

2. If relay is off and switch toggles, turn relay on.

3. If relay is turned on by any mechanism, start timer, and then turn off after timer expires. (Plus other useful timer mechanics like resets on additional toggling, but you get the idea.)

---

It's easiest to think of a Shelly relay like a replacement for a light switch, but that's kind of a limiting way to think about it because that line of thought strongly implies that it should to be located where the switch is. And while it certainly can be installed that way, in practice it really doesn't have that limitation.

For my unfinished basement, there's no neutral at the light switch location so using a regular smart switch didn't pan out. (I could have added a neutral but that would have meant using more parts and getting into some drywall and paint.)

Instead, there's that neat (who am I kidding, it's a mess) junction box I that described, up on the ceiling where all of the things come together... So that's where I put the relay.

Or: There's a box behind a light fixture (well, there "should" be anyway). Often, this box will have the same functions available inside that my junction box happened to have. Power, neutral, light(s), switch input. A relay can go there.

But many houses do have neutral at the light switch location, so a relay can go there instead. Power/neutral feeds in, power for lights feeds out, with a switch (and/or relay!) in the middle. All in one accessible box on the wall. This matches the easy-to-think-of scenario. (IIRC all new homes are supposed to be this way in the US, but...)

It's (usually!) just a matter of finding the right physical location in which to install the relay.

(Note: None of this is intended to be an exhaustive list of variations. Things can and do get weird with household wiring, and regional variations of what "normal" means can vary quite tremendously.)

My only fear is my HA box will fail and now nothing works. Most likely because I move and forget to tear everything out. Still something I'm interetsed in
I have the same fear.

So everything I automate has a fallback option that exists outside of HA. My regular light fixtures, with smart bulbs? I can turn those on and off using their light switch in the event that Home Assistant is dead, like I would if they were dumb bulbs. (I seldom use them that way, but I can.)

And my basement lights have their smarts all programmed directly in the Shelly relay. It works without networking or HA or anything else. So while the basement lights are completely software-operated, they aren't dependent upon the relatively giant stack of software and complex hardware that HA brings

As long as the Shelly relay works, then the basement lights also work -- with a timer.

(That relay can fail, but it is is unlikely to fail soon. I don't worry about it any more than I do a major appliance failing: If/when it happens, I'll deal with it. It's easy to take out again.)

Interesting, I had a similar setup with smart bulbs, dumb switches and HA. My experience was that when the bulbs lose connectivity (Zigbee or Wifi in my case) you could maybe still turn them on but they would start flashing like crazy or use different colors (as indicators for their "reconnecting" state). Also Zigbee doesn't really love losing mesh nodes periodically, so turning the bulb completely off using the switch would cause the whole network to fall into broken states that had to be manually fixed from time to time.
None of the bulbs I've had (which have been a pretty wide mixture: Proprietary clown, proprietary local wifi, matter wifi, esphome wifi, zigbee) have that problem.

I just turn them off and back on one time using the switch, and the light bulb's state goes to some variation of "on" within no more than a second or two (maybe not an ideal variation of "on", but good enough to get through a dark hallway). Turn back off with the switch, and it's obviously off. On the next "on" cycle of the switch, it goes back to "on".

And while it is freshly "on", it's trying to reconnect to whatever its programmed mothership is (whether local or afar). This works every time, so far in my experience, as long as that mothership is reachable.

The only time blinkey-mode has been imparted is when I've reset things, which takes rapid iterations of off-on cycling of the light switch. (I test this all the time with the Zigbee bulb in my pantry because the light switch in there sure is convenient. It works fine, even if it has been completely off for hours or days. I just tested it again after pulling the USB zigbee dongle from HA, and the pantry light still worked fine with the switch on the wall.)

I've moved these bulbs and other widgets between houses. No issues (other than renaming things after a move). It's really been OK.

Additional background: For Zigbee in particular, I'm doing that in what is probably the least-preferred, least-effort method: I've got a cheap Chinese CC2531 dev kit that is flashed with different firmware (because that was the cheapest approach ~5 years ago), and I'm using it with ZHA in HA (because that's the easiest approach). All of my Zigbee devices have been buttons or light bulbs, all of those bulbs have been from Sengled, and none of any of them support Zigbee router mode at all. There is no Zigbee "mesh" here to speak of at all, so there's no weird interconnections to break: Endpoints talk directly with the CC2531 and that's that.

Other than some range issues (which were broadly resolved by using an old-school non-3.0 USB extension that I found on Amazon in iMac-esque coloration for a dollar), Zigbee has really been OK for me.

---

But I've been migrating to wifi, anyway. My favorite light bulbs, from Athom, actually come to me with open-source ESPHome already installed...but Matter-wifi light bulbs are often a bit less expensive than those are. (Tradeoffs.)

This migration started on the basis that my old Zigbee bulbs are -- well -- old. They simply don't produce the same quality CRI that even very cheap dumb department store LEDs do these days.

Besides, I've also already built a quite lovely wifi network for my home, wherein I do not care at all about the performance of the 2.4GHz radios at all so they may as well focus their energy on a sea of IoT devices.

I like the idea of having only one set of wireless networking gear to futz with and optimize instead of having multiples of them. (But I'll probably goof around with Matter-Thread, too, if/when that makes sense to me. I'm by no means done tinkering or learning new things.)

You can run HA in a Docker container and set it to generate backups periodically. If your virtual box (or the host) dies, spinning up a replacement will take up a few minutes, as long as you still have you have a computer capable of running Docker or Podman.
That is no use if my boss says move to different city - there is a lot to deal with in a short time which leaves no time to tear that stuff out. if the house doesn't work for the new owners the courts will make me pay an electrition to make it work.

HA failing is annoying but not nearly as stressful.

I see where you're headed with that now.

It is my intention that when I move, I move my smart home shit with me.

I keep this in mind as I add smartness. All of it can be reversed to normal-house-status in a few hours, at most -- including a trip or two to the hardware store.

It can go back to what it once was almost as soon as "We're showing the house on Thursday" is uttered by anyone.

(The new owners won't want any of it, anyway. Buying someone else's bespoke smart home is like buying someone else's bespoke race car: It may have been a serious investment in time and money as well as a source of tremendous joy for one person at one point, but for the next guy it's just kind of a nuisance.)

What are you using as your temperature sensors, if you don't mind?
You'll laugh, but:

I'm using a Zigbee button from Samjin/Samsung/whoever-that-was which reads temperature, my Nest thermostat (via a convoluted-but-supported path to a remote API), and a couple of Amazon Echo Dot speakers (the integration of which is cursed, but it's easy to set up and usually works).

I was going to try to score some cheap BLE temperature sensors and use the Shelly relay as a gateway to bring those into HA (yeah, it does that too), but then the big mystery ball of tariffs happened and I lost track of that idea.

Not the GP, but any supported BLE sensor [0] with a Bluetooth proxy ESPHome node should work.

[0] https://custom-components.github.io/ble_monitor/by_property#...