[gelöst] at mit sunrise/sunset möglich?

Begonnen von matze1999, 05 Mai 2022, 11:35:58

Vorheriges Thema - Nächstes Thema

matze1999

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

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

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"

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

matze1999

Hallo,

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

matze1999

DetlefR


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 nachlesen und lange darüber streiten  ;D

matze1999

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

Beta-User

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')}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

JudgeDredd

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>)
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

matze1999

hallo, vielen Dank, beide Varianten tun es.

matze1999

Damian

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)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

matze1999

@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

Damian

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 ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

matze1999

@Damian,

ja, ich werde das probieren.

matze1999

matze1999

#14
@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