html_confHeatcontrol.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. /* clang-format off */
  2. //static const char html_confbas_script[] PROGMEM = R"=====(
  3. //<script>
  4. // function g(i) { return document.getElementById(i) };
  5. // function sp(i){g(i).type=(g(i).type==='text'?'password':'text');}
  6. // var xhttp, reqTime, reqFin;
  7. // function setCbx(el, da) {
  8. // if(da == '1') {
  9. // el.checked = true;
  10. // el.style.visibility = 'visible';
  11. // }
  12. // else {
  13. // el.checked = false;
  14. // el.style.visibility = 'visible';
  15. // }
  16. // }
  17. // function updCbxVal(el) {
  18. // if (el.checked) el.value = '1';
  19. // else {
  20. // el.checked = true;
  21. // el.value = '0';
  22. // el.style.visibility = 'hidden';
  23. // }
  24. // }
  25. static const char html_confHeatc_script[] PROGMEM = R"=====(
  26. function transmit(f) {
  27. if (!xhttp) {
  28. reqTime = 0;
  29. reqFin = false;
  30. updCbxVal(g('heatUseHC'));
  31. updCbxVal(g('heatForceHC'));
  32. //updCbxVal(g('saveToMqttRet'));
  33. //updCbxVal(g('PIRenDispPs0'));
  34. //updCbxVal(g('togTHdisp'));
  35. xhttp = new XMLHttpRequest();
  36. xhttp.timeout = 1000;
  37. xhttp.overrideMimeType('application/json');
  38. xhttp.open('POST', 'confDataHeatc');
  39. xhttp.send(f ? (new FormData(f)) : '');
  40. xhttp.onreadystatechange = function () {
  41. if (xhttp.readyState === XMLHttpRequest.DONE && xhttp.status === 200) {
  42. var data = JSON.parse(xhttp.responseText);
  43. g('heatcm20').value = data.heatcm20;
  44. g('heatcm15').value = data.heatcm15;
  45. g('heatcm10').value = data.heatcm10;
  46. g('heatcm5').value = data.heatcm5;
  47. g('heatc0').value = data.heatc0;
  48. g('heatc5').value = data.heatc5;
  49. g('heatc10').value = data.heatc10;
  50. g('heatc15').value = data.heatc15;
  51. g('heatc20').value = data.heatc20;
  52. g('heatlm20').value = data.heatlm20;
  53. g('heatlm15').value = data.heatlm15;
  54. g('heatlm10').value = data.heatlm10;
  55. g('heatlm5').value = data.heatlm5;
  56. g('heatl0').value = data.heatl0;
  57. g('heatl5').value = data.heatl5;
  58. g('heatl10').value = data.heatl10;
  59. g('heatl15').value = data.heatl15;
  60. g('heatl20').value = data.heatl20;
  61. setCbx(g('heatUseHC'), data.heatUseHC);
  62. setCbx(g('heatForceHC'), data.heatForceHC);
  63. g('pumpnl').value = data.pumpnl;
  64. //setCbx(g('autoSaveMode'), data.autoSaveMode);
  65. //setCbx(g('saveToMqttRet'), data.saveToMqttRet);
  66. //setCbx(g('PIRenDispPs0'), data.PIRenDispPs0);
  67. //setCbx(g('togTHdisp'), data.togTHdisp);
  68. //g('tempDec').value = data.tempDec;
  69. //g('hyst').value = data.hyst;
  70. //g('minOffTime').value = data.minOffTime;
  71. //g('offMsg').value = data.offMsg;
  72. //g('iTempLab').value = data.iTempLab;
  73. //g('oTempLab').value = data.oTempLab;
  74. //g('modeName1').value = data.modeName1;
  75. //g('modeName0').value = data.modeName0;
  76. //g('psetName0').value = data.psetName0;
  77. //g('psetName1').value = data.psetName1;
  78. //g('psetName2').value = data.psetName2;
  79. //g('pauseTout').value = data.pauseTout;
  80. xhttp = null;
  81. reqFin = true;
  82. }
  83. else {
  84. if(!reqFin && reqTime > 10) {
  85. xhttp = null;
  86. reqFin = true;
  87. }
  88. }
  89. }
  90. }
  91. return false;
  92. }
  93. //transmit();
  94. function saveConf() {
  95. updCbxVal(g('heatUseHC'));
  96. updCbxVal(g('heatForceHC'));
  97. //updCbxVal(g('saveToMqttRet'));
  98. //updCbxVal(g('PIRenDispPs0'));
  99. //updCbxVal(g('togTHdisp'));
  100. g('frmConf').submit();
  101. }
  102. function init() {
  103. transmit();
  104. }
  105. )====="; // html_confTherm_script
  106. // setInterval(function () { ++reqTime; }, 1000);
  107. //</script>
  108. //)====="; // html_confTherm_script
  109. static const char html_confHeatc_body[] PROGMEM = R"=====(
  110. <b>Configuration - Heat Control</b>
  111. <div class='config'>
  112. <form id='frmConf' action='setConfHeatc' method='POST'>
  113. <br>
  114. <fieldset>
  115. <legend>Heat Curve</legend>
  116. <table>
  117. <tr><th>Outside</th><th>Feed [°C]</th></tr>
  118. <tr><td><b>-20°C</b></td><td><input type='number' min='10' max='90' name='heatcm20' id='heatcm20'></td></tr>
  119. <tr><td><b>-15°C</b></td><td><input type='number' min='10' max='90' name='heatcm15' id='heatcm15'></td></tr>
  120. <tr><td><b>-10°C</b></td><td><input type='number' min='10' max='90' name='heatcm10' id='heatcm10'></td></tr>
  121. <tr><td><b>-5°C</b></td><td><input type='number' min='10' max='90' name='heatcm5' id='heatcm5'></td></tr>
  122. <tr><td><b>0°C</b></td><td><input type='number' min='10' max='90' name='heatc0' id='heatc0'></td></tr>
  123. <tr><td><b>5°C</b></td><td><input type='number' min='10' max='90' name='heatc5' id='heatc5'></td></tr>
  124. <tr><td><b>10°C</b></td><td><input type='number' min='10' max='90' name='heatc10' id='heatc10'></td></tr>
  125. <tr><td><b>15°C</b></td><td><input type='number' min='10' max='90' name='heatc15' id='heatc15'></td></tr>
  126. <tr><td><b>20°C</b></td><td><input type='number' min='10' max='90' name='heatc20' id='heatc20'></td></tr>
  127. </table>
  128. <p><b>Use Heat Curve</b>&nbsp;<input type='checkbox' name='heatUseHC' id='heatUseHC'/></p>
  129. <p><b>Force Heat Curve</b>&nbsp;<input type='checkbox' name='heatForceHC' id='heatForceHC'/></p>
  130. </fieldset>
  131. <div></div><br>
  132. <fieldset>
  133. <legend>Heating - Lock Time</legend>
  134. <table>
  135. <tr><th>Outside</th><th>Lock Time [min]</th></tr>
  136. <tr><td><b>-20°C</b></td><td><input type='number' min='0' max='60' name='heatlm20' id='heatlm20'></td></tr>
  137. <tr><td><b>-15°C</b></td><td><input type='number' min='0' max='60' name='heatlm15' id='heatlm15'></td></tr>
  138. <tr><td><b>-10°C</b></td><td><input type='number' min='0' max='60' name='heatlm10' id='heatlm10'></td></tr>
  139. <tr><td><b>-5°C</b></td><td><input type='number' min='0' max='60' name='heatlm5' id='heatlm5'></td></tr>
  140. <tr><td><b>0°C</b></td><td><input type='number' min='0' max='60' name='heatl0' id='heatl0'></td></tr>
  141. <tr><td><b>5°C</b></td><td><input type='number' min='0' max='60' name='heatl5' id='heatl5'></td></tr>
  142. <tr><td><b>10°C</b></td><td><input type='number' min='0' max='60' name='heatl10' id='heatl10'></td></tr>
  143. <tr><td><b>15°C</b></td><td><input type='number' min='0' max='60' name='heatl15' id='heatl15'></td></tr>
  144. <tr><td><b>20°C</b></td><td><input type='number' min='0' max='60' name='heatl20' id='heatl20'></td></tr>
  145. </table>
  146. </fieldset>
  147. <div></div><br>
  148. <fieldset>
  149. <legend>Pump</legend>
  150. <p><b>Backlash [min]</b><br><input type='text' name='pumpnl' id='pumpnl'></p><br>
  151. </fieldset>
  152. <div></div><br>
  153. </form>
  154. <div></div>
  155. <table style='width:100%'>
  156. <td style='width:50%'><button onclick='location="conf";' class='bgrey'>Cancel</button></td>
  157. <td style='width:50%'><button onclick='return saveConf()' class='bred'>Save</button></td>
  158. </tr></table>
  159. </div>
  160. )====="; // html_confHeatc_body