MicF
19. Dezember 2010 um 10:34
1
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.
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)
MicF
19. Dezember 2010 um 11:10
3
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?
MicF
19. Dezember 2010 um 13:23
6
@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.