57
Review

Fibaro Szene: Licht an solange Bewegung

by 1. September 2014
Rating
Bewertung des Autor
Bewertung der Leser
Rate Here
Installation
Funktionsumfang
Bedienung
Bewertung des Autor
Bewertung der Leser
1 rating
You have rated this

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.

Diskussion zu diesem Thema im Forum
About The Author
crissxcross
crissxcross
Hi, ich bin crissxcross, gelernter IT-Systemelektroniker. Beruflich arbeite ich als Produktmarketing-Manager im Bereich Smart Home. Auch privat interessiere ich mich für Smart Home und bin selbst Hausautomatisierer :-) Falls ich nicht vor dem Monitor sitze fotografiere ich gern und bin ein großer Apple Fan.
57 Comments
  • Tilo
    31. Oktober 2014 at 18:21

    Super Anleitung nur wie bekomme ich das auch mit dem HCL hin ?

  • Christoph
    3. November 2014 at 22:15

    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“.

    • crissxcross
      3. November 2014 at 22:24

      ahhh! sehr gute Idee. Vielen Dank für die Lösung! Gibt auch einen offenen Thread im Forum von tilo hier.
      Vielen Dank für deine Antwort, dies löst das Problem mit der HCL.

    • Nogger24
      9. Januar 2015 at 22:36

      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.

      • crissxcross
        10. Januar 2015 at 0:25

        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?

  • Ninia
    30. November 2014 at 5:16

    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?

    • crissxcross
      30. November 2014 at 19:33

      hey,
      schau mal bei uns im Forum (link) dort hat Daniel das Script etwas ausgebaut. Kopiere dieses mal 1:1 und passe deine Variablen entsprechend an. Vielleicht funktioniert es damit besser? Freu mich über dein Feedback!

      • Ninia
        1. Dezember 2014 at 5:53

        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.

        • Ninia
          1. Dezember 2014 at 8:39

          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

  • Ninia
    2. Dezember 2014 at 6:10

    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

  • Jasey
    13. Dezember 2014 at 15:53

    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

  • Jasey
    14. Dezember 2014 at 18:49

    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.

    • Ranegade
      12. Januar 2016 at 17:25

      bei mir hab ich parameter 6 auf 5 sec gestellt und bin auf speichern gegangen,er hat mir oben denn angezeigt,Parameter 6 = 5sec

  • Ivo
    15. Dezember 2014 at 17:32

    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.

    • crissxcross
      16. Dezember 2014 at 0:45

      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.

  • 9. Januar 2015 at 14:12

    Kann man auch die Lux(Helligkeit)des Motion Sensors für das Licht einschalten berücksichtigen?

  • Kati
    22. Februar 2015 at 17:14

    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

    • crissxcross
      22. Februar 2015 at 20:55

      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.

  • PeterLe
    10. Dezember 2015 at 19:21

    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?

    • Friedi1970
      23. August 2016 at 9:38

      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

  • thierry
    11. Dezember 2015 at 8:37

    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?

    • boomx
      11. Dezember 2015 at 9:32

      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ß

  • quattroman20v
    23. Dezember 2015 at 18:57

    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

    • boomx
      23. Dezember 2015 at 20:22

      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ß

      • quattroman20v
        24. Dezember 2015 at 9:31

        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

  • Ranegade
    12. Januar 2016 at 19:46

    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 =)

  • Bucco
    26. Januar 2016 at 12:56

    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

  • 21. Februar 2016 at 16:06

    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ß

  • marcbroe
    25. März 2016 at 20:20

    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“ :-)

    • boomx
      25. März 2016 at 20:26

      Hi,

      schau dir doch mal das folgende Skript an. Dort kannst du 2 oder auch mehrere MotionSensoren einbinden :)

      http://www.siio.de/connected-home/kleine-lua-scripte-teil-5-bewegung-im-raum-erkennen/

      Gruß

      • marcbroe
        28. März 2016 at 19:44

        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

        • boomx
          28. März 2016 at 23:46

          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ß

          • marcbroe
            29. März 2016 at 20:56

            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

  • 13. August 2016 at 16:40

    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

    • Friedi1970
      23. August 2016 at 9:40

      Das Problem hat sich bei mir erledigt. Ich vergaß, einen Wert bei den Properties vergessen :-/

  • Joé Hermes
    20. August 2016 at 12:36

    Hy
    Also das Skript ist schon super.
    Wie würde man noch einbauen wenn man noch als Bedingung das zb 1 Rollade zu ist?
    Danke

    Joe

    • Hoggle
      Hoggle
      21. August 2016 at 21:34

      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

  • Giulio Ruggeri
    4. September 2016 at 16:25

    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

    • Hoggle
      Hoggle
      5. September 2016 at 20:34

      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

  • Ernst
    4. Oktober 2016 at 20:40

    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

  • Marv
    25. Februar 2017 at 13:57

    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

  • Simon
    3. April 2017 at 21:28

    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

  • Melissa
    10. April 2017 at 14:06

    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

    • boomx
      11. April 2017 at 0:35

      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ß

Leave a Response

Installation
Funktionsumfang
Bedienung