Hacker News new | ask | show | jobs
by gregmac 2233 days ago
As someone who's done lots of automation and lived with a spouse that isn't as enthusiastic about it, one of the key things to think about is intuitiveness.

The setup of "automatically adjusts lighting based on finishing brushing teeth before bed" could easily be "the bedroom lights do random and frustrating things when I'm trying to get ready for bed". The problem is complex interactions are hard to see, like what happens when someone does something out of order, or adjusts the lights to their liking before brushing teeth, or is brushing early after a late dinner or garlicky snack but not going to bed yet.

That said, if you can do it without annoying others, go nuts! It's super fun, and it's a great learning experience to spend weeks interacting with your software from the real (physical) world. You'll find tons of edge cases, and figure out how to deal with race conditions, less than 100% reliable signals, etc.

Some of my most useful automations are very subtle, like turning on a couple inside lights as it's starting to get dark outside but only if there aren't any lights already turned on. If we're home (and have manually adjusted lights), nothing happens. Yet we never come home to a dark house (There's a similar automation for front outside lights too). This is quite a bit more complicated than a simple timer, yet is so intuitive that you don't even realize you're interacting with it.

1 comments

What I'd probably do is use it to control lights in the bathroom. You're supposed to brush for at least some amount of time, change the color of the lights as you approach that time.
My Oral B toothbrush came with a little digital clock that sticks on the bathroom mirror, when you start the toothbrush it switches to a timer that counts up, with a little quadrant indicator that changes every 30 seconds.

It also apparently grades how well I clean my teeth, but that appears to be based purely on 1 star per 30 seconds, up to 5 stars.