FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matze1999 am 05 Mai 2022, 11:35:58

Titel: [gelöst] at mit sunrise/sunset möglich?
Beitrag von: matze1999 am 05 Mai 2022, 11:35:58
Hallo,

z.Zt. habe ich das:

defmod BadNachtlicht at *22:00:00 set MQTT2_DVES_B60FAD_CH2 rgb FF9E1F ;; set MQTT2_DVES_B60FAD_CH2 pct 25 ;; set MQTT2_DVES_B60FAD_CH2 on-till-overnight 06:00:00

Ich würde das aber gern so schalten wollen:

22:00 Uhr oder wenn sunset später ist mit sunset  einschalten
06:00 Uhr oder wenn sunrise eher ist mit sunrise ausschalten

soll ich das eher mit DOIF versuchen?

matze1999
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: Beta-User am 05 Mai 2022, 11:45:52
sehe keine prinzipiellen Hindernisse.

Für Teil 1 (at) siehe "help at" (unter Beachtung von "computeAfterInit", falls die "Eckdaten" aus einem anderen Device kommen sollen), und für Teil 2 (on-till-overnight) verwendet MQTT2_DEVICE dann SetExtensions, wozu unter "help set" ein paar Hinweise zu finden sind, wie das mit Perl für die Zeit aussieht.
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: betateilchen am 05 Mai 2022, 12:19:01
Zitat von: Beta-User am 05 Mai 2022, 11:45:52
Für Teil 1 (at) siehe "help at"
...
für Teil 2 (on-till-overnight)

Um "on-till-overnight" geht es doch gar nicht. Das Ausschalten soll künftig anhand von sunrise erfolgen.

Für Teil 3

Zitat von: matze1999 am 05 Mai 2022, 11:35:58
22:00 Uhr oder wenn sunset später ist mit sunset  einschalten
06:00 Uhr oder wenn sunrise eher ist mit sunrise ausschalten

siehe "help SUNRISE_EL"

Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: Beta-User am 05 Mai 2022, 12:35:45
Zitat von: betateilchen am 05 Mai 2022, 12:19:01
Um "on-till-overnight" geht es doch gar nicht. Das Ausschalten soll künftig anhand von sunrise erfolgen.
Aha. Der TE hatte halt einen "on-till-overnight"-Befehl zum Ausschalten in seinem Post drin, von daher war ich davon ausgegangen, dass er nicht per 2. at ausschalten will, sondern "nur" den Befehl anpassen ;) .

Zitat
Für Teil 3

siehe "help SUNRISE_EL"
... kann man auch "help at" anschauen. Da sind Beispiele mit Grenzen drin ::) ...
Es schadet aber sicher nicht, sich die Erläuterungen an dieser Stelle zu "Teil 3" auch noch anzuschauen.
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: matze1999 am 05 Mai 2022, 21:57:30
Hallo,

Danke, werde ich mir alles in Ruhe anschauen und dann berichten.

matze1999
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: DetlefR am 05 Mai 2022, 22:16:19

define lichtan at *{sunset("REAL",0,"22:00","23:59")} mach was an
define lichtaus at *{sunrise("REAL",0,"00:00","06:00")} mach was aus

Bleibt die philosophische Frage, wann ist  Sonnenauf und Untergang.
Das kann man hier  https://wiki.fhem.de/wiki/SUNRISE_EL (https://wiki.fhem.de/wiki/SUNRISE_EL) nachlesen und lange darüber streiten  ;D
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: matze1999 am 06 Mai 2022, 15:03:36
Hallo,

ich tu mich etwas schwer:

hier noch mal die Anforderung:

jeden Tag, soll ein Nachtlicht um 22:00 Uhr angeschaltet werden (auch wenn es vorher schon dunkel ist), ausser wenn es draussen noch nach 22:00 Uhr hell ist, dann soll es erst bei Sonnenuntergang eingeschaltet werden.

eigentlich muss geprüft werden, ob der Sonnenuntergang nach 22:00 Uhr stattfindet, wenn nicht um 22:00 Uhr einschalten, wenn ja erst mit Sonnenuntergang einschalten.

also ein DOIF (?)

Wenn Sunset > 22:00 Uhr dann wenn sunset dann ein sonst wenn 22:00 Uhr dann ein

matze1999
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: Beta-User am 06 Mai 2022, 15:12:14
Zitat von: matze1999 am 06 Mai 2022, 15:03:36
ich tu mich etwas schwer:
Das merkt man. Die eigentliche Frage ist: Warum?
Alle Bausteinchen liegen doch vor deiner Nase... :o

