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:

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!