ThingSpeak describes itself as 'the open data platform for the Internet of Things'. We thought it would be an interesting exercise to expose some of our smart home data via this service.
We want don't want our data updates made using this API to have any negative effects on the performance of our Home Control System (HCS) software, so we have designed and implemented some code to ensure this doesn't happen.
All of the objects that we want to expose send updates to our Thingspeak Java class and this handles update limits. If the update is within the update limits it is pushed onto an update queue. We have written a ThingspeakService in Java, which runs as a separate thread and then pushes these queued updates out via the ThingSpeak API. As this service is part of our smart home, it knows whether the Internet connection is available and behaves accordingly.
The data pushed out to Thingspeak appears as a series of channels. Our intial focus and testing is based on exposing data from our smart home weather station.
Smart Home Weather
Our smart home weather channel includes the following fields (data):
- Outside Temperature
- Ground Temperature
- Air Pressure