Bewegungsmelder - Timer - Helligkeit

Guten Abend zusammen,

ich bräuchte bitte eure Unterstützung bei folgendem Vorhaben:

Ich möchte, dass mein Bewegungsmelder eine Lampe einschaltet, wenn eine Bewegung erkannt wird, aber nur dann, wenn ein bestimmter Helligkeitsschwellenwert unterschritten ist. Zudem soll die Lampe nach zwei Minuten automatisch wieder ausgeschaltet werden.

Ich habe bereits ein ausgelöstes Ereignis erstellt, das die Lampe bei Bewegung einschaltet, jedoch schaltet sie sich nicht automatisch wieder aus.

Vielen Dank im Voraus für eure Hilfe!

Hendrik

</>

<?php // IDs anpassen $bewegungsmelderID = 16243; // ID deines Bewegungsmelders $helligkeitssensorID = 36500; // ID deines Helligkeitssensors $lampeID = 33002; // ID des Lampen-Aktors // Timer-Event überprüfen if ($_IPS['SENDER'] == "TimerEvent") { echo "Timer-Event wurde ausgelöst."; // Lampe ausschalten RequestAction($lampeID, false); echo "Lampe wurde ausgeschaltet."; // Timer deaktivieren IPS_SetScriptTimer($_IPS['SELF'], 0); echo "Timer wurde deaktiviert."; return; // Skript beenden } // Helligkeitswert abfragen $helligkeit = GetValue($helligkeitssensorID); // Bewegungsmelder Status prüfen (z.B. TRUE = Bewegung erkannt) if (GetValue($bewegungsmelderID)) { // Wenn Helligkeit unter 60 Lux ist if ($helligkeit < 60) { // Lampe einschalten RequestAction($lampeID, true); echo "Lampe wurde eingeschaltet."; // Timer auf 2 Minuten (120 Sekunden) setzen IPS_SetScriptTimer($_IPS['SELF'], 120); echo "Timer wurde auf 2 Minuten gesetzt."; } else { echo "Es ist hell genug, Lampe bleibt aus."; } } else { echo "Keine Bewegung erkannt."; }

Hallo Hendrik,
ich habe das so gelöst (IPS 7.2), dass das Licht bei Bewegung angeschaltet wird und nur in einer gewissen Zeitspanne. Vielleicht hilft dir das weiter.

Skript „Licht anschalten mit Bewegungsmelder“:

<?php

if ($_IPS['SENDER'] == "TimerEvent")
{
    //Timer ausschalten
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    IPS_RunScript(56822); // Schaltet das Licht aus!
    
}
else
{
    if (($_IPS['SENDER'] == "Execute"))
    {
        if ((GetValueInteger(31092) <= 7) or (GetTimeRemaining($_IPS['SELF']) > 0)) //Variable Beleuchtungsstärke in Lux
        {
            IPS_RunScript(16904); // Schaltet das Licht ein
            //print_r("JA; ich habe das Licht an geschaltet");
            //print_r("Restzeit:" . GetTimeRemaining($_IPS['SELF']) . "#");
            //print_r(GetValueInteger(31092));
            IPS_SetScriptTimer($_IPS['SELF'], 120); //Timer auf 360 Sekunden
            
        }

    }
    else
    {
        if ($_IPS['VALUE'] == true)
        {

            if ((GetValueInteger(31092) < 7) or (GetTimeRemaining($_IPS['SELF']) > 0))
            {
                IPS_RunScript(16904); // Schaltet das Licht ein
                //print_r("JA; ich habe das Licht an geschaltet");
                //print_r("Restzeit:" . GetTimeRemaining($_IPS['SELF']) . "#");
                //print_r(GetValueInteger(31092)); //Variable Beleuchtungsstärke in Lux
                IPS_SetScriptTimer($_IPS['SELF'], 120); //Timer auf 360 Sekunden
                
            }

        }
    }

}

function GetTimeRemaining($id)
{
    $eid = @IPS_GetEventIDByName("ScriptTimer", $id);
    if ($eid === false)
    {
        return -1;
    }
    else
    {
        $e = IPS_GetEvent($eid);
        if ($e['NextRun'] == 0)
        {
            return -1;
        }
        else
        {
            return $e['NextRun'] - microtime(true);
        }
    }
}

Ereignis ID 19261:


Ereignis ID 57008:


Skript „Licht An“:

<?php

RequestAction(29248, true); //Einschalten der Lampengruppe

Skript „Licht Aus“:

<?php

RequestAction(29248, false); //Ausschalten der Lampengruppe

LG
Stefan

1 „Gefällt mir“

Für das Anschalten bei Bewegung mit Schwellwert gibt es mein Modul „Präsenzmelder“ und für das Ausschalten nach x Minuten das passende Modul „Lichtautomat“. Laufen bei mir schon seit Jahren.

Man kann das auch noch eingrenzen mit einer Zeitschaltung …

Der Lichtautomat schaut darüber hinaus auch noch nach ob nicht nach abgelaufener Zeit immer noch Bewegung ist und zählt dann eben nochmal x Minuten!

Nicht das man dann im Dunkeln steht!

Gruß Heiko

1 „Gefällt mir“

Moin Stefan & Heiko,

Vielen Dank für die super schnelle Hilfe. Ich habe mich für die Variante von Heiko entschieden, den Lichtautomaten habe ich tatsächlich bereits schon an anderer Stelle im Einsatz, der Präsenzmelder ist neu für mich - ich werde das Ganze später mal ausprobieren :slight_smile:

Gruß und ein schönes Restwochenende

Hendrik

Hi @pitti,

die Lösung funktioniert einwandfrei, vielen Dank! :slight_smile:
Gruß

Hendrik

1 „Gefällt mir“