Senertec BHKW GLT Einbindung über Lan Ethernet

Hallo Gemeinde,

hat sich schon ein -Dachsbesitzer- Gedanken zu der neuen Möglichkeit der Einbindung per Lan/Ethernet der MSR 2 Steuerung des Senertec Dachs BHKW´s gemacht? Ich wollte mir das Modul besorgen und den Dachs in IPS einbinden. Kann mir jemand dabei helfen, die beil. Schnittstellenbeschreibung schnell und komplett in IPS zu integrieren? Oder mir einen Tipp zu Beginn des Projektes geben?

Vielen Dank

4798_444_000_beschreibung_der_glt-schnittstelle_dachs_et.rar (327 KB)

Hallo,

ich habe nun die Schnittstelle und kann per Skript die Daten in einem zusätzlichem Fenster anzeigen lassen. Ich hätte diese Daten aber gern als Variable damit ich mit den Werten etwas anfangen / schalten kann.

Wie kann ich die zurückgegebenen Werte in eine Variable schreiben, ich habe
nicht gefunden was ich brauchen könnte.

Hier mein Http Anfragescript:

<?

$Anlagendaten = file_get_contents („http://glt:****@192.168.150.172:8080/getKey?k=Hka_Bd_Stat.uchTeilenummer&k=Hka_Bd_Stat.uchSeriennummer&k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulArbeitElektr&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulAnzahlStarts“);
echo $Anlagendaten
?>

nimm mal anstatt file_get_contents einfach file und mach dann ein print_r($Anlagendaten);
Dort hast Du die Daten dann in einem Array und kannst mit [0] usw. dann in die Variablen schreiben.

Ansonsten mach einen Shot von der print Ausgabe.

Vielen Dank.

Aber das Script schreibt den Wert von z.B. Array 0 komplett in die Variable.

Warum mit dem Text Hka_…Starts=3344 ?

Ich möchte doch nur den Wert nach dem = Zeichen haben.
Da gibt es doch bestimmt einen Trick.

Viele Grüsse

Thorsten

Probier das mal strstr($Anlagendaten[0], „=“);

Ansonsten poste nochmal die Ausgabe mit file_get…

mit dem scr… bekomme ich eine Fehlermeldung. Die Ausgabe mit get_fille…
liegt auch bei.

Viele Grüsse

Thorsten

mit dem scr… bekomme ich eine Fehlermeldung
ist klar, Du hast 2 Klammern offen, machst aber nur eine zu. An Ende fehlt noch eine!

Wenn Du ja mal den Code richtig einstellen würdest, wären wir schon lange fertig.

Entschuldigung aber ich bin nur User kein Programmierer, da kann man schon mal so eine kleine aber sehr wichtige Klammer übersehen. Es klappt jetzt, natürlich Dank deiner Hilfe. Es steht nur noch das = vor der Zahl und hinter der Zahl ist ein viereckiges Kästchen im Wertebereich.

Noch eine kleine Frage:
Wie komme ich über einen Apple PC an die IPS Konsole auf einem Windows PC ?
Wenn ich die Adresse 192.168.150.60:3773 in Safari eingebe, kommt zwar eine IPS Info Page aber nicht die Konsole.

Gibt es da eine Möglichkeit?

Nochmals vielen Dank

Thorsten

Du brauchst dich hier nicht zu entschuldigen. Ich bin auch nur User und kein Programmierer. Mein Beruf hat nicht mal im entferntesten damit zutun. :wink:

Schreib doch mal deinen Code in PHP Tags so wie er aus dem File kommt.

Zum Äbbel kann ich nichts sagen.

Schreib doch mal deinen Code in PHP Tags so wie er aus dem File kommt.

Wie soll das aussehen? Oder anders wie mache ich das? Mit der Debug Konsole?

Script ausführen, in der Scriptausgabe die Ausgabe makieren, Strg C im Forum in Tags setzten und Strg V. Fertig.

Hallo,

ich hatte nicht gesehen, dass du schon geantwortet hast.
Hier nun die Daten:

Array
(
[0] => Hka_Bd.ulAnzahlStarts=3359

[1] =&gt; Hka_Bd.ulArbeitThermHka=133565.234

[2] =&gt; Hka_Bd.ulArbeitElektr=68369.375

[3] =&gt; Hka_Bd.ulBetriebssekunden=12800.583

[4] =&gt; Hka_Bd_Stat.uchSeriennummer=1340674810

[5] =&gt; Hka_Bd_Stat.uchTeilenummer=4700043001

[6] =&gt; 

)

Viele Grüsse
Thorsten

Hallo,

hier noch die Ansicht im IPS mit = und dem Kästchen.

Ich hab auch schon versucht aus der String Vriable eine Float Variable zu machen; ich scheitere aber auch daran.:confused:

Gruss

Thorsten

Hallo…

du willst nach den Bildern von vorhin, eine Variable mit der ID 58910 setzen, finde die aber nicht in deinem Objektbaum. Sicher das die so existiert?

weiters ist mir gerade aufgefallen: wenn du den String mit strstr aufteilst,
steht nachher noch das =-Zeichen im String, diesen müsstest du auch noch entfernen. Probiers mal so:


$sonstiges = file_get_contents("http://......");
SetValue(58910, trim(strstr($sonstiges[0], "="), "="));

PS: um Code hier ins Forum zu schreiben, keine Screenshots machen, sondern am Besten den Code in die Tags setzen [ PHP ] [ /PHP ]

Gruß,
Christian.

Die = Zeichen sind damit weg. Nun sind einige Zahlen aber noch im falschem Format z.B. Array 0 ist der Punkt als komma nicht berücksichtigt. Bei Array 1 ist es der richtige Wert, weil ganze Zahl.

<?

$Temperaturen_Dachs = file ("http://glt:1234@192.168.150.172:8080/getKey?k=Hka_Mw1.Temp.sAbgasMotor&k=Hka_Mw1.Temp.sAbgasHKA&k=Hka_Mw1.Temp.sbAussen&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbFreigabeModul&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbGen&k=Hka_Mw1.Temp.sKapsel");
Print_R($Temperaturen_Dachs);

SetValue(39441 /*[BHKW&Pellet\Dachs Daten\Dachs Temperaturen\Dachsdaten Temperatur Kapsel]*/ , trim(strstr($Temperaturen_Dachs[0], "="), "="));
SetValue(25104 /*[BHKW&Pellet\Dachs Daten\Dachs Temperaturen\Dachsdaten Temperatur Generator]*/ , trim(strstr($Temperaturen_Dachs[1], "="), "="));
SetValue(46972 /*[BHKW&Pellet\Dachs Daten\Dachs Temperaturen\Dachsdaten Fühler 1 Speicher]*/ , trim(strstr($Temperaturen_Dachs[4], "="), "="));
SetValue(38662 /*[BHKW&Pellet\Dachs Daten\Dachs Temperaturen\Dachsdaten Außentemperatur]*/ , trim(strstr($Temperaturen_Dachs[5], "="), "="));
SetValue(28007 /*[BHKW&Pellet\Dachs Daten\Dachs Temperaturen\Dachsdaten Temperatur Abgas HKA]*/ , trim(strstr($Temperaturen_Dachs[6], "="), "="));
SetValue(13826 /*[BHKW&Pellet\Dachs Daten\Dachs Temperaturen\Dachsdaten Abgas Motor]*/ , trim(strstr($Temperaturen_Dachs[7], "="), "="));

?>

Array
(
[0] => Hka_Mw1.Temp.sKapsel=46.000

[1] =&gt; Hka_Mw1.Temp.sbGen=46

[2] =&gt; Hka_Mw1.Temp.sbFuehler2=127

[3] =&gt; Hka_Mw1.Temp.sbFreigabeModul=-20

[4] =&gt; Hka_Mw1.Temp.sbFuehler1=47

[5] =&gt; Hka_Mw1.Temp.sbAussen=1

[6] =&gt; Hka_Mw1.Temp.sAbgasHKA=46.500

[7] =&gt; Hka_Mw1.Temp.sAbgasMotor=52.200

[8] =&gt; 

)

Vielen Dank

Thorsten

Hallo Thorsten,

jetzt mußt Du nur noch einen Float Wert aus dem String machen:

SetValue(39441  , (float)trim(strstr($Temperaturen_Dachs[0], "="), "="));

<?

$Anlagendaten = file („http://glt:1234@192.168.110.214:8080/getKey?k=Hka_Bd_Stat.uchTeilenummer&k=Hka_Bd_Stat.uchSeriennummer&k=Hka_Bd.ulBetriebssekunden&k=Hka_Bd.ulArbeitElektr&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulAnzahlStarts“);
Print_r($Anlagendaten);

SetValue(12638 /[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Starts]/ , trim(strstr($Anlagendaten[0], „=“), „=“));
SetValue(15023 /[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Ther. Arbeit]/ , trim(strstr($Anlagendaten[1], „=“), „=“));
SetValue(45739 /[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Elek. Arbeit]/ , trim(strstr($Anlagendaten[2], „=“), „=“));
SetValue(57738 /[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Betriebsstunden]/ , trim(strstr($Anlagendaten[3], „=“), „=“));
SetValue(46368 /[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Serien Nr.]/ , trim(strstr($Anlagendaten[4], „=“), „=“));
SetValue(58910 /[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Teile Nr.]/ , trim(strstr($Anlagendaten[5], „=“), „=“));

?>

Wie bekomme ich denn z.B. die Stunden in ein vernünftiges Format ?

bei mir sind aktuell 3779 Stunden, wird auch als 3779.380 in der Skriftausgabe so angezeigt, wird aber ohne . weggeschrieben:

Hallo,

setze doch vor allen trim( ein (float)

also so:


SetValue(57738 /*[BHKW&Pellet\Dachs Daten\Dachs Anlagendaten\Dachsdaten Betriebsstunden]*/ , (float)trim(strstr($Anlagendaten[3], "="), "="));

die Variablen sind alle Strings und mit (float) wandelst du sie passend um.

lg,
Christian.

passt, Danke
Noch eine Info, steht nicht in der Anleitung:

Die Zeit bis zur Wartung muss bei einer Einzelanlage etwas umständlicher abgefragt werden:
Um die Zeit bis zur nächsten Wartung zu erhalten, muss von den aktuellen Betriebssekunden die Betriebssekunden der letzten Wartung abgezogen und diese Differenz wiederum von dem Wartungsintervall abgezogen werden.

Die notwendigen Keys:
Wartung_Cache.ulBetriebssekundenBei: Die Betriebssekunden bei der letzten Wartung
Wartung_Cache.usIntervall: eingestelltes Wartungsintervall.