PHP Script Anwesend und Lampe aus?

Moin,

ich habe ein Problem mit meinem PHP Know-How :smiley:
Ich versuche zwei Werte auszulesen und dann in einer IF Condition mit einem logischen Operator zu verbinden. Leider immer mit Syntax Fehler. Hintergrund: Ich nutze das Geofency Modul (Locative App), die mir einen True oder False Wert zurückgibt. Ich möchte gerne das Licht anschalten, wenn der Status auf True steht (also anwesend) aber das Licht noch aus ist. Wenn das Licht noch an ist, muss es ja nicht ausgeführt werden. Ist das eigentlich ein allgemeiner Denkfehler von mir, dass ich keinen „Anschaltebefehl“ absenden möchte, wenn das Licht an ist, oder kann man das dennoch machen und führt so zu kein Problem?
Kann mir einer von euch vielleicht helfen?

<?
$ID_Lampe = 12345/*[Licht\Wohnzimmer]*/; //hier ID des zu schaltenden Gerätes eintragen
$ID_StatusVar = 56789/*[Licht\Wohnzimmer\Status]*/;  // Hier die ID der Status-Variable vom Gerät eintragen (Boolean)
$ID_Zuhause = 13579/*[Locative\Device\Zuhause]*/

if (GetValueBoolean($ID_StatusVar) == false) && (GetValueBoolean($ID_Zuhause) == true)
{
//case 'Lampe_an':
ZW_SwitchMode($ID_Lampe, true);
}
else
{
//case 'Lampe_aus':
ZW_SwitchMode($ID_Lampe, false);
}
?>

Moin… ändere den Teil mal in…



if ((GetValueBoolean($ID_StatusVar) == false) && (GetValueBoolean($ID_Zuhause) == true))
{
//case 'Lampe_an':
ZW_SwitchMode($ID_Lampe, true);
}
else
{
//case 'Lampe_aus':
ZW_SwitchMode($ID_Lampe, false);
}
?>

Und es ist immer hilfreich wenn du die Fehlermeldung mit postest!

Grüße,
Peter

Danke für den Hinweis. Das hatte ich auch schon einmal getestet und eben erneut mit Fehler

arse error:  syntax error, unexpected 'if' (T_IF) in [Scripts\Lampe an wenn anwesend] on line 6

Habe daraufhin mal meine Variablen geprüft und nach jeder ein Semikolon eingefügt und siehe da es klappt :smiley: Ich bin leider noch so unerfahren, dass es mich bei solchen Kleinigkeiten zerreist.
Final sieht es so aus und klappt.

<?
$ID_Lampe = 12345; /*[Licht\Wohnzimmer]*/; //hier ID des zu schaltenden Gerätes eintragen
$ID_StatusVar = 56789; /*[Licht\Wohnzimmer\Status]*/;  // Hier die ID der Status-Variable vom Gerät eintragen (Boolean)
$ID_Zuhause = 13579;

if ((GetValueBoolean($ID_StatusVar) == false) && (GetValueBoolean($ID_Zuhause) == true))
{
//case 'Lampe_an':
ZW_SwitchMode($ID_Lampe, true);
}
else
{
//case 'Lampe_aus':
ZW_SwitchMode($ID_Lampe, false);
}
?>

Moin!

Ich darf dir noch diesen Thread ans Herz legen, dort gibt es lauter so kleine hilfreiche Skripte :slight_smile:
IP-Symcon - Wie kann ich… 2.0

Auch das Beispiel mit Bewegungsmelder(n) und Lampe(n):
IP-Symcon - Wie kann ich… 2.0 - Seite 3

Grüße,
Chris