Monitoring Stiebel Eltron LWZ 303 - 403

Ich will bei den „Gewinnern“ sein!.. Deswegen, bitte, wer kann mir das Script zur Verfügung stellen?
VG
Wurlitzer

Hallo,
mal ganz ehrlich…, wenn Ihr das Script nicht herausgeben könnt/wollt, dann bitte ich um kurze Info. Dann muss ich nicht weiter nachfragen oder warten…:rolleyes:
Danke!

VG
Wurlitzer

Ich muss das Thema hier noch mal aufwärmen. Gibt es bisher neue Erkenntnisse? Ich bekomme Anfang Dezember eine Wärmepumpe von Stiebel und da gibt es ja jetzt das InternetGateway aber das kostet über 400 Euro und ich hab noch nicht raus bekommen wie es angesprochen werden könnte.

Gut dabei ist wohl, dass man darüber auch Einstellungen ändern kann. Ginge das über die Ser. Verbindung auch oder kann man damit nur lesend zugreifen?

nur lesend zugreifen?

ja, unser Skript liest nur aus - ggf. mal bei Stiebel anfragen.

MST

OK, das wäre ja schon mal was.

Wie hast Du angebunden? Über die Ser. Schnittstelle? Ich würde mich für das Web-Gateway interessieren.

das Web-Gateway interessieren

beim Hersteller der Fa. Stiebel anfragen!

MST

Hab schon eine Support Mail geschickt, mal sehen ob sich jemand meldet.

Aber trotzdem würde mich interessieren, wie Du das Ganze angebunden hast.

Einfach mal den Fred lesen, mit dem anderen „push“-Fred gedanklich verbinden und die Lösung sollte klar sein. :rolleyes:

Gruß
Bruno

Hallo, ist das Skript von „Steiner“ auch für die Tecalor Anlagen geeignet.
Sollten doch baugleich mit den Stiebel Eltron Anlagen sein?:confused:

Kann ich bitte auch das Script zur Auslesung bekommen?

Würde mich sehr freuen!

Danke!

Hallo, hat das jetzt mal jemand geschafft, sämtlich Werte im IPS angezeigt zu bekommen?
Ich habe zwar die Stiebel Software zum auslesen und einstellen, aber komfortabler wäre es natürlich
im Webfront selber über IPS.

Kann mir da einer weiterhelfen z.B mit einem Skript, Anleitung etc???

Wäre echt super!

Hi,

Ich habe alle werte ins ips bekommen. Skripte stelle ich morgen online. Gruesse

Habe hier hier ein paar Ansätze zur Integration ins IPS. Diese basieren auf einem ISG (Internet Service Gateway) von Stiebel. Ist eine absolute Voraussetzung für diesen Beitrag …

So sieht mein Webfront aus (die Visualisierung ist noch nicht fertig - muss ich noch die Werte entsprechend verteilen)

Die meiste Arbeit war nicht nur das Skript sondern auch das Anlegen der Variablen. Da müsst ihr durch :frowning:

Als allererstes müsst ihr die Daten in eine mysql Datenbank bekommen - so mach ich es zumindest, da ich noch mit Highcharts einige Diagramme erstelle. Das Parsing Skript, welches das ISG Webinterface der Stiebel Heizung könnt ihr hier herunterladen. In dem Paket ist auch die mySQL Datenbankstruktur enthalten: myEnergy-Portal.zip (6.49 KB)

Die Datei se_start.php parsed die Starteseite des ISG und die Datei se_info_ist-und-sollwerte.php die Info Seite des ISG.

Erstellt in mysql die Datenbank „myenergy“ und führt die SQL Datei im Paket aus.

