So I’m looking at making my first Device Handler for a zigbee device. I have the Ikea 5 button Remote paired with ST and it is sending data (somewhat, I’ll get into that later).
I’ve looked all over the forums and it looks like a lot of people have attempted this and either they gave up, I can’t find it, or they are hoarding the treasure like some greedy dragon…
Here is my beginning device handler. I simply have a configure tile/method that binds an action to the hub (I think).
metadata {
definition (name: "Tradfri Remote", namespace: "w.york", author: "Will York") {
capability "Configuration"
fingerprint endpointId: "01",
profileId: "C05E",
deviceId: "0830",
deviceVersion: "02",
inClusters: "0000, 0001, 0003, 0009, 0B05, 1000",
outClusters: "0003, 0004, 0006, 0008, 0019, 1000"
}
simulator {
// TODO: define status and reply messages here
}
// UI tile definitions
standardTile("configure", "device.needUpdate", inactiveLabel: false, decoration: "flat", width: 1, height: 1) {
state "NO" , label:'', action:"configuration.configure", icon:"http://cdn.device-icons.smartthings.com/secondary/configure@2x.png"
state "YES", label:'', action:"configuration.configure", icon:"https://github.com/erocm123/SmartThingsPublic/raw/master/devicetypes/erocm123/qubino-flush-1d-relay.src/configure@2x.png"
}
main (["configure"])
details(["configure"])
}
def configure() {
log.debug "Config Called"
"zdo bind 0x${device.deviceNetworkId} 1 1 6 {${device.zigbeeId}} {}"
}
def parse(String description) {
log.debug "description is $description"
}
What I get in the logs when I push the configure button is
That is also from only pushing it once, so for whatever reason it gets called twice.
Since there is a parse method in there (stolen from another device handler) it just logs the description which is:
And no matter how many times I push the button it only logs that one description once. I can push any button on the remote and it does not do anything.
What are my next steps here?
Do I have the fingerprint correct?
Here are the logs from my hub when it was connected:
Displayed Text - “zbjoin: {“dni”:“2F2B”,“d”:“90FD9FFFFEE3128D”,“capabilities”:“80”,“endpoints”:[{“simple”:“01 C05E 0830 02 06 0000 0001 0003 0009 0B05 1000 07 0003 0004 0005 0006 0008 0019 1000”,“application”:“11”,“manufacturer”:“IKEA of Sweden”,“model”:“TRADFRI remote control”}],“parent”:“0000”,“joinType”:1}”
Name - zbjoin: {“dni”:“2F2B”,“d”:“90FD9FFFFEE3128D”,“capabilities”:“80”,“endpoints”:[{“simple”:"01 C05E 083
Value - zbjoin: {“dni”:“2F2B”,“d”:“90FD9FFFFEE3128D”,“capabilities”:“80”,“endpoints”:[{“simple”:“01 C05E 0830 02 06 0000 0001 0003 0009 0B05 1000 07 0003 0004 0005 0006 0008 0019 1000”,“application”:“11”,“manufacturer”:“IKEA of Sweden”,“model”:“TRADFRI remote control”}],“parent”:“0000”,“joinType”:1}
Also here is the Zigbee classification document for the Ikea Tradfri Remote:
(Had to host on Google Drive since it is not an image) https://drive.google.com/file/d/1r23g1bBN1z1uvlBKomXefmgJd9jt0-S5/view?usp=sharing
Here is the View of the Device:
I’m also aware of this device handler, but it seems to only work with Ikea Bulbs that are also already paired with ST. https://github.com/RichMercer/SmartThings/blob/master/ikea-tradfri-remote.groovy
There is code in there to make me think that it is supposed to work with buttons, but that isn’t that true, not unless it is in webcore which I haven’t tried yet.
Anyway I think I have all the pieces here, just need someone to help me put them together.
Thanks in advance