mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-27 19:57:38 +00:00
88 lines
4.0 KiB
JavaScript
88 lines
4.0 KiB
JavaScript
loopDeLoop(1000, 0);
|
|
function elId(e) {
|
|
return document.getElementById(e);
|
|
}
|
|
|
|
function loopDeLoop(timeForNext, activeRequests) {
|
|
var maximumRequests = 1;
|
|
var c;
|
|
var k;
|
|
var err = '';
|
|
var url = '/json?view=sensorupdate';
|
|
var check = 0;
|
|
if (isNaN(activeRequests)) {
|
|
activeRequests = maximumRequests;
|
|
}
|
|
if (timeForNext == null) {
|
|
timeForNext = 1000;
|
|
}
|
|
i = setInterval(function() {
|
|
if (check > 0) {
|
|
clearInterval(i);
|
|
return;
|
|
}
|
|
++activeRequests;
|
|
if (activeRequests > maximumRequests) {
|
|
check = 1;
|
|
} else {
|
|
fetch(url).then(function(response) {
|
|
var valueEntry;
|
|
if (response.status !== 200) {
|
|
console.log('Looks like there was a problem. Status Code: ' + response.status);
|
|
return;
|
|
}
|
|
response.json().then(function(data) {
|
|
timeForNext = data.TTL;
|
|
var showUoM = data.ShowUoM === undefined || (data.ShowUoM && data.ShowUoM !== 'false');
|
|
for (c = 0; c < data.Sensors.length; c++) {
|
|
if (data.Sensors[c].hasOwnProperty('TaskValues')) {
|
|
for (k = 0; k < data.Sensors[c].TaskValues.length; k++) {
|
|
try {
|
|
valueEntry = data.Sensors[c].TaskValues[k].Value;
|
|
} catch (err) {
|
|
valueEntry = err.name;
|
|
} finally {
|
|
if (valueEntry !== 'TypeError') {
|
|
var tempValue = data.Sensors[c].TaskValues[k].Value;
|
|
var decimalsValue = data.Sensors[c].TaskValues[k].NrDecimals;
|
|
if (decimalsValue < 255) {
|
|
tempValue = parseFloat(tempValue).toFixed(decimalsValue);
|
|
}
|
|
var tempUoM = data.Sensors[c].TaskValues[k].UoM;
|
|
var tempPres = data.Sensors[c].TaskValues[k].Presentation;
|
|
if (tempPres) {
|
|
tempValue = tempPres;
|
|
} else
|
|
if (tempUoM && showUoM) {
|
|
tempValue += ' ' + tempUoM;
|
|
}
|
|
var valueID = 'value_' + (data.Sensors[c].TaskNumber - 1) + '_' + (data.Sensors[c].TaskValues[k].ValueNumber - 1);
|
|
var valueNameID = 'valuename_' + (data.Sensors[c].TaskNumber - 1) + '_' + (data.Sensors[c].TaskValues[k].ValueNumber - 1);
|
|
var valueElement = elId(valueID);
|
|
var valueNameElement = elId(valueNameID);
|
|
if (valueElement) {
|
|
valueElement.innerHTML = tempValue;
|
|
}
|
|
if (valueNameElement) {
|
|
valueNameElement.innerHTML = data.Sensors[c].TaskValues[k].Name + ':';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
clearInterval(i);
|
|
loopDeLoop(timeForNext, 0);
|
|
return;
|
|
});
|
|
}).catch(function(err) {
|
|
console.log(err.message);
|
|
timeForNext = 5000;
|
|
clearInterval(i);
|
|
loopDeLoop(timeForNext, 0);
|
|
return;
|
|
});
|
|
check = 1;
|
|
}
|
|
}, timeForNext);
|
|
} |