Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Uwe-S
Beiträge: 31
Registriert: 02.04.2020, 22:55
System: CCU
Wohnort: Leipzig

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von Uwe-S » 27.04.2020, 07:21

So, nun jetzt erst wieder. Blöde Schichtarbeit.
Hatte ich mir auch schon überlegt, den Programmablauf um eine Stunde zu verschieben. Habe nun doch leider versäumt, das Ganze zu protokollieren. Ich übernehme deine Vorschläge in den nächsten 2 Wochen mal einzeln, um zu sehen, wann sich eine Änderung einstellt.
Die Rollläden liefen am Samstag und heute auch wieder zur falschen Zeit hoch.
Ich teste mal weiter, davon stirbt ja niemand.
Trotzdem erst mal vielen Dank.

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von Black » 27.04.2020, 08:36

Ich denke, dass die Bestimmung der Zusatzfunktion, wo du mit weekday () auf Samstag Sonntag Prüfstand zu dem Zeitpunkt der Prüfung noch einen Tag zurück bist, deshalb Samstag falsch da wird Freitag gefahren, Sonntag stimmt, da wird Samstag genommen und die sind gleich, montag falsch da Sonntag genommen wird.

Wenn du die berechnungszeit auf später 1.01 legst wird das wieder passen.

Ich schau mir trotzdem mal das ganze an.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von Black » 27.04.2020, 21:11

Ich habs mir angeschaut.. Nun isses auch klar, es gibt einen kleinen, aber bösartigen Unterschied, vllt sogar Bug zwischen localtime und currenttime. Vllt kann da Jens dann auch mal reinschauen.

Offensichtlich sehen beide im ersten Moment gleich aus... im ersten Moment.

folgendes kleines Testprogramm:

Code: Alles auswählen

