[gelöst] Verschiebung von stündlichem at (zur vollen Stunde) nach FHEM Neustart

Begonnen von DeeSPe, 22 August 2016, 13:42:17

Vorheriges Thema - Nächstes Thema

DeeSPe

Hallo,

ich habe ein at definiert welches sich stündlich zur vollen Stunde wiederholen soll (schaltet meinen HouseMode abhängig von der Stunde):
define at_hourly at +*01:00:00 {meinFunktion()}

Mit einem weiteren at setzte ich das dann genau auf die volle Stunde:
define at_hourly_set at *08:00:00 modify at_hourly +*01:00:00; set at_hourly execNow

Nun ist aber das Problem dass bei jedem FHEM Neustart das at mit "+*01:00:00" neu definiert wird ab dem Moment wo FHEM startet.
Also Neustart um 7:50, dann steht die Ausführung des stündlichen at auf 8:50.

Gern würde ich mir das zweite at (welches das erste auf die volle Stunde setzt) sparen wollen.
Gibt es eine Möglichkeit so ein stündlich wiederholendes at genau auf die volle Stunde zu legen ohne dass es sich durch Neustart verschiebt? Ich möchte ungern für jede Stunde in der sich der HouseMode ändern könnte ein eigenes at schreiben, möchte aber gerne den Funktionsaufruf immer genau zur vollen Stunde.

Danke.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

kumue

ist das nicht was für alignTime ?

commandref für at

Zitat
alignTime
Nur für relative Definitionen: Stellt den Zeitpunkt der Ausführung des Befehls so, dass er auch zur alignTime ausgeführt wird. Dieses Argument ist ein timespec. Siehe oben fü die Definition
Beispiel:

    # Stelle sicher das es gongt wenn eine neue Stunde beginnt.
    define at2 at +*01:00 set Chime on-for-timer 1
    attr at2 alignTime 00:00

DeeSPe

Zitat von: kumue am 22 August 2016, 13:48:47
ist das nicht was für alignTime ?

commandref für at


Hatte es gerade selber gefunden!
Vielleicht hätte ich in der Commandref doch bei at bis zum Ende lesen sollen.

Das Zauberwort heißt: attr at_hourly alignTime 00:00

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Icinger

Dafür gibts doch im at sowieso das Attribut alignTime:

Zitat
alignTime
Nur für relative Definitionen: Stellt den Zeitpunkt der Ausführung des Befehls so, dass er auch zur alignTime ausgeführt wird. Dieses Argument ist ein timespec. Siehe oben fü die Definition
Beispiel:

    # Stelle sicher das es gongt wenn eine neue Stunde beginnt.
    define at2 at +*01:00 set Chime on-for-timer 1
    attr at2 alignTime 00:00

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

DeeSPe

Vielen Dank für Eure Hinweise.
War echt zu blöd in der commandref zum at bis zum Ende zu lesen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe