Was'n das?

Ich muss gestehen, ich bin ein wenig irritiert und zweifle gerade an meiner Wahrnehmung.

Folgender Code:


$temperature_day = 20.0;
$temperature_night = 17.0;
$tag = GetValue(18791 /*[Global\Astrodates\.Astro Dates\Tag]*/ );		//Arbeitstag, Wochenende, Feiertag

echo $time;
echo "
";
echo $time_day_start;
echo "
";
echo $time_day_end;
echo "
";

echo $loaded;
echo "
";



echo $temperature;
echo "
";
echo $temperature_day;
echo "
";
echo $temperature_night;
echo "
";
echo $tag;
echo "
";
echo "
";
echo "ValueFloat (56390): ";
echo GetValueFloat(56390 /*[Homecontrol\Arbeitszimmer\Deckenfluter\LEVEL]*/ );
echo "
";
echo "ValueBoolean (34828): ";
echo GetValueBoolean(34828  /*[Homecontrol\Arbeitszimmer\Deckenlicht\STATE]*/);

bringt folgenden Output:


10:12:50
16:00:00
24:00:00
1
21.1
20
17
Wochenende

ValueFloat (56390): 0
ValueBoolean (34828): 17

Die 17 scheint von $temperature_night zu kommen. 34828 ist doch aber ein Boolean. :confused:
Ich fühle mich gerade in die alten C zeiten zurückversetzt, wenn die Pointer nicht richtig saßen oder der Speicher nicht allokiert war.

Kann mir das jemand erklären?

Du machst das etwas umständlich.
echo $time;
echo "
";
ginge auch per

echo "time=$time
";

Den Variablentyp mit Wert kannst Du einfach per

var_dump($time);

ausgeben (ohne echo)

ich wollte ja nur mal schnell schauen, warum meine ifs nicht funktionieren.

… und wenn wenn Bool erwartet wird aber kein Bool kommt, kann das irgendwie nicht gehen.

Zentrale Frage bleibt:
Warum steht da 17?

weil das

am Anfang deines Scriptes steht!!

Hi Martin,

das verstehe ich jetzt aber auch nicht so ganz.

echo GetValueBoolean(34828 /[Homecontrol\Arbeitszimmer\Deckenlicht\STATE]/); sollte doch eigentlich 1 oder nix anzeigen oder?

2MicF: Versuchs doch mal per:

echo 'ValueBoolean (34828): ';
$tmp=GetValueBoolean(34828  /*[Homecontrol\Arbeitszimmer\Deckenlicht\STATE]*/);
var_dump($tmp);

Dann siehst Du was GetValueBolean() zurückliefert. Hast Du denn mal den Wert von State geändert? Die 1 von 17 kann auch true bedeuten, dann käme bei false eine 7

Den IPS-Rechner hast Du schon neu gestartet?

@Schablone

Du hast vollkommen Recht.
Ich bin so doof. :o

Wenn die Boolean FALSE ist wird sie schlichtweg nicht mit Echo ausgegeben (also auch nicht mit 0).

… und einige Zeilen weiter, habe ich dann die Temp. nochmal ausgeben lassen (ohne Zeilenbruch).

Sorry für die Verwirrung.

Wie üblich saß das Problem hinter der Tastatur.