Very strange. I would definitely talk to support.
Yet another Ticket submitted. Thanks for everyoneâs input.
specifically regarding the aeons, from the factory they are set to not report, ST doesnât apply the correct parameter settings to change this function as they are capable of instant reporting, I wrote custom DTHâs for them that enables them to report status changes from the physical device.
That would be something I would be interested in. Care to share your device handler?
hereâs the combo unit I use with the aeon dual for bath/fan combosâŠ
metadata {
definition (name: "aeonDualSwitchForBath", namespace: "MikeMaxwell", author: "mike maxwell") {
capability "Switch"
capability "Actuator"
capability "Sensor"
capability "thermostatFanMode"
command "fanOn"
command "fanOff"
attribute "fan", "enum", ["on", "off"]
fingerprint deviceId: "0x1001", inClusters: "0x25,0x31,0x32,0x27,0x70,0x85,0x72,0x86,0x60,0xEF,0x82" , outClusters: "0x82"
}
preferences {
input name: "param80", type: "enum", title: "State change notice:", description: "Type", required: true, options:["Off","Hail","Report"]
input name: "param120", type: "enum", title: "Set trigger mode:", description: "Switch type", required: true, options:["Momentary","Toggle","Three Way"]
}
// tile definitions
tiles {
standardTile("switch", "device.switch", width: 2, height: 2, canChangeIcon: true) {
state "on",label: "On", action: "switch.off", icon: "st.samsung.da.RC_ic_power", backgroundColor:"#53a7c0"
state "off",label: "Off", action: "switch.on", icon: "st.samsung.da.RC_ic_power", backgroundColor:"#ffffff"
}
standardTile("fan", "fan", canChangeIcon: false, decoration: "flat") {
state "on", action: "fanOff",icon: "st.thermostat.fan-on"
state "off", action: "fanOn",icon: "st.thermostat.fan-off"
}
main(["switch"])
details(["switch","fan","refresh"])
}
}
// parse events into attributes
def parse(String description) {
//log.debug "Parsing:${description}"
def result = null
def cmd = zwave.parse(description, [0x60:3, 0x25:1, 0x70:1, 0x72:1])
if (cmd) {
result = createEvent(zwaveEvent(cmd))
}
return result
}
def zwaveEvent(physicalgraph.zwave.Command cmd) {
// Handles all Z-Wave commands we aren't interested in or don't know about
//log.debug "udf:${cmd.inspect()}"
return [:]
}
def zwaveEvent(physicalgraph.zwave.commands.multichannelv3.MultiChannelCmdEncap cmd) {
def ep = cmd.sourceEndPoint
//log.debug "multiReport${cmd.inspect()}"
def map = [:]
if (cmd.commandClass == 32){
//map << [ name: "switch${ep}" ]
if (ep == 1) {
map << [ name: "switch" ]
} else {
map << [ name: "fan" ]
}
if (cmd.parameter == [0]) {
map.value = "off"
}
if (cmd.parameter == [255]) {
map.value = "on"
}
}
//log.info "map:${map}"
return map
}
def on(){
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:1, commandClass:37, command:1, parameter:[255]).format()
}
def off(){
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:1, commandClass:37, command:1, parameter:[0]).format()
}
def on1() {
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:1, commandClass:37, command:1, parameter:[255]).format()
}
def off1() {
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:1, commandClass:37, command:1, parameter:[0]).format()
}
def fanOn() {
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:2, commandClass:37, command:1, parameter:[255]).format()
}
def fanOff() {
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:2, commandClass:37, command:1, parameter:[0]).format()
}
def refresh() {
delayBetween([
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:1, commandClass:37, command:2).format(),
zwave.multiChannelV3.multiChannelCmdEncap(destinationEndPoint:2, commandClass:37, command:2).format()
],500)
}
//capture preference changes
def updated() {
//log.debug "before settings: ${settings.inspect()}, state: ${state.inspect()}"
//get requested reporting preferences
Short p80
switch (settings.param80) {
case "Off":
p80 = 0
break
case "Hail":
p80 = 1
break
default:
p80 = 2 //Report
break
}
//get requested switch function preferences
Short p120
switch (settings.param120) {
case "Momentary":
p120 = 0
break
case "Three Way":
p120 = 2
break
default:
p120 = 1 //Toggle
break
}
//update if the settings were changed
if (p80 != state.param80) {
//log.debug "update 80:${p80}"
state.param80 = p80
return response(zwave.configurationV1.configurationSet(parameterNumber: 80, size: 1, configurationValue: [p80]).format())
}
if (p120 != state.param120) {
//log.debug "update 120:${p120}"
state.param120 = p120
return response(zwave.configurationV1.configurationSet(parameterNumber: 120, size: 1, configurationValue: [p120]).format())
}
//log.debug "after settings: ${settings.inspect()}, state: ${state.inspect()}"
}
Thank you very much. It will help solve the Aeon problems.
I have others for the single dimmer and switch, though the config params and related sections are the same.
I wanted to report back on a discovery that fixed my problem with status update.
Apparently a phantom device creeped into my setup without my knowledge. SmartThings support found it and renamed it so I could find and delete it. Once it was removed all the switches I reported here are now working again, including the Aeons. My hat is off for Supports quick and accurate diagnosis.
Oh those damn orphaned devicesâŠ
You arenât kidding. Where do they come from? Are we supposed to scour over our devices checking for anomalies? Granted I only have about 50 devices but its easy to overlook something that seems to blend in.
At least support spotted it for which I am grateful.
We have no way to find them, unfortunately.
The way I have found them is to run a zwave repair. They will fail (obviously) and the failure will show up with adv address that doesnât match any of my devices.
Then I send an email to support.
Well deleting the Ghost device that SmartThings Support found got my zwave devices back to reporting their status when manually controlled but now a day later the same devices I had problems with are back to not reporting. This is so very frustrating. Got another email into support. Will report back when I have something to report.
EDIT: Did a zwave repair and yet another phantom device has showed up! WHAT THE HECK IS GOING ON?
I figured out how to fix this on my own. I donât know what causes it but for some reason a phantom device has showed up on my system twice in the past several days. Tech support found the first one and made a device out of it so I could delete it. A day later it showed back up again, same device number.
All that you need to do is
Login to the IDE
Go to the Hub utilities
Run a zwave repair
Use the hub log to find the device that failed
Create a device using the ID number that was reported in the log.
Assign the device type to a virtual switch
Reboot the hub (in my case it looked like the hub automatically removed it)
If the hub doesnât get rid of it, go back into the device page and delete the device you created.
Run another zwave repair and you should no longer see the error.
<img src="//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/smartthings/original/3X/a/3/a34cadba17ac044f1f3fc18c36d123e81ae24444.jpg" width=â690â
Outstanding that you figured that out. I was actually going to point you in that direction next. Gotta go through the steps to make sure there arenât other problems.
Great job!
Hi, would you be willing to share the code you wrote for the GE dimmer? Many thanks!
Leon