Vergleich von Zeiten im Script
Moderator: Co-Administratoren
-
- Beiträge: 186
- Registriert: 27.11.2015, 09:51
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 8 Mal
Vergleich von Zeiten im Script
Ich lese die aktuelle Uhrzeit mittels
dom.GetObject("uhrzeit").State(system.Date("%H:%M:%S")) aus.
Nun möchte ich diese Variable "uhrzeit" mit einer festen Uhrzeit (z.B. 11:55) vergleichen, um eine boolsche Variable zu setzen.
Wie sieht jetzt eine Formatierung im Script aus, um den Vergleich machen zu können ?
dom.GetObject("uhrzeit").State(system.Date("%H:%M:%S")) aus.
Nun möchte ich diese Variable "uhrzeit" mit einer festen Uhrzeit (z.B. 11:55) vergleichen, um eine boolsche Variable zu setzen.
Wie sieht jetzt eine Formatierung im Script aus, um den Vergleich machen zu können ?
Re: Vergleich von Zeiten im Script
Wenn der Vergleichs-String das Format "hh:mm:ss" hat, genügt ein String-Vergleich.
Code: Alles auswählen
if (dom.GetObject("uhrzeit").Value() <= "11:55:00")
{ Ausführung }
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
Re: Vergleich von Zeiten im Script
Nutzt du Scriptgui?
Wenn ja, kann ich dir helfen.
Einfach nochmal schreiben.
mfg
Wenn ja, kann ich dir helfen.
Einfach nochmal schreiben.
mfg
CCU2, iobroker, 264 Kanäle in 124 Geräten und 21 CUxD-Kanäle in 13 CUxD-Geräten
-
- Beiträge: 186
- Registriert: 27.11.2015, 09:51
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 8 Mal
Re: Vergleich von Zeiten im Script
Herzlichen Dank. Mehr brauch ich nicht.paul53 hat geschrieben:Wenn der Vergleichs-String das Format "hh:mm:ss" hat, genügt ein String-Vergleich.Code: Alles auswählen
if (dom.GetObject("uhrzeit").Value() <= "11:55:00") { Ausführung }
Gruß
Andreas
-
- Beiträge: 166
- Registriert: 28.11.2011, 20:31
- System: CCU und Access Point
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 5 Mal
Re: Vergleich von Zeiten im Script
Hallo!
Sorry, wenn ich den alten Post noch einmal hochziehe.. aber das passt genau zu meiner Frage:
Wie kann ich die feste Zeit (hier 11:55:00) mit einer Variablen ersetzen? Ich habe folgendes versucht:
Aber es funktioniert nicht.. jemand eine Idee?
Gruß
Vore
Sorry, wenn ich den alten Post noch einmal hochziehe.. aber das passt genau zu meiner Frage:
Wie kann ich die feste Zeit (hier 11:55:00) mit einer Variablen ersetzen? Ich habe folgendes versucht:
Code: Alles auswählen
time zeit= @18:00:00@;
time timestamp = system.Date("%H:%M:%S");
if (timestamp.Value() <= zeit.Value() )
{
Mach was..
}
Gruß
Vore
System: Asus TinkerS mit RaspberryMatic und Cubietruck mit IOBroker
Re: Vergleich von Zeiten im Script
Versuche es mal so:
Code: Alles auswählen
string zeit= "18:00:00";
string timestamp = system.Date("%H:%M:%S");
if (timestamp <= zeit)
{
Mach was..
}
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
Re: Vergleich von Zeiten im Script
Oder so:
oder schneller:
Code: Alles auswählen
string lTime = "18:00:00";
time lDateTime = (system.Date("%Y-%m-%d ") # lTime).ToTime();
time lNow = (system.Date("%F %X")).ToTime();
if (lNow <= lDateTime)
{
!Mach irgendetwas;
}
Code: Alles auswählen
string lTime = "18:00:00";
time lDateTime = (system.Date("%Y-%m-%d ") # lTime).ToTime();
if (currenttime <= lDateTime)
{
!Mach irgendetwas;
}
-
- Beiträge: 166
- Registriert: 28.11.2011, 20:31
- System: CCU und Access Point
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 5 Mal
Re: Vergleich von Zeiten im Script
Hallo!
Danke für die Tips! Ich finde "currenttime" nicht in der Doku. Ist das eine "unbekannte" Funktion?
Gruß
Vore
Danke für die Tips! Ich finde "currenttime" nicht in der Doku. Ist das eine "unbekannte" Funktion?
Gruß
Vore
System: Asus TinkerS mit RaspberryMatic und Cubietruck mit IOBroker
Re: Vergleich von Zeiten im Script
Du wirst Vieles, von dem was ich poste, nicht in der Doku finden, da die Doku nicht einmal 10% des Funktionsumfang der Skriptsprache der CCU enthält.vore hat geschrieben:Ich finde "currenttime" nicht in der Doku.
"currenttime" ist eine global definierte Skriptvariable vom Typ "time", welche die aktuelle Uhrzeit darstellt.vore hat geschrieben:Ist das eine "unbekannte" Funktion?
.
- WRadebeul
- Beiträge: 142
- Registriert: 29.01.2018, 13:53
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 14 Mal
Re: Vergleich von Zeiten im Script
Hallo,
ich nehme das Thema mit der Uhrzeit und der Vergleich nochmals auf.
Ich will ein Programm auf Änderung ausführen lassen, welches die Soll Werte meiner Fußbodenheizung nach dem Wechsel von einem manuell (händisch) gesetztem Feiertag (oder Krankheitstag zu Hause) wieder auf die Werte des „normalen“ Arbeitstages setzt. Feiertag (oder Tag zu Hause) hat halt höhere Sollwerte als Arbeitstag, bzw. andere Schaltzeiten.
Wenn ich nun die System-Variable TAG auf Arbeitstag setze, so sollen im Script des Programmes je nach aktueller Uhrzeit verschiedene Variablen (z.B. SET_TEMPERATURE) gesetzt werden. Das setzen der Variablen SET_TEMPERATURE funktioniert in anderen Programmen ohne die Zeit Bedingung einwandfrei, aber irgend etwas im Syntax des anliegenden Programmes muß falsch ein. Wäre toll wenn mir jemand helfen könnte
Danke schon mal...
ich nehme das Thema mit der Uhrzeit und der Vergleich nochmals auf.
Ich will ein Programm auf Änderung ausführen lassen, welches die Soll Werte meiner Fußbodenheizung nach dem Wechsel von einem manuell (händisch) gesetztem Feiertag (oder Krankheitstag zu Hause) wieder auf die Werte des „normalen“ Arbeitstages setzt. Feiertag (oder Tag zu Hause) hat halt höhere Sollwerte als Arbeitstag, bzw. andere Schaltzeiten.
Wenn ich nun die System-Variable TAG auf Arbeitstag setze, so sollen im Script des Programmes je nach aktueller Uhrzeit verschiedene Variablen (z.B. SET_TEMPERATURE) gesetzt werden. Das setzen der Variablen SET_TEMPERATURE funktioniert in anderen Programmen ohne die Zeit Bedingung einwandfrei, aber irgend etwas im Syntax des anliegenden Programmes muß falsch ein. Wäre toll wenn mir jemand helfen könnte
Code: Alles auswählen
! P21 Arbeitstag setzen der Temperaturen wenn Variable Feiertag=falsch (Arbeitstag)
!uhrzeit auslesen
string uhrzeit = "";
dom.GetObject("uhrzeit").State(system.Date("%H:%M:%S"));
!Wenn uhrzeit zwischen 04:00 und 6:30 Uhr, dann
if ((("uhrzeit").Value() >= "04:00:00") && (("uhrzeit").Value() < "06:30:00"))
{
!<<<<<< FHB EG KÜCHE >>>>>>
real TempSTANDARD = dom.GetObject("FHB_KUECHE_SOLL_TAG").Value();
dom.GetObject("BidCos-RF.OEQ1111111:2.SET_TEMPERATURE").State(TempSTANDARD);
}
!Wenn Uhrzeit zwischen 06:30 und 13:30 Uhr, dann
if ((("uhrzeit").Value() >= "06:30:00") && (("uhrzeit").Value() < "13:30:00"))
{
!<<<<<< FHB EG KÜCHE >>>>>>
real TempSTANDARD = dom.GetObject("FHB_KUECHE_SOLL_NACHT").Value();
dom.GetObject("BidCos-RF.OEQ1111111:2.SET_TEMPERATURE").State(TempSTANDARD);
}
! weitere Zeit Uhrzeit Bedingungen
Raspberrymatic, iOBroker, Homematic Classic, Homematic Homebrew, CUL 868 für Somfy Rolladen, Sonoff 3.0 ZigBee, NeoCreator zur Visualisierung, Mediola 4+ Gateway für IR, InfluxDB & Grafana