FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: lenn1 am 28 Mai 2017, 09:18:52

Titel: [Gelöst] Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: lenn1 am 28 Mai 2017, 09:18:52
Hallo,
habe in fhem definiert ,dass unser Licht im Haus abends bei Sonnenuntergang angeschaltet wird. Alles Prima.
Bis jetzt, da die Sonne nach 21 Uhr untergeht.

Wir gehen abends manchmal allemann um 21 Uhr zu Bett und mein Problem besteht dann, dass danach das Licht eingeschaltet wird, wenn wir schon schlafen  ::)

Eine Lösung ist, über den Sommer das at zu deaktivieren. Find ich aber nicht besonders smart-home like.
Kann ich irgendwie ein if davor bauen, dass einmal geschaut wird, wie spät es ist und dann auf das Schalten verzichtet wird ?

Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: CoolTux am 28 Mai 2017, 09:38:31
Ja das kannst Du.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: RaspiLED am 28 Mai 2017, 09:41:12
Hi,
Mach doch zusätzliches at um 21:00 und deaktiviere/lösche damit die anderen und morgens aktivierst Du wieder. Oder Du baust die at als mittels doif um oder Du benutzt weekdaytimer: https://wiki.fhem.de/wiki/WeekdayTimer#Anwendungsbeispiele
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: Frank_Huber am 28 Mai 2017, 10:42:28
[{twilight("Sonnenstand","sr_civil","06:00","08:00")}]
Ausführen zu Sonnenaufgang, aber nicht vor 6 Uhr und nicht nach 8 Uhr.
Das ganze ist in einem doif.

Gesendet von meinem S3_32 mit Tapatalk

Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: kadettilac89 am 28 Mai 2017, 12:04:43
Commandref "at" ...

# Schalte lamp1 zum Sonnenuntergang ein, aber nicht vor 18:00 und nicht nach 21:00
    define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on

Kein Doif oder ähnliches nötig. Das "at" hast ja scheinbar schon.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: lenn1 am 28 Mai 2017, 13:34:05
Zitat von: kadettilac89 am 28 Mai 2017, 12:04:43
Commandref "at" ...

# Schalte lamp1 zum Sonnenuntergang ein, aber nicht vor 18:00 und nicht nach 21:00
    define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on

Kein Doif oder ähnliches nötig. Das "at" hast ja scheinbar schon.
Dann geht aber das Licht genau um 21.00 an.
So ähnlich ist es schon jetzt definiert. Um 21 Uhr ist es hier so hell dass man nicht mal sieht dass das Licht an ist.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: lenn1 am 28 Mai 2017, 13:35:16
Zitat von: Frank_Huber am 28 Mai 2017, 10:42:28
[{twilight("Sonnenstand","sr_civil","06:00","08:00")}]
Ausführen zu Sonnenaufgang, aber nicht vor 6 Uhr und nicht nach 8 Uhr.
Das ganze ist in einem doif.

Gesendet von meinem S3_32 mit Tapatalk

Das probiere ich mal...
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: Frank_Huber am 28 Mai 2017, 13:45:50
Das wird den gleichen Effekt haben wie der Vorschlag von kadettilac89, nur hast du mit dem twilight Modul mehrere Zeiten zur Auswahl.

Was du wohl brauchst:
Definiere dir das twilight Modul (bei mir "Sonnenstand")
Dann in nem doif
([{twilight("Sonnenstand","ss_civil","17:00","21:00")}] and [Sonnenstand:light] <3) (set Licht on)

Das Light reading ist die Helligkeit draussen von 1 (dunkel) bis 6 (hell)

Gesendet von meinem S3_32 mit Tapatalk

Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: kadettilac89 am 28 Mai 2017, 14:16:09
Zitat von: lenn1 am 28 Mai 2017, 13:34:05
Dann geht aber das Licht genau um 21.00 an.
So ähnlich ist es schon jetzt definiert. Um 21 Uhr ist es hier so hell dass man nicht mal sieht dass das Licht an ist.
Dass es um 21 noch hell ist verschuldet aber nicht fhem ;) . Die genannte at Funktion schaltet nicht mehr wenn Sunset nach 21 ist.

Wenn ich deine anforderung nicht verstehe bitte ein anderes Beispiel


