Friday, August 19, 2016

Wii U - For an "Unpopular" Console, It's Really Fun!

We acquired our Wii U for Christmas last year in spite of all the doom and gloom that the press has been putting out.  Why?  We wanted a console that focused on family and kid friendly games (my kids range from 14 to 6) and the Wii U fit the bill.  Plus we loved our Wii and were excited to get the next generation console.

It does not disappoint.  We don't buy games prodigiously but the ones we have are a lot of fun.  Super Mario 3D, Mario Cart 8, and Splatoon have all been big hits in our house.  Plus the ability to play our old Wii games has been awesome.  My kids will play as much as their parents will let them.

We recently purchased Minecraft and the kids love the Mario skins and themes that are included in it.  They love playing multi-player and creating their own worlds.  Granted this is nothing new to them as we already own Minecraft for the PC and for the XBox 360.  However, they liked it enough to save up their own money to purchase it.

So, it's a fun console that focuses on family friendly games, but it's a distant 3rd in sales behind XBox and Playstation and isn't getting the new, hi res games that are front and center in the press and that kids seem to be clamoring for.  Why buy console that's not "cutting edge" and/or the be all/end all of consoles?

So here's the deal (in my humble opinion): If you want a console whose primary purpose is to entertain kids and families, get a Wii U.  If you want first person shooters, zombies, blood and guts, etc. get an Xbox or Playstation.  Can you find family friendly games on the XBox?  Sure but that's not their primary market.  Can you find shooter games on the Wii U?  Yes but, once again, that's not their primary market.  Nintendo makes and markets games that are fun to play, kid friendly, and all around enjoyable.  If you're a family with younger kids and you want a console for them, get a Wii U.

The Wii U also has a great online, multi-player service.  First of all it's free - no subscription required.  Second it has amazing parental controls.  I found this out when we purchased Splatoon.  After the purchase, we found that most of the gameplay was online.  Well, I was really nervous about giving my kids unfettered online access - especially knowing how other people talk and act online.  My kids are young, they don't need to deal with that kind of garbage just to play a game.  Well I was impressed to find out that the parental controls on the Wii U are excellent.  I can control just about everything the kids do online.  Whether or not they can browse the internet, chat, buy games, etc.  It's all there.  I was able to set my kids up so they can enjoy playing online without having to worry that they would get themselves into trouble online.  Now they're splatoon fanatics and I can let them enjoy their game without worry.

So there it is.  If you want your kids to have fun, stay safe, and enjoy their video games - get a Wii U.  It's fun!

Monday, August 15, 2016

Sonos Control with the Amazon Echo - Part 2: Raspberry Pi

So, a little while ago I posted how I set up my Amazon Echo to control my Sonos speakers (the article is here).  However, there was a major drawback:  If the computer ever went to sleep, got rebooted or if my user got logged out everything would stop working.  Compound this with the fact that my PC is shared by my kids and you can see that I had a lot of service interruptions.  The obvious solution is to have a permanent computer just to run this service.  I needed something I could leave on 24x7 and that was really inexpensive.  Enter the Raspberry Pi.

The Raspberry Pi computer is cheap, low power consumption, and small.  It seemed like the perfect fit.  So I found a kit (on Amazon of course) and ordered it.  Now to find out if it's as good as it seems.

First, I had to put it together.  That was really easy - I just had to stick the heat sinks on, put the Raspberry Pi board into the case, and put in the SD card.  Then I plugged in a keyboard, mouse, and monitor and I was on my way.

I chose to install the Raspbian OS (Linux for the Raspberry Pi) and in a few minutes it was up and running.  OK - now all I have to do is install node.js, the node-sonos-http-api program and I'm all set.  So I run an internet search on my new Raspberry Pi for instructions (by the way, the computer was set to use duckduckgo.com as the default search engine instead of google or bing or whatever - it worked fine), found some directions and I was off!

NOTE: This is not the full instructions on how to install the Echo control of Sonos, just how to move it from a Windows PC to a Raspberry Pi PC.  The full install instructions are here.

Install Node.js

Based on the instructions I found, I was first directed to update the OS.  That sounded like a good
My Little Raspberry Pi PC
idea so that's what I did:
  • Open up a command line terminal and run the following commands:
    • sudo apt-get update
    • sudo apt-get upgrade
Next it had me install the correct repository to get node.js.  I'm not including the instructions because, after doing this I found that it only got me node.js version 0.10 and I needed version 4.4.x - not even close!  OK, back to the internet.  After a bit more searching I found some better instructions so I did the following:
  • Open up a command line terminal and run the following commands:
    • curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - 
    • sudo apt-get install -y nodejs 
    • npm -version
Success!  I now have node.js (the correct version) on my Raspberry Pi PC.  

Install node-sonos-http-api

Fortunately, the Raspberry Pi comes with git installed so I didn't have to figure out how to install that in order to install the node-sonos-http-api.  Here's all I had to do:
  • Open up a command line terminal and type:
    • npm install https://github.com/jishi/node-sonos-http-api 
  • Test it by going to the web browser and using the test url:
    • http://localhost:5005/zones 
It worked!  OK - now I have the server set up.  I also copied my presets.json file from my Windows PC to my Raspberry Pi PC so that I would have all of custom presets I've been setting up over the last couple of weeks.

