|
|
|
<!doctype html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>Setup - {DEVICE}</title>
|
|
|
|
<link rel="stylesheet" type="text/css" href="style.css"/>
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<script type="text/javascript">
|
|
|
|
function toggle(name, hide) {
|
|
|
|
var elm = document.getElementsByName(name)[0];
|
|
|
|
if(hide) {
|
|
|
|
if(!elm.classList.contains("hide"))
|
|
|
|
elm.classList.add("hide");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
elm.classList.remove('hide');
|
|
|
|
}
|
|
|
|
|
|
|
|
function load() {
|
|
|
|
document.querySelectorAll('input[name^="inv"][name$="Addr"]').forEach(elm => {
|
|
|
|
elm.addEventListener("keyup", (e) => {
|
|
|
|
serial = elm.value.substring(0,4);
|
|
|
|
iv = elm.name.substring(3,4);
|
|
|
|
max = 0;
|
|
|
|
for(i=0;i<4;i++) {
|
|
|
|
toggle("inv"+iv+"ModPwr"+i, true);
|
|
|
|
toggle("inv"+iv+"ModName"+i, true);
|
|
|
|
}
|
|
|
|
toggle("lbl"+iv+"ModPwr", true);
|
|
|
|
toggle("lbl"+iv+"ModName", true);
|
|
|
|
|
|
|
|
if(serial == "1161") max = 4;
|
|
|
|
else if(serial == "1141") max = 2;
|
|
|
|
else if(serial == "1121") max = 1;
|
|
|
|
|
|
|
|
for(i=0;i<max;i++) {
|
|
|
|
toggle("inv"+iv+"ModPwr"+i, false);
|
|
|
|
toggle("inv"+iv+"ModName"+i, false);
|
|
|
|
}
|
|
|
|
if(max != 0) {
|
|
|
|
toggle("lbl"+iv+"ModPwr", false);
|
|
|
|
toggle("lbl"+iv+"ModName", false);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
evt = document.createEvent("HTMLEvents");
|
|
|
|
evt.initEvent("keyup", false, true);
|
|
|
|
elm.dispatchEvent(evt);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body onload="load()">
|
|
|
|
<h1>Setup</h1>
|
|
|
|
<div id="setup" class="content">
|
|
|
|
<div id="content">
|
|
|
|
<p>
|
|
|
|
Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.
|
|
|
|
</p>
|
|
|
|
<form method="post" action="{IP}/save">
|
|
|
|
<p class="des">WiFi</p>
|
|
|
|
<label for="ssid">SSID</label>
|
|
|
|
<input type="text" class="text" name="ssid" value="{SSID}"/>
|
|
|
|
<label for="pwd">Password</label>
|
|
|
|
<input type="password" class="text" name="pwd" value="{PWD}"/>
|
|
|
|
<p class="des">Device Host Name</p>
|
|
|
|
<label for="device">Device Name</label>
|
|
|
|
<input type="text" class="text" name="device" value="{DEVICE}"/>
|
|
|
|
|
|
|
|
|
|
|
|
<a class="erase" href="/erase">ERASE SETTINGS (not WiFi)</a>
|
|
|
|
|
|
|
|
<p class="des">Inverter</p>
|
|
|
|
{INVERTERS}<br/>
|
|
|
|
<p class="subdes">General</p>
|
|
|
|
<label for="invInterval">Interval [s]</label>
|
|
|
|
<input type="text" class="text" name="invInterval" value="{INV_INTVL}"/>
|
|
|
|
<label for="invRetry">Max retries per Payload</label>
|
|
|
|
<input type="text" class="text" name="invRetry" value="{INV_RETRIES}"/>
|
|
|
|
|
|
|
|
<p class="des">Pinout (Wemos)</p>
|
|
|
|
{PINOUT}
|
|
|
|
|
|
|
|
<p class="des">Radio (NRF24L01+)</p>
|
|
|
|
<label for="rf24Power">Amplifier Power Level</label>
|
|
|
|
<select name="rf24Power">{RF24}</select>
|
|
|
|
|
|
|
|
<p class="des">MQTT</p>
|
|
|
|
<label for="mqttAddr">Broker / Server IP</label>
|
|
|
|
<input type="text" class="text" name="mqttAddr" value="{MQTT_ADDR}"/>
|
|
|
|
<label for="mqttPort">Port</label>
|
|
|
|
<input type="text" class="text" name="mqttPort" value="{MQTT_PORT}"/>
|
|
|
|
<label for="mqttUser">Username (optional)</label>
|
|
|
|
<input type="text" class="text" name="mqttUser" value="{MQTT_USER}"/>
|
|
|
|
<label for="mqttPwd">Password (optional)</label>
|
|
|
|
<input type="text" class="text" name="mqttPwd" value="{MQTT_PWD}"/>
|
|
|
|
<label for="mqttTopic">Topic</label>
|
|
|
|
<input type="text" class="text" name="mqttTopic" value="{MQTT_TOPIC}"/>
|
|
|
|
<label for="mqttIntvl">Interval [s] (read-only)</label>
|
|
|
|
<input type="text" class="text" name="mqttIntvl" value="{MQTT_INTVL}" readonly/>
|
|
|
|
|
|
|
|
<p class="des">Serial Console</p>
|
|
|
|
<label for="serEn">print inverter data</label>
|
|
|
|
<input type="checkbox" class="cb" name="serEn" {SER_VAL_CB}/><br/>
|
|
|
|
<label for="serDbg">print RF24 debug</label>
|
|
|
|
<input type="checkbox" class="cb" name="serDbg" {SER_DBG_CB}/><br/>
|
|
|
|
<label for="serIntvl">Interval [s]</label>
|
|
|
|
<input type="text" class="text" name="serIntvl" value="{SER_INTVL}"/>
|
|
|
|
|
|
|
|
<p class="des"> </p>
|
|
|
|
<label for="reboot">Reboot device after successful save</label>
|
|
|
|
<input type="checkbox" class="cb" name="reboot" checked/>
|
|
|
|
<input type="submit" value="save" class="btn" />
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div id="footer">
|
|
|
|
<p class="left"><a href="{IP}/">Home</a></p>
|
|
|
|
<p class="left"><a href="{IP}/update">Update Firmware</a></p>
|
|
|
|
<p class="right">AHOY - {VERSION}</p>
|
|
|
|
<p class="right"><a href="{IP}/factory">Factory Reset</a></p>
|
|
|
|
<p class="right"><a href="{IP}/reboot">Reboot</a></p>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|