2022 / 12

This commit is contained in:
2022-12-28 23:07:31 +01:00
parent 2ca96a99b5
commit 04e2975cb1
2 changed files with 738 additions and 298 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -142,9 +142,7 @@ const char html_page_index[] PROGMEM = R"rawliteral(
width: 100%;
padding: 0.25rem 0.5rem;
@media(min-width: 600px) {
margin: 0 1em 2em;
}
&:hover { text-decoration: none; }
@@ -185,7 +183,8 @@ const char html_page_index[] PROGMEM = R"rawliteral(
<label class="center">aktuell:</label><br>
<span class='act' id="actTime"></span><br>
<span class='act' id="actTacTime"></span><br>
<span class='act' id="actDate"></span>
<span class='act' id="actDate"></span><br>
<span class='act' id="actKW"></span>
</div><br>
<div class='fs075'>
<label>letzter abgleich:</label>
@@ -199,14 +198,20 @@ const char html_page_index[] PROGMEM = R"rawliteral(
<option value=0>taktische Uhrzeit</option>
<option value=1>Uhrzeit</option>
<option value=2>Datum / Uhrzeit</option>
<option value=3>Analoguhr</option>
<option value=4>Analoguhr / Datum</option>
</select>
</div>
<div class='option m50' onclick="return false">
<span class="wsnw">
<label for="brigtness">Helligkeit LEDs</label>
<span class="wsnw"><span id="brigtness"></span> %</span><br>
<label for="lux">Umgebungshelligkeit</label>
<span class="wsnw"><span id="lux"></span> LUX</span><br>
<div class="left margin12left">
<span><span id="brigtness"></span> %</span><br>
</span>
<span class="wsnw">
<label for="temp">Temperatur Elektronik</label>
<span><span id="temp"></span>° C</span><br>
</span>
<div class="left">
<span class="wsnw">
<label for="SSID">SSID:</label>
<span id="SSID"></span>
@@ -218,6 +223,14 @@ const char html_page_index[] PROGMEM = R"rawliteral(
<input id="rtcactive" type='checkbox' onclick="return false" readonly>
<label for="rtcactive">RTC okay</label>
</span>
<span class="wsnw">
<input id="withSeconds" type='checkbox' onclick="return false" readonly>
<label for="withSeconds">Sekunden zeigen</label>
</span>
<span class="wsnw">
<input id="alwaysAccessPoint" type='checkbox' onclick="return false" readonly>
<label for="alwaysAccessPoint">AccessPoint erstellen auch bei erfolgreicher WiFi Verbindung</label>
</span>
</div>
</div>
<input id="d" type='text' style='width:80%;font-size:0.75rem;' value=''>
@@ -234,6 +247,7 @@ const char html_page_index[] PROGMEM = R"rawliteral(
<label for="eActTimeC">Uhrzeit: </label><input type="color" id="eActTimeC" value=""><br>
<label for="eActTacTimeC">taktische Zeit: </label><input type="color" id="eActTacTimeC" value=""><br>
<label for="eActDateC">Datum: </label><input type="color" id="eActDateC" value=""><br>
<label for="eActKWC">KW: </label><input type="color" id="eActKWC" value=""><br>
<input type="button" class="btn fs12" onclick="setColor();closeEdit();" value="setzen"><br><br>
<input type="button" id="doSetTime" class="btn fs12" onclick="doSetTime();" value="Uhrzeit nach diesem Gerät setzen"><br>
@@ -243,8 +257,19 @@ const char html_page_index[] PROGMEM = R"rawliteral(
<div id="close" onclick="closeOptionEdit();">X</div>
<div class='value'>
<h1><span id="el">Optionen</span></h1>
<input id="ebs" type='number' min="5" max="100" step="5" onchange="document.getElementById('eab').checked = false;"> %
<input id="ebs" type='number' min="5" max="100" step="5"> %
<label for="ebs">Helligkeitsfaktor (in Prozent)</label><br>
<span>
<input id="eWithSeconds" type='checkbox'>
<label for="eWithSeconds">zeige Sekunden</label>
</span>
<span>
<input id="eAlwaysAccessPoint" type='checkbox'>
<label for="eAlwaysAccessPoint">AccessPoint erstellen auch bei erfolgreicher WiFi Verbindung</label>
</span>
<br>
<input type="button" class="btn" onclick="setOption();" value="setzen">
<br><br>
<span>
<label for="eSSID">SSID:</label>
<input id="eSSID" type='text' onclick="return false">
@@ -255,7 +280,14 @@ const char html_page_index[] PROGMEM = R"rawliteral(
<input id="ePASS" type='text' onclick="return false">
</span>
<br>
<input type="button" class="btn" onclick="setOption();" value="setzen"><br>
<input type="button" class="btn" onclick="setWifi();" value="setzen">
<br><br>
<span>
<label for="apPASS">AccessPoint Passwort:</label>
<input id="apPASS" type='text' maxlength="64" minlength="8" onclick="return false">
</span>
<br>
<input type="button" class="btn" onclick="setAPPass();" value="setzen"><br>
</div>
</div>
</div>
@@ -296,6 +328,7 @@ const char html_page_index[] PROGMEM = R"rawliteral(
document.getElementById("eActTimeC").value = RGBToHex(document.getElementById('actTime').style.color);
document.getElementById("eActTacTimeC").value = RGBToHex(document.getElementById('actTacTime').style.color);
document.getElementById("eActDateC").value = RGBToHex(document.getElementById('actDate').style.color);
document.getElementById("eActKWC").value = RGBToHex(document.getElementById('actKW').style.color);
}
document.getElementById("te").style.display = "initial";
}
@@ -307,7 +340,8 @@ const char html_page_index[] PROGMEM = R"rawliteral(
function editOption(){
document.getElementById('ebs').value = document.getElementById('brigtness').innerHTML;
document.getElementById('eSSID').value = document.getElementById('SSID').innerHTML;
document.getElementById("eWithSeconds").checked = document.getElementById("withSeconds").checked;
document.getElementById("eAlwaysAccessPoint").checked = document.getElementById("alwaysAccessPoint").checked;
document.getElementById("oe").style.display = "initial";
}
@@ -337,32 +371,6 @@ const char html_page_index[] PROGMEM = R"rawliteral(
return res;
}
}
/*
+String(now());
color = timeColor[0] << 16;
color += timeColor[1] << 8;
color += timeColor[2];
ret += "," + String(color);
color = tacticalTimeColor[0] << 16;
color += tacticalTimeColor[1] << 8;
color += tacticalTimeColor[2];
ret += "," + String(color);
color = dateColor[0] << 16;
color += dateColor[1] << 8;
color += dateColor[2];
ret += "," + String(color);
ret += "," + String(timeIndex);
ret += "," + String(lastTimeSyncTyp);
ret += "," + String(lastTimeSyncTime);
ret += ",\"" + String(lux_value)+"\"";
ret += ",\"" + String(brightness)+"\"";
ret += "," + String(autobrightness);
ret += "," + String(rtcEnabled);
ret += "," + String(GPSdoSync);
ret += "," + String(countSatellites);
ret += "," + String(countGPS);
ret += "," + String(EEPROMDataNotSaved);
*/
function fetch_handle_response(res){
var elem=document.getElementById('d');
@@ -382,7 +390,6 @@ const char html_page_index[] PROGMEM = R"rawliteral(
document.getElementById('actDate').style.color = colorString;
document.getElementById('showWhat').value = parseInt(data[4]);
showTimeFromUnix(data[6],'sync');
switch(data[5]){
case 0:
document.getElementById('sync').innerHTML = " keiner";
@@ -396,19 +403,24 @@ const char html_page_index[] PROGMEM = R"rawliteral(
case 3:
document.getElementById('sync').innerHTML += " (manuel)";
break;
}brigtness
}
showTimeFromUnix(data[6],'sync');
document.getElementById('brigtness').innerHTML = (data[7]*100);
document.getElementById("rtcactive").checked = (data[8] == 1);
document.getElementById('lux').innerHTML = data[7];
document.getElementById('brigtness').innerHTML = (data[8]*100);
document.getElementById("rtcactive").checked = (data[10] == 1);
EEPROMDataChanged = (data[14] == 1);
EEPROMDataChanged = (data[9] == 1);
if(EEPROMDataChanged){
document.getElementById("site").style.backgroundColor = "#ffa";
}
document.getElementById('SSID').innerHTML = data[15];
document.getElementById('SSID').innerHTML = data[10];
document.getElementById('temp').innerHTML = data[11];
var options = parseInt(data[12]);
document.getElementById("withSeconds").checked = (options >> 0) & 0x1;
document.getElementById("alwaysAccessPoint").checked = (options >> 1) & 0x1;
colorString = "#" + data[13].toString(16).padStart(6, '0');
document.getElementById('actKW').style.color = colorString;
document.getElementById('actKW').innerHTML = "KW " + data[14];
}catch(e){
console.log(e);
}
@@ -426,6 +438,11 @@ const char html_page_index[] PROGMEM = R"rawliteral(
fetch(send_str).then(fetchHandle).then((res) => res.text()).then((text) => fetch_handle_response(text)).catch((err) => { console.log(err);document.getElementById("site").style.backgroundColor = "#f00";});
}
function doPoll(){
var send_str = "/poll";
fetch(send_str).then(fetchHandle).then((res) => res.text()).then((text) => fetch_handle_response(text)).catch((err) => { console.log(err);document.getElementById("site").style.backgroundColor = "#f00";});
}
function doSetTime(_idx = -1){
var d=new Date();
d.setTime(d.getTime() - (d.getTimezoneOffset()*60*1000) + 1000);
@@ -439,6 +456,8 @@ const char html_page_index[] PROGMEM = R"rawliteral(
doSend(['set','tcolor'],['to',elem.value.substring(1)]);
elem=document.getElementById('eActDateC');
doSend(['set','dcolor'],['to',elem.value.substring(1)]);
elem=document.getElementById('eActKWC');
doSend(['set','kwcolor'],['to',elem.value.substring(1)]);
}
function setTimeFromUnix(_ti,_id){
@@ -492,20 +511,29 @@ const char html_page_index[] PROGMEM = R"rawliteral(
function setWifi(){
var elem=document.getElementById("eSSID");
var elem2=document.getElementById("ePASS");
doSend(['set','wifi'],['ssid',elem.value],['pwd',elem2.value]);
doSend(['set','wifi'],['ssid',encodeURIComponent(elem.value)],['pwd',encodeURIComponent(elem2.value)]);
}
function setAPPass(){
var elem=document.getElementById("apPASS");
var pwd = String(elem.value);
if((pwd.length > 7) && (pwd.length < 65)){
doSend(['set','appass'],['pwd',encodeURIComponent(pwd)]);
elem.value = '';
}else{
alert('Das AccessPoint Passwort muss zwischen 8 und 64 Zeichen lang sein!');
}
}
function setOption(){
setBrightness();
var option = 0;
if(document.getElementById("eab").checked)
if(document.getElementById("eWithSeconds").checked)
option += 1;
doSend(['set','option'],['options',option]);
if(document.getElementById("eAlwaysAccessPoint").checked)
option += 2;
setWifi();
closeOptionEdit();
doSend(['set','option'],['options',option]);
}
function save() {
@@ -517,14 +545,13 @@ const char html_page_index[] PROGMEM = R"rawliteral(
}
function poll() {
doSend(['poll','']);
doPoll();
setTimeout(function(){
poll();
}, 1000);
}
document.addEventListener("DOMContentLoaded", function(event) {
poll();
});
</script>