FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Heiner am 12 Dezember 2024, 09:06:58

Titel: Aussenbeleuchtung schalten
Beitrag von: Heiner am 12 Dezember 2024, 09:06:58
Hi,
ich versuche mit DOIF meine aussenbeleuchtung von 6:30 bis Sonnenaufgang automatisiert einzuschalten.
Dabei soll die Lampe natuerluch aus bleiben falls Sonnenaufgang vor 06:30 ist.

DOIF
         (([{sunrise(0)}] gt [06:30]) and [06:30]) (set Lampe on)
DOELSEIF ([{sunrise(0)}]) (set Lampe off)

auch wenn ich "gt" duchr ">" ersetze klappt es nicht.
Die Timer zeigen 07:45, 06:30 sowie 7:45 an

Der Fehler kann meiner Meinung nach nur im Vergleich der Zeiten liegen. Wie  kann ich das loesen?

Vielen Dank.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Damian am 12 Dezember 2024, 09:14:09
Das machst du besser mit einem Zeitintervall:
 
DOIF ([{sunrise(0)}-06:30]) (set Lampe on)
DOELSE (set lampe off)
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 12 Dezember 2024, 10:25:28
Ich glaube so war der Wunsch.
DOIF ([06:30]-{sunrise(0)}) (set Lampe on)
DOELSE (set lampe off)

Mein Beispiel:
([[$SELF:Terrassenfenster_Morgen_Beginn]-{sunrise_abs("REAL", -300, "[$SELF:Terrassenfenster_Morgen_Beginn]","[$SELF:Terrassenfenster_Morgen_Ende]")}] ) (set HUEGroup88 on)
Die Variablen setzte ich je nach Saison und Wochentag jede Nacht neu.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Damian am 12 Dezember 2024, 11:24:24
ja, die Grenzen bei Sunrise sind wichtig, damit im Sommer, wenn der Sonnenaufgang vor 6:30 ist, die Lampe nicht zum nächsten Tag brennt.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 12 Dezember 2024, 12:59:45
Zitat von: rabehd am 12 Dezember 2024, 10:25:28Ich glaube so war der Wunsch.
DOIF ([06:30]-{sunrise(0)}) (set Lampe on)
DOELSE (set lampe off)

Sollte hier nicht im Sommer bei sunrise gegen 04:00, die lampe zwar um 6:30 angehen obwohl sunrise schon lange vorbei ist, und auch nicht mehr ausgehen bis zum naechsten morgen gegen 04:00.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 12 Dezember 2024, 13:01:26
Zitat von: Damian am 12 Dezember 2024, 09:14:09Das machst du besser mit einem Zeitintervall:
 
DOIF ([{sunrise(0)}-06:30]) (set Lampe on)
DOELSE (set lampe off)

Aber hier wuerde im sommer bei subrise gegen 04:00 die Lampe schon angehen, das soll aber nicht der Fall sein
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Damian am 12 Dezember 2024, 13:13:36
Zitat von: Heiner am 12 Dezember 2024, 13:01:26
Zitat von: Damian am 12 Dezember 2024, 09:14:09Das machst du besser mit einem Zeitintervall:
 
DOIF ([{sunrise(0)}-06:30]) (set Lampe on)
DOELSE (set lampe off)

Aber hier wuerde im sommer bei subrise gegen 04:00 die Lampe schon angehen, das soll aber nicht der Fall sein

ja und im Winter würde sie beim Sonnenaufgang angehen und am nächsten Tag um 06:30 wieder ausgehen, daher muss sunrise mit entsprechenden Übergabeparametern aufgerufen werden - 0 reicht da nicht aus.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 12 Dezember 2024, 13:14:46
Zitat von: Heiner am 12 Dezember 2024, 13:01:26Aber hier wuerde im sommer bei subrise gegen 04:00 die Lampe schon angehen, das soll aber nicht der Fall sein
Stimmt, ich hatte das falsch gelesen.

Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 12 Dezember 2024, 13:30:18
Ich hab mal ein Eventreading angelegt und das geht jetzt:

event_Readings:Winter:sunrise_abs > 06:30
ergibt aktuell im Winter eine 1 ist also Wahr

allergdings passt es immer nocht nicht innerhalb des DOIF Definition:

((sunrise_abs > 06:30) and [06:30]) (set tLampe on)ergibt Error: syntax error, line 1, near "06:"
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 12 Dezember 2024, 13:42:19
Warum verweigerst Du Dich dem Zeitraum? Das war unser Vorschlag.
Das List steht auch noch aus.