Nun muss nur noch die Config.php Datei angepasst werden (die Werte für mysql-Zugriff / $website_source1 und $website_source2.

Dann sollte das Parsing laufen. Dann habt ihr die halbe Miete, wenn das funktioniert. Einfach mal die Datei se_sart und se_info_ist-und-sollwerte ausführen. Es sollte dann folgendes im Browser stehen: Data Inserted! - IST- UND SOLLWERTE

Jetzt geht es darum, die Wert ins IPS zu bekommen…

AHCTUNG: Die nachfolgenden Skripte setzen voraus, dass ihr KEIN Kennwort für euer ISG vergeben habt! Wenn doch, bitte melden, dann habe ich noch ein weiteres Skript parat. Würde ansonsten den Beitrag sprengen. Das Ganze muss so schnell wie möglich ins WIKI ;)…

Folgendes Skript muss in IPS angelegt werden:

<?
$debug = false;

include 'frad_functions.inc.php';


//++++++++++++++++++++++DATABASE SETTINGS++++++++++++++++++++++++++++++++++++++++++++++++++
//Datenbank Hostname
$datenbank_host = 'xxxxxxx';
//Der MySQL User womit eine Verbindung zur MySQL Datenbank hergestellt werden soll.
$datenbank_user = 'xxxxx';
// Das entsprechende Datenbankpasswort, vom MySQL User.
$datenbank_passwort = 'xxxxxxx';
//Der Name von der MySQL Datenbank
$datenbank_name = 'myenergy';
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

$connection = mysql_connect("$datenbank_host" , "$datenbank_user" , "$datenbank_passwort")
              OR die ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($datenbank_name , $connection)
              OR die ("Auswahl der Datenbank nicht moeglich.");




if (!$connection)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db($datenbank_name, $connection);

/*

    START: Auslesen der Werte von der Seite IST/SOLLWERTE ISG

*/

$sql="SELECT * FROM `se-isg_info_werte` ORDER BY creation_date DESC LIMIT 1";

$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$cr_date=convertdate($row['creation_date']);
if ($debug) print_r($row);




//######################
//Setzen der Werte
//######################
//print_r($row);

//Aussentemperatur
//setvaluefloat(35021 /*[Heizung\Heizung\Außentemperatur]*/, floatval($row[22]));
//setvaluefloat($ObjektID_Aussentemperatur, 45.4);
//if ($debug) echo "Außentemperatur=".$row[22]."<br>";

// +++++Status der Anlage+++++
//Automatik
setvalue(34815 /*[Heizung\Gerätestatus\Automatik]*/, $row[1]);
//Verdichter
setvalue(26192 /*[Heizung\Gerätestatus\Verdichter]*/, $row[2]);
//Heizen
setvalue(17166 /*[Heizung\Gerätestatus\Heizen]*/, $row[3]);
//Warmwasser
setvalue(53709 /*[Heizung\Gerätestatus\Warmwasser]*/, $row[5]);
//Nachheizen
setvalue(29222 /*[Heizung\Gerätestatus\Nachheizen]*/, $row[6]);
//Service
setvalue(53021 /*[Heizung\Gerätestatus\Service]*/, $row[7]);
//Fernwartung
setvalue(47715 /*[Heizung\Gerätestatus\Fernwartung]*/, $row[8]);
//Filter
setvalue(10970 /*[Heizung\Gerätestatus\Filter beide]*/, $row[9]);
//Luefter
setvalue(47991 /*[Heizung\Gerätestatus\Lüfter]*/, $row[10]);
//Pumpe
setvalue(57165 /*[Heizung\Gerätestatus\Pumpe]*/, $row[11]);
//Abtauen
setvalue(16197 /*[Heizung\Gerätestatus\Abtauen]*/, $row[12]);
//Filter Abluft
setvalue(31411 /*[Heizung\Gerätestatus\Filter Abluft]*/, $row[13]);
//Filter Zuluft
setvalue(48116 /*[Heizung\Gerätestatus\Filter Zuluft]*/, $row[14]);
//Aufheizprogramm
setvalue(59481 /*[Heizung\Gerätestatus\Aufheizprogramm]*/, $row[15]);


