Anbindung einer Heliotherm Wärmepumpe

Ich habe eine Heliotherm Wärmepumpe Type HP16S18W-WEB und will ein paar Daten auslesen (Temperaturen / Anlagenzustand) und eventuell im Zuge der Eigenverbrauchs Steigerung meiner PV-Anlage die Wärmepumpe ansteuern.

Es gibt eine Anwendung Heliotherm HomeControl (http://homecontrol.heliotherm.com/(S(nmp3fxfr1sigxszvusigouo3))/screens.aspx) die ich im Einsatz habe.

Leider sehe ich keine Möglichkeit über die Anwendung an Daten zu kommen ( Export usw. ).
Vielleicht hat sich schon jemand mit dem Protokoll Auseinandersetzung. Oder vielleicht über das Web Portal (http://webcontrol.heliotherm.com/) Daten erhalten.

Thomas

Hiho,

du hast PM.

Ich würde mal beim Hersteller fragen ob es eine Möglichkeit gibt die Anlage in eine Heimautomatisierung zu integrieren.
Evtl. gibts Module für KNX / Modbus etc.

Zum Thema Heliotherm kann ich nur sagen … nette Idee aber wieder mal nicht zu Ende gedacht.
Irgendwie scheint es Mode zu sein dem Kunden tolle Grafisch aufbereitete Webinterfaces zur Verfügung zu stellen
die aber in keiner Weise mit anderen Geräten kommunizieren bzw Interagieren können. ( siehe Buderus )
Zudem die meisten auch noch die Daten nicht mal im Internen Netzwerk zur verfügung stellen sondern auch noch an die Firmenserver weitergeben.

Einerseits hat das den faden beigeschmack einer Überwachung, andererseits versucht man dadurch seine Produkte zu Optimieren was bei näherer Betrachtung ja nicht unbedingt schlecht für den Kunden sein muss.

just my 2 Cents

@TomHei
Hast du in dieser Sache mal was zusammengebracht bzw. unternommen?

Nachdem sich hier scheinbar nichts mehr tut, möchte ich versuchen mit Hilfe von euch meine Heliotherm auszulesen. Ich habe diese im Moment per RS232 an meinem Raspi hängen und bekomme per SerialPort/Debug RegisterVariable folgendes:

Heliotherm.JPG

In einem Loxone Forum habe ich ein Script gefunden mit dem die WP per Moxa NPort und dem TCP Port ausgelesen wird. Dieses sieht so aus:

<?php
include './lockwait.php';

$host = 'tcp://192.168.10.230:4001';

$command_array=array();
$command_array[]='02 FD D0 E0 00 00 05 7E 4C 49 4E 3B 4C'; //LIN
$command_array[]='02 FD D0 E0 00 00 05 7E 52 49 44 3B 70'; //RID
// Bekannte MP-Nummern
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 30 3B E5'; // MP,NR=0; Temp Aussen
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 32 3B E3'; // MP,NR=2; Temp Brauchwasser
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 33 3B E0'; // MP,NR=3; Temp Vorlauf
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 34 3B E9'; // MP,NR=4; Temp Rücklauf
//$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 36 3B EF'; // MP,NR=6; EQ_Eintritt
//$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 37 3B EC'; // MP,NR=7; EQ_Austritt
//$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 39 3B FE'; // MP,NR=9; Temp Sauggas
$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 30 3B 91'; // MP,NR=10; Status Verdichter
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 31 31 3B B0'; // MP,NR=11; Temp Frischwasser IST
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 31 32 3B B5'; // MP,NR=12; Temp Verdampfung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 31 33 3B B6'; // MP,NR=13; Temp kondensation
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 30 3B B6'; // MP,NR=20; Niederdruck (bar)
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 31 3B B5'; // MP,NR=21; Hochdruck (bar)
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 32 3B B0'; // MP,NR=22; HKR Pumpe
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 34 3B XX'; // MP,NR=24; Status EQ-Pumpe
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 35 3B B9'; // MP,NR=25; Status Warmwasser Vorrang
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 33 30 3B XX'; // MP,NR=30; Verdichter Status ??? vgl. 10
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 33 31 3B XX'; // MP,NR=31; Störung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 33 32 3B XX'; // MP,NR=32; Vierwegeventil_Luft
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 35 30 3B BF'; // MP,NR=50; Status Frischwasser Pumpe 1/0
$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 35 36 3B B5'; // MP,NR=56; Verdichter Anforderung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 35 37 3B B6'; // MP,NR=57; HKR Sollwert
// Bekannte SP-Nummern
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 39 3B XX'; // SP,NR=9; ID
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 30 3B XX'; // SP,NR=10; Verdichter_Status
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 31 3B XX'; // SP,NR=11; Verdichter_Zeit
$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 33 3B 94'; // SP,NR=13; Betriebsart
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 34 3B XX'; // SP,NR=14; Entstörung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 36 39 3B XX'; // SP,NR=69; HKR_Soll_Raum
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 37 31 3B XX'; // SP,NR=71; HKR_Aufheiztemp
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 37 32 3B XX'; // SP,NR=72; HKR_Absenktemp
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 37 36 3B XX'; // SP,NR=76; HKR_Heizgrenze
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 30 3B XX'; // SP,NR=80; Kurve_oHG
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 31 3B XX'; // SP,NR=81; Kurve_0
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 32 3B XX'; // SP,NR=82; Kurve_uHG
$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 33 3B 8F'; // SP,NR=83; Temp Warmwasser Soll
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 35 3B 85'; // SP,NR=85; Temp Warmwasser Mind
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 31 37 31 3B C8'; // SP,NR=171; Betriebsstunden Verdichter Warmwasser
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 31 37 32 3B CD'; // SP,NR=172; Betriebsstunden Verdichter HKR
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 31 37 33 3B CE'; // SP,NR=173; Betriebsstunden Verdichter Gesamt
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 32 32 32 3B XX'; // SP,NR=222; MKR2_aktiviert
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 32 36 33 3B XX'; // SP,NR=263; Energiezaehler
$command_array[]='02 FD D0 E0 00 00 06 7E 4C 4F 55 54 3B 92'; // logout

//Loxone-Übersetzung
$Loxray=array();
$result_array=array();
$resultf_array=array();

$querycommands="";

try {
    $fp = stream_socket_client($host, $errno, $errstr,30);
    stream_set_blocking($fp,0);
} catch(Exception $e) {
    echo $e->getMessage();
}
$stream='';
global $stream;
global $fp;



if (!$fp) {
    echo "ERROR: $errno - $errstr<br />
";
}

else
{


    foreach($command_array as $id => $command)
    {
        if ($command!='')
        {
            request($command);
            $stream.='<br>';
        }

    }

fclose($fp);

$i=0;

    foreach ($result_array as $arrtext)
    {
    $nr=$result_array[$i]['NR'];
    $resultf_array[$nr]=$result_array[$i]['VAL'];
    $i++;
    }


    //an Loxone schreiben
    $Loxray['WP_Aussentemp']=$resultf_array['0'];
    $Loxray['WP_Brauchwassertemp']=$resultf_array['2'];
    $Loxray['WP_Vorlauftemp']=$resultf_array['3'];
    $Loxray['WP_Ruecklauftemp']=$resultf_array['4'];
    $Loxray['WP_Verdichterstatus']=$resultf_array['10'];
    $Loxray['WP_Verdichteranforderung']=$resultf_array['56'];
    $Loxray['WP_Betriebsart']=$resultf_array['13'];
    $Loxray['WP_WWNormaltemp']=$resultf_array['83'];

   foreach ($Loxray as $key => $value)
    {
    $handle = fopen("http://user:pass@loxoneip/dev/sps/io/$key/$value", "r");
    echo"<br>Loxone Set:$key=$value<br>";
    }

    fclose($handle);



    echo "$querycommands";
    echo '<pre>';
    print_r($result_array);
    echo '</pre>';

    echo '<br><br><pre>';
    print_r($resultf_array);
    echo '</pre>';
    echo $stream;

}












function hexconv($str) {

    $arr = explode(' ',$str);
    $new_str = '';
    foreach ($arr as $key => $val) {
        $new_str.=chr(hexdec($val));
    }

    return $new_str;

}

function request($command) {
    global $fp,$stream,$result_array,$querycommands;

    $command = hexconv($command);
    $querycommands.= 'query:'.$command.':end<br>';
    fwrite($fp, $command);

    sleep(1);
    $str = '';
    while (strlen($c=fread($fp,1024))>0) {
        $stream .=$c;
        $str.=$c;
    }

    //
    if (strlen($str)>40) {
        $str=substr($str,strpos($str,','),strlen($str));
        $str=substr($str,0,strpos($str,';'));
        $resp = str_replace(',','&',$str);
        parse_str($resp,$arr);
        $result_array[]=$arr;
    }

}
?>

Kann mich jemand dabei unterstützen dieses auf IPS bzw. die RegVar zu transferieren bzw. mir zu sagen ob die Schnittstelle mit den Meldungen der Steuerung schon gut aussieht so?

Dank euch!

Sieht zu mindestens sehr regelmäßig aus. Denke aber nicht, das es Daten sind. Kannst du mir dein Script per Post schicken?

Ich kann dir die einzelnen Scripte mailen, klar.

Ich verstehe noch nicht ganz was da aus der Steuerung rauskommt, muß aber auch sagen man kann das noch umstellen. Vielleicht kann ich auch noch in Erfahrung bringen wie das Leute gemacht haben, die die Steuerung über Wiregate auslesen!

Hallo,

hab mir das mal angeschaut. Folgendes denke ich passiet da.
Deine WP erkennt, dass an der Schnittstelle was anliegt und liefert alle x Sekunde ein Request. Es ist ein Art Modem request. Dem musst du nun ein „OK“ zurück senden.
Wird wohl ein ’
’ sein

Kannst du mir mal noch das script vom Pi schicken?

Danke

Erstmal sage ich danke :slight_smile:

Welches Script meinst du? Ich hab dir in der PN alle geschickt die ich hatte! Das vom Wiregate steht schon weiter oben…

Update:

Ich habe bei der WP die serielle Schnittstelle umstellen können auf „direkt“. Jetzt sprudeln schon mal Daten aus der WP raus wenn ich ihr etwas schicke…sobald ich mehr Zeit habe, stelle ich ein welche! Somit ist die Sache mit dem Modem mal hinfällig…

Hi Leute!

Ich hab nun wie erwähnt die WP funktionierend an einem seriellen Port direkt am RPi. Aus anderen Foren habe ich dieses Script, welches die Verbindung per TCP aufbaut. Ich nehme an dieses sollte nun so umgebaut werden das ich die WP über eine RegisterVariable ansprechen kann um aus dem seriellen Port Daten zu bekommen oder?

<?


$host = 'tcp://192.168.10.230:4001';

$command_array=array();
$command_array[]='02 FD D0 E0 00 00 05 7E 4C 49 4E 3B 4C'; //LIN
$command_array[]='02 FD D0 E0 00 00 05 7E 52 49 44 3B 70'; //RID
// Bekannte MP-Nummern
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 30 3B E5'; // MP,NR=0; Temp Aussen
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 32 3B E3'; // MP,NR=2; Temp Brauchwasser
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 33 3B E0'; // MP,NR=3; Temp Vorlauf
$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 34 3B E9'; // MP,NR=4; Temp Rücklauf
//$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 36 3B EF'; // MP,NR=6; EQ_Eintritt
//$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 37 3B EC'; // MP,NR=7; EQ_Austritt
//$command_array[]='02 FD D0 E0 00 00 09 7E 4D 50 2C 4E 52 3D 39 3B FE'; // MP,NR=9; Temp Sauggas
$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 30 3B 91'; // MP,NR=10; Status Verdichter
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 31 31 3B B0'; // MP,NR=11; Temp Frischwasser IST
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 31 32 3B B5'; // MP,NR=12; Temp Verdampfung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 31 33 3B B6'; // MP,NR=13; Temp kondensation
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 30 3B B6'; // MP,NR=20; Niederdruck (bar)
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 31 3B B5'; // MP,NR=21; Hochdruck (bar)
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 32 3B B0'; // MP,NR=22; HKR Pumpe
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 34 3B XX'; // MP,NR=24; Status EQ-Pumpe
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 32 35 3B B9'; // MP,NR=25; Status Warmwasser Vorrang
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 33 30 3B XX'; // MP,NR=30; Verdichter Status ??? vgl. 10
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 33 31 3B XX'; // MP,NR=31; Störung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 33 32 3B XX'; // MP,NR=32; Vierwegeventil_Luft
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 35 30 3B BF'; // MP,NR=50; Status Frischwasser Pumpe 1/0
$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 35 36 3B B5'; // MP,NR=56; Verdichter Anforderung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 4D 50 2C 4E 52 3D 35 37 3B B6'; // MP,NR=57; HKR Sollwert
// Bekannte SP-Nummern
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 39 3B XX'; // SP,NR=9; ID
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 30 3B XX'; // SP,NR=10; Verdichter_Status
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 31 3B XX'; // SP,NR=11; Verdichter_Zeit
$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 33 3B 94'; // SP,NR=13; Betriebsart
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 31 34 3B XX'; // SP,NR=14; Entstörung
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 36 39 3B XX'; // SP,NR=69; HKR_Soll_Raum
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 37 31 3B XX'; // SP,NR=71; HKR_Aufheiztemp
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 37 32 3B XX'; // SP,NR=72; HKR_Absenktemp
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 37 36 3B XX'; // SP,NR=76; HKR_Heizgrenze
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 30 3B XX'; // SP,NR=80; Kurve_oHG
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 31 3B XX'; // SP,NR=81; Kurve_0
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 32 3B XX'; // SP,NR=82; Kurve_uHG
$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 33 3B 8F'; // SP,NR=83; Temp Warmwasser Soll
//$command_array[]='02 FD D0 E0 00 00 0A 7E 53 50 2C 4E 52 3D 38 35 3B 85'; // SP,NR=85; Temp Warmwasser Mind
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 31 37 31 3B C8'; // SP,NR=171; Betriebsstunden Verdichter Warmwasser
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 31 37 32 3B CD'; // SP,NR=172; Betriebsstunden Verdichter HKR
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 31 37 33 3B CE'; // SP,NR=173; Betriebsstunden Verdichter Gesamt
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 32 32 32 3B XX'; // SP,NR=222; MKR2_aktiviert
//$command_array[]='02 FD D0 E0 00 00 0B 7E 53 50 2C 4E 52 3D 32 36 33 3B XX'; // SP,NR=263; Energiezaehler
$command_array[]='02 FD D0 E0 00 00 06 7E 4C 4F 55 54 3B 92'; // logout

$result_array=array();


try {
    $fp = stream_socket_client($host, $errno, $errstr,30);
    stream_set_blocking($fp,0);
} catch(Exception $e) {
    echo $e->getMessage();
}
$stream='';
global $stream;
global $fp;



if (!$fp) {
    echo "ERROR: $errno - $errstr<br />
";
} else {


    foreach($command_array as $id => $command) {
        if ($command!='') {
            request($command);
            $stream.='<br>';
        }

    }


    echo '<pre>';
    print_r($result_array);
    echo '</pre>';

    echo $stream;


    fclose($fp);



}

function hexconv($str) {

    $arr = explode(' ',$str);
    $new_str = '';
    foreach ($arr as $key => $val) {
        $new_str.=chr(hexdec($val));
    }

    return $new_str;

}

function request($command) {
    global $fp,$stream,$result_array;

    $command = hexconv($command);
    echo 'query:'.$command.':end<br>';
    fwrite($fp, $command);

    sleep(1);
    $str = '';
    while (strlen($c=fread($fp,1024))>0) {
        $stream .=$c;
        $str.=$c;
    }

    //
    if (strlen($str)>40) {
        $str=substr($str,strpos($str,','),strlen($str));
        $str=substr($str,0,strpos($str,';'));
        $resp = str_replace(',','&',$str);
        parse_str($resp,$arr);
        $result_array[]=$arr;
    }

}

?>

Hi Leute!

Gibt es jemanden der mit hier weiterhelfen könnte? Ich habe gerade akute Probleme mit meiner WP und wäre froh wenn ich wenigstens Vor- und Rücklauf in Variablen schreiben könnte.

Ich frage den Rücklauf bereits so ab:

RegVar_SendText(26747 /*[Waermepumpe\Register Variable]*/,"\x02\xFD\xD0\xE0\x00\x00\x09\x7E\x4D\x50\x2C\x4E\x52\x3D\x33\x3B\xE0"); // Temp Vorlauf

Entsprechend sehe ich im Debug/Dump der RegVar:
Rücklauf.JPG
Den Temperaturwertes des Rücklaufes. Selbes gäbe es dann noch für den Vorlauf usw…Wie gehe ich das an? Hat jemand schon sowas gemacht, Tipps oder Codeschnipsel für mich?

Hallo hofimax,

hast du zufällig den „Remote Control Gateway“ im Einsatz? Ich bekomme den, die nächste Tage oder Wochen. Damit sollte laut Heliotherm folgendes Möglich sein.

Das RCG dient zur Anbindung an das Remote Control Datenportal (Browser basierend - Betriebssystemunabhängig). Mit dessen Funktionalität kann die Wärmepumpe online visualisiert, gesteuert und optimiert werden. Weitere Funktionen im RCG sind die Anbindung an die Gebäudeystemtechnik z.B. KNX. Die Einbindung einer PV-Anlage zur energetisch optimalen Steuerung der Wärmepumpe ist auch fester Bestandteil des RCG.

Ihre Vorteile im Überblick:

Anbindung an die Gebäudeleittechnik
Optimierung der PV Eigenstromnutzung
Berechnung der PV-Leistung über Wetterdaten
Historische Daten (Aufzeichnung über 3 Jahre)
Meldungen per eMail
Einstellung aller Parameter der Wärmepumpe
Automatischer Statistikreport
Direkter Download der Trenddaten
Online Update fähig
Plug & Function, i.d.R. ohne Routerkonfiguration
Anbindung an die standardisierte Gebäudeleittechnik

KNX
BACnet
ModBus
Anbindung an die Photovoltaik

SG Ready / Smart Meter über RS 485
Intelligente Kombination mit PV mit Wechselrichter

Hi!

Nö, genau diesen RCG und die 500€ oder mehr möchte ich mir ja sparen. Da müsste ich dann erst Recht wieder basteln um die Daten in IPS zu bringen. Und dann macht das Ding nichts anderes, als die Daten über die serielle Schnittstelle der Steuerung auszulesen und aufzubereiten. Genau das, was ich versuche selber zu machen :D, aber mir halt leider die PHP Kenntnisse dazu etwas fehlen… :banghead:

Hi,

bei 500€ und PHP kann ich leider auch nicht besonders helfen. :smiley:
Falls das Auslesen nicht vernünftig funktioniert, könnten Anlegefühler eine Lösung sein.

Das Auslesen geht perfekt, aber das Übersetzen in IPS Variablen wird für mich schwierig. Naja, ich versuchs mich jetzt mal daran, mal sehen was rauskommt.

Anlegefühler alleine wären schon langweilig, möchte ja wissen wann WW gemacht oder geheizt wird. Welche Temperaturen das Sauggas hat usw…

So ich habe mich nun daran gemacht selber etwas zu Scripten und habe es mit einfachen Mitteln geschafft, einen Wert abzuholen und in eine Variable zu schreiben.
Folgender Weg ist mir gelungen:
Mit diesem Script frage alle Minuten die serielle Schnittstelle ab

<?

SPRT_SendText(24575 /*[Serial Port Wärmepumpe]*/,"\x02\xFD\xD0\xE0\x00\x00\x09\x7E\x4D\x50\x2C\x4E\x52\x3D\x33\x3B\xE0"); //Temp Vorlauf

?>

Lasse das Ergebnis durch einen Cutter laufen
Cutter.JPG
und von dort in eine Register Variable die mir dieses Script ausführt

<?

if ($_IPS['SENDER'] == "RegisterVariable")
{
    // bereits im Puffer der Instanz vorhandene Daten in $data kopieren
    $data  = RegVar_GetBuffer($_IPS['INSTANCE']);
    $data .= $_IPS['VALUE'];


SetValueFloat(24602 /*[Waermepumpe\Vorlauf\Register Variable Vorlauf\Vorlauf]*/,$data);

}
RegVar_SetBuffer(26747 /*[Waermepumpe\Vorlauf\Register Variable Vorlauf]*/, "");


?>

So, nun meine Frage:
Ich will jetzt mehr Werte als nur diesen einen haben, wie mache ich das am besten bzw. ist mein gewählter Weg der richtige oder gäbe es vernünftigere Lösungswege?

Bitte höflichst um Hilfe!

Oder wäre es besser diese Fragen in einen anderen Bereich zu verschieben?