Swann One Key Fob SWO-KEF1PA - Driver Request

Swann One Key Fob SWO-KEF1PA
Driver request. Port from smartthings

Hi Guys,

I have about 5 of these. One for each of the family to set modes and arm security or turn on house lights via RM.

Below is the Smartthings Device Handler Code

/**

  • Swann One Key Fob
  • v:1.00 - 12/31/2015 - Initial Configuraton
  • v:1.01 - 03/11/2019 - Added numberofButtons reporting
  • Copyright 2015 Rudimar Prunzel
  • Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  •  http://www.apache.org/licenses/LICENSE-2.0
    
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.

*/
metadata {
definition (name: "Swann One Key Fob", namespace: "RudiP", author: "Rudimar Prunzel") {
capability "Button"
capability "Configuration"

    fingerprint profileId: "0104", deviceId: "0401", inClusters: "0000,0003,0500", outClusters: "0003,0501"
}

tiles {
    standardTile("button", "device.button", width: 2, height: 2) {
	    state "default", label: "", icon: "st.unknown.zwave.remote-controller", backgroundColor: "#ffffff"
    }
}
main (["button"])
details (["button"])

}

def parse(String description) {
if (description?.startsWith('enroll request')) {
List cmds = enrollResponse()
log.debug "enroll response: ${cmds}"
def result = cmds?.collect { new physicalgraph.device.HubAction(it) }
return result
} else if (description?.startsWith('catchall:')) {
def msg = zigbee.parse(description)
log.debug msg
buttonPush(msg.data[0])
} else {
log.debug "parse description: $description"
}
}

def buttonPush(button){
//Button Numbering vs positioning is slightly counterintuitive
//Bottom Left Button (Unlock) = 0 and goes counterclockwise
//Securifi Numbering - 0 = Unlock, 1 = * (only used to join), 2 = Home, 3 = Lock
//For ST App Purposes 1=Lock, 2=Home, 3=Unlock , 4 = * (only used to join)
def name = null
if (button == 0) {
//Home - ST Button 1
name = "1"
def currentST = device.currentState("button")?.value
log.debug "Home button Pushed"
} else if (button == 3) {
//Away - ST Button 2
name = "2"
def currentST = device.currentState("button2")?.value
log.debug "Away button Pushed"
} else if (button == 2) {
//Night - ST Button 3
name = "3"
def currentST = device.currentState("button3")?.value
log.debug "Night button Pushed"
} else {
//Panic - ST Button 4
name = "4"
def currentST = device.currentState("button4")?.value
log.debug "Panic button Pushed"

}

def result = createEvent(name: "button", value: "pushed", data: [buttonNumber: name], descriptionText: "$device.displayName button $name was pushed", isStateChange: true)
log.debug "Parse returned ${result?.descriptionText}"
return result

}

def enrollResponse() {
log.debug "Sending enroll response"
[
"raw 0x500 {01 23 00 00 00}", "delay 200",
"send 0x${device.deviceNetworkId} ${endpointId} 1"
]
}

def configure(){
log.debug "Config Called"
def configCmds = [
"zcl global write 0x500 0x10 0xf0 {${device.zigbeeId}}", "delay 200",
"send 0x${device.deviceNetworkId} ${endpointId} 1", "delay 1500",
"zdo bind 0x${device.deviceNetworkId} ${endpointId} 0x01 0x0501 {${device.zigbeeId}} {}", "delay 500",
"zdo bind 0x${device.deviceNetworkId} ${endpointId} 1 1 {${device.zigbeeId}} {}"
]
return configCmds
}

def installed() {
initialize()
}

def updated() {
initialize()
}

def initialize() {
sendEvent(name: "numberOfButtons", value: 4)
}

Have you try to put in Hubitat in device and this line from
def result = cmds?.collect { new physicalgraph.device.HubAction(it) }
to this
def result = cmds?.collect { new hubitat.device.HubAction(it) }
and see if that works? You need to change Physicalgraph.device.HubAction to hubitat.device.HubAction. Try that and see if it works.

No. I didnt.
New to Hubitat. Been on Smartthings for a few years.

Let me try tomorrow.
Cheers

Hubitat’s Button implementation is slightly different that SmartThings. You will also need to modify the createEvent() call to follow Hubitat’s Button implementation.

Can you reference another button GitHub link that I can use to make the button implementation changes.
Not a pro in coding, but happy to try with guidance

Take a look in this WiKi post for code porting tips.

And specifically for Button devices...

@ogiewon can you show me what you mean by changing the CreateEvent from what it is now to what it should me? I look at the buttons implementation and not understanding it but trying to learn. Thanks

