I’ve been working with the GE/Jasco switches a lot and trying to update the DTH’s. From what I see, the older non-plus ones do send a report when they turn on/off, but it’s just a “basic” report that needs to be decoded by the DTH to figure out what happened. Most other Zwave devices send a “binary switch report” when they turn on and off so its easy for the controller to figure out what happened, but the older Jasco switches don’t seem to send that binary report. I had a similar issue with the older Aeotec Micro not updating status, but using a custom DTH that updated its parameters and decoded its report got it to instantly update status.
I noticed when I used the handler I updated based on the Nuttytree DTH, even though its for the newer “zwave plus switches”, its able to parse out an “on” “off” report from the Zwave basic report, and get an “instant” status when you turn it on or off at the switch. When I use the stock Zwave handler, the on/off status is delayed, sometimes by almost a few minutes. I’m thinking it has something to do with these lines of code:
// parse events into attributes
def parse(String description) {
log.debug "description: $description"
def result = null
def cmd = zwave.parse(description, [0x20: 1, 0x25: 1, 0x56: 1, 0x70: 2, 0x72: 2, 0x85: 2])
if (cmd) {
result = zwaveEvent(cmd)
log.debug "Parsed ${cmd} to ${result.inspect()}"
}
I’m sure there’s a way to get the on/off events from those switches out of the basic report on other hubs. I also think something in the Samsung hubs “polls” the switch either periodically or whenever it gets a basic report it doesn’t understand (if using stock DTH). I’m not really sure exactly how that works but imagine other hubs don’t have that. Also, I don’t have the non-plus dimmer switches so can’t speak to how those work.
I’d also imagine if you had a lot of these switches constantly being polled every 10 seconds, that would create a lot of zwave traffic on the network that could impact performance. Probably if its just a handful of switches though, I doubt it would make a noticeable difference though.
Maybe I don’t know all the ins and outs of exactly what’s happening behind the scenes, and I could be off on some of what I wrote. But the bottom line is when I use custom code on these switches, I get instant status, and when I use the stock DTH, I don’t. It’s essential on my one switch to get that status quickly because turning that switch on runs my whole morning wakeup routine in Webcore. And this is why being able to use custom code for device drivers is so important, and what I really worry about is what’s going to happen next year with the IDE phaseout and custom code. If I can’t run custom code and need to rely on only the stock or company supplied handlers, that really would be a deal breaker for me.