<!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>