Thursday, January 26, 2017

Withings Activite Steel HR Fitness Tracker Review

I'm going to start with a little history.  I've been a Fitbit fan for quite some time. My first activity tracker was the Fitbit One.  I loved how it would give me a step count, stair count, and it's vibrating alarms.  I thought it was awesome but one day, after a couple of years, I lost it. I was bummed.  I liked it a lot but I decided that I wanted something that wouldn't fall off. I looked at the Microsoft Band but, at the time, it was sold out so I couldn't buy it.  A couple of months later, Fitbit came out with the Charge HR. So I moved to the Fitbit that wouldn't fall off and told me my heart rate. It replaced my watch and has been a good tracker for the past couple of years. However, it had a couple of defects. I couldn't read its display in bright sunlight and sometimes I couldn't get the display to turn on immediately. So it worked great as an activity tracker but, in my opinion, it wasn't a very good watch. So, when it started falling apart a couple months ago -  hey, after two years of constant use, things wear out, I decided to replace it.  Just so you know, I was able to superglue it back together, but I still decided it was time to replace it.. I started looking for an upgrade. 

I decided that I wanted an analog watch so that I could always tell the time.  I wanted something waterproof (I do a lot of swimming). I also wanted to keep the silent alarms and activity tracking that I loved in my Fitbit.

I looked at Fitbit first but the new Charge 2 isn't waterproof.  I looked at Garmin but their analog watch has no alarms. I looked a some Android watches from Timex and Fossil but their watches weren't waterproof. Then a friend at work told me about Withings so I checked it out.

I looked at the Activite Steel and liked what I saw. Analog watch, silent alarms, activity tracking, waterproof, and a battery that lasts for months - awesome - but no display other than time and a dial that showed how close I was to my step goal. I wasn't sure I wanted to be tethered to my phone for most tracking information.  While I was considering, I saw the info for the Steel HR. Everything in the Steel plus a display, a heart rate monitor, and phone, text, and calendar notifications. It looked awesome so I preordered it.

I've had it for about a month now and it's great! I've only had to charge it twice which gives it roughly two weeks per charge. Granted it says 25 day battery life but with alarms and notifications on, it's less - I also didn't wait until it was almost dead. I'm not really complaining though, I mean compared to my Fitbit where I was happy to get 2 days out of a charge, that's huge!

I like the analog display and the option of the digital display for time, date, steps, distance, heart rate, alarm, etc.  It's got everything on my list.  However, it's not quite perfect.  There are a couple of cons:
  1. In the wrong lighting, the watch hands can be difficult to see so I occasionally have trouble telling the time. This is my biggest disappointment but it's not really that bad.
  2. Occasionally, it gets out of sync with my Android phone (Nexus 5x) and doesn't notify for a call or text. This also isn't a big deal and it's been better than my Fitbit Charge HR was.

Overall it's great! It looks like a classy watch with activity tracking and notifications built in. Its battery lasts weeks and it's waterproof. It's not huge like a lot of smart watches (which is good because I have small wrists) but it sure packs a lot in.  So now I'm wearing a watch again, a real watch and I sure do enjoy it!

Monday, January 09, 2017

Insteon: Controller vs Responder

This entry is going to be more of a technical article.  If you're not planning on setting up scenes in an Insteon environment, this isn't for you.  If you are or like me, have been running into some confusion about what should be set up as a controller, what should be a responder, and what should be both.  Here's what I learned.

I've been using Insteon switches for a couple of years now and had set up a few scenes.  When adding a switch to a scene, you have the option of adding it as a controller, a responder, or both.  Not knowing the difference and wanting to cover my bases, I set all of my scenes to both.  Since my scenes were all timing type scenes (e.g. turn on night lights at sunset) it worked fine.  Then I added an 8 button keypad and started programming the buttons to control other lights.  The program for this, of course, is a scene.  Once again, I set every switch and button as both a controller and a responder.  Then I created a scene, specifically for my Echo, to set my lights as movie lights.  It would turn off my kitchen lights and family room lights and set my dining room light at 25% (the kitchen, dining room, and family rooms in my house have no walls between them).  It makes the family room nice and dark but not too dark.  So, as per habit, I set all of the switches as both controllers and responders.  At first it seemed to work.  I could say, "Alexa, turn on movie lights" and the lights would set just like I programmed.  Perfect.  Then, I turned on the dining room light (via the switch) and the family room and kitchen lights turned off.  What!  And the dining room light dropped to 25%.  What!!?  Time to do some research.

What I found was very simple but not documented in a way that I understood it.  So here's how controllers and responders work in the world of Insteon.

Controllers

A controller initiates an action - specifically a scene.  For example, if Switch A is set as a controller for Scene B, then turning on Switch A will initiate Scene B.  So when I set my dining room switch as a controller for my movie lights scene, hitting the switch (turning on the dining room light) also initiated my movie lights scene (turning off the family room and kitchen lights).  Hmmm... that was the problem.

Responders

A responder reacts to an action - specifically a scene.  For example, if Switch A is set as a responder for Scene B, then executing (turning on) Scene B will turn on Switch A.  The difference is that instead of Switch A turning on Scene B, Switch A is reacting or responding to Scene B being executed.  So I fixed by Movie Lights scene by setting my switches to be responders only.  Then, when the Movie Lights scene was executed, the lights did what they were programed to do but turning on the Dining Room switch (or Living Room Switch or Family Room switch) did not execute the scene.

Both (Controller and Responder)

When a component like a switch is set to Both (meaning both a controller and a responder) it will both initiate a scene (controller) and respond to a scene (responder).  This works great if you have more than one button or switch controlling a single light.  Like a 3-way switch.  For example, you have Switch A and Button B both controlling Light C.  In Insteon land only one component actually turns the current on to the light, the other controls the light via a scene.  So, Switch A actually turns on and off Light C but we want Button B to do it a well.  So, we create Scene D.  This scene turns on Light C and is set with Switch A and Button B as both controllers and responders.  So, the logic of the scene is as follows:

  • Turn on Switch A
    • Light C is turned on (because Switch A controls Light C)
    • Scene D is turned on (because Switch A is a controller for Scene D)
    • Button B is turned on or lights up (because Button B is a responder for Scene D)
  • Turn on Button B
    • Button B lights up (because that what Button B does when it's turned on)
    • Scene D is turned on (because Button B is a controller for Scene D)
    • Switch A is turned on (because Switch A is a responder for Scene D)
    • Light C is turned on (because Switch A controls Light C)
Clear as mud?  

So, if Button B is not set up as a responder, when you turn on Switch A, Light C still turns on and Scene D is still executed but, since Button B is only a controller, it doesn't respond - it doesn't light up or set itself in the on position.  That means that if you now push Button B, it lights up and turns on Scene D which tells Switch A to turn on (because Switch A is a responder) which turns on Light C.  However, Light C is already on so you don't actually see any change and may think the button doesn't work.  That's why your buttons/switches need to be both controllers and responders.




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.