Die perfekte Lichtsteuerung mit Fibaro LUA – Update 1

Christian Hillebrand
Lichtsteuerung
Geschrieben von crissxcross

Vor kurzem hatte ich dir hier ein Script für die perfekte Lichtsteuerung mit Fibaro vorgestellt. controlliving.nl hat das Script noch weiter entwickelt. So intelligent ist die Lichtsteuerung nun geworden:

Neben der Bewegung und der Helligkeit im Raum, welche das Script auch von mehreren Sensoren auswerten kann, wird für die Lichtsteuerung auch die Tageszeit, Anwesenheit und der Zustand vom Haus (schlafend oder wach) berücksichtigt. Bereits in der letzten Version des Scripts (welches ich hier vorgestellt hatte) war es möglich im Abschnitt: ExtraXXXFunc des Scripts, individuell nach Tageszeit eigenen Quellcode zu implementieren. Diese Funktion wird immer bei Bewegung ausgelöst.

Somit kannst du Beispielsweise in der extraEveningFunc (also am Abend) einfügen, dass wenn der Fernseher eingeschaltet ist und Bewegung erkannt wird, die Rollos herunterfahren und die Stehleuchte mit den bunten ZipaBulbs auf ein harmonisches rot/gelb Licht gehen und sich auf 30% dimmen. Oder du schaltest zusätzliche Geräte an und so weiter.

In der neuen Version kannst du nun auch in Abhängigkeiten bestimmen, ob das Licht ein- oder ausgeschaltet werden soll.

Praktische Funktion für den TV Abend

Das Script hat eine sogenannte "OnTime" Funktion. Diese gibt an, wieviel Sekunden das Licht noch anbleiben soll, nachdem keine Bewegung mehr erkannt wurde. Das ist toll in Nutzräumen wie Flur, Küche, Bad usw. Im Wohnzimmer hingegen kann dies manchmal ziemlich lästig sein. Da liegt man entspannt auf der Couch, bewegt sich selten bis gar nicht und da passiert es: Das Licht schaltet aus.

In der neuen Version des Lichtsteueurngs-Script hat controlliving die sogenannte: extraOffChecks Funktion eingebaut. In dieser kannst du eigenen Quellcode hinterlegen, welcher zum Beispiel prüft ob der Fernseher noch an ist. In diesem Fall, schaltet das Script das Licht nicht aus, auch wenn keine Bewegung mehr erkannt wurde und die OnTime abgelaufen ist. Diese Funktion findest du ab der Zeile 107.

Hier ein Beispiel

Hierbei wird der aktuelle Energiebedarf der Steckdose (im Beispiel ID 131) in die lokale Variable "Verbrauch" geschrieben. Danach wird geprüft ob dieser größer als 40 ist. (Den Wert kannst du natürlich anpassen) Ist dies der Fall, bekommt die Funktion ein "return true" zurück. Erst wenn der Verbrauch unter die 40 Watt fällt, läuft das Script weiter und wird dann das Licht (sofern keine Bewegung mehr erkannt wurde) abschalten.

Übrigens auch praktisch im Büro / Arbeitszimmer, wenn man mal wieder länger vor dem PC sitzt ;-)

Das Licht nicht einschalten

In der folgenden Funktion, welche sich da "extraLightTriggerChecks" nennt, passiert genau das Gegenteil. Hier kannst du eigenen Code einfügen welcher verhindert, dass die Lichter eingeschaltet werden. Wann braucht man so etwas? Das kann sein, das du vielleicht die Stehlampe im Wohnzimmer eingeschaltet hast und nicht möchtest das dass Deckenlicht zugeschaltet wird bei Bewegung. Oder du möchtest einen DVD Streaming Abend starten und zuviel Licht verdirbt dir die Atmosphäre.

Ich habe an diese Stelle ein paar Zeilen Code gebaut, welcher prüft ob Wasser / Feueralarm ausgelöst wurde. Warum? Im Fall von Wasser bzw. Feuer, setze ich die Lampen in der gesamten Wohnung auf blau bzw. rot und lasse diese blinken. Würde das Lichtsteuerungsscript während dessen durch Bewegung getriggert, also ausgelöst, dann überschreibt dieses die Farbe und den Dimmwert der Lampen durch die, der jeweiligen Tageszeit.

Mein Code ab Zeile 97 sieht wie folgt aus:

Sobald der Wasser- oder Rauchmelder anschlägt, wird die Globale Variable "Alarm" auf "erkannt" gesetzt. Dies geschieht in einer anderen Szene, welche auch die Lampen einschaltet und blinken lässt solange der Alarm besteht. (Das Script gibts hier im Forum). In diesem Fall schaltet das Script der intelligenten Lichtsteuerung die Lampen nicht ein und überschreibt somit nicht die Farbeinstellungen der Lampen, die aufgrund des Alarms blinken.

Die intelligente Lichtsteuerung in der Version 1.6.7 kannst du dir hier herunterladen.

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.

