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.
1 2 3 4 5 6 7 |
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 |
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
1 2 3 4 5 6 7 8 |
extraOffChecks = function() verbrauch = fibaro:getValue(131, "power") if ( tonumber(verbrauch) > 40 )then return true; end --return true to keep lights on. return false; end |
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:
1 2 3 4 5 6 7 8 9 10 |
xtraLightTriggerChecks = function() if (fibaro:getGlobal('Alarm') == 'erkannt') then return false; end --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 |
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.
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 Daniel,
genau das war das Problem, jetzt funktioniert alles :) Danke und einen schönen Abend noch.
LG Daniel
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
Hat keiner eine Idee?
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?
Schau mal in den ersten Teil dieses Tutorials da wird es erklärt
https://www.siio.de/lichtschatten/die-perfekte-lichtsteuerung-mit-fibaro-lua-teil-1/
nicht vergessen die Motion sensor ID auch oben in den Properties einzutragen
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
Hi,
kann sein, dass mit dem Skript Wallplugs nicht unterstützt werden. Müsst ich mir mal genau anschauen.
Gruß
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
Müsste eigentlich gehen. Was sagt denn der Debug?
Gruß
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,
wird überhaupt i.was debuggt?
Gruß
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,
teste das Skript heute Abend mal mit einem Wallplug. Meld mich dann.
Gruß
Hallo Boomx,
bitte melde DICH :-)
Grüße
Poldy
Schick mir doch ne Mail.
boomx(@)siio.de
Gruß
Hallo boomx,
bist Du noch aktiv?
Gibt es eine Lösung für das Problem?
cu
karlk
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
Hi,
schau dir mal folgenden Artikel an. Steht dort beschrieben.
https://www.siio.de/connected-home/lichtsteuerung-teil-2-fibaro-tageszeiten-variable-via-lua-setzen/
Gruß
...super, besten Dank. Gibt es auch noch irgendwo einen Script um die PresentState und SleepState Variable zu setzen? Wo wird im Script der Mittelwert der Lux Sensoren - habe 3 davon - gebildet und kann ich diesen zu Optimierungszwecken im Debug anzeigen?
Merci für Deine tollen Profitips
Gruss
Reto
Hi,
kein Problem. Ein fertiges Skript für die Schaltung von PresentState gibt es leider nicht. Ich schalte die Variable mit dem RFID-Tagreader um. Da müsstest du dir etwas überlegen, wie es bei euch am besten realisiert werden kann.
Der Mittelwert des LUX-Wertes wird in dem Skript nicht berücksichtigt...
Gruß
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?
Du musst natürlich mehrere Szenen anlegen. Das Licht im ganzen Haus einzuschalten macht eher wenig Sinn ;)
Gruß
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)
Hi,
klar, es kann zu Überschneidungen kommen.
Gruß
und der Debug-Output kommt dann daher?
Mal kurz was anderes: Kannst Du mir einen LUA-Editor empfehlen?
Kann sein, nutze das Skript nicht. Es ist immer schwierig Skripte raumünergreifend zu nutzen.
Schau dir mal ZeroBraneStudio an. :)
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
Hi,
du musst diese Variablen im Variablen-Panel anlegen. Lies dir dazu mal folgenden Artikel durch:
https://www.siio.de/fibaro-homecenter-guide-teil-4-globale-variablen/
Gruß
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,
das wird zu aufwendig. Nimm was fertiges:
https://forum.fibaro.com/index.php?/topic/23667-scene-very-smart-lights™-v140/&
Gruß
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
---------------------------
Was muss ich ändern um im Flur zwei Bewegungsmelder zu berücksichtigen?
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