Sensor3/data/http/index.htm

131 lines
2.8 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta name="viewport" content="width=device-width, user-scalable=no">
<title>G&auml;rbox</title>
<style>
body {
font-size: 16vw;
font-family: sans-serif;
margin: 0.1em;
}
div {
overflow: hidden;
}
.entry {
padding-bottom: 0.5em;
.title {
font-size: 60%;
}
.value {
float: left;
}
.controls {
float: right;
.control {
float: left;
}
.controlUp {
color: red;
}
.controlDown {
color: blue;
}
}
}
#overlay {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
color: red;
font-size: 10vw;
line-height: 100vh;
text-align: center;
background-color: rgba(0, 0, 0, 0.9);
}
</style>
</head>
<body>
<div class="entry">
<div class="title">
Ist-Temperatur
</div>
<div class="value" id="currentCelsius">
<!-- via js -->
</div>
</div>
<div class="entry">
<div class="title">
Ziel-Temperatur
</div>
<div class="value" id="targetCelsius">
<!-- via js -->
</div>
<div class="controls">
<div class="control controlUp" onclick="get('/up')">&uarr;</div>
<div class="control controlDown" onclick="get('/down')">&darr;</div>
</div>
</div>
<div id="overlay">
Nicht verbunden
</div>
<script>
const overlay = document.getElementById('overlay');
const currentCelsius = document.getElementById('currentCelsius');
const targetCelsius = document.getElementById('targetCelsius');
function get(url) {
const request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (this.readyState === 4) {
currentCelsius.classList.remove("tooCold");
currentCelsius.classList.remove("tooWarm");
currentCelsius.classList.remove("good");
if (this.status === 200) {
overlay.classList.add("noOverlay");
const json = JSON.parse(this.responseText);
currentCelsius.innerText = (json.currentCelsius || '---') + ' &deg;C';
targetCelsius.innerText = (json.targetCelsius || '---') + ' &deg;C';
const difference = json.currentCelsius - json.targetCelsius;
if (Math.abs(difference) <= 0.5) {
currentCelsius.classList.add("good");
} else if (difference < 0) {
currentCelsius.classList.add("tooCold");
} else {
currentCelsius.classList.add("tooWarm");
}
}
}
};
request.open("GET", url);
request.send();
return request;
}
get("/get");
</script>
</body>
</html>