nach Sonnenuntergang Licht an

  • Moin moin,

    Ich bin relativ unerfahren was Programmieren und co angeht, und hoffe hier irgendwie Hilfe zu bekommen.

    Ich habe zwar das eine oder andEreignis Projekt mit ESP8266/32 hinbekommen, aber mit folgendem komme ich einfach nicht weiter:

    An einem Wemos mini (ESP8266EX) ist am D1 GPIO5 ein Relais für eine Beleuchtung angeschlossen. Wenn das Board Spannung hat kann ich den Ausgang manuell über die Website auch schalten, also schließe ich verdrahtungsfehler schon mal aus.

    Ich möchte das die Beleuchtung mit Sonnenuntergang - 0:45 eingeschaltet wird, was ich in der Zeitsteuerung auch so definiert habe. Das funktioniert aber nur wenn das Board an der Versorgungsspannung hängt. Die Versorgungsspannung (USB-Anschluss) kommt aber erst wenn ich den TV einschalten, sonst wird das Licht nicht benötigt.

    Was muss ich tun das der Ausgang kommt wenn die Einschaltzeit (bei Versorgungsspannung ein) bereits überschritten ist?

    Vielen lieben Dank im Voraus

    Schöne Grüße Jo

  • Hallo Noschvie,

    timezone99 passt...

    17:17:20.455 RSL: RESULT = {"Timer1":{"Enable":1,"Mode":2,"Time":"00:45","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}}

    Gruß Jo

  • 1. Rule1 musst du ein fiktives Datum in der Vergangenheit beim Start setzen ( damit keine Fehlsteuerungen passieren)

    2. muss Time 0 versuchen die NTP Zeit zu bekommen und wenn Zeit nicht mehr Vergangenheit dann Rule2 aktivieren

    3. Rule2 - die aktuelle Zeit mit Sonnenuntergang vergleicht und schalten

  • Moin karoCB,

    Rule1 ON Time#1970-01-01T00:00:00 DO RuleTimer1 1 ENDON

    Aber mit Rule2 komm ich nicht weiter, wie muss die denn aussehen?

    Vielen Dank für deine Unterstützung

    Gruß Jo

  • Als schnelle etwas schmutzige Lösung (wenn kein NTP erreichbar dann ?)

    in mem1 liegt der Offset -45 Minuten!

    rule1
    on Time#Initialized do Backlog VAR1 1; VAR2 %sunset% endon
    on VAR1#State==1 do Backlog SUB2 %time%; ADD2 %mem1% endon
    on Time#Minute do MULT1 1 endon


    rule2
    on VAR2#State<0 do Power1 1 endon


    die folgenden 3 Befehlszeilen auf der Console absetzen:

    Backlog Latitude 51.785783; Longitude 14.417215; timezone 99; webtime 0,19
    Backlog NTPServer3 3.de.pool.ntp.org; Sleep 250; SetOption36 10; Rule1 1; Rule2 1
    backlog Webbutton1 manuell; SetOption0 0; mem1 -45

  • jou 's Idee finde ich gut und sie ist auch noch energiesparend 👍

    Wenn es nicht reicht melden - sonst Kelch 😃

    PS: Eine andere Variante ( ohne Löten) ist ein USB-ESP32 in den TV der beim Start mit dem TV ( durch Stromversorgung) ein websend an eine Gosund-Dose zum Einschalten sendet. Das AUS muss dann die Dose selbst organisieren wenn sie 30 Sekunden vom USB-ESP kein Lebenszeichen mehr bekommt.

  • Hallo zusammen,

    da ich das TV-Licht nur 1-2 Stunden am Abend brauche, erscheint mir die Versorgung vom TV die bessere Idee.

    karoCB:

    Ich hab alles so in der Konsole eingegeben, jetzt schaltet der Ausgang kurz nach Versorgungsspannung ein...

    15:37:24.269 APP: Startvorgänge 103
    15:37:24.275 RSL: STATE = {"Time":"2024-05-16T15:37:24","Uptime":"0T00:00:09","UptimeSec":9,"Heap":27,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":3,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":96,"Signal":-52,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:37:24.797 CFG: in Flash gespeichert an F7, Anzahl 257, Bytes 4096
    15:38:15.350 RUL: TIME#MINUTE performs "MULT1 1"
    15:38:15.351 SRC: Rule
    15:38:15.354 CMD: Grp 0, Cmd 'MULT', Idx 1, Len 1, Pld 1, Data '1'
    15:38:15.358 RSL: RESULT = {"Mult1":"1.000"}
    15:38:15.595 RUL: VAR1#STATE==1 performs "Backlog SUB2 938; ADD2 -45"
    15:38:15.597 SRC: Rule
    15:38:15.599 CMD: Grp 0, Cmd 'BACKLOG', Idx 1, Len 18, Pld -99, Data 'SUB2 938; ADD2 -45'
    15:38:15.827 SRC: Backlog
    15:38:15.830 CMD: Grp 0, Cmd 'SUB', Idx 2, Len 3, Pld 938, Data '938'
    15:38:15.835 RSL: RESULT = {"Sub2":"-671.000"}
    15:38:15.863 RUL: VAR2#STATE<0 performs "Power1 1"
    15:38:15.865 SRC: Rule
    15:38:15.867 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:38:15.873 RSL: STATE = {"Time":"2024-05-16T15:38:15","Uptime":"0T00:01:00","UptimeSec":60,"Heap":26,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":9,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":98,"Signal":-51,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:38:15.895 RSL: RESULT = {"POWER":"ON"}
    15:38:15.899 RSL: POWER = ON
    15:38:16.077 SRC: Backlog
    15:38:16.081 CMD: Grp 0, Cmd 'ADD', Idx 2, Len 3, Pld -45, Data '-45'
    15:38:16.085 RSL: RESULT = {"Add2":"-716.000"}
    15:38:16.347 RUL: VAR2#STATE<0 performs "Power1 1"
    15:38:16.349 SRC: Rule
    15:38:16.351 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:38:16.358 RSL: STATE = {"Time":"2024-05-16T15:38:16","Uptime":"0T00:01:01","UptimeSec":61,"Heap":26,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":15,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":100,"Signal":-50,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:38:16.382 RSL: RESULT = {"POWER":"ON"}
    15:38:16.384 RSL: POWER = ON
    15:38:30.601 HTP: Hauptmenü
    15:38:32.354 HTP: Konsole
    15:39:00.137 RUL: TIME#MINUTE performs "MULT1 1"
    15:39:00.139 SRC: Rule
    15:39:00.141 CMD: Grp 0, Cmd 'MULT', Idx 1, Len 1, Pld 1, Data '1'
    15:39:00.147 RSL: RESULT = {"Mult1":"1.000"}
    15:39:00.387 RUL: VAR1#STATE==1 performs "Backlog SUB2 939; ADD2 -45"
    15:39:00.390 SRC: Rule
    15:39:00.392 CMD: Grp 0, Cmd 'BACKLOG', Idx 1, Len 18, Pld -99, Data 'SUB2 939; ADD2 -45'
    15:39:00.620 SRC: Backlog
    15:39:00.624 CMD: Grp 0, Cmd 'SUB', Idx 2, Len 3, Pld 939, Data '939'
    15:39:00.629 RSL: RESULT = {"Sub2":"-1655.000"}
    15:39:00.658 RUL: VAR2#STATE<0 performs "Power1 1"
    15:39:00.660 SRC: Rule
    15:39:00.663 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:39:00.669 RSL: STATE = {"Time":"2024-05-16T15:39:00","Uptime":"0T00:01:45","UptimeSec":105,"Heap":24,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":10,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":92,"Signal":-54,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:39:00.692 RSL: RESULT = {"POWER":"ON"}
    15:39:00.694 RSL: POWER = ON
    15:39:00.871 SRC: Backlog
    15:39:00.874 CMD: Grp 0, Cmd 'ADD', Idx 2, Len 3, Pld -45, Data '-45'
    15:39:00.880 RSL: RESULT = {"Add2":"-1700.000"}
    15:39:00.908 RUL: VAR2#STATE<0 performs "Power1 1"
    15:39:00.910 SRC: Rule
    15:39:00.912 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:39:00.919 RSL: STATE = {"Time":"2024-05-16T15:39:00","Uptime":"0T00:01:45","UptimeSec":105,"Heap":24,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":17,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":96,"Signal":-52,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:39:00.942 RSL: RESULT = {"POWER":"ON"}
    15:39:00.944 RSL: POWER = ON
    15:39:25.899 HTP: Konsole
    15:40:00.200 RUL: TIME#MINUTE performs "MULT1 1"
    15:40:00.202 SRC: Rule
    15:40:00.205 CMD: Grp 0, Cmd 'MULT', Idx 1, Len 1, Pld 1, Data '1'
    15:40:00.210 RSL: RESULT = {"Mult1":"1.000"}
    15:40:00.447 RUL: VAR1#STATE==1 performs "Backlog SUB2 940; ADD2 -45"
    15:40:00.449 SRC: Rule
    15:40:00.452 CMD: Grp 0, Cmd 'BACKLOG', Idx 1, Len 18, Pld -99, Data 'SUB2 940; ADD2 -45'
    15:40:00.679 SRC: Backlog
    15:40:00.682 CMD: Grp 0, Cmd 'SUB', Idx 2, Len 3, Pld 940, Data '940'
    15:40:00.687 RSL: RESULT = {"Sub2":"-2640.000"}
    15:40:00.716 RUL: VAR2#STATE<0 performs "Power1 1"
    15:40:00.718 SRC: Rule
    15:40:00.721 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:40:00.727 RSL: STATE = {"Time":"2024-05-16T15:40:00","Uptime":"0T00:02:45","UptimeSec":165,"Heap":24,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":9,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":100,"Signal":-49,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:40:00.750 RSL: RESULT = {"POWER":"ON"}
    15:40:00.753 RSL: POWER = ON
    15:40:00.929 SRC: Backlog
    15:40:00.932 CMD: Grp 0, Cmd 'ADD', Idx 2, Len 3, Pld -45, Data '-45'
    15:40:00.937 RSL: RESULT = {"Add2":"-2685.000"}
    15:40:00.965 RUL: VAR2#STATE<0 performs "Power1 1"
    15:40:00.967 SRC: Rule
    15:40:00.969 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:40:00.976 RSL: STATE = {"Time":"2024-05-16T15:40:00","Uptime":"0T00:02:45","UptimeSec":165,"Heap":24,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":16,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":94,"Signal":-53,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:40:00.999 RSL: RESULT = {"POWER":"ON"}
    15:40:00.002 RSL: POWER = ON
    15:41:00.247 RUL: TIME#MINUTE performs "MULT1 1"
    15:41:00.249 SRC: Rule
    15:41:00.252 CMD: Grp 0, Cmd 'MULT', Idx 1, Len 1, Pld 1, Data '1'
    15:41:00.257 RSL: RESULT = {"Mult1":"1.000"}
    15:41:00.493 RUL: VAR1#STATE==1 performs "Backlog SUB2 941; ADD2 -45"
    15:41:00.495 SRC: Rule
    15:41:00.498 CMD: Grp 0, Cmd 'BACKLOG', Idx 1, Len 18, Pld -99, Data 'SUB2 941; ADD2 -45'
    15:41:00.727 SRC: Backlog
    15:41:00.731 CMD: Grp 0, Cmd 'SUB', Idx 2, Len 3, Pld 941, Data '941'
    15:41:00.736 RSL: RESULT = {"Sub2":"-3626.000"}
    15:41:00.767 RUL: VAR2#STATE<0 performs "Power1 1"
    15:41:00.769 SRC: Rule
    15:41:00.772 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:41:00.779 RSL: STATE = {"Time":"2024-05-16T15:41:00","Uptime":"0T00:03:45","UptimeSec":225,"Heap":24,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":10,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":96,"Signal":-52,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:41:00.801 RSL: RESULT = {"POWER":"ON"}
    15:41:00.803 RSL: POWER = ON
    15:41:00.977 SRC: Backlog
    15:41:00.980 CMD: Grp 0, Cmd 'ADD', Idx 2, Len 3, Pld -45, Data '-45'
    15:41:00.986 RSL: RESULT = {"Add2":"-3671.000"}
    15:41:01.012 RUL: VAR2#STATE<0 performs "Power1 1"
    15:41:01.013 SRC: Rule
    15:41:01.016 CMD: Grp 0, Cmd 'POWER', Idx 1, Len 1, Pld 1, Data '1'
    15:41:01.022 RSL: STATE = {"Time":"2024-05-16T15:41:01","Uptime":"0T00:03:46","UptimeSec":226,"Heap":24,"SleepMode":"Dynamic","Sleep":250,"LoadAvg":17,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"48:5D:35:98:57:72","Channel":11,"Mode":"11n","RSSI":96,"Signal":-52,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:41:01.045 RSL: RESULT = {"POWER":"ON"}
    15:41:01.048 RSL: POWER = ON


    Hab ich was übersehen?

    Gruß Jo

  • Release 13.4.0

    9:48:21.972 CMD: rule0
    19:48:21.974 SRC: WebConsole from 192.168.178.2
    19:48:21.977 CMD: Grp 0, Cmd 'RULE', Idx 0, Len 0, Pld -99, Data ''
    19:48:21.982 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":149,"Free":362,"Rules":"on Time#Initialized do Backlog VAR1 1; VAR2 %sunset% endon on VAR1#State==1 do Backlog SUB2 %time%; ADD2 %mem1% endon on Time#Minute do MULT1 1 endon"}}
    19:48:21.995 RSL: RESULT = {"Rule2":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":33,"Free":478,"Rules":"on VAR2#State<0 do Power1 1 endon"}}
    19:48:22.005 RSL: RESULT = {"Rule3":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}

    Wenn ich manuell ausschalten kommt der Ausgang nach ca. 40 Sekunden wieder.

  • Mein Fehler - in Rule1

    rule1
    on Time#Initialized do VAR1 1 endon
    on VAR1#State==1 do Backlog VAR2 %sunset%; SUB2 %time%; ADD2 %mem1% endon
    on Time#Minute do MULT1 1 endon


    rule2
    on VAR2#State<0 do Power1 1 endon


    PS: Wenn die Rule2 erweitert wird, lassen sich die relevanten Variablen beobachten!

    rule2
    on VAR2#State<0 do Power1 1 endon
    on VAR1#State do Backlog Sunset %sunset% endon
    on VAR1#State do Backlog Zeit %time% endon
    on VAR1#State do Backlog Offset %mem1% endon

    Einmal editiert, zuletzt von karoCB (16. Mai 2024 um 20:28) aus folgendem Grund: PS: