RS232 illegal formart

Da ist ein Fehler drinnen um zu schauen ob Du mitdenkst ;). Da ist einfach ein Fehler im auf die Schnelle geposteten Skript.

FALSCH


if (strpos($datasets[$i], '*POW*OFF') >= 0)
            {
                SetValue(24754, true); // Hier ist der Fehler, es soll ja aus geschaltet werden
            }
 elseif (strpos($datasets[$i], '*POW*ON') >= 0)
            {
                SetValue(24754, true); 
            }

Würde bedeuten wenn POWOFF in der Antwort vorkommt, setzte die Variable auf true (an).

RICHTIG


if (strpos($datasets[$i], '*POW*OFF') >= 0)
            {
                SetValue(24754, false); // Variable auf aus (false) setzten
            }
 elseif (strpos($datasets[$i], '*POW*ON') >= 0)
            {
                SetValue(24754, true);
            }

kann es sein das ich da was falsch machen ? oder liegt am script?

hier ist die Lösung:
<?php

// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist

if ($_IPS[‚SENDER‘] == „RegisterVariable“) {
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$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); 

    // alle nicht durch # terminierten Datensätze ausgeben 
    for ($i = 0; $i &lt; count($datasets) - 1; $i++) { 
        echo "empfangener Datensatz: ".$datasets[$i]."

";
if (strpos($datasets[$i], ‚*POW=OFF‘) !== false) {
SetValueBoolean(24754, false); // Objekt ID für die Variable zum Einschalten anpassen
}
elseif (strpos($datasets[$i], ‚*POW=ON‘) !== false) {
SetValueBoolean(24754, true); // Objekt ID für die Variable zum Einschalten anpassen
}
}

    // $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); 

}

Fonzo Danke nochmal für deine Bemühungen

Freut mich das es funktioniert, nur als Tipp dann kann man Dir in Zukunft bei Problemen auch besser helfen, den Code im Forum immer in Tags setzten, dazu gibt es beim Erstellen vom Post Auswahlfelder zum Beispiel den Tag PHP-Code einfügen. Wenn Du etwas aus einem Debug Fenster posten willst, dann ist es hilfreich einfach im Debug Fenster auf Download zu klicken, dann bekommst Du ein txt File, dessen Inhalt Du wiederum in einem [i]Code einfügen

[/i] Tag setzten kannst. Das macht das ganze besser lesbar als wenn Du Bilder machst und man dann versuchen muss den Inhalt auf dem Bild zu erkennen bzw. je nach Auflösung zu erraten.

Alles klaro.