Openhab 2 mit http Bindung
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: Openhab 2 mit http Bindung
nur so eine Überlegung. Da die UVR1611 auch zwischendurch das Bild.gif mitsendet also irgendwelche Binärdaten - könnte das zum Abbruch des Einlesens führen? In diesem Fall ginge String ja wohl nicht - oder? Was könnte man dann nehmen / machen?
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openhab 2 mit http Bindung
Hmm... Aber die Seite endet doch mit </html> (also der Beispielcode oben)?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: Openhab 2 mit http Bindung
ja, leider. Da kommt danach dann der interessante Teil mit den Daten, bis zum </html> ist praktisch nur der Seitenaufbau ohne Daten
2020-08-17 19:43:19.354 [DEBUG] [ab.binding.http.internal.HttpBinding] - updating cache for 'blnet' ('http://192.168.178.222/GRAFIK.html')
2020-08-17 19:43:19.524 [DEBUG] [ab.binding.http.internal.HttpBinding] - transformed response is '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><meta http-equiv="expires" content="0"><style type="text/css">body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif; background-repeat: no-repeat;} #g {position: relative;}#pa {top: 0px; left: 0px; position: absolute;}#p {top: 0px; left: 0px; position: absolute;} </style><script type="text/javascript">function sd (){document.title = this.data.Title; document.getElementById("g").style.width = this.data.Width; document.getElementById("g").style.height = this.data.Height; document.getElementById("pa").style.width = this.data.Width;document.getElementById("pa").style.height = this.data.Height;document.getElementById("p").src = this.data.GraphicFile; var rT = this.data.AutoRefreshTime; if(rT>29)window.setInterval("javascript:this.data.location.reload()", rT*1000); var rlt = this.data.RefreshLink;if(rlt!="") {var rL = document.createElement('a');rL.href="javascript:this.data.location.reload()"; rL.appendChild(document.createTextNode(rlt)); document.getElementById("rld").appendChild(rL);}} </script></head><body onload="sd ()"> <div align="center"><div id="g"> <img src="" border="0" id="p"> <iframe id="pa" src="GRAFIK1.htm" name="data" frameborder="0" scrolling="no" allowtransparency="yes"></iframe></div></div><div align="center" id="rld"></div></body></html>'
2020-08-17 19:43:20.525 [DEBUG] [ab.binding.http.internal.HttpBinding] - 'execute()' called ...
2020-08-17 19:43:21.526 [DEBUG] [ab.binding.http.internal.HttpBinding] - 'execute()' called ...
2020-08-17 19:43:22.527 [DEBUG] [ab.binding.http.internal.HttpBinding] - 'execute()' called ...
2020-08-17 19:43:19.354 [DEBUG] [ab.binding.http.internal.HttpBinding] - updating cache for 'blnet' ('http://192.168.178.222/GRAFIK.html')
2020-08-17 19:43:19.524 [DEBUG] [ab.binding.http.internal.HttpBinding] - transformed response is '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><meta http-equiv="expires" content="0"><style type="text/css">body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif; background-repeat: no-repeat;} #g {position: relative;}#pa {top: 0px; left: 0px; position: absolute;}#p {top: 0px; left: 0px; position: absolute;} </style><script type="text/javascript">function sd (){document.title = this.data.Title; document.getElementById("g").style.width = this.data.Width; document.getElementById("g").style.height = this.data.Height; document.getElementById("pa").style.width = this.data.Width;document.getElementById("pa").style.height = this.data.Height;document.getElementById("p").src = this.data.GraphicFile; var rT = this.data.AutoRefreshTime; if(rT>29)window.setInterval("javascript:this.data.location.reload()", rT*1000); var rlt = this.data.RefreshLink;if(rlt!="") {var rL = document.createElement('a');rL.href="javascript:this.data.location.reload()"; rL.appendChild(document.createTextNode(rlt)); document.getElementById("rld").appendChild(rL);}} </script></head><body onload="sd ()"> <div align="center"><div id="g"> <img src="" border="0" id="p"> <iframe id="pa" src="GRAFIK1.htm" name="data" frameborder="0" scrolling="no" allowtransparency="yes"></iframe></div></div><div align="center" id="rld"></div></body></html>'
2020-08-17 19:43:20.525 [DEBUG] [ab.binding.http.internal.HttpBinding] - 'execute()' called ...
2020-08-17 19:43:21.526 [DEBUG] [ab.binding.http.internal.HttpBinding] - 'execute()' called ...
2020-08-17 19:43:22.527 [DEBUG] [ab.binding.http.internal.HttpBinding] - 'execute()' called ...
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openhab 2 mit http Bindung
Hm. Da wird ja eine komplett anderes Seite ausgeliefert...
Eigentlich sollte das http Binding sich nicht um Tags scheren, es heißt ja nicht html Binding, sondern http... Timeout könnte natürlich sein, das kannst Du aber in der http.cfg anpassen (nur für das http Binding insgesamt).
Eigentlich sollte das http Binding sich nicht um Tags scheren, es heißt ja nicht html Binding, sondern http... Timeout könnte natürlich sein, das kannst Du aber in der http.cfg anpassen (nur für das http Binding insgesamt).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: Openhab 2 mit http Bindung
Das Timeout sollte groß genug sein
# http binding
timeout=10000
granularity=5000
# format=true
//blnet1.url=http://192.168.178.222/c_index.htm
//blnet1.updateInterval=10000
blnet.url=http://192.168.178.222/GRAFIK.html
blnet.updateInterval=10000
# http binding
timeout=10000
granularity=5000
# format=true
//blnet1.url=http://192.168.178.222/c_index.htm
//blnet1.updateInterval=10000
blnet.url=http://192.168.178.222/GRAFIK.html
blnet.updateInterval=10000
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openhab 2 mit http Bindung
Setze doch bitte mal das updateInterval nach oben. Wenn http den Cache schon wieder füllt, bevor die Seite überhaupt komplett ausgeliefert ist, könnte das auch zu so einem Ergebnis führen. Setze das Interval vielleicht testweise mal auf 60000.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 39
- Registriert: 22. Jul 2020 19:15
Re: Openhab 2 mit http Bindung
Hallo Johannes,
was Hast Du denn bisher alles an der Seite der UVR bzw. dem BL-Net gemacht? Ich habe die Seite komplett neu geschrieben mit den Eingängen und Ausgängen ohne viel Schnick Schnack drum rum, weil das Openhab nicht interessiert. Zum ersten bin ich nach dieser Seite vorgegangen https://www.computer-kern.de/bl-net-mit ... -auslesen/
Bei mir war nur noch zum Schluß das Problem mit der Transformation, dass ich diese nicht installiert hatte. Dafür nochmals ein Dank an Udo der mich hier auf den richtigen Weg gebracht hat. Bei mir läuft es seither prima.
Und wenn ich mir deine Seite von eben anschaue sieht die so aus wie bei mir bevor ich die transformation installiert habe.
Mein FrameQuelltext sieht so aus:
und meine Seite sieht so aus:
was Hast Du denn bisher alles an der Seite der UVR bzw. dem BL-Net gemacht? Ich habe die Seite komplett neu geschrieben mit den Eingängen und Ausgängen ohne viel Schnick Schnack drum rum, weil das Openhab nicht interessiert. Zum ersten bin ich nach dieser Seite vorgegangen https://www.computer-kern.de/bl-net-mit ... -auslesen/
Bei mir war nur noch zum Schluß das Problem mit der Transformation, dass ich diese nicht installiert hatte. Dafür nochmals ein Dank an Udo der mich hier auf den richtigen Weg gebracht hat. Bei mir läuft es seither prima.
Und wenn ich mir deine Seite von eben anschaue sieht die so aus wie bei mir bevor ich die transformation installiert habe.
Mein FrameQuelltext sieht so aus:
Code: Alles auswählen
<!--2.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style type="text/css">
body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif; background-repeat: no-repeat; background-color: transparent; background: transparent; margin: 0px; padding: 0px;}
#frame {text-align: left; vertical-align: top; position: relative; margin-left: 0;}
/*########## CSS-ID: Positionen und Darstellung der Anzeigeparameter ##########*/
#pos0{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:93px; left:56px; }
#pos1{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:138px; left:54px; }
#pos2{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:186px; left:53px; }
#pos3{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:232px; left:54px; }
#pos4{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:281px; left:54px; }
#pos5{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:327px; left:51px; }
#pos6{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:374px; left:50px; }
#pos7{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:419px; left:51px; }
#pos8{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:465px; left:49px; }
#pos9{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:510px; left:46px; }
#pos10{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:553px; left:48px; }
#pos11{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:597px; left:49px; }
#pos12{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:640px; left:52px; }
#pos13{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:7px; left:54px; }
#pos14{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:54px; left:53px; }
#pos15{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:14px; left:673px; }
#pos16{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:109px; left:675px; }
#pos17{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:189px; left:673px; }
#pos18{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:235px; left:673px; }
#pos19{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:283px; left:671px; }
#pos20{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:327px; left:670px; }
#pos21{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:370px; left:671px; }
#pos22{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:420px; left:673px; }
#pos23{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:466px; left:676px; }
#pos24{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:514px; left:678px; }
#pos25{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:65px; left:674px; }
#pos26{position:absolute; font-family: Calibri; font-size: 26pt; color: rgb(0,0,0); font-style: normal; font-weight: bold; text-align: left; top:151px; left:675px; }
</style>
<script type="text/javascript">
<!--
var Title ="Onlineschema"; // Titeltext im Browserfenster
var GraphicFile = "GRAFIK.gif"; // Pfad der Grafikdatei
var Width = "2452px";
var Height = "3496px";
//### Intervallzeit [in Sekunden] fr eine automatische Aktualisierung der Messwerte: ###
//### < "30" = keine automatische Aktualisierung ###
//--------------------------------------------------
var AutoRefreshTime = "30";
//### Linktext für manuelle Aktualisierung der Messwerte: ###
//### "" = kein Link für manuelle Aktualisierung ###
//--------------------------------------------------
var RefreshLink ="";
function set_dimenson_para (){
document.getElementById("frame").style.width = Width;
document.getElementById("frame").style.hight = Height;
}
-->
</script>
</head>
<body onload="set_dimenson_para ()">
<div id="frame">
<!--########## Definitionen der Anzeigeparameter ##########-->
<div id="pos0">Aussentemperatur: 23,7</div>
<div id="pos1">Warmwasser: 67,9</div>
<div id="pos2">Puffer_oben: 68,2</div>
<div id="pos3">Puffer_mitte: 65,7</div>
<div id="pos4">Puffer_unten: 62,2</div>
<div id="pos5">Solar_Ruecklauf: 33,8</div>
<div id="pos6">Heizkreis1_Vorlauf: 40,2</div>
<div id="pos7">Heizkreis1_Ruecklauf: 45,7</div>
<div id="pos8">Zirkulation: 37,6</div>
<div id="pos9">Kollektortemperatur: 26,7</div>
<div id="pos10">Kessel_Vorlauf: 45,2</div>
<div id="pos11">Heizkreis2_Vorlauf: 39,9</div>
<div id="pos12">Heizkreis2_Ruecklauf: 45,6</div>
<div id="pos13">Uhrzeit: 22:22:10</div>
<div id="pos14">Datum: 17.08.2020</div>
<div id="pos15">Ladepumpe: AUS</div>
<div id="pos16">Solarpumpe: AUS</div>
<div id="pos17">Mischer1_auf: AUS</div>
<div id="pos18">Mischer1_zu: AUS</div>
<div id="pos19">Brenneranforderung: AUS</div>
<div id="pos20">Heizkreispumpe1: AUS</div>
<div id="pos21">Zirkulationspumpe: AUS</div>
<div id="pos22">Mischer2_auf: AUS</div>
<div id="pos23">Mischer2_zu: AUS</div>
<div id="pos24">Heizkreispumpe2: AUS</div>
<div id="pos25">Drehzahl_Ladepumpe: 0</div>
<div id="pos26">Drehzahl_Solarpumpe: 0</div>
</div>
</body>
</html>
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von JuergenA am 17. Aug 2020 22:25, insgesamt 1-mal geändert.
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: Openhab 2 mit http Bindung
leider keine Änderung
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: Openhab 2 mit http Bindung
Hallo JuergenA,
das könnte den Unterschied machen. Es gibt Personen die möchten gern das Anlagenschema im Hintergrund haben, deshalb ist das GIF noch mit drin.
Das hängt auch mit den Touch Panel zusammen, das im Wohnzimmer hängt.
Wahrscheinlich müssen die dann in den sauren Apfel beißen und dort auf Text mit Zahlen gucken.
In dem Zusammenhang: braucht es JAVA-Script zum bereitstellen der UVR-Werte oder reicht es wenn die Verlinkungen? eingetragen sind?
das könnte den Unterschied machen. Es gibt Personen die möchten gern das Anlagenschema im Hintergrund haben, deshalb ist das GIF noch mit drin.
Das hängt auch mit den Touch Panel zusammen, das im Wohnzimmer hängt.
Wahrscheinlich müssen die dann in den sauren Apfel beißen und dort auf Text mit Zahlen gucken.
In dem Zusammenhang: braucht es JAVA-Script zum bereitstellen der UVR-Werte oder reicht es wenn die Verlinkungen? eingetragen sind?
-
- Beiträge: 39
- Registriert: 22. Jul 2020 19:15
Re: Openhab 2 mit http Bindung
Hier mein BL-Net Items:
das ist die Rule dazu:
das ist das http.cfg dazu:
Code: Alles auswählen
// Variablen vom Typ String deklarieren und BL-NET Homepage auslesen
String Aussentemperatur_temp { http="<[blnet:30000:REGEX(.*Aussentemperatur:.([0-9]+,[0-9]).*)]" }
String WarmWasser_temp { http="<[blnet:30000:REGEX(.*Warmwasser:.([0-9]+,[0-9]).*)]" }
String Puffer_oben_temp { http="<[blnet:30000:REGEX(.*Puffer_oben:.([0-9]+,[0-9]).*)]" }
String Puffer_mitte_temp { http="<[blnet:30000:REGEX(.*Puffer_mitte:.([0-9]+,[0-9]).*)]" }
String Puffer_unten_temp { http="<[blnet:30000:REGEX(.*Puffer_unten:.([0-9]+,[0-9]).*)]" }
String Solar_Ruecklauf_temp { http="<[blnet:30000:REGEX(.*Solar_Ruecklauf:.([0-9]+,[0-9]).*)]" }
String Heizkreis1_Vorlauf_temp { http="<[blnet:30000:REGEX(.*Heizkreis1_Vorlauf:.([0-9]+,[0-9]).*)]" }
String Heizkreis1_Ruecklauf_temp { http="<[blnet:30000:REGEX(.*Heizkreis1_Ruecklauf:.([0-9]+,[0-9]).*)]" }
String Zirkulation_temp { http="<[blnet:30000:REGEX(.*Zirkulation:.([0-9]+,[0-9]).*)]" }
String Kollektortemperatur_temp { http="<[blnet:30000:REGEX(.*Kollektortemperatur:.([0-9]+,[0-9]).*)]" }
String Kesseltemperatur_Vorlauf_temp { http="<[blnet:30000:REGEX(.*Kessel_Vorlauf:.([0-9]+,[0-9]).*)]" }
String Heizkreis2_Vorlauf_temp { http="<[blnet:30000:REGEX(.*Heizkreis2_Vorlauf:.([0-9]+,[0-9]).*)]" }
String Heizkreis2_Ruecklauf_temp { http="<[blnet:30000:REGEX(.*Heizkreis2_Ruecklauf:.([0-9]+,[0-9]).*)]" }
String Datum "Datum: [%s]" <calendar> { http="<[blnet:30000:REGEX(.*Datum:.([0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]).*)]" }
String Uhrzeit "Uhrzeit: [%s]" <time> { http="<[blnet:30000:REGEX(.*Uhrzeit:.([0-9][0-9]:[0-9][0-9]:[0-9][0-9]).*)]" }
String stat_Ladepumpe "Ladepumpe: [%s]" <grundfos> { http="<[blnet:30000:REGEX(.*>Ladepumpe:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Solarpumpe "Solarpumpe: [%s]" <grundfos> { http="<[blnet:30000:REGEX(.*>Solarpumpe:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Mischer1_auf "Mischer 1 auf: [%s]" <dreiwegemischer> { http="<[blnet:30000:REGEX(.*Mischer1_auf:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Mischer1_zu "Mischer 1 zu: [%s]" <dreiwegemischer> { http="<[blnet:30000:REGEX(.*Mischer1_zu:.([A-Z][A-Z][A-Z]).*)]" }
String Brenneranforderung "Brenneranforderung: [%s]" <fire> { http="<[blnet:30000:REGEX(.*Brenneranforderung:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Heizkreispumpe1 "Pumpe Heizkörper: [%s]" <grundfos> { http="<[blnet:30000:REGEX(.*Heizkreispumpe1:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Zirkulationspumpe "Zirkulationspumpe: [%s]" <grundfos> { http="<[blnet:30000:REGEX(.*Zirkulationspumpe:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Mischer2_auf "Mischer 2 auf: [%s]" <dreiwegemischer> { http="<[blnet:30000:REGEX(.*Mischer2_auf:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Mischer2_zu "Mischer 2 zu: [%s]" <dreiwegemischer> { http="<[blnet:30000:REGEX(.*Mischer2_zu:.([A-Z][A-Z][A-Z]).*)]" }
String stat_Heizkreispumpe2 "Pumpe Fußbodenheizung: [%s]" <grundfos> { http="<[blnet:30000:REGEX(.*Heizkreispumpe2:.([A-Z][A-Z][A-Z]).*)]" }
String speed_Ladepumpe_temp { http="<[blnet:30000:REGEX(.*Drehzahl_Ladepumpe:.([0-9]+).*)]" }
String speed_Solarpumpe_temp { http="<[blnet:30000:REGEX(.*Drehzahl_Solarpumpe:.([0-9]+).*)]" }
//Variablen deklarieren für Umwandlung String to Float
Number Aussentemperatur "Außentemperatur: [%.1f °C]" <temperature>
Number WarmWasser "Warmwasser: [%.1f °C]" <temperature>
Number Puffer_oben "Puffer oben: [%.1f °C]" <temperature>
Number Puffer_mitte "Puffer mitte: [%.1f °C]" <temperature>
Number Puffer_unten "Puffer unten: [%.1f °C]" <temperature>
Number Solar_Ruecklauf "Solar Rücklauf: [%.1f °C]" <temperature>
Number Heizkreis1_Vorlauf "HK 1 Vorlauf: [%.1f °C]" <temperature>
Number Heizkreis1_Ruecklauf "HK 1 Rücklauf: [%.1f °C]" <temperature>
Number Zirkulation "Zirkulation: [%.1f °C]" <temperature>
Number Kollektortemperatur "Kollektor: [%.1f °C]" <temperature>
Number Kesseltemperatur_Vorlauf "Kessel Vorlauf: [%.1f °C]" <temperature>
Number Heizkreis2_Vorlauf "HK 2 Vorlauf: [%.1f °C]" <temperature>
Number Heizkreis2_Ruecklauf "HK 2 Rücklauf: [%.1f °C]" <temperature>
Number speed_Ladepumpe "Ladepumpe: (0-30) [Stufe: %.0f]" <speed>
Number speed_Solarpumpe "Solarpumpe: (0-30) [Stufe: %.0f]" <speed>
Code: Alles auswählen
//Variablen Deklaration
var String date
var String time
var String aussentmp
var String ww
var String puff_o
var String puff_m
var String puff_u
var String solar_rl
var String hk1_vl
var String hk1_rl
var String zirku
var String koll
var String kessel_vl
var String hk2_vl
var String hk2_rl
var String ladepumpe_speed
var String solarpumpe_speed
//Außentemperatur konvertieren
rule "Aussentemperatur"
when
Item Aussentemperatur_temp changed
then
aussentmp = Aussentemperatur_temp.state.toString
logInfo("Aussentemperatur","Aussentemperatur:" + aussentmp.replace(',','.'))
postUpdate(Aussentemperatur,new Float(aussentmp.replace(',','.')))
end
//Warmwassertemperatur konvertieren
rule "WarmWasser"
when
Item WarmWasser_temp changed
then
ww = WarmWasser_temp.state.toString
logInfo("WarmWasser","WarmWasser:" + ww.replace(',','.'))
postUpdate(WarmWasser,new Float(ww.replace(',','.')))
end
//Puffertemperatur oben konvertieren
rule "Puffer_top"
when
Item Puffer_oben_temp changed
then
puff_o = Puffer_oben_temp.state.toString
logInfo("Puffer oben","Puffer oben:" + puff_o.replace(',','.'))
postUpdate(Puffer_oben,new Float(puff_o.replace(',','.')))
end
//Puffertemperatur mitte konvertieren
rule "Puffer_mid"
when
Item Puffer_mitte_temp changed
then
puff_m = Puffer_mitte_temp.state.toString
logInfo("Puffer mitte","Puffer mitte:" + puff_m.replace(',','.'))
postUpdate(Puffer_mitte,new Float(puff_m.replace(',','.')))
end
//Puffertemperatur unten konvertieren
rule "Puffer_bottom"
when
Item Puffer_unten_temp changed
then
puff_u = Puffer_unten_temp.state.toString
logInfo("Puffer unten","Puffer unten:" + puff_u.replace(',','.'))
postUpdate(Puffer_unten,new Float(puff_u.replace(',','.')))
end
//Solartemperatur Rücklauf konvertieren
rule "Solar_RL"
when
Item Solar_Ruecklauf_temp changed
then
solar_rl = Solar_Ruecklauf_temp.state.toString
logInfo("Solartemperatur","Solartemperatur:" + solar_rl.replace(',','.'))
postUpdate(Solar_Ruecklauf,new Float(solar_rl.replace(',','.')))
end
//Heizkreistemperatur 1 Vorlauf konvertieren
rule "HK1_VL"
when
Item Heizkreis1_Vorlauf_temp changed
then
hk1_vl = Heizkreis1_Vorlauf_temp.state.toString
logInfo("Heizkreis 1 VL","Heizkreis 1 VL:" + hk1_vl.replace(',','.'))
postUpdate(Heizkreis1_Vorlauf,new Float(hk1_vl.replace(',','.')))
end
//Heizkreistemperatur 1 Rücklauf konvertieren
rule "HK1_RL"
when
Item Heizkreis1_Ruecklauf_temp changed
then
hk1_rl = Heizkreis1_Ruecklauf_temp.state.toString
logInfo("Heizkreis 1 RL","Heizkreis 1 RL:" + hk1_rl.replace(',','.'))
postUpdate(Heizkreis1_Ruecklauf,new Float(hk1_rl.replace(',','.')))
end
//Zirkulationstemperatur konvertieren
rule "Zirkulation_tmp"
when
Item Zirkulation_temp changed
then
zirku = Zirkulation_temp.state.toString
logInfo("Zirkulation","Zirkulation:" + zirku.replace(',','.'))
postUpdate(Zirkulation,new Float(zirku.replace(',','.')))
end
//Kollektortemperatur konvertieren
rule "Kollektor_tmp"
when
Item Kollektortemperatur_temp changed
then
koll = Kollektortemperatur_temp.state.toString
logInfo("Kollektor","Kollektor:" + koll.replace(',','.'))
postUpdate(Kollektortemperatur,new Float(koll.replace(',','.')))
end
//Kollektortemperatur konvertieren
rule "Kessel_tmp"
when
Item Kesseltemperatur_Vorlauf_temp changed
then
kessel_vl = Kesseltemperatur_Vorlauf_temp.state.toString
logInfo("Kesseltemperatur","Kesseltemperatur:" + kessel_vl.replace(',','.'))
postUpdate(Kesseltemperatur_Vorlauf,new Float(kessel_vl.replace(',','.')))
end
//Heizkreistemperatur 2 Vorlauf konvertieren
rule "HK2_VL"
when
Item Heizkreis2_Vorlauf_temp changed
then
hk2_vl = Heizkreis2_Vorlauf_temp.state.toString
logInfo("Heizkreis 2 VL","Heizkreis 2 VL:" + hk2_vl.replace(',','.'))
postUpdate(Heizkreis2_Vorlauf,new Float(hk2_vl.replace(',','.')))
end
//Heizkreistemperatur 2 Rücklauf konvertieren
rule "HK2_RL"
when
Item Heizkreis2_Ruecklauf_temp changed
then
hk2_rl = Heizkreis2_Ruecklauf_temp.state.toString
logInfo("Heizkreis 2 RL","Heizkreis 2 RL:" + hk2_rl.replace(',','.'))
postUpdate(Heizkreis2_Ruecklauf,new Float(hk2_rl.replace(',','.')))
end
//Geschwindigkeit Ladepumpe konvertieren
rule "Ladepumpe_speed"
when
Item speed_Ladepumpe_temp changed
then
ladepumpe_speed = speed_Ladepumpe_temp.state.toString
logInfo("Geschwindigkeit Ladepumpe","Geschwindigkeit Ladepumpe:" + ladepumpe_speed.replace(',','.'))
postUpdate(speed_Ladepumpe,new Float(ladepumpe_speed.replace(',','.')))
end
//Geschwindigkeit Solarpumpe konvertieren
rule "Solarpumpe_speed"
when
Item speed_Solarpumpe_temp changed
then
solarpumpe_speed = speed_Solarpumpe_temp.state.toString
logInfo("Geschwindigkeit Ladepumpe","Geschwindigkeit Ladepumpe:" + solarpumpe_speed.replace(',','.'))
postUpdate(speed_Solarpumpe,new Float(solarpumpe_speed.replace(',','.')))
end
Code: Alles auswählen
# timeout in milliseconds for the http requests (optional, defaults to 5000)
#timeout=
# the interval in milliseconds when to find new refresh candidates
# (optional, defaults to 1000)
#granularity=
# whether to substitute the current time or state value into the URL
# (optional, defaults to true)
#format=
# configuration of the first cache item
#<id1>.url=
#<id1>.updateInterval=
# configuration of the second cache item
#<id2>.url=
#<id2>.updateInterval=
# http binding fuer Technische Alternative BL-Net
blnet.url=http://10.5.3.250/GRAFIK1.html
blnet.updateInterval=30000