Haunted House. But really. Haunted House.
This week I set out to build out a HPI (Human Programing Interface) for my life. I didn't get it fully working before class but it's something I want to keep working on.
I'm sure you've heard the silly Motel 6 commericals and their tag line: "We'll leave the light on for you."
I was thinking about the number of connected devices at home, yet somehow they still can't do something as simple as leaving the light on for you. (For whatever reason a recent software update killed the Philips Hue geofencing feature)
Also at home, I have a Dropcam, now part of Nest. It's kind of a funny product because it just silently uploads video to the cloud…and you're not really allowed to access anythign locally. But they offer an embed code if you make your camera public.
The basic idea: Go to the website and see into my apartment. Maybe you saw I'm headed home on Twitter, or see that I'm home already. So you turn on the light for me. Or, I'm not home anymore. So you turn it off.
Internet of Walled Off Things
This all seemed like a relatively simple setup. Quickly it became clear that it wasn't goigng to be at all.
Methods for Viewing Dropcam
- Link to Dropcam public page. Not a desired method, it should all be built into one page
- There is a hacked Ruby script. I've tried it in the past with limited success
- Provided embed code. Flash. Horrible:
Spent 45 minutes on the phone with Dropcam and they don't know what the issue is. I installed the flash debugger and researched the issue for a long period of time. Attempted to use crossdomain.xml as Adobe suggested, but it might be a combination issue with the way the crossdomain.xml file works on Dropcam's side. Or something. Strangely I tested the problem with two people, all running OSX 10.10, chrome + safari + flash 15 and change. For one friend @jctucker and myself it didn't work at all. For @robertscarff everything did. Only him and Dropcam seem to be able to get the embed to work.
Methods for Activating Hue
- IFTTT – Easy but doesn't provide web hooks or any way to manually activate easily. I tried this funky workaround using a Wordpress blog but that failed miserably
- Zapier - Ran into the same problems, would provide a web hook interface but didn't have a direct link to the Hue API. Attempted to connect through IFTTT and Wordpress+IFTTT. Both failed
- Node Hue Remote - This was promising but lacked documentation. Essentially you have to trick the Hue servers into giving you a hash as though your an iPhone using an app. This allows you to channel your commands through their web API rather than having to be local on the network
- Python Hue API - This is where I discovered that Philips may have changed the Hue API to prevent the type of hacking I needed to get this to work. It's still linked from the official Hue API docs, so I'm not sure why it hates me.
- Node Hacking Hue - Got this one working on the local network. I'm just going to set the computer in the DMZ for now
Unintentionally, this failed attempt at a quick project became an observation into the problems with the way devices interconnect today. Every organization has a way that they want things, how they want to own the data and control how it's used. Even if it's something as simple as your light bulbs or a video camera.
Generally, I think the intension is to provide the best experience for a large group of customers. But it quickly becomes apparent that the devices aren't intended to interoperate between brands and definitely are intended not to be used in a way that the providers didn't initially provide you.
The Hue system is surprisingly open and ready for hacking within your local network. But Philips doesn't want to give remote access to just anybody. Dropcam & Nest though, they are a bit more particular about who they want accessing their (my) devices. It's a delicate balance that I don't think we have collectively resolved yet.