@ozsmarthome, @leeonestop

Here is a version that has the Capability definition, the createEvent() call, and the "physicalgraph" to "hubitat" changes all complete. I have no way to test or debug this driver, but it should be a good start.

/**
 *  Swann One Key Fob
 *
 *  v:1.00 - 12/31/2015 - Initial Configuraton
 *  v:1.01 - 03/11/2019 - Added numberofButtons reporting
 *  v:1.02 - 07/21/2019 - Initial attempt to port to Hubitat - Dan Ogorchock
 *
 *  Copyright 2015 Rudimar Prunzel
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 *  in compliance with the License. You may obtain a copy of the License at:
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
 *  on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
 *  for the specific language governing permissions and limitations under the License.
 *
 */
metadata {
	definition (name: "Swann One Key Fob", namespace: "RudiP", author: "Rudimar Prunzel") {
		capability "Pushable Button" //Modified for Hubitat - DGO
		capability "Configuration"

        fingerprint profileId: "0104", deviceId: "0401", inClusters: "0000,0003,0500", outClusters: "0003,0501"
    }

    tiles {
	    standardTile("button", "device.button", width: 2, height: 2) {
		    state "default", label: "", icon: "st.unknown.zwave.remote-controller", backgroundColor: "#ffffff"
        }
    }
    main (["button"])
    details (["button"])
}

def parse(String description) {	       	            
    if (description?.startsWith('enroll request')) {        
        List cmds = enrollResponse()
        log.debug "enroll response: ${cmds}"
        def result = cmds?.collect { new hubitat.device.HubAction(it) } //Modified for Hubitat - DGO
        return result    
    } else if (description?.startsWith('catchall:')) {
        def msg = zigbee.parse(description)
        log.debug msg
        buttonPush(msg.data[0])
    } else {
        log.debug "parse description: $description"
    }    
}

def buttonPush(button){
    //Button Numbering vs positioning is slightly counterintuitive
    //Bottom Left Button (Unlock) = 0 and goes counterclockwise
    //Securifi Numbering - 0 = Unlock, 1 = * (only used to join), 2 = Home, 3 = Lock
    //For ST App Purposes 1=Lock, 2=Home, 3=Unlock , 4 = * (only used to join)
    def name = null
    if (button == 0) {
        //Home - ST Button 1
        name = "1"
        def currentST = device.currentState("button")?.value
        log.debug "Home button Pushed"           
    } else if (button == 3) {
    	//Away - ST Button 2
        name = "2"
        def currentST = device.currentState("button2")?.value
        log.debug "Away button Pushed"        
    } else if (button == 2) {
        //Night - ST Button 3
        name = "3"
     	def currentST = device.currentState("button3")?.value
        log.debug "Night button Pushed"         
    } else {
        //Panic - ST Button 4
        name = "4"
     	def currentST = device.currentState("button4")?.value
        log.debug "Panic button Pushed"         
    
    }

    //Modified for Hubitat - DGO
    //def result = createEvent(name: "button", value: "pushed", data: [buttonNumber: name], descriptionText: "$device.displayName button $name was pushed", isStateChange: true)
    def result = createEvent(name: "pushed", value: name, isStateChange: true) 
    
    log.debug "Parse returned ${result?.descriptionText}"
    return result
}


def enrollResponse() {
    log.debug "Sending enroll response"
    [            
    "raw 0x500 {01 23 00 00 00}", "delay 200",
    "send 0x${device.deviceNetworkId} ${endpointId} 1"        
    ]
}


def configure(){
    log.debug "Config Called"
    def configCmds = [
    "zcl global write 0x500 0x10 0xf0 {${device.zigbeeId}}", "delay 200",
    "send 0x${device.deviceNetworkId} ${endpointId} 1", "delay 1500",
    "zdo bind 0x${device.deviceNetworkId} ${endpointId} 0x01 0x0501 {${device.zigbeeId}} {}", "delay 500",
    "zdo bind 0x${device.deviceNetworkId} ${endpointId} 1 1 {${device.zigbeeId}} {}"
    ]
    return configCmds
}

def installed() {
initialize()
}

def updated() {
initialize()
}

def initialize() {
sendEvent(name: "numberOfButtons", value: 4)
}
1 Like

Thanks you for the update driver.

Does it work?

It Works. (quality and consistency TBC)
Need to pair it and watch the logs, then add manually with Zigbee id and net id.
Logs lok ok, but there seem to be delays in using it with a basic button controller and there is a long delay in updating the device status on device page (as in the last button pushed, take 30+ secs or a manual webpage refresh)

