FHEM > Codeschnipsel

Uhrzeit: Offset berechnen

(1/3) > >>

LaLeLu:
Zur Info:

ich habe die Funktion
http://www.fhemwiki.de/wiki/Uhrzeit:_Offset_berechnen
erweitert. Sie fängt jetzt mehr falsche Parametereingaben ab und kann auch durch Eingabe von z.B.
TimeOffset("",5)
eine Uhrzeit berechnen, die 5 Minuten später als jetzt ist.

Konstrukte wie
define IT_SCHALTEN notify MEIN_SCHALTER set IT_DOSE on-till {sprintf("%%02d:%%02d:%%02d",($hour+($min+5)/60)%%24,($min+5)%%60,$sec)}
können damit durch
define IT_SCHALTEN notify MEIN_SCHALTER set Flur_Licht on-till {TimeOffset("",5)}
ersetzt werden.


LaLeLu

Zrrronggg!:
So richtig verstehe ich den Sinn der ganzen Übung nicht.

"set lamp on till..." ist  - wenn ich das richtig verstehe - nur eine Art Vereinfachung für:

"set lamp on, define later_off at hh:mm:ss set lamp off"

aber mit dem Nachteil, das man für die Zeit das präfix "+"  vielleicht nicht verwenden kann.
Insbesondere hat "on till" auch nicht den Vorteil von "on-for-timer x", nämlich aus nur einem Funkkommando zu bestehen.

Anstelle nun  doch lieber
"set lamp on, define later_off at +hh:mm:ss set lamp off"

zu verwenden, nimmst du nun das doch deutlich komplexere Konstrukt
define IT_SCHALTEN notify MEIN_SCHALTER set IT_DOSE on-till {sprintf("%%02d:%%02d:%%02d",($hour+($min+5)/60)%%24,($min+5)%%60,$sec)}


Selbst wenn du  den eigentlichen Code "versteckst" (aka Funktion TimeOffset einführen)
 ist

set Flur_Licht on-till {TimeOffset("",5)}


doch nix anderes als

set Flur_Licht on, define later_off +00:05:00 set Flur_Licht off



Warum?
Ich meine wo ist das der Vorteil?





LaLeLu:
Hi Zrrronggg!

danke für Deinen Hinweis. Es gibt ja oft mehrere Wege, die nach Rom führen ...
Deinen finde ich prima. Meiner macht das Rechnen einfacher. Insbesondere, wenn anstelle von "" eine Variable die Zeit liefert.

Zrrronggg!:
Okay, das mit der Variable könnte ein Argument sein. Aber ansonsten verstehe ich einfacher Rechnen noch nicht.


"10 Minuten Später" sind halt 10 Minuten später. Da muss man ja nix rechnen. Oder verstehe ich da was falsch?

UliM:
Genau. Wie machst Du denn 'einfach' aus der Angabe "09:10" den Wert "09:20"?
Oder aus "09:55" dann "10:05"?
Genau das kann diese Routine.
Gruß, Uli

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln