I've learned a lot about the real-time internet by maintaining a sensor network in my home. Mostly I learned that all things on the internet will be eventually broken.
At 8:30 November 9, 2014 my network came back to life after 19 months of inaccessibility and lost data. website
My network provided the first stream of data into the federated wiki. See Air Temperature
My internet of things goes offline in a power failure not to return for nineteen months. pingdom
The stream broke when a power failure required a restart of my data gateway, Txtzyme remote. github
The ruby/sinatra server had been running continuously for over a year. Restarting it occasionally was not a big deal except this time. It started but did not expose itself to the internet.
Much googling and even consultation of experts could not explain what had happened.
All services were working when addressed as localhost but none were visible on my household LAN, through port forwarding on the internet, or accessible to SensorServer on my co-lo'd server where I kept historical data.
I had traced the problem to connection routing within my home server. Perhaps some middleware configuration had gotten changed.
I stumbled on the answer last Friday when I thought to give sinatra one more try. Darn. Same problem. But this time the troubleshooters on the internet responded to my query. I had to add one new line to my server.
set :bind, '0.0.0.0'
This line says, yes, when I launch the server I do want to serve all paths into my computer, not just localhost, the default except when running sinatra in production.
The remaining pieces of perl and txtzyme that made up my system had been tolerantly waiting for this service to resume. When it did, data started logging again.
1364421001 65.432 1364421301 65.432 1364421602 65.432 1364421901 65.320 1415550601 99.970 1415551201 113.695 1415551501 99.070 1415552102 101.207 1415552401 95.695 1415553002 100.195
All computers and the services that support them are moving targets. And its not just computers. If you want refrigerator or your car to work you're going to have to repair them occasionally. We put up with this because we value their utility.
I thought it neat to monitor the hot-air plenum of my furnace. I knew it cycled and that the cycle changed with the weather and my set-back thermostat. I noticed the improvement when I changed the filter and even more when I replaced the aging furnace.
Now I suffer with a 19 month gap in that history. For me it is like losing the negatives for my favorite pictures. Not much of a loss, really, but something I thought I had and now don't.
This is how the internet of things will work. All the things will be interesting. We will think we own them because we will have bought them. But we won't own all the pieces that give them utility.
The pieces will include some service that promised to provide value unless you read the fine print. Companies will be bought and sold. Databases will accumulate mistakes. Things will stop working. The compounding of complexity will make it in no ones interest to go fix the thing, even if it is just one line missing.
I've been asked why I run wires throughout my house to connect together sensors. Wouldn't radio be better? Yes, but those sensors (and radios) still need power. I'd rather do without the weak link of anything that needs routine attention, even if just once a year. I need to replace ruby with something that will last.