'; // connecten $socket = socket_create(AF_INET, SOCK_STREAM,0); $connect = socket_connect($socket, $IpWwc, $WwcJavaPort) || exit("socket_connect fehlgeschlagen"); //if ($connect = 1) // echo "PASS: Verbunden mit WWC Java Console $IpWwc Port: $WwcJavaPort
"; //else // echo "ERROR: Nicht verbunden mit WWC Java Console
"; //$timestamp= time(); //$datum = date("d.m.Y",$timestamp); //$uhrzeit = date("H:i:s",$timestamp); //printf('==============================================================
'); //printf('Ausleszeit: %s - %s Uhr
',$datum,$uhrzeit); //printf('Refresh alle 5s !
'); //printf('! TEST !
'); //printf('==============================================================
'); //--------------------------------------------------------------------------- // Daten holen $msg = pack('N*',3004); //printf('msg:%s
',$msg); $send=socket_write($socket, $msg, 4); //3004 senden //printf('Bytes send:%d
',$send); $msg = pack('N*',0); //printf('msg:%s
',ord($msg)); $send=socket_write($socket, $msg, 4); //0 senden //printf('Bytes send:%d
',$send); socket_recv($socket,$Test,4,MSG_WAITALL); // Lesen, sollte 3004 zurückkommen $Test = unpack('N*',$Test); //printf('read:%s
',implode($Test)); socket_recv($socket,$Test,4,MSG_WAITALL); // Status $Test = unpack('N*',$Test); //printf('Status:%s
',implode($Test)); socket_recv($socket,$Test,4,MSG_WAITALL); // Länge der nachfolgenden Werte $Test = unpack('N*',$Test); //printf('Länge der nachfolgenden Werte:%s
',implode($Test)); $JavaWerte = implode($Test); //printf('==============================================================
'); for ($i = 0; $i < $JavaWerte; ++$i)//vorwärts { socket_recv($socket,$InBuff[$i],4,MSG_WAITALL); // Lesen, sollte 3004 zurückkommen $daten_raw[$i] = implode(unpack('N*',$InBuff[$i])); //printf('InBuff(%d): %d
',$i,$daten_raw[$i]); } //socket wieder schliessen socket_close($socket); // Werte anzeigen for ($i = 0; $i < $JavaWerte; ++$i)//vorwärts { if ($i >= 10 & $i <= 28) // Temperaturen { //echo printf($i.":".$daten_raw[$i]." "); $minusTest = $daten_raw[$i]*0.1; if($minusTest > 429496000){ $daten_raw[$i] = $daten_raw[$i]-=4294967296; $daten_raw[$i] = $daten_raw[$i]*0.1; }else{ $daten_raw[$i] = $daten_raw[$i]*0.1; } //printf('(%d)%s : %.1f °C
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "Temperatur_200_C", $i);//float setValue($varid,$daten_raw[$i]); } if ($i == 56) // Zähler {($daten_raw[$i] = $daten_raw[$i]/3600); //printf('(%d)%s : %.2f h
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float setValue($varid,$daten_raw[$i]); } if ($i == 57) // Zähler {($daten_raw[$i] = $daten_raw[$i]); //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float setValue($varid,$daten_raw[$i]); } if ($i == 58) // Zähler {($daten_raw[$i] = $daten_raw[$i]/3600); //printf('(%d)%s : %.2f h
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float setValue($varid,$daten_raw[$i]); } if ($i == 59) // Zähler {($daten_raw[$i] = $daten_raw[$i]); //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float setValue($varid,$daten_raw[$i]); } if ($i >= 60 & $i <= 66) // Zähler {($daten_raw[$i] = $daten_raw[$i]/3600); //printf('(%d)%s : %d h
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float setValue($varid,$daten_raw[$i]); } if ($i == 67) // WP läuft seit {($daten_raw[$i] = $daten_raw[$i]); //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer $time = $daten_raw[$i]; // time duration in seconds $days = floor($time / (60 * 60 * 24)); $time -= $days * (60 * 60 * 24); $hours = floor($time / (60 * 60)); $time -= $hours * (60 * 60); $minutes = floor($time / 60); $time -= $minutes * 60; $seconds = floor($time); $time -= $seconds; $WPseit = "{$days}d {$hours}h {$minutes}m"; SetValue($varid,$WPseit); } if ($i == 73) // WP steht seit {($daten_raw[$i] = $daten_raw[$i]); //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer $time = $daten_raw[$i]; // time duration in seconds $days = floor($time / (60 * 60 * 24)); $time -= $days * (60 * 60 * 24); $hours = floor($time / (60 * 60)); $time -= $hours * (60 * 60); $minutes = floor($time / 60); $time -= $minutes * 60; $seconds = floor($time); $time -= $seconds; $WPseit = "{$days}d {$hours}h {$minutes}m"; SetValue($varid,$WPseit); } if ($i >= 95 & $i <= 99) // Errors { //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer $FehlerDatum = date("d.m.y",$daten_raw[$i]); setValueString($varid,$FehlerDatum); } if ($i >= 100 & $i <= 105) // Errors { //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer setValueString($varid,$daten_raw[$i]); } if ($i == 173) // Durchfluss {($daten_raw[$i] = $daten_raw[$i]); //printf('(%d)%s : %d
',$i,$java_dataset[$i],$daten_raw[$i]); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float setValue($varid,$daten_raw[$i]); } if ($i == 257) // Leistung {($daten_raw[$i] = $daten_raw[$i]/1000); $varid = CreateVariableByName($parentID, $java_dataset[$i], 2, 'WP_'.$java_dataset[$i], "", $i);//float $daten_raw[$i] = sprintf("%5.2f", $daten_raw[$i]); setValue($varid,$daten_raw[$i]); } if ($i == 80) // Betriebszustand { // printf('(%d)%s : %d',$i,$java_dataset[$i],$daten_raw[$i]); switch ($daten_raw[$i]) { case 0: $status = "Heizen"; break; case 1: $status = "Warmwasser"; break; case 2: $status = "Schwimmbad / Photovoltaik"; break; case 3: $status = "EVU-Sperre"; break; case 4: $status = "Abtauen"; break; case 5: $status = "Keine Anforderung"; break; case 6: $status = "Heizen ext. Energiequelle"; break; case 7: $status = "Kühlbetrieb"; break; } //printf ($status); $varid = CreateVariableByName($parentID, $java_dataset[$i], 3, 'WP_'.$java_dataset[$i], "", $i);//integer setValueString($varid,$status); } } function CreateVariableByName($id, $name, $type, $ident, $profile, $position) { $vid = @IPS_GetObjectIDByIdent ($ident, $id); if($vid === false) { $vid = IPS_CreateVariable($type); IPS_SetParent($vid, $id); IPS_SetName($vid, $name); IPS_SetIdent($vid, $ident); IPS_SetInfo($vid, ""); IPS_SetPosition($vid, $position); if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); } } return $vid; } ?>