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);
}
// 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 < 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);
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.