Fibaro Szene: Licht an solange Bewegung

Treppenaufgang mit RGB Modul und Motion Sensor
Geschrieben von crissxcross

Manchmal sind feste Zeitintervalle in denen das Licht an ist nachdem der Bewegungsmelder ausgelöst hat sehr unpraktisch. Hier ein LUA Script bei welchem das Licht an bleibt bis keine Bewegung mehr präsent ist.

Eine einfache Schaltung "Licht an WENN Bewegungssensor" ausgelöst hat ist schnell in der Fibaro Szene zusammengebaut. Natürlich kann man hier auch mit Verzögerungswerten arbeiten, um das Licht nach einer bestimmten Zeit wieder auszuschalten.

Das könnte dann so aussehen:

Fibaro grafische Szene: Licht an für 1min bei Bewegung

Fibaro grafische Szene: Licht an für 1min bei Bewegung

Nur ist dies meistens sehr unpraktisch wenn der Junior vielleicht mal wieder länger gebraucht hat beim Schuhe zubinden, schwups steht die Familie im dunklen Flur. Besser wäre natürlich, wenn das Licht solange an bleibt wie eine Bewegung erkannt wird und erst wenn keine Bewegung mehr erkannt wurde, das Licht ausgeschalten wird.

Zunächst einmal an dieser Stelle ein großes Dankeschön an Simon, der mir das folgende Script zur Verfügung gestellt hat. Ausserdem ein Dankeschön an alle User die in unserem Fibaro Forum schon einige nützliche Scripte gepostet haben.

Ich habe bei uns in der Maisonette Wohnung ein LED Stripe hinter das Treppengeländer gebaut und möchte dieses als Treppenbeleuchtung nutzen wenn jemand die Treppe hoch oder herunter geht. Dazu habe ich ein Fibaro Motion Eye montiert und kann nun das Treppenlicht eingeschalten lassen, solange sich jemand im Aufgang befindet.

Treppenaufgang mit RGB Modul und Motion Sensor

Treppenaufgang mit RGB Modul und Motion Sensor

Licht an bei Bewegung, solange Bewegung

Zunächst legst du eine neue Szene in deinem Fibaro Home Center 2 an. Für diese wählst du LUA Code aus.

Fibaro- neue Szene LUA Code

Fibaro- neue Szene LUA Code

Kopiere das folgende Beispiel in den LUA Code:

Die im Script rot markierten Variablen musst du durch die IDs deiner Sensoren und Aktoren ersetzen. Beginnend im Bereich der %%properties. Hier musst du, sowie auch an der Stelle: "local motion = X" die ID deines Bewegungsmelders einfügen. An die Stelle "local switch = " fügst du die ID des Relai, der Schaltsteckdose oder des RGB Moduls ein, welches bei einer erkannten Bewegung eingeschalten werden soll. Die ID´s der Geräte findest du auf der Weboberfläche des Home Center, wenn du in die Einstellungen des jeweiligen Gerätes gehst.

Fibaro ID eines Gerätes auslesen

Fibaro ID eines Gerätes auslesen

Bei local Scene fügst du die ID deiner eben erstellten Szene ein. Wenn du dir unsicher bist, welche ID die Szene erhalten hat, speichere diese ab und gehe zurück in die Übersicht der Szenen. Klicke im Firefox mit der rechten Maustaste auf das Einstellungssymbol und dann auf "Element untersuchen" die ID findest du im Link.

Fibaro - ID einer Szene auslesen

Fibaro - ID einer Szene auslesen

Was macht diese Szene?

Durch die ID des Bewegungsmelders im Bereich %%properties, wird diese Szene durch den Motion Sensor (oder vergleichbaren Bewegungsmelder) ausgelöst.

Fibaro LUA Szene: Licht an bei Bewegung

Fibaro LUA Szene: Licht an bei Bewegung

Innerhalb einer Schleife startet ein Timer, im Beispiel von 900 Sekunden (15min). Wird eine Bewegung innerhalb dieser Zeit erkannt, beginnt der Timer von vorn zu zählen. Läuft der Timer ab, da keine Bewegung mehr präsent ist, so wird das Licht ausgeschalten.

