UDP Socket: Kein Datenempfang von 2. Rutenbeck TCR IP4

Liebe Community,

mich treibt gerade ein Thema um und ich möchte euch gerne um Hilfe bitten:

Ich nutze seit längerem einen Rutenbeck TCR IP4, unter anderem um einen Temperatursensor auszulesen. Das ganze klappt auch wunderbar - alle Schaltausgänge können geschalten werden, der Temperaturausgang kann ausgelesen werden. Ich nutze insgesamt 2 TCR IP4, wobei das 2. Gerät keinen Temperatursensor hat und damit nur per „send“ angesprochen wird. Nun habe ich an das 2. Gerät ebenfalls einen Temperatursensor angeschlossen und möchte nach „Schema F“ auch von dort den Temperaturwert auslesen --> Leider bekomme ich keine Rückmeldung vom Gerät. Geräteseitig schließe ich einen Defekt aus - konfiguriere ich das Gerät 2 wie Gerät 1 funktioniert das Auslesen der Temperatur.

Konfiguration UDP Socket 1 (nicht irreführen lassen - das ist das Gerät, bei dem die Abfrage NICHT funktioniert)
UDP_Socket_1_Konfig.png

Konfiguration UDP Socket 2 (hier funktioniert die Abfrage)
UDP_Socket_2_Konfig.png

Temperaturabfrage Gerät 1 (das ist das Gerät, bei dem die Abfrage NICHT funktioniert)

Temperaturabfrage Gerät 2 (hier funktioniert die Abfrage)

Abfrage Gerät 1 (das ist das Gerät, bei dem die Abfrage NICHT funktioniert)


<?
			USCK_SendText(17754, "T ?");      
?>

Abfrage Gerät 2 (hier funktioniert die Abfrage)


<?
		USCK_SendText(16947, "T ?"); 

?>

Empfang Gerät 1 (das ist das Gerät, bei dem die Abfrage NICHT funktioniert)


<?
 
if ($_IPS['SENDER'] == "RegisterVariable") 
{
    $data  = RegVar_GetBuffer($_IPS['INSTANCE']);
	// neu empfangene Daten an $data anhängen
   	$data .= $_IPS['VALUE'];
 	//wenn das Trennzeichen ; in $data gefunden worden ist
 	if (strpos($data, '=')) 
	{
	// $data in durch = separierte Datensätze zerlegen
 	$datasets = explode('=', $data);
    //  $data auf den Inhalt des letzten (unvollständigen) Datensatzes setzen
 	$data = $datasets[count($datasets) - 1];
  	}
    // Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
    RegVar_SetBuffer($_IPS['INSTANCE'], $data);
	
	SetValueFloat(53436, floatval($data));				
}

?>

Empfang Gerät 2 (hier funktioniert die Abfrage)


<?
 
if ($_IPS['SENDER'] == "RegisterVariable") 
{
    $data  = RegVar_GetBuffer($_IPS['INSTANCE']);
	// neu empfangene Daten an $data anhängen
   	$data .= $_IPS['VALUE'];
 	//wenn das Trennzeichen ; in $data gefunden worden ist
 	if (strpos($data, '=')) 
	{
	// $data in durch = separierte Datensätze zerlegen
 	$datasets = explode('=', $data);
    //  $data auf den Inhalt des letzten (unvollständigen) Datensatzes setzen
 	$data = $datasets[count($datasets) - 1];
  	}
    // Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
    RegVar_SetBuffer($_IPS['INSTANCE'], $data);
	
	SetValueFloat(47502, floatval($data));				
}

?>

Konfiguration TRCIP4 - Gerät 1 (das ist das Gerät, bei dem die Abfrage NICHT funktioniert)
TCRIP4_Konfig_1.png

Konfiguration TTCIP4 - Gerät 2 (hier funktioniert die Abfrage)

Hat jemand eine Idee, wo der Fehler liegen könnte?

Danke für eure Hilfe, VG Olaf

Im Bild hast du einmal eine RegVar (was korrekt ist) und einmal ein Esera Temperatur. Das wirkt nicht richtig!?

Hast du die Schalt/Abfrage Skripte hier im Forum gepostet? Da haben bestimmt noch andere Interesse daran :rolleyes:
Oder schon mal überlegt ein PHP Modul daraus zu machen?

paresy

Yep - das war der Fehler! Vielen Dank für die Hilfe. Skripte poste ich gerne - danke für den Hinweis. PHP Module werde ich erst mal nicht basteln - zu viele andere Baustellen :-(.

VG und einen schönen Sonntag, Olaf