Files
Symcon_Belevo_Energiemanage…/PV_Visu/module.html
2025-06-24 13:55:14 +02:00

52 lines
2.0 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
html, body { margin: 0; padding: 4px; background: transparent; }
.bar-container { width: 100%; background: #eee; border-radius: 4px; overflow: hidden; height: 20px; margin-bottom: 10px; }
.bar { height: 100%; float: left; }
.bar-cons { background: #4CAF50; }
.bar-feed { background: #8BC34A; }
.bar-pv { background: #FF9800; }
.bar-grid { background: #FF5722; }
.label { font-size: 0.9em; margin-bottom: 4px; color: #333; }
</style>
</head>
<body>
Hallo
<div id="pv_visu">
<div class="label" id="prodLabel"></div>
<div class="bar-container">
<div class="bar bar-cons" id="barCons"></div>
<div class="bar bar-feed" id="barFeed"></div>
</div>
<div class="label" id="consLabel"></div>
<div class="bar-container">
<div class="bar bar-pv" id="barPV"></div>
<div class="bar bar-grid" id="barGrid"></div>
</div>
</div>
<script>
function Apply(data) {
document.getElementById('prodLabel').innerText = 'Produktion: ' + data.value.prod + ' kWh';
document.getElementById('barCons').style.width = data.prodCons + '%';
document.getElementById('barFeed').style.width = data.prodFeed + '%';
document.getElementById('consLabel').innerText = 'Verbrauch: ' + data.value.cons + ' kWh';
document.getElementById('barPV').style.width = data.consPV + '%';
document.getElementById('barGrid').style.width = data.consGrid + '%';
}
function handleMessage(msg) {
try {
var data = (typeof msg === 'string') ? JSON.parse(msg) : msg;
Apply(data);
} catch(e) {
console.error('PV_Visu handleMessage error:', e, msg);
}
}
// Bind to HTML-SDK
if (typeof registerMessageHandler === 'function') {
registerMessageHandler(handleMessage);
}
</script>