123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- /* clang-format off */
- //static const char html_confbas_script[] PROGMEM = R"=====(
- //<script>
- // function g(i) { return document.getElementById(i) };
- // function sp(i){g(i).type=(g(i).type==='text'?'password':'text');}
- // var xhttp, reqTime, reqFin;
- // function setCbx(el, da) {
- // if(da == '1') {
- // el.checked = true;
- // el.style.visibility = 'visible';
- // }
- // else {
- // el.checked = false;
- // el.style.visibility = 'visible';
- // }
- // }
- // function updCbxVal(el) {
- // if (el.checked) el.value = '1';
- // else {
- // el.checked = true;
- // el.value = '0';
- // el.style.visibility = 'hidden';
- // }
- // }
- static const char html_confHeatc_script[] PROGMEM = R"=====(
- function transmit(f) {
- if (!xhttp) {
- reqTime = 0;
- reqFin = false;
- updCbxVal(g('heatUseHC'));
- updCbxVal(g('heatForceHC'));
- updCbxVal(g('heatForceHCAlsoOn'));
- //updCbxVal(g('saveToMqttRet'));
- //updCbxVal(g('PIRenDispPs0'));
- //updCbxVal(g('togTHdisp'));
- xhttp = new XMLHttpRequest();
- xhttp.timeout = 1000;
- xhttp.overrideMimeType('application/json');
- xhttp.open('POST', 'confDataHeatc');
- xhttp.send(f ? (new FormData(f)) : '');
- xhttp.onreadystatechange = function () {
- if (xhttp.readyState === XMLHttpRequest.DONE && xhttp.status === 200) {
- var data = JSON.parse(xhttp.responseText);
- g('heatOutTDis').value = data.heatOutTDis;
- g('heatcm20').value = data.heatcm20;
- g('heatcm15').value = data.heatcm15;
- g('heatcm10').value = data.heatcm10;
- g('heatcm5').value = data.heatcm5;
- g('heatc0').value = data.heatc0;
- g('heatc5').value = data.heatc5;
- g('heatc10').value = data.heatc10;
- g('heatc15').value = data.heatc15;
- g('heatc20').value = data.heatc20;
- g('heatlm20').value = data.heatlm20;
- g('heatlm15').value = data.heatlm15;
- g('heatlm10').value = data.heatlm10;
- g('heatlm5').value = data.heatlm5;
- g('heatl0').value = data.heatl0;
- g('heatl5').value = data.heatl5;
- g('heatl10').value = data.heatl10;
- g('heatl15').value = data.heatl15;
- g('heatl20').value = data.heatl20;
- setCbx(g('heatUseHC'), data.heatUseHC);
- setCbx(g('heatForceHC'), data.heatForceHC);
- setCbx(g('heatForceHCAlsoOn'), data.heatForceHCAlsoOn);
- g('heatCvHy1').value = data.heatCvHy1;
- g('heatCvHy0').value = data.heatCvHy0;
- g('pumpnl').value = data.pumpnl;
- g('heatTempFeedLimit').value = data.heatTempFeedLimit;
- g('pumpForceInt').value = data.pumpForceInt;
- g('pumpForceTime').value = data.pumpForceTime;
- g('pumpForceBegin').value = data.pumpForceBegin;
- g('pumpForceEnd').value = data.pumpForceEnd;
- //setCbx(g('autoSaveTemp'), data.autoSaveTemp);
- //setCbx(g('autoSaveMode'), data.autoSaveMode);
- //setCbx(g('saveToMqttRet'), data.saveToMqttRet);
- //setCbx(g('PIRenDispPs0'), data.PIRenDispPs0);
- //setCbx(g('togTHdisp'), data.togTHdisp);
- //g('tempDec').value = data.tempDec;
- //g('hyst').value = data.hyst;
- //g('minOffTime').value = data.minOffTime;
- //g('offMsg').value = data.offMsg;
- //g('iTempLab').value = data.iTempLab;
- //g('oTempLab').value = data.oTempLab;
- //g('modeName1').value = data.modeName1;
- //g('modeName0').value = data.modeName0;
- //g('psetName0').value = data.psetName0;
- //g('psetName1').value = data.psetName1;
- //g('psetName2').value = data.psetName2;
- //g('pauseTout').value = data.pauseTout;
- xhttp = null;
- reqFin = true;
- }
- else {
- if(!reqFin && reqTime > 10) {
- xhttp = null;
- reqFin = true;
- }
- }
- }
- }
- return false;
- }
- //transmit();
- function saveConf() {
- updCbxVal(g('heatUseHC'));
- updCbxVal(g('heatForceHC'));
- updCbxVal(g('heatForceHCAlsoOn'));
- //updCbxVal(g('saveToMqttRet'));
- //updCbxVal(g('PIRenDispPs0'));
- //updCbxVal(g('togTHdisp'));
- g('frmConf').submit();
- }
- function init() {
- transmit();
- }
- )====="; // html_confTherm_script
- // setInterval(function () { ++reqTime; }, 1000);
- //</script>
- //)====="; // html_confTherm_script
- static const char html_confHeatc_body[] PROGMEM = R"=====(
- <b>Konfiguration - Heizungssteuerung</b>
- <div class='config'>
- <form id='frmConf' action='setConfHeatc' method='POST'>
- <br>
- <fieldset>
- <legend>Heizung</legend>
- <p><b>Limit Vorlauftemperatur</b><br>
- <input class='smallnum' type='number' min='0' max='10' name='heatTempFeedLimit' id='heatTempFeedLimit'>
- <p class='n'>Das Erreichen dieser Vorlauftemperatur führt<br>
- immer zur sofortigen Abschaltung. </p>
- </p>
- <br>
- <p>
- <b>Heizung deaktivieren</b><br>
- <p class='n'>wenn A-Temp >= <input class='smallnum' type='number' min='16' max='26' name='heatOutTDis' id='heatOutTDis'></p>
- <br>
- </fieldset>
- <div></div><br>
- <fieldset>
- <legend>Heizkurve</legend>
- <p><b>Heizkurve verwenden</b> <input type='checkbox' name='heatUseHC' id='heatUseHC'/></p>
- <p class='n'>Wenn <b>deaktiviert</b> folgt die Ansteuerung <br>
- der Heizung ausschließlich der Anforderung <br>
- des Raumthermostats.</p>
- <br>
- <table>
- <tr><th>Außen</th><th> - </th><th>Vorlauf [°C]</th></tr>
- <tr><td><b>< -20°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatcm20' id='heatcm20'></td></tr>
- <tr><td><b>< -15°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatcm15' id='heatcm15'></td></tr>
- <tr><td><b>< -10°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatcm10' id='heatcm10'></td></tr>
- <tr><td><b>< -5°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatcm5' id='heatcm5'></td></tr>
- <tr><td><b>< 0°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatc0' id='heatc0'></td></tr>
- <tr><td><b>< 5°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatc5' id='heatc5'></td></tr>
- <tr><td><b>< 10°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatc10' id='heatc10'></td></tr>
- <tr><td><b>< 15°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatc15' id='heatc15'></td></tr>
- <tr><td><b>> 15°C</b></td><td> - </td><td><input class='smallnum' type='number' min='10' max='90' name='heatc20' id='heatc20'></td></tr>
- </table>
- <br>
- <p><b>Abschaltpunkt [Heizkurve + °C]</b><br>
- <input class='smallnum' type='number' min='0' max='10' name='heatCvHy0' id='heatCvHy0'>
- </p>
- <br>
- <p><b>Einschaltpunkt [Heizkurve - °C]</b><br>
- <input class='smallnum' type='number' min='0' max='16' name='heatCvHy1' id='heatCvHy1'>
- </p>
- <br>
- <p><b>Heizkurve forcieren <br>
- bei Abschaltung</b>
- <input type='checkbox' name='heatForceHC' id='heatForceHC'/></p>
- <p class='n'>Wenn <b>aktiviert</b> wird nach einer <br>
- Heizanforderung weiter geheizt, bis die <br>
- Soll-Vorlauftemperatur erreicht ist, <br>
- auch wenn die Anforderung in der <br>
- Zwischenzeit weggefallen ist. <br>
- <i>Dies kann in Verbindung mit der Brenner-<br>
- Sperrzeit bei Raumthermostaten mit zu <br>
- geringer Hysterese sinnvoll sein.</i></p>
- <br>
- <p><b>Heizkurve forcieren auch <br>
- bei Einschaltung</b>
- <input type='checkbox' name='heatForceHCAlsoOn' id='heatForceHCAlsoOn'/></p>
- <p class='n'><b>ACHTUNG!!!</b><br>
- Wenn <b>aktiviert</b> wird die Heizanforderung <br>
- des Raumthermostats <b>komplett ignoriert</b>! <br>
- Die Heizung wird dann <b>ausschließlich</b> <br>
- durch die Heizkurve gesteuert.<br>
- Damit dies verwendet wird müssen auch die <br>
- Optionen <b>'Heizkurve verwenden'</b> und <br>
- <b>'Heizkurve forcieren bei Abschaltung'</b> aktiviert sein.
- </p>
- <br>
- </fieldset>
- <div></div><br>
- <fieldset>
- <legend>Heizung - Brenner-Sperrzeit</legend>
- <table>
- <tr><th>Außen</th><th> - </th><th>Sperrzeit [min]</th></tr>
- <tr><td><b>< -20°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatlm20' id='heatlm20'></td></tr>
- <tr><td><b>< -15°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatlm15' id='heatlm15'></td></tr>
- <tr><td><b>< -10°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatlm10' id='heatlm10'></td></tr>
- <tr><td><b>< -5°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatlm5' id='heatlm5'></td></tr>
- <tr><td><b>< 0°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatl0' id='heatl0'></td></tr>
- <tr><td><b>< 5°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatl5' id='heatl5'></td></tr>
- <tr><td><b>< 10°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatl10' id='heatl10'></td></tr>
- <tr><td><b>< 15°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatl15' id='heatl15'></td></tr>
- <tr><td><b>> 15°C</b></td><td> - </td><td><input class='smallnum' type='number' min='0' max='60' name='heatl20' id='heatl20'></td></tr>
- </table>
- </fieldset>
- <div></div><br>
- <fieldset>
- <legend>Pumpe</legend>
- <p><b>Nachlaufzeit [min]</b><br><input class='smallnum' type='number' min='0' max='90' name='pumpnl' id='pumpnl'></p><br>
- <p> </p>
- <p>Pumpenstillstand verhindern</p>
- <br>
- <p><b>Alle <input class='smallnum' type='number' min='0' max='255' name='pumpForceInt' id='pumpForceInt'> Stunden</b><br>
- für <input class='smallnum' type='number' min='1' max='255' name='pumpForceTime' id='pumpForceTime'> Minuten einschalten.</b></p><br>
- <p><b>Nur im Zeitfenster: <br>
- <input class='smallnum' type='number' min='0' max='23' name='pumpForceBegin' id='pumpForceBegin' style='width:100'> - <input class='smallnum' type='number' min='0' max='24' name='pumpForceEnd' id='pumpForceEnd'> Uhr</b><br></p>
- <p class='n'><i>NTP muss aktiviert sein.<br>
- Es ist eine Internetverbindung zum <br>
- Zeitserver erforderlich.<br>
- Ist dies nicht der Fall wird <br>
- die Uhrzeit nicht beachtet.<br>
- Beide Werte auf 0 setzen um die <br>
- Uhrzeiten zu deaktivieren.</i></p>
- </p><br>
- </fieldset>
- <div></div><br>
- </form>
- <div></div>
- <table style='width:100%'>
- <td style='width:50%'><button onclick='location="conf";' class='bgrey'>Abbrechen</button></td>
- <td style='width:50%'><button onclick='return saveConf()' class='bred'>Speichern</button></td>
- </tr></table>
- </div>
- )====="; // html_confHeatc_body
|