pushed 2 DEVICE 2019-07-22 21:32:37.882 AEST
pushed 3 DEVICE 2019-07-22 21:32:37.873 AEST
pushed 4 DEVICE 2019-07-22 21:32:37.846 AEST
pushed 3 DEVICE 2019-07-22 21:31:42.768 AEST
pushed 4 DEVICE 2019-07-22 21:31:22.821 AEST
pushed 1 DEVICE 2019-07-22 21:31:20.775 AEST
pushed 2 DEVICE 2019-07-22 21:31:20.737 AEST
pushed 4 DEVICE 2019-07-22 21:31:00.789 AEST
pushed 3 DEVICE 2019-07-22 21:30:57.099 AEST
pushed 1 DEVICE 2019-07-22 21:30:31.832 AEST

Current States

  • numberOfButtons : 4
  • pushed : 3

Device Details

|Create Time|2019-07-22 16:38:06 AEST|
|Last Update Time|2019-07-22 17:02:25 AEST|
|Last Activity At|2019-07-22 21:32:37 AEST|

Button 4 is instantaneous. 1Sec
Button 3 is 8-14Secs???
Button 2 is 8-14Secs???
Button 1 is 8-14Secs???

Really strange...
same model Lights are being used. Same command (off) being used in button controller for all.

Button 4 is working instantly and LED does not flash on the remote when it's pressed.
Button 3, 2 and 1 takes 8-15 seconds to take action once pressed and LED flashes after the 8-15secs

Glad to hear it 'sort of works' :wink:

Are there any errors in the live logs?

When you paired the device, did it auto-assign the new driver? Or did you have to manually change the driver and click save? Did you click CONFIGURE in the device details page with the physical device awake and ready to receive the configuration commands?

1 Like

dev:392019-07-22 22:12:41.815 debugParse returned null

dev:392019-07-22 22:12:41.813 debugHome button Pushed

dev:392019-07-22 22:12:41.798 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:12:41.795 debugParse returned null

dev:392019-07-22 22:12:41.792 debugPanic button Pushed

dev:392019-07-22 22:12:41.780 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:12:21.884 debugParse returned null

dev:392019-07-22 22:12:21.881 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 22:12:21.877 debugPanic button Pushed

dev:392019-07-22 22:12:21.875 debugSending enroll response

dev:392019-07-22 22:12:21.853 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:12:18.888 debugParse returned null

dev:392019-07-22 22:12:18.885 debugHome button Pushed

dev:392019-07-22 22:12:18.870 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:11:58.941 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 22:11:58.938 debugSending enroll response

dev:392019-07-22 22:11:56.822 debugParse returned null

dev:392019-07-22 22:11:56.818 debugAway button Pushed

dev:392019-07-22 22:11:56.800 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:11:36.828 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 22:11:36.825 debugSending enroll response

dev:392019-07-22 22:11:30.977 debugParse returned null

dev:392019-07-22 22:11:30.975 debugNight button Pushed

dev:392019-07-22 22:11:30.961 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:11:11.054 debugParse returned null

dev:392019-07-22 22:11:11.051 debugPanic button Pushed

dev:392019-07-22 22:11:11.039 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 22:11:11.027 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 22:11:11.024 debugSending enroll response

dev:392019-07-22 21:44:26.194 debugParse returned null

dev:392019-07-22 21:44:26.191 debugNight button Pushed

dev:392019-07-22 21:44:26.175 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:44:06.203 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:44:06.200 debugSending enroll response

dev:392019-07-22 21:44:00.700 debugParse returned null

dev:392019-07-22 21:44:00.697 debugAway button Pushed

dev:392019-07-22 21:44:00.684 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:43:40.727 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:43:40.721 debugSending enroll response

dev:392019-07-22 21:43:37.492 debugParse returned null

dev:392019-07-22 21:43:37.490 debugHome button Pushed

dev:392019-07-22 21:43:37.455 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:43:17.491 debugParse returned null

dev:392019-07-22 21:43:17.488 debugPanic button Pushed

dev:392019-07-22 21:43:17.475 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:43:17.472 debugSending enroll response

dev:392019-07-22 21:43:17.469 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:41:22.502 debugParse returned null

dev:392019-07-22 21:41:22.499 debugNight button Pushed

dev:392019-07-22 21:41:22.482 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0xdf, 0x5d, 0xb3, 0xd9, 0x21, 0x06, 0x00, 0x4b, 0x12, 0x00, 0x80], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: false, sourceEndpoint: 0x00, profileId: 0x0000, command: 0x00, clusterId: 0x0013, destinationEndpoint: 0x00, options: 0x0040)

