Seite 1 von 1
Zeit in Unix Zeit umrechnen
Verfasst: So Dez 13, 2020 6:42 pm
von MarcusC
Hallo,
ich möchte mit meiner Steuerung von Beleuchtung von einem Wiregate Plugin zu einer Timberwolf Logik umziehen.
Gibt es hier eine auch eine Möglichkeit das gängige Zeitformat (DPT 10.001) in Unix Zeit umzurechen ?
Einen schönen Gruß
Marcus
Re: Zeit in Unix Zeit umrechnen
Verfasst: So Dez 13, 2020 7:33 pm
von Robert_Mini
Hallo Marcus.
Ich sehe da 2 Möglichkeiten:
- den Baustein "Uhr-Zeit", gibt unix Zeit und Komponenten aus.
- ein Objekt vom DPT 19.1, das ist intern nämlich genau die unix-Zeit.
Was hast vdu genau vor?
Lg
Robert
Re: Zeit in Unix Zeit umrechnen
Verfasst: So Dez 13, 2020 7:59 pm
von MarcusC
Hallo Robert,
vielen Dank für Deine Antwort.
bisher hatte das Plugin morgens zur Zeit x das Licht angeschaltet und bei Sonnenuntergang ausgeschaltet. Dabei hat sie die Uhrzeit x mit den Sonnenaufgang verglichen. Dabei kam im Sommer raus, daß der Sonnenaufgang nach der Ausschaltzeit x war und das Plugin hat das Licht nicht eingeschaltet. Das ganze funktionierte mit Unixzeit in Komponenten zerlegen, Stunde und Minute durch Konstante x ersetzt, in Unixzeit wandeln und vergleichen.
Aber vermutlich gibt es auch eine andere Lösung mit Monoflop oder Addition zur einer Unixzeit, die man mit Cron abfragt.
LG Marcus
Re: Zeit in Unix Zeit umrechnen
Verfasst: So Dez 13, 2020 9:01 pm
von Robert_Mini
Verstehe ich richtig, ein Licht das in der Dämmerung leuchtet, aber frühestens ab zb 6:00. Abends das gleiche, aber umgekehrt.
Da KNX ja eventbasiert ist, würde ich das auch so lösen. Am WG ging das nicht, da brauchte man einen zyklischen Aufruf und wertete dann die Zeiten aus.
lg
Robert
Re: Zeit in Unix Zeit umrechnen
Verfasst: Mo Dez 14, 2020 9:14 pm
von MarcusC
Hallo Robert,
ja, du versteht das richtig. Ich hoffe, ich verstehe Dich auch richtig: Ich sende z.B, getriggert durch den Sonnenaufgang, das Signal "Aus" und dann ein Signal für "Sperren" an die Adresse des Schaltausgangs, dann kann ein späteres Signal "Ein" getriggert durch die Uhrzeit "6:00 h" den Schaltausgang nicht mehr auslösen. Abends dann halt umgekehrt.
Aber wie bekomme ich elegant die Uhrzeit "6:00 h" so in diese Logik, daß man Sie leicht, bsp. von der CometVisu, verändern kann ?
LG Marcus
Re: Zeit in Unix Zeit umrechnen
Verfasst: Mo Dez 14, 2020 9:53 pm
von Robert_Mini
Das ist in der Tat gar nicht so einfach.
Ich nehme an h und min kommt als getrennter Wert.
Ich würde das so lösen:
1) Uhrzeit Baustein, der immer zu Mitternacht getriggert wird und damit die Unix-Zeit für Mitternacht des aktuellen Tages schickt.
2) Summe aus diesem Wert + Std *3600 + min x 60 = UTime einschalten
3) Wakeup Baustein mit dieser UTime schaltet ein, Inhibit darauf so wie von dir beschrieben mit Sonnenaufgang.
Hier hat S. Kolbinger einen Astrobaustein gepostet, der direkt wahr/falsch ausgibt! Das kannst du direkt für den Sperreingang verwenden:
viewtopic.php?f=24&t=1598&start=10#p16784 (
@StefanW) Dringender Fall als Standardlogik!...)
lg
Robert
Re: Zeit in Unix Zeit umrechnen
Verfasst: Di Dez 15, 2020 11:13 pm
von EarlBacid
Hallo
@MarcusC,
wenn ich mich gerade nicht ganz täusche habe ich vor einiger Zeit mal genau deinen Anwendungsfall zusammengebaut (unter Zuhilfenahme der Beispiele hier im Forum).
Bei mir läuft das über 3 Logiken.
1. Logik liefert Sonnenstandshöhe durch den ASTRO_local Baustein.
2. liefert FALSE während meiner Kernnacht, was bei mir von 1:00 morgens bis 6 Uhr morgens ist.
3. ein einfaches AND bei dem der erste Eingang TRUE ergibt, wenn der Sonnenstand kleiner -6 ist. Das Ergebnis ist somit immer dann ein TRUE während also die Sonne untergegangen ist und es nicht zwischen 1 und 6 Uhr morgens ist.
Damit habe ich die Beleuchtung des Weges von der Straße zu meiner Haustüre geregelt.
Nachtschaltung.JPG
Custom Logik Kernnacht (=Zeitschaltuhr mit fixem Ein- und Ausschaltzeitpunkt)
Code: Alles auswählen
{
"Level": [
["$StartZeit","string","0 0 1 * * *"],
["$StopZeit","string","0 0 6 * * *"],
["$Set","bool",false],
["$Res","bool",false],
["$Stat","int",0],
["$Out","bool",false],
["$KonstFalse","bool",false],
["$VAR<Inhibit?>", "bool", false]
],
"Module": [
["Break",["$VAR<Inhibit?>"] ],
["Cron","-$KonstFalse","$Set",0,"$StartZeit"],
["Cron","-$KonstFalse","$Res",0,"$StopZeit"],
["BinaryMultiplexer",["$Set","$Res"],"$Stat"],
["Multiplexer",["$Out","-$KonstFalse","$KonstFalse"],"$Out","$Stat"]
],
"Input": [
],
"Output": [
["Ein/Aus","Ausgang der Zeitschaltuhr","$Out","c"]
]
}
VG
Earl
Re: Zeit in Unix Zeit umrechnen
Verfasst: Mi Dez 16, 2020 5:47 pm
von MarcusC
Hallo Earl,
vielen Dank für Deine Nachricht !
Ich werde es nachbauen.
VG Marcus