@ -200,13 +200,17 @@ 
			
		
	
		
		
			
				
					                            < div  class = "col-12 col-sm-9" > < input  type = "number"  name = "ntpIntvl" / > < / div >                             < div  class = "col-12 col-sm-9" > < input  type = "number"  name = "ntpIntvl" / > < / div >  
			
		
	
		
		
			
				
					                        < / div >                         < / div >  
			
		
	
		
		
			
				
					                        < div  class = "row mb-3" >                         < div  class = "row mb-3" >  
			
		
	
		
		
			
				
					
					                            < div  class = "col-12 col-sm-3 my-2" > set s ystem time< / div >                             < div  class = "col-12 col-sm-3 my-2" > set S ystem time< / div >  
			
				
				
			
		
	
		
		
	
		
		
			
				
					                            < div  class = "col-12 col-sm-9" >                             < div  class = "col-12 col-sm-9" >  
			
		
	
		
		
			
				
					                                < input  type = "button"  name = "ntpBtn"  id = "ntpBtn"  class = "btn"  value = "from browser"  onclick = "setTime()" / >                                 < input  type = "button"  name = "ntpBtn"  id = "ntpBtn"  class = "btn"  value = "from browser"  onclick = "setTime()" / >  
			
		
	
		
		
			
				
					
					                                < input  type = "button"  name = "ntpSync"  id = "ntpSync"  class = "btn"  value = "sync NTP"  onclick = "syncTime()" / >                                 < input  type = "button"  name = "ntpSync"  id = "ntpSync"  class = "btn"  value = "sync NTP"  onclick = "syncTime()" / > < br / >  
			
				
				
			
		
	
		
		
	
		
		
			
				
					                                < span  id = "apiResultNtp" > < / span >                                 < span  id = "apiResultNtp" > < / span >  
			
		
	
		
		
			
				
					                            < / div >                             < / div >  
			
		
	
		
		
			
				
					                        < / div >                         < / div >  
			
		
	
		
		
			
				
					                        < div  class = "row mb-3" >  
			
		
	
		
		
			
				
					                            < div  class = "col-12 col-sm-3 my-2" > System Time< / div >  
			
		
	
		
		
			
				
					                            < div  class = "col-12 col-sm-9 my-2" > < span  id = "date" > < / span > < / div >  
			
		
	
		
		
			
				
					                        < / div >  
			
		
	
		
		
			
				
					                    < / fieldset >                     < / fieldset >  
			
		
	
		
		
			
				
					                    < / div >                     < / div >  
			
		
	
		
		
			
				
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -333,6 +337,7 @@ 
			
		
	
		
		
			
				
					        < script  type = "text/javascript" >         < script  type = "text/javascript" >  
			
		
	
		
		
			
				
					            var highestId = 0;            var highestId = 0; 
			
		
	
		
		
			
				
					            var maxInv = 0;            var maxInv = 0; 
			
		
	
		
		
			
				
					            var ts = 0; 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            var esp8266pins = [            var esp8266pins = [ 
			
		
	
		
		
			
				
					                [255, "off / default"],                [255, "off / default"], 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -474,11 +479,17 @@ 
			
		
	
		
		
			
				
					            function apiCbNtp(obj) {            function apiCbNtp(obj) { 
			
		
	
		
		
			
				
					                var e = document.getElementById("apiResultNtp");                var e = document.getElementById("apiResultNtp"); 
			
		
	
		
		
			
				
					                if(obj["success"])                if(obj["success"]) 
			
		
	
		
		
			
				
					
					                    e.innerHTML = "command excuted";                    e.innerHTML = "command excuted, set new time ... "; 
			
				
				
			
		
	
		
		
	
		
		
			
				
					                else                else 
			
		
	
		
		
			
				
					                    e.innerHTML = "Error: " + obj["error"];                    e.innerHTML = "Error: " + obj["error"]; 
			
		
	
		
		
			
				
					            }            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function apiCbNtp2(obj) { 
			
		
	
		
		
			
				
					                var e = document.getElementById("apiResultNtp"); 
			
		
	
		
		
			
				
					                var date = new Date(obj["ts_now"] * 1000); 
			
		
	
		
		
			
				
					                e.innerHTML = "synced at: " + toIsoDateStr(date) + ", difference: " + (ts - obj["ts_now"]) + "ms"; 
			
		
	
		
		
			
				
					            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function apiCbMqtt(obj) {            function apiCbMqtt(obj) { 
			
		
	
		
		
			
				
					                var e = document.getElementById("apiResultMqtt");                var e = document.getElementById("apiResultMqtt"); 
			
		
	
		
		
			
				
					                if(obj["success"])                if(obj["success"]) 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -493,6 +504,7 @@ 
			
		
	
		
		
			
				
					                obj.cmd = "set_time";                obj.cmd = "set_time"; 
			
		
	
		
		
			
				
					                obj.val = parseInt(date.getTime() / 1000);                obj.val = parseInt(date.getTime() / 1000); 
			
		
	
		
		
			
				
					                getAjax("/api/setup", apiCbNtp, "POST", JSON.stringify(obj));                getAjax("/api/setup", apiCbNtp, "POST", JSON.stringify(obj)); 
			
		
	
		
		
			
				
					                setTimeout(function() {getAjax('/api/index', apiCbNtp2)}, 2000); 
			
		
	
		
		
			
				
					            }            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function scan() {            function scan() { 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -506,6 +518,7 @@ 
			
		
	
		
		
			
				
					                var obj = new Object();                var obj = new Object(); 
			
		
	
		
		
			
				
					                obj.cmd = "sync_ntp";                obj.cmd = "sync_ntp"; 
			
		
	
		
		
			
				
					                getAjax("/api/setup", apiCbNtp, "POST", JSON.stringify(obj));                getAjax("/api/setup", apiCbNtp, "POST", JSON.stringify(obj)); 
			
		
	
		
		
			
				
					                setTimeout(function() {getAjax('/api/index', apiCbNtp2)}, 2000); 
			
		
	
		
		
			
				
					            }            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function sendDiscoveryConfig() {            function sendDiscoveryConfig() { 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -664,6 +677,9 @@ 
			
		
	
		
		
			
				
					                parseNav(obj);                parseNav(obj); 
			
		
	
		
		
			
				
					                parseESP(obj);                parseESP(obj); 
			
		
	
		
		
			
				
					                parseRssi(obj);                parseRssi(obj); 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					                ts = obj["ts_now"]; 
			
		
	
		
		
			
				
					                window.setInterval("tick()", 1000); 
			
		
	
		
		
			
				
					            }            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function parseStaticIp(obj) {            function parseStaticIp(obj) { 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -869,6 +885,10 @@ 
			
		
	
		
		
			
				
					                }                } 
			
		
	
		
		
			
				
					            }            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function tick() { 
			
		
	
		
		
			
				
					                document.getElementById("date").innerHTML = toIsoDateStr((new Date((++ts) * 1000))); 
			
		
	
		
		
			
				
					            } 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					            function parse(root) {            function parse(root) { 
			
		
	
		
		
			
				
					                if(null != root) {                if(null != root) { 
			
		
	
		
		
			
				
					                    parseSys(root["system"]);                    parseSys(root["system"]);