A Week with the Smart Mirror

My mirror is in great shape to the point where I can start using it on a daily basis.  My family is certainly finding it useful and I'm having fun tweaking this and that to get it perfect.

As you can imagine, there are bound to be some growing pains. So the following documents what's working and what isn't.

The Good

The obvious quick hits have been the calendar and weather displays.  In fact, our failure to keep track all of the birthday parties my kids need to attend was what sparked this in the first place. Okay, my infatuation with the idea of a smart mirror was the real catalyst. But i can rationalize anything...

Suffice to say having the calendar and weather readily available by the front door is extremely helpful! As long as we're diligent in adding events to our calendars, then there should no longer be a reason for us to forget any event. And with the weather forecast showing the conditions throughout the day, I no longer have an excuse for not bringing an umbrella with me in the morning. I've written a module that picks up notes I add to a GMail account, so we've been using the mirror as an ad-hoc bulletin board too.

The mirror sleeps and wakes up based on a motion sensor built in to the mirror frame, and I've set it up to switch to a screensaver after 5 minutes of no motion detection. I'm using XScreensaver configured with a number of abstract line art screen savers. This turns the mirror into a work of moving art. I find myself mesmerized by it, so I've configured it to stay running for an hour before the mirror sleeps completely.

I should also mention that this addresses our desire to just have any mirror at all by our front door. The fact that it has all of this extra info is gravy!

The Bad

As I mentioned in a previous post, I ended up using an IR blaster to the mirror to send commands to the TV. It has one annoying problem which I haven't been able to eliminate completely, but with the use of the IR blaster I've at least been able to mitigate it.  Here's what happens:

Notice the banner that says "HDMI2/DVI" and stays on the screen for a good 6 seconds or so? There is no way to get rid of it altogether.  I even tried contacting Samsung to see if there was some special magic voodoo way to do it.  However, it CAN be dismissed with the remote control as soon as it appears. Hence the reason for the IR blaster. As part of the script that wakes the TV from standby, I have it emit the IR command for the "EXIT" key. After playing with the timings, I've got it to this point:

Not perfect, but I can live with it. If I were to build this all over again, I'd likely use a computer monitor instead or find a way to drive the LCD panel directly from the Raspberry Pi.  I've also read reports that Vizio TVs can be put into standby and woken using standard computer power management commands without any extraneous OSD appearing on screen. Information that would have been useful BEFORE I bought the Samsung!! But I shouldn't complain as my cousin was able to get me a great deal through his employee discount.

Another thing that has not lived up to the hype is incorporating Amazon Echo voice service. It only seems to respond consistently to me saying "Alexa." With my wife it's sporadic, and with my kids it hardly ever works at all. To be fair, I think this likely has more to do with the microphone than it does the voice control software. The fact that the microphone only costs $6 MIGHT mean that it has a harder time picking up higher pitched voices...

That said, It's been pretty useless for most things. I've got it connected to my smart home devices like lights and locks, but half the time it can't find the device I'm asking it to control. For example, if I say "Alexa, turn on the dining room lights" there's about a 50/50 chance that Alexa responds with "Hmm, I can't find any devices with that name." Other times it works fine. In fact If I repeat the command right after it fails, it usually works the second time around.

I've also found that sometimes Alexa doesn't get back to me on things she asks me to wait for. For example, if I ask Alexa if the back door is locked, she'll respond with "Checking... hold on a sec" but then she never gets back to me with the door lock status.

Combine all of this with the fact that I can't set up Alexa with my home address -- Amazon echo is not officially available to buy in Canada yet -- I can't do any of the cool stuff like order an Uber or ask simple questions like "Alexa, will I need an umbrella today?" Generally Alexa has been a disappointing experience.

The Ugly

Facial recognition currently sucks.  It's so slow to the point of being unusable.  It takes 5-10 seconds for the recognition to actually work.  By then we're out the door.  For the time being I've disabled it. That said, one of my co-workers is convinced he can make it fast. Hopefully I'll be writing a follow-up post to report his success!

Also, it seems the Jays can't buy a win, and I'm reminded of this every time I see the score on the mirror. Not any fault of the mirror, or course...

Final Thoughts

This is a great project, and it is certainly helping to keep out family organized. The great thing is that it's fairly easy to add anything to the display. For example, I'm planning on writing a module to display the lock status of the doors. That way I can quickly check that the doors are locked before I go to bed at night.

It's also pretty freaking cool. When people see it they are floored by it. Even better if the mirror is asleep when they first walk up to it. It just looks like a regular mirror, and then -- BOOM -- information is just suddenly floating in the glass.

There's still more to do with it. I'm waiting on the delivery of a button that will have various functions when it's all wired up.  It will be able to wake the Raspberry Pi from full power off and make it boot, it will be able to wake the screen from standby, it will be able to cycle through display profiles (e.g.: a specific display configuration for me, another for my wife), and it will be able to shut down the mirror to full power off with a long press. The button has an LED ring light that I'll try and figure out how to reflect the above statuses.


Popular Posts