Genau genommen kommen zu den 900 s noch die in Parameter 6 des dazugehörigen Bewegungssensors eingestellte Zeit (standardmässig 30 s) hinzu.

Fibaro -Parameter 6 Motion Sensor

Fibaro -Parameter 6 Motion Sensor

Licht an bei Bewegung, egal welcher Schalter

Im vorangegangenen Beispiel wurde die Szene durch den (in meinem Beispiel) Fibaro Motion gestartet. Heißt, wurde das Licht über einen Wandschalter oder die Fibaro App eingeschalten, hatte dies keinen Einfluss auf die Szene. Das Licht bleibt an, auch wenn keine Bewegung mehr präsent ist. Hier nun noch ein LUA Script, welches es erlaubt das Licht über jeden beliebigen Weg einzuschalten. Die Szene schaltet das Licht nach der definierten Zeit aus, wenn keine Bewegung mehr vorhanden ist. Super vor allem für den Flurbereich find ich.

Auch hier musst du natürlich die IDs der Geräte auf die Werte deiner Komponenten anpassen. Im Kopfbereich bei %%properties ist nun noch die ID des zu schaltenden Relais, bzw. der Steckdose, Zwischenstecker, RGB Modul oder was auch immer du schalten möchtest hinzugekommen.

[button type="link" link="http://siio.de/board/thema/blog-licht-an-solange-bewegung/" size="btn-medium"]Diskussion zu diesem Thema im Forum[/button]

Diesen Blogpost hat geschrieben ...

crissxcross

Chris, Gründer und Blogger von siio.
Gelernter IT-Systemelektroniker, seit vielen Jahren beruflich als Produktmanager im Smart Home unterwegs. Technikverliebter Familienvater, Apple Fan. Nach einigen Jahren Stadtleben wieder froh auf dem Land zu sein.