64 Kommentare

  • Hallo Chris,

    ich habe leider ein Problem mit deinem Skript. Ich bekomme das Licht leider nicht zum leuchten und mir ist nicht bekannt was ich falsch mache. Kannst Du mir bitte helfen? Ich habe die ID´s wie folgt angepasst:
    --[[
    %% properties
    76 value -- ID des Bewegungssensors
    78 value -- ID des LUX Sensors
    %% globals
    TimeOfDay
    PresentState
    --]]
    motionSensorID = {76}; -- change id for your motion sensor.
    LuxSensorID = {78}; -- change id for your light sensor.

    Zeile 48-52 sieht bei mir so aus, den rest des Skripts habe ich original gelassen!

    lightsSleeping = {}; --lights that are triggered when Sleepstate is sleeping.
    lightsMorning = {id=10, setValue="99", onTime=300};
    lightsDay = {id=10, setValue="80", onTime=90};
    lightsEvening = {id=10, setValue="60", onTime=300};
    lightsNight = {id=10, setValue="45", onTime=60};

    Weiterhin habe ich für das setzen der Zeitvariablen dein Skript "https://www.siio.de/connected-home/lichtsteuerung-teil-2-fibaro-tageszeiten-variable-via-lua-setzen/#reply-form" genommen.

    Wenn ich das Skript manuell ausführe erhalte ich folgende Meldung:
    Home status: Home
    Motion status: movement
    trigger by; other, Not checking the motion state.
    Sensor lux: 2 is lower then minValue:40
    No lights set for Evening
    Smart light V1.6.7 ....

    Wie gesagt komme ich nicht weiter, ich finde den Fehler leider nicht.
    Vielen Dank für die Hilfe vorab.

    LG Daniel

    • Hi,

      hast du das so

      %% properties
      76 value — ID des Bewegungssensors
      78 value — ID des LUX Sensors
      %% globals
      TimeOfDay
      PresentState

      im Header stehen? Wenn ja, kann es so nicht funktionieren. Entferne bitte — ID des Bewegungssensors und — ID des LUX Sensors.

      Gruß

  • Hallo liebes Forum,

    Daniel hat Anfang der Woche ein Update zum Zipato RFID vorgestellt, vielen Dank erst einmal dafür, das funktioniert ohne Probleme. Bei dem Update wurde die Abwesenheitsvariable umgestellt auf "home" und "away". Die Lichtsteuerung schaltet sofern die variable auf „away“ gesetzt wird das Licht aus und lässt auch kein erneutes Einschalten über den Bewegungssensor zu. Das ist im Grunde auch genau das was ich möchte aber ist es möglich, ein Sensor von der Prüfung auszuschließen?
    Ich habe eine Bewegungssensor in der Diele welches mein Licht für 3min an lässt. Sobald ich jetzt meine Alarmanlage über den RFID aktiviere, geht das Licht aus und wir stehen früh morgens im Dunkeln.

    Besten Dank
    Daniel

  • Ich habe mehrere Bewegungsmelder in einem Raum. Wie kann ich mehrere Melder hinzufügen? Wenn ich sie - wie beim Luxsensor - mit "," trenne, wird offenbar ein Durchschnittswert gerechnet. Jedenfalls läuft es so nicht. Was muss ich tun?

  • Hallo zusammen, besten DANKE für Eure Arbeit hier!!!!

    Es läuft soweit glatt bei mir wo ein Dimmer im Einsatz ist hab ich die Zeile wie folgt geändert:
    lightsSleeping = {}; --lights that are triggered when Sleepstate is sleeping.
    lightsMorning = {{id=294, setValue="99", onTime=300}};
    lightsDay = {{id=294, setValue="80", onTime=90}};
    lightsEvening = {{id=294, setValue="60", onTime=300}};
    lightsNight = {{id=294, setValue="45", onTime=30}};
    da geht alles perfekt.

    Bei einer Fibaro Steckdose war es mit
    lightsMorning = {{id=294, setValue="turnOn", onTime=300}};
    nicht schaltbar, hab ich da was falsch verstanden??

    Ich habe die Zeile so geändert:
    lightsMorning = {{fibaro:call(163, "turnOn"), onTime=300}};
    bekomme aber folgende Meldung im Debug
    [DEBUG] 06:37:58: line 525: Assertion failed: Expected number

    Habt Ihr noch nen Tip für mich was da evtl. falsch läuft.

    Grüße
    Poldy

    • Hi,

      wenn du nur ein Gerät schalten willst, dann brauchst du nicht 2 geschweifte Klammern. Versuch es mal so:

      {id=294, setValue=“turnOn“, onTime=300}

      Gruß

      • Hallo boomx,

        DANKE aber das hilft nix, ich bekomme die Fibaro Zwischensteckdose einfach nicht zum schalten....
        Der Dimmer geht ohne Probleme auf die passende Einstellung der Helligkeit zu dimmen die Steckdose tut so als sei sie nicht anwesend.

  • es scheint aber an der Steckdose zu liegen, bei einem Fibaro Relais geht es auch zu schalten.

    Die Steckdose ist auf "Licht" schalten eingerichtet, wo kann der Fehler sein??

    Grüße
    Poldy

      • Hallo Boomx,

        da wäre Dir die Gemeinde sicher sehr dankbar wenn Du das mal anschauen
        kannst wie die Zwischenstecker zu schalten wären.
        Denn ein schöner LED Deckenfluter kann ja auch zur Beleuchtung genutzt
        werden und es wäre schon ne Erleichterung wenn das per Zwischenstecker
        geht und nicht ein Relais in die Wandsteckdose eingesetzt werden muss.

        Grüße
        Poldy

          • so hab ich es eingestellt
            lightsSleeping = {}; --lights that are triggered when Sleepstate is sleeping.
            lightsMorning = {id=163, setValue="turnOn", onTime=360};
            lightsDay = {id=163, setValue="turnOn", onTime=90};
            lightsEvening = {id=163, setValue="turnOn", onTime=300};
            lightsNight = {id=163, setValue="turnOn", onTime=60};

            und im debug kommt keine fehlermeldung

          • Hi Boomx, Poldy,
            hatte sich mittlerweile eigentlich etwas bezüglich der Implementierung von Wallplugs ergeben? Habe exakt das gleiche Problem:
            [DEBUG] 21:30:48: line 593: Assertion failed: Expected number

            Ich habe auch schon unter "BinaryDeviceType = { "com.fibaro.binarySwitch","com.fibaro.FGWP102", "turnOn" }" den Device Type (com.fibaro.FGWP102) angepasst. Das bringt aber keinen Erfolg und der Wallplug bleibt aus und stoppt die Szene in line 593.
            Setting für den Wallplug (ID40) ist wie z.B. folgt:
            lightsMorning = {{id=197, setValue={R="255",G="0",B="200",W="255"}, onTime=300},{id=40, setValue="turnOn", onTime=180},{}};
            ID 197 ist dabei ein RGBW Controller der allein problemlos funzt.

            Vielen Dank schon mal
            Alex

  • Hallo boomx,
    ja sicher wird debugt, ich kann den Screenshot jedoch nicht einfügen, es steht da

    [DEBUG] 06:25:30 Home status: Home
    [DEBUG] 06:25:30 Motion status: movement
    [DEBUG] 06:25:30 Triggered by: 158 Motion sensor
    [DEBUG] 06:25:30 Sensor lux: 99 is lower then minValue: 150
    [DEBUG] 06:25:30 No lights set for Morning

    hier noch die Programmierung der Scene (und mit dem Dimmer oder
    einem Relais funktioniert es so)
    --[[
    %% properties
    158 value
    160 value
    %% globals
    TimeOfDay
    PresentState
    --]]

    --[[ Change - XXX value - above. One for motion sensor, one for Light sensor.
    TimeOfDay global variable and lux make sure that the scene
    will be triggered when you are already in the room and something changes.

    Set your settings below, lights and add extra functions
    This code is developed by Control Living. You can use this free of charge.
    Feel free to suggest changes or contact when having problems.
    Version 1.6.4
    --]]

    --------------------------------------------------------------------
    -----------------------YOUR LIGHT SETTINGS--------------------------

    motionSensorID = {158}; -- change id for your motion sensor.
    LuxSensorID = {160}; -- change id for your light sensor.

    --Enter the name of your Global variable. WITHOUT IT, THE SCENE DOES NOT WORK. Capital sensitive!
    sleepState = "SleepState"; --Sleep globalstate variable.
    timeOfDay = "TimeOfDay"; --Time of Day Global variable.
    presentState = "PresentState"; --Present state Global variable.

    --Enter the values of your global variables stated above. If not using, copy the name in front of the "YourValueName"
    sleepStateMapping = {Sleeping="Sleeping", Awake="Awake"};
    timeOfDayMapping = {Morning="Morning", Day="Day", Evening="Evening", Night="Night"};
    presentStateMapping = {Home="Home", Away="Away", Holiday="Holiday"};

    -- Set the lux value for which the lights have to be turned on.
    -- If you don't want to use the MinLux then just set it to: 65535
    minLuxMorning = 150;
    minLuxDay = 300;
    minLuxEvening = 150;
    minLuxNight = 150;

    --[[
    Now the most important part:
    Here you can enter what light, for how long and at what value has to be turned on.
    Leave empty brackets for no lights.
    To set the light value without timer use 2 parameters: {LightID, "VALUE"}
    To set the light value with timer use 3 parameters: {LightID, "VALUE", timeInSeconds }
    To set the light value with the
    automatic lights virtual device. use 4 parameters: {LightID, "VALUE", "timeInSeconds", VirtualDeviceSliderID} --]]

    lightsSleeping = {}; --lights that are triggered when Sleepstate is sleeping.
    lightsMorning = {id=163, setValue="turnOn", onTime=360};
    lightsDay = {id=163, setValue="turnOn", onTime=90};
    lightsEvening = {id=163, setValue="turnOn", onTime=300};
    lightsNight = {id=163, setValue="turnOn", onTime=60};
    --setValue={R="255",G="255",B="255",W="255"}
    --Manual Override, the time that lights will not be turned ON again after manually turning them off.
    OverrideFor = 90;
    dimmDownTime = 10;

  • Hi,

    habe eben das Script in Betrieb genommen, bin gespannt wie ein smart Home Tag beleuchtungstechnisch daherkommen wird. Script find ich super und übersichtlich kommentiert.
    Eine Frage habe ich noch dazu, wie/wo werden die globalen Variablen angepasst d.h. wo kann ich einstellen wann für mich die Nacht, Morgen, Tag etc. beginnt?

    Merci und Gruss

    Reto

  • Hallo,
    habe erst seit 3 Wochen ein HC2 und einen Qubino Dimmer, der bisher immer Schwierigkeiten gemacht hat mit anderen LUA Skripten (Licht dimmt selbstständig und unkontrolliert rauf und runter; macht einen Wahnsinnig). Ich dachte schon, das der Dimmer nicht richtig konfiguriert ist. Aber mit diesem Skript funktioniert alles perfekt.
    Vielen Dank für das tolle Skript und die Hilfestellungen die Ihr gebt.

    Gruß

  • Hallo zusammen,

    bei mir funktioniert minLux in dem Script nicht...
    ich finde auch keine stelle wo minLuxDay oder minLuxMorning zu minLux zugewiesen wir...
    Nur die Abfrage, die dann
    [DEBUG] 21:39:43: Sensor lux: 11 is lower then minValue: 65535
    ausgibt.

    Noch etwas anderes, der Aeon 6in1 Multi sagt es sind um 21 Uhr (2 Fenster) 5Lux FibaroMotion sagt daneben 14Lux...
    Ist das normal oder sollte ich die Einstellungen verändern ?

    Danke und Gruß
    Hotte

  • Hallo zusammen,

    ich habe das Problem das bei diesem Skript mein Wallplug zwar geht, aber der Dimmer2 nicht. Kann es sein das dieser nicht unterstütz wird? eine normale blockscene funktioniert mit dem dimmer2 aber diese luascene will ihn nicht steuern.
    ID 12 = Wallplug, ID 22 = Dimmer2

    lightsSleeping = {}; --lights that are triggered when Sleepstate is sleeping.
    lightsMorning = {{id=12, setValue="turnOn", onTime=300},{id=22, setValue="100", onTime=300}};
    lightsDay = {{id=12, setValue="turnOn", onTime=90},{id=22, setValue="100", onTime=90}};
    lightsEvening = {{id=12, setValue="turnOn", onTime=300},{id=22, setValue="100", onTime=300}};
    lightsNight = {{id=12, setValue="turnOn", onTime=60},{id=22, setValue="100", onTime=60}};

    [DEBUG] 19:09:58: Home status: Home
    [DEBUG] 19:09:58: Motion status: No movement
    [DEBUG] 19:09:58: Triggered by: other , Not checking the motion state.
    [DEBUG] 19:09:58: Sensor lux: 3 is lower then minValue: 60
    [DEBUG] 19:09:58: Turn: [12]'11.0' On
    [DEBUG] 19:09:58: Lights turned: on for Day
    [DEBUG] 19:11:28: Switch off light: [12]'11.0'
    [DEBUG] 19:11:28: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 19:11:28: -------------------------------------------------------

    Danke

    Tramix

    • also ich habe jetzt den Dimmer neu konfigurieren lassen und den Wallplug raus genommen, dabei ist mir schon mal aufgefallen das es trotz allem mit doppelt geschweifter klammer schreiben muss
      lightsMorning = {{id=25, setValue=“98″, onTime=300}};
      sonst bekomme ich die Debug Meldung das kein Licht gesetzt wurde.

      und so bekomme ich diese Meldung

      [DEBUG] 18:52:14: Home status: Home
      [DEBUG] 18:52:14: Motion status: movement
      [DEBUG] 18:52:14: Triggered by: 7 Motion sensor
      [DEBUG] 18:52:14: Sensor lux: 19 is lower then minValue: 60
      [DEBUG] 18:52:14: Lights turned: on for Day
      [DEBUG] 18:54:13: © Smart Lights V1.6.7 | by Control Living, Finished
      [DEBUG] 18:54:13: -------------------------------------------------------

      man sieht ja das das Licht nicht angeht...

      Wenn ich allerdings den Lichtschalter manuel betätige bekomme ich diese Meldung...

      [DEBUG] 18:56:54: Home status: Home
      [DEBUG] 18:56:54: Motion status: movement
      [DEBUG] 18:56:54: Triggered by: 7 Motion sensor
      [DEBUG] 18:56:54: Sensor lux: 13 is lower then minValue: 60
      [DEBUG] 18:56:54: Lights turned: on for Day
      [DEBUG] 19:00:17: Switch off light: [25]'13.1'

      und siehe da, Licht geht aus.

      Woran kann es liegen, kann mir den keiner helfen?

      Gruß

      Tramix

      • Hallo,
        ändert muss diese Zeile von
        DimmerDeviceType = { "com.fibaro.multilevelSwitch" }
        zu
        DimmerDeviceType = { "com.fibaro.multilevelSwitch", "com.fibaro.FGD212" }

        und dann das geht.

        Grüsse

        • Hallo,
          Dankeeee ich habe Licht :)
          THX für den Tipp. Erst als ich die " Anführungszeichen im Editor direkt übertippt habe, hat es funktioniert. Vorher gab es Fehlermeldungen. Die Anführungszeichen müssen scheinbar oben stehen.

          DimmerDeviceType = { "com.fibaro.multilevelSwitch", "com.fibaro.FGD212" }

          Grüße

  • Hi, wie verwendet ihr diese Szene für verschiedene Räume oder Bereiche?
    Mehrere dieser Szenen für die unterschiedlichen Räume oder schaltet ihr immer das Licht im ganzen Haus ein?

      • Moin moin,
        kann es sein, dass es zu Überschneidungen kommt, wenn ich ein Licht in mehreren Szenen verwende?
        Ich bekomme für einen LED-Streifen der zwischen Wohn- und Esszimmer hängt im Debug eine Reihe von "Schalte LED aus"-Meldungen.
        (so 10-20 mal hintereinander – aber aus is`er dann auch wirklich)

  • He,
    hat noch einer das problem, dass ab und zu ein Licht nicht ausgeht? In unregelmäßigen abständen bleibt das Licht einfach an. Muss es dann manuell ausschalten und komm einfach nicht hinter woran das liegen könnte.
    Jemand ne Idee?

    Gruß

  • Guten Tag!
    Habe das Script jetzt 2x programmiert, einmal im Wohnzimmer und einmal im Flur.
    Alles scheint so weit zu funktionieren ABER sobald Bewegung im Flur erkannt wird geht für ca 10 sec die Lampe im Wohnzimmer an. Habe alle ID`s 10 mal nachgeguckt und bin mir sicher dass die korrekt sind. komme einfach nicht weiter. Hat sonst noch jemand eine Idee`?

    Mfg Lukas

    • Hi,

      check mal die Trigger deiner Szenen. Nehme an, dass hier die IDs doppelt aufgeführt sind. Szenen können sich normalerweise nicht untereinander beeinflussen.

      Gruß

      • Habe das Problem jetzt anders gelöst, die Lampe ging auch noch an nachdem ich die Szenen deaktiviert habe an. Da ich aber alle Szenen durchgeguckt habe die ich sonst habe und nirgends die Quelle des Fehlers gefunden habe, habe ich einfach den Bewegungsmelder excludiert und wieder neu includiert. Versteckte Szenen habe ich auch nicht. Da das Problem jetzt behoben ist ist alles gut ärgert mich aber schon dass ich nicht die Quelle des Fehlers gefunden habe.
        Trotzdem Danke!

  • Hi,

    erstmal vielen Dank für die beiden Artikel und die wirklich perfekte Erklärung. Ich habe versucht mich absolut strikt an die Anleitung zu halten. trotzdem bekomme ich das ganze nicht zum Laufen.

    Wenn ich showExtraDebugInfo einschalte, dann kann ich sehen, dass scheinbar immer der manual override zuschlägt. Was mache ich nur falsch?

    Debug:

    [DEBUG] 00:44:36: Updating current variable statuses
    [DEBUG] 00:44:36: returned presentState: Home
    [DEBUG] 00:44:36: returned TimeOfDay: Evening
    [DEBUG] 00:44:36: returned sleepState: Awake
    [DEBUG] 00:44:36: Home status: Home
    [DEBUG] 00:44:36: Motion status: movement
    [DEBUG] 00:44:36: Triggered by: 89 Motion sensor
    [DEBUG] 00:44:36: Extra evening function called
    [DEBUG] 00:44:36: Sensor lux: 13 is lower then minValue: 30
    [DEBUG] 00:44:37: Lights turned: on for Evening
    [DEBUG] 00:44:37: Starting timer, not yet running
    [DEBUG] 00:44:37: --------------- Timer running ---------------
    [DEBUG] 00:44:37: starting with while loop, to keep lights on
    [DEBUG] 00:44:37: Saving current variable statuses
    [DEBUG] 00:44:37: --------------- next timer run ---------------
    [DEBUG] 00:44:38: Updating current variable statuses
    [DEBUG] 00:44:38: returned presentState: Home
    [DEBUG] 00:44:38: returned TimeOfDay: Evening
    [DEBUG] 00:44:38: returned sleepState: Awake
    [DEBUG] 00:44:38: Status change check
    [DEBUG] 00:44:38: Saving current variable statuses
    [DEBUG] 00:44:38: Resetting time
    [DEBUG] 00:44:38: Manual override for light: [141]Esstischlicht active
    [DEBUG] 00:44:38: Manual override for light: [141]Esstischlicht active, not turning on
    [DEBUG] 00:44:38: Manual override for light: [145]Küchenlicht active
    [DEBUG] 00:44:38: Manual override for light: [145]Küchenlicht active, not turning on
    [DEBUG] 00:44:38: Manual override for light: [141]Esstischlicht active
    [DEBUG] 00:44:38: Manual override for light: [145]Küchenlicht active
    [DEBUG] 00:44:38: -----------------Override Mode---------------
    [DEBUG] 00:44:38: Still in override for: 90 seconds
    [DEBUG] 00:44:39: Manual override for light: [141]Esstischlicht active
    [DEBUG] 00:44:39: Manual override for light: [145]Küchenlicht active

  • Hi,

    erstmal danke für all das was ihr für mein smarthome gemacht habt^^. Da ich im LUA noch sehr stolprig unterwegs bin wollte ich fragen ob es möglich ist, dass im bereich das xtraLightTriggerChecks eine Szene abgefragt wird. Oder muss ich das über ein Variable machen? Wenn ja wie setze ich diese wieder zurück wenn die Scene nicht aktiv ist?

    Vielen Dank schonmal im vorraus.

  • Guten Morgen,

    erst einmal vielen Dank für eure tolle Arbeit hier im Forum!!
    Die Lichtsteuerung habe ich in zwei Räumen laufen, einmal im Bad und im Flur.
    Es funktioniert soweit alles, nur am Morgen stelle ich ein merkwürdiges Verhalten fest.
    Im Flur schaltet das Licht im Zeitfenster 07:30 - 8:00 Uhr zwar ein aber nicht alle Lampen werden ausgeschaltet. ( zu sehen im Log: Set: [216]'Lampe Flur vorn' to Value: 70 diese Lampe geht an aber nicht aus) Danach wird sie Szene überhaupt nicht mehr getriggert!?
    Im Bad passiert das gleiche!? Am Tag, Abends und Nachts kann ich das Verhalten nicht feststellen!
    Die ID´s habe ich überprüft, ich habe die Scripte mehrfach neu angelegt etc. Habt ihr noch eine Idee was falsch sein könnte?
    Vielen Dank für eure Hilfe!!!

    Hier die Logs:

    FLUR:

    [DEBUG] 22:13:54: Home status: Home
    [DEBUG] 22:13:54: Motion status: movement
    [DEBUG] 22:13:54: Triggered by: 66 Motion sensor
    [DEBUG] 22:13:54: Sensor lux: 0 is lower then minValue: 30
    [DEBUG] 22:13:54: Set: [189]'Lampe Flur hinten' to Value: 60
    [DEBUG] 22:13:54: Set: [216]'Lampe Flur vorn' to Value: 60
    [DEBUG] 22:13:54: Turn: [59]'LED Leiste' On
    [DEBUG] 22:13:54: Lights turned: on for Evening
    [DEBUG] 22:15:05: Switch off light: [189]'Lampe Flur hinten'
    [DEBUG] 22:15:05: Switch off light: [216]'Lampe Flur vorn'
    [DEBUG] 22:15:05: Switch off light: [59]'LED Leiste'
    [DEBUG] 22:15:05: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 22:15:05: -------------------------------------------------------
    [DEBUG] 22:15:10: Home status: Home
    [DEBUG] 22:15:10: Motion status: No movement
    [DEBUG] 22:15:10: Triggered by: 68 Lux sensor
    [DEBUG] 22:15:10: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 22:15:10: -------------------------------------------------------
    [DEBUG] 07:36:32: Home status: Home
    [DEBUG] 07:36:32: Motion status: movement
    [DEBUG] 07:36:32: Triggered by: 68 Lux sensor
    [DEBUG] 07:36:32: Sensor lux: 19 is lower then minValue: 20
    [DEBUG] 07:36:32: Set: [189]'Lampe Flur hinten' to Value: 70
    [DEBUG] 07:36:32: Set: [216]'Lampe Flur vorn' to Value: 70
    [DEBUG] 07:36:32: Turn: [59]'LED Leiste' On
    [DEBUG] 07:36:32: Lights turned: on for Day
    [DEBUG] 07:38:04: Switch off light: [189]'Lampe Flur hinten'
    [DEBUG] 07:38:04: Switch off light: [59]'LED Leiste'
    [DEBUG] 07:38:04: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 07:38:04: -------------------------------------------------------
    [DEBUG] 07:52:05: Home status: Home
    [DEBUG] 07:52:05: Motion status: No movement
    [DEBUG] 07:52:05: Triggered by: 68 Lux sensor
    [DEBUG] 07:52:05: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 07:52:05: -------------------------------------------------------

    BAD:

    [DEBUG] 07:56:33: --------------- next timer run ---------------
    [DEBUG] 07:56:34: Updating current variable statuses
    [DEBUG] 07:56:34: returned presentState: Home
    [DEBUG] 07:56:34: returned TimeOfDay: Day
    [DEBUG] 07:56:34: returned sleepState: Awake
    [DEBUG] 07:56:34: Status change check
    [DEBUG] 07:56:34: Saving current variable statuses
    [DEBUG] 07:56:34: Timer is not reset.
    [DEBUG] 07:56:34: Time left for: [212]Lampe Bad: 3 seconds
    [DEBUG] 07:56:34: --------------- next timer run ---------------
    [DEBUG] 07:56:34: Abort, Scene count = 2
    [DEBUG] 07:56:35: Updating current variable statuses
    [DEBUG] 07:56:35: returned presentState: Home
    [DEBUG] 07:56:35: returned TimeOfDay: Night
    [DEBUG] 07:56:35: returned sleepState: Awake
    [DEBUG] 07:56:35: Status change check
    [DEBUG] 07:56:35: Extra night function called
    [DEBUG] 07:56:35: Sensor lux: 48 higher then minValue: 10 : no action
    [DEBUG] 07:56:35: Timer already running, returning
    [DEBUG] 07:56:35: Saving current variable statuses
    [DEBUG] 07:56:35: Timer is not reset.
    [DEBUG] 07:56:35: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 07:56:35: -------------------------------------------------------
    [DEBUG] 07:56:35: Abort, Scene count = 2
    [DEBUG] 08:11:33: Updating current variable statuses
    [DEBUG] 08:11:33: returned presentState: Home
    [DEBUG] 08:11:33: returned TimeOfDay: Day
    [DEBUG] 08:11:33: returned sleepState: Awake
    [DEBUG] 08:11:33: Home status: Home
    [DEBUG] 08:11:33: Motion status: No movement
    [DEBUG] 08:11:33: Triggered by: 48 Lux sensor
    [DEBUG] 08:11:33: Lux value changed to: 42
    [DEBUG] 08:11:33: © Smart Lights V1.6.7 | by Control Living, Finished
    [DEBUG] 08:11:33: -------------------------------------------------------

    Vielen Dank für eure Hilfe!!!

  • Hallo,

    falls jemand das gleiche Problem hat wie ich und eine Lösung sucht, dem kann ich nur empfehlen das Script in Version 1.7.0 zu kaufen!! Seit Einsatz dieser Version habe ich keinerlei Probleme mehr und alles läuft perfekt ;)

    Viele Grüße!!

  • Hallo, vielen Dank schon mal für die Unterstützung. Wie könnte man z.B. 2 Türsensoren in das Script integrieren, d.h. bei Türöffnen statt Bewegung (Motion) soll das Script getriggert werden?

  • Hi,

    habe das Script seit langem im Einsatz, läuft super. Jetzt habe ich unvorsichtigerweise ein paar Hues eingebaut.
    Leider klappt das mit dem Script nicht...
    Gibt es da etwas ähnliches?
    @TinoH: Wo " kaufst" Du denn Version 1.70? Gehen damit vielleicht auch Hues?

    LG TT

  • Hallo, bin absoluter Neuling mit LUA. Habe das Script komplett so gelassen, nur die ID´s angepasst.
    Beim manuellen Start krieg ich im debug folgende Fehler:
    Error: presentState variable no found
    Error: TimeOfDay variable no found
    Error: sleepState variable no found

    Dein 2. Script habe ich auch eingegeben, das läuft und gibt mir den Wert Tag oder Abend aus, je nach Tageszeit.

    Wo liegt denn mein Fehler?

    Gruß Klaus

      • Hallo boomx,

        danke für den Tipp. Das mit den Variablen ist auch im Teil1 dieses Lichtsteuerungsscipts beschrieben. Die Variablen habe ich auch angelegt (Casesensitiv), trotzdem kriege ich den Fehler.

        Habe ein einfaches Lua-Script geschrieben um die Variablen auszulesen:
        b = fibaro:getGlobalValue("presentState")
        c = fibaro:getGlobalValue("sleepState")
        d = fibaro:getGlobalValue("timeOfDay")
        print (b)
        print (c)
        print (d)

        Da kriege ich dann auch die Werte Home, Awake und Evening rausgeschrieben, drum versteh ich nicht warum mich das Script anmeckert.

        • Ich bin´s nochmal.

          Habs gefunden. Der 1. Buchstabe in meinen 3 angelegten Variablen war jeweils klein. Nachdem ich das Script nochmal durchlaufen lassen habe ist mir ein Licht aufgegangen.

          Danke für die Hilfe

  • Hallo crissxcross,

    ist es möglich, die perfekte Lichtsteuerung mit einer Philips HUE Lampe und dem Fibaro Philips HUE plugin zu nutzen? Ich nutze aktuell das Skript "Licht an solange Bewegung" habe damit aber zeitweise Probleme die ich nicht lösen kann (die HUE Lampe geht ohne erkennbaren Grund und ohne Bewegung auf weiß in voller Helligkeit und bleibt anschließend auch an. Erst durch erneutes triggern der Szene funktioniert das Skript wieder. Hatte das Problem jetzt mehrfach im Urlaub.) .
    Nun wollte ich auf die perfekte Lichtsteuerung, welche ich vor Anschaffung der HUE erfolgreich genutzt habe umstellen.

    Mfg
    Daniel

    • Hi,

      mit den HUEs funktioniert das Skript leider nicht. Da musst du dir Alternativen suchen.

      Meiner Meinung nach liegt es aber nicht an dem anderen Skript, dass deine HUEs Weiß werden... hier solltest du dich mal auf Fehlersuche machen, ob möglicherweise ein anderes Skript die HUEs schaltet.

      Gruß

  • Hallo liebe Leute,

    also ich habe das Skript jetzt schon dreimal erfolgreich umgesetzt (2 mal mit Dimmer2 und 1 mal mit Wallplug).
    Nun würde mich das aber noch reizen eine Umsetzung mit HUE-Leuchten zu realisieren, doch leider bin ich noch nicht firm genug wie ich diese Virtuellen Module in der perfekte Lichtsteuerung einbinden kann.

    Kann da jemand helfen bzw. hat das schonmal jemand umgesetzt?

    Wäre klasse wenn es klappt weil ich mit inzwischen über 35 HUE Leuchten da noch so einige Kombiniationsideen habe ;-)

    best Grüße

  • Hi,
    ich habe ein Problem die Lichtsteuerung zum Laufen zu bekommen. Das unter "Day" angelegte Licht wird nicht erkannt. Könnte mir jemand sagen, ob ich vergessen habe ein oder mehrere Parameter zu ändern?
    203 ist der Motion Sensor, 205 ist der Helligkeitssensor. Ansteuern tue ich einen Fibaro Double Switch ID211

    Im DEBUG bekomme ich bei Bewegung folgende Meldung:
    Home status: Home
    Motion status: movement
    Triggered by: 201 Motion sensor
    Sensor lux: 60 is lower then minValue: 60
    No lights set for Day

    --[[
    %% properties
    203 value
    205 value
    491 value
    %% globals
    TimeOfDay
    PresentState
    --]]

    --[[ Change - XXX value - above. One for motion sensor, one for Light sensor.
    TimeOfDay global variable and lux make sure that the scene
    will be triggered when you are already in the room and something changes.

    Set your settings below, lights and add extra functions
    Feel free to suggest changes or contact when having problems.
    It is not allowed to sell or distribute this software and earlier versions without the approval of Control Living
    © 2014 - 2015 Smart lights by Control Living
    Version 1.6.7
    --]]

    --------------------------------------------------------------------
    -----------------------YOUR LIGHT SETTINGS--------------------------

    motionSensorID = {203}; -- change id for your motion sensor.
    LuxSensorID = {205}; -- change id for your light sensor.

    --Enter the name of your Global variable. WITHOUT IT, THE SCENE DOES NOT WORK. Capital sensitive!
    sleepState = "SleepState"; --Sleep globalstate variable.
    timeOfDay = "TimeOfDay"; --Time of Day Global variable.
    presentState = "PresentState"; --Present state Global variable.

    --Enter the values of your global variables stated above. If not using, copy the name in front of the "YourValueName"
    sleepStateMapping = {Sleeping="Sleeping", Awake="Awake"};
    timeOfDayMapping = {Morning="Morning", Day="Day", Evening="Evening", Night="Night"};
    presentStateMapping = {Home="Home", Away="Away", Holiday="Holiday"};

    -- Set the lux value for which the lights have to be turned on.
    -- If you don't want to use the MinLux then just set it to: 65535
    minLuxMorning = 100;
    minLuxDay = 60;
    minLuxEvening = 40;
    minLuxNight = 30;

    --If the current lux value is above the maxlux, the lights will turn off after their set onTime.
    maxLuxMorning = 300;
    maxLuxDay = 300;

    --[[
    Now the most important part:
    Here you can enter what light, for how long and at what value has to be turned on.
    Leave empty brackets for no lights.
    To set the light value without timer use 2 parameters: {id=LightID, setValue="VALUE"}
    To set the light value with timer use 3 parameters: {id=LightID, setValue="VALUE", onTime=timeInSeconds }
    To set the light value for RGBW: use the above, where setValue is: setValue={R="255",G="255",B="255",W="255"}
    -- RGBW set: {id=LightID, setValue={R="255",G="255",B="255",W="255"}, onTime=timeInSeconds }
    --]]

    lightsSleeping = {}; --lights that are triggered when Sleepstate is sleeping.
    lightsMorning = {{id=471, setValue="99", onTime=300},{id=491, setValue="99", onTime=300},{id=902, setValue="turnOn", onTime=360}};
    lightsDay = {id=211, setValue="80", onTime=90};
    lightsEvening = {{id=471, setValue="60", onTime=300},{id=491, setValue="60", onTime=300},{id=902, setValue="turnOn", onTime=300}};
    lightsNight = {{id=471, setValue="45", onTime=60}, {id=491, setValue="45", onTime=60}};

    --Manual Override, the time that lights will not be turned ON again after manually turning them off.
    OverrideFor = 90;
    dimmDownTime = 10;

    --------------------------------------------------------------------
    -------------------------EXTRA FEATURES-----------------------------

    extraMorningFunc = function()
    -- Add your extra code here. If you want some checks or maybe run a virtual device button.
    --This code is always triggered if there is motion.
    -- movieLights = {{180, "10"},{181, "10"} };
    --if (xbmc == "playing" ) then CallLightArray(movieLights);
    ExtraDebug("Extra morning function called");
    end

    extraDayFunc = function()
    -- Add your extra code here. If you want some checks or maybe run a virtual device button.
    --This code is always triggered if there is motion.
    ExtraDebug("Extra day function called");
    end

    extraEveningFunc = function()
    -- Add your extra code here. If you want some checks or maybe run a virtual device button.
    --This code is always triggered if there is motion.
    ExtraDebug("Extra evening function called");
    end

    extraNightFunc = function()
    -- Add your extra code here. If you want some checks or maybe run a virtual device button.
    --This code is always triggered if there is motion.
    ExtraDebug("Extra night function called");
    end

    extraLightTriggerChecks = function()
    --add extra checks here. and return the total true or false value.
    --if returning false the lights will not be triggered.
    -- for instance: return ( (pcTurnedOff == true ) and (xbmc ~= "Empty") );
    -- return true to enable lights to turn on
    return true;
    end

    extraOffChecks = function()
    --return true to keep lights on.
    return false;
    end

    --------------------------------------------------------------------
    ----------------------ADVANCES SETTINGS-----------------------------
    local showStandardDebugInfo = true; -- Debug shown in white
    local showExtraDebugInfo = false; -- Debug shown in orange

    ---------------------------

  • Hallo liebes Forum,

    ich würde die perfekte Lichtsteuerung gerne in einem Raum (Küche) bei mir so anpassen, dass auch wenn die Alarmanlage aktiv ist und die globale Variable auf „away“ gesetzt wurde bei erkannter Bewegung die Lampen in diesem Raum aktiviert werden. Aktuell werden bei Abwesenheit PresentState = „away“ die Lampen ausgeschaltet und bei erkannter Bewegung nicht mehr angesteuert. D.h. Sobald resentState = „away“ - werden die Lanpen nicht mehr geschaltet.

    Vielen Dank für die Unterstützung

  • Hallo,

    die Idee finde ich hervorragend, aber leider ist das Script noch nicht mit Philipps HUE kompatibel - wie ja schon in anderen Kommentaren erwähnt. Es wäre schön, wenn das irgendwann kommen würde. Aber trotzdem besten Dank für die tolle Arbeit.

    Beste Grüße
    Micha

  • Ich habe ebenfalls das Script angepasst und soweit funktioniert alles bis auf die Tatsache das keine Lampen eingeschaltet werden.

    [DEBUG] 13:37:01: Home status: 1
    [DEBUG] 13:37:01: Motion status: No movement
    [DEBUG] 13:37:01: Triggered by: other , Not checking the motion state.
    [DEBUG] 13:37:01: Sensor lux: 244 is lower then minValue: 600
    [DEBUG] 13:37:02: Lights turned: on for Day

    Die Device IDS stimmen (ich habe 2 Lampen die ich steuern will) aber eingeschaltet wird keins davon

    lightsMorning = {{id=101, setValue="100", setValue="turnOn", onTime=300},{id=168, setValue="100", onTime=300}};
    lightsDay = {{id=101, setValue="80", onTime=300},{id=168, setValue="80", onTime=300}};
    lightsEvening = {{id=101, setValue="60", onTime=300},{id=168, setValue="60", onTime=300}};
    lightsNight = {{id=168, setValue="30", onTime=300}};

    Habe ich jetzt irgendwo n Denkfehler?

    Cheers!
    Jason

  • Hi, ich habe div. Fehlermeldungen erhalten, die ich bis jetzt alle irgendwie lösen/beheben konnte. Leider hab ich bei der hier keine Ahnung wie ich den Fehler behebe:

    [DEBUG] 10:35:49: 2019-09-30 10:35:49.574993 [ fatal] Unknown exception: /opt/fibaro/FibaroSceneAPI.lua:116: attempt to concatenate local ‚deviceId‘ (a nil value)

  • Hallo,
    ich møchte das, das Licht nicht eingeschaltet wird wenn der Fernsehr an ist.
    Auch das wenn der Fernsehr eingeschaltet wird das Licht aus geht.
    Wie mache ich das am besten?

    MfG
    Rocco

  • Hallo, ich habe gestern das neue HC3 bekommen und meine Module integriert.
    Jetzt brauche ich nur bei der perfekten Lichtsteuerung untersützung. Hat vielleicht jemand diese Szene schon auf das HC3 umgeschrieben? Wenn ja wäre ich sehr dankbar wenn er diese Posten könnte, ich brauche erst mal wieder eine funkionierende Szene damit ich darauf aufbauen kann.
    Vielen DANK schon mal für eure Untersützung.
    Grüße
    Micha

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner