I've always enjoyed hooking together pieces of technology in new and interesting ways.
When I was a kid I rigged up a small water pump to a series of pulleys, rope and switches to squirt water at anyone (read: my younger sister) who opened my bedroom door without using a special trick to disable it first.
In junior high school I may or may not have programmed my 1200 baud modem at home to make a certain classroom's phone ring during a certain class I didn't mind having interrupted.
In my first apartment after college, I had motion sensors rigged up to turn on lights in rooms I walked into, and turn them off again when motion stopped.
I like figuring out how to make real world things talk to each other. Which is why it seems I was destined to live in the emerging "programmable world," this Internet of Things that has developed and flourished in recent years.
I thought I'd share some of the different things I've rigged up to talk to each other in my programmable world. Some of these have practical uses, many of them are just for fun. Some of them are products you can buy yourself, some are tools I've created or enhanced with my own software.
Oh, and you should consider consulting with your spouse, partner or housemates before deploying these technologies in a production living space.
I've used the Sonos multi-room music system to have different kinds of sound routed to different parts of my house depending on what's happening. Music from Pandora playing in the kitchen while NPR news from a Cincinnati station plays in the living room. Relaxing music to fall asleep to on a sleep timer, or energizing music to wake to on an alarm, in the bedroom. All rooms rocking with the same music during a party. All controlled via iOS app or the Sonos wireless controller. I'm waiting for them to release an API so I can trigger certain sound events in certain rooms based on other actions (the haunted house potential here is significant).
I've been playing with the Phillips Hue wireless programmable LED lights and the Belkin WeMo home automation tools to create different "lightscapes" in different rooms triggered by certain events. Using an IFTTT recipe, some lights come on at that day's sunset time, others when there's motion in a room, others on an alarm programed through vendor-provided apps or websites. I'm experimenting with having the lights in a certain room flash when an event happens online - a certain email is received, a certain flight lands, etc. I use the Hue Disco app to make a room's lights come alive to the beat of the music coming from the Sonos system. (I may have irreparably changed the neighbors` opinions of us through over-use of pulsing red lights, but how else are you going to simulate the Enterprise engine room during a core breach?) Eventually I want to try these out as simple visual build indicators for software that developers at my company are working on, green for "everything tests out okay" and red for "there are bugs you need to fix."
I've used a Dropcam wi-fi camera to monitor rooms for certain events (e.g. mischievous pet dog activity). It can send a mobile notification that there's been motion and let me review the video history captured right around that time. It can be set to record at certain times of day, or based on my GPS location reported by my phone (e.g. for when I'm away from the house). I even get an alert if the camera has been turned off.
I use Pushover to deliver mobile notifications about events I care about where there aren't already notifications built in to an app I'm using. If a severe weather alert is issued for the city I live in, my phone and tablet try to get my attention (this also makes use of an IFTTT recipe that involves scanning an RSS feed of weather.gov severe weather alerts). If I get an e-mail from a certain contact or with a certain subject line, I can know about it without having to check e-mail regularly (mail filters on my email server pass relevant messages along to the Pushover system). If a certain computers or appliances I maintain has an issue or triggers some event I want to know about, I get a notice (I use Perl scripts to make a custom call to the Pushover API).
At my office building, a Twine wireless sensor unit is mounted by our front door. When someone opens the door, it puts a quick note in a dedicated IRC channel in our internal company chat server. (If someone's not by the front desk to greet them, they can still check on who's arrived with the wireless IP camera we have setup.) Every hour it notes the temperature. And when someone drives by with a little too much bass pumping from their car stereo system, it notes the excessive vibration level. When its batteries get too low, it sends me an email.
There's a screen in our office lobby that displays snapshot data about the office and staff activities, projects we're working on, local news headlines, recent relevant social media updates, and lots of other information collected from various systems we operate or that affect us. It's setup so that someone walking by it on the way for a coffee/tea refill can get a quick glance at the metrics that reflect our work.
Those are some of the ways I'm programming my world. I will leave the commentary about the wisdom or utility of these projects for another time.
How are you programming your world? What things are you connecting together in new and interesting ways?