definition( parent: "Mark-C-UK:Whats On Parent", name: "Whats On Child", namespace: "Mark-C-UK", author: "Mark C", description: "check what is on", category: "Convenience", iconUrl: "", iconX2Url: "" ) preferences { page(name: "mainPage") } Map mainPage() { dynamicPage(name: "mainPage", title: "Setup", uninstall: true, install: true) { section { input "appName", "text", title: "Name this instance whats on", submitOnChange: true if(appName) app.updateLabel(appName) input "switches", "capability.switch", title: "Switches to check", multiple: true input "therms", "capability.thermostat", title: "Therm to check", multiple: true input "contats", "capability.contactSensor", title: "contacts to check for open", multiple: true paragraph "For the trigger use a Virtual Switch with auto-off enabled, turning it on checks switches above" input "trigger", "capability.switch", title: "Trigger switch" input "dataName", "text", title: "Enter a name for the Data Device", required:false, submitOnChange:true paragraph "A device will automaticaly be created for you as soon as you click outside of this field" if(dataName) createDataChildDevice() input "dataDev", "capability.actuator", title: "Data Device", required:true, multiple: false, submitOnChange: true input "logEnable", "bool", title: "Enable debug logging", defaultValue: false, submitOnChange: true } } } void updated() { unsubscribe() initialize() } void installed() { initialize() } void uninstalled(){ unschedule() unsubscribe() } void initialize() { subscribe(trigger, "switch.on", handler) log.info "${app.label} starting up, running handler in 5" runIn (5, handler) } void handler(evt) { if (logEnable == true) log.trace "${app.label} - handler processing" String whichOn = "
"
if (therms != null){
//Map thermsMap = [:]
List thermsMap = []
for (com.hubitat.app.DeviceWrapper dev in therms) {
if (dev.currentThermostatMode !='off'){
//thermsMap << ["${dev.device.displayName}":"${dev.currentThermostatMode}"]
thermsMap << dev.device.displayName
}
}
// therms?.each {
// thermsMap << ["${it.device.displayName}":"${it.currentThermostatMode}"]
// }
whichOn += 'Therm\n'
//thermsMap?.sort().each{ key, value ->
thermsMap?.sort().each{
if (logEnable == true) log.debug "${app.label} - sorted $thermsMap"
//if (value != 'off'){
//whichOn += "${key}\n"
whichOn += "${it}\n"
//}
}
whichOn += ' '
}
if (switches != null){
//Map switchesMap = [:]
List switchesMap = []
for (com.hubitat.app.DeviceWrapper dev in switches) {
if (dev.currentSwitch == 'on'){
//switchesMap << ["${dev.device.displayName}":"${dev.currentSwitch}"]
switchesMap << dev.device.displayName
}
}
// switches?.each {
// switchesMap << ["${it.device.displayName}":"${it.currentSwitch}"]
// }
whichOn += 'Switches\n'
//switchesMap?.sort().each{ key, value ->
switchesMap?.sort().each{
whichOn += "${it}\n"
if (logEnable == true) log.debug "${app.label} - sorted $switchesMap"
//if (value == 'on'){
//whichOn += "${key}\n"
// }
}
whichOn += ' '
}
if (contats != null){
//Map contatsMap = [:]
List contatsMap = []
for (com.hubitat.app.DeviceWrapper dev in contats) {
//contatsMap << ["${dev.device.displayName}":"${dev.currentContact}"]
if (dev.currentContact == 'open'){
contatsMap << dev.device.displayName
}
}
// contats?.each{
// contatsMap << ["${it.device.displayName}":"${it.currentContact}"]
// }
whichOn += 'Contacts\n'
//contatsMap?.sort().each{ key, value ->
contatsMap?.sort().each{
if (logEnable == true) log.debug "${app.label} - sorted $contatsMap"
//if (value == 'open'){
// whichOn += "${key}\n"
//}
whichOn += "${it}\n"
}
whichOn += ' '
}
whichOn += '