möchte mein Flurlicht einschalten lassen, wenn der Dämmerungssensor sagt es ist dunkel und der Piri eine Bewegung registriert. Natürlich soll das licht nach 2 min wieder ausgeschaltet werden und der Piri Status auf false gesetzt werden. Das Script soll dazu dienen, das ich nicht immer Nachts aufstehen muss, wenn meine kleinen Nachts auf die Toilette müssen.
Habe also versucht ein Script zu schreiben. Bitte nicht lachen. Ist warscheinlich ein absolutes Chaos für PHP Freaks. :eek: :eek: Habe es also wie folgt probiert.
File : flurlicht.ips.php
Trigger : flurlicht
Interval :
*/
// Wenn Bewegung im Flur und Dämmerungsssensor Kanal 1 true
// dann Gerät mit der InstanceID 65510 für 2 Minuten
// ( 60 * 2 = 120 ) einschalten
$bewegung = GetValueBoolean("piri_flur_1");
$dunkel = GetValueBoolean ("dsensor_1");
if ($bewegung == true)
if ($dunkel == true)
echo "Flurlicht an";
{
FS20_SwitchDuration (65510, True, 120);
}
{
if ($bewegung == "TimerEvent")
echo "Flurlicht aus";
IPS_SetScriptTimer ("piri_flur_1" ,0);}
?>
Leider bringt es nicht den gewünschten Erfolg. Entweder ergibt das komplette Sckript keinen Sinn, oder ich habe nur Fehler drin. Könnte eure Hilfe gebrauchen.
Also was mir nun ersteinmal pauschal auffällt… Zähl mal deine Klammern… Das kommt niemals auf. zu jeder Geöffneten gehört eine Geschlossene. Und solche Konstrukte „} {“ geben IMHO niemals sinn…
Und als Tip: Wenn du im IPS oben rechts von deinem Script Execute klickst, steht unten in der Box was du falsch gemacht hat. Die Engine ist zwar nicht allwissend, aber liefert gute Anhaltspunkte…
Dann nochwas: Verwende bitte hier im Forum den kleinen Button wo PHP drauf steht (Im Editor - Erweitert - oben, rechts). Dann kann man auch vernünftig lesen was du schreibst. Würdest du also bitte den Moderatoren die Arbeit abnehmen und deinen Beitrag selbst korrigieren?
mit SetValueSowiso kannst du variablen ändern. Echo allein macht nix weiter als ne Message beispielsweise zum debuggen (fehlersuchen) rauszuwerfen.
paresy setzt in seinem Script die Piri-Variable zurück auf false. Damit ist sichergestellt, dass es kein Einweg-Script wird. Denn wenn einmal true ist, true bleibt und wieder true kommt kannst du nicht auf eine Änderung reagieren… Klar, oder?
Klingt logisch. Leider läuft das Script aus unerklärbaren Gründen leider nicht.
Habe die Variablen neu angelegt und es noch einmal probiert. Der Dämmerungssensor steht auf True und der Piri registriert auch eine Bewegung wenn ich durch den Flur gehe. Leider aktiviert sich das Flurlicht nicht.
sagt der Dämmerungssensor wirklich TRUE, wenn es Dunkel=kein Licht ist?
Ich kenne das eigentlich nur umgedreht, d.h False wenn Dunkel, True wenn Licht…
sobald es dunkel wird sagt er bei mir true. Er könnte auch False anzeigen. Ich müsste nur den internen Jumper umsetzen. Ist gehopst wie gespungen. Bei mir also true.
Hallo Mirco,
schmeiß erstmal : „if($IPS_SENDER == „Variable“) {“ raus und teste mit „Execute“.
und arbeite mit ECHO’s z.B.: echo (int) $dunkel; !!!
Allerdings solltest Du mal alle in der if-Bedingung stehenden Vars mit ausgeben. So mache ich das zu debug-Zwecken auch. Ev. erlebst Du da eine Überraschung… :eek: