Perfekte Lichtsteuerung Fragen zu TimeOfDay

Hallo zusammen,

ich habe in den Bädern und den Fluren Motion Sensoren und das Skript zur perfekten Lichtsteuerung eingesetzt.
Jetzt habe ich folgenden Problem.

ich habe definiert welche Lampen zu welcher Zeit eingeschaltet werden sollen. funktioniert auch soweit ganz gut.

wodran erkennt das skript welche TimeOfDay ist bzw. was markiert den Unterschied z.bsp. zwischen Night und Morning?

ich möchte, dass bei Night das Licht nur gedimmt angeht und die Spiegelbeleuchtung aus bleibt.
Wenn ich morgens aufstehe (6 Uhr), möchte ich aber, dass die Spiegelbeleuchtung sich anschaltet und das Licht heller leuchtet.

ich habe im Skript keinen Teil gefunden wo ich die Uhrzeiten definieren kann ab wann Night, Morning, Day, Evening gilt?
hab ich das übersehen?
oder geht das nach Sonnenauf- und Untergang? wäre im Winter ja blöd… bloss weils um 17 Uhr draussen schon dunkel ist, soll das Licht im Bad ja nicht nur auf 20% leuchten…

danke!

Mit freundlichen Grüßen
bademeister

Geht dein HC wieder was war damit jetzt los.

Hi,

Grundsätzlich gibt es dafür ein eigenes Script, was eine globale Variable setzt.
Findest das auch hier im Forum.
Viele Grüße Hoggle

Dazu haben wir hier einen Artikel veröffentlicht:

http://www.siio.de/connected-home/lichtsteuerung-teil-2-fibaro-tageszeiten-variable-via-lua-setzen/

Gruss

Hallo zusammen,

ja, HC2 funktioniert. seit dem neustart letztes WE läuft sie halt wieder, aber der CPU Zeiger hat schon wieder so lustige Ausschläge bis auf 100%.
ich gucke das jetzt jeden tag sporadisch und es wird täglich mehr.
die HC2 ist ja immer eine woche gelaufen und hat dann erst blockiert. morgen wäre eine woche wieder vorbei, also ich denke dass sie morgen wieder abkackt.
dann mach ich mal screenshots und melde das an den support von fibaro.

die tageszeiten variabel habe ich auch, damit das skript funktioniert. bin aber nicht auf die idee gekommen da etwas dran zu schrauben… werde ich mal versuchen.
danke

Mit freundlichen Grüßen
bademeister

ich habe das skript welches jede minute prüft. das kann aber nicht die belastung meiner CPU etc erklären, oder?
ich versuche das skript an meine uhrzeiten anzupassen, aber irgendwie habe ich heute abend verständnisprobleme…

wenn ich morning und evening auch festen uhrzeiten zuordnen möchte, muss ich diese variablen auch bei “Local”, Zeile 9,10 ff festlegen.
ich raffe aber grade nicht, was ich an den IF abfragen dann ändern muss bzw. welche ich hinzufügen muss.

wie habt ihr den euer skript laufen?

danke
Mit freundlichen Grüßen
bademeister

Hallo,
muss das hier nochmal hochholen.
ich hatte mal versucht, die Tageszeitenvariabel anzupassen, aber das hat nicht funktioniert. stattdessen habe ich am Anfang die lokale variabel day auf 5:45 gesetzt.
jetzt habe ich seit ein paar tagen das problem, dass die lichtsteuerung morgens ständig zwischen tag und nacht wechselt.

[DEBUG] 06:00:52: Sensor lux: 117 is lower then minValue: 65535
[DEBUG] 06:00:52: Set: [29]‘Spots’ to Value: 30
[DEBUG] 06:00:52: Lights turned: on for Night
[DEBUG] 06:00:53: Sensor lux: 117 is lower then minValue: 65535
[DEBUG] 06:00:53: Set: [29]‘Spots’ to Value: 99
[DEBUG] 06:00:53: Turn: [223]‘Spiegel links’ On
[DEBUG] 06:00:53: Turn: [225]‘Spiegel rechts’ On
[DEBUG] 06:00:53: Lights turned: on for Day
[DEBUG] 06:03:52: Sensor lux: 117 is lower then minValue: 65535
[DEBUG] 06:03:53: Set: [29]‘Spots’ to Value: 30
[DEBUG] 06:03:53: Lights turned: on for Night
[DEBUG] 06:03:54: Sensor lux: 117 is lower then minValue: 65535
[DEBUG] 06:03:54: Set: [29]‘Spots’ to Value: 99
[DEBUG] 06:03:54: Turn: [223]‘Spiegel links’ On
[DEBUG] 06:03:54: Turn: [225]‘Spiegel rechts’ On
[DEBUG] 06:03:54: Lights turned: on for Day
[DEBUG] 06:06:53: Sensor lux: 117 is lower then minValue: 65535
[DEBUG] 06:06:54: Set: [29]‘Spots’ to Value: 30
[DEBUG] 06:06:54: Lights turned: on for Night
[DEBUG] 06:06:54: Sensor lux: 117 is lower then minValue: 65535
[DEBUG] 06:06:55: Set: [29]‘Spots’ to Value: 99
[DEBUG] 06:06:55: Turn: [223]‘Spiegel links’ On
[DEBUG] 06:06:55: Turn: [225]‘Spiegel rechts’ On
[DEBUG] 06:06:55: Lights turned: on for Day

das passiert im zeitraum zwischen 5:45 und dem Sonnenaufgang.
mein Skript zur Tageszeit sieht wie folgt aus

--[[
%% autostart
%% properties
%% globals
--]]
 
