index.htm 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <html><body>
  2. <h1><span id='devname'></span></h1>
  3. <h3>WiFi Switch</h3>
  4. <form id='BtnFrm1'><input type='hidden' name='Btn1' value='1'></form>
  5. <form id='BtnFrm2'><input type='hidden' name='Btn2' value='1'></form>
  6. <form id='BtnFrm3'><input type='hidden' name='Btn3' value='1'></form>
  7. <form id='AllOnFrm'><input type='hidden' name='allOn' value='1'></form>
  8. <form id='AllOffFrm'><input type='hidden' name='allOff' value='1'></form>
  9. <input type='button' value='All ON' id='allOn' onclick='return sendAllOn()'/><input type='button' value='All OFF' id='allOff' onclick='return sendAllOff()'/>
  10. <div style='font-size:xx-large'>
  11. <div id='sw1div' style='display:none'>1: <input type='button' id='tbtn1' onclick='return sendBtn(1)'/><br></div>
  12. <div id='sw2div' style='display:none'>2: <input type='button' id='tbtn2' onclick='return sendBtn(2)'/><br></div>
  13. <div id='sw3div' style='display:none'>3: <input type='button' id='tbtn3' onclick='return sendBtn(3)'/><br></div>
  14. </div>
  15. <br>
  16. <br>
  17. WiFi connected to <i><span id='ssid'></span></i>.<br>
  18. <h6>Last update
  19. <span id='ut'></span> seconds ago.
  20. <span id='status'></span>
  21. </h6>
  22. <br>
  23. <a href='/wifi.htm'>WiFi settings</a><br>
  24. <a href='/confhw'>Hardware configuration</a><br>
  25. <a href='/conf'>Base configuration</a><br>
  26. <a href='/conf2'>Extended configuration</a><br>
  27. <a href='/update'>Firmware update</a><br>
  28. <a href='/restart'>Restart</a>
  29. <script>
  30. function g(i) { return document.getElementById(i) };
  31. var xhttp, updateTime, reqTime, reqFin;
  32. var textA = 'OFF';
  33. var textE = 'ON';
  34. function sendBtn(btn) {
  35. var frmn='BtnFrm'+btn;
  36. var form = g(frmn);
  37. return transmit(form);
  38. }
  39. function sendAllOn() {
  40. return transmit(g('AllOnFrm'));
  41. }
  42. function sendAllOff() {
  43. return transmit(g('AllOffFrm'));
  44. }
  45. function transmit(f) {
  46. if (!xhttp) {
  47. g('status').innerHTML = 'loading...';
  48. reqTime = 0;
  49. reqFin = false;
  50. xhttp = new XMLHttpRequest();
  51. xhttp.timeout = 2000;
  52. xhttp.open('POST', 'api');
  53. xhttp.send(f ? (new FormData(f)) : '');
  54. xhttp.onreadystatechange = function () {
  55. if (xhttp.readyState === XMLHttpRequest.DONE && xhttp.status === 200) {
  56. var data = JSON.parse(xhttp.responseText);
  57. g('ssid').innerHTML = data.ssid;
  58. if(data.devname != undefined) g('devname').innerHTML = data.devname;
  59. if(data.swState1 != undefined) g('sw1div').style.display='inline';
  60. else g('sw1div').style.display='none';
  61. if(data.swState2 != undefined) g('sw2div').style.display='inline';
  62. else g('sw2div').style.display='none';
  63. if(data.swState3 != undefined) g('sw3div').style.display='inline';
  64. else g('sw3div').style.display='none';
  65. if(data.swState1 == '1') g('tbtn1').value = textE;
  66. else g('tbtn1').value = textA;
  67. if(data.swState2 == '1') g('tbtn2').value = textE;
  68. else g('tbtn2').value = textA;
  69. if(data.swState3 == '1') g('tbtn3').value = textE;
  70. else g('tbtn3').value = textA;
  71. xhttp = null;
  72. updateTime = 0;
  73. reqFin = true;
  74. }
  75. else {
  76. if(!reqFin && reqTime > 10) {
  77. xhttp = null;
  78. reqFin = true;
  79. }
  80. }
  81. }
  82. }
  83. return false;
  84. }
  85. transmit();
  86. setInterval(function () { g('ut').innerHTML = ++updateTime; ++reqTime; }, 1000);
  87. setInterval(transmit, 5000);
  88. </script>
  89. </body></html>