I’ve posted the code for my SmartThings multi-switch project to Github.
There you will find 3 files.
- smartthings_controller.ino – the Arduino code which communicated with the SmartThings cloud using the SmartThings Arduino library. I’m using an Uno.
- device_handler.groovy – the device handler code. This defines the device for use in the cloud and its UI in the SmartThings app. It is specific to the hardware, but not the use of the hardware.
- SmartApp.groovy – the SmartApp code. This defines how the device is used. In my app I tie specific hardware bits to specific device types (e.g. switch, switchLevel or musicPlayer).
For more information on the SmartThings IDE, writing SmartApps and related topic, have a look at these tutorials on the SmartThings developer site.
Now that the SmartThings lab has released support for both Sonos wireless speakers and Hue lighting, I decided to build a custom switch using the SmartThings Arduino shield to interact with the system. The goal was to provide physical control over the systems without using a phone or tablet.
In my case, I wanted to be able to quickly:
- Pause/Play all speakers in my house
- Skip the current song
- Turn groups of lights on and off
- Dim the lights (not yet implemented)
The hardware uses a reclaimed project box from the last century with an Arduino UNO and SmartThings shield inside. It includes two pushbuttons, three switches and a knob.
With the hardware put together, the next step was to create a custom Device Handler for the SmartThings cloud and write the SmartApp.
The Device Handler essentially creates a virtual version of the device. It identifies each button and switch in the hardware to provide the basic inputs and outputs used by my SmartApp. The Device Handler also defines the device’s UI that is presented within the SmartThings mobile app.
The SmartApp determines what happens when someone interacts with the hardware. For example, I define which switches will turn things on and off and which ones will call play and pause. The App also defines the UI used to configure the app and map specific switches to specific Sonos and Hue hardware.
Documentation for writing handlers is lacking and this required a good deal of trial and error. In fact, I have not yet been able to hook up the knob within the handler. Once I do, I will post the bits on Github; but, for now if you want to work on something similar, I found this Arduino Code and corresponding Handler Code quite useful.
Another other bit of documentation that came in handy for how to control the Hue and Sonos devices is this list of device types and capabilities.
I’m not sure if games that have you shouting “bang bang” will improve the public perception of Glass, but they look like they could be fun at a party.
The Long Good Read uses ”Editors, readers and robots” to publish a printed weekly newspaper specifically for customers at the Guardian’s cafe.
from On Algorithmic Newspapers and Publishing:
As we’re very much relying on algorithms to create this paper, to pick the stories and then again to lay them out, we’ve started to think of this as a newspaper built from data, and as an evolving experiment.
Then if we can do it, then its not a very far stretch to allowing anyone to do it. And once the system has learnt what you’re interested in then next step is to just let it carry on for you, with the results arriving on your doorstep to read each week.
Absolutely amazing high speed video from Adam Magyar.
I used to think of Fitbit’s form-factor (and custom charger) as a significant con. Custom bands, pendants and other holders could turn it around for me.
from How Fashion Brands Are Beginning To Take Over The Wearables Market [CES 2014] – PSFK:
Also recently, Fitbit has announced a partnership with Tory Burch to create a collection of stylish wristbands and necklaces for Fitbit Flex. The collection includes wristbands, bracelets, and pendants that can hold the Fitbit Flex tracker.
Back in November, Google released a “sneak peak” of the Glass Development Kit (GDK) which will be in “developer release” later this year.
The GDK, and new Glassware using it, provide the first look at how native applications will be installed and used on Glass. There are a few ways a Glass app can run within Glass.
- Inline within the timeline
- As an immersive experience
- Behind the scenes
In the video below, Timothy Jordan demonstrates the GDK and several new native Glassware apps that launched with the GDK.