ESP-NOW-Switch/data/function.js
Alexey Zholtikov 0b603489fd Version 1.3
Added relay work modes.
2023-02-17 09:28:23 +03:00

94 lines
3.2 KiB
JavaScript
Executable File

var xmlHttp = createXmlHttpObject();
function createXmlHttpObject() {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
return xmlHttp;
}
function load() {
if (xmlHttp.readyState == 0 || xmlHttp.readyState == 4) {
xmlHttp.open('PUT', '/config.json', true);
xmlHttp.send(null);
xmlHttp.onload = function () {
jsonResponse = JSON.parse(xmlHttp.responseText);
loadBlock();
}
}
}
function loadBlock() {
newData = JSON.parse(xmlHttp.responseText);
data = document.getElementsByTagName('body')[0].innerHTML;
var newString;
for (var key in newData) {
newString = data.replace(new RegExp('{{' + key + '}}', 'g'), newData[key]);
data = newString;
}
document.getElementsByTagName('body')[0].innerHTML = newString;
setFirmvareValue('version', 'firmware');
setGpioValue('workModeSelect', 'workMode');
setGpioValue('relayPinSelect', 'relayPin');
setGpioValue('relayPinTypeSelect', 'relayPinType');
setGpioValue('ledPinSelect', 'ledPin');
setGpioValue('ledPinTypeSelect', 'ledPinType');
setGpioValue('buttonPinSelect', 'buttonPin');
setGpioValue('buttonPinTypeSelect', 'buttonPinType');
setGpioValue('extButtonPinSelect', 'extButtonPin');
setGpioValue('extButtonPinTypeSelect', 'extButtonPinType');
setGpioValue('sensorPinSelect', 'sensorPin');
setGpioValue('sensorTypeSelect', 'sensorType');
handleServerResponse();
}
function getValue(id) {
var value = document.getElementById(id).value;
return value;
}
function getSelectValue(id) {
var select = document.getElementById(id);
var value = select.value;
return value;
}
function sendRequest(submit, server) {
request = new XMLHttpRequest();
request.open("GET", server, true);
request.send();
}
function saveSetting(submit) {
server = "/setting?deviceName=" + getValue('deviceName')
+ "&espnowNetName=" + getValue('espnowNetName')
+ "&relayPin=" + getSelectValue('relayPinSelect')
+ "&relayPinType=" + getSelectValue('relayPinTypeSelect')
+ "&ledPin=" + getSelectValue('ledPinSelect')
+ "&ledPinType=" + getSelectValue('ledPinTypeSelect')
+ "&buttonPin=" + getSelectValue('buttonPinSelect')
+ "&buttonPinType=" + getSelectValue('buttonPinTypeSelect')
+ "&extButtonPin=" + getSelectValue('extButtonPinSelect')
+ "&extButtonPinType=" + getSelectValue('extButtonPinTypeSelect')
+ "&sensorPin=" + getSelectValue('sensorPinSelect')
+ "&sensorType=" + getSelectValue('sensorTypeSelect')
+ "&workMode=" + getSelectValue('workModeSelect');
sendRequest(submit, server);
alert("Please restart device for changes apply.");
}
function restart(submit) {
server = "/restart";
sendRequest(submit, server);
}
function setFirmvareValue(id, value) {
document.getElementById(id).innerHTML = document.getElementById(value).value;
}
function setGpioValue(id, value) {
var select = document.getElementById(id);
select.value = document.getElementById(value).value;
}