// +++++Heizung+++++
setvalue(27765 /*[Heizung\Heizung\Druck Heizkreis]*/, $row[23]);
setvaluefloat(13500 /*[Heizung\Heizung\Istwert HK1]*/, floatval($row[16]));
setvaluefloat(40030 /*[Heizung\Heizung\Rücklauftemperatur]*/, floatval($row[21]));
setvaluefloat(47246 /*[Heizung\Heizung\Sollwert HK1]*/, floatval($row[17]));
setvaluefloat(31109 /*[Heizung\Heizung\Volumenstrom]*/, floatval($row[24]));
setvaluefloat(27854 /*[Heizung\Heizung\Vorlauftemperatur]*/, floatval($row[20]));
setvaluefloat(35021 /*[Heizung\Heizung\Außentemperatur]*/, floatval($row[22]));


// +++++Warmwasser+++++
setvaluefloat(48542 /*[Heizung\Warmwasser\Warmwasser Ist]*/, floatval($row[25]));
setvaluefloat(54072 /*[Heizung\Warmwasser\Warmwasser Soll]*/, floatval($row[26]));


// +++++Lüftung+++++
setvalue(39273 /*[Heizung\Lüftung\Abluft Ist Lüfterdrehzahl]*/, $row[33]);
setvalue(25346 /*[Heizung\Lüftung\Zuluft Soll Volumenstrom]*/, $row[32]);
setvalue(21735 /*[Heizung\Lüftung\Abluft Soll Volumenstrom]*/, $row[34]);
setvalue(11444 /*[Heizung\Lüftung\Zuluft Ist Lüfterdrehzahl]*/, $row[31]);
setvalue(36096 /*[Heizung\Lüftung\Abtauen LL-WT]*/, $row[35]);


// +++++Wärmeerzeuger+++++
setvalue(33680 /*[Heizung\Wärmeerzeuger\Heizstufe]*/, $row[36]);
setvalue(20656 /*[Heizung\Wärmeerzeuger\Solarpumpe]*/, $row[37]);
setvalue(10719 /*[Heizung\Wärmeerzeuger\Verdichter]*/, $row[38]);
setvalue(10326 /*[Heizung\Wärmeerzeuger\NHZ Stufen]*/, $row[39]);



// +++++Wärmemengen+++++
setvaluefloat(44573 /*[Heizung\Wärmemenge\WM Heizen Summe]*/, floatval($row[41]));
setvaluefloat(11211 /*[Heizung\Wärmemenge\WM Heizen Tag]*/, floatval($row[40]));
setvaluefloat(33526 /*[Heizung\Wärmemenge\WM NE Heizen Summe]*/, floatval($row[44]));
setvaluefloat(25729 /*[Heizung\Wärmemenge\WM NE WW Summe]*/, floatval($row[45]));
setvaluefloat(47611 /*[Heizung\Wärmemenge\WM Solar HZ Summe]*/, floatval($row[49]));
setvaluefloat(41513 /*[Heizung\Wärmemenge\WM Solar HZ Tag]*/, floatval($row[48]));
setvaluefloat(56064 /*[Heizung\Wärmemenge\WM Solar WW Summe]*/, floatval($row[51]));
setvaluefloat(45377 /*[Heizung\Wärmemenge\WM Solar WW Tag]*/, floatval($row[50]));
setvaluefloat(28834 /*[Heizung\Wärmemenge\WM WRG Summe]*/, floatval($row[47]));
setvaluefloat(48788 /*[Heizung\Wärmemenge\WM WRG Tag]*/, floatval($row[46]));
setvaluefloat(54619 /*[Heizung\Wärmemenge\WM WW Summe]*/, floatval($row[43]));
setvaluefloat(17611 /*[Heizung\Wärmemenge\WM WW Tag]*/, floatval($row[42]));


