RoboBlinds Part 3: The Un-Alexa-ing

    So I built these motorized window blinds. And mechanically they're great. They can run on a daily schedule and they open or close in under a second and they're sufficiently quiet that they won't wake me up if I sleep in late. Great.

    Then I got the fancy idea, hey, why don't I hook them up to Alexa so I can voice control them? Just for fun. So I did that. Alexa made it easy to schedule my living room blinds to open 30 minutes after sunrise and close 30 minutes before sunset. And for my bedroom blinds, they don't open automatically, I have to use a voice command to open them, and then they close automatically 30 minutes before sunset if they're open. And if I need to close the blinds outside of the programmed schedule, I can use voice commands to do that . But those voice commands ... well, Alexa's voice recognition is not great. It hasn't improved in many years now,and Alexa can recognize the command "Alexa, tell bedroom blinds to open" probably two thirds of the time. Which is incredibly annoying. So best case, I walk to a particular spot in the room so Alexa can hear me, then stop moving to eliminate any distortion or white noise, then spend several seconds saying the phrase as clearly as possible. Worst case, Alexa will start a ten-second spiel about how it can't find a device called "blinds to open" and I have to say "Alexa shut up" and then pause and then repeat the initial command, and maybe do all of that two or three times. So best case it's a five second interruption and worst case it's thirty seconds that ends with me telling Alexa what I think of it. All to replace a button that would work perfectly every time and would take one second to press, plus maybe a few seconds to walk to it. It's just not a great solution. Far too unreliable. And I will never use Alexa for anything else. I knew from past experience that Google Home couldn't recognize its own name when there was any white noise nearby, even a fan blowing or a pot of water boiling on the other side of the room, but I hoped Alexa would fare better in my silent bedroom. It did not. Goodbye Alexa. This will be the last time I try to use a voice assistant.

    I put the blinds on a timer. Trusty, convenient timers. I looked up sunrise and sunset times for summer and winter solstices and connected them with sine waves. Not perfect, but should always been within a few minutes of actual sunrise and sunset times. I'm sure I could check some website for times each day, but that's unnecessary, especially considering how often my home internet drops out. Thanks Comcast. You're slightly more reliable than Alexa. So back to a button it is. Same as before. The living room blinds are fully automatic, opening and closing every day on schedule, and the bedroom blinds open manually then close automatically. I'm considering replacing the button with a microphone. I'm not training my own embedded NLP or anything silly like that. I might turn it into a clapper. Two claps to open or close, and then automatically close at sunset. That sounds nice.

 As always, code is on gitlab (https://gitlab.com/tllado/blinds_iot/-/tree/main/c++%20timed?ref_type=heads).