Zitat
also ein DOIF (?)
No comment. DOIF ist mAn. was für Leute, die wissen was sie tun, und ich kann das z.B. nicht, ist mir zu kompliziert.

Ich würde die Bausteinchen jedenfalls so zusammenbauen:
defmod BadNachtlicht at *{sunset('CIVIL',0,'22:00','23:59')} set MQTT2_DVES_B60FAD_CH2 rgb FF9E1F ;; set MQTT2_DVES_B60FAD_CH2 pct 25 ;; set MQTT2_DVES_B60FAD_CH2 on-till-overnight {sunrise('REAL',0,'00:00','06:00')}
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: JudgeDredd am 06 Mai 2022, 15:23:32
DOIF geht natürlich auch, Du musst nur 2 unterschiedliche Trigger nehmen:
defmod BadNachtlicht DOIF ( ( [{sunset('CIVIL',0,'22:00','23:59')}] && [?22:00-23:59] ) | ( [22:00] && [?{sunset('CIVIL',0,'22:00','23:59')}] ) )\
(<Deine Befehle>,<Deine Befehle>,<Deine Befehle>)
Titel: Antw:at mit sunrise/sunset möglichß
Beitrag von: matze1999 am 08 Mai 2022, 13:33:43
hallo, vielen Dank, beide Varianten tun es.

matze1999
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Damian am 08 Mai 2022, 13:55:17
Irgendwie habe ich das Problem nicht verstanden. Beide sun-Funktionen bringen schon die gewünschte Funktionalität, da muss man doch nichts zusätzlich definieren/programmieren:

defmod di_sunset DOIF ([{sunset('CIVIL',0,'22:00','23:59')}]) (set bla on) DOELSEIF ([{sunrise('CIVIL',0,'03:00','06:00')}]) (set bla off)
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: matze1999 am 08 Mai 2022, 18:38:45
@Damian,

sunset und sunrise als alleinigen Trigger möchte ich nur, wenn der Sonnenuntergang nach 22.00 Uhr stattfindet und der Sonnenaufgang vor 6:00 Uhr. Sonst soll es 22:00 und 06.00 Uhr schalten.

matze1999
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Damian am 08 Mai 2022, 18:41:45
Zitat von: matze1999 am 08 Mai 2022, 18:38:45
@Damian,

sunset und sunrise als alleinigen Trigger möchte ich nur, wenn der Sonnenuntergang nach 22.00 Uhr stattfindet und der Sonnenaufgang vor 6:00 Uhr. Sonst soll es 22:00 und 06.00 Uhr schalten.

matze1999

Und genau das macht meine Definition, probiere es aus ;)
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: matze1999 am 08 Mai 2022, 18:48:17
@Damian,

ja, ich werde das probieren.

matze1999
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: matze1999 am 09 Mai 2022, 16:31:05
@Damian,

das Nachtlicht hat sich früh nicht abgeschaltet

defmod BadNachtlicht.di DOIF ([{sunset('CIVIL',0,'22:00','23:59')}]) (set MQTT2_DVES_B60FAD_CH2 rgb FF9E1F,set MQTT2_DVES_B60FAD_CH2 pct 25,set MQTT2_DVES_B60FAD_CH2 on) DOELSEIF ([{sunrise('CIVIL',0,'03:00','06:00')}]) (set MQTT2_DVES_B60FAD_CH2 off)


obwohl das

([{sunrise('CIVIL',0,'03:00','06:00')}])

bedeutet bei Sonnenaufgang aber nicht vor 03:00 und nicht nach 06:00, sind dann 03:00 und 06:00 Trigger?

matze1999
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: matze1999 am 09 Mai 2022, 16:37:23
jetzt versuch ich es mal damit:

defmod BadNachtlicht.at at *{sunset('CIVIL',0,'22:00','23:59')} set MQTT2_DVES_B60FAD_CH2 rgb FF9E1F ;; set MQTT2_DVES_B60FAD_CH2 pct 25 ;; set MQTT2_DVES_B60FAD_CH2 on-till-overnight {sunrise('REAL',0,'00:00','06:00')}

matze1999
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Damian am 09 Mai 2022, 16:43:08
Zitat von: matze1999 am 09 Mai 2022, 16:31:05
@Damian,

das Nachtlicht hat sich früh nicht abgeschaltet