// +++++Solar+++++
setvaluefloat(20698 /*[Heizung\Solar\Kollektortemperatur]*/, floatval($row[57]));


// +++++Wärmepumpe+++++
setvalue(58337 /*[Heizung\Wärmepumpe\Abtauen Verdampfer]*/, $row[63]);
setvalue(34877 /*[Heizung\Wärmepumpe\Fortluft Ist Lüfterdrehzahl]*/, $row[64]);
setvalue(26023 /*[Heizung\Wärmepumpe\Fortluft Soll Volumenstrom]*/, $row[65]);
setvaluefloat(23968 /*[Heizung\Wärmepumpe\Heißgastemperatur]*/, floatval($row[58]));
setvaluefloat(41416 /*[Heizung\Wärmepumpe\Hochdruck]*/, floatval($row[59]));
setvaluefloat(11955 /*[Heizung\Wärmepumpe\Niederdruck]*/, floatval($row[60]));
setvalue(39804 /*[Heizung\Wärmepumpe\Umschaltventil]*/, $row[66]);
setvaluefloat(38099 /*[Heizung\Wärmepumpe\Verdampfertemp.]*/, floatval($row[61]));
setvaluefloat(57784 /*[Heizung\Wärmepumpe\Verflüssigertemp.]*/, floatval($row[62]));


// +++++Laufzeiten+++++
setvaluefloat(53304 /*[Heizung\Laufzeiten\E Heizung Summe]*/, floatval($row[73]));
setvaluefloat(18604 /*[Heizung\Laufzeiten\E Heizung Tag]*/, floatval($row[72]));
setvaluefloat(41802 /*[Heizung\Laufzeiten\E WW Summe]*/, floatval($row[75]));
setvaluefloat(42083 /*[Heizung\Laufzeiten\E WW Tag]*/, floatval($row[74]));
setvalue(40965 /*[Heizung\Laufzeiten\Elektr. NE Heizen]*/, $row[70]);
setvalue(31346 /*[Heizung\Laufzeiten\Elektr. NE WW]*/, $row[71]);
setvalue(29002 /*[Heizung\Laufzeiten\Verdichter Heizen]*/, $row[67]*1000); //hier musste eine Korrektur gemacht werden, da der Wert von Stiebel falsch kommt
setvalue(34093 /*[Heizung\Laufzeiten\Verdichter WW]*/, $row[69]);


// +++++ISG+++++
setvalue(49427 /*[Heizung\ISG\Anlagen ID]*/, $row[81]);
setvalue(32989 /*[Heizung\ISG\CAN-Status]*/, $row[82]);
setvalue(13927 /*[Heizung\ISG\ISG-Uptime Stunden]*/, $row[80]);
setvalue(30153 /*[Heizung\ISG\ISG-Uptime Tage]*/, $row[79]);
setvalue(20994 /*[Heizung\ISG\ISG-Version Major]*/, $row[76]);
setvalue(47680 /*[Heizung\ISG\ISG-Version Minor]*/, $row[77]);
setvalue(43575 /*[Heizung\ISG\ISG-Version Revision]*/, $row[78]);
/*

    ENDE: Auslesen der Werte von der Seite IST/SOLLWERTE ISG

*/

/*

    START: Auslesen der Werte von der Seite STARTSEITE ISG

*/

$sql2="SELECT * FROM `se-isg_start` ORDER BY creation_date DESC LIMIT 1";

$result2 = mysql_query($sql2);
$row2 = mysql_fetch_array($result2);
$cr_date2=convertdate($row2['creation_date']);
if ($debug) print_r($row2);



//######################
//Setzen der Werte
//######################
//print_r($row2);

//Betriebsart
setvaluestring(21912 /*[Heizung\Status\Aktuelle Betriebsart]*/, $row2[1]);
if ($debug) echo "Betriebsart=".$row2[1]."<br>";