Gesendet von meinem SM-G925F mit Tapatalk

Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: KernSani am 28 Mai 2017, 14:17:40
Oder einfach {if ($hour < 21) ...

Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: kadettilac89 am 28 Mai 2017, 14:19:31
Zitat von: KernSani am 28 Mai 2017, 14:17:40
Oder einfach {if ($hour < 21) ...
Es gibt viele Wege. ...
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: KernSani am 28 Mai 2017, 14:21:29
Zitat von: kadettilac89 am 28 Mai 2017, 14:16:09
Dass es um 21 noch hell ist verschuldet aber nicht fhem ;) . Die genannte at Funktion schaltet nicht mehr wenn Sunset nach 21 ist.

Wenn ich deine anforderung nicht verstehe bitte ein anderes Beispiel


Gesendet von meinem SM-G925F mit Tapatalk
Sunset liefert immer eine Uhrzeit zurück, in diesem Beispiel zur Zeit 21:00 - dann schaltet das AT auch um 21:00.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: kadettilac89 am 28 Mai 2017, 14:36:31
Zitat von: KernSani am 28 Mai 2017, 14:21:29
Sunset liefert immer eine Uhrzeit zurück, in diesem Beispiel zur Zeit 21:00 - dann schaltet das AT auch um 21:00.
Richtig. Heute z.b 21.03 somit wird nicht geschaltet. Wenn genau 21.00 nicht mehr geschaltet werden soll muss halt 20.59 in die def.  Sobald die Sonne wieder vor 21 untergeht wird wieder geschaltet.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: KernSani am 28 Mai 2017, 14:45:37
Zitat von: kadettilac89 am 28 Mai 2017, 14:36:31
Richtig. Heute z.b 21.03 somit wird nicht geschaltet. Wenn genau 21.00 nicht mehr geschaltet werden soll muss halt 20.59 in die def.  Sobald die Sonne wieder vor 21 untergeht wird wieder geschaltet.
Du hast mich falsch verstanden- sunset liefert immer einen Wert zurück, unabhängig davon, ob der Sonnenuntergang nun innerhalb oder außerhalb des Intervals liegt. AT sieht nur diesen Wert und triggert zu diesem Zeitpunkt
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: kadettilac89 am 28 Mai 2017, 15:34:32
Zitat von: KernSani am 28 Mai 2017, 14:45:37
Du hast mich falsch verstanden- sunset liefert immer einen Wert zurück, unabhängig davon, ob der Sonnenuntergang nun innerhalb oder außerhalb des Intervals liegt. AT sieht nur diesen Wert und triggert zu diesem Zeitpunkt

Wenn das AT hier um 21 IMMER schaltet wenn Sunset noch nicht erreicht ist, ist die Commandref irreführend. Dort heißt es nämlich " aber nicht vor 18:00 und nicht nach 21:00". Wenn hier um 21 immer gemeint ist, sollte es "jedoch spätestens" heißen.

Egal, der T-Ersteller hat eine Lösung gefunden.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: lenn1 am 28 Mai 2017, 15:44:17
Zitat von: kadettilac89 am 28 Mai 2017, 14:16:09
Die genannte at Funktion schaltet nicht mehr wenn Sunset nach 21 ist.
Gesendet von meinem SM-G925F mit Tapatalk

Tut sie doch. Wenn sie es nicht tun würde, würde es diesen Thread nicht geben.

Zitat von: KernSani am 28 Mai 2017, 14:17:40
Oder einfach {if ($hour < 21) ...


Ich glaube das ist es.
Das probier ich mal.
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: Damian am 28 Mai 2017, 16:01:30
wenn du genauere Zeiteinschränkungen definieren willst z.B nicht vor 17:25 und nicht nach 21:15, so kannst du z. B. bei DOIF mit Zeitintervallen arbeiten

[17:25-21:15] and [{sunset(0,"18:00","21:00")}]
Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: lenn1 am 28 Mai 2017, 21:27:26

*{sunset("HORIZON=+2",0,"15:00","21:00")} {
if($hour <= 20  ) {
fhem("set KuecheSchalterUnten,WohnzimmerDimmer on")
}
}



So sieht es jetzt aus. Mit der Art und Weise wird bis einschl. 20.59 geschaltet.
Danke für den Tipp. das mit $hour $min usw kannte ich nicht.

Titel: Antw:Sunset soll keine Aktion nach 21 Uhr ausführen
Beitrag von: KernSani am 28 Mai 2017, 22:00:16
immer gerne... Schreibst du dann noch [Gelöst] vor das Subject des ersten Posts?


Gewitterige Grüße,


Oli