Status im Webfront setzen (String to Boolean) klappt nicht.

Hallo,

ich hätte da mal ein Problemchen.
Ich habe ein Script, mit dem ich über ebusd meine Wärmepumpe auslese (und mit anderen Scripten dann auch steuern kann).

Hier ein Ausschnitt aus dem Lese-Script, mit dem ich den Status der Warmwasser-Zirkulation auslesen kann.
Das Ergebnis ist „on“ oder off" und damit ein String. Ich denke ich muss das konvertieren, aber es klappt nicht.

Die Boolean Variable 42485 soll den Status (An/aus) auf dem WebFront visualisieren.

    $Zirkulationspumpe = 42485;
    $Zirkulationspumpe = shell_exec('ebusctl --port=8889 r -f CirPump');

	if ($Zirkulationspumpe == "on") { 
	SetValueBoolean(42485, true);
	}
	else SetValueBoolean(42485, false);
    IPS_Sleep(1000);

Wäre cool, wenn mir hier jemand weiterhelfen könnte.

Hallo
Als erstes ist mir unklar warum in der ersten Zeile die Variable auf „42485“ gesetzt wird und
dann in der naechsten Zeile ueberschrieben wird. Was solls.
Bist du sicher , dass das „shell_exec“ ein „on“ zurueckliefert ?
Kein Leerzeichen oder aehnliches mit dabei ?
Wird immer auf FALSE gesetzt ?
Schreib mal ein IPS_Logmessage(FILE,"[".$Zirkulationspumpe."]");
um festzustellen ob Leerzeichen davor oder danach sind.
Wenn ja mal ein „TRIM“ einfuegen.

Wenn über var_dump on und off kommt, könnte dies helfen, habe ich jetzt aber nicht getestet.


filter_var('on', FILTER_VALIDATE_BOOLEAN);    // true

 filter_var('off', FILTER_VALIDATE_BOOLEAN);      // false

Gesendet von iPhone mit Tapatalk

Hallo,

bzgl. setzen der Variable auf einen Wert - ich dachte bis gerade das ich die ID der Variable angeben muss. Mea culpa. Hatte ich irgendwo mal so gelesen. :banghead:

Die Rückgabewerte der shell_exec sind entweder „on“ oder „off“.
Ich habe jetzt im Logfile (Danke für den Tipp) rausgefunden, das aktuell hinter „off“ zahlreiche Leerzeichen kommen".
Das habe ich jetzt mal mit TRIM entfernt, jetzt bekomme ich nur noch off in eckigen Klammern zurück. Werde das mal beobachten da die Zirkulation aktuell nicht läuft.

Die eckigen Klammern kommen ja von dem Ips_logmessage damit man sehen kann was vor oder danach ist. Sollte so funktionieren.

Gesendet von iPad mit Tapatalk

Funktioniert jetzt auch, herzlichen Dank! :cool: