ich hole den alten Beitrag aus der Tiefe 
In unserem neuen Heim ist ein Junkers Brennwert Gerät mit Can Bus und TR 220.
Also zur Optimierung und nice to have
war das Ziel, das mitlesen der Can Bus Nachrichten.
In der Bucht habe ich diesen Can Ip Gateway gefunden.
Client Soket anlegen
Dcom Port alle Nachrichten auswerten

Variablen anlegen
zum Auswerten dieser code
<?
//Daten als dez-String auslesen
$instr=GetValueString(43857 /*[Heizung\daten roh]*/ );
$datenstr="";
$laenge = strlen ($instr );
for($i=0; $i<strlen($instr); $i++)
{
$datenstr.=strtoupper(ord($instr{$i}))." ";
}
$Byte="";
$Byte = explode(" ",$datenstr);
//echo "$Byte[4]
";
//echo "$Byte[5]
";
//echo "$Byte[6]
";
//echo "$Byte[7]
";
//echo "$Byte[8]
";
//200H 1 Byte max.Vorlauftemperatur in Halbgradschritten Dez.120 = 60°C
if (($Byte[4] == 2) and ($Byte[5] == 0))
{
SetValue(29734 /*[Heizung\200H 1 Byte max.Vorlauftemperatur]*/ , $Byte[7] /2 );
IPS_SetScriptTimer(15815 /*[Client Socket Heizung\Neustart]*/ , 0);
}
//201H 1 Byte aktuelle Vorlauftemperatur in Halbgradschritten Dez.120 = 60°C
if (($Byte[4] == 2) and ($Byte[5] == 1))
{
SetValue(43078 /*[Heizung\201H 1 Byte aktuelle Vorlauftemperatur]*/ , $Byte[7] / 2 );
}
//202H 1 Byte a???
if (($Byte[4] == 2) and ($Byte[5] == 2))
{
SetValue(25880 /*[Heizung\202H 1 Byte ?????????]*/ , $Byte[7] / 2 );
}
//203H 1 Byte a???
if (($Byte[4] == 2) and ($Byte[5] == 3))
{
SetValue(53414 /*[Heizung\203H 1 Byte ?????????]*/ , $Byte[7] / 2 );
}
//204H 1 Byte max.Warmwassertemperatur in Halbgradschritten Dez.120 = 60°C
if (($Byte[4] == 2) and ($Byte[5] == 4))
{
SetValue(49251 /*[Heizung\204H 1 Byte max.Warmwassertemperatur]*/ , $Byte[7] / 2 );
}
//205H 1 Byte aktuelle Speichertemperatur Warmwasser in Halbgradschritten
if (($Byte[4] == 2) and ($Byte[5] == 5))
{
SetValue(57786 /*[Heizung\205H 1 Byte aktuelle Speichertemperatur]*/ , $Byte[7] / 2 );
}
//206H 1 Byte Störungsmeldungen Hex Wert siehe ( Bedienungsanleitung ) 00=Heizung ok
if (($Byte[4] == 2) and ($Byte[5] == 6))
{
SetValue(13630 /*[Heizung\206H 1 Byte Störungsmeldungen ]*/ , $Byte[7] );
}
//207H 2 Byte Außentemperatur in °C Hexadezimal Wert / 100 = 1/100 stel
if (($Byte[4] == 2) and ($Byte[5] == 7))
{
if ($Byte[7] == 255)
{
SetValue(54086 /*[Heizung\207H 2 Byte Außentemperatur in °C]*/ ,( "-" . $Byte[8]) /100);
}
else
{
//echo "$Byte[7]
";
//echo "$Byte[8]
";
SetValue(54086 /*[Heizung\207H 2 Byte Außentemperatur in °C]*/ , ((($Byte[7]). + ($Byte[8])))/1000);
}
}
//208H 1 Byte ?????????
if (($Byte[4] == 2) and ($Byte[5] == 8))
{
SetValue(33751 /*[Heizung\208H 1 Byte ?????????]*/ , $Byte[7] );
}
//209H 1 Byte Flamme EIN / AUS Wert 00 = Flamme AUS, Wert 01 = Flamme EIN
if (($Byte[4] == 2) and ($Byte[5] == 9))
{
SetValue(12178 /*[Heizung\209H 1 Byte Flamme EIN / AUS]*/ , $Byte[7] );
}
//20AH 1 Byte Heizungspumpe EIN / AUS
if (($Byte[4] == 2) and ($Byte[5] == 10))
{
SetValue(25173 /*[Heizung\20AH 1 Byte Heizungspumpe EIN / AUS]*/ , $Byte[7] );
}
//20BH 1 Byte Speicherladung EIN / AUS
if (($Byte[4] == 2) and ($Byte[5] == 11))
{
SetValue(31081 /*[Heizung\20BH 1 Byte Speicherladung EIN / AUS]*/ , $Byte[7] );
}
//20CH 1 Byte Sommer / Winterbetrieb Wert=00 Sommer Wert 01=Winter
if (($Byte[4] == 2) and ($Byte[5] == 12))
{
SetValue(30129 /*[Heizung\20CH 1 Byte Sommer / Winterbetrieb]*/ , $Byte[7] );
}
//20DH 1Byte ?????????
if (($Byte[4] == 2) and ($Byte[5] == 12))
{
SetValue(25151 /*[Heizung\20DH 1Byte ?????????]*/ , $Byte[7] );
}
// 250H 1 Byte ??????
if (($Byte[4] == 2) and ($Byte[5] == 80))
{
SetValue(25327 /*[Heizung\250H 1 Byte ??????]*/ , $Byte[7] );
}
//251H 1 Byte ??????
if (($Byte[4] == 2) and ($Byte[5] == 81))
{
SetValue(25327 /*[Heizung\250H 1 Byte ??????]*/ , $Byte[7] );
}
//252H 1 Byte Sollwert von TA270 Heizungssollwert in Halbgradschritten
if (($Byte[4] == 2) and ($Byte[5] == 82))
{
SetValue(42213 /*[Heizung\252H 1 Byte Sollwert von TA270 Heizungssollwert]*/ , $Byte[7]/2 );
}
//253H 1 Byte Sollwert von TA270 Warmwassersollwert in Halbgradschritten
if (($Byte[4] == 2) and ($Byte[5] == 83))
{
SetValue(16292 /*[Heizung\253H 1 Byte ?????????]*/ , $Byte[7]/2 );
}
//254H 1 Byte ?????????
if (($Byte[4] == 2) and ($Byte[5] == 84))
{
SetValue(49660 /*[Heizung\254H 1 Byte ?????????]*/ , $Byte[7] );
}
//255H 1 Byte Sollwert von TA270 Warmwassersollwert in Halbgradschritten
if (($Byte[4] == 2) and ($Byte[5] == 85))
{
SetValue(47045 /*[Heizung\255H 1 Byte Sollwert von TA270 Warmwassersollwert]*/ , $Byte[7] /2);
}
//256H Uhrzeit 4 HEX Werte
if (($Byte[4] == 2) and ($Byte[5] == 86))
{
SetValue(45494 /*[Heizung\256H 2 Byte Uhrzeit 4 HEX Werte]*/ , $Byte[7] .$Byte[8].$Byte[9].$Byte[10]);
}
//*[Heizung\404H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/
if (($Byte[4] == 4) and ($Byte[5] == 4))
{
SetValue(14433 /*[Heizung\404H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/ , $Byte[7]. $Byte[8]);
}
//405H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????
if (($Byte[4] == 4) and ($Byte[5] == 5))
{
SetValue(59154 /*[Heizung\405H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/ , $Byte[7]. $Byte[8]);
}
//417H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????
if (($Byte[4] == 4) and ($Byte[5] == 23))
{
SetValue(25711 /*[Heizung\417H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/ , $Byte[7]. $Byte[8]);
}
//440H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????
if (($Byte[4] == 4) and ($Byte[5] == 64))
{
SetValue(27241 /*[Heizung\440H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/ , $Byte[7]. $Byte[8]);
}
//441H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????
if (($Byte[4] == 4) and ($Byte[5] == 65))
{
SetValue(43161 /*[Heizung\441H 2 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/ , $Byte[7]. $Byte[8]);
}
//4F9H 1 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????
if (($Byte[4] == 4) and ($Byte[5] == 249))
{
SetValue(25651 /*[Heizung\4F9H 1 Byte Mischermodul ( Fußbodenheizung ) Bedeutung ?????]*/ , $Byte[7]. $Byte[8]);
}
//256H Uhrzeit 4 HEX Werte
// 1 Byte = Tag 1Montag / 7 Sonntag
// 2 Byte = Stunde
// 3 Byte = Minute
// 4 Byte = ????
if (($Byte[4] == 2) and ($Byte[5] == 86))
{
SetValue(57803 /*[Heizung\Tag]*/ , $Byte[7]);
SetValue(52085 /*[Heizung\Stunde]*/ , $Byte[8]);
SetValue(54474 /*[Heizung\Minute]*/ , $Byte[9]);
}
// IPS_SetScriptTimer(15815 /*[Client Socket Heizung\Neustart]*/ , 100);
?>
Da die Heizung nicht die neuste Generation ist erspare ich mir mal den Rest.
bei Interesse kein Problem.