//Lüfterstufe
setvalueinteger(28695 /*[Heizung\Status\Lüfterstufe]*/, intval($row2[4]));
if ($debug) echo "Lüfterstufe=".$row2[4]."<br>";

//Letzter DB Eintrag
setvaluestring(30390 /*[Heizung\Kompaktübersicht\Letzter DB-Eintrag]*/, $row2[5]);
if ($debug) echo "Betriebsart=".$row2[5]."<br>";

/*

    ENDE: Auslesen der Werte von der Seite STARTSEITE ISG

*/
?>

Dem Skript ordnet ihr noch einen Timer zu, so dass die mysql Db alle 5 Minuten ausgelesen wird. Setzt natürlich voraus, dass das Parsing Skript auch alle x Minuten läuft.

Die inkludierte functions.php sieht wie folgt aus:


//echo 'bin in functions...';
function str2num($str){
  if(strpos($str, '.') < strpos($str,',')){ 
            $str = str_replace('.','',$str); 
            $str = strtr($str,',','.');
        } 
        else{ 
            $str = str_replace(',','',$str);             
        } 
        return (float)filter_var($str, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);$str;
}  


/**
 * date_mysql2german
 * wandelt ein MySQL-DATE (ISO-Date)
 * in ein traditionelles deutsches Datum um.
 */
function date_mysql2german($datum) {
    list($jahr, $monat, $tag) = explode("-", $datum);
 
    return sprintf("%02d.%02d.%04d", $tag, $monat, $jahr);
}
 
/**
 * date_german2mysql
 * wandelt ein traditionelles deutsches Datum
 * nach MySQL (ISO-Date).
 */
function date_german2mysql($datum) {
    list($tag, $monat, $jahr) = explode(".", $datum);
 
    return sprintf("%04d-%02d-%02d", $jahr, $monat, $tag);
}
 
/**
 * timestamp_mysql2german
 * wandelt ein MySQL-Timestamp
 * in ein traditionelles deutsches Datum um.
*/
function timestamp_mysql2german($t) {
    return sprintf("%02d.%02d.%04d",
                    substr($t, 6, 2),
                    substr($t, 4, 2),
                    substr($t, 0, 4));
}

function convertdate($date) {
$expDate = explode(" ", $date); // zuerst das Leerzeichen (" ") als Trennzeichen benutzen und jeweils als Arrayelement speichern
  $d    =    explode("-", $expDate[0]); // dann den Bindestrich ("-") als Trennzeichen auf der erste Element des Arrays $expDate, also unseres davor schon einmal geteilten Timestamps, anwenden
  $t    =    explode(":", $expDate[1]); // nun den Doppelpunkt (":") als Trennzeichen auf das zweite Element des Arrays $expDate, also unseres davor schon einmal geteilten Timestamps, anwenden
  
  // $d[2] = Tag; $d[1] = Monat; $d[0] = Jahr; 
  // $t[0] = Minuten; $t[1] = Stunden
    
      return $d[2].'.'.$d[1].'.'.$d[0].' um '.$t[0].':'.$t[1].' Uhr'; // Ausgabe: "TT.MM.JJJJ um mm:hh Uhr"
}


Hier mal ein Auszug aus meiner Baumansicht:

So das war mal eine kurz und kanppe Beschreibung, wie ich die Daten von meiner LWZ nach IPS bekomme. Bin mir klar, dass diese Anleitung noch viel Potential hat - habe mir vorgenommen diese detailliert im Wiki zu erfassen. Aber erstmal muss die Upload im WIki wieder funktionieren - anderes Thema.

Hoffe ich konnt euch ein wenig helfen. Bei Fragen einfach melden. Ach ja, steuern der Heizung per IPS geht auch… :slight_smile: Wenn das jemand interessiert, einfach anfragen …

Grüße

Hallo,

ich bin neu hier und beschäftige mich gerade mit dem interessanten Thema.

