Shutoff, silence, timeout Konnected alarm siren

After several hours of searching and troubleshooting, I need to ask for help: I can't figure out how to shut off the siren after X time (example, after 30 seconds). But note, I can shut it off manually via mobile app or website. Can anyone help?

I've looked in Google, Hubitat and Konnected forums, and I've fiddled with HSM and Rule Manager but I don't see where to shut off the siren after a certain amount of time. So then I wondered if the resolution is to revise the device driver code from Konnected, but I don't know how to do that (the code is below). Anyway, any help would be greatly appreciated. Thank you!! Mike

FYI, this is Konnected's siren driver code:
/**

  • Konnected Siren/Strobe
  • Copyright 2017 konnected.io
  • 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: "Konnected Siren/Strobe", namespace: "konnected-io", author: "konnected.io", mnmn: "SmartThings", vid: "generic-siren") {
capability "Alarm"
capability "Switch"
capability "Actuator"
}

preferences {
input name: "invertTrigger", type: "bool", title: "Low Level Trigger",
description: "Select if the attached relay uses a low-level trigger. Default is high-level trigger"
}

}

def updated() {
parent.updateSettingsOnDevice()
}

def updatePinState(Integer state) {
def val
if (state == 0) {
val = invertTrigger ? "on" : "off"
} else {
val = invertTrigger ? "off" : "on"
}
log.debug "$device is $val"
sendEvent(name: "switch", value: val, displayed: false)
if (val == "on") { val = "both" }
sendEvent(name: "alarm", value: val)
}

def off() {
def val = invertTrigger ? 1 : 0
parent.deviceUpdateDeviceState(device.deviceNetworkId, val)
}

def on() {
def val = invertTrigger ? 0 : 1
parent.deviceUpdateDeviceState(device.deviceNetworkId, val)
}

def both() { on() }

def strobe() { on() }

def siren() { on() }

def triggerLevel() {
return invertTrigger ? 0 : 1
}

def currentBinaryValue() {
if (device.currentValue('switch') == 'on') {
invertTrigger ? 0 : 1
} else {
invertTrigger ? 1 : 0
}
}

Unfortunately their driver doesn't include an auto off option like many other sirens do, it would be a good thing to suggest to @nate for a future driver update. You could accomplish this with a RM rule

Trigger : [sirens] any turns on
Rule: Off [sirens] -> delayed 30 seconds

Thank you, Tterk1. I tried your simple approach with the RM. I'd previously missed the "delay" functionality, but thanks to you I looked for it and used it successfully. Thank you!

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.