147 lines
6.4 KiB
HTML
147 lines
6.4 KiB
HTML
|
|
<!DOCTYPE HTML> <!-- For more information visit: https://fipsok.de -->
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="stylesheet" href="style.css">
|
|
<title>ESP8266 Admin</title>
|
|
<script>
|
|
addEventListener('load', () => {
|
|
renew(), once();
|
|
let output = document.querySelector('#note');
|
|
let btn = document.querySelectorAll('button');
|
|
let span = document.querySelectorAll('#right span');
|
|
btn[0].addEventListener('click', () => {
|
|
location = '/fs.html';
|
|
});
|
|
btn[1].addEventListener('click', () => {
|
|
location = '/';
|
|
});
|
|
btn[2].addEventListener('click', () => {
|
|
location = '/portconfig';
|
|
});
|
|
btn[3].addEventListener('click', check.bind(this, document.querySelector('input')));
|
|
btn[4].addEventListener('click', re.bind(this, 'reconnect'));
|
|
btn[5].addEventListener('click', () => {
|
|
if (confirm('Bist du sicher!')) re('restart');
|
|
});
|
|
async function once(val = '',arg) {
|
|
try {
|
|
let resp = await fetch('/admin/once', { method: 'POST', body: val});
|
|
let obj = await resp.json();
|
|
output.innerHTML = '';
|
|
output.classList.remove('note');
|
|
document.querySelector('form').reset();
|
|
if (val.length == 0) myIv = setInterval(renew, 1000);
|
|
if (arg == 'reconnect') re(arg);
|
|
document.getElementById('file').innerHTML = obj['File'];
|
|
document.getElementById('build').innerHTML = obj['Build'];
|
|
document.getElementById('size').innerHTML = obj['SketchSize'];
|
|
document.getElementById('space').innerHTML = obj['SketchSpace'];
|
|
document.getElementById('ip').innerHTML = obj['LocalIP'];
|
|
document.getElementById('hostname').innerHTML = obj['Hostname'];
|
|
document.getElementById('ssid').innerHTML = obj['SSID'];
|
|
document.getElementById('gateway').innerHTML = obj['GatewayIP'];
|
|
document.getElementById('channel').innerHTML = obj['Channel'];
|
|
document.getElementById('mac').innerHTML = obj['MacAddress'];
|
|
document.getElementById('subnet').innerHTML = obj['SubnetMask'];
|
|
document.getElementById('bssid').innerHTML = obj['BSSID'];
|
|
document.getElementById('clientip').innerHTML = obj['ClientIP'];
|
|
document.getElementById('dnsip').innerHTML = obj['DnsIP'];
|
|
document.getElementById('reset').innerHTML = obj['ResetReason'];
|
|
document.getElementById('cpu').innerHTML = obj['CpuFreqMHz'] + " MHz";
|
|
document.getElementById('heap').innerHTML = obj['FreeHeap'];
|
|
document.getElementById('frag').innerHTML = obj['HeapFrag'] + "%";
|
|
document.getElementById('flashsize').innerHTML = obj['ChipSize'];
|
|
document.getElementById('flashspeed').innerHTML = obj['ChipSpeed'] + " MHz";
|
|
document.getElementById('flashmode').innerHTML = obj['ChipMode'];
|
|
document.getElementById('ide').innerHTML = obj['IdeVersion'].replace(/(\d)(\d)(\d)(\d)/,obj['IdeVersion'][3]!=0 ? '$1.$3.$4' : '$1.$3.');
|
|
document.getElementById('core').innerHTML = obj['CoreVersion'].replace(/_/g,'.');
|
|
document.getElementById('sdk').innerHTML = obj['SdkVersion'];
|
|
} catch(err) {
|
|
re();
|
|
}
|
|
}
|
|
async function renew() {
|
|
const resp = await fetch('admin/renew');
|
|
const array = await resp.json();
|
|
document.getElementById('runtime').innerHTML = array[0];
|
|
document.getElementById('rssi').innerHTML = array[1];
|
|
document.getElementById('adc').innerHTML = array[2];
|
|
}
|
|
function check(inObj) {
|
|
!inObj.checkValidity() ? (output.innerHTML = inObj.validationMessage, output.classList.add('note')) : (once(inObj.value, 'reconnect'));
|
|
}
|
|
function re(arg = '') {
|
|
clearInterval(myIv);
|
|
fetch(arg);
|
|
output.classList.add('note');
|
|
if (arg == 'restart') {
|
|
output.innerHTML = 'Der Server wird neu gestartet. Die Daten werden in 15 Sekunden neu geladen.';
|
|
setTimeout(once, 15000);
|
|
}
|
|
else if (arg == 'reconnect'){
|
|
output.innerHTML = 'Die WiFi Verbindung wird neu gestartet. Daten werden in 10 Sekunden neu geladen.';
|
|
setTimeout(once, 10000);
|
|
}
|
|
else {
|
|
output.innerHTML = 'Es ist ein Verbindungfehler aufgetreten. Es wird versucht neu zu verbinden.';
|
|
setTimeout(once, 3000);
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<h1>ESP8266 Admin Page</h1>
|
|
<main>
|
|
<table>
|
|
<tr><td>Runtime ESP:</td><td><span id="runtime">0</span></td></tr>
|
|
<tr><td>WiFi RSSI:</td><td><div><span id="rssi"></span> dBm</div></td></tr>
|
|
<tr><td>ADC/VCC:</td><td><span id="adc">0</span></td></tr>
|
|
<tr><td>Sketch Name:</td><td><span id="file">?</span></td></tr>
|
|
<tr><td>Sketch Build:</td><td><span id="build">0</span></td></tr>
|
|
<tr><td>SketchSize:</td><td><span id="size">0</span></td></tr>
|
|
<tr><td>FreeSketchSpace:</td><td><span id="space">0</span></td></tr>
|
|
<tr><td>IPv4 Address:</td><td><span id="ip">0</span></td></tr>
|
|
<tr><td>Hostname:</td><td><span id="hostname">?</span></td></tr>
|
|
<tr><td>Connected to:</td><td><span id="ssid">?</span></td></tr>
|
|
<tr><td>Gateway IP:</td><td><span id="gateway">0</span></td></tr>
|
|
<tr><td>Channel:</td><td><span id="channel">0</span></td></tr>
|
|
<tr><td>MacAddress:</td><td><span id="mac">0</span></td></tr>
|
|
<tr><td>SubnetMask:</td><td><span id="subnet">0</span></td></tr>
|
|
<tr><td>BSSID:</td><td><span id="bssid">0</span></td></tr>
|
|
<tr><td>Client IP:</td><td><span id="clientip">0</span></td></tr>
|
|
<tr><td>DnsIP:</td><td><span id="dnsip">0</span></td></tr>
|
|
<tr><td>Reset Ground:</td><td><span id="reset">?</span></td></tr>
|
|
<tr><td>CPU Freq:</td><td><span id="cpu">0</span> MHz</td></tr>
|
|
<tr><td>FreeHeap:</td><td><span id="heap">0</span></td></tr>
|
|
<tr><td>Heap Fragmentation:</td><td><span id="frag">0</span>%</td></tr>
|
|
<tr><td>FlashSize:</td><td><span id="flashsize">0</span></td></tr>
|
|
<tr><td>FlashSpeed:</td><td><span id="flashspeed">0</span> MHz</td></tr>
|
|
<tr><td>FlashMode:</td><td><span id="flashmode">0</span></td></tr>
|
|
<tr><td>Arduino IDE Version:</td><td><span id="ide">0</span></td></tr>
|
|
<tr><td>Esp Core Version:</td><td><span id="core">0</span></td></tr>
|
|
<tr><td>SDK Version:</td><td><span id="sdk">0</span></td></tr>
|
|
</table>
|
|
</main>
|
|
<div>
|
|
<button>Filesystem</button>
|
|
<button>Startseite</button>
|
|
<button>Port Konfiguration</button>
|
|
</div>
|
|
<div id="note"></div>
|
|
<div>
|
|
<form>
|
|
<input placeholder="neuer Hostname" pattern="([A-Za-z0-9\-]{1,32})" title="Es dürfen nur Buchstaben (a-z, A-Z), Ziffern (0-9) und Bindestriche (-) enthalten sein. Maximal 32 Zeichen" required>
|
|
<button type="button">Name Senden</button>
|
|
</form>
|
|
</div>
|
|
<div>
|
|
<button>WiFi Reconnect</button>
|
|
<button>ESP Restart</button>
|
|
</div>
|
|
</body>
|
|
</html>
|