/** * Enhanced Virtual Presence Sensor * * Copyright 2019 Joel Wetzel * * 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: "Enhanced Virtual Presence Sensor", namespace: "joelwetzel", author: "Joel Wetzel") { capability "Actuator" capability "Switch" capability "PresenceSensor" capability "Sensor" command "arrived" command "departed" } } def parse(String description) { def pair = description.split(":") createEvent(name: pair[0].trim(), value: pair[1].trim()) } def arrived() { on() } def departed() { off() } def on() { sendEvent(name: "switch", value: "on") sendEvent(name: "presence", value: "present") } def off() { sendEvent(name: "switch", value: "off") sendEvent(name: "presence", value: "not present") }