Archive for category Applications

Integrating Nest with Amazon Echo (Alexa)

I got an echo the other day and I’m excited about the functionality – especially seeing as it connected directly to my wink hub, however it didn’t connect to my nest thermostat, so I got a bit discouraged…However after a bit of trial and error as well as a few scripts on the internet, I’m happy to say, my Nest is now connected to the Echo. I can set the temperature, turn it up, turn it down (in three degree increments) or just check the temperature it is. How did I do it? Pretty simple…Here’s the prerequisites

Now that we’ve got all of that sorted, let’s dig in.

Go ahead and create the Azure Web App and in the root directory, copy nest.class.php from GitHub there. After you’ve created that file, go ahead and create an index.php (maybe you want to bury the two files a directory deeper than the root for “additional” security)…

Once you’ve created index.php add the following code to it (note you’ll need your username and password):

define(‘USERNAME’, ‘’);
define(‘PASSWORD’, ‘my-nest-password’);
$nest = new Nest();
$nest_detail = $nest->getDeviceInfo();
$EchoJArray = json_decode(file_get_contents(‘php://input’));
$intent = $EchoJArray->request->intent->name;
$ct = $nest_detail->current_state->temperature;
if ($intent == “NestSetTempIntent”) {
$new_temp = $EchoJArray->request->intent->slots->temp->value;
$feedback = “I went ahead and set the temperature to $new_temp”;
} else if ($intent == “NestCoolDownIntent”) {
$new_temp = $nest_detail->current_state->temperature – 3;
$feedback = “I went ahead and set the temperature to $new_temp”;
} else if ($intent == “NestWarmUpIntent”) {
$new_temp = $nest_detail->current_state->temperature + 3;
$feedback = “I went ahead and set the temperature to $new_temp”;
else {
$feedback = “Currently the temperature is ” . $nest_detail->current_state->temperature . ” degrees.”;
header(‘Content-Type: application/json;charset=UTF-8’);
$text = ‘{
“version” : “1.0”,
“response” : {
“outputSpeech” : {
“type” : “PlainText”,
“text” : “‘. $feedback .'”
“card”: {
“type”: “Simple”,
“title”: “Nest Integration”,
“content”: “‘ . $feedback . ‘”
“shouldEndSession” : true
header(‘Content-Length: ‘ . strlen($text));
echo $text;

After you have those two files in place, you’re ready to head over to the developer portal and create a new “Skill” for Alexa and the Echo. To do this:

  • log in
  • Click on Alexa
  • Click on “Get Started” below the Alexa Skills Kit
  • Click “Add A New Skill”
  • For the Name simply enter “Nest Controller”
  • For the Invocation Name I used “nest”
  • For version I used “1.0”
  • Endpoint is the URL to the Azure website I had created (
  • Click Next
  • For the Intent Schema, enter:

“intents”: [
“intent”: “NestCoolDownIntent”,
“slots”: []
“intent”: “NestWarmUpIntent”,
“slots”: []
“intent”: “NestInquireIntent”,
“slots”: []
“intent”: “NestSetTempIntent”,
“slots”: [
“name”: “temp”,
“type”: “NUMBER”

  • For sample utterances enter:

NestSetTempIntent set temperature to {seventy four|temp}
NestSetTempIntent set temperature to {eighty one|temp} degrees
NestSetTempIntent set to {sixty one|temp}
NestSetTempIntent set to {eighty one|temp} degrees
NestSetTempIntent set {sixty one|temp}
NestSetTempIntent set {eighty one|temp} degrees
NestSetTempIntent set thermostat to {sixty one|temp}
NestSetTempIntent set thermostat to {eighty one|temp} degrees

NestCoolDownIntent turn the temperature down
NestCoolDownIntent temperature down
NestCoolDownIntent I’m too warm
NestCoolDownIntent I’m burning up
NestCoolDownIntent burning up
NestCoolDownIntent i’m too hot
NestCoolDownIntent too hot
NestCoolDownIntent cool down
NestCoolDownIntent cool the house down
NestCoolDownIntent turn the thermostat down
NestCoolDownIntent thermostat down

NestWarmUpIntent turn the temperature up
NestWarmUpIntent temperature up
NestWarmUpIntent I’m cold
NestWarmUpIntent I am cold
NestWarmUpIntent I’m too cold
NestWarmUpIntent it’s cold
NestWarmUpIntent its cold
NestWarmUpIntent it is too cool
NestWarmUpIntent it is too cold
NestWarmUpIntent it is freezing
NestWarmUpIntent it’s freezing
NestWarmUpIntent it is chilly
NestWarmUpIntent its chilly
NestWarmUpIntent warm up the house

NestInquireIntent current temperature
NestInquireIntent what’s the temperature
NestInquireIntent what’s the current temperature
NestInquireIntent what’s the temperature inside
NestInquireIntent what’s the temperature indoors
NestInquireIntent what is the temperature
NestInquireIntent what is the current temperature
NestInquireIntent what is the temperature inside
NestInquireIntent what is the temperature indoors
NestInquireIntent why am I freezing
NestInquireIntent why am I burning up

  • Click Save
  • Click Next
  • For SSL Certificate choose the middle “My development endpoint is a subdomain …” (All * addresses have an https wildcard certificate associated with them)
  • That’s it!

Now it should show up in your skills list on your Echo App (iPhone, Android or even on To invoke any of the commands simply ask or tell Alexa what we listed above…For example:

  • Alexa tell nest turn the temperature down
  • Alexa ask nest what is the temperature inside
  • Alexa tell nest set temperature to 68 degrees
  • Alexa tell nest its chilly

Feel free to add more utterances based on the slot of what you’d like her to do. If you want to turn the temperature down, simply prefix your “alexa tell/ask nest” command with NestCoolDownIntent in the utterances. To turn it up, simply use NestWarmUpIntent .

Have fun!

Tags: , , ,

Dear SeaTac, I upgraded your kiosk for you

So the other day I flew in to SeaTac thinking, wow, I haven’t seen any blue screens or problems recently (ok, I did see a few but didn’t have my camera), when BANG. At that moment, walking to catch the bus (yes I take the bus to and from the airport), I came across a kiosk and it had a dialogue box up. Most of the time when I come across a kiosk with a dialogue box it is usually stating it needs a reboot, however this one, strangely enough wanted to upgrade…something I don’t think should/is/was supposed to be a consumer task. At any rate, here is the kiosk:


and the close up of the kiosk:


so, I went ahead and clicked update for the version update for SeaTac. Not sure if you’re now out of EULA or your license allows you upgrades to LogMeIn or not, but hey, you gave me the chance/option to upgrade and as we all know, the newer the better and with software always use the latest and greatest, right?! Smile

Tags: , ,

Why Yahoo! never made it too far

Disclaimer: I am not a programmer. I did a bit of programming in college and I “dabble” occasionally. I by no means consider myself hard core but the following might assume I think I am.

We all know the hype of IE9 right? It’s the latest and greatest out of the halls of Redmond. They’re suggesting for all of us to upgrade and try it out and see for ourselves it’s the best thing since sliced bread. OK, I took the plunge, I upgraded just like many others will – in order to try it out as well as try to be ahead of the IT curve, in such a case I get asked any questions.

Today, I took my browser to Yahoo! Answers because Bing told me it would have the answer to the question I was looking for. I got there and Yahoo! told me IE9 wasn’t a new enough browser and I should upgrade:


What’s even more comedical is when I click on the Upgrade Now link, in lieu of taking me anywhere it takes me to a page that says:

yahoo faux paux 2

Yep, that’s right. IE8 isn’t available for my system. So, three learning experiences we need to teach Yahoo! in order to get them up to speed:

1. When testing for browser compatibility your programmers might want to use $browser >= $version and not just hard code specific versions

2. P.S. I’m running Windows 7 which runs IE 8 fine although you don’t seem to think so

3. IE8 is not ONLY available for XP, Vista and Server 2008. It comes bundled with Windows 7 which makes it available for that OS too (see number 2 above).

Tags: , , ,

Spring, Samsung, Google and WinMo

I use Sprint for my cellular service like many other Americans. It’s reliable, it’s fairly inexpensive, it has an unlimited data plan and, well it works (I won’t mention friends and colleagues who love their fruit machines, but can never get them to work due to the network, but alas that’s another story). When I initially signed up for service I thought I’d try something new, something different. For that, I opted for the Samsung Moment:

samsung moment

pretty sleek device, had a QWERTY keyboard and overall looked and felt nice. Over time it had some issues (airplane mode, upgrading from 1.5 to 2.1, being s-l-o-w and sometimes non-responsive) but nothing too drastic that the ole IT cure all (turn it off and back on again) couldn’t fix.

Well, with TechEd Berlin coming up, I’ve got to go to Berlin to speak which means going overseas. Sprint for those of you who don’t know run on a CDMA network and 99% of their phones are CDMA. What does this mean? Well, it means that their phones won’t work overseas, so there goes the moment out the window. So, being a Microsoft MVP and one who is always sticking up for their technology and software I pushed out the boat and had them issue me an Intrepid:


Runs Windows Mobile 6.5 and so far, not too bad. Now that I’ve got the history out of the way, here is the intent of the article. The Moment versus the Intrepid or essentially Android versus Windows Mobile.


At first I wasn’t sure I’d like it as Google makes you log in to the device and their primary goal no matter what anyone says is that they want to track you and use your information to their advantage. It’s their business model. So, no gmail account, no phone services (or limited ones at that). However, once that was past, it was a pretty streamlined experience. I can’t say it was perfect but it was good. The default OS seemed to work ok, it had functionality and worked pretty well. However, I never ended up getting a full day’s battery out of the phone at normal use and I can only equate that to the OS.

As for the breadth of applications, not too shabby, however this is where they need some work. The Android Marketplace is at best a Moroccan Bazaar. No quality control, no real information, just put your app up here and we’ll help tout it to the Androidians (that’s my new name for those who use Android).

Windows Mobile

After the first few days of having the Intrepid, I found it pretty straightforward and easy to use, however I missed the bigger screen. The keypad on the Intrepid wasn’t as nice either, but that’s not really an OS drawback/feature, but it’s noticeable. Now, back to the OS. I will say Google seemed to trump Windows Mobile 6.5 here as when I click the start menu on my Windows Mobile I get some strange fandangled layout of applications which reminds me of some tetris like game on Xbox. You can’t rearrange them, you can’t ABC order them, you can only send to top and hope for the best. Mail however works a treat and the battery life allows me to have a full day of work on the phone without needing to reach for my charger. The Windows Marketplace too seems much more streamlined and groomed compared to that of the Android Market, however my concern with the WM Marketplace is pre-requisite checking. Bing has an app that requires special resolution, however it doesn’t say that anywhere and not until after I downloaded it and the .cab tried to install itself did it error out telling me I had an incompatible device. These kinds of things should be checked prior to download or even better yet WinMo, don’t show me them if my device is uncapable.


In short (I know I didn’t do too much comparison, but I like to keep these articles below 1000 words), they’re both good solid devices. I will say I feel more productive with my Intrepid Windows Mobile device but knew I had more “fun” options with my Moment. I have a full days battery life with the WinMo, but had more of the community behind the apps on the Android. All in all, if Windows Phone 7 Series is more crafted and well refined these two players, Android and Windows Mobile could easily take back some of the market that Apple has had the stronghold on for some time now and the competitionwill only make the devices strive for betterdom in the long run.

Tags: , ,

The mobile (cell) business is hotting up

For those of you eagerly awaiting the Windows Phone 7 Series, the other mobile industry news must be quite interesting as well. What is it I’m taking about or referring to? Well, let’s take a look at two big stories around the mobile industry over the past 24/48 hours:

Android sales overtake the fruit machine. Yep you read it right, the good ‘ole iPhone just isn’t as good as it once was. Proof that you can’t rest on your laurels. –

– BlackBerry traffic to be outlawed in Saudi. Hmm, that’s an interesting one. Does that mean that all data type traffic will be outlawed or is this a target at RIM only? Read more here

Tags: , ,

Getting Started with Intune

Earlier this week Microsoft announced a new program called Windows Intune:

intune logo

The concept behind it is simple…Management via the cloud – including licensing. Now, that simple sentence means a lot more under the hood.  Let’s take a look at what Intune is and what it has to offer.


One of the more difficult things SME (small / medium enterprise) customers have is getting the right software licensing.  Intune helps address this by giving you a license to Windows 7 Enterprise and also includes in it the rights to Software Assurance. Right away you should be jumping up and down…Why?  Because SA includes MDOP, a small set of tools that have more bang for their buck than you know.  If you’ve not heard of MDOP before, check it out and if you’ve got SA, try and get your hands on it to learn more about it (you can also test the bits via MSDN and TechNet).


Ok, so we now know what the licensing is like, how does it work? As with more and more tools these days, Intune is a cloud based service.  Simply navigate to a URL and you’ve got your management console in one location.  The biggest benefits to this are Anywhere access and the lack of need for a complex back end infrastructure (you don’t need your own SQL server, you don’t need your own SCOM server, you don’t need your own…). So, you want to know what it looks like?

intune console

Simply login using your LiveID and away you go…More in to management with LiveID’s later…

It runs entirely on Silverlight so no need for ActiveX components of old (yay), which also means for those of you who prefer to use something other than Internet Explorer, yep, it works in Firefox (p.s. say hello to cookie monster there 😉 :

console firefox

What’s Included
software reporting

So, you now know about the licensing and the console, what is it that’s under the hood that Intune can do for you? First off, it does Inventory…For those of you familiar with MDOP you’ll recognise some of the screens to be similar to the AIS (Asset Inventory Service). It tells us the software title, publisher and a category as well as the count of computers it’s installed on:

intune software listing

Further, we can drill down on the software title and get more information on it if the software title offers it up to the agent/console.

licensing amalgamation

Wow, Microsoft teams are starting to collaborate (joke). No, really though, for years we’ve had eOpen, we’ve had tool B and then we’ve had the different licensing agreements from here there and everywhere…Well now with Intune, there is a licensing module that will bring all of that mess tidily (is that a word?) under one roof. Simply import a .csv file with the agreement and license numbers or if you don’t have that, manually add them and watch your licenses appear magically in the same console that manages the software (woo hoo!!):

intune licensing

software update management

As noted above, one of the biggest challenges for smaller organisations is infrastructure. To get the functionality of what Intune offers, you’d need SQL, SCOM, SCCM, WSUS and a full time position (benefits, health care, pension, vacation pay, agro)…Intune takes care of that and software management is no exception. With Intune you can manage software updates with a simple click, no need for the infrastructure and even better yet, no need for the disk storage to hold all of the potential updates!

intune updates

and again, as integration is key, simply click on any update to get further information about it:

update drilled down

You can also approve and decline updates on a one-by-one basis this way too (don’t worry you can globally manage multiple updates too).


So, all of the above is great (as an IT person) however what about the people in management who want pretty reports? Yep, Intune has those as well. Three basic categories:

  • Update reports
  • Software reports
  • License reports

As they allude to, the first one tells which machines (based on your filtering criteria) meet or don’t meet specifications of a certain classification, status or grouping.

The software report does what it says on the tin – reports on the software you’ve got installed. Again, filter on the publisher, category or specific computer groups/departments.

software reporting

And then the licensing reporting, the most critical to the number crunchers…Installation report and puchase report – again filtered against all agreements or selected agreements, depending on what is entered in to the licensing module (explained above).


Ok, so there is loads included above but what determines how this information gets to Intune and how exactly does it get there? Well, similar to GPO’s, Intune has policies that are controlled by it’s agent. Simply download the x86 or x64 client from the administration area and install it (from what I can tell it embeds your Intune information in to the .msi installer). No questions, simply double click the installer, reboot and let a few more updates trickle down and presto, you’re Intune. All traffic to and from Intune is encrypted over an HTTPS tunnel to keep it secure, and once an agent checks in, it can, like GPO’s be assigned policies, when to update, what to include and what software/patches to send to the machine.

Further one cool thing is the agent allows the user to request remote control from the administrator over this SSL connection. They simply open their Intune agent locally (on the desktop by default) and click on Microsoft Easy Assist:

intune agent launch 

This triggers an email to whomever is set up in the console (in their language even), with detailed information about the remote control request and includes a link to directly remote control the user:

intune error


So, to wrap it all up, Intune is the remote system admin toolkit without the need for local infrastructure and expertise.  It gives you:

  • Windows 7 Enterprise Licensing
  • MDOP
  • Software Assurance
  • Inventory
  • Patch Management
  • Reporting
  • Remote Control
  • Monitoring & Alerting
  • Malware Protection
  • Licensing Control

…all in one simple location for one simple price.

Tags: , , , ,


First off, in the words of Microsoft’s Zune “Hello From Seattle”.  If you don’t get that flip your Zune over on the back and see what it says :)  This week, I’m in Seattle for various things and as such, what does that imply?  Yep, I’m travelling again and when you travel, you have to go to airports.

Today’s selected airport of choice is a double post whammy.  Yep, they didn’t just have one issue, they had two, so a double dip of fun at none other than London’s new Heathrow Terminal 5.

All checked in with the new kiosk (although it did have difficulty reading my passport) – third time lucky – bag dropped at the desk and the attendant says to me “You’ll be departing out of the B Gates.  Watch the monitors for details”.  OK, no problem, go through security and have a Starbucks (as you do) and let’s have a look at the monitor:

DSCF1031 (1024x768)

Hey, not to bad.  Here’s a close up for those of you interested in what’s wrong:

DSCF1030 (1024x768)

You know what causes this most often?

This Stop message occurs when requested data is not found in memory. The system generates a fault, which normally indicates that the system looks for data in the paging file. In this circumstance, however, the missing data is identified as being located within an area of memory that cannot be paged out to disk. The system faults, but cannot find, the data and is unable to recover. Faulty hardware, a buggy system service, antivirus software, and a corrupted NTFS volume can all generate this type of error.

There’s also a tool called the Diagnostic and Recovery Toolset (DaRT) you might look at downloading as well which will further help you diagnose your problems…

Ok, no problem right.  Maybe it’s just one dodgy monitor that has decided to pack it in for the day.  Nope, even better yet, I go to the next bank of monitors and PRESTO:

DSCF1032 (1024x768)

There she is again in all her glory!

So, Heathrow IT, you might just want to check TechNet!

Happy travels!  

Tags: , , ,

Vegas – The home of XP, DameWare, Messy Desktops, Java, Intel video cards and Sound

I love airports.  What else to do with your free time besides scout out all of the things that shouldn’t be done in public :)  I’ve been to Seattle, Gatwick, Southampton and now let’s take a look at what we can find in Vegas…

DSCF0885 (768x1024) DSCF0888 (1024x768) DSCF0889 (1024x768)

What does the departures board say?  It says I’m running Windows XP and looking closer at the board doing the adverts next to it tells me:

  • They run a Java based dos client (DDC Java – version 1.6 even)
  • They use DameWare to remote control their devices (anyone want to sniff port 6129?)
  • They haven’t done too much with the desktop for 14 days as the clean desktop wizard is appearing
  • The have sound on their kisok machines (why?)
  • They are using the intel graphics chip set

Come on guys, I wouldn’t want to go gambling in your city with your IT staff…They’re showing their hands making it easy for the opponents to gauge them!

Tags: , , , , , ,

Now Boarding – Anti-Virus flights from SEA (with Alaska Air)

For those of you who commonly read MVP blog posts, you know where we all were last week, right?  Well, if you didn’t there are loads of places that will tell you we all descended on Redmond for a big summit, but the rest…Well, I’m under NDA.  However, when I was leaving Sunday, I wasn’t the only one at the airport.  Sure you say, there are loads of passengers at the airport.  Nope, this is no normal passenger.  On Sunday, February 21, Alaska Airlines had a very special passenger…He kept “popping” up everywhere…to Las Vegas:

DSCF0926 (1024x768)

…to Palm Springs

DSCF0929 (1024x768) 

…to San Diego:

DSCF0931 (1024x768)

(apologies for the fuzzy images above, I was on a bit of a recon mission without trying to get kicked out of SeaTac) :)  Who was this stray passenger?  Well, let’s have a closer look at other monitors around SeaTac:

DSCF0932 (1024x768)

DSCF0933 (1024x768)

Ah, ok it was Mr Micro.  Most people call him Trend.

What have we deduced from this lesson?

– Alaska Airlines uses Trend Micro A/V on their corporate LAN

– Ensure you make alerting silent if the machine is connected to a kiosk 🙂

Happy travels!!  

Tags: , , , , ,

Customer Experience Improvement Program

For those of you that use software and like to have your say, there are various methods to provide feedback.  For example beta testers of Office 2010 have SAS (Send A Smile – or Send a Frown):

office 2010 sas

For other programs that are full release products, there is the Customer Experience Improvement Program or CEIP.  It’s the little box that pops up when you first start most Microsoft products.  Most of the time, I choose to send this telemetric data to Microsoft to help improve their products.  However, I came across an interesting CEIP experience this morning.

A few days ago, I reported on using QuickBooks and Microsoft’s Small Business Accounting tool, and today when I went to fire up Small Business Accounting, I got the CEIP:

ceip - office accounting

Interestingly enough though, the title says:

Help design the next version of Microsoft Office Accounting

…Hmm, I guess the app must not check home first before it starts as there is no more Office Accounting package 🙂

Tags: ,