Zitat von: Heiner am 12 Dezember 2024, 13:30:18((sunrise_abs > 06:30) and [06:30])
Meine Vermutung das ist Quatsch. Funktioniert es denn ohne "and [06:30]"? Sunrise muss auch nicht triggern, sondern nur abgefragt werden, wenn wir über Deine Lösungsidee reden.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Nobbynews am 12 Dezember 2024, 14:13:32
Mal 'ne doofe Frage:
Warum die Aufgabenstellung nicht mit zwei simplen at erschlagen?
https://wiki.fhem.de/wiki/SUNRISE_EL#Steuerung (https://wiki.fhem.de/wiki/SUNRISE_EL#Steuerung)

Ok, ist halt kein doif
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 12 Dezember 2024, 14:41:18
Dann müßte man ja im Wiki lesen  ;D
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: RalfRog am 12 Dezember 2024, 22:01:57
Hi ich machs so mit AT

Täglich um 6.12 Uhr wenn es noch nicht Tag ist. Der Hintergrund für "on-till" war vor allem weil Homematic selbständig ohne FHEM wieder ausschaltet.

 
*06:12:00 {if (!isday("HORIZON=-2.0", 0 , "06:11", "21:00")) { fhem('set LampeTerasse on-till {sunrise("HORIZON=-2.0")}');;}}
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 13 Dezember 2024, 19:23:38
Zitat von: rabehd am 12 Dezember 2024, 13:42:19Warum verweigerst Du Dich dem Zeitraum? Das war unser Vorschlag.
Das List steht auch noch aus.

Zitat von: Heiner am 12 Dezember 2024, 13:30:18((sunrise_abs > 06:30) and [06:30])
Meine Vermutung das ist Quatsch. Funktioniert es denn ohne "and [06:30]"? Sunrise muss auch nicht triggern, sondern nur abgefragt werden, wenn wir über Deine Lösungsidee reden.

tu ich nicht hab doch geantwortet. Der Zeitraum  ist ungeeignet wie ich beschrieben habe. Nochmal: die Lampe soll nur um 6:30 angehen auch wenn sunrise spaeter liegt . sprich es ist noch dunkel, aber der Zeitungsjunge muss nicht im dunkel stehen.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 13 Dezember 2024, 19:24:34
Zitat von: rabehd am 12 Dezember 2024, 13:42:19Warum verweigerst Du Dich dem Zeitraum? Das war unser Vorschlag.
Das List steht auch noch aus.

Zitat von: Heiner am 12 Dezember 2024, 13:30:18((sunrise_abs > 06:30) and [06:30])
Meine Vermutung das ist Quatsch. Funktioniert es denn ohne "and [06:30]"? Sunrise muss auch nicht triggern, sondern nur abgefragt werden, wenn wir über Deine Lösungsidee reden.