Funktioniert die Variante auch mit einer LWA 403? Sie müsste ja baugleich mit der LWZ sein.

wenn du das ISG von Stiebel im Einsatz hast, funktioniert dies auf jeden Fall…

Wir haben leider kein ISG und dein Beitrag baut darauf auf.

Ich dachte ich kann mich über die serielle Schnittstelle andocken.

Hallo, aber es müsste doch auch ohne ISG gehen, über serielle Schnittstelle. Die habe ich jetzt und kann mit der Stiebel Software alles auslesen und auch steuern. Also müsste das doch auch über die serielle Schnittstelle mit IPS gehen. Herr Steiner wurde ja von Stiebel Eltron unterstützt und kann auf jedenfall eine Menge im IPS anzeigen (und evtl. steuern???)
Wer kennt sich mit diesem Weg aus? Wäre für alle Infos sehr dankbar, da mir die ISG viel zu teuer ist…!

Ich habe - vor langer Zeit schon, daher weiss ich nicht um die Aktualität - von dem „netten Stiebel Eltron Mitarbeiter“, der hier im Forum auch schon einen (!) Post abgeliefert hat, das „Protokoll“, also die Datensätze der WPL seriell bekommen.

Publizieren darf ich die bestimmt nicht, aber im Rahmen eines Projektes verwenden, dagegen spricht nichts. Ich könnte Dir da also ggf. helfen (und hätte, weil ich die ISG Lösung auch für zu teuer halte zumal ich das Teil rein als Gateway nutzen würde, auch Interesse an Deiner Lösung).

Weiter am besten per PM.

jwka

Mal ne Blöde Frage: ich habe einen IGS für die LWZ 303 Integral bekommen udn stehe erstmal vor dem Problem
an welchen Stecker der angeschlossen wird? Das Kabel ist drei-Adrig…An den Stecker A1-X6? Modem? Der wäre
drei Adrig laut Schaltplan: GND wäre der schwarze. Bei TX und RX müsste man wohl schauen (weiss und braun)…

Wenn das so wäre, dann die nächste Frage: wo ist die Platine A1? Müsste eigentlich hinter der rechten Klappe/Tür sein, wo dahinter die Abluf/Zuluft Filter sind, obere rechte Ecke, hinter dem Blech oder?

Hi,

hier ist eigentlich alles genau beschrieben:

Handbuch ISG

Grüße

DANKE !
…ich habe gestern schon von alleine nach dem Anschluss gesucht…und sogar intuitiv richtig angeschlossen :wink:

Das einzige was nicht drin steht ist die Anschlussleiste für dan CAN. Diese befindet sich hinter der linken Tür (also der die verschraubt ist). Wenn man diese abbaut dann oben, rechts ist die Leiste, die auch beschriftet ist.

Trotzdem Danke !

Jetzt suche ich noch nach einem Programm für z.B. Android um die Daten auszulesen (vor allem Strom) und Anlage zu steuern. Die Web Oberfläche von Stiebel sieht schon nicht schlecht aus, aber ich kann da keine STROM Werte grafisch auswerten…
Ich wird nochmal schauen mit dem hier vorgestelltem Programm, leider ist es glaube ich für Linux oder? damit das ganze zu realisieren. Vor allem eine Anbindung von einem Stick mit Temp. und Feuchtigkeit wäre interessant. Wir haben das Problem das wenn es an solchen sonnigen Tagen, an dem aussen Fühler -5 Grad sind, dann powert die Anlage los (zum Teil sogar elektrisch…) obwohl wir im nach Süden ausgerichtetem Wohnzimmer 25 Grad haben. Natürlich kann man das über Thermostate regeln aber eigentlich könnte die Anlage erstmal kompl. für 3-4 Stunden ausgehen.
Vielleicht löse ich das mit dem ext. Innen-Temperatur-Fühler. Muss ich ersmal schauen was für einer das ist (von den Werten her).