PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Uhrzeit bei Sonnenaufgang stimmt nicht



lucky
11.01.06, 16:49
Ich habe nach wie vor das Problem, dass die Uhrzeit des Sonnenaufgangs und Untergangs um 1 h falsch ist.
Allerdings nur, wenn ich den Umwandlungsbaustein "Datum + Zeit -> String Update .1" benutze und nicht, wenn ich Stunde und Minute separat umwandle mit "Dezimalzeit Umwandl Uhrzeit"
In beiden Fällen benutze ich den Baustein "Sonnenstand" als Eingang.

Ich habe hier wo gelesen, das Problem sei inzwischen behoben. Was muss ich tun??

cindom
14.01.06, 16:48
Hallo,

m.E. gibt ist der Baustein upgedatet worden.
Neuen Baustein downloaden und im Logoeditor den alten löschen und NEU einfügen.

Cindom

lucky
16.01.06, 17:04
Wußte gar nicht, daß man bei einem Baustein update diesen löschen muß und neu verknüpfen. Habe die neuen Bausteine immer nur ins Verzeichnis Logik kopiert.

Habe jetzt aber den Baustein neu eingefügt, geht aber immer noch nicht!!

JensD
16.01.06, 18:12
Hallo,

wenn sich der Baustein nur intern geändert hat, ist das Löschen und erneute anlegen eines Bausteins nicht notwendig. Ein einfacher Austausch der Datei genügt.

Um welchen Baustein (ID) handelt es sich genau?

Mit freundlichen Grüßen
Jens Deseive

lucky
16.01.06, 18:21
Es handelt sich um
"Datum+Zeit -> String Update.1" Er hat die Nummer 19965 von Thilo Kühn. Es zeigt nach wie vor 1 h falsch an

Was genau meinst Du mir "interne Änderung"? Wenn sich der Baustein zwar geändert hat, aber die Variablenübergabe etc gleichgeblieben sind?

Bzw. in welchen Fällen muß ich tatsächlich ganz austauschen?

Michel
16.01.06, 18:39
Den Baustein brauchst du nur im Falle einer Änderung der Zahl/Bezeichnung der Ein- bzw. Ausgänge löschen,wieder einfügen und neu zu verknüpfen.
Änderungen an der internen Logik (Berechnungen etc.) des Baustein machen keinen Austausch notwendig.
Ansonsten wird die jeweils aktuelle Version immer von der Festplatte geladen, wenn das Projekt übertragen wird.

Michel
16.01.06, 18:48
Der "Fehler" liegt in der Umstellung von Sommer- auf Normalzeit. Tilo hatte den Baustein mal wegen der Umstellung auf Sommerzeit schon einmal (in die aktuelle Version) geändert und schon vermutet, daß der Fehler wieder auftritt (siehe hier: http://www.eib-userclub.de/forum/showpost.php?p=26629&postcount=15)
Abhilfe? Baustein wieder zurückändern oder so abändern, daß er den Übergang zwischen Normal- und Sommerzeit mitbekommt und dann ein internes, remanent gespeichertes KO mit der jeweiligen Zeitdifferenz (0 / +1) addiert.
Die Zeitfunktionen sind in Python "etwas" kryptisch, allerdings bieten sie theoretisch die Möglichkeit die daylight-saving time zu berücksichtigen.

Mal sehen, ob ich durch die Berechnung von Tilo auf die Schnelle eintauchen kann.

Matthias Schmidt
16.01.06, 18:59
Also ich verstehe das nicht. Bei mir zeigen sowohl Tilos als auch die DACOM-Bausteine die Zeit richtig an !?

Michel
16.01.06, 19:18
Also ich verstehe das nicht. Bei mir zeigen sowohl Tilos als auch die DACOM-Bausteine die Zeit richtig an !?Mit welcher Zeit fütterst du denn Tilo´s Baustein? Ist das vielleicht noch die alte, normalzeittaugliche Version vom Frühjahr 2005?


http://www.agrodur-thermoplast.de/tmp/f56.jpg

cindom
16.01.06, 22:15
Na was hast du denn da für ´ne nette Clienetenversion ? :cool:


Cindom

Michel
16.01.06, 22:35
Na was hast du denn da für ´ne nette Clienetenversion ? :cool:
CindomWieso, was ist damit?

lucky
21.01.06, 15:03
Also, ich nutze es wie folgt und es geht nicht:
587

bytefactory
21.01.06, 16:16
Also, ich nutze es wie folgt und es geht nicht:
587ich sehe gerade in meiner visu, das die zeit auch wieder eine stunde neben der kappe ist ... aber für die paar wochen bis zur sommerzeitumstellung lohnt es sich jetzt auch nicht mehr zu ändern :-)