local sourceTrigger = fibaro:getSourceTrigger();
local version = '1.0';
 
fibaro:debug('VarTime-Controller (Ver.' .. version .. ')');
 
function varTime() 
--------------------------------------------------------------------------
local day  = {5, 45};
local night  = {22, 00};
---------------------------------------------------------------------------
local SunSet = fibaro:getValue(1, "sunsetHour")
fibaro:debug('Sonne geht unter: ' ..SunSet);
local Sunrise = fibaro:getValue(1, "sunriseHour")
fibaro:debug('Sonne geht auf: ' ..Sunrise);
---------------------------------------------------------------------------
local day = os.date("%H:%M", -3600+ day[1]*60*60 + day[2]*60);
local night = os.date("%H:%M", -3600+ night[1]*60*60 + night[2]*60);
local ostime = os.date("%H:%M", os.time());
 
if (night > fibaro:getValue(1, "sunriseHour") and (ostime >= night or ostime < fibaro:getValue(1, "sunriseHour")))
    or (night < fibaro:getValue(1, "sunriseHour") and ostime >= night and ostime < fibaro:getValue(1, "sunriseHour")) then
        fibaro:debug("Nacht");
        fibaro:setGlobal("TimeOfDay", "Night");
        --fibaro:abort();
end
 
if  ((ostime >= fibaro:getValue(1, "sunsetHour") or ostime < night) and night < fibaro:getValue(1, "sunriseHour"))
    or (ostime >= fibaro:getValue(1, "sunsetHour") and ostime < night) then
        fibaro:debug("Abend");
        fibaro:setGlobal("TimeOfDay", "Evening");
        --fibaro:abort();
end
 
if ostime >= day and ostime < fibaro:getValue(1, "sunsetHour") then
        fibaro:debug("Tag");
        fibaro:setGlobal("TimeOfDay", "Day");
        --fibaro:abort();
end
 
if ostime >= fibaro:getValue(1, "sunriseHour") and ostime < day then
        fibaro:debug("Sonnenaufgang");
        fibaro:setGlobal("TimeOfDay", "Morning");
        --fibaro:abort();
end
  	setTimeout(varTime, 60*1000);
end
 
if (sourceTrigger["type"] == "autostart") then
	varTime();
end

ich würde gerne feste zeiten für Morgens, Abends, Tag und Nacht hinterlegen, bin damit aber kläglich gescheitert.
evtl. kann sich jemand das mal anschauen der sowas auch schon laufen hat.

danke

Mit freundlichen Grüßen
bademeister

PS: meine HC2 ist am WE wieder abgekackt. habs an Fibaro gemeldet und die wollten sich mal draufschalten. bin mal auf deren Antwort gespannt.

Wird zwischen 5:45 und Sonnenaufgang die Variable richtig gesetzt?
Sonnenaufgang ist ja fast eine Stunde später.

müsste ich morgen früh mal schauen.
wird aber relativ schwierig sein, dass zu sehen, da der Status ja nur für 1 Sekunde auf Nacht steht und dann wieder auf Tag springt.

ich habe den Debug der Lichtszene so interpretiert, dass die Variable auf Nacht steht.

Du kannst auch den Debug des TimeOfDay-Scriptes prüfen.

ich habe mal ein problem mit dem Stunden Format, also statt:
local day = {5, 45};

dann

local day = {05, 45};

das stundenformat steht im ursprungsscript auch so drin.

das script schaltet die lampen ja auch auf “Tag” nach 5:45. nur immer erst auf Nacht und dann ne Sekunde später auf Tag. und das im 3 minuten rhythmus ist dann doch etwas viel licht an, licht aus am frühen morgen :wink:

Deswegen wäre gut zu wissen (Ursachenanalyse), ob die Variable richtig gesetzt wird.
Das solltest Du im Debug des TimeOfDay-Scriptes prüfen.

Hallo,

die Variable wird immer zuerst auf Nacht und dann auf Tag gesetzt.

Mit freundlichen Grüßen
bademeister

Das ist grundsätzlich richtig.
Außer es passiert im Sekundentakt…

die variabel wird in der gleichen Sekunde auf Nacht und Tag gesetzt. und das wird minütlich “debugged”.

hab leider nur einen screenshot gemacht, den ich hier irgendwie nicht reinkopiert bekomme… sieht folgendermassen aus…

05:45:13 Sonne geht unter 20:03
05:45:13 Sonne geht auf 7:00
05:45:13 Nacht
05:45:13 Tag

so geht das minütlich weiter…

Mit freundlichen Grüßen
bademeister

Okay. Also ist das Lichtscript nicht das Problem.

Wie sieht der Debug ab Sonnenaufgang aus?

da hab ich leider keine gewissheit, da ich dann schon nicht mehr im haus war…
ich wage mich aber zu erinnern, dass dann nur Tag dort steht.
morgen früh versuche ich das auch zu gucken…

Hast du das TimeOfDay Script angepasst oder ist ein Originsl?
Weil du ja schreibst
“ich würde gerne feste zeiten für Morgens, Abends, Tag und Nacht hinterlegen,”
Das ließe sich auch über Blockszenen realisieren.

ich benutze das original.
allerdings habe ich das versucht anzupassen und als das nicht funktionierte, habe ich es wieder auf den ursprungszustand zurückgesetzt.
dachte ich zumindest… evtl hab ich da was kaputt gemacht.

wenn ich das über blockszenen löse, kann ich das aber nicht sich an den jahreszeitenverlauf anpassen lassen? im Sommer startet der Tag ja früher als im winter, oder geht das doch?

oder ich hab grad nen denkfehler…

Je nach, was gensu du unter "feste zeiten " meinst.