Uhrzeit in DOIF abfragen. Sollzeit minus X Minuten.

Begonnen von kask, 17 Dezember 2022, 19:45:10

Vorheriges Thema - Nächstes Thema

kask

Hallo,

ich möchte gerne etwas mit einer DOIF einschalten um eine bestimmte Uhrzeit. Das klappt auch wenn ich z.b ([12:00]) in die Abfrage einsetze. dann wird es um 12uhr ausgeführt.
Jetzt möchte ich aber was eine Stunde vor Sonnenuntergang schalten. Die Sonnenuntergangszeit habe ich aus einem Reaging (Proplanta) z.b. fc0_sunSet = 16:42.

Wie frage ich das Reading jetzt ab mit sagen wir 60minuten weniger. Also 15:42 als abfrage?

Oder hat einer eine Idee wie ich das anders lösen könnte/sollte?

Gruß Karsten

dyna

#1
Hallo kask,

das geht z.B. direkt im DOIF mit [{sunset(-3600, "15:00", "22:00")}]
Dann schaltet es frühestens 15:00 spätestens 22:00 zum Zeitpunkt Sonnenuntergang -1h.

Dafür musst Du in globab die Attribute latitude und longitude entsprechend Deiner geographischen Lage setzen.

Die Beschreibung von sunset findest Du hier  https://fhem.de/commandref.html#SUNRISE_EL

Grüße
Jens


daedalus0815

#2
...oder via "twilight" modul (myTL ist vom type twilight) incl. Zufallverzögerung an einem Arbeitstag(AT):

DOELSEIF
(
[
([myTL:sr]-3600+int(rand(300))  )|AT
]
)
( set Lampe on)


kask

Danke für die Hilfe.
Probiere ich aus.
Aber rein aus interesse. Wie bekomme ich eine gebene Zeit oder vieleicht auch Datum als string z.b. "13:15" auf eine DOIF Abfrage und kann diese Zeit/Tag manipulieren?
Das geht doch sicher mit wenig Aufwand.

Damian

DOIF Triggert jeden Tag. Du kannst es auf bestimmte Wochentage einschränken, sonst mit and Datumsangaben verknüpfen z. B. and $md ge "01-06" heißt ab dem 06.01
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

kask

Danke. Das ist aber nicht meine Frage.
Vieleicht stelle ich die Frage mal anders.

Ich bekomme aus einem Reading eine Uhrzeit. Die sieht so aus das "12:47" in dem reading steht.
Jetzt will ich aus den 12:47 gerne 11:47 machen und damit vergleichen. Wie stelle ich das an?

rischbiter123

Moin,
ich weis nicht, wie Perl-Aktuell das ganze noch ist, da ich z.Zt. kein Fhem am Laufen habe (Umzug), aber vielleicht kannst du es ja als Anregung gebrauchen.
https://forum.fhem.de/index.php/topic,83653.msg758737.html#msg758737

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Damian

Zitat von: kask am 18 Dezember 2022, 14:32:10
Danke. Das ist aber nicht meine Frage.
Vieleicht stelle ich die Frage mal anders.

Ich bekomme aus einem Reading eine Uhrzeit. Die sieht so aus das "12:47" in dem reading steht.
Jetzt will ich aus den 12:47 gerne 11:47 machen und damit vergleichen. Wie stelle ich das an?

Die Doku-Referenz schon studiert?

Hier mal ein Auszug von: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitberechnung

ZitatLicht soll eine Stunde vor gegebener Zeit eingeschaltet werden und eine Stunde danach wieder ausgehen:

define Fixtime dummy
set Fixtime 20:00

define di_light DOIF ([([Fixtime]-[01:00]) - ([Fixtime]+[01:00])])
(set lampe on)
DOELSE
(set lampe off)


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

kask

Die Doku ist so umfangreich und wenn man da nicht genau weiss was man suchen soll. Dann wird man einfach erschlagen von dem ganzen.
Entscheident sind die Suchbegriffe und da habe ich nach anderem gesucht.
Danke für den Link aus der Doku