GetValueBoolean zeigt Status nur an, wenn dieser 1?

Hallo,
bin gerade dabei, den FS20 Regensensor in Skripten zu verarbeiten. Er hat seine serienmäßige Statusvariable (ID 36123 bei mir), die auch prima arbeitet (setzt sich per Timer nach Regenende zurück usw.).
ABER: per

print GetValueBoolean(36123);

bekomme ich nur dann eine Ausgabe, wenn der Status = 1 ist, also wenn der Sensor feucht ist; ansonsten kommt nichts (d.h. auch nicht 0 wie bei anderen Booleans).

Das Testscript lautet

<?
print GetValueBoolean(36123);
echo GetValueBoolean(36123);
?>

Wie gesagt, keinerlei Ausgabe, wenn der Sensor trocken ist. Dagegen liefert

<?
print !GetValueBoolean(36123);
echo !GetValueBoolean(36123);
?>

11

Am Variablenprofil „~Raining“ kann das wohl nicht liegen? Mache ich da etwas falsch?
Grüße
DocMarten

Hallo DocMarten,

ist korrekt so.

Ein FALSE erzeugt in der Ausgabe eine „0“ und diese wird im Skriptausgabefenster nicht angezeigt.

Probier zum überprüfen mal folgendes

if (GetValue(36123 /*[Test]*/) == 0) {echo "Var36123 ist false";} else {echo "Var36123 ist true";}

Nicht getesete, sollte aber funktionieren.

Hallo Werner,
danke für die Aufklärung. Es ist so einfach, einen Anfänger zu verwirren :wink:
Da ja fast alles im Leben einen Sinn hat, nur mal interessehalber: Warum kann man einen 0-Status weder per Echo noch per Print ausgeben?
Grüße
DocMarten


echo (int)GetValueBoolean(36123);