Hi folks!
The skinny: I have Lutron devices connecting to SmartThings over a rooted Wink Hub, and I’m looking for people to help test this out. There are a few jagged edges, but most of the functionality is solid (see known issues below) - still, expect some finagling with the hub during initial setup.
Currently, this is working with Pico remote controls, which can be used as both minimotes and virtual dimmers (e.g. for lighting control), as well as Caseta in-wall and plug-in dimmers. Other Clear Connect devices should be easy to support, if you’re in the mood to either write them or make hardware donations
The newest version supports pairing Pico remotes directly to Caseta dimmers through the built-in hardware pairing list of the remotes as well as pairing through the hub. You can maintain both types of pairing simultaneously. Once established, a hardware pairing between a Pico and a Caseta is extremely fast and reliable (far faster than going through the SmartThings hub), just like a light switch should be, and will continue to work if SmartThings or your hub experience downtime.
To install:
This is a two part system. You’ll need both the SmartApp and the Wink Hub software. I suggest using this on a Wink Hub you don’t care about, since this may screw it up if something goes wrong.
The SmartApp lives at https://github.com/mbarnathan/SmartWink/tree/master/build. Just copy the smartapp and all device types into the IDE like any other third-party SmartApp. It’s in the Labs category and the installation process is much like the Philips Hue.
The tarball to extract to the Wink Hub currently lives in the GitHub repo: https://github.com/mbarnathan/SmartWink/blob/master/hub_software/binaries.tar.gz
To install that, copy it to the root of the wink hub, gunzip it, and extract the files from the tar. Reboot the hub, and check that everything is running:
[root@flex-dvt ~]# ps | grep smartwink
1150 root {lutron-monitor} /bin/sh /usr/share/smartwink/lutron-monitor -
1169 root {discovery-serve} /bin/sh /usr/share/smartwink/discovery-server
1171 root socat -u UDP4-RECVFROM:1900,ip-add-membership=239.255.255.250:wlan0,fork,ip-pktinfo,reuseaddr SYSTEM:grep -o -E 'urn:schemas-smartwink:device:SmartWink:1\\|ssdp:all\\|ssdp:discover' | xargs -t -n 1 -r /usr/share/smartwink/discovery-respond $SOCAT_PEERADDR $SOCAT_PEERPORT $SOCAT_IP_LOCADDR 1900 $SOCAT_IP_IF
1174 root {subscribe-liste} /bin/bash /usr/share/smartwink/subscribe-listen
1176 root socat TCP-listen:1081,fork,reuseaddr,crnl EXEC:php /usr/share/smartwink/subscribe.php
1217 root {apron-wrapper} /bin/sh /usr/share/smartwink/apron-wrapper
1222 root {apron-monitor} /bin/sh /usr/share/smartwink/apron-monitor -
[root@flex-dvt ~]# curl http://localhost/lutron.php
[{"id":9,"serial":11111111,"name":"Caseta Plug-in Dimmer","type":"PID_DIMMER"},
{"id":10,"serial":22222222,"name":"Caseta Wall Dimmer","type":"WALL_DIMMER"},
{"id":11,"serial":33333333,"name":"3 Button Pico with Raise\/Lower","type":"PICO"}]
(Your output will differ, and will be an empty array if you have nothing paired - but the important thing is that you can connect and don’t get a 404).
With those sanity checks out of the way, start up the app and give it a try!
Known issues:
- Button press events from Pico remotes are usually delivered in one serial read. Occasionally (~10%) they’re split across two reads, and these presses will not be detected yet.
- Devices first install in the “on” state. The device may need to be toggled before it picks up the correct state.
- I’ve sometimes seen it take a minute or two after a device is first installed for it to become responsive. I think the write to /database/smartwink_subscriptions is being buffered, if anyone wants to investigate.
- I have no idea if any of this works with the SmartThings v2 hub.
- The Wink Hub piece needs a proper installer, or firmware. I didn’t package it in this way because I didn’t want to take the chance of bricking my only hub, or running afoul of Wink for redistributing their software.
Looking forward to feedback, and hope this makes people’s setups easier!
Cheers,
Michael