Variablenabfrage schlägt fehl (Boolean)

Leute ich verzweifle schon an so einer Variablenabfrage.
Ich frage in meinem Script die Variablen ab und wundere mich warum das Script nicht funktioniert. Zur Fehlersuche baue ich echo Zeilen ein und sehe das da keine Werte ausgegeben werden. Um nicht in meinem Script rumzudoktorn habe ich mir ein Testscript mit Variablenabfragen und echo-ausgaben erstellt.
Dort sind bei der Ausgabe auch keine Werte vorhanden, also liegt es wohl nicht am restlichen Script. Nun noch mehr Abfragen und Ausgaben eingefügt… bei einigen bekomme ich Werte. In der Doku habe ich gesehen das nicht GetValueBoolean stehen muss sondern auch GETValue ausreicht. Test - auch nicht.
Bei der Variable wieder das Standard Profil (True/False) eingestellt - auch nicht.

Habt Ihr ne Idee?

<?

$menueaus = GetValue(23264 /*[Contr B -RaumDisp Wohnz\MenüDisplayB\MenueAKTIVE-B]*/); //holt die Info ob Menü aktiv
$anruf = GetValue(27485 /*[HiPath3500\Rufnummer aus HiPath3500\zZ-Anruf]*/); //holt die Info ob Anruf ansteht
$anwesendsimuaus = GetValue(23636 /*[Anwesenheitssimulation\Anweseheitssimu-an]*/); //holt die Info ob Anwesend.simu aktiv
$externscharfaus = GetValueBoolean(38004 /*[Alarmanlage\abwesendscharf]*/); //holt die Info ob scharf.ext. aktiv
$internscharfaus = GetValueBoolean(33422 /*[Alarmanlage\anwesendscharf]*/); //holt die Info ob schar.int aktiv
echo "Ist das Menü aus: $menueaus
";
echo "Steht ein Anruf an: $anruf
";
echo "Ist die Anwesdsimulation an: $anwesendsimuaus
";
echo "Ist Alarm extern scharf: $externscharfaus
";
echo "Ist Alarm intern scharf: $internscharfaus
";
		$temperatur = GetValueFloat(43822 /*[FS 10\FS10 Innensensor 1 -Wohnz.\Temperatur]*/); //hole Temp vom FS10 Sensor Wohnz
		$temperaturtextWohn = sprintf("%4.1f", $temperatur);
		echo "Temp: $temperatur
";
		echo "Temp: $temperaturtextWohn
";
$DisplayLicht = GetValueBoolean(40259 /*[Contr B -RaumDisp Wohnz\Display B LCD-Beleuchtung\ToggleVariable DisplayB-LCD-LED]*/); //holt die Info ob Display-Licht an
		echo "Displaylicht: $DisplayLicht
";
$mond = GetValueString(25748 /*[Anwesenheitssimulation\Astroskript\astronomische Abenddämmerung]*/); //holt die Info ob schar.int aktiv
		echo "Mond: $mond
";
?>

Ausgabe nach Ausführen:

Ist das Menü aus:
Steht ein Anruf an:
Ist die Anwesdsimulation an:
Ist Alarm extern scharf:
Ist Alarm intern scharf:
Temp: 22.1
Temp: 22.1
Displaylicht: 1
Mond: 18:27:27

Keine Ausgabe bedeutet bei Bool Werten = false, bei true steht dann eine 1. Das also nichts da steht sollte richtig sein, wenn die Variable false ist.

Achso! Danke, dann wird ich die IF abfrage in dem eigentlichen Script nur anpassen müssen.


//ID anpassen
echo GetValueBoolean(22288) ? $ausgabe = "an" : $ausgabe = "aus";

So kannst Du das übrigens testen.:wink:

Thomas hat es ja schon geschrieben.

Zum sichtbar machen tut es dieses hier.

echo GetValue(23246 /*[Homematic Lanadapter\Modelleisenbahn\SWITCH\STATE]*/) ? 1 : 0;

Edit: Thomas war schneller. :D;)

Alternativ geht auch das :smiley:

echo (int)GetValue(23246 /*[Homematic Lanadapter\Modelleisenbahn\SWITCH\STATE]*/);

paresy