Re: Ofensteuerung Drooff fire+
Verfasst: 2. Sep 2021 07:38
Ja, genau. Als nächstes werde ich die Werte in Zahlen ändern, per Influxdb sammeln und per Grafana (als Diagramm) aufhübschen.
Die größere nächste Challenge ist dann, dass auf der Seite http://192.168.178.48/fireplus2.php Buttons zur Bedienung sind: ECO/Normal/Power.
Wie lassen sich diese wohl per OpenHAB steuern?
Quellcode der Seite:
Die größere nächste Challenge ist dann, dass auf der Seite http://192.168.178.48/fireplus2.php Buttons zur Bedienung sind: ECO/Normal/Power.
Wie lassen sich diese wohl per OpenHAB steuern?
Quellcode der Seite:
Code: Alles auswählen
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="IEP GmbH">
<meta name="description" content="">
<title>fire+ Bedienung</title>
<link rel="icon" type="image/png" sizes="32x32" href="favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="icon/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="icon/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="icon/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="icon/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="icon/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="icon/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="icon/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="icon/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="icon/apple-icon-180x180.png">
<meta name="apple-mobile-web-app-title" content="fire+">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="css/my_eas.css" />
<link rel="stylesheet" href="css/eas.css" />
<link rel="stylesheet" href="css/jquery.mobile.icons-1.4.5.min.css" />
<link rel="stylesheet" href="css/jquery.mobile.structure-1.4.5.min.css" />
<link rel="manifest" href="manifest.json">
<meta name="msapplication-config" content="browserconfig.xml" />
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.flot.min.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.flot.time.min.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery.flot.resize.min.js"></script>
<script language="javascript" type="text/javascript" src="js/sprache.js"></script>
<script type="text/javascript">
var Fernbedienung = 0 ;
var strPanelAlt = "" ;
var intPanel ;
// Wenn das Dokument geladen ist, werden alle 2 s neue Werte geholt
$(document).ready(function() {
SpracheUmschalten( "ger" ) ;
// einmal am Anfang aufrufen, dann alle 2s
aktualisierePanel();
// Änderung des Sliderswertes, Daten an EAS senden
$("#Helligkeit").on("slidestop", function(e){
DataChange();
});
// alle 2 s die Daten per Ajax neu laden
var refreshId = setInterval(function() {
aktualisierePanel();
}, 2000);
$.ajaxSetup({ cache: false });
});
function aktualisierePanel() {
$.ajax({ type: "GET",
dataType: "json",
url: "php/easpanel.php",
async: false,
success : function(panelAntwort)
{
strPanel = panelAntwort ;
},
error: function( text ) {
alert( "Kommunikationsproblem Panel zum Server!" );
}
});
SetzeButton();
}
function SetzeButton() {
if ( strPanel.length > 11 ) {
if ( strPanel != strPanelAlt ){
strPanelAlt = strPanel ;
intPanel = strPanel.split("\n") ;
intPanel.pop() ; // letzte Element ist leer, löschen
Fernbedienung = intPanel[1] ;
if ( intPanel[0] == 1 && Fernbedienung == 0 ) {
switch( intPanel[2]) {
case "1":
document.getElementById('Betrieb1').checked = true;
document.getElementById('Betrieb1').disabled = false;
document.getElementById('Betrieb2').disabled = true;
document.getElementById('Betrieb3').disabled = true;
document.getElementById('Betrieb4').disabled = true;
break;
case "2":
document.getElementById('Betrieb2').checked = true;
document.getElementById('Betrieb2').disabled = false;
document.getElementById('Betrieb1').disabled = true;
document.getElementById('Betrieb3').disabled = true;
document.getElementById('Betrieb4').disabled = true;
break;
case "3":
document.getElementById('Betrieb3').checked = true;
document.getElementById('Betrieb3').disabled = false;
document.getElementById('Betrieb1').disabled = true;
document.getElementById('Betrieb2').disabled = true;
document.getElementById('Betrieb4').disabled = true;
break;
case "4":
document.getElementById('Betrieb4').checked = true;
document.getElementById('Betrieb4').disabled = false;
document.getElementById('Betrieb1').disabled = true;
document.getElementById('Betrieb2').disabled = true;
document.getElementById('Betrieb3').disabled = true;
break;
}
switch( intPanel[3]) {
case "4":
document.getElementById('Leistung1').checked = true;
document.getElementById('Leistung1').disabled = false;
document.getElementById('Leistung2').disabled = true;
break;
case "8":
document.getElementById('Leistung2').checked = true;
document.getElementById('Leistung2').disabled = false;
document.getElementById('Leistung1').disabled = true;
break;
}
if ( intPanel[10] == 1 ){
// LED sind an
document.getElementById('LED1').checked = true;
document.getElementById('LED1').disabled = false;
document.getElementById('LED2').disabled = true;
}
else {
// LED sind aus
document.getElementById('LED2').checked = true;
document.getElementById('LED2').disabled = false;
document.getElementById('LED1').disabled = true;
}
document.getElementById('Helligkeit').value = intPanel[4];
$("#Helligkeit").slider("disable");
$("#Helligkeit").slider("refresh");
}
else {
// Bedienung über WEB-Oberfläche, alle Elemente enablen
document.getElementById('Betrieb1').disabled = true;
document.getElementById('Betrieb2').disabled = false;
document.getElementById('Betrieb3').disabled = false;
document.getElementById('Betrieb4').disabled = false;
document.getElementById('Leistung1').disabled = false;
document.getElementById('Leistung2').disabled = false;
document.getElementById('LED1').disabled = false;
document.getElementById('LED2').disabled = false;
switch( intPanel[2]) {
case "1":
document.getElementById('Betrieb1').checked = true;
break;
case "2":
document.getElementById('Betrieb2').checked = true;
break;
case "3":
document.getElementById('Betrieb3').checked = true;
break;
case "4":
document.getElementById('Betrieb4').checked = true;
break;
}
switch( intPanel[3]) {
case "4":
document.getElementById('Leistung1').checked = true;
break;
case "8":
document.getElementById('Leistung2').checked = true;
break;
}
if ( intPanel[10] == 1 ){
// LED sind an
document.getElementById('LED1').checked = true;
}
else {
// LED sind aus
document.getElementById('LED2').checked = true;
}
document.getElementById('Helligkeit').value = intPanel[4];
$("#Helligkeit").slider("enable");
$("#Helligkeit").slider("refresh");
}
if ( intPanel[0] == 1 ) {
if ( Fernbedienung == 0 ) {
$('#FeTa').html('<button class="ui-btn ui-icon-refresh ui-btn-icon-top ui-btn-corner-all ui-nodisk-icon ui-alt-icon" onclick="FernbedienungChange();">Fernbedienung über Webvisu</button>') ;
}
else {
$('#FeTa').html('<button class="ui-btn ui-icon-lock ui-btn-icon-top ui-nodisk-icon ui-alt-icon" onclick="FernbedienungChange();">Panelbedienung am Ofen</button>') ;
}
}
else {
$('#FeTa').html('') ;
}
if ( ( parseFloat( intPanel[5] ) < 100 ) && ( document.getElementById('AB2').checked == true ) ) {
// Temperatur unter 100° und Glutabbrand aktiv, auf Gluterhaltung umschalten
document.getElementById('AB1').checked = true; // Gluterhaltung
DataChange() ;
}
else {
// Ofen brennt, Kunde kann wählen!
if ( intPanel[11] == 0 ){
// Gluterhaltung
document.getElementById('AB1').checked = true;
}
else {
// Nachbrennen
document.getElementById('AB2').checked = true;
}
}
$("input[type='radio']").checkboxradio("refresh"); // RadioButtons aktualisieren
}
}
}
function FernbedienungChange() {
Fernbedienung = ( (Fernbedienung == 1) ? 0 : 1 );
DataChange();
}
function DataChange() {
var Betrieb = $('input[name=Betrieb]:checked').val();
var Leistung = $('input[name=Leistung]:checked').val();
var Helligkeit = $('#Helligkeit').val();
var Bedienung = Fernbedienung;
var LED = $('input[name=LED]:checked').val();
var AB = $('input[name=AB]:checked').val();
$.ajax({
type: "POST",
url: "php/easpanelW.php",
cache: false,
data: {Betrieb: Betrieb, Leistung: Leistung, Helligkeit: Helligkeit, Bedienung: Bedienung, LED: LED, AB: AB},
error: function( text ) {alert( "Daten konnten nicht geschrieben werden!" );}
});
}
function DatenSchutz() {
window.location = "fireplus8.php" ;
}
function English() {
SpracheUmschalten('gb') ;
document.images["1"].src = "images/de-middle.gif" ;
document.images["2"].src = "images/gb-middle-grau.gif" ;
}
function Deutsch() {
SpracheUmschalten('ger') ;
document.images["1"].src = "images/de-middle-grau.gif" ;
document.images["2"].src = "images/gb-middle.gif" ;
}
</script>
</head>
<body>
<div data-role="page" data-theme="a" style="min-width:22em">
<div data-role="header">
<h1><i>fire</i>+</h1>
</div>
<div class="ui-grid-a" id="Sprache">
<div style="width:20%" class="ui-block-a">
<div class="ui-body" id="Logo">
<a href=https://www.drooff-kaminofen.de/ rel="external" target="_blank"><img src="images/DROOFF_Logo50.png" alt="Drooff Logo"/></a>
</div>
</div>
<div style="width:80%" class="ui-block-b">
<div class="ui-body">
<a style="float:right;margin-top:0.2em; margin-left:1em;padding: 0.2em;font-size:12.5px" href="#" onclick="DatenSchutz()" class="ui-btn">Datenschutz</a>
<a style="float:right;margin:4px" href="#" onclick="English()" id="English"><img src="images/gb-middle.gif" alt="english version"></a>
<a style="float:right;margin:4px" href="#" onclick="Deutsch()" id="Deutsch"><img src="images/de-middle-grau.gif" alt="deutsche Version"></a>
</div>
</div>
</div>
<div data-role="navbar" id="Oben" data-iconpos="top">
<ul>
<li><a href="index.php" data-icon="home" data-ajax="false">Home</a></li>
<li><a href="#" data-icon="edit" class="ui-btn-active" data-ajax="false">Bedienung</a></li>
<li><a href="fireplus1.php" data-icon="action" data-ajax="false">History</a></li>
<li><a href="fireplus3.php" data-icon="gear" data-ajax="false">Service</a></li>
</ul>
</div>
<div id="Oben" style="margin-top:30px">
<div class="ui-field-contain" data-position="inline">
<form>
<fieldset data-role="controlgroup" data-type="horizontal">
<input name="Betrieb" id="Betrieb1" value="1" type="radio" onclick="DataChange();" >
<label style="width:7em" for="Betrieb1"><span class="ui-icon-myicon0 inlineIcon ui-btn-icon-notext"></span>Service</label>
<input name="Betrieb" id="Betrieb2" value="2" checked="checked" type="radio" onclick="DataChange();">
<label style="width:7em" for="Betrieb2"><span class="ui-btn-icon-notext ui-icon-myicon1 inlineIcon"></span>ECO</label>
<input name="Betrieb" id="Betrieb3" value="3" type="radio" onclick="DataChange();" >
<label style="width:7em" for="Betrieb3"><span class="ui-btn-icon-notext ui-icon-myicon2 inlineIcon"></span>Normal</label>
<input name="Betrieb" id="Betrieb4" value="4" type="radio" onclick="DataChange();" >
<label style="width:7em" for="Betrieb4"><span class="ui-btn-icon-notext ui-icon-myicon3 inlineIcon"></span>Power</label>
</fieldset>
</form>
</div>
<div class="ui-field-contain" data-position="inline">
<form>
<fieldset data-role="controlgroup" data-type="horizontal">
<input name="Leistung" id="Leistung1" value="4" checked="checked" type="radio" onclick="DataChange();">
<label style="width:7em" for="Leistung1"><span class="ui-btn-icon-notext ui-icon-myicon4 inlineIcon"></span>4 kW</label>
<input name="Leistung" id="Leistung2" value="8" type="radio" onclick="DataChange();" >
<label style="width:7em" for="Leistung2"><span class="ui-btn-icon-notext ui-icon-myicon5 inlineIcon"></span>8 kW</label>
</fieldset>
</form>
</div>
<div class="ui-field-contain" data-position="inline">
<form>
<fieldset data-role="controlgroup" data-type="horizontal">
<input name="AB" id="AB1" value="0" checked="checked" type="radio" onclick="DataChange();">
<label style="width:7em" for="AB1">Gluterhaltung</label>
<input name="AB" id="AB2" value="1" type="radio" onclick="DataChange();" >
<label style="width:7em" for="AB2">Glutabbrand</label>
</fieldset>
</form>
</div>
<div id="Unten">
<div class="ui-field-contain" data-position="inline">
<form>
<fieldset data-role="controlgroup" data-type="horizontal">
<input name="LED" id="LED1" value="1" checked="checked" type="radio" onclick="DataChange();">
<label style="width:7em" for="LED1">LED-Band an</label>
<input name="LED" id="LED2" value="0" type="radio" onclick="DataChange();" >
<label style="width:7em" for="LED2">LED-Band aus</label>
</fieldset>
</form>
</div>
<div class="ui-body">
<label for="Helligkeit">Helligkeit:</label>
<input id="Helligkeit" type="range" name="Helligkeit" min="20" max="100" step="10" value="50" data-theme="a" class="ui-responsive" onclick="DataChange();">
</div>
</div>
<div id="FeTa">
<button class="ui-btn ui-icon-refresh ui-btn-icon-left ui-btn-corner-all ui-nodisk-icon ui-alt-icon" onclick="FernbedienungChange();">Fernbedienung</button>
</div>
</div>
</div>
</body>
</html>