Reverse proxy support.
This commit is contained in:
parent
1e7071bff3
commit
26bec11d76
@ -42,6 +42,6 @@
|
|||||||
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAAB81gCU/zKq/////9bW1oCAgGhoaAAAAGPLX8AAAAAJdFJOU///////////AFNPeBIAAAAJcEhZcwAADsAAAA7AAWrWiQkAAACdSURBVDhPxc9bDoUgEANQebP/FUuHMjBGY/B+3EYR7RH0qC/ZBc6HwCljgHO+xZIVSI2sYgHaG7EBWh8jWoxTrCBFdDJ+BD4lbIHxAcz8APAVLTsrZE4eQD5qzt3cAFTYokC4YCN9Gybgu4yAQtBFLQXHuHABA7JMeOEC/E0W5uy9gv4vo5QHK2i7yq2C8UABM4HmL+CSTXCTF1DrCX6+Gp9zB5dsAAAAAElFTkSuQmCC">
|
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAAB81gCU/zKq/////9bW1oCAgGhoaAAAAGPLX8AAAAAJdFJOU///////////AFNPeBIAAAAJcEhZcwAADsAAAA7AAWrWiQkAAACdSURBVDhPxc9bDoUgEANQebP/FUuHMjBGY/B+3EYR7RH0qC/ZBc6HwCljgHO+xZIVSI2sYgHaG7EBWh8jWoxTrCBFdDJ+BD4lbIHxAcz8APAVLTsrZE4eQD5qzt3cAFTYokC4YCN9Gybgu4yAQtBFLQXHuHABA7JMeOEC/E0W5uy9gv4vo5QHK2i7yq2C8UABM4HmL+CSTXCTF1DrCX6+Gp9zB5dsAAAAAElFTkSuQmCC">
|
||||||
<h1>404 Not Found</h1>
|
<h1>404 Not Found</h1>
|
||||||
<b>Akemi does not know where you are headed...</b><br><br>
|
<b>Akemi does not know where you are headed...</b><br><br>
|
||||||
<button onclick="window.location.href='/sliders'">Back to controls</button>
|
<button onclick="window.location.href='../sliders'">Back to controls</button>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -67,7 +67,7 @@
|
|||||||
<button id="buttonSr" onclick="toggleLiveview()"><i class="icons"></i><p class="tab-label">Peek</p></button>
|
<button id="buttonSr" onclick="toggleLiveview()"><i class="icons"></i><p class="tab-label">Peek</p></button>
|
||||||
<button id="buttonI" onclick="toggleInfo()"><i class="icons"></i><p class="tab-label">Info</p></button>
|
<button id="buttonI" onclick="toggleInfo()"><i class="icons"></i><p class="tab-label">Info</p></button>
|
||||||
<button id="buttonNodes" onclick="toggleNodes()"><i class="icons"></i><p class="tab-label">Nodes</p></button>
|
<button id="buttonNodes" onclick="toggleNodes()"><i class="icons"></i><p class="tab-label">Nodes</p></button>
|
||||||
<button onclick="window.location.href='/settings';"><i class="icons"></i><p class="tab-label">Config</p></button>
|
<button onclick="window.location.href=getURL('/settings');"><i class="icons"></i><p class="tab-label">Config</p></button>
|
||||||
<button id="buttonPcm" onclick="togglePcMode(true)"><i class="icons"></i><p class="tab-label">PC Mode</p></button>
|
<button id="buttonPcm" onclick="togglePcMode(true)"><i class="icons"></i><p class="tab-label">PC Mode</p></button>
|
||||||
</div>
|
</div>
|
||||||
<div id="briwrap">
|
<div id="briwrap">
|
||||||
@ -88,7 +88,7 @@
|
|||||||
<div class ="container">
|
<div class ="container">
|
||||||
<div id="Colors" class="tabcontent">
|
<div id="Colors" class="tabcontent">
|
||||||
<div id="picker" class="noslide"></div>
|
<div id="picker" class="noslide"></div>
|
||||||
<div id="hwrap" class="slider">
|
<div id="hwrap" class="slider" style="margin-top: 20px;">
|
||||||
<div class="sliderwrap il">
|
<div class="sliderwrap il">
|
||||||
<input id="sliderH" class="noslide" oninput="fromH()" onchange="setColor(0)" max="359" min="0" type="range" value="0" step="any">
|
<input id="sliderH" class="noslide" oninput="fromH()" onchange="setColor(0)" max="359" min="0" type="range" value="0" step="any">
|
||||||
<div class="sliderdisplay" style="background: linear-gradient(90deg, #f00 2%, #ff0 19%, #0f0 35%, #0ff 52%, #00f 68%, #f0f 85%, #f00)"></div>
|
<div class="sliderdisplay" style="background: linear-gradient(90deg, #f00 2%, #ff0 19%, #0f0 35%, #0ff 52%, #00f 68%, #f0f 85%, #f00)"></div>
|
||||||
@ -199,7 +199,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding-bottom: 10px;">
|
<div style="padding-bottom: 10px;">
|
||||||
<button class="btn btn-xs" type="button" onclick="window.location.href=(loc?'http://'+locip:'')+'/cpal.htm'"><i class="icons btn-icon"></i></button>
|
<button class="btn btn-xs" type="button" onclick="window.location.href=getURL('/cpal.htm')"><i class="icons btn-icon"></i></button>
|
||||||
<button class="btn btn-xs" type="button" onclick="palettesData=null;localStorage.removeItem('wledPalx');requestJson({rmcpal:true});setTimeout(loadPalettes,250,loadPalettesData);"><i class="icons btn-icon"></i></button>
|
<button class="btn btn-xs" type="button" onclick="palettesData=null;localStorage.removeItem('wledPalx');requestJson({rmcpal:true});setTimeout(loadPalettes,250,loadPalettesData);"><i class="icons btn-icon"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//page js
|
//page js
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var isOn = false, nlA = false, isLv = false, isInfo = false, isNodes = false, syncSend = false, syncTglRecv = true;
|
var isOn = false, nlA = false, isLv = false, isInfo = false, isNodes = false, syncSend = false, syncTglRecv = true;
|
||||||
var hasWhite = false, hasRGB = false, hasCCT = false;
|
var hasWhite = false, hasRGB = false, hasCCT = false;
|
||||||
var nlDur = 60, nlTar = 0;
|
var nlDur = 60, nlTar = 0;
|
||||||
@ -193,12 +193,15 @@ function loadSkinCSS(cId)
|
|||||||
l.id = cId;
|
l.id = cId;
|
||||||
l.rel = 'stylesheet';
|
l.rel = 'stylesheet';
|
||||||
l.type = 'text/css';
|
l.type = 'text/css';
|
||||||
l.href = (loc?`http://${locip}`:'.') + '/skin.css';
|
l.href = getURL('/skin.css');
|
||||||
l.media = 'all';
|
l.media = 'all';
|
||||||
h.appendChild(l);
|
h.appendChild(l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
|
}
|
||||||
function onLoad()
|
function onLoad()
|
||||||
{
|
{
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
@ -208,6 +211,19 @@ function onLoad()
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy and/or HTTPS
|
||||||
|
let l = window.location;
|
||||||
|
let pathn = l.pathname;
|
||||||
|
let paths = pathn.slice(1,pathn.endsWith('/')?-1:undefined).split("/");
|
||||||
|
locproto = l.protocol;
|
||||||
|
locip = l.hostname + (l.port ? ":" + l.port : "")
|
||||||
|
if (paths.length > 1) {
|
||||||
|
loc = true;
|
||||||
|
locip += "/" + paths[0];
|
||||||
|
} else if (locproto==="https:") {
|
||||||
|
loc = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var sett = localStorage.getItem('wledUiCfg');
|
var sett = localStorage.getItem('wledUiCfg');
|
||||||
if (sett) cfg = mergeDeep(cfg, JSON.parse(sett));
|
if (sett) cfg = mergeDeep(cfg, JSON.parse(sett));
|
||||||
@ -217,7 +233,7 @@ function onLoad()
|
|||||||
if (localStorage.getItem('pcm') == "true" || (!/Mobi/.test(navigator.userAgent) && localStorage.getItem('pcm') == null)) togglePcMode(true);
|
if (localStorage.getItem('pcm') == "true" || (!/Mobi/.test(navigator.userAgent) && localStorage.getItem('pcm') == null)) togglePcMode(true);
|
||||||
applyCfg();
|
applyCfg();
|
||||||
if (cfg.comp.hdays) { //load custom holiday list
|
if (cfg.comp.hdays) { //load custom holiday list
|
||||||
fetch((loc?`http://${locip}`:'.') + "/holidays.json", { // may be loaded from external source
|
fetch(getURL("/holidays.json"), { // may be loaded from external source
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
@ -433,9 +449,7 @@ function loadPresets(callback = null)
|
|||||||
// afterwards
|
// afterwards
|
||||||
if (!callback && pmt == pmtLast) return;
|
if (!callback && pmt == pmtLast) return;
|
||||||
|
|
||||||
var url = (loc?`http://${locip}`:'') + '/presets.json';
|
fetch(getURL('/presets.json'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -459,9 +473,7 @@ function loadPresets(callback = null)
|
|||||||
|
|
||||||
function loadPalettes(callback = null)
|
function loadPalettes(callback = null)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/palettes';
|
fetch(getURL('/json/palettes'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
@ -483,9 +495,7 @@ function loadPalettes(callback = null)
|
|||||||
|
|
||||||
function loadFX(callback = null)
|
function loadFX(callback = null)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/effects';
|
fetch(getURL('/json/effects'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
@ -508,9 +518,7 @@ function loadFX(callback = null)
|
|||||||
|
|
||||||
function loadFXData(callback = null)
|
function loadFXData(callback = null)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/fxdata';
|
fetch(getURL('/json/fxdata'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
@ -1034,8 +1042,7 @@ function populateNodes(i,n)
|
|||||||
|
|
||||||
function loadNodes()
|
function loadNodes()
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/nodes';
|
fetch(getURL('/json/nodes'), {
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
@ -1296,7 +1303,8 @@ function cmpP(a, b)
|
|||||||
|
|
||||||
function makeWS() {
|
function makeWS() {
|
||||||
if (ws || lastinfo.ws < 0) return;
|
if (ws || lastinfo.ws < 0) return;
|
||||||
ws = new WebSocket((window.location.protocol == "https:"?"wss":"ws")+'://'+(loc?locip:window.location.hostname)+'/ws');
|
let url = loc ? getURL('/ws').replace("http","ws") : "ws://"+window.location.hostname+"/ws";
|
||||||
|
ws = new WebSocket(url);
|
||||||
ws.binaryType = "arraybuffer";
|
ws.binaryType = "arraybuffer";
|
||||||
ws.onmessage = (e)=>{
|
ws.onmessage = (e)=>{
|
||||||
if (e.data instanceof ArrayBuffer) return; // liveview packet
|
if (e.data instanceof ArrayBuffer) return; // liveview packet
|
||||||
@ -1575,7 +1583,6 @@ function requestJson(command=null)
|
|||||||
if (command && !reqsLegal) return; // stop post requests from chrome onchange event on page restore
|
if (command && !reqsLegal) return; // stop post requests from chrome onchange event on page restore
|
||||||
if (!jsonTimeout) jsonTimeout = setTimeout(()=>{if (ws) ws.close(); ws=null; showErrorToast()}, 3000);
|
if (!jsonTimeout) jsonTimeout = setTimeout(()=>{if (ws) ws.close(); ws=null; showErrorToast()}, 3000);
|
||||||
var req = null;
|
var req = null;
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/si';
|
|
||||||
var useWs = (ws && ws.readyState === WebSocket.OPEN);
|
var useWs = (ws && ws.readyState === WebSocket.OPEN);
|
||||||
var type = command ? 'post':'get';
|
var type = command ? 'post':'get';
|
||||||
if (command) {
|
if (command) {
|
||||||
@ -1596,7 +1603,7 @@ function requestJson(command=null)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch(url, {
|
fetch(getURL('/json/si'), {
|
||||||
method: type,
|
method: type,
|
||||||
headers: {
|
headers: {
|
||||||
"Content-type": "application/json; charset=UTF-8"
|
"Content-type": "application/json; charset=UTF-8"
|
||||||
@ -1691,7 +1698,7 @@ function toggleLiveview()
|
|||||||
}
|
}
|
||||||
|
|
||||||
gId(lvID).style.display = (isLv) ? "block":"none";
|
gId(lvID).style.display = (isLv) ? "block":"none";
|
||||||
var url = (loc?`http://${locip}`:'') + "/" + lvID;
|
var url = getURL("/" + lvID);
|
||||||
gId(lvID).src = (isLv) ? url:"about:blank";
|
gId(lvID).src = (isLv) ? url:"about:blank";
|
||||||
gId('buttonSr').className = (isLv) ? "active":"";
|
gId('buttonSr').className = (isLv) ? "active":"";
|
||||||
if (!isLv && ws && ws.readyState === WebSocket.OPEN) ws.send('{"lv":false}');
|
if (!isLv && ws && ws.readyState === WebSocket.OPEN) ws.send('{"lv":false}');
|
||||||
@ -2641,9 +2648,7 @@ function loadPalettesData(callback = null)
|
|||||||
|
|
||||||
function getPalettesData(page, callback)
|
function getPalettesData(page, callback)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + `/json/palx?page=${page}`;
|
fetch(getURL(`/json/palx?page=${page}`), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: {
|
headers: {
|
||||||
"Content-type": "application/json; charset=UTF-8"
|
"Content-type": "application/json; charset=UTF-8"
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
tmout = setTimeout(update, 250);
|
tmout = setTimeout(update, 250);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fetch('/json/live')
|
fetch('./json/live')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
clearTimeout(tmout);
|
clearTimeout(tmout);
|
||||||
|
@ -29,8 +29,15 @@
|
|||||||
//console.info("Peek uses top WS");
|
//console.info("Peek uses top WS");
|
||||||
ws.send("{'lv':true}");
|
ws.send("{'lv':true}");
|
||||||
} else {
|
} else {
|
||||||
console.info("Peek WS opening");
|
//console.info("Peek WS opening");
|
||||||
ws = new WebSocket((window.location.protocol == "https:"?"wss":"ws")+"://"+document.location.host+"/ws");
|
let l = window.location;
|
||||||
|
let pathn = l.pathname;
|
||||||
|
let paths = pathn.slice(1,pathn.endsWith('/')?-1:undefined).split("/");
|
||||||
|
let url = l.origin.replace("http","ws");
|
||||||
|
if (paths.length > 1) {
|
||||||
|
url += "/" + paths[0];
|
||||||
|
}
|
||||||
|
ws = new WebSocket(url+"/ws");
|
||||||
ws.onopen = function () {
|
ws.onopen = function () {
|
||||||
//console.info("Peek WS open");
|
//console.info("Peek WS open");
|
||||||
ws.send("{'lv':true}");
|
ws.send("{'lv':true}");
|
||||||
|
@ -33,7 +33,14 @@
|
|||||||
if (ws && ws.readyState === WebSocket.OPEN) {
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
||||||
ws.send("{'lv':true}");
|
ws.send("{'lv':true}");
|
||||||
} else {
|
} else {
|
||||||
ws = new WebSocket((window.location.protocol == "https:"?"wss":"ws")+"://"+document.location.host+"/ws");
|
let l = window.location;
|
||||||
|
let pathn = l.pathname;
|
||||||
|
let paths = pathn.slice(1,pathn.endsWith('/')?-1:undefined).split("/");
|
||||||
|
let url = l.origin.replace("http","ws");
|
||||||
|
if (paths.length > 1) {
|
||||||
|
url += "/" + paths[0];
|
||||||
|
}
|
||||||
|
ws = new WebSocket(url+"/ws");
|
||||||
ws.onopen = ()=>{
|
ws.onopen = ()=>{
|
||||||
ws.send("{'lv':true}");
|
ws.send("{'lv':true}");
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<title>WLED Message</title>
|
<title>WLED Message</title>
|
||||||
<script>
|
<script>
|
||||||
function B() { window.history.back() };
|
function B() { window.history.back() };
|
||||||
function RS() { window.location = "/settings"; }
|
function RS() { window.location = "../settings"; }
|
||||||
function RP() { top.location.href = "/"; }
|
function RP() { top.location.href = "../"; }
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
@import url("style.css");
|
@import url("style.css");
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<title>WLED Settings</title>
|
<title>WLED Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d=document;
|
var d=document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
function gId(n){return d.getElementById(n);}
|
function gId(n){return d.getElementById(n);}
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
function loadJS(FILE_URL, async = true) {
|
function loadJS(FILE_URL, async = true) {
|
||||||
@ -26,7 +26,7 @@
|
|||||||
alert("Loading of configuration script failed.\nIncomplete page data!");
|
alert("Loading of configuration script failed.\nIncomplete page data!");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function S(){
|
function S() {
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
loc = true;
|
loc = true;
|
||||||
locip = localStorage.getItem('locIp');
|
locip = localStorage.getItem('locIp');
|
||||||
@ -34,9 +34,20 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 1) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=0';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=0'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
@ -65,15 +76,15 @@
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body onload="S()">
|
<body onload="S()">
|
||||||
<button type=submit id="b" onclick="window.location='/'">Back</button>
|
<button type=submit id="b" onclick="window.location=getURL('/')">Back</button>
|
||||||
<button type="submit" onclick="window.location='./settings/wifi'">WiFi Setup</button>
|
<button type="submit" onclick="window.location=getURL('/settings/wifi')">WiFi Setup</button>
|
||||||
<button type="submit" onclick="window.location='./settings/leds'">LED Preferences</button>
|
<button type="submit" onclick="window.location=getURL('/settings/leds')">LED Preferences</button>
|
||||||
<button id="2dbtn" style="display:none;" type="submit" onclick="window.location='./settings/2D'">2D Configuration</button>
|
<button id="2dbtn" style="display:none;" type="submit" onclick="window.location=getURL('/settings/2D')">2D Configuration</button>
|
||||||
<button type="submit" onclick="window.location='./settings/ui'">User Interface</button>
|
<button type="submit" onclick="window.location=getURL('/settings/ui')">User Interface</button>
|
||||||
<button id="dmxbtn" style="display:none;" type="submit" onclick="window.location='./settings/dmx'">DMX Output</button>
|
<button id="dmxbtn" style="display:none;" type="submit" onclick="window.location=getURL('/settings/dmx')">DMX Output</button>
|
||||||
<button type="submit" onclick="window.location='./settings/sync'">Sync Interfaces</button>
|
<button type="submit" onclick="window.location=getURL('/settings/sync')">Sync Interfaces</button>
|
||||||
<button type="submit" onclick="window.location='./settings/time'">Time & Macros</button>
|
<button type="submit" onclick="window.location=getURL('/settings/time')">Time & Macros</button>
|
||||||
<button type="submit" onclick="window.location='./settings/um'">Usermods</button>
|
<button type="submit" onclick="window.location=getURL('/settings/um')">Usermods</button>
|
||||||
<button type="submit" onclick="window.location='./settings/sec'">Security & Updates</button>
|
<button type="submit" onclick="window.location=getURL('/settings/sec')">Security & Updates</button>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -7,11 +7,11 @@
|
|||||||
<title>2D Set-up</title>
|
<title>2D Set-up</title>
|
||||||
<script>
|
<script>
|
||||||
var d=document;
|
var d=document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var maxPanels=64;
|
var maxPanels=64;
|
||||||
var ctx = null; // WLEDMM
|
var ctx = null; // WLEDMM
|
||||||
function H(){window.open("https://kno.wled.ge/features/2D");}
|
function H(){window.open("https://kno.wled.ge/features/2D");}
|
||||||
function B(){window.open("/settings","_self");}
|
function B(){window.open(getURL("/settings"),"_self");}
|
||||||
function gId(n){return d.getElementById(n);}
|
function gId(n){return d.getElementById(n);}
|
||||||
function fS(){d.Sf.submit();} // <button type=submit> sometimes didn't work
|
function fS(){d.Sf.submit();} // <button type=submit> sometimes didn't work
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
@ -42,9 +42,21 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=10';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=10'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/2D');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
|
|
||||||
function UI() {
|
function UI() {
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
<title>DMX Settings</title>
|
<title>DMX Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d=document;
|
var d=document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
function H(){window.open("https://github.com/Aircoookie/WLED/wiki/DMX");}
|
function H(){window.open("https://github.com/Aircoookie/WLED/wiki/DMX");}
|
||||||
function B(){window.history.back();}
|
function B(){window.open(getURL("/settings"),"_self");}
|
||||||
function GCH(num) {
|
function GCH(num) {
|
||||||
d.getElementById('dmxchannels').innerHTML += "";
|
d.getElementById('dmxchannels').innerHTML += "";
|
||||||
for (i=0;i<num;i++) {
|
for (i=0;i<num;i++) {
|
||||||
@ -61,9 +61,21 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=7';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=7'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/dmx');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>@import url("style.css");</style>
|
<style>@import url("style.css");</style>
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
d.ro_gpio = [];
|
d.ro_gpio = [];
|
||||||
d.max_gpio = 39;
|
d.max_gpio = 39;
|
||||||
var customStarts=false,startsDirty=[],maxCOOverrides=5;
|
var customStarts=false,startsDirty=[],maxCOOverrides=5;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
function H(){window.open("https://kno.wled.ge/features/settings/#led-settings");}
|
function H(){window.open("https://kno.wled.ge/features/settings/#led-settings");}
|
||||||
function B(){window.open("/settings","_self");}
|
function B(){window.open(getURL("/settings"),"_self");}
|
||||||
function gId(n){return d.getElementById(n);}
|
function gId(n){return d.getElementById(n);}
|
||||||
function off(n){d.getElementsByName(n)[0].value = -1;}
|
function off(n){d.getElementsByName(n)[0].value = -1;}
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
@ -554,9 +554,21 @@ Length: <input type="number" name="XC${i}" id="xc${i}" class="l" min="1" max="65
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=2';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=2'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/leds');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>@import url("style.css");</style>
|
<style>@import url("style.css");</style>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<title>PIN required</title>
|
<title>PIN required</title>
|
||||||
<script>
|
<script>
|
||||||
var d = document;
|
var d = document;
|
||||||
function B() { window.open("/settings","_self"); }
|
function B() { window.open("../settings","_self"); }
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
@import url("style.css");
|
@import url("style.css");
|
||||||
|
@ -7,10 +7,10 @@
|
|||||||
<title>Misc Settings</title>
|
<title>Misc Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d = document;
|
var d = document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
function H() { window.open("https://kno.wled.ge/features/settings/#security-settings"); }
|
function H() { window.open("https://kno.wled.ge/features/settings/#security-settings"); }
|
||||||
function B() { window.open("/settings","_self"); }
|
function B() { window.open(getURL("/settings"),"_self"); }
|
||||||
function U() { window.open("/update","_self"); }
|
function U() { window.open(getURL("/update"),"_self"); }
|
||||||
function gId(s) { return d.getElementById(s); }
|
function gId(s) { return d.getElementById(s); }
|
||||||
function isObj(o) { return (o && typeof o === 'object' && !Array.isArray(o)); }
|
function isObj(o) { return (o && typeof o === 'object' && !Array.isArray(o)); }
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
@ -72,9 +72,21 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=6';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=6'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/sec');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Sync Settings</title>
|
<title>Sync Settings</title>
|
||||||
<script>var d=document;
|
<script>var d=document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto;
|
||||||
function gId(s){return d.getElementById(s);}
|
function gId(s){return d.getElementById(s);}
|
||||||
function toggle(el){gId(el).classList.toggle("hide"); gId('No'+el).classList.toggle("hide");}
|
function toggle(el){gId(el).classList.toggle("hide"); gId('No'+el).classList.toggle("hide");}
|
||||||
function H(){window.open("https://kno.wled.ge/interfaces/udp-notifier/");}
|
function H(){window.open("https://kno.wled.ge/interfaces/udp-notifier/");}
|
||||||
function B(){window.open("/settings","_self");}
|
function B(){window.open(getURL("/settings"),"_self");}
|
||||||
function adj(){if (d.Sf.DI.value == 6454) {if (d.Sf.EU.value == 1) d.Sf.EU.value = 0;}
|
function adj(){if (d.Sf.DI.value == 6454) {if (d.Sf.EU.value == 1) d.Sf.EU.value = 0;}
|
||||||
else if (d.Sf.DI.value == 5568) {if (d.Sf.DA.value == 0) d.Sf.DA.value = 1; if (d.Sf.EU.value == 0) d.Sf.EU.value = 1;} }
|
else if (d.Sf.DI.value == 5568) {if (d.Sf.DA.value == 0) d.Sf.DA.value = 1; if (d.Sf.EU.value == 0) d.Sf.EU.value = 1;} }
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
@ -56,6 +56,7 @@
|
|||||||
function SP(){var p = d.Sf.DI.value; gId("xp").style.display = (p > 0)?"none":"block"; if (p > 0) d.Sf.EP.value = p;}
|
function SP(){var p = d.Sf.DI.value; gId("xp").style.display = (p > 0)?"none":"block"; if (p > 0) d.Sf.EP.value = p;}
|
||||||
function SetVal(){switch(parseInt(d.Sf.EP.value)){case 5568: d.Sf.DI.value = 5568; break; case 6454: d.Sf.DI.value = 6454; break; case 4048: d.Sf.DI.value = 4048; break; }; SP();FC();}
|
function SetVal(){switch(parseInt(d.Sf.EP.value)){case 5568: d.Sf.DI.value = 5568; break; case 6454: d.Sf.DI.value = 6454; break; case 4048: d.Sf.DI.value = 4048; break; }; SP();FC();}
|
||||||
function S(){
|
function S(){
|
||||||
|
locproto = "http:";
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
loc = true;
|
loc = true;
|
||||||
locip = localStorage.getItem('locIp');
|
locip = localStorage.getItem('locIp');
|
||||||
@ -63,9 +64,20 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let paths = window.location.pathname.slice(1,window.location.pathname.endsWith('/')?-1:0).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=4';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=4'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/sync');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>@import url("style.css");</style>
|
<style>@import url("style.css");</style>
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
<title>Time Settings</title>
|
<title>Time Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d=document;
|
var d=document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var el=false;
|
var el=false;
|
||||||
var ms=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
|
var ms=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
|
||||||
function H() { window.open("https://kno.wled.ge/features/settings/#time-settings"); }
|
function H() { window.open("https://kno.wled.ge/features/settings/#time-settings"); }
|
||||||
function B() { window.open("/settings","_self"); }
|
function B() { window.open(getURL("/settings"),"_self"); }
|
||||||
function gId(s) { return d.getElementById(s); }
|
function gId(s) { return d.getElementById(s); }
|
||||||
function gN(s) { return d.getElementsByName(s)[0]; }
|
function gN(s) { return d.getElementsByName(s)[0]; }
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
@ -40,9 +40,21 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=5';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=5'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/time');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
function expand(o,i)
|
function expand(o,i)
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<title>UI Settings</title>
|
<title>UI Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d = document;
|
var d = document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var initial_ds, initial_st, initial_su;
|
var initial_ds, initial_st, initial_su;
|
||||||
var sett = null;
|
var sett = null;
|
||||||
var l = {
|
var l = {
|
||||||
@ -185,8 +185,7 @@
|
|||||||
alert("Loading of configuration script failed.\nIncomplete page data!");
|
alert("Loading of configuration script failed.\nIncomplete page data!");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function S()
|
function S() {
|
||||||
{
|
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
loc = true;
|
loc = true;
|
||||||
locip = localStorage.getItem('locIp');
|
locip = localStorage.getItem('locIp');
|
||||||
@ -194,12 +193,24 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=3';
|
}
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
loadJS(getURL('/settings/s.js?p=3'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/ui');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
function H() { window.open("https://kno.wled.ge/features/settings/#user-interface-settings"); }
|
function H() { window.open("https://kno.wled.ge/features/settings/#user-interface-settings"); }
|
||||||
function B() { window.open("/settings","_self"); }
|
function B() { window.open(getURL("/settings"),"_self"); }
|
||||||
function UI()
|
function UI()
|
||||||
{
|
{
|
||||||
gId('idonthateyou').style.display = (gId('dm').checked) ? 'inline':'none';
|
gId('idonthateyou').style.display = (gId('dm').checked) ? 'inline':'none';
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
d.ro_gpio = [];
|
d.ro_gpio = [];
|
||||||
var umCfg = {};
|
var umCfg = {};
|
||||||
var pins = [], pinO = [], owner;
|
var pins = [], pinO = [], owner;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var urows;
|
var urows;
|
||||||
var numM = 0;
|
var numM = 0;
|
||||||
function gId(s) { return d.getElementById(s); }
|
function gId(s) { return d.getElementById(s); }
|
||||||
function isO(i) { return (i && typeof i === 'object' && !Array.isArray(i)); }
|
function isO(i) { return (i && typeof i === 'object' && !Array.isArray(i)); }
|
||||||
function H() { window.open("https://github.com/Aircoookie/WLED/wiki/Settings#usermod-settings"); }
|
function H() { window.open("https://github.com/Aircoookie/WLED/wiki/Settings#usermod-settings"); }
|
||||||
function B() { window.open("/settings","_self"); }
|
function B() { window.open(getURL("/settings"),"_self"); }
|
||||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||||
function loadJS(FILE_URL, async = true) {
|
function loadJS(FILE_URL, async = true) {
|
||||||
let scE = d.createElement("script");
|
let scE = d.createElement("script");
|
||||||
@ -54,9 +54,22 @@
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ldS();
|
ldS();
|
||||||
if (!numM) gId("um").innerHTML = "No Usermods installed.";
|
if (!numM) gId("um").innerHTML = "No Usermods installed.";
|
||||||
|
if (loc) d.Sf.action = getURL('/settings/um');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
// https://stackoverflow.com/questions/3885817/how-do-i-check-that-a-number-is-float-or-integer
|
// https://stackoverflow.com/questions/3885817/how-do-i-check-that-a-number-is-float-or-integer
|
||||||
function isF(n) { return n === +n && n !== (n|0); }
|
function isF(n) { return n === +n && n !== (n|0); }
|
||||||
@ -196,8 +209,7 @@
|
|||||||
}
|
}
|
||||||
// load settings and insert values into DOM
|
// load settings and insert values into DOM
|
||||||
function ldS() {
|
function ldS() {
|
||||||
var url = (loc?`http://${locip}`:'') + '/cfg.json';
|
fetch(getURL('/cfg.json'), {
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -216,8 +228,7 @@
|
|||||||
}
|
}
|
||||||
if (urows==="") urows = "Usermods configuration not found.<br>Press <i>Save</i> to initialize defaults.";
|
if (urows==="") urows = "Usermods configuration not found.<br>Press <i>Save</i> to initialize defaults.";
|
||||||
gId("um").innerHTML = urows;
|
gId("um").innerHTML = urows;
|
||||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=8';
|
loadJS(getURL('/settings/s.js?p=8'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
|
||||||
})
|
})
|
||||||
.catch((error)=>{
|
.catch((error)=>{
|
||||||
gId('lserr').style.display = "inline";
|
gId('lserr').style.display = "inline";
|
||||||
|
@ -7,21 +7,19 @@
|
|||||||
<title>WiFi Settings</title>
|
<title>WiFi Settings</title>
|
||||||
<script>
|
<script>
|
||||||
var d = document;
|
var d = document;
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var scanLoops = 0, preScanSSID = "";
|
var scanLoops = 0, preScanSSID = "";
|
||||||
|
|
||||||
function gId(e) { return d.getElementById(e); }
|
function gId(e) { return d.getElementById(e); }
|
||||||
function cE(e) { return d.createElement(e); }
|
function cE(e) { return d.createElement(e); }
|
||||||
function H(){window.open("https://kno.wled.ge/features/settings/#wifi-settings");}
|
function H(){window.open("https://kno.wled.ge/features/settings/#wifi-settings");}
|
||||||
function B(){window.open("/settings","_self");}
|
function B(){window.open(getURL("/settings"),"_self");}
|
||||||
function N() {
|
function N() {
|
||||||
const url = (loc?`http://${locip}`:"") + "/json/net";
|
|
||||||
|
|
||||||
const button = gId("scan");
|
const button = gId("scan");
|
||||||
button.disabled = true;
|
button.disabled = true;
|
||||||
button.innerHTML = "Scanning...";
|
button.innerHTML = "Scanning...";
|
||||||
|
|
||||||
fetch(url).then((response) => {
|
fetch(getURL("/json/net")).then((response) => {
|
||||||
return response.json();
|
return response.json();
|
||||||
}).then((json) => {
|
}).then((json) => {
|
||||||
// Get the list of networks only, defaulting to an empty array.
|
// Get the list of networks only, defaulting to an empty array.
|
||||||
@ -124,14 +122,26 @@
|
|||||||
function S() {
|
function S() {
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
loc = true;
|
loc = true;
|
||||||
locip = localStorage.getItem("locIp");
|
locip = localStorage.getItem('locIp');
|
||||||
if (!locip) {
|
if (!locip) {
|
||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem("locIp", locip);
|
localStorage.setItem('locIp', locip);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy
|
||||||
|
let path = window.location.pathname;
|
||||||
|
let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/");
|
||||||
|
if (paths.length > 2) {
|
||||||
|
locproto = window.location.protocol;
|
||||||
|
loc = true;
|
||||||
|
locip = window.location.hostname+window.location.port+"/"+paths[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let url = (loc?`http://${locip}`:'') + '/settings/s.js?p=1';
|
loadJS(getURL('/settings/s.js?p=1'), false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
if (loc) d.Sf.action = getURL('/settings/wifi');
|
||||||
|
}
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>@import url("style.css");</style>
|
<style>@import url("style.css");</style>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//page js
|
//page js
|
||||||
var loc = false, locip;
|
var loc = false, locip, locproto = "http:";
|
||||||
var noNewSegs = false;
|
var noNewSegs = false;
|
||||||
var isOn = false, isInfo = false, isNodes = false, isRgbw = false, cct = false;
|
var isOn = false, isInfo = false, isNodes = false, isRgbw = false, cct = false;
|
||||||
var whites = [0,0,0];
|
var whites = [0,0,0];
|
||||||
@ -148,12 +148,15 @@ function loadSkinCSS(cId)
|
|||||||
l.id = cId;
|
l.id = cId;
|
||||||
l.rel = 'stylesheet';
|
l.rel = 'stylesheet';
|
||||||
l.type = 'text/css';
|
l.type = 'text/css';
|
||||||
l.href = (loc?`http://${locip}`:'.') + '/skin.css';
|
l.href = getURL('/skin.css');
|
||||||
l.media = 'all';
|
l.media = 'all';
|
||||||
h.appendChild(l);
|
h.appendChild(l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getURL(path) {
|
||||||
|
return (loc ? locproto + "//" + locip : "") + path;
|
||||||
|
}
|
||||||
async function onLoad()
|
async function onLoad()
|
||||||
{
|
{
|
||||||
if (window.location.protocol == "file:") {
|
if (window.location.protocol == "file:") {
|
||||||
@ -164,6 +167,19 @@ async function onLoad()
|
|||||||
locip = prompt("File Mode. Please enter WLED IP!");
|
locip = prompt("File Mode. Please enter WLED IP!");
|
||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// detect reverse proxy and/or HTTPS
|
||||||
|
let l = window.location;
|
||||||
|
let pathn = l.pathname;
|
||||||
|
let paths = pathn.slice(1,pathn.endsWith('/')?-1:undefined).split("/");
|
||||||
|
locproto = l.protocol;
|
||||||
|
locip = l.hostname + (l.port ? ":" + l.port : "")
|
||||||
|
if (paths.length > 1) {
|
||||||
|
loc = true;
|
||||||
|
locip += "/" + paths[0];
|
||||||
|
} else if (locproto==="https:") {
|
||||||
|
loc = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var sett = localStorage.getItem('wledUiCfg');
|
var sett = localStorage.getItem('wledUiCfg');
|
||||||
if (sett) cfg = mergeDeep(cfg, JSON.parse(sett));
|
if (sett) cfg = mergeDeep(cfg, JSON.parse(sett));
|
||||||
@ -173,7 +189,7 @@ async function onLoad()
|
|||||||
applyCfg();
|
applyCfg();
|
||||||
if (cfg.theme.bg.url=="" || cfg.theme.bg.url === "https://picsum.photos/1920/1080") {
|
if (cfg.theme.bg.url=="" || cfg.theme.bg.url === "https://picsum.photos/1920/1080") {
|
||||||
var iUrl = cfg.theme.bg.url;
|
var iUrl = cfg.theme.bg.url;
|
||||||
fetch((loc?`http://${locip}`:'.') + "/holidays.json", {
|
fetch(getURL("/holidays.json"), {
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
@ -330,9 +346,7 @@ function loadPresets(callback = null)
|
|||||||
|
|
||||||
pmtLast = pmt;
|
pmtLast = pmt;
|
||||||
|
|
||||||
var url = (loc?`http://${locip}`:'') + '/presets.json';
|
fetch(getURL('/presets.json'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -355,9 +369,7 @@ function loadPresets(callback = null)
|
|||||||
|
|
||||||
function loadPalettes(callback = null)
|
function loadPalettes(callback = null)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/palettes';
|
fetch(getURL('/json/palettes'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -379,9 +391,7 @@ function loadPalettes(callback = null)
|
|||||||
|
|
||||||
function loadFX(callback = null)
|
function loadFX(callback = null)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/effects';
|
fetch(getURL('/json/effects'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -403,9 +413,7 @@ function loadFX(callback = null)
|
|||||||
|
|
||||||
function loadFXData(callback = null)
|
function loadFXData(callback = null)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/fxdata';
|
fetch(getURL('/json/fxdata'), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -611,8 +619,7 @@ function populateNodes(i,n)
|
|||||||
|
|
||||||
function loadNodes()
|
function loadNodes()
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/nodes';
|
fetch(getURL('/json/nodes'), {
|
||||||
fetch(url, {
|
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
@ -855,7 +862,8 @@ function cmpP(a, b)
|
|||||||
|
|
||||||
function makeWS() {
|
function makeWS() {
|
||||||
if (ws) return;
|
if (ws) return;
|
||||||
ws = new WebSocket('ws://'+(loc?locip:window.location.hostname)+'/ws');
|
let url = loc ? getURL('/ws').replace("http","ws") : "ws://"+window.location.hostname+"/ws";
|
||||||
|
ws = new WebSocket(url);
|
||||||
ws.onmessage = (e)=>{
|
ws.onmessage = (e)=>{
|
||||||
var json = JSON.parse(e.data);
|
var json = JSON.parse(e.data);
|
||||||
if (json.leds) return; //liveview packet
|
if (json.leds) return; //liveview packet
|
||||||
@ -974,7 +982,6 @@ function requestJson(command=null)
|
|||||||
if (command && !reqsLegal) return; //stop post requests from chrome onchange event on page restore
|
if (command && !reqsLegal) return; //stop post requests from chrome onchange event on page restore
|
||||||
if (!jsonTimeout) jsonTimeout = setTimeout(showErrorToast, 3000);
|
if (!jsonTimeout) jsonTimeout = setTimeout(showErrorToast, 3000);
|
||||||
var req = null;
|
var req = null;
|
||||||
var url = (loc?`http://${locip}`:'') + '/json/si';
|
|
||||||
var useWs = (ws && ws.readyState === WebSocket.OPEN);
|
var useWs = (ws && ws.readyState === WebSocket.OPEN);
|
||||||
var type = command ? 'post':'get';
|
var type = command ? 'post':'get';
|
||||||
if (command) {
|
if (command) {
|
||||||
@ -991,7 +998,7 @@ function requestJson(command=null)
|
|||||||
setTimeout(requestJson,200);
|
setTimeout(requestJson,200);
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch(url, {
|
fetch(getURL('/json/si'), {
|
||||||
method: type,
|
method: type,
|
||||||
headers: {
|
headers: {
|
||||||
"Content-type": "application/json; charset=UTF-8"
|
"Content-type": "application/json; charset=UTF-8"
|
||||||
@ -1314,9 +1321,7 @@ function loadPalettesData(callback = null)
|
|||||||
|
|
||||||
function getPalettesData(page, callback)
|
function getPalettesData(page, callback)
|
||||||
{
|
{
|
||||||
var url = (loc?`http://${locip}`:'') + `/json/palx?page=${page}`;
|
fetch(getURL(`/json/palx?page=${page}`), {
|
||||||
|
|
||||||
fetch(url, {
|
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: {
|
headers: {
|
||||||
"Content-type": "application/json; charset=UTF-8"
|
"Content-type": "application/json; charset=UTF-8"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<body onload="GetV()">
|
<body onload="GetV()">
|
||||||
<h2>WLED Software Update</h2>
|
<h2>WLED Software Update</h2>
|
||||||
<form method='POST' action='/update' id='uf' enctype='multipart/form-data' onsubmit="U()">
|
<form method='POST' action='./update' id='uf' enctype='multipart/form-data' onsubmit="U()">
|
||||||
Installed version: <span class="sip">##VERSION##</span><br>
|
Installed version: <span class="sip">##VERSION##</span><br>
|
||||||
Download the latest binary: <a href="https://github.com/Aircoookie/WLED/releases" target="_blank">
|
Download the latest binary: <a href="https://github.com/Aircoookie/WLED/releases" target="_blank">
|
||||||
<img src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"></a><br>
|
<img src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"></a><br>
|
||||||
|
@ -55,9 +55,9 @@
|
|||||||
<h3>Thank you for installing my application!</h3>
|
<h3>Thank you for installing my application!</h3>
|
||||||
<b>Next steps:</b><br><br>
|
<b>Next steps:</b><br><br>
|
||||||
Connect the module to your local WiFi here!<br>
|
Connect the module to your local WiFi here!<br>
|
||||||
<button onclick="window.location.href='/settings/wifi'">WiFi settings</button><br>
|
<button onclick="window.location.href='./settings/wifi'">WiFi settings</button><br>
|
||||||
<i>Just trying this out in AP mode?</i><br>
|
<i>Just trying this out in AP mode?</i><br>
|
||||||
<button onclick="window.location.href='/sliders'">To the controls!</button><br>
|
<button onclick="window.location.href='./sliders'">To the controls!</button><br>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -20,7 +20,7 @@ const uint8_t PAGE_usermod[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/msg.htm, do not edit!!
|
// Autogenerated from wled00/data/msg.htm, do not edit!!
|
||||||
const char PAGE_msg[] PROGMEM = R"=====(<!DOCTYPE html><html><head><meta content="width=device-width" name="viewport">
|
const char PAGE_msg[] PROGMEM = R"=====(<!DOCTYPE html><html><head><meta content="width=device-width" name="viewport">
|
||||||
<title>WLED Message</title><script>
|
<title>WLED Message</title><script>
|
||||||
function B(){window.history.back()}function RS(){window.location="/settings"}function RP(){top.location.href="/"}
|
function B(){window.history.back()}function RS(){window.location="../settings"}function RP(){top.location.href="../"}
|
||||||
</script><style>@import url("style.css");</style></head><body><h2>%MSG%</body></html>)=====";
|
</script><style>@import url("style.css");</style></head><body><h2>%MSG%</body></html>)=====";
|
||||||
|
|
||||||
|
|
||||||
@ -41,52 +41,52 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()=====";
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Autogenerated from wled00/data/update.htm, do not edit!!
|
// Autogenerated from wled00/data/update.htm, do not edit!!
|
||||||
const uint16_t PAGE_update_length = 615;
|
const uint16_t PAGE_update_length = 616;
|
||||||
const uint8_t PAGE_update[] PROGMEM = {
|
const uint8_t PAGE_update[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30,
|
||||||
0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x71, 0x4e, 0xa9, 0x78, 0xa1, 0x24, 0x29, 0x1c,
|
0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x71, 0x76, 0xa9, 0x78, 0xa1, 0x24, 0x29, 0x94,
|
||||||
0xad, 0x50, 0x25, 0xa4, 0x56, 0x6a, 0x0b, 0xe2, 0x09, 0x39, 0xf6, 0xe6, 0x62, 0xce, 0xb1, 0x53,
|
0x56, 0xa8, 0x12, 0x12, 0x95, 0xda, 0x82, 0x78, 0x42, 0x8e, 0xbd, 0xb9, 0x98, 0x73, 0xec, 0xd4,
|
||||||
0x7b, 0x73, 0xa7, 0xa8, 0xea, 0x7f, 0x67, 0xe3, 0xdc, 0x15, 0xc4, 0xc7, 0x4b, 0x14, 0x67, 0x67,
|
0xde, 0xdc, 0xe9, 0x84, 0xfa, 0xdf, 0xd9, 0x38, 0x77, 0x05, 0xf1, 0xf1, 0x12, 0xc5, 0xd9, 0xd9,
|
||||||
0xc7, 0xbb, 0x33, 0x93, 0xe2, 0xe4, 0xf2, 0xe6, 0xe3, 0xfd, 0xb7, 0xdb, 0x2b, 0xd6, 0x62, 0x67,
|
0xf1, 0xee, 0xcc, 0xa4, 0x3c, 0xb9, 0xfa, 0xf4, 0xfe, 0xfe, 0xeb, 0xed, 0x35, 0xeb, 0xb0, 0x77,
|
||||||
0xab, 0xe2, 0xf0, 0x04, 0xa9, 0xab, 0xa2, 0x03, 0x94, 0x4c, 0x79, 0x87, 0xe0, 0xb0, 0xe4, 0x7b,
|
0x75, 0x79, 0x78, 0x82, 0x32, 0x75, 0xd9, 0x03, 0x2a, 0xa6, 0x83, 0x47, 0xf0, 0x58, 0xf1, 0x9d,
|
||||||
0xa3, 0xb1, 0x2d, 0x35, 0xec, 0x8c, 0x82, 0x55, 0x3a, 0x70, 0xe6, 0x64, 0x07, 0x25, 0xdf, 0x19,
|
0x35, 0xd8, 0x55, 0x06, 0xb6, 0x56, 0xc3, 0x2a, 0x1f, 0x38, 0xf3, 0xaa, 0x87, 0x8a, 0x6f, 0x2d,
|
||||||
0xd8, 0xf7, 0x3e, 0x20, 0xaf, 0xb2, 0x02, 0x0d, 0x5a, 0xa8, 0xbe, 0x7e, 0xbe, 0xba, 0x64, 0x0f,
|
0xec, 0x86, 0x10, 0x91, 0xd7, 0x45, 0x89, 0x16, 0x1d, 0xd4, 0x5f, 0x3e, 0x5e, 0x5f, 0xb1, 0x87,
|
||||||
0xbd, 0x96, 0x08, 0x45, 0x3e, 0x7f, 0x2a, 0xa2, 0x0a, 0xa6, 0xc7, 0x2a, 0x6b, 0x06, 0xa7, 0xd0,
|
0xc1, 0x28, 0x84, 0x52, 0xce, 0x9f, 0xca, 0xa4, 0xa3, 0x1d, 0xb0, 0x2e, 0xda, 0xd1, 0x6b, 0xb4,
|
||||||
0x78, 0xc7, 0xd6, 0x8b, 0xe5, 0xd3, 0xde, 0x38, 0xed, 0xf7, 0xa2, 0x35, 0x11, 0x7d, 0x18, 0x45,
|
0xc1, 0xb3, 0xcb, 0xc5, 0xf2, 0xc7, 0xce, 0x7a, 0x13, 0x76, 0xa2, 0xb3, 0x09, 0x43, 0xdc, 0x8b,
|
||||||
0x2d, 0xd5, 0x76, 0xb1, 0x7c, 0x7e, 0x81, 0x3c, 0x10, 0x44, 0x7b, 0x35, 0x74, 0x34, 0x81, 0xd8,
|
0x46, 0xe9, 0xcd, 0x62, 0xf9, 0xf4, 0x0c, 0x79, 0x20, 0x88, 0x09, 0x7a, 0xec, 0x69, 0x02, 0xb1,
|
||||||
0x00, 0x5e, 0x59, 0x98, 0x5e, 0xd7, 0xe3, 0xb5, 0x5e, 0xf0, 0xa1, 0xe1, 0x4b, 0x11, 0x71, 0xb4,
|
0x06, 0xbc, 0x76, 0x30, 0xbd, 0x5e, 0xee, 0x6f, 0xcc, 0x82, 0x8f, 0x2d, 0x5f, 0x8a, 0x84, 0x7b,
|
||||||
0x20, 0xb4, 0x89, 0xbd, 0x95, 0x63, 0xc9, 0x9d, 0x77, 0xc0, 0x5f, 0xfd, 0xb7, 0xa5, 0x8b, 0x9b,
|
0x07, 0xc2, 0xd8, 0x34, 0x38, 0xb5, 0xaf, 0xb8, 0x0f, 0x1e, 0xf8, 0x8b, 0xff, 0xb6, 0xf4, 0x69,
|
||||||
0xbf, 0x7b, 0x6a, 0xeb, 0xd5, 0x96, 0x3f, 0x67, 0x45, 0x7e, 0x18, 0xf1, 0x30, 0x2a, 0x8b, 0x41,
|
0xfd, 0x77, 0x4f, 0xe3, 0x82, 0xde, 0xf0, 0xa7, 0xa2, 0x94, 0x87, 0x11, 0x0f, 0xa3, 0xb2, 0x14,
|
||||||
0x95, 0x3c, 0x8f, 0x80, 0x68, 0xdc, 0x26, 0xe6, 0x51, 0xfc, 0x88, 0x17, 0x7d, 0xf9, 0x96, 0x57,
|
0x75, 0xc5, 0x65, 0x02, 0x44, 0xeb, 0xd7, 0x49, 0x26, 0xf1, 0x3d, 0x5d, 0x0c, 0xd5, 0x6b, 0x5e,
|
||||||
0xbf, 0x21, 0x27, 0xaa, 0x2a, 0x7b, 0x6f, 0xba, 0x49, 0x00, 0x36, 0x04, 0xbb, 0xe0, 0x33, 0xbd,
|
0xff, 0x86, 0x9c, 0xa8, 0xea, 0xe2, 0xad, 0xed, 0x27, 0x01, 0xd8, 0x18, 0xdd, 0x82, 0xcf, 0xf4,
|
||||||
0x8a, 0x91, 0x2f, 0xdf, 0x11, 0x32, 0x21, 0x8a, 0x7c, 0x96, 0xb4, 0xf6, 0x7a, 0x64, 0xde, 0x59,
|
0x3a, 0x25, 0xbe, 0x7c, 0x43, 0xc8, 0x8c, 0x28, 0xe5, 0x2c, 0x69, 0x13, 0xcc, 0x9e, 0x05, 0xef,
|
||||||
0x2f, 0x75, 0xc9, 0x3f, 0x01, 0x7e, 0x59, 0x2c, 0x89, 0xae, 0x3d, 0xab, 0xb2, 0x24, 0xd9, 0x9d,
|
0x82, 0x32, 0x15, 0xff, 0x00, 0xf8, 0x79, 0xb1, 0x24, 0xba, 0xee, 0xac, 0x2e, 0xb2, 0x64, 0x77,
|
||||||
0x6f, 0x70, 0x2f, 0x03, 0xbc, 0x68, 0x47, 0x95, 0xa2, 0xf1, 0xa1, 0x63, 0xe4, 0x45, 0xeb, 0xa9,
|
0xa1, 0xc5, 0x9d, 0x8a, 0xf0, 0xac, 0x1d, 0x55, 0xca, 0x36, 0xc4, 0x9e, 0x91, 0x17, 0x5d, 0xa0,
|
||||||
0xe7, 0xf6, 0xe6, 0xee, 0x9e, 0x33, 0x99, 0xe4, 0xa1, 0xe1, 0x86, 0x84, 0xe3, 0xcc, 0x50, 0x89,
|
0x9e, 0xdb, 0x4f, 0x77, 0xf7, 0x9c, 0xa9, 0x2c, 0x4f, 0xc5, 0x85, 0x1c, 0x33, 0x90, 0x33, 0x4b,
|
||||||
0xf4, 0x60, 0x19, 0x90, 0x72, 0x63, 0x4f, 0xa6, 0x74, 0x83, 0x45, 0xd3, 0xcb, 0x80, 0xf9, 0xd4,
|
0x35, 0x12, 0x84, 0x15, 0x40, 0xd2, 0xed, 0x07, 0x72, 0xa5, 0x1f, 0x1d, 0xda, 0x41, 0x45, 0x94,
|
||||||
0xbf, 0x22, 0x98, 0xe4, 0x74, 0x73, 0x1c, 0xea, 0xce, 0x90, 0x9b, 0x0f, 0xd3, 0xc5, 0xd7, 0x2e,
|
0x13, 0xc1, 0x8a, 0x60, 0x8a, 0xd3, 0xd5, 0x69, 0x6c, 0x7a, 0x4b, 0x76, 0x3e, 0x4c, 0x37, 0xdf,
|
||||||
0xa2, 0xb4, 0x16, 0x34, 0xdb, 0x41, 0x88, 0xc4, 0x78, 0xce, 0x8a, 0xd8, 0x4b, 0xc7, 0x32, 0x65,
|
0xf8, 0x84, 0xca, 0x39, 0x30, 0x6c, 0x0b, 0x31, 0x11, 0xe5, 0x39, 0x2b, 0xd3, 0xa0, 0x3c, 0x2b,
|
||||||
0x65, 0x8c, 0x25, 0x8f, 0xa6, 0xe7, 0xd5, 0xa9, 0x78, 0xfd, 0x46, 0x9c, 0xae, 0xea, 0x33, 0x5a,
|
0xb4, 0x53, 0x29, 0x55, 0x3c, 0xd9, 0x81, 0xd7, 0xa7, 0xe2, 0xe5, 0x2b, 0x71, 0xba, 0x6a, 0xce,
|
||||||
0x86, 0x8a, 0xb4, 0x44, 0xa8, 0x2e, 0xfd, 0x3e, 0x2d, 0xc1, 0xb0, 0x05, 0x66, 0x69, 0x84, 0x88,
|
0x68, 0x1b, 0x2a, 0xd2, 0x16, 0xb1, 0xbe, 0x0a, 0xbb, 0xbc, 0x05, 0xc3, 0x0e, 0x98, 0xa3, 0x11,
|
||||||
0xac, 0x36, 0x4e, 0x86, 0x91, 0x28, 0x24, 0xcb, 0xda, 0x00, 0x4d, 0xc9, 0x5b, 0xc4, 0x3e, 0x9e,
|
0x12, 0xb2, 0xc6, 0x7a, 0x15, 0xf7, 0x44, 0xa1, 0x58, 0xd1, 0x45, 0x68, 0x2b, 0xde, 0x21, 0x0e,
|
||||||
0xe7, 0xf9, 0xc6, 0x60, 0x3b, 0xd4, 0x42, 0xf9, 0x2e, 0xff, 0x60, 0x82, 0xf2, 0xde, 0x6f, 0x0d,
|
0xe9, 0x5c, 0xca, 0xb5, 0xc5, 0x6e, 0x6c, 0x84, 0x0e, 0xbd, 0x7c, 0x67, 0xa3, 0x0e, 0x21, 0x6c,
|
||||||
0xe4, 0xd3, 0xc6, 0x79, 0x00, 0x0b, 0x32, 0x42, 0xe4, 0x0c, 0x65, 0x20, 0xbb, 0x4a, 0xfe, 0xbd,
|
0x2c, 0xc8, 0x69, 0x65, 0x19, 0xc1, 0x81, 0x4a, 0x90, 0x38, 0x43, 0x15, 0xc9, 0xaf, 0x8a, 0x7f,
|
||||||
0xb6, 0xd2, 0x6d, 0x49, 0x15, 0xd3, 0x6d, 0x58, 0x96, 0x3c, 0x38, 0xf2, 0xd0, 0x17, 0x11, 0x5b,
|
0x6b, 0x9c, 0xf2, 0x1b, 0x92, 0xc5, 0xf6, 0x6b, 0x56, 0x64, 0x13, 0x8e, 0x3c, 0xf4, 0x45, 0xa4,
|
||||||
0x03, 0x56, 0x47, 0x61, 0xfc, 0x81, 0xf6, 0x48, 0xf1, 0x27, 0xb5, 0x88, 0xbb, 0xcd, 0x45, 0x52,
|
0xce, 0x82, 0x33, 0x49, 0xd8, 0x70, 0xa0, 0x3d, 0x52, 0xfc, 0x49, 0x2d, 0xd2, 0x76, 0x7d, 0x91,
|
||||||
0xbf, 0x6c, 0x68, 0xc2, 0x55, 0x7c, 0x1c, 0x48, 0xd9, 0x29, 0xa3, 0xb9, 0x4c, 0x3b, 0x14, 0xc6,
|
0xe5, 0xaf, 0x5a, 0x9a, 0x70, 0x95, 0x1e, 0x47, 0x92, 0x76, 0x0a, 0xa9, 0x54, 0x79, 0x87, 0xd2,
|
||||||
0xf5, 0x03, 0xb2, 0x59, 0xae, 0xc6, 0x58, 0x38, 0xe6, 0xf9, 0x28, 0x6a, 0x80, 0xc7, 0xc1, 0x04,
|
0xfa, 0x61, 0x44, 0x36, 0xcb, 0xd5, 0x5a, 0x07, 0xc7, 0x40, 0x1f, 0x45, 0x8d, 0xf0, 0x38, 0xda,
|
||||||
0xd0, 0x33, 0xba, 0x1e, 0x10, 0x29, 0x92, 0x33, 0x7c, 0x96, 0x91, 0xc8, 0x66, 0xa3, 0x4e, 0x8a,
|
0x08, 0x66, 0x46, 0x37, 0x23, 0x22, 0x65, 0x72, 0x86, 0xcf, 0x32, 0x12, 0xd9, 0xec, 0xd4, 0x49,
|
||||||
0x7c, 0x2e, 0xff, 0x03, 0x3a, 0x1f, 0x26, 0xed, 0x95, 0x35, 0x6a, 0x5b, 0xf2, 0xf5, 0x24, 0xfd,
|
0x29, 0xe7, 0xf2, 0x3f, 0xa0, 0xf3, 0x61, 0xd2, 0x5e, 0x3b, 0xab, 0x37, 0x15, 0xbf, 0x9c, 0xa4,
|
||||||
0x9a, 0x92, 0xfe, 0xab, 0x29, 0x79, 0x54, 0x15, 0xda, 0xec, 0xb2, 0x64, 0xe5, 0x94, 0x53, 0xa2,
|
0xbf, 0xa4, 0xa8, 0xff, 0x6a, 0xca, 0x1e, 0xd5, 0xa5, 0xb1, 0xdb, 0x22, 0x5b, 0x39, 0x05, 0x95,
|
||||||
0xa9, 0x12, 0x3b, 0x85, 0x4f, 0x08, 0x41, 0xe0, 0x44, 0x7e, 0x9b, 0x96, 0x65, 0xda, 0x33, 0xe7,
|
0x68, 0xea, 0xcc, 0x4e, 0xe9, 0x13, 0x42, 0x10, 0x38, 0x93, 0xdf, 0xe6, 0x65, 0x99, 0x09, 0xcc,
|
||||||
0x91, 0x29, 0xeb, 0xe9, 0xe0, 0x03, 0xcd, 0xda, 0x04, 0x88, 0x6d, 0xf2, 0xa3, 0x97, 0x1b, 0x60,
|
0x07, 0x64, 0xda, 0x05, 0x3a, 0x84, 0x48, 0xb3, 0xb6, 0x11, 0x52, 0x97, 0xfd, 0x18, 0xd4, 0x1a,
|
||||||
0xe7, 0xcb, 0x22, 0x27, 0xbe, 0x69, 0xdd, 0x29, 0x74, 0x53, 0x02, 0xa7, 0x5f, 0xfb, 0x27, 0x3b,
|
0xd8, 0xf9, 0xb2, 0x94, 0xc4, 0x37, 0xad, 0x3b, 0xa5, 0x6e, 0x8a, 0xe0, 0xf4, 0x6f, 0xff, 0x04,
|
||||||
0x01, 0xc5, 0x54, 0xf0, 0x03, 0x00, 0x00
|
0xfa, 0x00, 0xbc, 0xef, 0xf1, 0x03, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/welcome.htm, do not edit!!
|
// Autogenerated from wled00/data/welcome.htm, do not edit!!
|
||||||
const uint16_t PAGE_welcome_length = 1528;
|
const uint16_t PAGE_welcome_length = 1529;
|
||||||
const uint8_t PAGE_welcome[] PROGMEM = {
|
const uint8_t PAGE_welcome[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x56, 0x5b, 0x93, 0xaa, 0x3a,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x56, 0x5b, 0x93, 0xaa, 0x3a,
|
||||||
0x16, 0x7e, 0xef, 0x5f, 0xc1, 0x76, 0xea, 0xd4, 0x79, 0x70, 0x77, 0x73, 0x13, 0x51, 0xdb, 0xee,
|
0x16, 0x7e, 0xef, 0x5f, 0xc1, 0x76, 0xea, 0xd4, 0x79, 0x70, 0x77, 0x73, 0x13, 0x51, 0xdb, 0xee,
|
||||||
@ -177,18 +177,18 @@ const uint8_t PAGE_welcome[] PROGMEM = {
|
|||||||
0x72, 0xff, 0x3e, 0x19, 0x38, 0x4d, 0xa1, 0xcb, 0x04, 0x2e, 0x8e, 0x42, 0x82, 0xbd, 0x3c, 0xbe,
|
0x72, 0xff, 0x3e, 0x19, 0x38, 0x4d, 0xa1, 0xcb, 0x04, 0x2e, 0x8e, 0x42, 0x82, 0xbd, 0x3c, 0xbe,
|
||||||
0x07, 0xe3, 0x7e, 0x89, 0x10, 0x63, 0x17, 0xc4, 0xc2, 0x16, 0x0d, 0x90, 0x10, 0x42, 0xc2, 0x05,
|
0x07, 0xe3, 0x7e, 0x89, 0x10, 0x63, 0x17, 0xc4, 0xc2, 0x16, 0x0d, 0x90, 0x10, 0x42, 0xc2, 0x05,
|
||||||
0xf1, 0x6e, 0x73, 0xd7, 0x26, 0xe1, 0x09, 0xa7, 0x2e, 0x8f, 0x71, 0x7c, 0xfb, 0xf3, 0x8c, 0x52,
|
0xf1, 0x6e, 0x73, 0xd7, 0x26, 0xe1, 0x09, 0xa7, 0x2e, 0x8f, 0x71, 0x7c, 0xfb, 0xf3, 0x8c, 0x52,
|
||||||
0x0f, 0x9f, 0x5f, 0xca, 0xc5, 0x65, 0xc0, 0x97, 0x90, 0x40, 0xff, 0xad, 0x22, 0x72, 0xe1, 0x66,
|
0x0f, 0x9f, 0x5f, 0xca, 0xc5, 0x65, 0xc0, 0x97, 0x90, 0x40, 0xff, 0xad, 0xf2, 0x22, 0x72, 0xe5,
|
||||||
0x9c, 0x0e, 0x15, 0xcf, 0xc8, 0x47, 0x95, 0x3f, 0xdf, 0xef, 0x6e, 0xbe, 0x41, 0xce, 0xe0, 0xee,
|
0x66, 0x9c, 0x0f, 0x15, 0xcf, 0xc8, 0x47, 0x95, 0x3f, 0xdf, 0xef, 0x7e, 0xbe, 0x41, 0x4e, 0xe1,
|
||||||
0xe6, 0x41, 0x03, 0xbd, 0x3f, 0x8d, 0x73, 0xca, 0x29, 0x90, 0x6b, 0x99, 0x00, 0x0b, 0x11, 0x15,
|
0xee, 0xe7, 0xc1, 0x03, 0xbd, 0x3f, 0x8d, 0x73, 0xca, 0x39, 0x90, 0x6b, 0x99, 0x01, 0x0b, 0x11,
|
||||||
0xb8, 0xf6, 0xf1, 0xa4, 0x84, 0xce, 0xbc, 0x24, 0x05, 0xff, 0xdd, 0x16, 0xd1, 0xfb, 0x3f, 0x0b,
|
0x15, 0xb8, 0xf8, 0xf1, 0xac, 0x84, 0xce, 0xbc, 0x64, 0x05, 0xff, 0xdd, 0x16, 0xd1, 0xfb, 0x3f,
|
||||||
0xcf, 0x55, 0x09, 0x12, 0xca, 0x03, 0xaf, 0xf1, 0x3d, 0xb7, 0x52, 0xee, 0x09, 0x8e, 0xe9, 0x8f,
|
0x8c, 0xcf, 0x75, 0x09, 0x12, 0xca, 0x23, 0xaf, 0xf1, 0x3d, 0xbb, 0x52, 0xf0, 0x09, 0x8e, 0xe9,
|
||||||
0xbf, 0xc6, 0x16, 0xf9, 0xb6, 0xf3, 0xcd, 0x17, 0x1f, 0x65, 0x5d, 0xbc, 0xff, 0x07, 0xf9, 0x2f,
|
0x8f, 0xbf, 0x06, 0x17, 0xf9, 0xc6, 0xf3, 0xed, 0x17, 0x1f, 0x85, 0x5d, 0xbc, 0xff, 0x0b, 0xf9,
|
||||||
0xec, 0xfa, 0x82, 0xd2, 0x99, 0x08, 0x00, 0x00
|
0x2f, 0x52, 0xe7, 0x8f, 0x07, 0x9b, 0x08, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/liveview.htm, do not edit!!
|
// Autogenerated from wled00/data/liveview.htm, do not edit!!
|
||||||
const uint16_t PAGE_liveview_length = 547;
|
const uint16_t PAGE_liveview_length = 548;
|
||||||
const uint8_t PAGE_liveview[] PROGMEM = {
|
const uint8_t PAGE_liveview[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x53, 0x4d, 0x6f, 0xdb, 0x30,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x53, 0x4d, 0x6f, 0xdb, 0x30,
|
||||||
0x0c, 0xbd, 0xe7, 0x57, 0x78, 0x2a, 0x5a, 0x48, 0x88, 0x63, 0x3b, 0xc5, 0xba, 0x8f, 0xf8, 0xe3,
|
0x0c, 0xbd, 0xe7, 0x57, 0x78, 0x2a, 0x5a, 0x48, 0x88, 0x63, 0x3b, 0xc5, 0xba, 0x8f, 0xf8, 0xe3,
|
||||||
@ -212,128 +212,133 @@ const uint8_t PAGE_liveview[] PROGMEM = {
|
|||||||
0xbc, 0x11, 0x03, 0x6f, 0x74, 0x02, 0xec, 0xd5, 0x86, 0x4a, 0x2b, 0x7c, 0x1b, 0x6a, 0x4f, 0x1a,
|
0xbc, 0x11, 0x03, 0x6f, 0x74, 0x02, 0xec, 0xd5, 0x86, 0x4a, 0x2b, 0x7c, 0x1b, 0x6a, 0x4f, 0x1a,
|
||||||
0x25, 0x25, 0x18, 0xe6, 0x00, 0xbd, 0x33, 0x91, 0xd0, 0xc0, 0xdd, 0x83, 0x6a, 0x21, 0xdc, 0xa6,
|
0x25, 0x25, 0x18, 0xe6, 0x00, 0xbd, 0x33, 0x91, 0xd0, 0xc0, 0xdd, 0x83, 0x6a, 0x21, 0xdc, 0xa6,
|
||||||
0x23, 0x07, 0x8b, 0x7b, 0xab, 0xe4, 0x64, 0x97, 0x41, 0xd5, 0x93, 0x73, 0x22, 0x8b, 0x2f, 0xaf,
|
0x23, 0x07, 0x8b, 0x7b, 0xab, 0xe4, 0x64, 0x97, 0x41, 0xd5, 0x93, 0x73, 0x22, 0x8b, 0x2f, 0xaf,
|
||||||
0x32, 0xc6, 0xf2, 0x0d, 0xa0, 0x68, 0x28, 0x49, 0x7f, 0x77, 0xd6, 0xa4, 0x3a, 0xc8, 0x46, 0x58,
|
0x32, 0xc6, 0xf2, 0x0d, 0xa0, 0x68, 0x28, 0x49, 0xd2, 0xdf, 0x9d, 0x35, 0xa9, 0x0e, 0xba, 0x11,
|
||||||
0x12, 0x94, 0x36, 0x14, 0xcb, 0x8a, 0x62, 0x62, 0x1f, 0x9f, 0x9f, 0xe9, 0xbf, 0xa8, 0xff, 0xc3,
|
0x96, 0x04, 0xa9, 0x0d, 0xc5, 0xb2, 0xa2, 0x98, 0xd8, 0xc7, 0xe7, 0x67, 0xfa, 0x2f, 0xee, 0xff,
|
||||||
0x1a, 0x68, 0x63, 0x4c, 0x06, 0x42, 0xca, 0xd8, 0x2b, 0xdb, 0x7e, 0x28, 0x2e, 0xf4, 0x51, 0x2b,
|
0xd0, 0x06, 0xde, 0x18, 0x93, 0x81, 0x90, 0x32, 0xf6, 0xca, 0xb6, 0x1f, 0xaa, 0x0b, 0x8d, 0xd4,
|
||||||
0x13, 0xe8, 0x16, 0xb5, 0xe3, 0x52, 0x85, 0x32, 0xe8, 0xe7, 0x4c, 0x42, 0x1d, 0x93, 0xd8, 0x97,
|
0xca, 0x04, 0xba, 0x45, 0xed, 0xb8, 0x54, 0xa1, 0x0e, 0xfa, 0x39, 0x93, 0x50, 0xc7, 0x24, 0xf6,
|
||||||
0x98, 0x68, 0x90, 0x5d, 0x58, 0x4c, 0x8d, 0x4d, 0xbe, 0xb1, 0x8e, 0xaa, 0x32, 0xcb, 0x55, 0xe1,
|
0x25, 0x26, 0x1a, 0x64, 0x17, 0x16, 0x53, 0x63, 0x93, 0x6f, 0xac, 0xa3, 0xaa, 0xcc, 0x72, 0x55,
|
||||||
0x73, 0x35, 0x9f, 0xb3, 0xf1, 0xbe, 0x3d, 0x82, 0x7e, 0xaa, 0x5f, 0xb9, 0x3d, 0x22, 0xab, 0x0f,
|
0xf8, 0x5c, 0xcd, 0xe7, 0x6c, 0xbc, 0x6f, 0x8f, 0xa0, 0x9f, 0xea, 0x57, 0x6e, 0x8f, 0xc8, 0xea,
|
||||||
0x17, 0x17, 0xd4, 0x96, 0x36, 0xe9, 0xfc, 0xba, 0x43, 0xa7, 0x4c, 0x4d, 0x2f, 0x43, 0x0a, 0x30,
|
0xc3, 0xc5, 0x05, 0xb5, 0xa5, 0x4d, 0x3a, 0xbf, 0xee, 0xd0, 0x29, 0x53, 0xd3, 0xcb, 0x90, 0x02,
|
||||||
0x0f, 0xd3, 0x41, 0xe6, 0x36, 0x0e, 0x04, 0x8b, 0x65, 0x80, 0x0c, 0x07, 0x31, 0x61, 0x87, 0xe1,
|
0xcc, 0xc3, 0x78, 0x90, 0xb9, 0x8d, 0x03, 0xc1, 0x62, 0x19, 0x20, 0xc3, 0x41, 0x4c, 0xd8, 0x61,
|
||||||
0xcf, 0x48, 0xfc, 0xa2, 0x63, 0x0d, 0x78, 0xa3, 0x61, 0x30, 0xbf, 0xec, 0x6e, 0x25, 0x9d, 0x9a,
|
0xf8, 0x33, 0x12, 0xbf, 0x08, 0x59, 0x03, 0xde, 0x68, 0x18, 0xcc, 0x2f, 0xbb, 0x5b, 0x49, 0xa7,
|
||||||
0xc3, 0x92, 0xb1, 0x7f, 0xc9, 0xeb, 0x64, 0x94, 0x10, 0xbf, 0x45, 0x88, 0xf7, 0x19, 0x3b, 0xb0,
|
0xee, 0xb0, 0x64, 0x6c, 0x60, 0xf2, 0x3a, 0x1a, 0x25, 0xc4, 0x6f, 0x11, 0xe2, 0x7d, 0xc6, 0x0e,
|
||||||
0x44, 0xf0, 0x41, 0x5e, 0x7a, 0x6a, 0x24, 0x45, 0xb6, 0x7f, 0xb3, 0x9a, 0x07, 0xc6, 0xc6, 0x79,
|
0x2c, 0x11, 0x7c, 0xd0, 0x97, 0x9e, 0x3a, 0x49, 0x91, 0xed, 0xdf, 0xac, 0xe6, 0x81, 0xb1, 0x71,
|
||||||
0x9a, 0x86, 0xa5, 0x48, 0xa7, 0x51, 0x4a, 0xc7, 0x17, 0xf9, 0x07, 0xe3, 0xed, 0x60, 0x85, 0xa7,
|
0xa0, 0xa6, 0x69, 0x29, 0xd2, 0x69, 0x96, 0xd2, 0xf1, 0x49, 0xfe, 0x01, 0x0f, 0xfb, 0xef, 0x75,
|
||||||
0x03, 0x00, 0x00
|
0xa8, 0x03, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/liveviewws.htm, do not edit!!
|
// Autogenerated from wled00/data/liveviewws.htm, do not edit!!
|
||||||
const uint16_t PAGE_liveviewws_length = 711;
|
const uint16_t PAGE_liveviewws_length = 747;
|
||||||
const uint8_t PAGE_liveviewws[] PROGMEM = {
|
const uint8_t PAGE_liveviewws[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x5d, 0x8f, 0x9b, 0x3a,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x6d, 0x8f, 0x9b, 0x38,
|
||||||
0x10, 0x7d, 0xcf, 0xaf, 0xa0, 0xde, 0xdb, 0x2d, 0x56, 0x08, 0x24, 0xdb, 0xdb, 0x2f, 0xc0, 0x59,
|
0x10, 0xfe, 0x9e, 0x5f, 0x41, 0xbd, 0xd7, 0x2d, 0x28, 0x84, 0x90, 0x6d, 0xaf, 0x2f, 0x01, 0xa7,
|
||||||
0xb5, 0xb7, 0x79, 0xa8, 0xb4, 0x6a, 0x57, 0xda, 0x5e, 0xad, 0xaa, 0x55, 0xa4, 0x1a, 0x98, 0x80,
|
0xba, 0x5e, 0xf3, 0xe1, 0xa4, 0x55, 0xbb, 0xd2, 0xb6, 0x5a, 0x9d, 0x56, 0x91, 0x6a, 0x60, 0x02,
|
||||||
0xef, 0x82, 0x1d, 0xd9, 0x43, 0x50, 0x84, 0xf8, 0xef, 0x77, 0x20, 0xdb, 0xac, 0x2a, 0x95, 0x07,
|
0xbe, 0x05, 0x1b, 0xd9, 0x03, 0x28, 0x42, 0xfc, 0xf7, 0x1b, 0x93, 0x74, 0xab, 0x93, 0x8e, 0x0f,
|
||||||
0xdb, 0xc3, 0x9c, 0x99, 0x33, 0x33, 0x3e, 0x90, 0xbe, 0xf8, 0xfc, 0xed, 0x9f, 0xef, 0x3f, 0x6e,
|
0x60, 0x7b, 0xe6, 0x99, 0x97, 0x67, 0x1e, 0x93, 0xbe, 0xf8, 0xfc, 0xf5, 0xcf, 0x6f, 0x7f, 0xdf,
|
||||||
0x37, 0x5e, 0x85, 0x4d, 0xbd, 0x4e, 0x9f, 0x56, 0x90, 0xc5, 0x3a, 0x6d, 0x00, 0xa5, 0xa7, 0x65,
|
0xed, 0xbd, 0x0a, 0x9b, 0x7a, 0x97, 0x5e, 0xde, 0x20, 0x8a, 0x5d, 0xda, 0x00, 0x0a, 0x4f, 0x89,
|
||||||
0x03, 0x82, 0x1d, 0x14, 0x74, 0x7b, 0x63, 0x91, 0x79, 0xb3, 0xdc, 0x68, 0x04, 0x8d, 0x82, 0x75,
|
0x06, 0x38, 0xeb, 0x25, 0x0c, 0xad, 0x36, 0xc8, 0xbc, 0x45, 0xae, 0x15, 0x82, 0x42, 0xce, 0x06,
|
||||||
0xaa, 0xc0, 0x4a, 0x14, 0x70, 0x50, 0x39, 0x2c, 0x26, 0x23, 0x50, 0x5a, 0xa1, 0x92, 0xf5, 0xc2,
|
0x59, 0x60, 0xc5, 0x0b, 0xe8, 0x65, 0x0e, 0xab, 0x79, 0x13, 0x4a, 0x25, 0x51, 0x8a, 0x7a, 0x65,
|
||||||
0xe5, 0xb2, 0x06, 0xb1, 0x0a, 0x1a, 0x7a, 0xd1, 0xb4, 0xcd, 0x2f, 0x9b, 0x3d, 0xe5, 0x9c, 0xe5,
|
0x73, 0x51, 0x03, 0xdf, 0x84, 0x0d, 0x1d, 0x34, 0x5d, 0xf3, 0x73, 0xcf, 0x2e, 0x31, 0x17, 0x79,
|
||||||
0x95, 0xb4, 0x0e, 0x28, 0x47, 0x8b, 0xbb, 0xc5, 0x7b, 0xf6, 0x1b, 0x15, 0x56, 0xd0, 0xc0, 0x22,
|
0x25, 0x8c, 0x05, 0x8a, 0xd1, 0xe1, 0x71, 0xf5, 0x9e, 0xfd, 0x27, 0x15, 0x56, 0xd0, 0xc0, 0x2a,
|
||||||
0x37, 0xb5, 0xb1, 0xcc, 0x3b, 0x93, 0x5d, 0x5c, 0x4d, 0x0f, 0x41, 0x51, 0x61, 0x0d, 0xeb, 0xd9,
|
0xd7, 0xb5, 0x36, 0xcc, 0x7b, 0x4e, 0x76, 0x75, 0x33, 0x3f, 0xe4, 0x8a, 0x12, 0x6b, 0xd8, 0x2d,
|
||||||
0xfd, 0xcd, 0xe6, 0xb3, 0x77, 0xa3, 0x0e, 0xe0, 0xdd, 0x5a, 0x18, 0xcb, 0x4b, 0xa3, 0x93, 0x27,
|
0x1e, 0x6e, 0xf7, 0x9f, 0xbd, 0x5b, 0xd9, 0x83, 0x77, 0x67, 0xc0, 0x95, 0x97, 0xae, 0xcf, 0x96,
|
||||||
0x75, 0x78, 0x1c, 0x01, 0x99, 0x29, 0x8e, 0x7d, 0x23, 0x6d, 0xa9, 0x74, 0xbc, 0x1c, 0x2e, 0x72,
|
0xd4, 0xe2, 0xc9, 0x39, 0x64, 0xba, 0x38, 0x8d, 0x8d, 0x30, 0xa5, 0x54, 0xdb, 0x78, 0xba, 0xca,
|
||||||
0xa9, 0x0f, 0x7d, 0x26, 0xf3, 0xc7, 0xd2, 0x9a, 0x56, 0x17, 0xf1, 0xc5, 0x72, 0xb9, 0x4c, 0x76,
|
0x85, 0xea, 0xc7, 0x4c, 0xe4, 0x4f, 0xa5, 0xd1, 0x9d, 0x2a, 0xb6, 0x57, 0x71, 0x1c, 0x27, 0x47,
|
||||||
0xaa, 0x46, 0xb0, 0x71, 0x66, 0x55, 0x59, 0xa1, 0x06, 0xe7, 0xfc, 0xd5, 0xbb, 0x37, 0x2f, 0x79,
|
0x59, 0x23, 0x98, 0x6d, 0x66, 0x64, 0x59, 0xa1, 0x02, 0x6b, 0xfd, 0xcd, 0xbb, 0xdf, 0x5f, 0x06,
|
||||||
0x32, 0x75, 0x13, 0xaf, 0x96, 0xcb, 0x97, 0x49, 0x05, 0xa3, 0xef, 0x74, 0xde, 0x1b, 0x47, 0xfd,
|
0xc9, 0xdc, 0xcd, 0x76, 0x13, 0xc7, 0x2f, 0x93, 0x0a, 0x9c, 0xed, 0xbc, 0x6e, 0xb5, 0xa5, 0xfe,
|
||||||
0x19, 0x1d, 0xcb, 0xcc, 0x99, 0xba, 0x45, 0x18, 0x66, 0x69, 0x74, 0xa2, 0x4b, 0xa3, 0xd3, 0xcc,
|
0xb4, 0xda, 0x8a, 0xcc, 0xea, 0xba, 0x43, 0x98, 0x16, 0xe9, 0xfa, 0x9c, 0x2e, 0x5d, 0x9f, 0x39,
|
||||||
0x46, 0xd6, 0x75, 0x5a, 0xa8, 0x83, 0xa7, 0x0a, 0xc1, 0x46, 0x52, 0x2a, 0x39, 0x22, 0x9b, 0xea,
|
0x73, 0x59, 0x77, 0x69, 0x21, 0x7b, 0x4f, 0x16, 0x9c, 0xb9, 0xa4, 0x54, 0xf2, 0x9a, 0xf6, 0x54,
|
||||||
0xca, 0xad, 0xda, 0xe3, 0x7a, 0x76, 0x90, 0xd6, 0xeb, 0x5c, 0x82, 0xf6, 0xd8, 0x77, 0x4e, 0xa0,
|
0x57, 0x6e, 0x64, 0x8b, 0xbb, 0x45, 0x2f, 0x8c, 0x37, 0xd8, 0x04, 0xcd, 0x69, 0x1c, 0x2c, 0x47,
|
||||||
0xd9, 0x87, 0x9d, 0xd2, 0x85, 0xe9, 0xc2, 0xce, 0x0d, 0xb9, 0xc4, 0xbc, 0xf2, 0x81, 0xf7, 0x43,
|
0xdd, 0x46, 0x83, 0x54, 0x85, 0x1e, 0xa2, 0xc1, 0x4e, 0xb9, 0xc0, 0xbc, 0xf2, 0x21, 0x18, 0x27,
|
||||||
0xe7, 0x2e, 0x2f, 0x3b, 0x17, 0x5a, 0xca, 0x7a, 0xbc, 0x43, 0x89, 0x20, 0x84, 0xb8, 0x87, 0xec,
|
0x79, 0xf4, 0x07, 0x7b, 0x7d, 0x3d, 0xd8, 0xc8, 0x50, 0xe0, 0xd3, 0x3d, 0x0a, 0x04, 0xce, 0xf9,
|
||||||
0xce, 0xe4, 0x8f, 0x80, 0xe1, 0xb7, 0xdb, 0xcd, 0xd7, 0x6b, 0x72, 0x3b, 0xd0, 0x85, 0xcf, 0xfa,
|
0x03, 0x64, 0xf7, 0x3a, 0x7f, 0x02, 0x8c, 0xbe, 0xde, 0xed, 0xbf, 0x04, 0x64, 0xb6, 0xa0, 0x0a,
|
||||||
0x57, 0xf5, 0xe1, 0x55, 0x8c, 0xb6, 0x85, 0x81, 0xf1, 0xd8, 0xa7, 0xa1, 0x51, 0x79, 0x10, 0x2a,
|
0x9f, 0x8d, 0xaf, 0xea, 0xfe, 0xd5, 0x16, 0x4d, 0x07, 0x13, 0x0b, 0x12, 0xa8, 0x2d, 0x8c, 0x35,
|
||||||
0xbd, 0x33, 0x3e, 0xbb, 0x05, 0x78, 0xf4, 0xee, 0xef, 0x3c, 0xb3, 0x07, 0xad, 0x74, 0xc9, 0x78,
|
0xa0, 0x07, 0xfc, 0x12, 0xbb, 0xd6, 0x14, 0x9a, 0x4a, 0x0f, 0x91, 0x43, 0xd4, 0x0a, 0xac, 0x1c,
|
||||||
0xe0, 0x13, 0xad, 0x86, 0xce, 0x3b, 0xa7, 0xf3, 0x7d, 0x56, 0x21, 0xee, 0x5d, 0xcc, 0x84, 0x78,
|
0xd9, 0xa1, 0xe1, 0x18, 0xd9, 0x9a, 0xe6, 0xe7, 0x6f, 0x42, 0x8c, 0x28, 0x90, 0x7d, 0x90, 0x58,
|
||||||
0xaa, 0xa5, 0x36, 0x54, 0x0a, 0xb5, 0x1a, 0xee, 0xad, 0x41, 0x43, 0xb7, 0x71, 0xcd, 0x3a, 0xe7,
|
0xf9, 0x6c, 0xcd, 0x82, 0x8f, 0xab, 0xcd, 0xb6, 0xd7, 0xb2, 0xf0, 0xe2, 0x20, 0xb2, 0x6d, 0x2d,
|
||||||
0x58, 0x4c, 0x2b, 0xe3, 0x73, 0x16, 0x47, 0x11, 0x9b, 0x17, 0x26, 0x6f, 0x1b, 0xba, 0x9d, 0x67,
|
0x71, 0x3e, 0x0d, 0x15, 0xc1, 0x35, 0xd1, 0x25, 0x15, 0xd5, 0xd5, 0xd6, 0x82, 0xa0, 0xac, 0x42,
|
||||||
0x70, 0x65, 0x1c, 0xce, 0x59, 0x34, 0x62, 0x78, 0x68, 0xf4, 0x48, 0x29, 0x76, 0xad, 0xce, 0x47,
|
0x6c, 0x59, 0xc8, 0x06, 0x4b, 0x99, 0x4d, 0x54, 0x83, 0x2a, 0xb1, 0xda, 0x6d, 0xae, 0xaf, 0x7d,
|
||||||
0xa7, 0xcf, 0xfb, 0x3f, 0x17, 0x3c, 0xf0, 0x80, 0x1c, 0x99, 0xd2, 0xd2, 0x1e, 0xbf, 0x1f, 0xf7,
|
0xb5, 0xe4, 0x04, 0x5a, 0x9a, 0xc7, 0xf8, 0x10, 0x84, 0xd4, 0x0e, 0x57, 0x30, 0x78, 0xcf, 0x1d,
|
||||||
0x24, 0x01, 0x69, 0xad, 0x3c, 0x66, 0xed, 0x6e, 0x07, 0x96, 0x8d, 0x3e, 0x59, 0x14, 0x9b, 0x03,
|
0x90, 0x99, 0xad, 0x1d, 0x28, 0x88, 0xb4, 0xd2, 0x2d, 0x28, 0x7e, 0xec, 0x54, 0xee, 0x8a, 0xf4,
|
||||||
0x11, 0xdd, 0x28, 0x47, 0x6a, 0x00, 0xeb, 0xb3, 0x86, 0xee, 0x4a, 0x96, 0xc0, 0x02, 0x10, 0xeb,
|
0x83, 0xf1, 0xff, 0x1b, 0x9b, 0x26, 0x3a, 0xcf, 0xa4, 0x12, 0xe6, 0xf4, 0xed, 0xd4, 0x92, 0x58,
|
||||||
0x7e, 0x9c, 0xa4, 0xda, 0xf9, 0xec, 0xc1, 0x64, 0xff, 0x41, 0x8e, 0xde, 0xc7, 0x31, 0xfc, 0xd3,
|
0x84, 0x31, 0xe2, 0x94, 0x75, 0xc7, 0x23, 0x18, 0x16, 0x92, 0x4d, 0x14, 0xc5, 0xbe, 0x27, 0xc1,
|
||||||
0x14, 0xbe, 0xa5, 0x8e, 0x68, 0xc4, 0x77, 0x68, 0xa9, 0xf5, 0x90, 0x54, 0x58, 0xfb, 0x10, 0x16,
|
0xdc, 0x4a, 0x4b, 0xba, 0x01, 0xe3, 0xb3, 0x86, 0xa6, 0x2a, 0x4a, 0x60, 0x21, 0xf0, 0xdd, 0xe8,
|
||||||
0x12, 0x25, 0xe7, 0x7d, 0x0d, 0xe8, 0xc1, 0x34, 0x88, 0x7f, 0x95, 0xc6, 0xf7, 0x53, 0x94, 0x0f,
|
0x38, 0x27, 0x62, 0xd9, 0xa3, 0xce, 0xfe, 0x81, 0x1c, 0xbd, 0x3f, 0x1c, 0xfc, 0xd3, 0x0c, 0x3f,
|
||||||
0x23, 0xcf, 0x09, 0x91, 0x50, 0xce, 0x77, 0x6f, 0x5f, 0x08, 0x78, 0x58, 0x6e, 0xb9, 0x05, 0x6c,
|
0x30, 0x62, 0x17, 0xf5, 0x3d, 0x1a, 0xa9, 0xca, 0x88, 0xf4, 0x5a, 0xfb, 0x10, 0x15, 0x02, 0x45,
|
||||||
0xad, 0x4e, 0xc6, 0x18, 0x52, 0x63, 0xad, 0x34, 0x48, 0xbb, 0x28, 0xad, 0x2c, 0x14, 0xe1, 0xfd,
|
0x10, 0x5c, 0x98, 0x74, 0xc5, 0x7f, 0x97, 0x0a, 0xdf, 0xcf, 0x28, 0x1f, 0x5c, 0x9e, 0xb3, 0x47,
|
||||||
0x0f, 0xcb, 0x02, 0xca, 0x80, 0x05, 0x5a, 0x40, 0x58, 0x83, 0x2e, 0xe9, 0x53, 0xb0, 0xe2, 0x4a,
|
0x42, 0x31, 0xdf, 0xbd, 0x7d, 0xc1, 0xc1, 0x35, 0x6a, 0x00, 0x3b, 0xa3, 0x12, 0x87, 0x21, 0xdd,
|
||||||
0x50, 0xe8, 0x6a, 0x7b, 0xfd, 0x77, 0x7c, 0x95, 0xec, 0x8c, 0xf5, 0x95, 0xb0, 0x89, 0x4a, 0x75,
|
0xd6, 0x52, 0x81, 0x30, 0xab, 0xd2, 0x88, 0x42, 0x92, 0xbf, 0xff, 0x21, 0x2e, 0xa0, 0x0c, 0x19,
|
||||||
0xa2, 0xe6, 0xe2, 0x35, 0xc7, 0xb9, 0xf8, 0x69, 0xcb, 0xcc, 0xff, 0xab, 0x87, 0x07, 0xb5, 0x1d,
|
0x31, 0x0f, 0x17, 0xa6, 0x88, 0xd2, 0x1b, 0x4e, 0xd0, 0xcd, 0xe1, 0xe3, 0x9b, 0xed, 0x4d, 0x72,
|
||||||
0x82, 0x69, 0x9f, 0xaf, 0xce, 0xa7, 0xab, 0xed, 0xc0, 0x7f, 0x06, 0x04, 0x5f, 0xbc, 0xbe, 0xbc,
|
0xd4, 0xc6, 0x97, 0x5c, 0x25, 0x32, 0x35, 0x89, 0x5c, 0xf2, 0xd7, 0x01, 0x2e, 0xf9, 0x0f, 0x53,
|
||||||
0xf4, 0x09, 0xcd, 0x02, 0xc6, 0x93, 0x71, 0xe7, 0x2c, 0x38, 0x0f, 0xbe, 0x04, 0xdc, 0xd4, 0x30,
|
0x66, 0xfe, 0x6f, 0x23, 0x3c, 0xca, 0xc3, 0x14, 0xce, 0xdf, 0xe5, 0xe6, 0x79, 0x75, 0x73, 0x98,
|
||||||
0x1e, 0x3f, 0x1d, 0xbf, 0xd0, 0x5c, 0x27, 0xbd, 0xf1, 0x70, 0x92, 0x64, 0xf8, 0x2c, 0x76, 0x81,
|
0x82, 0x1f, 0x21, 0xb9, 0xaf, 0x5e, 0x13, 0xe5, 0xe4, 0x4d, 0xa3, 0x08, 0x12, 0xf7, 0x0d, 0x58,
|
||||||
0xc3, 0xb3, 0xb2, 0x7e, 0xa9, 0x03, 0xac, 0xa5, 0xa2, 0xce, 0xf2, 0x98, 0xcc, 0x98, 0x06, 0xca,
|
0x58, 0xe8, 0xbc, 0x6b, 0x5c, 0x9d, 0x25, 0xe0, 0xbe, 0x06, 0xb7, 0xfc, 0x74, 0xfa, 0x8b, 0x68,
|
||||||
0x87, 0x81, 0x8f, 0xb2, 0x3e, 0xa9, 0x35, 0x8d, 0x4e, 0x8a, 0x8e, 0xa6, 0x1f, 0xc3, 0xff, 0x16,
|
0x9d, 0x95, 0x49, 0x93, 0x75, 0xe2, 0x8d, 0x7e, 0x5d, 0x0b, 0x8e, 0xd3, 0x2f, 0x0d, 0xd2, 0xe5,
|
||||||
0x7e, 0x9e, 0x8e, 0x2e, 0x04, 0x00, 0x00
|
0x23, 0x99, 0x43, 0x04, 0xc6, 0x50, 0x51, 0xec, 0x0e, 0xe0, 0xc9, 0x7b, 0xb8, 0xf7, 0xe6, 0xed,
|
||||||
|
0x96, 0x08, 0xa5, 0x71, 0x04, 0xee, 0x02, 0x9c, 0x75, 0x9d, 0xae, 0xcf, 0xda, 0x5f, 0xcf, 0xbf,
|
||||||
|
0x90, 0x7f, 0x01, 0x26, 0x24, 0x5a, 0x77, 0x58, 0x04, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/liveviewws2D.htm, do not edit!!
|
// Autogenerated from wled00/data/liveviewws2D.htm, do not edit!!
|
||||||
const uint16_t PAGE_liveviewws2D_length = 818;
|
const uint16_t PAGE_liveviewws2D_length = 870;
|
||||||
const uint8_t PAGE_liveviewws2D[] PROGMEM = {
|
const uint8_t PAGE_liveviewws2D[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x6d, 0x6f, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x6d, 0x54, 0x6d, 0x6f, 0xdb, 0x36,
|
||||||
0x10, 0xfe, 0xee, 0x5f, 0xa1, 0x70, 0x43, 0x2b, 0xda, 0xb2, 0xe4, 0xb8, 0xed, 0x96, 0xd9, 0xa2,
|
0x10, 0xfe, 0xee, 0x5f, 0xa1, 0x70, 0x43, 0x2a, 0xc6, 0xb2, 0x64, 0xbb, 0xed, 0x96, 0xc5, 0xa2,
|
||||||
0x8b, 0x36, 0x35, 0xb0, 0x02, 0xd9, 0x6a, 0xc0, 0x19, 0x82, 0x21, 0x30, 0x50, 0x5a, 0x3a, 0x5b,
|
0x87, 0x35, 0x0d, 0xb0, 0x02, 0xd9, 0x6a, 0x20, 0x19, 0x82, 0x21, 0x30, 0x50, 0x5a, 0x3a, 0x5b,
|
||||||
0x5c, 0x25, 0xd2, 0xa0, 0xce, 0x96, 0x35, 0x47, 0xff, 0x7d, 0x47, 0xc9, 0xf1, 0x32, 0x74, 0xfa,
|
0x5c, 0x25, 0xd2, 0x20, 0xcf, 0x96, 0x35, 0x47, 0xff, 0x7d, 0x47, 0xc9, 0xc9, 0x32, 0x74, 0xfe,
|
||||||
0x40, 0x91, 0xf7, 0xf2, 0xdc, 0xf1, 0xb9, 0x3b, 0xc6, 0x57, 0x9f, 0xbe, 0xdc, 0xde, 0xff, 0xb9,
|
0x20, 0x93, 0xf7, 0xf2, 0xdc, 0xdb, 0x73, 0x4c, 0xcf, 0x3e, 0x7e, 0xbe, 0xbe, 0xff, 0x73, 0x71,
|
||||||
0x98, 0x7b, 0x19, 0x16, 0xf9, 0x2c, 0x3e, 0xaf, 0x20, 0xd3, 0x59, 0x5c, 0x00, 0x4a, 0x4f, 0xcb,
|
0x13, 0x14, 0x58, 0x95, 0xf3, 0xf4, 0xf4, 0x05, 0x99, 0xcf, 0xd3, 0x0a, 0x50, 0x06, 0x5a, 0x56,
|
||||||
0x02, 0x04, 0x3b, 0x28, 0xa8, 0x76, 0xc6, 0x22, 0xf3, 0x7a, 0x89, 0xd1, 0x08, 0x1a, 0x05, 0xab,
|
0x20, 0xd8, 0x5e, 0x41, 0xbd, 0x35, 0x16, 0x59, 0x30, 0xc8, 0x8c, 0x46, 0xd0, 0x28, 0x58, 0xad,
|
||||||
0x54, 0x8a, 0x99, 0x48, 0xe1, 0xa0, 0x12, 0x18, 0xb6, 0x87, 0x40, 0x69, 0x85, 0x4a, 0xe6, 0xc3,
|
0x72, 0x2c, 0x44, 0x0e, 0x7b, 0x95, 0xc1, 0xa8, 0xbb, 0x44, 0x4a, 0x2b, 0x54, 0xb2, 0x1c, 0xb9,
|
||||||
0x32, 0x91, 0x39, 0x88, 0xeb, 0xa0, 0x20, 0x41, 0xb1, 0x2f, 0x9e, 0xcf, 0xec, 0x8c, 0xd9, 0x4b,
|
0x4c, 0x96, 0x20, 0x26, 0x51, 0x45, 0x82, 0x6a, 0x57, 0x3d, 0xdf, 0xd9, 0x09, 0x73, 0x90, 0x15,
|
||||||
0x32, 0x69, 0x4b, 0x20, 0x8c, 0x3d, 0x6e, 0x86, 0x37, 0xec, 0x3f, 0xa1, 0x30, 0x83, 0x02, 0x86,
|
0xd2, 0x3a, 0x20, 0x8c, 0x1d, 0xae, 0x47, 0x97, 0xec, 0x3f, 0xa1, 0xb0, 0x80, 0x0a, 0x46, 0x99,
|
||||||
0x89, 0xc9, 0x8d, 0x65, 0xde, 0x25, 0xd8, 0x0f, 0xe3, 0xf6, 0x23, 0x53, 0x54, 0x98, 0xc3, 0xac,
|
0x29, 0x8d, 0x65, 0xc1, 0x4b, 0xb0, 0xef, 0xa6, 0xdd, 0x8f, 0x4c, 0x51, 0x61, 0x09, 0xf3, 0xc1,
|
||||||
0xf7, 0x70, 0x37, 0xff, 0xe4, 0xdd, 0xa9, 0x03, 0x78, 0x0b, 0x0b, 0x2e, 0xbd, 0x38, 0xea, 0x34,
|
0xc3, 0xed, 0xcd, 0xc7, 0xe0, 0x56, 0xed, 0x21, 0x58, 0x58, 0xf0, 0xe9, 0xa5, 0x49, 0xaf, 0x49,
|
||||||
0x71, 0x89, 0x35, 0xfd, 0xd6, 0x26, 0xad, 0x4f, 0x85, 0xb4, 0x5b, 0xa5, 0x27, 0xa3, 0x26, 0x8e,
|
0x1d, 0x36, 0xf4, 0xb7, 0x32, 0x79, 0x73, 0xac, 0xa4, 0xdd, 0x28, 0x7d, 0x35, 0x6e, 0xd3, 0xa4,
|
||||||
0x3a, 0x69, 0x1c, 0x75, 0x57, 0x73, 0xda, 0x59, 0x9c, 0x48, 0x7d, 0x90, 0xa5, 0xd7, 0x53, 0xa9,
|
0x97, 0xa6, 0x49, 0x5f, 0x9a, 0xd7, 0xce, 0xd3, 0x4c, 0xea, 0xbd, 0x74, 0xc1, 0x40, 0xe5, 0x82,
|
||||||
0x60, 0x6e, 0x4f, 0xe8, 0x51, 0x27, 0x23, 0x94, 0xc4, 0xaa, 0x1d, 0xce, 0x7a, 0x07, 0x69, 0xbd,
|
0xf9, 0x33, 0xa1, 0x27, 0xbd, 0x8c, 0x50, 0x32, 0xab, 0xb6, 0x38, 0x1f, 0xec, 0xa5, 0x0d, 0x32,
|
||||||
0x44, 0xa4, 0x26, 0xd9, 0x17, 0x94, 0x48, 0xb8, 0x05, 0x9c, 0xe7, 0xe0, 0xb6, 0x1f, 0xeb, 0xcf,
|
0x91, 0x9b, 0x6c, 0x57, 0x51, 0x22, 0xf1, 0x06, 0xf0, 0xa6, 0x04, 0x7f, 0xfc, 0xd0, 0x7c, 0xca,
|
||||||
0xa9, 0xdf, 0xb9, 0xf1, 0x20, 0x87, 0xb4, 0x14, 0x8c, 0x05, 0x98, 0x59, 0x83, 0x94, 0x45, 0x2a,
|
0xc3, 0xde, 0x8d, 0x47, 0x25, 0xe4, 0x4e, 0x30, 0x16, 0x61, 0x61, 0x0d, 0x52, 0x16, 0xb9, 0x38,
|
||||||
0xae, 0xae, 0xa7, 0x9b, 0xbd, 0x4e, 0x50, 0x19, 0xed, 0xd1, 0x55, 0x6f, 0x5b, 0x58, 0x9f, 0x9f,
|
0x9b, 0xcc, 0xd6, 0x3b, 0x9d, 0xa1, 0x32, 0x3a, 0xa0, 0x52, 0xaf, 0x3b, 0xd8, 0x90, 0x1f, 0xb3,
|
||||||
0x92, 0xb0, 0xe3, 0x2d, 0xfc, 0xe5, 0xa6, 0x5f, 0x29, 0x9d, 0x9a, 0x2a, 0x54, 0x5a, 0x83, 0x7d,
|
0xb8, 0xef, 0x5b, 0xfc, 0xd3, 0xe5, 0x45, 0xad, 0x74, 0x6e, 0xea, 0x58, 0x69, 0x0d, 0xf6, 0xa1,
|
||||||
0x68, 0x09, 0x4c, 0xc2, 0x0c, 0xd4, 0x36, 0xc3, 0xef, 0xd4, 0xbf, 0xb6, 0xe2, 0xe6, 0x05, 0xd2,
|
0x6b, 0x60, 0x16, 0x17, 0xa0, 0x36, 0x05, 0x7e, 0xa3, 0xfe, 0xb5, 0x13, 0xb7, 0xaf, 0x90, 0x66,
|
||||||
0xb4, 0xcd, 0x0c, 0x8f, 0x22, 0x71, 0x49, 0xdd, 0x3a, 0xa2, 0x8e, 0xe8, 0xb3, 0x71, 0xca, 0xf8,
|
0x5d, 0x66, 0x78, 0x10, 0x99, 0x4f, 0xea, 0xda, 0x37, 0xea, 0x80, 0x21, 0x9b, 0xe6, 0x8c, 0xcf,
|
||||||
0x54, 0x6d, 0x7c, 0xd2, 0xf0, 0x93, 0x33, 0xa9, 0xca, 0x29, 0xda, 0xfa, 0x54, 0x95, 0x02, 0xcd,
|
0xd4, 0x3a, 0x24, 0x0d, 0x3f, 0x7a, 0x93, 0xda, 0xcd, 0xd0, 0x36, 0xc7, 0xda, 0x09, 0x34, 0xdb,
|
||||||
0x2e, 0x3c, 0x63, 0x56, 0x65, 0x93, 0x48, 0x4c, 0x32, 0x1f, 0xf9, 0xa9, 0xa9, 0xca, 0x57, 0xaf,
|
0xf8, 0x84, 0x59, 0xbb, 0x36, 0x93, 0x98, 0x15, 0x21, 0xf2, 0x63, 0x4b, 0xd6, 0xb5, 0x3b, 0x3f,
|
||||||
0xaa, 0x32, 0xb4, 0xc4, 0x4c, 0xbd, 0x44, 0x89, 0x20, 0x84, 0x78, 0x80, 0xf5, 0xd2, 0x24, 0xdf,
|
0xaf, 0x5d, 0x6c, 0xa9, 0x39, 0xcd, 0x1d, 0x4a, 0x04, 0x21, 0xc4, 0x03, 0xac, 0xee, 0x4c, 0xf6,
|
||||||
0x00, 0xc3, 0x2f, 0x8b, 0xf9, 0xef, 0xef, 0x49, 0x5d, 0x82, 0xa6, 0xfb, 0x9e, 0x5e, 0xe7, 0x87,
|
0x15, 0x30, 0xfe, 0xbc, 0xb8, 0xf9, 0x9d, 0x93, 0xda, 0x81, 0xa6, 0x92, 0x8f, 0x6f, 0xca, 0xfd,
|
||||||
0xd7, 0x13, 0xb4, 0x7b, 0x68, 0x18, 0x9f, 0xf8, 0x84, 0xaa, 0xa1, 0xf2, 0x2e, 0xd6, 0xbe, 0xcf,
|
0x9b, 0x2b, 0xb4, 0x3b, 0x68, 0x29, 0x14, 0x94, 0x0e, 0x8e, 0x25, 0x60, 0x80, 0xe2, 0x84, 0x5d,
|
||||||
0x32, 0xc4, 0x5d, 0x39, 0x61, 0x42, 0x9c, 0x43, 0xe5, 0x86, 0x22, 0x11, 0x0b, 0xe1, 0x8e, 0xa8,
|
0x1a, 0x82, 0xa6, 0xb2, 0x23, 0x10, 0x18, 0x6f, 0x25, 0x16, 0x7e, 0xae, 0x91, 0x15, 0x10, 0xbb,
|
||||||
0x31, 0x54, 0xd7, 0xf7, 0xac, 0x2a, 0x4b, 0x36, 0xa1, 0x95, 0xf1, 0x01, 0x9b, 0x44, 0x11, 0x1b,
|
0x92, 0xa8, 0x12, 0x4e, 0x22, 0x88, 0x09, 0xc8, 0x3d, 0x28, 0x2c, 0x42, 0x96, 0x30, 0xfe, 0xf3,
|
||||||
0x5c, 0xe8, 0xbd, 0x18, 0x67, 0xa6, 0xc4, 0x01, 0x8b, 0x9c, 0x0d, 0x0f, 0x8d, 0x36, 0x3b, 0xd0,
|
0x68, 0x72, 0xb5, 0x37, 0x2a, 0x0f, 0xc6, 0x3c, 0x76, 0xdb, 0x52, 0x61, 0x27, 0x8d, 0x34, 0xb9,
|
||||||
0xc2, 0xe7, 0x62, 0x76, 0xfa, 0xff, 0x4c, 0x9a, 0x80, 0xe4, 0x6b, 0xa5, 0xa5, 0xad, 0xef, 0xeb,
|
0x1b, 0xab, 0x68, 0x80, 0x94, 0xd7, 0xb6, 0x94, 0xe4, 0xca, 0x0a, 0xc4, 0x2d, 0x8b, 0x58, 0xed,
|
||||||
0x1d, 0x75, 0x91, 0xb4, 0x56, 0xd6, 0xeb, 0xfd, 0x66, 0x03, 0x96, 0x39, 0x9d, 0x4c, 0xd3, 0xf9,
|
0x28, 0xb2, 0x8d, 0x4b, 0xd0, 0x1b, 0x2c, 0xe6, 0x93, 0xf3, 0xf3, 0x50, 0x0f, 0x05, 0x39, 0x0d,
|
||||||
0x81, 0x22, 0xdc, 0xa9, 0x92, 0x1a, 0x0a, 0xac, 0xcf, 0x0a, 0x28, 0x4b, 0xb9, 0x05, 0xaa, 0x19,
|
0xed, 0xe3, 0x78, 0xc9, 0x23, 0x2a, 0x47, 0x68, 0xa8, 0x83, 0x97, 0x0a, 0x48, 0xcd, 0x12, 0xef,
|
||||||
0xa1, 0x3a, 0x86, 0x88, 0x34, 0xf6, 0x68, 0xd6, 0x7f, 0x41, 0x82, 0xde, 0x07, 0xe7, 0xfe, 0xb1,
|
0xc4, 0x63, 0xa3, 0xcd, 0x16, 0xb4, 0x08, 0xb9, 0x98, 0x1f, 0xff, 0xbf, 0xa4, 0xb6, 0x25, 0xf9,
|
||||||
0x75, 0x5f, 0xd1, 0x55, 0x88, 0xba, 0x25, 0x5a, 0xa5, 0xb7, 0x21, 0x35, 0x72, 0xee, 0x63, 0x98,
|
0x4a, 0x69, 0x69, 0x9b, 0xfb, 0x66, 0x4b, 0x8c, 0x94, 0xd6, 0xca, 0x66, 0xb5, 0x5b, 0xaf, 0xc1,
|
||||||
0x4a, 0x94, 0x9c, 0x9f, 0x72, 0x40, 0x0f, 0x5b, 0x06, 0xfe, 0x50, 0x1a, 0x6f, 0x5a, 0x2f, 0x1f,
|
0xb2, 0x88, 0x74, 0x32, 0xcf, 0x6f, 0xf6, 0xc4, 0x80, 0x5b, 0xe5, 0x88, 0x9c, 0x60, 0x43, 0x56,
|
||||||
0x5c, 0x9c, 0xce, 0xc2, 0x15, 0xe2, 0xe7, 0x9f, 0xae, 0x04, 0x3e, 0x8e, 0x56, 0x4f, 0x4f, 0x63,
|
0x81, 0x73, 0x72, 0x03, 0x34, 0x7f, 0x42, 0xf5, 0xdd, 0xa6, 0x96, 0xb2, 0x47, 0xb3, 0xfa, 0x0b,
|
||||||
0xb7, 0xb9, 0xa6, 0xcd, 0x95, 0x2b, 0x8e, 0x05, 0xdc, 0x5b, 0x3d, 0x75, 0x10, 0x96, 0xe4, 0xe3,
|
0x32, 0x0c, 0x7e, 0xf1, 0xee, 0x1f, 0x3a, 0xf7, 0x25, 0xa3, 0xbe, 0xa2, 0xb9, 0x43, 0xab, 0xf4,
|
||||||
0x55, 0xa0, 0xe9, 0xf7, 0x66, 0x15, 0x18, 0xf1, 0x9b, 0xc4, 0x2c, 0xa4, 0xd9, 0xf1, 0xcf, 0xcd,
|
0x26, 0xa6, 0xa5, 0x28, 0x43, 0x8c, 0x73, 0x89, 0x92, 0xf3, 0x53, 0x0f, 0x7d, 0xda, 0x7f, 0x28,
|
||||||
0x12, 0xd9, 0x4b, 0x63, 0x44, 0x9a, 0x07, 0xb2, 0x33, 0xd8, 0xe4, 0xc6, 0x58, 0xff, 0xd9, 0x66,
|
0x8d, 0x97, 0x9d, 0x57, 0x08, 0x3e, 0x4e, 0x6f, 0xe1, 0x87, 0xfa, 0xe3, 0x0f, 0x67, 0x02, 0xa9,
|
||||||
0x68, 0xfa, 0x96, 0x47, 0xe3, 0xae, 0x2d, 0x40, 0xbc, 0x9d, 0x6e, 0x48, 0x59, 0x8b, 0xf0, 0xdd,
|
0xc4, 0xa7, 0xa7, 0xa9, 0x3f, 0x4c, 0xe8, 0x70, 0xe6, 0x07, 0x6d, 0x01, 0x77, 0x56, 0xcf, 0x3c,
|
||||||
0xb4, 0x8e, 0xf5, 0xb4, 0x1e, 0x0c, 0xb8, 0x13, 0x1c, 0x9d, 0xe0, 0x18, 0xdb, 0xe9, 0x91, 0x04,
|
0x84, 0x25, 0xf9, 0x74, 0xe9, 0x9b, 0xf7, 0xf8, 0x76, 0x19, 0x49, 0xf1, 0x1b, 0x0d, 0x20, 0xa6,
|
||||||
0x94, 0x45, 0xb8, 0x51, 0x79, 0xbe, 0x74, 0xa3, 0x21, 0xbe, 0xda, 0xed, 0xda, 0xff, 0xf1, 0x84,
|
0x3d, 0x0c, 0x4f, 0xc4, 0x4b, 0xec, 0x0b, 0xc9, 0x12, 0xcd, 0x23, 0xd5, 0x1b, 0xac, 0x4b, 0x63,
|
||||||
0x8f, 0xb0, 0x6a, 0x82, 0xf6, 0x3f, 0xb8, 0xbe, 0xec, 0xc6, 0xab, 0x86, 0x7f, 0x0d, 0x9c, 0xc3,
|
0x6c, 0xf8, 0x6c, 0x33, 0x92, 0x17, 0x96, 0x27, 0xd3, 0x9e, 0x62, 0x20, 0xde, 0xcd, 0xd6, 0xa4,
|
||||||
0x1a, 0x68, 0xa2, 0x16, 0x14, 0xdf, 0xe7, 0xed, 0x59, 0xda, 0xc4, 0x3f, 0xf6, 0xcd, 0x40, 0x06,
|
0x6c, 0x44, 0xfc, 0x7e, 0xd6, 0xa4, 0x7a, 0xd6, 0x0c, 0x87, 0xdc, 0x0b, 0x0e, 0x5e, 0x70, 0x48,
|
||||||
0x75, 0xdf, 0x04, 0xe1, 0x5b, 0x5a, 0x46, 0xc1, 0xb8, 0xdf, 0x66, 0xb8, 0xf8, 0xdc, 0xd9, 0xb8,
|
0xed, 0xec, 0x40, 0x02, 0xca, 0x22, 0x5e, 0xab, 0xb2, 0xbc, 0xf3, 0x6b, 0x26, 0xbe, 0xd8, 0xcd,
|
||||||
0x20, 0x64, 0x0e, 0x03, 0xf1, 0xa6, 0xf9, 0xb7, 0xef, 0x68, 0xb6, 0x4b, 0x93, 0x43, 0x08, 0xd6,
|
0x2a, 0xfc, 0xfe, 0x88, 0x8f, 0xb0, 0x6c, 0xa3, 0xee, 0x7f, 0x38, 0x79, 0x39, 0x4d, 0x97, 0x2d,
|
||||||
0x52, 0x66, 0x6c, 0x01, 0xf0, 0xcd, 0x7b, 0x58, 0x7a, 0xed, 0x71, 0x42, 0x65, 0xe1, 0x4d, 0xc3,
|
0xff, 0x12, 0x79, 0x87, 0x15, 0xd0, 0x70, 0x17, 0x14, 0x3f, 0xe4, 0xdd, 0x5d, 0xda, 0x2c, 0x3c,
|
||||||
0x9b, 0x73, 0x13, 0x7d, 0x5f, 0x3e, 0x0b, 0xa5, 0xfa, 0xfb, 0xb9, 0x7a, 0xcf, 0x53, 0xf7, 0xf4,
|
0x5c, 0xc8, 0xa1, 0x8a, 0x9a, 0x0b, 0x19, 0xc5, 0xef, 0xe8, 0x33, 0x8e, 0xa6, 0x17, 0x5d, 0x86,
|
||||||
0xe4, 0xbf, 0x98, 0x90, 0x97, 0xd3, 0x38, 0x0a, 0x48, 0x71, 0xaf, 0x0a, 0x30, 0x7b, 0x6a, 0x52,
|
0x8b, 0x4f, 0xbd, 0x8d, 0x0f, 0x42, 0xe6, 0x30, 0x14, 0x6f, 0xdb, 0x7f, 0x39, 0x4c, 0xef, 0x84,
|
||||||
0xfe, 0xd2, 0x89, 0x46, 0xb5, 0x09, 0xc6, 0xef, 0x46, 0x9c, 0x37, 0xbc, 0x47, 0x0f, 0x45, 0x37,
|
0x33, 0x25, 0xf1, 0xca, 0x5a, 0xca, 0x8c, 0x2d, 0x00, 0xbe, 0x06, 0x0f, 0x77, 0x41, 0x77, 0xbd,
|
||||||
0xf8, 0x71, 0xd4, 0xbd, 0x11, 0x51, 0xfb, 0x22, 0xfe, 0x03, 0x69, 0xb3, 0xce, 0x95, 0x27, 0x05,
|
0xa2, 0xb1, 0xd0, 0x50, 0x79, 0x7b, 0xe2, 0xe7, 0xb7, 0xe3, 0xb3, 0xe0, 0xd4, 0xdf, 0xcf, 0xd3,
|
||||||
0x00, 0x00
|
0x7b, 0xde, 0xe0, 0xa7, 0xa7, 0xf0, 0xd5, 0xb6, 0xbd, 0xde, 0xec, 0x71, 0x44, 0x8a, 0x7b, 0x55,
|
||||||
|
0x81, 0xd9, 0x61, 0xd8, 0x11, 0xe9, 0xf5, 0xda, 0xb7, 0xd1, 0xf4, 0xfd, 0x98, 0xf3, 0x96, 0x0f,
|
||||||
|
0xe8, 0xd1, 0xe9, 0x1f, 0x91, 0x34, 0xe9, 0xdf, 0x9b, 0xa4, 0x7b, 0x5d, 0xff, 0x01, 0x47, 0xe8,
|
||||||
|
0xd7, 0x03, 0x73, 0x05, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -341,60 +346,60 @@ const uint8_t PAGE_liveviewws2D[] PROGMEM = {
|
|||||||
const uint16_t PAGE_404_length = 868;
|
const uint16_t PAGE_404_length = 868;
|
||||||
const uint8_t PAGE_404[] PROGMEM = {
|
const uint8_t PAGE_404[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x65, 0x54, 0x5b, 0x73, 0xaa, 0x3a,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x65, 0x54, 0x5b, 0x73, 0xaa, 0x3a,
|
||||||
0x14, 0x7e, 0xef, 0xaf, 0xe0, 0x78, 0xe6, 0xcc, 0x7e, 0x68, 0x2d, 0xa8, 0xd8, 0x2a, 0xa2, 0x33,
|
0x14, 0x7e, 0xef, 0xaf, 0x60, 0x7b, 0x66, 0xcf, 0x7e, 0x68, 0x15, 0x54, 0xac, 0x8a, 0xe8, 0x4c,
|
||||||
0x01, 0x51, 0xec, 0xc5, 0x7a, 0xa3, 0xd6, 0xbe, 0x05, 0x12, 0x21, 0x15, 0x08, 0x4d, 0x82, 0x62,
|
0x40, 0x14, 0x7b, 0xf1, 0x4e, 0xad, 0x7d, 0x0b, 0x10, 0x21, 0x15, 0x08, 0x4d, 0x82, 0x62, 0x3b,
|
||||||
0x3b, 0xfd, 0xef, 0x3b, 0x40, 0xf7, 0x9c, 0xce, 0xec, 0x35, 0x03, 0x2b, 0xf9, 0x56, 0xd6, 0x7d,
|
0xfd, 0xef, 0x3b, 0x40, 0x3b, 0xa7, 0x33, 0x7b, 0xcd, 0xc0, 0x4a, 0xbe, 0x95, 0x75, 0x5f, 0x89,
|
||||||
0x25, 0xe6, 0x3f, 0xe3, 0x27, 0x7b, 0xb3, 0x5b, 0x38, 0x4a, 0x24, 0x92, 0x78, 0x64, 0x7e, 0xff,
|
0xfe, 0x6b, 0xbc, 0x30, 0xb7, 0xfb, 0xa5, 0x25, 0x85, 0x3c, 0x8e, 0x46, 0xfa, 0xd7, 0x1f, 0x41,
|
||||||
0x31, 0x44, 0x23, 0x33, 0xc1, 0x02, 0x2a, 0x41, 0x04, 0x19, 0xc7, 0x62, 0xd8, 0xc8, 0xc5, 0xbe,
|
0x7f, 0xa4, 0xc7, 0x88, 0x43, 0xc9, 0x0b, 0x21, 0x65, 0x88, 0x0f, 0x6b, 0x19, 0x3f, 0xd4, 0x7b,
|
||||||
0xd9, 0x6b, 0x7c, 0xa3, 0x17, 0x01, 0x4d, 0x05, 0x4e, 0x25, 0x7c, 0x22, 0x48, 0x44, 0x43, 0x84,
|
0xb5, 0x2f, 0xf4, 0xca, 0x23, 0x09, 0x47, 0x89, 0x80, 0xcf, 0xd8, 0xe7, 0xe1, 0xd0, 0x47, 0x27,
|
||||||
0x8f, 0x24, 0xc0, 0xcd, 0x6a, 0xd3, 0x50, 0x52, 0x98, 0xe0, 0x61, 0xe3, 0x48, 0xf0, 0x29, 0xa3,
|
0xec, 0xa1, 0x7a, 0xb9, 0xa9, 0x49, 0x09, 0x8c, 0xd1, 0xb0, 0x76, 0xc2, 0xe8, 0x9c, 0x12, 0xca,
|
||||||
0x4c, 0xfc, 0xd1, 0xa9, 0x51, 0x11, 0xe1, 0x04, 0x37, 0x03, 0x1a, 0x53, 0xd6, 0xf8, 0x61, 0xe6,
|
0xbf, 0x75, 0x2a, 0x94, 0x87, 0x28, 0x46, 0x75, 0x8f, 0x44, 0x84, 0xd6, 0x7e, 0x98, 0xf9, 0xaf,
|
||||||
0xdf, 0x76, 0x45, 0xf2, 0xac, 0x20, 0x22, 0xc6, 0xa3, 0x39, 0x15, 0xca, 0x9e, 0xe6, 0x29, 0x32,
|
0x55, 0x92, 0x38, 0xcb, 0x31, 0x8f, 0xd0, 0x68, 0x4e, 0xb8, 0x74, 0x20, 0x59, 0xe2, 0xeb, 0x72,
|
||||||
0xd5, 0x1a, 0x30, 0xb9, 0x38, 0x4b, 0x76, 0xe1, 0x53, 0x74, 0xfe, 0xdc, 0x4b, 0xb5, 0xe6, 0x1e,
|
0x05, 0xe8, 0x8c, 0x5f, 0x04, 0xbb, 0x72, 0x89, 0x7f, 0xf9, 0x38, 0x08, 0xb5, 0xfa, 0x01, 0xc6,
|
||||||
0x26, 0x24, 0x3e, 0x1b, 0xcf, 0x98, 0x21, 0x98, 0xc2, 0x2b, 0x17, 0xc7, 0x47, 0x2c, 0x48, 0x00,
|
0x38, 0xba, 0x68, 0x4f, 0x88, 0xfa, 0x30, 0x81, 0x37, 0x36, 0x8a, 0x4e, 0x88, 0x63, 0x0f, 0xde,
|
||||||
0xaf, 0x38, 0x4c, 0x79, 0x93, 0x63, 0x46, 0xf6, 0x03, 0x81, 0x0b, 0xd1, 0x84, 0x31, 0x09, 0x53,
|
0x30, 0x98, 0xb0, 0x3a, 0x43, 0x14, 0x1f, 0x06, 0x1c, 0xe5, 0xbc, 0x0e, 0x23, 0x1c, 0x24, 0x9a,
|
||||||
0x23, 0x90, 0x7e, 0x30, 0x1b, 0xf8, 0x30, 0x38, 0x84, 0xac, 0xb4, 0x5c, 0x07, 0x61, 0x94, 0x9e,
|
0x27, 0xfc, 0x20, 0x3a, 0x70, 0xa1, 0x77, 0x0c, 0x68, 0x61, 0xb9, 0x0a, 0x42, 0x2b, 0x3c, 0x0f,
|
||||||
0x07, 0x09, 0x64, 0x21, 0x49, 0x0d, 0x6d, 0xf0, 0x8d, 0xed, 0xf7, 0xfb, 0x2f, 0x92, 0x84, 0x9f,
|
0x62, 0x48, 0x03, 0x9c, 0x68, 0xca, 0xe0, 0x0b, 0x3b, 0x1c, 0x0e, 0x9f, 0x38, 0x0e, 0x3e, 0xca,
|
||||||
0x55, 0x42, 0x86, 0xae, 0x69, 0x59, 0x21, 0xcf, 0x14, 0x75, 0x82, 0x46, 0x57, 0xfb, 0x6f, 0x40,
|
0x84, 0x34, 0x55, 0x51, 0xd2, 0x5c, 0x9c, 0xc9, 0xab, 0x04, 0xb5, 0x8e, 0xf2, 0x7b, 0x80, 0x63,
|
||||||
0x12, 0x18, 0xe2, 0x26, 0xc3, 0x29, 0x92, 0x8e, 0xd2, 0xd0, 0xc8, 0x48, 0x81, 0x63, 0x28, 0x30,
|
0x18, 0xa0, 0x3a, 0x45, 0x89, 0x2f, 0x1c, 0x25, 0x81, 0x96, 0xe2, 0x1c, 0x45, 0x90, 0x23, 0xff,
|
||||||
0xfa, 0x4b, 0x12, 0x30, 0xc2, 0xb3, 0x26, 0x46, 0x21, 0xe6, 0x7f, 0xfc, 0xb4, 0xbb, 0x59, 0xa1,
|
0x1f, 0x89, 0x47, 0x31, 0x4b, 0xeb, 0xc8, 0x0f, 0x10, 0xfb, 0xf6, 0xd3, 0xea, 0xa4, 0xb9, 0xa4,
|
||||||
0x68, 0x4a, 0xb3, 0xa5, 0x95, 0xfc, 0xcb, 0xcf, 0x85, 0xa0, 0xe9, 0x27, 0xcd, 0x45, 0x4c, 0x52,
|
0x48, 0xf5, 0xa6, 0x52, 0xf0, 0x4f, 0x37, 0xe3, 0x9c, 0x24, 0x1f, 0x24, 0xe3, 0x11, 0x4e, 0x50,
|
||||||
0x5c, 0x46, 0x91, 0x33, 0x2e, 0xc3, 0xc8, 0x28, 0xa9, 0x62, 0xce, 0x20, 0x42, 0xa5, 0xa5, 0x5e,
|
0x11, 0x45, 0x46, 0x99, 0x08, 0x23, 0x25, 0xb8, 0x8c, 0x39, 0x85, 0xbe, 0x5f, 0x58, 0xea, 0x95,
|
||||||
0x15, 0x45, 0x65, 0xa1, 0xd4, 0x1c, 0xd4, 0xd1, 0xb4, 0x3b, 0xe5, 0xba, 0xca, 0x54, 0x30, 0x99,
|
0x51, 0x94, 0x16, 0x0a, 0xcd, 0x41, 0x15, 0x4d, 0xab, 0x5d, 0xac, 0xcb, 0x4c, 0x39, 0x15, 0xa9,
|
||||||
0xfa, 0x9e, 0xb2, 0xc4, 0xc8, 0xb3, 0x0c, 0xb3, 0x00, 0x72, 0x3c, 0xf8, 0x59, 0xab, 0xe8, 0x4f,
|
0x1f, 0x08, 0x8d, 0xb5, 0x2c, 0x4d, 0x11, 0xf5, 0x20, 0x43, 0x83, 0x9f, 0xb5, 0x0a, 0xbf, 0x6b,
|
||||||
0x8d, 0x6a, 0x94, 0x93, 0x0f, 0x6c, 0xb4, 0xfa, 0x52, 0xfb, 0xef, 0xaa, 0x74, 0x3a, 0x9d, 0x1f,
|
0x54, 0xa1, 0x0c, 0xbf, 0x23, 0xad, 0xd9, 0x17, 0xda, 0xff, 0x56, 0xa5, 0xdd, 0x6e, 0xff, 0x28,
|
||||||
0xc5, 0x18, 0xf8, 0x94, 0xc9, 0x74, 0x0c, 0x4d, 0xe1, 0x34, 0x26, 0x48, 0xf9, 0x81, 0x35, 0x19,
|
0xc6, 0xc0, 0x25, 0x54, 0xa4, 0xa3, 0x29, 0x12, 0x23, 0x11, 0xf6, 0xa5, 0x1f, 0x58, 0x9d, 0x42,
|
||||||
0x44, 0x24, 0xe7, 0x55, 0x4e, 0x5f, 0x17, 0xa6, 0x5a, 0xf7, 0xc9, 0x54, 0xeb, 0x19, 0x2a, 0xdb,
|
0x1f, 0x67, 0xac, 0xcc, 0xe9, 0xf3, 0x4a, 0x97, 0xab, 0x3e, 0xe9, 0x72, 0x35, 0x43, 0x45, 0xbb,
|
||||||
0x35, 0x32, 0x65, 0x29, 0x15, 0x18, 0xcb, 0x36, 0xcb, 0x96, 0x73, 0x16, 0x0c, 0x1b, 0x08, 0x0a,
|
0x46, 0xba, 0x28, 0xa5, 0x04, 0x23, 0xd1, 0x66, 0xd1, 0x72, 0x46, 0xbd, 0x61, 0xcd, 0x87, 0x1c,
|
||||||
0x68, 0x54, 0x85, 0x52, 0xb3, 0x34, 0x94, 0xee, 0x39, 0xbe, 0xd1, 0xaf, 0xc8, 0xb3, 0xf5, 0xb4,
|
0x6a, 0x65, 0xa1, 0xe4, 0x34, 0x09, 0x84, 0x7b, 0x86, 0x6e, 0xd5, 0x1b, 0xfc, 0x64, 0x2c, 0xd6,
|
||||||
0x3a, 0x69, 0xf7, 0xd3, 0x90, 0x02, 0x49, 0xf3, 0xb5, 0x17, 0x39, 0x5e, 0x28, 0x57, 0x76, 0xb9,
|
0x67, 0xe5, 0x7e, 0x1a, 0x10, 0x20, 0x68, 0xbe, 0x71, 0x42, 0xcb, 0x09, 0xc4, 0xca, 0x2c, 0xb6,
|
||||||
0x05, 0xa1, 0x0d, 0x1e, 0x25, 0xb3, 0x9c, 0x6c, 0xc6, 0xa6, 0x15, 0xf2, 0x32, 0x5f, 0xaf, 0xb4,
|
0x20, 0x30, 0xc1, 0xa3, 0x60, 0x86, 0x95, 0xce, 0xe8, 0xb4, 0x44, 0x9e, 0xe7, 0x9b, 0xb5, 0x32,
|
||||||
0x19, 0x60, 0x5c, 0x0f, 0x6e, 0x96, 0x25, 0xb0, 0x4a, 0x97, 0x5e, 0xcb, 0x92, 0x0a, 0xc5, 0xdb,
|
0x03, 0x94, 0xa9, 0xde, 0xed, 0xaa, 0x00, 0xd6, 0xc9, 0xca, 0x69, 0x1a, 0x42, 0x21, 0x7f, 0x3d,
|
||||||
0xe9, 0xd8, 0xdb, 0x2d, 0xbd, 0x12, 0xf4, 0x3d, 0xa7, 0xf0, 0x56, 0x95, 0xdc, 0xea, 0xb5, 0x42,
|
0x9f, 0x7a, 0xfb, 0x95, 0x53, 0x80, 0xae, 0x63, 0xe5, 0xce, 0xba, 0x94, 0x1b, 0xbd, 0x66, 0x60,
|
||||||
0xdb, 0x53, 0x3f, 0xee, 0xdf, 0xd5, 0x92, 0xfa, 0xfe, 0xb6, 0x45, 0x6d, 0x10, 0x4e, 0x23, 0x0a,
|
0x3a, 0xf2, 0xfb, 0xfd, 0x9b, 0x5c, 0x50, 0xdf, 0xdd, 0x35, 0x89, 0x09, 0x82, 0x69, 0x48, 0x60,
|
||||||
0x4b, 0xf1, 0x74, 0xf1, 0xf0, 0xd2, 0xab, 0x2c, 0xdf, 0xa1, 0xc9, 0xdd, 0x93, 0xa7, 0xfe, 0x4f,
|
0x21, 0x9e, 0x2e, 0x1f, 0x9e, 0x7b, 0xa5, 0xe5, 0x3b, 0x7f, 0x72, 0xb7, 0x70, 0xe4, 0xff, 0x09,
|
||||||
0x60, 0x32, 0x5f, 0x60, 0x6b, 0x56, 0xc9, 0x02, 0x27, 0x7a, 0x0d, 0x4e, 0x00, 0x8c, 0x79, 0xb9,
|
0x4c, 0xe6, 0x4b, 0x64, 0xcc, 0x4a, 0x99, 0x67, 0x85, 0x2f, 0xde, 0x19, 0x80, 0x31, 0x2b, 0xb6,
|
||||||
0xbd, 0x05, 0x60, 0xcb, 0xb6, 0x64, 0x79, 0x28, 0x03, 0x45, 0x6b, 0x6f, 0x65, 0x3d, 0x8f, 0xa3,
|
0x5d, 0x00, 0x76, 0x74, 0x87, 0x57, 0xc7, 0x22, 0x50, 0x7f, 0xe3, 0xac, 0x8d, 0xa7, 0x71, 0xb8,
|
||||||
0x45, 0x11, 0xf4, 0xfd, 0x31, 0xf5, 0x42, 0x07, 0xcc, 0x97, 0xd8, 0x5f, 0xa8, 0x13, 0x2f, 0x77,
|
0xcc, 0xbd, 0xbe, 0x3b, 0x26, 0x4e, 0x60, 0x81, 0xf9, 0x0a, 0xb9, 0x4b, 0x79, 0xe2, 0x64, 0xf6,
|
||||||
0x1f, 0xdf, 0xac, 0xe9, 0x4e, 0xb5, 0x2e, 0x3b, 0xce, 0x6e, 0x75, 0xbb, 0x72, 0xb5, 0x77, 0x5b,
|
0xe3, 0xab, 0x31, 0xdd, 0xcb, 0xc6, 0x75, 0xdb, 0xda, 0xaf, 0xbb, 0x6b, 0x5b, 0x79, 0x33, 0xe5,
|
||||||
0x7d, 0xb5, 0x82, 0x1b, 0xf7, 0x64, 0xc7, 0x6f, 0xa1, 0xfb, 0x74, 0x59, 0xbc, 0xce, 0x9e, 0xd7,
|
0x17, 0xc3, 0xbb, 0xb5, 0xcf, 0x66, 0xf4, 0x1a, 0xd8, 0x8b, 0xeb, 0xfc, 0x65, 0xf6, 0xb4, 0x99,
|
||||||
0xb3, 0x36, 0xdf, 0x85, 0x2e, 0x9c, 0xde, 0x3a, 0xd6, 0x36, 0xea, 0xbd, 0x6d, 0x69, 0xb1, 0x61,
|
0xb5, 0xd8, 0x3e, 0xb0, 0xe1, 0xb4, 0x6b, 0x19, 0xbb, 0xb0, 0xf7, 0xba, 0x23, 0xf9, 0x96, 0x9a,
|
||||||
0xb6, 0x35, 0x41, 0xe3, 0xbb, 0x4b, 0x6b, 0xac, 0xc7, 0xfe, 0xcc, 0x2d, 0x40, 0xf0, 0xd1, 0x03,
|
0xc6, 0xc4, 0x1f, 0xdf, 0x5d, 0x1b, 0x63, 0x35, 0x72, 0x67, 0x76, 0x0e, 0xbc, 0xf7, 0x1e, 0x58,
|
||||||
0x0b, 0xf0, 0xfc, 0xb0, 0xe1, 0xec, 0xd5, 0xd1, 0xf1, 0x72, 0xdc, 0x7d, 0xff, 0x10, 0x9d, 0x00,
|
0x82, 0xa7, 0x87, 0x2d, 0xa3, 0x2f, 0x96, 0x8a, 0x56, 0xe3, 0xce, 0xdb, 0x3b, 0x6f, 0x7b, 0x60,
|
||||||
0x4c, 0x36, 0x3b, 0x7a, 0xb0, 0xf5, 0x9d, 0x3d, 0xef, 0x4f, 0xcf, 0x7e, 0x98, 0xeb, 0x67, 0xb0,
|
0xb2, 0xdd, 0x93, 0xa3, 0xa9, 0xee, 0xcd, 0x79, 0x7f, 0x7a, 0x71, 0x83, 0x4c, 0xbd, 0x80, 0x15,
|
||||||
0x14, 0xd6, 0xe4, 0x61, 0xf9, 0xe2, 0xe6, 0x2e, 0xb0, 0xc0, 0xed, 0xdd, 0x23, 0x7e, 0x72, 0x6c,
|
0x37, 0x26, 0x0f, 0xab, 0x67, 0x3b, 0xb3, 0x81, 0x01, 0xba, 0x77, 0x8f, 0x68, 0x61, 0x99, 0xb2,
|
||||||
0xd5, 0xd1, 0xb6, 0xdd, 0xfc, 0xdc, 0x0f, 0x8f, 0xfa, 0x91, 0x76, 0x97, 0xee, 0x7d, 0x9b, 0xdc,
|
0xa5, 0xec, 0x3a, 0xd9, 0xa5, 0x1f, 0x9c, 0xd4, 0x13, 0xe9, 0xac, 0xec, 0xfb, 0x16, 0xee, 0x5e,
|
||||||
0x9e, 0xdf, 0xdb, 0x76, 0xcf, 0x03, 0xd6, 0xa3, 0xee, 0x26, 0x0f, 0x97, 0xf6, 0x7a, 0xf3, 0x62,
|
0xde, 0x5a, 0x66, 0xcf, 0x01, 0xc6, 0xa3, 0x6a, 0xc7, 0x0f, 0xd7, 0xe6, 0x66, 0xfb, 0x6c, 0x6e,
|
||||||
0x6f, 0x26, 0xad, 0x31, 0xb3, 0x5f, 0x6e, 0x2e, 0xa7, 0x59, 0xff, 0xc3, 0xea, 0xa2, 0x2a, 0x5b,
|
0x27, 0xcd, 0x31, 0x35, 0x9f, 0x6f, 0xaf, 0xa7, 0x69, 0xff, 0xdd, 0xe8, 0xf8, 0x65, 0xb6, 0xc0,
|
||||||
0xe0, 0xc4, 0x93, 0xcd, 0x61, 0x9d, 0x2f, 0x13, 0xdb, 0x6e, 0x8c, 0x2e, 0xcc, 0xa8, 0x35, 0xd2,
|
0x8a, 0x26, 0xdb, 0xe3, 0x26, 0x5b, 0xc5, 0xa6, 0x59, 0x1b, 0x5d, 0xe9, 0x61, 0x73, 0xa4, 0x2a,
|
||||||
0x35, 0x5d, 0x29, 0xef, 0xeb, 0xa4, 0xbe, 0xaf, 0x12, 0x31, 0xfd, 0x11, 0x38, 0xe0, 0x84, 0x28,
|
0xaa, 0x54, 0xdc, 0xd7, 0x49, 0x75, 0x5f, 0x05, 0xa2, 0xbb, 0x23, 0x70, 0x44, 0x31, 0x96, 0x7c,
|
||||||
0x88, 0x62, 0xae, 0xa4, 0x52, 0x76, 0x48, 0xe9, 0x49, 0x39, 0x45, 0x98, 0x61, 0xe5, 0x4c, 0x73,
|
0x82, 0x98, 0x94, 0x08, 0xd9, 0x31, 0x21, 0x67, 0xe9, 0x1c, 0x22, 0x8a, 0xa4, 0x0b, 0xc9, 0x24,
|
||||||
0x05, 0x4a, 0x5e, 0x0e, 0x08, 0x46, 0xd7, 0xd7, 0xd7, 0xa6, 0xea, 0x4b, 0x0d, 0x56, 0x7d, 0x17,
|
0x28, 0x78, 0x31, 0x20, 0xc8, 0x6f, 0x34, 0x1a, 0xba, 0xec, 0x0a, 0x0d, 0x5a, 0x7e, 0x57, 0x7a,
|
||||||
0x66, 0x7d, 0x19, 0x14, 0x9a, 0x06, 0x31, 0x09, 0x0e, 0xc3, 0x5f, 0x27, 0x92, 0x22, 0x7a, 0xba,
|
0x75, 0x19, 0x24, 0x92, 0x78, 0x11, 0xf6, 0x8e, 0xc3, 0x3f, 0x67, 0x9c, 0xf8, 0xe4, 0xdc, 0x88,
|
||||||
0x8e, 0x69, 0x00, 0x05, 0xa1, 0xe9, 0x75, 0xc4, 0xf0, 0x7e, 0xd8, 0x50, 0xb9, 0x1c, 0x43, 0xcc,
|
0x88, 0x07, 0x39, 0x26, 0x49, 0x23, 0xa4, 0xe8, 0x30, 0xac, 0x35, 0x1a, 0x32, 0x13, 0x83, 0x88,
|
||||||
0x78, 0xe3, 0xd7, 0xc8, 0x92, 0xb3, 0xab, 0x08, 0xaa, 0x94, 0x6f, 0x09, 0xa3, 0x31, 0x97, 0xe6,
|
0x28, 0xab, 0xfd, 0x19, 0x19, 0x62, 0x7a, 0x25, 0x4e, 0xa4, 0xe2, 0x35, 0xa1, 0x24, 0x62, 0xc2,
|
||||||
0x2a, 0x13, 0xd2, 0x96, 0x5a, 0x8f, 0x9f, 0x5a, 0xbd, 0x6a, 0xbf, 0x01, 0x22, 0xc8, 0xb7, 0x64,
|
0x60, 0x69, 0x44, 0x58, 0x93, 0xab, 0x01, 0x94, 0xcb, 0x77, 0xed, 0x2f, 0xa3, 0xab, 0x2b, 0xfe,
|
||||||
0xeb, 0x04, 0x00, 0x00
|
0xed, 0x04, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
1077
wled00/html_simple.h
1077
wled00/html_simple.h
File diff suppressed because it is too large
Load Diff
3966
wled00/html_ui.h
3966
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2305280
|
#define VERSION 2306040
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
|
Loading…
Reference in New Issue
Block a user