Z-Wave Control App
2015/01/06
.
I went all-in on Z-Wave controls when we bought our current house. We’re up to about 25 total controllable lights, switches, appliances, hvac, and other devices. After trying a lot of different things, the controller that I’m currently using is a Vera Lite. It’s pretty good h/w, but the s/w #hurtsmyeyes.
But the one thing the Vera folks did that was quite nice, was to provide a REST/JSON interface to the system. Armed with that, I decided to write my own iOS client.
One of the things that I hate most about the other clients that are out there, is that they generally only show your devices in a scrollable list, sorted by which room they’re in. This seems far from useful and intuitive to me, so the main interface to devices in my app is through a map view (figure 1). The traditional scroll views of devices are available too, they’re just not the main interface.
A map can get crowded though, if you have enough devices. So, for the map view, I implemented an interactive level-of-detail layer to manage access to devices. Based on an MRU list, most-used devices will stay full-size and interactive, while less-used devices will be shrunken down and non-interactive. Intuitively zooming in with a pinch or double tap will get you access to those less-used devices (figure 2). Device positions on the map can be interactively edited as well.
Thanks to Kickstarter et al, I’ve amassed a number of BLE devices that I am itching to use. One, MetaWear, is particularly easy to mess with, and it has an iBeacon mode. I decided to put this to use controlling my garage workbench lights, since those lights are “personal”, in that I’m usually the only one that uses them. This makes them a perfect candidate to control based on proximity to my personal device.
Adding iBeacon support to the app was pretty straightforward, and the range for activation was easily tunable on the MetaWear device by controlling its transmit strength. Now, when I come home or pop out into the garage for something, the lights are on automatically, and when I’ve spent enough time away (10-15s), they turn off again automatically. It’s pretty sweet. You can see the simple interface for managing beacon associations to the right (figure 3).
There’s lots more to add to this app... I’ll update as I make progress.
Single touch for on / off.
Long press for detail callout.
Zoom in to interact with devices that you don’t regularly use.
Navigate from the device list to change the iBeacon associations for a device.