When using pages or dynamic pages in preferences{ } the events are never fired, installed() is never called (the ‘install’ button never shows in the simulator, only ‘update’) in the simulator. Any idea on what’s going on???
Below is the simple code:
preferences {
page(name:"pageTest", title: "Page test") {
section("Monitor water leaks in this location...") {
input "water1", "capability.waterSensor", title: "Which sensor?"
}
}
}
def installed() {
log.debug "Installed with settings: ${settings}"
initialize()
}
def updated() {
log.debug "Updated with settings: ${settings}"
unsubscribe()
initialize()
}
def initialize() {
subscribe(water1, "water", waterHandler)
}
def waterHandler(evt) {
log.debug "waterHandler"
}
And the log generated:
9:50:50 PM: trace water from water1 was provided with waterHandler…creating subscription
9:50:50 PM: trace SQHB Demo is attempting to unsubscribe from all events
9:50:50 PM: debug Updated with settings: [water1:water1]
9:50:50 PM: trace water from water1 was provided with waterHandler…creating subscription
9:50:50 PM: trace SQHB Demo is attempting to unsubscribe from all events
9:50:50 PM: debug Updated with settings: [water1:water1]
9:50:50 PM: trace water from water1 was provided with waterHandler…creating subscription
9:50:50 PM: trace SQHB Demo is attempting to unsubscribe from all events
9:50:50 PM: debug Updated with settings: [water1:water1]
9:50:50 PM: trace water from water1 was provided with waterHandler…creating subscription
9:50:50 PM: trace SQHB Demo is attempting to unsubscribe from all events
9:50:50 PM: debug Updated with settings: [water1:water1]
installed() is never called, for some reasons updated () is called multiple times and waterHandler() is never triggered.
The app works fine by removing the page from the preference as below:
preferences {
//page(name:"pageTest", title: "Page test") {
section("Monitor water leaks in this location...") {
input "water1", "capability.waterSensor", title: "Which sensor?"
// }
}
}
def installed() {
log.debug "Installed with settings: ${settings}"
initialize()
}
def updated() {
log.debug "Updated with settings: ${settings}"
unsubscribe()
initialize()
}
def initialize() {
subscribe(water1, "water", waterHandler)
}
def waterHandler(evt) {
log.debug "waterHandler"
}
Which generate the logs:
10:00:48 PM: debug waterHandler
10:00:41 PM: trace water from water1 was provided with waterHandler…creating subscription
10:00:41 PM: debug Installed with settings: [water1:water1]