65 Kommentare

  • Hallo,

    ich habe das im HCL mittels zweier Szenen und einem Fibaro Motion Sensor realisiert:

    Szene 1: Licht an, wenn Sensor "breached/ ausgelöst"
    Szene 2: Licht aus, wenn Sensor "safe/ sicher"

    Nun geht bei mir das Licht an, wenn ich in den Raum betrete und zumindest dämmrig ist, und aus nach 3 Minuten, nach dem keine Bewegung mehr festgestellt wurde und der Sensor "safe / sicher" an HCL gemeldet hat

    Im Motion Sensor habe ich den Paramter 8 auf "active during night", Parameter auf "200 Lux" und den Parameter 6 auf "180 sec".

    • Ich habe das Zusammenspiel zwischen Fibaro Motion Sensor und dem Fibaro Relais Switch noch vereinfach, obwohl mit obigen Szenen alles wie gewollt funktioniert .

      Ich habe den Relais Switch der Assoziationsgruppe 1 des Motion Sensors hinzugefügt, Szenen gelöscht und wieder funktioniert alles wie vorher.......nur wesentlich schneller.

      • sehr gute idee eine Direktverknüpfung zu erstellen. Dann müsste das Licht (mit den Standardeinstellungen des Motion) noch 30sek. nach der zuletzt erkannten Bewegung anbleiben oder?

  • Hallo,
    Hab ein problem mit dem Timer im Script, (HC2 / Firmware 3.590)
    der Timer läuft egal was für eine Zeit ich eingebe immer eigentlich gleich schnell (kurz ab) hab jetz schon mal 500000 (müssten ja sekunden sein wenn ich richtig liege) reingeschrieben, nach ca 1 minute is er Abgelaufen (laut debugging) und das Licht wird auch ausgeschalten. Muss ich den Timer noch irgendwo Einrichten / Konfigurieren?
    oder woran könnte das liegen?

      • Hallo,
        und Danke, schau ich mir gleich mal an, den Fehler mit kurzen zeiten hab ich gefunden.
        Hab noch eine szene "Alles aus - Licht" da war versehentlich der haken mit HC2 starten angewählt.
        jetzt hab ich das entgegengesetzte problem dass das licht gar nicht mehr ausgeht.
        aber werde mir gleich mal das script auf dem link oben anschaun.

        • Danke für den Hinweis mit dem Link oben zu dem verbesserten Skript, hab es für meine Zwecke abgeändert, (Helligkeit und Nachtzeit benötige ich nicht - habe ich Entfernt).
          Funktioniert damit Perfekt und so wie ich es mir Vorstelle.
          Danke für den Tipp

  • Hallo,
    eine Frage noch, gibt es irgendwo eine Doku über die ganzen Fibaro LUA Befehle oder so was ähnliches, wäre Hilfreich.
    Hab schon danach gesucht aber leider noch nicht wirklich was gefunden.
    Danke schon mal

  • Hallo,

    Ich habe dem Fibaro-Motion Sensor bei mir zuhause und will genau diese Problematik umsetzen. Die beiden Szenen sich funktionieren, allerdings kann ich die Parameter immsensor nicht anpassen. Wenn ich auf Einstellung/erweitert gehe und dort zB die Empfindlichkeit des Lichtsensors oder die Zeit bis zur Sicherung einstellen will, dann zeigt es mir nach dem Klick auf den Speicherbutton rechts an auf welchen Wert ich den Parameter zuletzt gesetzt habe aber wirklich ändern tut sich nichts. Wenn ich das Template ausschalte steht da dann immer so was der Wert und dahinter undefined. Kann mir jemand sagen, was ich da falsch mache? Danke

  • Perfekt, danke! Genau das wars. Ist natürlich nicht sonderlich praktisch, dass man den Motion Sensor jedes Mal "ausbauen" muss, wenn man was daran verändern will, aber das kommt ja hoffentlich eher selten vor.

  • Hallo,

    was genau muss ich denn mit der ID erstezen? Nur properties? Und was bei Local motion?
    Bei mir ist die ID der Szene nur eine Zahl und nicht ein Link wie oben beschrieben... Brauche HILFE! Licht geht gar nicht mehr an...Und es wäre ein unbekanntes Zeichen in Linie 7 near "<"..

    Danke schonmal.

    • Hallo,

      folgendes ist zu ersetzen:
      Im Kopf bei Value gehört die ID des Bewegungssensors hinein, genauso bei local motion. Im Beispiel =30
      Die local Scene ist die ID der Szene und ist nur eine Zahl
      Der local switch ist die Steckdose, oder Unterputz Relai welches dann geschalten wird.

      Habe gerade gesehen das es mir im Blog total die Formatierung vom Script zerhauen hat.
      Kopier es dir bitte aus unserem Forum hier: siio- Fibaro Forum – LUA Hilfe / Befehle
      Ich korrigiere morgen mal den Blogeintrag.
      Danke für den Hinweis. Bei weiteren Fragen auch gern im Forum, dort kann man es mit Bildern und Scripten besser erklären.

  • Hallo Zusammen,

    kann ich mit meinem Motion Sensor die Rolladen steuern indem diese bei einer starken Helligkeit (z.B.: 2000Lux) die Rolläden soweit herunterfährt bis der Motion Sensor nur noch eine Helligkeit von ca. 750Lux mißt? Quasi Automatisches Abfahren von Jalousie/Rollladen nach Überschreiten eines eingestellten Helligkeitswertes um die Möbel vor direkter Sonneneinstrahlung zu schützen und/oder das Aufwärmen durch die Sonneneinstrahlung zu verhindern????

    Danke an Euch

    • Hallo,
      die Jalousie durch den Roller Shutter 2 herunter fahren mithilfe des gemessenen LUX Wertes geht auf jedenfall. Wenn du den Motion Sensor so einstellst das er sehr “Empfindlich” ist und jede Änderung sofort überträgt müsst auch deine zweite Anforderung gehen, das der Shutter stoppt sobald LUX Wert X erreicht wurde. Dies wird aber sicher auf die Batterie des Motion gehen, da er häufig Werte übertragne muss.

  • Hallo,

    ich wollte die Szene so anpassen, dass das Licht nur per Schalter eingeschatlet werden kann und dann der Rest wie im Origal funktioniert.
    Meine Änderung:
    --[[
    %% properties
    9 value
    %% globals
    --]]
    -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
    local scene = 1 -- ID dieser Szene
    local motion = 30 -- ID des Bewegungssensors
    local switch = 9 -- ID des Relay Switches
    -- Lösche doppelte Szene(n)
    if (fibaro:countScenes()>1) then
    fibaro:abort();
    end
    -- SCHALTE LICHT EIN & AUS
    if (tonumber(fibaro:getValue(switch, "value"))) < 1 then

    ...der Rest wie gehabt.

    Das Ergebnis war, dass nach dem ich manuell das Licht eingeschaltet habe, der Timer gestartet wurde und bei Bewegung auch verlängert wurde, jedoch als das Licht ausgehen sollte, ging es nur kurz aus und dann gleich wieder von allein an.

    Habe ich etwas bei meiner Änderung vergessen?

    • Also das Problem mit dem manuellen Ausschalten habe ich auch. Ich benutze hier einen Taster.
      Muss man hier ggf. etwas beachten?

      Wenn ich am Taster drücke, geht auch bei mir kurzzeitig das Licht aus und dann wieder an. Im Debugger erscheint sofort wieder die Meldung: [DEBUG] 09:30:54: Schalte Licht ein

  • Hallo zusammen
    Das Script funktioniert sehr gut, allerdings beendet es andere, laufende Scripts durch den Befehl:
    if (fibaro:countScenes()>1) then
    fibaro:abort();
    end

    Kann ich meine von HC2 automatisch gestarteten Szenen nach dem Script wieder laden lassen?

    • Hi,

      nein, das kann nicht sein. Der Befehl bezieht sich nur auf die laufende Szene und kann keine Auswirkungen auf andere Szenen haben. Hier scheint es ein anderes Problem (z.B. den Alarmmodus) zu geben.

      Gruß

  • Hallo wollte Szene anpassen mit 2 Relais ,
    Problem ist die Lampen gehen beide an aber nur eine geht nach Ablauf des timers aus !
    oder habe ich script falsch ergänzt ?

    Gruß Manuel

    --[[
    %% properties
    42 value
    %% globals
    --]]
    -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
    local scene = 100-- ID dieser Szene
    local motion = 42 -- ID des Bewegungssensors
    local switch = 94 -- ID des Relay Switches
    local switch = 96 -- ID des Relay Switches

    • Hi,

      du musst dem Skript noch weiter unten im Skript sagen, was er mit der ID machen soll. Such mal nach fibaro:call() und duplizier den Punkt.

      Und 2 Variablen müssen unterschiedlich benannt sein ;)

      Gruß

      • Danke BOOMX
        bin noch sehr unerfahren mit dem LUA Script
        habe es aber hinbeckommen :-)

        Gruß

        --[[
        %% properties
        42 value
        %% globals
        --]]
        -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
        local scene = 100-- ID dieser Szene
        local motion = 42 -- ID des Bewegungssensors
        local switch = 96 -- ID des Relay Switches
        local switch2 = 94 -- ID des Relay Switches
        -- Lösche doppelte Szene(n)
        if (fibaro:countScenes()>1) then
        fibaro:abort();
        end
        -- SCHALTE LICHT EIN & AUS
        if (tonumber(fibaro:getValue(motion, "value")) > 0 ) and (tonumber(fibaro:getValue(switch, "value"))) 0 then
        local starttimer = 120;
        local timer = (starttimer);
        fibaro:debug("Starte Timer");

        repeat
        fibaro:sleep(1000);
        -- Schalte Licht aus, wenn Schalter manuell betätigt wird und warte 10 Sekunden, um ein
        -- versehentliches (erneutes) Aktivieren der Szene zu verhindern
        if (tonumber(fibaro:getValue(switch, "value"))) 0 then
        timer=starttimer;
        fibaro:debug("Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)");
        end
        until (timer<1)
        -- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
        fibaro:call(switch, "turnOff");
        fibaro:call(switch2, "turnOff");
        fibaro:debug("Timer abgelaufen/Schalte Licht aus");
        fibaro:killScenes(scene);
        end

  • Hi
    Habe jetzt zum ersten mal mit LUA gearbeitet und hab das mal von oben kopiert und eigetragen,funktioniert einwandfrei.
    Wo finde ich die ID von meinem Handy was ich im HC2 angegeben hab??
    wollte es mal mit einer push nachricht probieren und gucken ob es funkt das,wenn das Licht an ist ich eine Nachricht bekomme =)

  • Hallo zusammen,

    Vielen dank für das tolle Script. Ich habe mir erst neu ein Fibaro HC bestellt und bin noch ein wenig unerfahren. Ich habe mir anstatt dem Fibaro Motion Sensor den Multisensor Aeon Labs ZW100 geholt. Dieser funktioniert seit dem letzten Update 4.070 ohne Probleme. Vorher hatte ich Probleme mit der Bewegungserkennung im Batterienbetrieb. Jetzt würde ich gerne das Script auf den ZW100 anwenden. Leider funktioniert das nicht richtig da ich beim ZW100 Motion Sensor den Parameter 6 nicht habe. Der Parameter 3 scheint aber die ähnliche Funktion zu sein http://www.benext.eu/static/manual/aeotec/multisensor-6-ZW100-C.pdf auf Blatt 7. Ist es möglich im Script die Variable für Parameter 3 vom ZW100 zu verwenden und was müsste man ändern? Vielen Dank für eure Hilfe. Gruss Bucco

  • Hallo,
    ich habe noch etwas verständniss Prbbleme mit dem Script Beispiel 1:
    Das Licht wird über einen Schalter eingeschaltet und geht aus wenn der Schalter wieder betätigt wird oder das Script angetriggert wird, ich wollte das Script so abändern das: wenn der Schalter betätigt wird es auch nur durch den Schalter wieder ausgeschaltet werden kann d.h. es soll erkannt werden ob das Licht vor der Bewegung schon an war.
    Mein Problem: Wollte es mit einer if Schleife lösen habe aber das Problem wenn das Script durch den Bewegungsmelder getriggert wird funktioniert es nicht mehr.
    Gruß

  • Hallo, danke für diesen guten Beitrag. Ich habe nur ein kleines Problem... ich habe einen zweiten "Bewegungsmelder" wie bzw. an welcher Stelle in diesem Script binde ich diesen mit ein?
    Vielen Dank schon einmal für einen "Anfänger" :-)

      • Hallo, danke für deinen Link. Aber da verstehe ich zur Zeit noch "Bahnhof"...

        Ich bin leider "noch" zu unerfahren mit LUA und habe schon einmal etwas experimentiert aber leider ohne Erfolg. Mein zweiten Bewegungsmelder habe ich eingetragen ... "motion2" siehe unten:

        --[[
        %% properties
        68 value
        62 value
        105 value
        %% globals
        --]]
        -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
        local scene = 12 -- ID dieser Szene
        local motion = 68 -- ID des Bewegungssensors
        local motion2 = 105 -- ID des Bewegungssensors
        local switch = 62 -- ID des Relay Switches

        ........

        -- SCHALTE LICHT EIN & AUS
        if (tonumber(fibaro:getValue(motion, "value")) > 0 ) and (tonumber(fibaro:getValue(switch, "value"))) 0 ) and (tonumber(fibaro:getValue(switch, "value"))) < 1 then
        fibaro:call(switch, "turnOn");
        fibaro:debug("Schalte Licht ein");
        end

        • Hi,

          so wird es eher schwer. In dem von mir gerosteten Skript musst du nur in dem Array & in dem Header die beiden Bewegungsmelder eintragen. Ist eigentlich in dem Artikel alles erklärt, in deinem Skript müsstest du zu viele Änderungen vornehmen.

          Gruß

          • Danke :-) Habe es hinbekommen... beide Bewegungsmelder schalten das Licht ein etc... Aber ein kleines Problem habe ich noch. Trotz einer Bewegung im Raum schalten die Sensoren den Schalter nach der angegeben Zeit aus. Woran kann dies liegen, habe ich noch etwas vergessen? Vielen Dank schon einmal

  • Hallo,

    danke für den Artikel und vor allem natürlich für das Script. Leider habe ich damit ein Problem. Wenn das Script startet, bekomme ich im Debugger folgende Meldung (und das hört leider nicht mehr auf ...):

    [DEBUG] 16:33:09: Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)
    [DEBUG] 16:33:10: Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)

    Der Parameter 6 steht auf dem Standardwert 30 und ich weiß wirklich nicht, was da jetzt falsch läuft.

    HELP!

    Grüße
    Marco

    • Hi,

      da musst Du in die If-Abfrage nur per UND eine weitere Bedingung aufnehmen, zB:
      tonumber(fibaro:getValue(ID, "value")) >= 10)

      (oder auf Close prüfen)

      VG Hoggle

  • Hallo,
    ich bin leider „noch“ zu unerfahren mit LUA und habe schon einmal etwas experimentiert aber leider ohne Erfolg.
    Habe richtig kopiert aber habe folgende Fehler
    [DEBUG] 16:03:54: line 15: attempt to compare number with nil
    Linie 15 in mein FIBARO LUA: if (tonumber(fibaro:getValue(motion, "value")) > 0 ) and (tonumber(fibaro:getValue(switch, "value"))) < 1 then
    FIBARO HCL2 4.091 beta
    Kann mir jemand helfen?

    Danke

    • Hi,

      bau Dir mal vor der Zeile 15 eine Debug-Zeile ein, in der Du die Werte von "motion" und "Switch" ausgeben lässt
      a la
      fibaro:debug(fibaro:getValue(motion, „value“))
      fibaro:debug(fibaro:getValue(switch, „value“))

      VG Hoggle

  • Hi,
    ich hatte dieses Script nun schon seit einiger Zeit erfolgreich am laufen. Seit dem Update auf 4.100 schaltet sich das Licht jedoch plötzlich ständig von alleine ein, ohne dass jemand den Bewegungsmelder auslöst! Die Szene startet sich die ganze Zeit irgendwie selber (kein Witz!). Außer dem Update habe ich nichts verändert. Kann jemand bitte helfen?
    Danke im Voraus.
    VG
    Ernst

  • Hi,
    erstmal danke an criss für das Skript, funktioniert super mit meinem Fibaro Unterputz Schalter.
    Wollte das Skript kopieren und mit einer hue Lampe nutzen. Also die IDs geändert und nun sagt er mir immer:" [DEBUG] 13:54:03: line 20: attempt to compare number with nil"
    Hat Jemand eine Idee?
    Besten Dank MfG

  • Super Sache aber ich habe eine Rückfrage, laufen tut es aber mich stört, dass die zuletzt verwendete Farbe verwendet wird.
    Wie baue ich dort eine RGB Steuerung mit ein die die Farbe auswählt die ich vorgebe und nicht das knallgrün von vorher nimmt?

    Besten Dank
    Simon

  • Hi

    Ich suche eine Lösung für folgendes Problem:

    Habe Fibaro HC2, einen Türsensor zur Veranda, einen Licht-Switch auf der Veranda und einen Aeotec Multisensor, welcher als Bewegungssensor dient.

    Wenn das Licht an ist (in der Nacht), die Verandatür geschlossen ist und dann der Bewegungssensor "breached" ist, dann habe ich eine kleine Lichtshow (Licht an und ab) laufen, welche ihren Dienst sehr gut erledigt, um den Fuchs zu vertreiben, welcher uns sonst (wie schon so oft getan) die Verandasitze vollpinkelt.

    Folgender LUA-Skript ist hierfür installiert und ist funktionsfähig:

    -------------------------------------------------------------------
    --[[
    %% properties
    80 value
    105 value
    93 value
    %% weather
    %% events
    %% globals
    --]]

    local startSource = fibaro:getSourceTrigger();
    if (
    -- Wenn Türe (80) zu, wenn Licht (105) an, wenn Multisensor (93) breached, dann:
    ( tonumber(fibaro:getValue(80, "value")) == 0 and tonumber(fibaro:getValue(105, "value")) > 0 and tonumber(fibaro:getValue(93, "value")) > 0 )
    or
    startSource["type"] == "other"
    )
    then
    fibaro:call(105, "turnOff");
    setTimeout(function()
    fibaro:call(105, "turnOn");
    end, 500)
    setTimeout(function()
    fibaro:call(105, "turnOff");
    end, 3000)
    setTimeout(function()
    fibaro:call(105, "turnOn");
    end, 4500)
    end
    -----------------------------------------------------

    Das Problem ist, dass wenn jemand der Familie bei Dunkelheit mal auf die Veranda geht, dann wieder reinkommt und die Verandatür schliesst, dass dann die Lichtshow losgeht, da der Multisensor noch während circa 50 Sekunden "breached" ist.

    Gibt es dafür eine Lösung? Mir schwebt vor, dass ich eine 4. Bedingung in das LUA-Skript einbauen sollte (nebst den 3 bestehenden Bedingungen; (1) Tür zu, (2) Licht an, (3) Bewegung auf Veranda), nämlich (4) Tür während mindestens 90 Sekunden geschlossen.

    Wie schreibt sich diese 4. Bedingung aber auf LUA-Sprache?

    Andere (bessere) Lösungen?

    Liebe Grüsse

    • Hi,

      erstmal sind die Trigger der Szene schonmal falsch gesetzt. Die Szene soll ja nicht ausgeführt werden, wenn sich das Status des Lichtes ändert. Hier musst du schonmal tätig werden. Für deine Bedingung würd sich eine while-Schleife anbieten, die hochgezählt wird.

      Gruß

    • --[[
      %% properties
      259 value
      130 value
      %% globals
      --]]
      -- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
      local scene = 80 -- ID dieser Szene
      local motion = 259 -- ID des Bewegungssensors
      local switch = 130 -- ID des Relay Switches
      -- Lösche doppelte Szene(n)
      if (fibaro:countScenes()>1) then
      fibaro:abort();
      end
      -- SCHALTE LICHT EIN & AUS
      if (tonumber(fibaro:getValue(motion, "value")) > 0 ) and (tonumber(fibaro:getValue(switch, "value"))) 0 then
      local starttimer = 300;
      local timer = (starttimer);
      fibaro:debug("Starte Timer");

      repeat
      fibaro:sleep(1000);
      -- Schalte Licht aus, wenn Schalter manuell betätigt wird und warte 10 Sekunden, um ein
      -- versehentliches (erneutes) Aktivieren der Szene zu verhindern
      if (tonumber(fibaro:getValue(switch, "value"))) 0 then
      timer=starttimer;
      fibaro:debug("Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)");
      end
      until (timer<1)
      -- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
      fibaro:call(switch, "turnOff");
      fibaro:debug("Timer abgelaufen/Schalte Licht aus");
      fibaro:killScenes(scene);
      end

  • Ich bekomme das Script nicht zum Laufen. Ich bin der totale Anfänger.
    Ich habe die IDs ersetzt, soweit klar. Überall wo Motion steht, habe ich die ID von meinem Sensor eingetragen, sowie das vom Switch. Ohne das erstzen hat es nämlich auch nicht funktioniert. Benötige ich Variablen?
    Ich hab sowas von keinen Plan

    Danke euch

  • Hallo zusammen,

    mal eine kurze Frage:
    Wenn ich anstelle eines Schalters einen dimmer habe, reicht es wenn ich in Zeile 17 "turnOn" gegen setValue="30" tausche, um bei bewegung nur 30% vom Licht einzuschalten?

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner