")
+ end
+
+ def web_add_config_button()
+ webserver.content_send("")
+ end
+
+ #- this method displays the web page -#
+ def pageLoRaWAN()
+ if !webserver.check_privileged_access() return nil end
+
+ var inode=1
+ var cmdArg
+ if webserver.has_arg('save')
+ inode = webserver.arg('node')
+ tasmota.cmd('LoRaWanAppKey'+inode+' '+ webserver.arg('ak'),true)
+ cmdArg = webserver.arg('dc')
+ if !cmdArg cmdArg='"' end
+ tasmota.cmd('LoRaWanDecoder'+inode+' '+cmdArg,true)
+ cmdArg = webserver.arg('an')
+ if !cmdArg cmdArg='"' end
+ tasmota.cmd('LoRaWanName'+inode+' '+cmdArg,true)
+ end
+
+ webserver.content_start("LoRaWAN") #- title of the web page -#
+ webserver.content_send_style() #- send standard Tasmota styles -#
+ webserver.content_send(
+ ""
+ "
LoRaWAN End Devices
"
+ "")
+
+ var arg, appKey, decoder, name
+ var hintAK='32 character Application Key'
+ var hintDecoder='Decoder file, ending in .be'
+ var hintAN='Device name for MQTT messages'
+ webserver.content_send("
")
+ for node:1..8
+ self.sendNodeButton(node)
+ end
+ webserver.content_send("
")
+ for node:9..16
+ self.sendNodeButton(node)
+ end
+ webserver.content_send("
")
+ end
+
+ webserver.content_button(webserver.BUTTON_CONFIGURATION) #- button back to conf page -#
+ webserver.content_stop() #- end of web page -#
+ end
+
+ #- this is called at Tasmota start-up, as soon as Wifi/Eth is up and web server running -#
+ def web_add_handler()
+ #- we need to register a closure, not just a function, that captures the current instance -#
+ webserver.on("/lrw", / -> self.pageLoRaWAN())
+ end
+end
+
+#- create and register driver in Tasmota -#
+webPageLoRaWAN_instance = webPageLoRaWAN()
+tasmota.add_driver(webPageLoRaWAN_instance)
+
tasmota.cmd('LoraOption3 off') # Disable embedded decoding
tasmota.cmd('SetOption100 off') # Keep LwReceived in JSON message
tasmota.cmd('SetOption118 off') # Keep SENSOR as subtopic name