ne mal im ernst. das blöde ist, das a) die zeitfunktionen von phyton (der programmiersprache der logikbausteine) nicht dokumentiert sind und b) beim debuggen des HS ist, das man schlecht zwischen beiden zeitzonen umschalten kann. würde mich freuen, wenn einer die lösung findet ...

ciao
tilo

Matthias Schmidt
21.01.06, 17:17
Ich weiß nicht, aber bei mir geht es !? Allerdings weiß ich nicht, ob ich meine Bausteine modifiziert habe. In meinem Sonnenstand habe ich einen Vergleich localtime - gmttime.

Lucky, kannst du mal den Inhalt deines Logikbausteines hier posten?

bytefactory
21.01.06, 17:33
Ich weiß nicht, aber bei mir geht es !? Allerdings weiß ich nicht, ob ich meine Bausteine modifiziert habe. In meinem Sonnenstand habe ich einen Vergleich localtime - gmttime.

Lucky, kannst du mal den Inhalt deines Logikbausteines hier posten?also ich habe nochmal geforscht und habe den baustein modifiziert. er zeigt jetzt mal die richtige zeit an und die chancen sind auch nicht schlecht, das es dann mit der sommerzeit funktioniert :-)

ich lade das ding jetzt mal auf meine webseite. dort könnt ihr euch das ding dann downloaden!

ciao
tilo

lucky
22.01.06, 07:42
Das ist der Inhalt des Bausteines, den ich benutze:

###################################
### (C) 2004, Tilo Kühn, v1.0
###################################
### BS : Zeit -> 14 Byte String
###################################
#5000|"Text"|Remanent(1/0)|Anz.Eingänge|.n.|Anzahl Ausgänge|.n.|.n.
#5001|Anzahl Eingänge|Ausgänge|Offset|Speicher|Berechnung bei Start
#5002|Index Eingang|Default Wert
#5003|Speicher|Initwert|Remanent
#5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)
#5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang
5000|"#Zeitfunktionen\Datum+Zeit -> String Update .1"|0|4|"Zeit (0==aktuelle)"|"Format Datum (0..5)"|"Update (sec.)"|"Format Zeit (0,1)"|4|"Datum+Uhrzeit"|"Differenz"|"Datum"|"Uhrzeit"
5001|4|4|1|8|1
# EN[x]
5002|1|0|0 # gespeicherte Zeit (0=aktuelle)
5002|2|0|0 # Format Date (not supported by experte)
5002|3|1|0 # Update in Sekunden
5002|4|0|0 # Format Time (not supported by experte)
# Ausgänge
# Datum+Uhrzeit (DD.MM.YYYY, HH:MM:SS)
5004|1|""|0|2|1
# Differenz ( [X d, ]HH:MM:SS)
5004|2|""|0|2|1
# Datum (DD.MM.YYYY)
5004|3|""|0|2|1
# Uhrzeit (HH.MM.SS)
5004|4|""|0|2|1
# Speicher
5003|1|0|0
5003|2|0|0
5003|3|0|0
5003|4|0|0 # SN[4] date format string
5003|5|0|0 # SN[5] time format string
5003|6|0|0 # SN[6] monatsnamen
5003|7|0|0 # SN[7] temp
5003|8|0|0 # SN[8] monatsnamen kurz
# Logik
# Init
# Monatsnamen in Deutsch
5012|0|"EI==1"|"['Januar','Februar','März','April','Mai','Juni','J uli','August','September','Oktober','November','De zember']"|""|0|0|6|0
5012|0|"EI==1"|"['Jan.','Feb.','März','Apr.','Mai','Juni','Juli',' Aug.','Sep.','Okt.','Nov.','Dez.']"|""|0|0|8|0
5012|0|"(EI==1 or EC[2])" |"'%d.%m.%Y'"|""|0|0|4|0
5012|0|"(EI==1 or EC[2]) and EN[2]==1"|"'%d.%m.%y'"|""|0|0|4|0
5012|0|"(EI==1 or EC[2]) and EN[2]==2"|"'%d. %mm %Y'"|""|0|0|4|0
5012|0|"(EI==1 or EC[2]) and EN[2]==3"|"'%d. %mm %y'"|""|0|0|4|0
5012|0|"(EI==1 or EC[2]) and EN[2]==4"|"'%d. %mmm %Y'"|""|0|0|4|0
5012|0|"(EI==1 or EC[2]) and EN[2]==5"|"'%d. %mmm %y'"|""|0|0|4|0
5012|0|"(EI==1 or EC[4])" |"'%H:%M:%S'"|""|0|0|5|0
5012|0|"(EI==1 or EC[4]) and EN[4]==1"|"'%H:%M'"|""|0|0|5|0
5012|0|"EN[1]==0"|"__import__('time').time()"|""|0|0|1|0
5012|0|"EN[1]==0"|"__import__('time').time()"|""|0|0|2|0
5012|0|"EN[1]!=0"|"EN[1]"|""|0|0|1|0
5012|0|"EN[1]!=0"|"__import__('time').time()-EN[1]"|""|0|0|2|0
# !!!Hack für Sonnen Auf/Untergangsgangsoperator!!!
5012|0|"EN[1]>0 and EN[1]<24"|"EN[1]*3600+(__import__('time').altzone-__import__('time').timezone)+__import__('time').mk time(__import__('time').strptime(__import__("string").join([str(int(__import__('time').gmtime()[2])),str(int(__import__('time').gmtime()[1])),str(int(__import__('time').gmtime()[0]))],'.'),"%d.%m.%Y"))"|""|0|0|1|0
5012|0|"EN[1]>0 and EN[1]<24"|"SN[1]"|""|0|0|2|0
# !!!Hack für Sonnen Auf/Untergangsgangsoperator!!!
# erzeugt Datum
5012|0|"EI==1 or OC[1] or EC[1] or EC[2]"|"__import__('string').replace(SN[4],'%mmm',SN[6][__import__('time').localtime(SN[1])[1]-1])"|""|0|0|7|0
5012|0|"EI==1 or OC[1] or EC[1] or EC[2]"|"__import__('string').replace(SN[7],'%mm' ,SN[8][__import__('time').localtime(SN[1])[1]-1])"|""|0|0|7|0
5012|0|"EI==1 or OC[1] or EC[1] or EC[2]"|"__import__('time').strftime(SN[7],__import__('time').localtime(SN[1]))"|""|3|0|0|0
# erzeugt Zeit
5012|0|"EI==1 or OC[1] or EC[1] or EC[4]"|"__import__('time').strftime(SN[5],__import__('time').localtime(SN[1]))"|""|4|0|0|0
# erzeugt Uhrzeit und Datum
5012|0|"EI==1 or AC[3] or AC[4]"|"__import__('string').join([AN[3],AN[4]],', ')"|""|1|0|0|0
# erzeugt den Prefix 'X d", wobei X die anzahl der tage ist, wenn X>0 ist
5012|0|"1"|"''"|""|0|0|3|0
5012|0|"SN[2] and int(SN[2]/86400)>0"|"__import__('string').join([str(int(SN[2]/86400)),' d, '],'')"|""|0|0|3|0
# erzeugt die Differenzzeit
5012|0|"SN[2] and (EI==1 or OC[1] or EC[1])"|"__import__('string').join([SN[3],__import__('time').strftime('%H:%M:%S',__import__ ('time').gmtime(SN[2]))],'')"|""|2|0|0|0
5012|0|"not SN[2] and (EI==1 or OC[1] or EC[1])"|"'---'"|""|2|0|0|0
# Timer restarten
5012|0|"EN[3] and (EI==1 or OC[1] or EC[1])"|""|"EN[3]"|0|1|0|0
#5012|0|"EI==1 or OC[1]"|"__import__('string').join([__import__('time').localtime('Hallo'),'%5.2f' % 123.4567])"|""|1|0|0|0