defmod BadNachtlicht.di DOIF ([{sunset('CIVIL',0,'22:00','23:59')}]) (set MQTT2_DVES_B60FAD_CH2 rgb FF9E1F,set MQTT2_DVES_B60FAD_CH2 pct 25,set MQTT2_DVES_B60FAD_CH2 on) DOELSEIF ([{sunrise('CIVIL',0,'03:00','06:00')}]) (set MQTT2_DVES_B60FAD_CH2 off)


obwohl das

([{sunrise('CIVIL',0,'03:00','06:00')}])

bedeutet bei Sonnenaufgang aber nicht vor 03:00 und nicht nach 06:00, sind dann 03:00 und 06:00 Trigger?

matze1999

Wenn er nicht geschaltet hat, dann liegt es aber nicht an der Definition. Wann er geschaltet hat oder schalten wird, siehst du an den Readings.
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: matze1999 am 10 Mai 2022, 07:58:10
hallo,

ich werde es noch mal versuchen.

matze1999
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Damian am 10 Mai 2022, 10:15:35
Zitat von: matze1999 am 10 Mai 2022, 07:58:10
hallo,

ich werde es noch mal versuchen.

matze1999
Du kannst es auch direkt in der Kommandozeile testen:

{sunset('CIVIL',0,'22:00','23:59')}

liefert 22:00 als Triggerzeit, weil der Sonnenuntergang vor 22:00 Uhr ist.

Wenn in ein paar Wochen der Sonnenuntergang später als 22:00 Uhr sein wird, dann wird die Sonnenuntergangszeit größer als 22:00 Uhr als Triggerzeit geliefert.

Bei

{sunrise('CIVIL',0,'03:00','06:00')}

kommt jetzt eine Zeit vor 06:00 Uhr (bzw. Zeit+24 Stunden für den nächsten Tag), im Herbst wird dann 06:00 Uhr als Triggerzeit kommen, wenn der Sonnenaufgang nach 06:00 Uhr kommt.

So ist die Syntax der sun-Funktionen beschrieben und so ist es auch von dir auch gewollt gewesen.


Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Beta-User am 10 Mai 2022, 10:28:44
Zitat von: Damian am 10 Mai 2022, 10:15:35
so ist es auch von dir auch gewollt gewesen.
Bisher war noch nirgends die Frage wirklich beantwortet worden, die DetelefR zurecht gestellt hattte...
Zitat von: DetlefR am 05 Mai 2022, 22:16:19
Bleibt die philosophische Frage, wann ist  Sonnenauf und Untergang.

'CIVIL' dürfte in den meisten Fällen eine gute Näherung sein, und das etwas provokante 'REAL' hat matze1999 vermutlich schlicht überlesen...?
Zitat von: matze1999 am 09 Mai 2022, 16:37:23
jetzt versuch ich es mal damit:

defmod BadNachtlicht.at at *{sunset('CIVIL',0,'22:00','23:59')} set MQTT2_DVES_B60FAD_CH2 rgb FF9E1F ;; set MQTT2_DVES_B60FAD_CH2 pct 25 ;; set MQTT2_DVES_B60FAD_CH2 on-till-overnight {sunrise('REAL',0,'00:00','06:00')}

Wie dem auch sei, man kann auch die vorhergesagte Wolkendecke noch berücksichtigen, z.B. indem man Twilight mit ins Boot holt. Aber solange solche "Kleinigkeiten" wie CIVIL und REAL noch nicht mal wahrgenommen werden, ist es wohl müßig, das zu vertiefen ::) ...
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Damian am 10 Mai 2022, 10:31:31
Zitat von: Beta-User am 10 Mai 2022, 10:28:44
Bisher war noch nirgends die Frage wirklich beantwortet worden, die DetelefR zurecht gestellt hattte...

Das stimmt nicht, das war eindeutig formuliert gewesen:

ZitatIch würde das aber gern so schalten wollen:

22:00 Uhr oder wenn sunset später ist mit sunset  einschalten
06:00 Uhr oder wenn sunrise eher ist mit sunrise ausschalten
Titel: Antw:[gelöst] at mit sunrise/sunset möglich?
Beitrag von: Beta-User am 10 Mai 2022, 10:49:52
Zitat von: Damian am 10 Mai 2022, 10:31:31
Das stimmt nicht, das war eindeutig formuliert gewesen:
Aha... Stimmt.

Jedenfalls, wenn man unterstellt, dass bewußt auf den default "CIVIL" abgestellt wurde ::) . Lassen wir das mal so stehen...