DOIF Lichtsteuerung mit Helligkeitssensor, klappt nur teilweise

Begonnen von moonsorrox, 02 Mai 2017, 00:45:24

Vorheriges Thema - Nächstes Thema

moonsorrox

Ich habe ein DOIF welches mir die LED-Streifen am TV steuert, was bisher auch funktioniert.
Kurz erklärt, wenn es im Zimmer dunkel ist sagt der Helligkeitssensor eben dunkel und der LED Streifen geht aus, schalte ich eine weitere Lampe an geht eben mit einer kurzen Verzögerung des Sensors die LED-Beleuchtung wieder an. Alles soweit OK.

Jetzt ist es aber so das die Tage länger werden und eben die Helligkeit länger da ist und die LED-Beleuchtung geht viel zu früh an, da ja der Helligkeitssensor sagt es ist hell. Alles richtig.

Nun möchte ich aber nicht ewig die Zeit nachziehen, denn im Herbst müsste ich dann die Zeit wieder zurück stellen im DOIF.

Ich habe einige Versuche gestartet aber ich finde keinen richtigen Ansatz wie ich das jetzt besser lösen könnte, ohne die Zeit ewig hin und her zu schieben. Vllt hat hier einer die zündende Idee wie ich das DOIF verbessern könnte.

Hier mal der Code mit den Zeiten aus dem defmode:
defmod di_TVLED DOIF ([?du_Modus_TVLED] eq "FHEM" and ([{sunset("CIVIL",-110,"16:35","22:20")}|8] or [{sunset("CIVIL",-110,"16:35","22:20")}|7]) or ([WZ_Lampe_TV:state] eq "off" and [Temperatur_Wohnzimmer:luminosity:] > 1.00 and [?20:06-01:59])) (set WZ_Lampe_TV on) DOELSEIF ([?du_Modus_TVLED] eq "FHEM" and ([01:25|8] or [02:00|7]) or ([Temperatur_Wohnzimmer:luminosity:] < 1.00 and [?20:05-12:00])) (set WZ_Lampe_TV off)\


setstate di_TVLED cmd_2
setstate di_TVLED 2017-05-02 00:32:13 Device WZ_Lampe_TV
setstate di_TVLED 2017-05-02 00:32:13 cmd 2
setstate di_TVLED 2017-05-02 00:32:13 cmd_event Temperatur_Wohnzimmer
setstate di_TVLED 2017-05-02 00:32:13 cmd_nr 2
setstate di_TVLED 2017-05-02 00:32:13 e_Temperatur_Wohnzimmer_luminosity 0.06
setstate di_TVLED 2017-05-02 00:32:13 e_WZ_Lampe_TV_state off
setstate di_TVLED 2017-05-02 00:32:13 state cmd_2
setstate di_TVLED 2017-05-02 00:31:19 timer_01_c01 02.05.2017 21:27:05|8
setstate di_TVLED 2017-05-02 00:31:19 timer_02_c01 02.05.2017 21:27:05|7
setstate di_TVLED 2017-05-02 00:31:19 timer_03_c01 02.05.2017 20:06:00
setstate di_TVLED 2017-05-02 00:31:19 timer_04_c01 02.05.2017 01:59:00
setstate di_TVLED 2017-05-02 00:31:19 timer_05_c02 02.05.2017 01:25:00|8
setstate di_TVLED 2017-05-02 00:31:19 timer_06_c02 02.05.2017 02:00:00|7
setstate di_TVLED 2017-05-02 00:31:19 timer_07_c02 02.05.2017 20:05:00
setstate di_TVLED 2017-05-02 00:31:19 timer_08_c02 02.05.2017 12:00:00
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Ellert

ZitatNun möchte ich aber nicht ewig die Zeit nachziehen
Dann solltest Du hier [?20:06-01:59] für die Beginnzeit auch "sunset" oder "twilight" ein setzen

moonsorrox

ich werde das mal testen heute Abend, aber ich meine diesen Ansatz hatte ich schon mal probiert... ist aber schon ne Weile her, also mit "sunset"
Twilight habe ich noch nicht probiert..! Ist vllt. die bessere Variante.!!
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

zur Rückmeldung, ich hatte das schon mal mit sunset gemacht, aber es funktionierte nur einmal zum einschalten, aber ich habe dabei einen blöden Fehler gemacht, denn ich habe etwas vergessen.

ich sollte wenn auch den ganzen Code einsetzen:
[{sunset("CIVIL",-120,"16:15","22:20")}-01:59]

den letzten Teil (-01:59) hatte ich vergessen, dass war dann so das er eingeschaltet hat, wenn es dunkel war auch ausgeschaltet, aber eben nicht wieder "Ein"
Der gestrige Test funktionierte...!

Danke für den Denkanstoß
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM