class slider var id, title, value, oldvalue, min, max, action, globalname, started # Not needed for the main page already having JavaScript code doing the same # static sliderjs = "" def init(id, action) self.id = id ? id : classname(self) self.action = action ? action : /value->print(f'Update {self.id} {self.value}') self.globalname = 'slider_instance_' + self.id self.title = '' end def start() if self.started return end if global.member(self.globalname) global.member(self.globalname).stop() end tasmota.add_driver(self) global.setmember(self.globalname, self) self.started = true if self.max == nil self.setrange(0,100) end if self.value == nil self.setvalue(self.max/2) end return self end def stop() self.started = false tasmota.remove_driver(self) global.setmember(self.globalname, nil) return self end def web_sensor() import webserver if webserver.has_arg(self.id) self.setvalue(int(webserver.arg(self.id))) elif self.value && self.value != self.oldvalue self.oldvalue = self.value tasmota.web_send(self.DOMupdate(self.id, self.value)) end end def DOMupdate(id, value) # This trick allows DOM updates, while