tu ich nicht hab doch geantwortet. Der Zeitraum  ist ungeeignet wie ich beschrieben habe. Nochmal: die Lampe soll nur um 6:30 angehen auch wenn sunrise spaeter liegt . sprich es ist noch dunkel, aber der Zeitungsjunge muss nicht im dunkel stehen.
Zitat von: rabehd am 12 Dezember 2024, 14:41:18Dann müßte man ja im Wiki lesen  ;D
oh das hilft, Danke >:(
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 13 Dezember 2024, 19:29:42
Zitat von: rabehd am 12 Dezember 2024, 13:42:19Warum verweigerst Du Dich dem Zeitraum? Das war unser Vorschlag.
Das List steht auch noch aus.

Zitat von: Heiner am 12 Dezember 2024, 13:30:18((sunrise_abs > 06:30) and [06:30])
Meine Vermutung das ist Quatsch. Funktioniert es denn ohne "and [06:30]"? Sunrise muss auch nicht triggern, sondern nur abgefragt werden, wenn wir über Deine Lösungsidee reden.

tu ich nicht hab doch geantwortet. Der Zeitraum  ist ungeeignet wie ich beschrieben habe. Nochmal: die Lampe soll nur um 6:30 angehen auch wenn sunrise spaeter liegt . sprich es ist noch dunkel, aber der Zeitungsjunge muss nicht im dunkel stehen.
Zitat von: rabehd am 12 Dezember 2024, 14:41:18Dann müßte man ja im Wiki lesen  ;D
oh das hilft, Danke >:(
Zitat von: Nobbynews am 12 Dezember 2024, 14:13:32Mal 'ne doofe Frage:
Warum die Aufgabenstellung nicht mit zwei simplen at erschlagen?
https://wiki.fhem.de/wiki/SUNRISE_EL#Steuerung (https://wiki.fhem.de/wiki/SUNRISE_EL#Steuerung)

Ok, ist halt kein doif
eigentlich ist DOIF ja ein maechtiges tool, sollte damit gehen, der Wikieintrag schaltet aber wieder anders, dort ist di Lampe die ganze nacht an bis sunrise ( innerhalb des Zeitfensters) also nicht das was ich will.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 13 Dezember 2024, 19:30:46
Zitat von: rabehd am 12 Dezember 2024, 13:42:19Warum verweigerst Du Dich dem Zeitraum? Das war unser Vorschlag.
Das List steht auch noch aus.

Zitat von: Heiner am 12 Dezember 2024, 13:30:18((sunrise_abs > 06:30) and [06:30])
Meine Vermutung das ist Quatsch. Funktioniert es denn ohne "and [06:30]"? Sunrise muss auch nicht triggern, sondern nur abgefragt werden, wenn wir über Deine Lösungsidee reden.

tu ich nicht hab doch geantwortet. Der Zeitraum  ist ungeeignet wie ich beschrieben habe. Nochmal: die Lampe soll nur um 6:30 angehen auch wenn sunrise spaeter liegt . sprich es ist noch dunkel, aber der Zeitungsjunge muss nicht im dunkel stehen.
Zitat von: rabehd am 12 Dezember 2024, 14:41:18Dann müßte man ja im Wiki lesen  ;D
oh das hilft, Danke >:(
Zitat von: Nobbynews am 12 Dezember 2024, 14:13:32Mal 'ne doofe Frage:
Warum die Aufgabenstellung nicht mit zwei simplen at erschlagen?
https://wiki.fhem.de/wiki/SUNRISE_EL#Steuerung (https://wiki.fhem.de/wiki/SUNRISE_EL#Steuerung)

Ok, ist halt kein doif
eigentlich ist DOIF ja ein maechtiges tool, sollte damit gehen, der Wikieintrag schaltet aber wieder anders, dort ist di Lampe die ganze nacht an bis sunrise ( innerhalb des Zeitfensters) also nicht das was ich will.
Zitat von: RalfRog am 12 Dezember 2024, 22:01:57Hi ich machs so mit AT

Täglich um 6.12 Uhr wenn es noch nicht Tag ist. Der Hintergrund für "on-till" war vor allem weil Homematic selbständig ohne FHEM wieder ausschaltet.

 
*06:12:00 {if (!isday("HORIZON=-2.0", 0 , "06:11", "21:00")) { fhem('set LampeTerasse on-till {sunrise("HORIZON=-2.0")}');;}}
Hey Danke das scheint eine Loesung zu sein, nicht mit DOIF aber das was ich wollte. Ich probiers gleich mal aus. Danke  ;D
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Damian am 13 Dezember 2024, 19:56:09
Und hier noch mal ein Vorschlag mit DOIF:

DOIF ([06:30-{sunrise('CIVIL',0,'06:30','09:00')}]) (set lampe on)
DOELSE (set lampe off)

Bedeutet:

Schalte Lampe um 6:30 ein bis zum Sonnenaufgang. Der Sonnenaufgang ist begrenzt durch 06:30 Uhr und 09:00 Uhr.

Im Sommer wird also das Zeitintervall von 6:30 bis 6:30 sein. Intervalle mit gleicher Start- und Stopzeit werden vom DOIF als solche erkannt, so dass in diesem Fall gar nicht erst geschaltet wird.


Titel: Aw: Aussenbeleuchtung schalten -
Beitrag von: Heiner am 17 Dezember 2024, 07:54:24
Super das war es. Es ist so simpel wenn man die Loesung sieht  :-[
Vielen Dank.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 02 April 2025, 08:49:16
Hallo, muss das noch mal oeffnen. Die Loesung geht doch nicht.

im Winter gehts. #der #zeitintervall startet um 6:30 und stoppt mit sunrise aber spaetestens um 09:00

im Sommer gehts nicht. Die Lampe geht um 06:30 an obwohl sunrise schon vorbei ist, der "bis befehl" ist obsolete.

Ich muesste also doch erstmal vergleichen ob sunrise nach 06:30 ist und genau daran bin ich ja immer gescheitert.

Hat noch jemand eine Idee?

Danke schon mal

Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 02 April 2025, 12:56:46
Das ewige Problem. Gib doch mal {sunrise('CIVIL',0,'06:30','09:00')} in die Befehlszeile ein. Bei mir kommt da 30:30:00 zurück.

Also {sunrise_abs('CIVIL',0,'06:30','09:00')} wird wohl Deine Lösung sein.
Hat nichts mit Sommer oder Winter zu tun.

So sieht dass bei mir aus:
([[$SELF:Terrassenfenster_Morgen_Beginn]-{sunrise_abs("REAL", -300, "[$SELF:Terrassenfenster_Morgen_Beginn]","[$SELF:Terrassenfenster_Morgen_Ende]")}] and  [AlarmStatus] ne "ausgelöst") (IF ([Weihnachtszeit] ne "ja") (set HueBridge_HUEGroup88 on)) ()
DOELSEIF ([([{sunrise_abs("REAL", -240, "[$SELF:Terrassenfenster_Morgen_Beginn]","[$SELF:Terrassenfenster_Morgen_Ende]")}]+[00:02:00])] and [?Weihnachtszeit] eq "nein" and [AlarmStatus] ne "ausgelöst") (IF ([HueBridge_HUEGroup88] ne "off") (set HueBridge_HUEGroup88 off)) ()
DOELSEIF([{sunset_abs("REAL", -600, "15:55","21:30")}-[$SELF:Terrassenfenster_Abend_Ende]] and [?Weihnachtszeit] eq "nein" and [AlarmStatus] ne "ausgelöst") (set HueBridge_HUEGroup88 on) ()
DOELSEIF([{sunset_abs("REAL", -600, "15:55","21:30")}-[$SELF:Terrassenfenster_Abend_Ende]] and [?Weihnachtszeit] eq "ja" and [AlarmStatus] ne "ausgelöst") (set HueBridge_HUEGroup88 on) ()
DOELSEIF ([([$SELF:Terrassenfenster_Abend_Ende]+60)] and [AlarmStatus] ne "ausgelöst") (IF ([HueBridge_HUEGroup88] ne "off") (set HueBridge_HUEGroup88 off)) ()
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 04 April 2025, 08:47:44
Hi, danke fuer die Antwort aber das ist nicht das Problem.

Ich will die Lampe nicht die ganze Nacht anhaben sondern erst ab 06:30 bis Sonnenaufgang.
Das bedeutet im "Sommer" (Sonenaufgang vor 06:30) bleibt die Lampe  immer aus.

Alle Codevorschlaege ignorieren diesen Aspekt.

sunrise oder sunrise abs und ihre von bis parameter allein nuetzen nichts das die nur die Ausschaltzeit definiert, die einschaltzeit die eigentlich fix ist mus ich aber noch mit sunrise vergleichen und das klappt nicht.

alternativ koennte man ggf ein weiteres Kritrium mit Datum einbauen - nicht so elegant gine aber ggf auch, ich weis hier aber auch nicht wie.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 04 April 2025, 09:18:19
Dann mache es doch einfach.
Prüfe um 06:30. Ist Sonnenaufgang in der Zukunft, dann schalte bis Sonnenaufgang, ansonsten mache nichts.
Ein at das ein IF enthält.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Prof. Dr. Peter Henning am 04 April 2025, 11:03:21
Tipp: Modul YAAHM ansehen. Dort kann man solche Aktionen in einer bequemen Oberfläche eintragen.

LG

pah
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 04 April 2025, 20:52:12
Zitat von: rabehd am 04 April 2025, 09:18:19Dann mache es doch einfach.
Prüfe um 06:30. Ist Sonnenaufgang in der Zukunft, dann schalte bis Sonnenaufgang, ansonsten mache nichts.
Ein at das ein IF enthält.

ok, wie genau geht die Abfrage "Ist der Sonnenaufgang in dr Zukunft" ?
Ich habs so versucht: ([{sunrise(0)}] gt [06:30]  klappt aber leider nicht
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 04 April 2025, 21:53:02

"Klappt nicht" ist für mich keine Fehlermeldung.
Da stimmen schon mal die Klammern nicht und ob GT sinnvoll zum Vergleichen von Zeiten ist...

Die Suche mit perl, Uhrzeit und Vergleich findet gute Treffer.
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Prof. Dr. Peter Henning am 05 April 2025, 10:02:38
Zitat von: Heiner am 04 April 2025, 20:52:12([{sunrise(0)}] gt [06:30] 
Bitte:
- was sollen die eckigen Klammern bewirken?
- was soll der String-Operator "gt" bewirken?

LG

pah
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: rabehd am 05 April 2025, 13:32:10
https://forum.fhem.de/index.php?topic=136777.0 (https://forum.fhem.de/index.php?topic=136777.0)
Ein bisschen suchen im Forum.
*06:30:00 { if ( isday() ) { fhem('Schalte ein bis sunrise') } }
Titel: Aw: Aussenbeleuchtung schalten
Beitrag von: Heiner am 06 April 2025, 12:09:02
Hi, danke ja das klappt.

Innerhalb DOIF siehts dann so aus:

(!(isday()) and [06:30])  (set lampe on)
DOELSEIF
([{sunrise(0)}]) (set lampe off)

Danke rabehd