lucky
22.01.06, 07:56
Ich habe jetzt gerade das Update von gestern von Tilo eingespielt, es geht jetzt. Hoffentlich auch noch zur Sommerzeit.

Danke, Tilo

bytefactory
22.01.06, 09:53
Ich habe jetzt gerade das Update von gestern von Tilo eingespielt, es geht jetzt. Hoffentlich auch noch zur Sommerzeit.

Danke, Tiloich denke schon das es dann auch noch klappt ansonsten spendiere ich dir ein :Prost: zur L&B wenn wir uns treffen sollten :-)))

ciao
tilo

Schalke05
26.03.06, 22:45
Hallo,

bei mir hat der Baustein die Umstellung gestern leider nicht korrekt bewältigt. Beide eine Stunde zu spät, obwohl ich schon den neuen Baustein von Thilo mit dem "Hack" verwende.

###################################
### (C) 2004, Tilo Kühn, v1.0
###################################
### BS : Zeit -> 14 Byte String
###################################

[text deleted]

# !!!Hack für Sonnen Auf/Untergangsgangsoperator!!!
5012|0|"EN[1]>0 and EN[1]<24"|"__import__('time').mktime(__import__('time').strpt ime(__import__("string").join([str(int(EN[1])%24),str(int(EN[1]*60)%60),str(int(EN[1]*3600)%60),str(int(__import__('time').gmtime()[2])),str(int(__import__('time').gmtime()[1])),str(int(__import__('time').gmtime()[0]))],' '),"%H %M %S %d %m %Y"))"|""|0|0|1|0

5012|0|"EN[1]>0 and EN[1]<24"|"SN[1]"|""|0|0|2|0
# !!!Hack für Sonnen Auf/Untergangsgangsoperator!!!

[text deleted]

