Hallo Leute,
ich habe seit ein paar Tagen eine Fehlermeldung im System
Könnt Ihr mir bei der Lösungsfindung helfen?
So schaut ein Skript von mir aus
<?
$VarSwitchID = 31525 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport\STATE]*/ ; // ID der Boolvariable
$VarSwitchVal = GetValue ($VarSwitchID);
if ($VarSwitchVal == false)
$bewegung = GetValueBoolean(46499 /*[Hardware\Homematic\Bewegungsmelder\Bewegungsmelder Carport\MOTION]*/);
$hellichkeit = GetValueInteger(20972 /*[Hardware\Homematic\Bewegungsmelder\Bewegungsmelder Carport\BRIGHTNESS]*/);
If (($bewegung == true) && ($hellichkeit < 100))
{
HM_WriteValueFloat(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport]*/, "ON_TIME", 60); //
HM_WriteValueBoolean(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport]*/, "STATE", true);
}
?>
Was ist hierbei seit dem letzten Update falsch?
Danke für eure Hilfe
Christian
Ich denke die Klammerung ist nicht korrekt, hier mal das Original Skript mit korrekter Einrückung
<?
$VarSwitchID = 31525 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport\STATE]*/ ; // ID der Boolvariable
$VarSwitchVal = GetValue ($VarSwitchID);
if ($VarSwitchVal == false)
$bewegung = GetValueBoolean(46499 /*[Hardware\Homematic\Bewegungsmelder\Bewegungsmelder Carport\MOTION]*/);
$hellichkeit = GetValueInteger(20972 /*[Hardware\Homematic\Bewegungsmelder\Bewegungsmelder Carport\BRIGHTNESS]*/);
If (($bewegung == true) && ($hellichkeit < 100))
{
HM_WriteValueFloat(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport]*/, "ON_TIME", 60); //
HM_WriteValueBoolean(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport]*/, "STATE", true);
}
?>
So sollte es funtionieren (wenn ich die Logik auf die Schnelle richtig verstanden habe):
<?
$VarSwitchID = 31525 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport\STATE]*/ ; // ID der Boolvariable
$VarSwitchVal = GetValue ($VarSwitchID);
if ($VarSwitchVal == false) {
$bewegung = GetValueBoolean(46499 /*[Hardware\Homematic\Bewegungsmelder\Bewegungsmelder Carport\MOTION]*/);
$hellichkeit = GetValueInteger(20972 /*[Hardware\Homematic\Bewegungsmelder\Bewegungsmelder Carport\BRIGHTNESS]*/);
If (($bewegung == true) && ($hellichkeit < 100))
{
HM_WriteValueFloat(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport]*/, "ON_TIME", 60); //
HM_WriteValueBoolean(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Carport]*/, "STATE", true);
}
}
?>
Das ist kein Fehler, sondern nur ein „notice“. Also hinweis. Und zwar, dass er die variable „bewegung“ in der Zeile x nicht gefunden wurde. Kann man übersehen, oder die variable je nach typ vorab definieren.
Also oben im script nach „<?“ $bewegung = false; eintragen.
Danke für eure Hilfe !
Das Problem wurde behoben.