WriteLine ("currenttime\t\tlocaltime")
WriteLine (currenttime # "\t" # localtime);
WriteLine (currenttime.ToInteger () # "\t\t" # localtime.ToInteger () );
WriteLine (currenttime.Hour ()#":" # currenttime.Minute ()# ":" # currenttime.Second () # "\t\t" + localtime.Hour () #":" # currenttime.Minute ()# ":" # currenttime.Second () );
WriteLine (currenttime.IsDST () # "\t\t\t" # localtime.IsDST () );
WriteLine (currenttime.IsLocalTime () # "\t\t\t" # localtime.IsLocalTime () );      
bringt folgende Ausgabe:
localtime.JPG
heisst also: die Methode an sich und To int bringen die GLEICHEN Werte an der zeit
ABER

Einzelmethoden wie Stunde, Minuten, Sekunden bringen zutage:
currenttime is wohl zulu zeit, localtime die locale zeit inc Sommerzeit. hübsch....., wäre aber schön, wenn die Zeitausgabe auch diesen Unterschied hervorgringen würde.

Nun zu deinem Problem: wenn du um 0:15 oder auch 1:15 triggerst, bringt currenttime.WeekDay () den Wochentag zur Zuluzeit, die dann bei 22:15 bzw 23:15 liegt und die die Wochentagkennung des Vortages bringt. Damit geht natürlich die Wochenendkennung daneben:

korrigiere bitte currenttime gegen localtime, dann müsste es passen, ich habs in meinem Threat auch schon angepasst


Gruss, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

emil70
Beiträge: 288
Registriert: 02.12.2017, 13:47
System: CCU
Hat sich bedankt: 33 Mal
Danksagung erhalten: 8 Mal

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von emil70 » 27.04.2020, 21:22

@Black

Kannst du mal ein Link zum deinem Threat hier reinmachen

danke
gruß emil70

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von Black » 27.04.2020, 21:29

emil70 hat geschrieben:
27.04.2020, 21:22
@Black
Kannst du mal ein Link zum deinem Threat hier reinmachen
danke
Klar Kann ich

Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Gruss, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
jmaus
Beiträge: 9864
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1882 Mal
Kontaktdaten:

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von jmaus » 27.04.2020, 23:21

Black hat geschrieben:
27.04.2020, 21:11
Ich habs mir angeschaut.. Nun isses auch klar, es gibt einen kleinen, aber bösartigen Unterschied, vllt sogar Bug zwischen localtime und currenttime. Vllt kann da Jens dann auch mal reinschauen.
Also ich kann in der Ausgabe nichts falsches erkennen oder gar einen Bug sehen. Auch die Ausgabe von ToInteger() is vollkommen korrekt, denn die Unix Zeit ist immer als UTC zeit definiert. Und die Unixzeit ist in allen Zeitzonen fortlaufend. ToInteger() gibt also die gleiche Unixzeit überall in der Welt zur exakt gleichen Zeit aus. Stimmt also alles soweit.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von Black » 28.04.2020, 18:24

Ok... hab ich mich da verrannt. Ist jedenfalls im zugehörigen Thread geändert und sollte nun tun.

Thx, black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von alchy » 29.04.2020, 23:03

jmaus hat geschrieben:
27.04.2020, 23:21
Also ich kann in der Ausgabe nichts falsches erkennen oder gar einen Bug sehen.
Bitte, vielleicht doch jetzt endlich noch mal genauer hinschauen?
Leider hast du ja auch schon BadenPowers Hinweise bezüglich Zeitumstellung ignoriert. Da grüsst man hiermit doch gerne die Mitleser. :wink:
jmaus hat geschrieben:
27.04.2020, 23:21
Auch die Ausgabe von ToInteger() is vollkommen korrekt, denn die Unix Zeit ist immer als UTC zeit definiert. Und die Unixzeit ist in allen Zeitzonen fortlaufend.
Abgesehen vom "Auch" am Anfang des Satzes, volle Zustimmung. Aber wir wollen nicht kleinlich sein. :lol:
Versuchen wir es mit einer durchaus ernst gemeinten Frage:
Was soll deiner Meinung denn nun richtig sein?
die Stundenangabe direkt aus currenttime oder die Stunden aus currenttime die mittels . Hour() ausgegeben werden ?
Zusatzfrage: Oder vielleicht doch besser die, welche mittels .Format() aus currenttime ermittelt werden?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
jmaus
Beiträge: 9864
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1882 Mal
Kontaktdaten:

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von jmaus » 29.04.2020, 23:56

alchy hat geschrieben:
29.04.2020, 23:03
jmaus hat geschrieben:
27.04.2020, 23:21
Auch die Ausgabe von ToInteger() is vollkommen korrekt, denn die Unix Zeit ist immer als UTC zeit definiert. Und die Unixzeit ist in allen Zeitzonen fortlaufend.
Abgesehen vom "Auch" am Anfang des Satzes, volle Zustimmung. Aber wir wollen nicht kleinlich sein. :lol:
Versuchen wir es mit einer durchaus ernst gemeinten Frage:
Was soll deiner Meinung denn nun richtig sein?
die Stundenangabe direkt aus currenttime oder die Stunden aus currenttime die mittels . Hour() ausgegeben werden ?
Zusatzfrage: Oder vielleicht doch besser die, welche mittels .Format() aus currenttime ermittelt werden?
Ach du spielst darauf an, das ein .Format() von "currenttime" und "localtime" die selbe Ausgabe liefert? Das ist in der Tat so, war aber auch schon immer so und ist einfach dem geschuldet das die .Format() Funktion keine unterscheidung zwischen lokaler zeit und GMT/UTC zeit macht und einfach hart jegliche Zeiten in die lokale zeit umwandelt. Es ist also so, das .Hour() und .IsLocalTime() hier vollkommen korrekte werte ausgeben, lediglich die Ausgabe von .Format() für currenttime bzw. eine Zeit ausserhalb der lokalen Zeitzone ist nicht das was man bzw. du vmtl. erwartet. Aber auf der anderen Seite hat bis jetzt auch noch niemand in praktischer weise wohl vermisst das die .Format() Funktion keine Unterscheidung zwischen lokaler Zeit und UTC/GMT Zeit macht und die Frage wäre nun welche möglichen Auswirkungen bzw. Nebeneffekte es hätte wenn ich der Format() Funktion jetzt diese Möglichkieit beibringe. Das muss ich mir einfach mal etwas näher anschauen bevor ich das umsetze.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Skript übernimmt Systemzeit mit einer Stunde Verschiebung

Beitrag von alchy » 30.04.2020, 19:42

Herrgott noch mal. :roll:
Ich spiele nicht an. Ich hatte dir eine Frage gestellt, welche du wohl augenscheinlich nicht beantworten willst.
Nehmen wir doch das Beispiel von oben, ein wenig erweitert.

currenttime_bug.jpg

Code: Alles auswählen

WriteLine ("\t\t\tcurrenttime\t\tlocaltime")
WriteLine ("timestring:\t\t"#currenttime # "\t" # localtime);
WriteLine ("integer:\t\t"#currenttime.ToInteger () # "\t\t" # localtime.ToInteger () );
WriteLine (".Hour():\t\t"#currenttime.Hour ()#":" # currenttime.Minute ()# ":" # currenttime.Second () # "\t\t" #localtime.Hour () #":" # currenttime.Minute ()# ":" # currenttime.Second () );
WriteLine (".Format():\t\t"#currenttime.Format("%H")#":" # currenttime.Format("%M")# ":" # currenttime.Format("%S") # "\t\t" + localtime.Format("%H") #":" # currenttime.Format("%M")# ":" # currenttime.Format("%S") );
WriteLine ("Sommerzeit:\t\t"#currenttime.IsDST () # "\t\t\t" # localtime.IsDST () );
WriteLine ("Localzeit:\t\t"#currenttime.IsLocalTime () # "\t\t\t" # localtime.IsLocalTime () ); 

ergibt:

Code: Alles auswählen

			currenttime		localtime
timestring:		2020-04-30 19:24:18	2020-04-30 19:24:18
.Tointeger:		1588267458		1588267458
Methode Hour():		17 Uhr+			19 Uhr+ 
Methode Format():	19 Uhr+			19 Uhr+
Sommerzeit Flag:	0			1
Localzeit Flag:		0			1
So wie die Flags sitzen, sollte nun deiner Meinung nach in der currenttimespalte 3x 17 oder 19 Uhr stehen oder ein Mischmasch ?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“