dev:392019-07-22 21:41:09.222 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:41:09.219 debugSending enroll response

dev:392019-07-22 21:40:47.175 debugParse returned null

dev:392019-07-22 21:40:47.172 debugPanic button Pushed

dev:392019-07-22 21:40:47.162 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:40:47.158 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:40:47.154 debugSending enroll response

dev:392019-07-22 21:40:31.479 debugParse returned null

dev:392019-07-22 21:40:31.476 debugAway button Pushed

dev:392019-07-22 21:40:31.462 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:40:11.506 debugParse returned null

dev:392019-07-22 21:40:11.503 debugPanic button Pushed

dev:392019-07-22 21:40:11.496 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:40:11.493 debugSending enroll response

dev:392019-07-22 21:40:11.490 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:39:56.366 debugParse returned null

dev:392019-07-22 21:39:56.363 debugHome button Pushed

dev:392019-07-22 21:39:56.349 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:39:36.433 debugParse returned null

dev:392019-07-22 21:39:36.430 debugPanic button Pushed

dev:392019-07-22 21:39:36.417 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:39:36.413 debugSending enroll response

dev:392019-07-22 21:39:36.409 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:39:06.410 debugParse returned null

dev:392019-07-22 21:39:06.407 debugNight button Pushed

dev:392019-07-22 21:39:06.392 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:38:46.447 debugParse returned null

dev:392019-07-22 21:38:46.444 debugPanic button Pushed

dev:392019-07-22 21:38:46.433 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:38:46.430 debugSending enroll response

dev:392019-07-22 21:38:46.427 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:38:40.496 debugParse returned null

dev:392019-07-22 21:38:40.493 debugNight button Pushed

dev:392019-07-22 21:38:40.460 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:38:20.404 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:38:20.401 debugSending enroll response

dev:392019-07-22 21:32:37.870 debugParse returned null

dev:392019-07-22 21:32:37.867 debugAway button Pushed

dev:392019-07-22 21:32:37.864 debugParse returned null

dev:392019-07-22 21:32:37.861 debugNight button Pushed

dev:392019-07-22 21:32:37.852 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:32:37.840 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:32:37.837 debugParse returned null

dev:392019-07-22 21:32:37.834 debugPanic button Pushed

dev:392019-07-22 21:32:37.820 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:32:17.868 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:32:17.865 debugSending enroll response

dev:392019-07-22 21:31:42.765 debugParse returned null

dev:392019-07-22 21:31:42.762 debugNight button Pushed

dev:392019-07-22 21:31:42.732 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:31:22.821 debugParse returned null

dev:392019-07-22 21:31:22.817 debugPanic button Pushed

dev:392019-07-22 21:31:22.813 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:31:22.810 debugSending enroll response

dev:392019-07-22 21:31:22.806 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:31:20.769 debugParse returned null

dev:392019-07-22 21:31:20.766 debugHome button Pushed

dev:392019-07-22 21:31:20.736 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:31:20.731 debugParse returned null

dev:392019-07-22 21:31:20.727 debugAway button Pushed

dev:392019-07-22 21:31:20.712 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:31:00.786 debugParse returned null

dev:392019-07-22 21:31:00.783 debugPanic button Pushed

dev:392019-07-22 21:31:00.766 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:31:00.761 debugSending enroll response

dev:392019-07-22 21:31:00.758 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:30:57.091 debugParse returned null

dev:392019-07-22 21:30:57.088 debugNight button Pushed

dev:392019-07-22 21:30:57.073 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:30:37.090 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:30:37.087 debugSending enroll response

dev:392019-07-22 21:30:31.829 debugParse returned null

dev:392019-07-22 21:30:31.826 debugHome button Pushed

dev:392019-07-22 21:30:31.809 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:30:31.803 debugParse returned null

dev:392019-07-22 21:30:31.800 debugAway button Pushed

dev:392019-07-22 21:30:31.786 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:30:11.844 debugParse returned null

dev:392019-07-22 21:30:11.841 debugPanic button Pushed

dev:392019-07-22 21:30:11.834 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:30:11.831 debugSending enroll response

dev:392019-07-22 21:30:11.826 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:29:44.358 debugParse returned null

dev:392019-07-22 21:29:44.355 debugHome button Pushed

dev:392019-07-22 21:29:44.347 debugParse returned null

dev:392019-07-22 21:29:44.344 debugAway button Pushed

dev:392019-07-22 21:29:44.333 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:29:44.312 debugParse returned null