Allow for Remote Connections

At this point, I decided I'd rather be running the whole thing remotely because my kids wanted the keyboard, mouse, and monitor back so they could use the Windows PC.  Fair enough.  Here's how I enabled it:
  • Menu -> Preferences -> Raspberry Pi Configuration 
  • Change password to one I actually know
  • Note that the local user is pi 
  • Find the IP address - this was a challenge since I couldn't remember how to echo your IP address on linux so I looked it up in my router.
  • Go back to my Windows PC
    • Download putty
    • log in to Raspberry Pi PC using the IP address for host, pi for the user and my password for the password
Now I don't need my Raspberry Pi hooked up to anything but power.

Redirect Incoming Connections

So, in order to really test it, I need to redirect the incoming connections from my Alexa Skill from my Windows PC to my Raspberry Pi PC.  To do this I went into my router settings and simply changed my redirect from the IP address of my Windows PC to the IP address of my Raspberry Pi PC.

Oh, and I also made sure my Raspberry Pi PC had a static IP address.  It would be a real pain if it ever got assigned a different IP address.

Test It Out

Now it was time to test it out:
  • "Alexa, tell Sonos to play country"
    • It worked!
  • "Alexa, tell Sonos to pause all"
    • Success!
  • "Alexa, tell Sonos to resume all"
    • Yay!
OK - so now my new little PC is running the show.  Awesome!  However, I wasn't quite done for the day...

Run node-sonos-http-api as a Service

Running node-sonos-http-api from a putty terminal worked great until the computer went to sleep or I was timed out or logged out, etc.  OK - kind of the same problem I was trying to avoid.  So how to I make it run in the background?

After some internet searches and some experimenting, I found something that worked:
  • cd to the node-sonos-http-api home
  • Run the following command:
    • nohup npm start &
This starts it as a service (meaning it runs in the background as long as the PC is running).

I tested it by closing my putty session and logging out of my Windows PC.  Everything still worked.

So now I have a Raspberry Pi PC controlling my Sonos speakers via a custom Alexa Skill routed through an Amazon Lambda service.

Whew!  No wonder I put off doing this!

However, having Alexa controlling my Sonos speakers is REALLY cool!

Alexa, tell Sonos to play celebration music!

Tuesday, August 02, 2016

Awair Air Quality Monitor Review

Awair Air Quality Monitor
This post is a bit tricky for me to write.  My Awair air quality monitor is one of the most expensive gadgets I've purchased but it's impact has been the most subtle.  Usually when I buy a gadget, it's impact is much more dramatic like smart switches from Insteon, endless jokes and device control from Echo, temperature/humidity readings from Sensorpush, or automated sprinkler control with Rachio.  With Awair, however, the impact was more subtle.

One of the main reasons the impact was subtle was that my air quality was actually pretty good.  CO2 levels were good, humidity was mostly good, dust wasn't too bad.  Only VOCs (volatile organic compounds) were consistently high.  Not too high, they're usually at 2 but sometimes spike to 3.  What does the VOC measurement mean?  I don't know except that Awair puts a 2 or a 3 at not good orange (not horrible - that would be red).  So what do I do?

So, here's the thing.  I'd been thinking about air quality for a while.  Over the last few years my allergies seem to be getting worse.  Congestion, itchy eyes, sneezing, etc.  Living in Arizona, we tend to get ozone pollution come over from the west (thank you very much California).  So how do I clean the air I breathe?  Do I even need to?  These are the questions that got me to purchase the Awair in the first place.

I also purchased it for the advice it gives.  Of course one of the first bits of advice it gave was to open the windows to clear out the VOCs.  Well, I live in Arizona and when it's 112 degrees outside, I am NOT going to open my windows.  So what are my other options?  Well, the Awair suggested that I get a peace lily and/or a snake plant absorb VOCs.  That sounded good so I bought a couple of those.  They're not big but I have to start somewhere.  I've had them for a couple of weeks and they're not dead (if you know me and my reverse green thumb, you'll know that's an accomplishment) but they haven't reduced the VOC counter either.  So I keep looking.  Maybe in October when the weather cools down I'll try opening my windows.  Until then, I'll keep watering my plants and keep an eye on things.

So, my verdict on my Awair is mixed.

It lets me know my air quality which is good.  It let me know that I don't have terrible air quality - also good.  It's cool to be able to check it at any time and see how my air is doing.  It's great that it's portable and I may try it out in my office or in other rooms of the house to see how they are doing.  The display on it is very cool and gives me the information I need at a glance (no need to pull out my phone to see how my air is).  It gives me advice and help on how to improve my air quality.  It actually got me to buy plants for my house.  Life changing?  No.  Pretty cool?  Definitely.  Has it prodded me to make a few subtle changes and to pay more attention to my air quality? Yes.  Is it worth it?  Yes, I think it is.

Is it perfect? No.  There are a couple issues that I have.  First, the Android app crashes occasionally on startup.  It's not a big deal, I just start it again and it's fine.  What bothers me more are the stats.  The stats screen is great and shows everything but it only shows it for that day.  What if I want to see yesterday?  Last week?  What if I want to see trends over time?  Nope, not there.

So, overall I like it.  It gives me good, accurate (I hope) information about my air quality.  It's given me the extra push to actually get some plants in my house.  It's been a subtle nudge to improve things.