Ich weiss nicht wie das bei den anderen aussieht. Anbei noch mal meine Logik, vielleicht hast du ja eine Idee Thilo.

Gruss,

Olaf

Gaston
26.03.06, 23:25
Also ich ffrage mich dauernd wie der Sonnen Auf/Unter gang Bautein wissen kann dass Sommerzeit ist ? Ist es nich ter der di eFalsche Zeit schickt ?

Ich habe einen solchen Baustein auch geschrieben und der hat ein Pin für Sommerzeit. Mit dem entsprechnden "Sommerzeit" Baustein geht das bei mir ohne Probleme.

Gruss,
Gaston

Matthias Schmidt
26.03.06, 23:38
Ich habe seltsamerweise keine Probleme. Ich berechne den Unterschied zwischen gmttime und localtime in meinen Bausteinen.

#Zeitdifferenz ermitteln: SN7 = 1 bei Winterzeit, SN7=2 bei Sommerzeit
5012|0|"__import__('time').localtime()[3]>=__import__('time').gmtime()[3]"|"__import__('time').localtime()[3]-__import__('time').gmtime()[3]"|""|4|0|7|0
5012|0|"__import__('time').localtime()[3]<__import__('time').gmtime()[3]"|"(__import__('time').localtime()[3]+24)-__import__('time').gmtime()[3]"|""|4|0|7|0

hat funktioniert:

<TABLE cellPadding=5 border=1><TBODY><TR><TD id=l>26.03.2006 01:44:54</TD><TD>1</TD><TD>-34,9</TD><TD>26,94</TD><TD>1,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 01:49:54</TD><TD>1</TD><TD>-34,5</TD><TD>28,39</TD><TD>1,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 01:54:54</TD><TD>1</TD><TD>-34,1</TD><TD>29,82</TD><TD>1,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 01:59:54</TD><TD>1</TD><TD>-33,7</TD><TD>31,23</TD><TD>1,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 03:04:54</TD><TD>1</TD><TD>-33,3</TD><TD>32,64</TD><TD>2,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 03:09:54</TD><TD>1</TD><TD>-32,8</TD><TD>34,02</TD><TD>2,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 03:14:54</TD><TD>1</TD><TD>-32,4</TD><TD>35,40</TD><TD>2,000</TD><TD>0</TD><TD>0</TD></TR><TR><TD id=l>26.03.2006 03:19:54</TD><TD>1</TD><TD>-31,9</TD><TD>36,76</TD><TD>2,000</TD><TD>0</TD><TD>0</TD></TR></TBODY></TABLE>

Gaston
27.03.06, 11:53
Hallo Matthias,

Daran hatte ich auch gedacht, aber Schlussendlich nicht gemacht, denn ich Frage mich wie der HS2 wissen kann dass Sommerzeit ist, und überhaupt wissen kann welche die GMT ist da man weder die Zeitzone noch das Sommerzeitverhalten festlegen kann.

Ich gehe mal davon aus dass Du deine UHR über den Internet (also NTP) updatest, oder ? Dann wäre das noch machbar. Aber was passiert wenn Du die Uhr des HS2 über den EIB stellst ? Denn da gibt es keinen Bezug auf GMT.

Entweder funzt es dann nicht mehr, oder es wurden verschiedenen Sachen im HS hardcoded, was aber den EInsatzt in verschiedenen Ländern dann undokumentiert negativ beeinflussen würde.

Gruss,
Gaston

bytefactory
27.03.06, 13:03
Also ich ffrage mich dauernd wie der Sonnen Auf/Unter gang Bautein wissen kann dass Sommerzeit ist ? Ist es nich ter der di eFalsche Zeit schickt ?

Ich habe einen solchen Baustein auch geschrieben und der hat ein Pin für Sommerzeit. Mit dem entsprechnden "Sommerzeit" Baustein geht das bei mir ohne Probleme.

Gruss,
Gastonich versteh gerade die welt nicht mehr :)

normalerweise sollte es dem baustein egal sein, welche zeit zone gerade ist ...

der baustein von dacom liefert eine dezimalzahl z.b. 6.5 für 6:30 ... ich muß da mal nachschauen, warum das nun schonwieder fehlschlägt ... irgendwann bekomme ich das bestimmt in den griff :-) ... ich kanns ja auch nur 2 mal im jahr testen :Prost:

ciao
tilo

Gaston
27.03.06, 14:31
ich versteh gerade die welt nicht mehr :)

normalerweise sollte es dem baustein egal sein, welche zeit zone gerade ist ...

ciao
tilo

Genau das meine ich ja :D Ich denke nicht dass dein Baustein das Problem ist, sondern der Snnenunter/Aufgansbaustein. Denn erkennt er nicht die Sommerzeit dann wird er die Zeit falsch angeben.

Gruss,
Gaston