/** * Copyright 2021 Brian Beaird * * Provides a on/off switch, effectively mimicking a momentary for sending open/close MyQ door commands * * 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: "MyQ Action Switch", namespace: "brbeaird", author: "SmartThings", mnmn: "SmartThings", vid: "generic-switch") { capability "Actuator" capability "Sensor" capability "Switch" } preferences {} tiles(scale: 2) { multiAttributeTile(name:"switch", type: "lighting", width: 6, height: 4, canChangeIcon: true){ tileAttribute ("device.switch", key: "PRIMARY_CONTROL") { attributeState "on", label:'${name}', action:"switch.off", icon:"st.Home.home30", backgroundColor:"#00A0DC", nextState:"turningOff" attributeState "off", label:'${name}', action:"switch.on", icon:"st.Home.home30", backgroundColor:"#FFFFFF", nextState:"turningOn", defaultState: true attributeState "turningOn", label:'Turning On', action:"switch.off", icon:"st.Home.home30", backgroundColor:"#00A0DC", nextState:"turningOn" attributeState "turningOff", label:'Turning Off', action:"switch.on", icon:"st.Home.home30", backgroundColor:"#FFFFFF", nextState:"turningOff" } } standardTile("explicitOn", "device.switch", width: 2, height: 2, decoration: "flat") { state "default", label: "On", action: "switch.on", icon: "st.Home.home30", backgroundColor: "#ffffff" } standardTile("explicitOff", "device.switch", width: 2, height: 2, decoration: "flat") { state "default", label: "Off", action: "switch.off", icon: "st.Home.home30", backgroundColor: "#ffffff" } main(["switch"]) details(["switch", "explicitOn", "explicitOff"]) } } def parse(description) { } def on() { sendEvent(name: "switch", value: "on", isStateChange: true) } def off() { sendEvent(name: "switch", value: "off", isStateChange: true) } def installed() { on() } def showVersion(){ return "1.0.0" }