Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Baustein 19997_Kalenderwoche

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • woda
    antwortet
    Also mein 2er mit Experte 2.8 kann das.

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    hmmm datetime im HS ???

    also im 4er ja vielleicht aber hat der 2er|3er das?

    Einen Kommentar schreiben:


  • Dundi
    antwortet
    Danke!

    Einen Kommentar schreiben:


  • woda
    antwortet
    So, jetzt gibt er die richtige Woche aus, wie es nächstes, übernächtes Jahr aussieht hab ich nicht getestet.

    Hier der aktuelle Code:

    Code:
    ###################################
    ### (C) 2004, Tilo Kühn, v1.0
    ###################################
    ### BS : Kalenderwoche
    ###################################
    
    #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|0=numerisch 1=alphanummerisch
    #5003|Speicher|Initwert|Remanent
    #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch
    #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang
    5000|"Tilo\Kalenderwoche"|0|1|"Trigger"|1|"Kalenderwoche"|"Version 2.2"
    5001|1|1|0|0|1
    5002|1|0|0 # Trigger
    5004|1|0|0|2|0  # KalenderWoche
    # Woche auf AN[1]
    
    5012|0|""|"int(__import__('datetime').date.today().isocalendar()[1])"|""|1|0|0|0

    Einen Kommentar schreiben:


  • woda
    antwortet
    Bin ich der Einzige, bei dem der Baustein aktuell die falsche Kalenderwoche berechnet ?

    Auch ein kurzer Python test ergibt aktuell KW1 statt KW2
    Code:
    import time
    d = time.localtime()
    time.strftime("%W",d)
    
    Ausgabe:
    '01'

    Einen Kommentar schreiben:


  • Ultraschall
    antwortet
    Hallo,
    besten Dank für Eure Hilfe. Ich habe zum ersten mal einen Baustein umgeschrieben, und es funktioniert!
    Der Baustein gibt jetzt wieder die richtige KW aus.
    Die Anleitung hat mich auf den richtigen Weg gebracht.
    Schöne Grüße,
    Niels

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Sorry ich werd alt,
    jetzt will er aber, man sollte nicht so viele Sachen auf einmal machen.
    Die 5001er Zeile war die kopierte aus Tilo's Original

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    so bitte noch mal rauskopieren die doppelten Anführungszeichen waren falsch

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    so bitteschön, ich hoffe das das in deinem Sinne ist, Tilo

    Code:
    ###################################
    ### (C) 2004, Tilo Kühn, v1.0
    ###################################
    ### BS : Kalenderwoche
    ###################################
    
    #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|0=numerisch 1=alphanummerisch
    #5003|Speicher|Initwert|Remanent
    #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch
    #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang
    5000|"Tilo\Kalenderwoche"|0|1|"Trigger"|1|"Kalenderwoche"
    5001|1|1|0|2|1
    5002|1|0|0 # Trigger
    5003|1|0|0  # aktuelles Zeitobjekt
    5003|2|0|0  # jetzige Woche
    5004|1|0|0|2|0  # KalenderWoche
    #Zeit auf SN[1]
    5012|0|""|"__import__('time').localtime()"|""|0|0|1|0
    # Woche auf SN[2]
    5012|0|""|"int(__import__('time').strftime('%W',SN[1]))"|""|0|0|2|0
    # Wenn SN[2] =0 dann nochmal mit datum vom 31.12. des Vorjahres wird dann wohl Woche 52 oder 53 
    5012|0|"SN[2]==0"|"int(__import__('time').strftime('%W',__import__('time').localtime(__import__('time').mktime(int(SN[1][0])-1,12,31,0,0,0,0,0,0))))"|""|0|0|2|0
    # SN[2] auf den Ausgang 1
    5012|0|""|"int(SN[2])"|""|1|0|0|0

    Einen Kommentar schreiben:


  • philipp80
    antwortet
    Hi,

    die Änderungen müssen in der Datei

    C:\Programme\Gira\HS+FS\exp232\DE\logic\19997_Kale nderwoche.hsl

    vorgenommen werden. Das kann mit einem normalen Editor erfolgen. Innerhalb der Datei sind wohl folgende Änderungen notwendig:

    1) Zeile
    Code:
    5001|1|1|0|1|1
    durch
    Code:
    5001|1|1|0|2|1
    ersetzen.

    2) Nach der Zeile
    Code:
    5003|1|0|1
    folgende Zeile einfügen:
    Code:
    5003|2|0|1
    3) Logik anpassen:
    Alle Zeilen die mit 5012 beginnen aus der Datei entfernen und folgende Zeilen dafür einfügen:

    Code:
    #Zeit auf SN[1]
    5012|0|""|"__import__('time').localtime()"|""|0|0|1|0
    # Woche auf SN[2]
    5012|0|""|"int(__import__('time').strftime("%W",SN[1]))"|""|0|0|2|0
    # Wenn SN[2] =0 dann nochmal mit datum vom 31.12. des Vorjahres wird dann wohl Woche 52 oder 53 
    5012|0|"SN[2]==0"|"int(__import__('time').strftime("%W",__import__('time').localtime(__import__('time').mktime(int(SN[1][0])-1,12,31,0,0,0,0,0,0))))"|""|0|0|2|0
    # SN[2] auf den Ausgang 1
    5012|0|""|"int(SN[2])"|""|1|0|0|0
    So hab ich zumindest die von NilsS und Taxus angegebenen Hinweise verstanden.

    Gruss
    philipp80

    Einen Kommentar schreiben:


  • Ultraschall
    antwortet
    Hallo Tilo,
    ich möchte nur kurz nachfragen, ob es bereits eine neue Version des Kalenderwochen- Bausteins gibt?
    Das würde mir sehr helfen, da ich nicht in der Lage bin einen Baustein umzuschreiben.
    Schöne Grüße,
    Niels

    Einen Kommentar schreiben:


  • bytefactory
    antwortet
    danke für den hinweis. ich werde mir das in den nächsten tagen gleich mal anschauen und eine korrigierte version hochladen.

    ist zum glück nicht so schlimm wie der 2010-ec-karten-bug. das hat mich in den ersten 2 wochen dieses jahres mehr genervt - ist echt toll im ausland im urlaub, wenn keine von 4 geldkarten funktioniert

    ciao
    tilo

    Einen Kommentar schreiben:


  • NilsS
    antwortet
    Zitat von Taxus Beitrag anzeigen
    Ich schreibe Tilo mal an, ob er seinem Originalbaustein ein Update verpasst.
    versuch das mal, wenn der keine Zeit haben sollte, kannst du den Code von mir natürlich einfach in einem eigenen Baustein übernehmen

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    Für Nachmacher: NilsSs Code oben ist ganz nah dran : dort fehlt noch eine (vierte) schließende Klammer, und der Kommentar muss ergänzt werden zu 'wird dann Woche 52 oder 53' , Zeile 5001 ändern und eine zweite 5003 einfügen, fertig.

    Ich schreibe Tilo mal an, ob er seinem Originalbaustein ein Update verpasst.

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    Zitat von philipp80 Beitrag anzeigen
    Wunderbar, danke. Hab den Baustein angepasst und jetzt stimmt die Ausgabe.

    mit dieser ersetzt:

    Code:
    5012|0|"1"|"(__import__('time').strptime('1 Jan'+str(int(__import__('time').localtime()[0])),'%d %b %Y')[6]+2)%7"|""|0|0|1|0
    Gruss
    philipp80
    Nicht ganz, KW2 wurde jetzt schon am Sonntag gemeldet, nicht erst am Montag.

    Einen Kommentar schreiben:

Lädt...
X