Modifying 'Publication Requests for Lumi Touch Switch'

This commit is contained in:
Ngoc Hoang
2015-09-08 00:06:37 -05:00
parent 04c19990cf
commit 7d90555006
4 changed files with 103 additions and 67 deletions

View File

@@ -16,7 +16,7 @@
metadata {
definition (name: "Lumi Switch 1", namespace: "lumivietnam", author: "Lumi Vietnam") {
capability "Actuator"
capability "Configuration"
//capability "Configuration"
capability "Refresh"
capability "Sensor"
capability "Switch"
@@ -26,7 +26,7 @@ metadata {
command "on1"
command "off1"
fingerprint profileId: "0104", deviceId: "0100", deviceVersion: "1", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ1"
fingerprint profileId: "0104", deviceId: "0100", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ1"
}
simulator {
@@ -84,27 +84,30 @@ def parse(String description) {
// handle commands
def configure() {
log.debug "Executing 'configure'"
//Config binding and report for each endpoint
[
"zcl global send-me-a-report 6 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 1500"
"zdo bind 0x${device.deviceNetworkId} 1 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1"
]
}
def refresh() {
log.debug "Executing 'refresh'"
//Read Attribute On Off Value
[
"st rattr 0x${device.deviceNetworkId} 1 6 0", "delay 500"
"st rattr 0x${device.deviceNetworkId} 1 0x0006 0"
]
}
def on1() {
log.debug "Executing 'on1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}"
}
def off1() {
log.debug "Executing 'off1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}"
}
def isKnownDescription(description) {

View File

@@ -16,7 +16,7 @@
metadata {
definition (name: "Lumi Switch 2", namespace: "lumivietnam", author: "Lumi Vietnam") {
capability "Actuator"
capability "Configuration"
//capability "Configuration"
capability "Refresh"
capability "Sensor"
capability "Switch"
@@ -32,7 +32,7 @@ metadata {
command "onAll"
command "offAll"
fingerprint profileId: "0104", deviceId: "0100", deviceVersion: "1", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ2"
fingerprint profileId: "0104", deviceId: "0100", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ2"
}
simulator {
@@ -91,7 +91,7 @@ def parse(String description) {
state.sw2 = finalResult.value;
sendEvent(name: "switch2", value: finalResult.value=="on"?"on2":"off2")
}
//log.debug "curState sw1: ${state.sw1}, sw2: ${state.sw2}, sw3: ${state.sw3}"
//update state for switchAll Tile
if (state.sw1 == "off" && state.sw2 == "off") {
//log.debug "offalll"
sendEvent(name: "switchAll", value: "offAll")
@@ -111,53 +111,60 @@ def parse(String description) {
// handle commands
def configure() {
log.debug "Executing 'configure'"
//Config binding and report for each endpoint
[
"zcl global send-me-a-report 6 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 1500"
"zdo bind 0x${device.deviceNetworkId} 1 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 500",
"zdo bind 0x${device.deviceNetworkId} 3 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 3"
]
}
def refresh() {
log.debug "Executing 'refresh'"
//Read Attribute On Off Value of each endpoint
[
"st rattr 0x${device.deviceNetworkId} 1 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 3 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 1 0x0006 0", "delay 200",
"st rattr 0x${device.deviceNetworkId} 3 0x0006 0"
]
}
def on1() {
log.debug "Executing 'on1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}"
}
def off1() {
log.debug "Executing 'off1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}"
}
def on2() {
log.debug "Executing 'on2' 0x${device.deviceNetworkId} endpoint 3"
"st cmd 0x${device.deviceNetworkId} 3 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 3 0x0006 1 {}"
}
def off2() {
log.debug "Executing 'off2' 0x${device.deviceNetworkId} endpoint 3"
"st cmd 0x${device.deviceNetworkId} 3 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 3 0x0006 0 {}"
}
def onAll() {
log.debug "Executing 'onAll' 0x${device.deviceNetworkId} endpoint 1 3"
[
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 3 6 1 {}", "delay 500"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 3 0x0006 1 {}"
]
}
def offAll() {
log.debug "Executing 'offAll' 0x${device.deviceNetworkId} endpoint 1 3"
[
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 3 6 0 {}", "delay 500"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 3 0x0006 0 {}"
]
}

View File

@@ -16,7 +16,7 @@
metadata {
definition (name: "Lumi Switch 3", namespace: "lumivietnam", author: "Lumi Vietnam") {
capability "Actuator"
capability "Configuration"
//capability "Configuration"
capability "Refresh"
capability "Sensor"
capability "Switch"
@@ -35,7 +35,7 @@ metadata {
command "onAll"
command "offAll"
fingerprint profileId: "0104", deviceId: "0100", deviceVersion: "1", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ3"
fingerprint profileId: "0104", deviceId: "0100", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ3"
}
simulator {
@@ -102,7 +102,7 @@ def parse(String description) {
state.sw3 = finalResult.value;
sendEvent(name: "switch3", value: finalResult.value=="on"?"on3":"off3")
}
//log.debug "curState sw1: ${state.sw1}, sw2: ${state.sw2}, sw3: ${state.sw3}"
//update state for switchAll Tile
if (state.sw1 == "off" && state.sw2 == "off" && state.sw3 == "off") {
//log.debug "offalll"
sendEvent(name: "switchAll", value: "offAll")
@@ -122,66 +122,77 @@ def parse(String description) {
// handle commands
def configure() {
log.debug "Executing 'configure'"
//Config binding and report for each endpoint
[
"zcl global send-me-a-report 6 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 1500"
"zdo bind 0x${device.deviceNetworkId} 1 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 500",
"zdo bind 0x${device.deviceNetworkId} 3 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 3", "delay 500",
"zdo bind 0x${device.deviceNetworkId} 5 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 5"
]
}
def refresh() {
log.debug "Executing 'refresh'"
//Read Attribute On Off Value of each endpoint
[
"st rattr 0x${device.deviceNetworkId} 1 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 3 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 5 6 0", "delay 500"
"st rattr 0x${device.deviceNetworkId} 1 0x0006 0", "delay 200",
"st rattr 0x${device.deviceNetworkId} 3 0x0006 0", "delay 200",
"st rattr 0x${device.deviceNetworkId} 5 0x0006 0"
]
}
def on1() {
log.debug "Executing 'on1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}"
}
def off1() {
log.debug "Executing 'off1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}"
}
def on2() {
log.debug "Executing 'on2' 0x${device.deviceNetworkId} endpoint 3"
"st cmd 0x${device.deviceNetworkId} 3 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 3 0x0006 1 {}"
}
def off2() {
log.debug "Executing 'off2' 0x${device.deviceNetworkId} endpoint 3"
"st cmd 0x${device.deviceNetworkId} 3 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 3 0x0006 0 {}"
}
def on3() {
log.debug "Executing 'on3' 0x${device.deviceNetworkId} endpoint 5"
"st cmd 0x${device.deviceNetworkId} 5 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 5 0x0006 1 {}"
}
def off3() {
log.debug "Executing 'off3' 0x${device.deviceNetworkId} endpoint 5"
"st cmd 0x${device.deviceNetworkId} 5 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 5 0x0006 0 {}"
}
def onAll() {
log.debug "Executing 'onAll' 0x${device.deviceNetworkId} endpoint 1 3 5"
[
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 3 6 1 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 5 6 1 {}", "delay 500"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 3 0x0006 1 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 5 0x0006 1 {}"
]
}
def offAll() {
log.debug "Executing 'offAll' 0x${device.deviceNetworkId} endpoint 1 3 5"
[
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 3 6 0 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 5 6 0 {}", "delay 500"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 3 0x0006 0 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 5 0x0006 0 {}"
]
}

View File

@@ -16,7 +16,7 @@
metadata {
definition (name: "Lumi Switch 4", namespace: "lumivietnam", author: "Lumi Vietnam") {
capability "Actuator"
capability "Configuration"
//capability "Configuration"
capability "Refresh"
capability "Sensor"
capability "Switch"
@@ -38,7 +38,7 @@ metadata {
command "onAll"
command "offAll"
fingerprint profileId: "0104", deviceId: "0100", deviceVersion: "1", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ4"
fingerprint profileId: "0104", deviceId: "0100", inClusters: "0000, 0003, 0006", outClusters: "0000", manufacturer: "Lumi Vietnam", model: "LM-SZ4"
}
simulator {
@@ -113,7 +113,7 @@ def parse(String description) {
state.sw4 = finalResult.value;
sendEvent(name: "switch4", value: finalResult.value=="on"?"on4":"off4")
}
//log.debug "curState sw1: ${state.sw1}, sw2: ${state.sw2}, sw3: ${state.sw3}"
//update state for switchAll Tile
if (state.sw1 == "off" && state.sw2 == "off" && state.sw3 == "off" && state.sw4 == "off") {
//log.debug "offalll"
sendEvent(name: "switchAll", value: "offAll")
@@ -133,79 +133,94 @@ def parse(String description) {
// handle commands
def configure() {
log.debug "Executing 'configure'"
//Config binding and report for each endpoint
[
"zcl global send-me-a-report 6 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 1500"
"zdo bind 0x${device.deviceNetworkId} 1 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 1", "delay 500",
"zdo bind 0x${device.deviceNetworkId} 3 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 3", "delay 500",
"zdo bind 0x${device.deviceNetworkId} 5 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 5", "delay 500",
"zdo bind 0x${device.deviceNetworkId} 7 1 0x0006 {${device.zigbeeId}} {}", "delay 200",
"zcl global send-me-a-report 0x0006 0 0x10 0 600 {01}",
"send 0x${device.deviceNetworkId} 1 7"
]
}
def refresh() {
log.debug "Executing 'refresh'"
//Read Attribute On Off Value of each endpoint
[
"st rattr 0x${device.deviceNetworkId} 1 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 3 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 5 6 0", "delay 500",
"st rattr 0x${device.deviceNetworkId} 7 6 0", "delay 500"
"st rattr 0x${device.deviceNetworkId} 1 0x0006 0", "delay 200",
"st rattr 0x${device.deviceNetworkId} 3 0x0006 0", "delay 200",
"st rattr 0x${device.deviceNetworkId} 5 0x0006 0", "delay 200",
"st rattr 0x${device.deviceNetworkId} 7 0x0006 0"
]
}
def on1() {
log.debug "Executing 'on1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}"
}
def off1() {
log.debug "Executing 'off1' 0x${device.deviceNetworkId} endpoint 1"
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}"
}
def on2() {
log.debug "Executing 'on2' 0x${device.deviceNetworkId} endpoint 3"
"st cmd 0x${device.deviceNetworkId} 3 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 3 0x0006 1 {}"
}
def off2() {
log.debug "Executing 'off2' 0x${device.deviceNetworkId} endpoint 3"
"st cmd 0x${device.deviceNetworkId} 3 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 3 0x0006 0 {}"
}
def on3() {
log.debug "Executing 'on3' 0x${device.deviceNetworkId} endpoint 5"
"st cmd 0x${device.deviceNetworkId} 5 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 5 0x0006 1 {}"
}
def off3() {
log.debug "Executing 'off3' 0x${device.deviceNetworkId} endpoint 5"
"st cmd 0x${device.deviceNetworkId} 5 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 5 0x0006 0 {}"
}
def on4() {
log.debug "Executing 'on4' 0x${device.deviceNetworkId} endpoint 7"
"st cmd 0x${device.deviceNetworkId} 7 6 1 {}"
"st cmd 0x${device.deviceNetworkId} 7 0x0006 1 {}"
}
def off4() {
log.debug "Executing 'off4' 0x${device.deviceNetworkId} endpoint 7"
"st cmd 0x${device.deviceNetworkId} 7 6 0 {}"
"st cmd 0x${device.deviceNetworkId} 7 0x0006 0 {}"
}
def onAll() {
log.debug "Executing 'onAll' 0x${device.deviceNetworkId} endpoint 1 3 5 7"
[
"st cmd 0x${device.deviceNetworkId} 1 6 1 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 3 6 1 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 5 6 1 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 7 6 1 {}", "delay 500"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 1 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 3 0x0006 1 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 5 0x0006 1 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 7 0x0006 1 {}"
]
}
def offAll() {
log.debug "Executing 'offAll' 0x${device.deviceNetworkId} endpoint 1 3 5 7"
[
"st cmd 0x${device.deviceNetworkId} 1 6 0 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 3 6 0 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 5 6 0 {}", "delay 500",
"st cmd 0x${device.deviceNetworkId} 7 6 0 {}", "delay 500"
"st cmd 0x${device.deviceNetworkId} 1 0x0006 0 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 3 0x0006 0 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 5 0x0006 0 {}", "delay 200",
"st cmd 0x${device.deviceNetworkId} 7 0x0006 0 {}"
]
}