dev:392019-07-22 21:29:44.309 debugNight button Pushed

dev:392019-07-22 21:29:44.306 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:29:44.294 debugParse returned null

dev:392019-07-22 21:29:44.291 debugPanic button Pushed

dev:392019-07-22 21:29:44.281 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:29:44.248 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:29:24.299 debugParse returned null

dev:392019-07-22 21:29:24.296 debugPanic button Pushed

dev:392019-07-22 21:29:24.284 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:29:24.282 debugSending enroll response

dev:392019-07-22 21:29:24.272 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:25:49.689 debugParse returned null

dev:392019-07-22 21:25:49.686 debugHome button Pushed

dev:392019-07-22 21:25:49.672 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:25:29.687 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:25:29.683 debugSending enroll response

dev:392019-07-22 21:25:06.949 debugParse returned null

dev:392019-07-22 21:25:06.946 debugAway button Pushed

dev:392019-07-22 21:25:06.933 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:24:46.969 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:24:46.964 debugSending enroll response

dev:392019-07-22 21:24:44.527 debugParse returned null

dev:392019-07-22 21:24:44.523 debugHome button Pushed

dev:392019-07-22 21:24:44.502 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x5ddf, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-07-22 21:24:24.474 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x5DDF null 1]

dev:392019-07-22 21:24:24.470 debugSending enroll response

How did you go with this @ozsmarthome?

@jchurch Looks to be falling offline and not being rediscovered.
Only way to get back is re-pair again by pressing the pair button on the back of it and starting discovery.
It is rediscovered as the same device id/zigbee id as prior.
Will attach logs when I notice when the device falling offline.

Below is logs of the actions of pressing the buttons and delays of approx 20-30 seconds for the action to take place post the enroll response (Enroll response is where the hub first notices action of me pressing the button). Button pushed action is not taking place for 20-30 seconds post the button actually being pressed and the logs noticing the physical action.
Looks like device, driver or hub has a 200 millisecond delay in the command. "enroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]"

dev:392019-08-07 21:17:31.662 debugParse returned null

dev:392019-08-07 21:17:31.658 debugHome button Pushed

dev:392019-08-07 21:17:31.601 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:17:11.624 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:17:11.619 debugSending enroll response

dev:392019-08-07 21:16:50.158 debugParse returned null

dev:392019-08-07 21:16:50.153 debugHome button Pushed

dev:392019-08-07 21:16:50.089 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:16:30.097 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:16:30.092 debugSending enroll response

dev:392019-08-07 21:16:12.770 debugParse returned null

dev:392019-08-07 21:16:12.765 debugNight button Pushed

dev:392019-08-07 21:16:12.701 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:15:52.740 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:15:52.735 debugSending enroll response

dev:392019-08-07 21:12:54.558 debugParse returned null

dev:392019-08-07 21:12:54.551 debugPanic button Pushed

dev:392019-08-07 21:12:54.481 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:12:54.471 debugSending enroll response

dev:392019-08-07 21:12:54.436 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x04, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:12:36.347 debugParse returned null

dev:392019-08-07 21:12:36.344 debugNight button Pushed

dev:392019-08-07 21:12:36.229 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:12:16.190 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:12:16.185 debugSending enroll response

dev:392019-08-07 21:12:01.944 debugParse returned null

dev:392019-08-07 21:12:01.941 debugHome button Pushed

dev:392019-08-07 21:12:01.882 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:11:41.860 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:11:41.855 debugSending enroll response

dev:392019-08-07 21:11:34.072 debugParse returned null

dev:392019-08-07 21:11:34.069 debugAway button Pushed

dev:392019-08-07 21:11:34.004 debugSmartShield(text: null, manufacturerId: 0x0000, direction: 0x00, data: [0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], number: null, isManufacturerSpecific: false, messageType: 0x00, senderShortId: 0x27f9, isClusterSpecific: true, sourceEndpoint: 0x01, profileId: 0x0104, command: 0x00, clusterId: 0x0501, destinationEndpoint: 0x01, options: 0x0040)

dev:392019-08-07 21:11:14.029 debugenroll response: [raw 0x500 {01 23 00 00 00}, delay 200, send 0x27F9 null 1]

dev:392019-08-07 21:11:14.024 debugSending enroll response

@ogiewon
Dan your taught would be welcome and appreciated :wink:

1 Like

Unfortunately, I am not a Zigbee expert. Wish I could be more help.

1 Like

@ozsmarthome Did you make any progress with the fobs? I've just taken delivery of my HE and was going to set it up this weekend. My local Cashies has some fobs as part of a kit and was considering buying if they work.