Ankündigung

Einklappen
Keine Ankündigung bisher.

Langzeitandimmen "WakeUP-Light"

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

  • ThorstenGehrig
    antwortet
    Die Fehlermeldung stimmt nicht mit deiner Fehlermeldung überein.
    Da fehlt ein < -Zeichen - sicher das der Code stimmt?
    Hast du das ZIP-Genommen?

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • svenkonstanzer
    antwortet
    Hallo zusammen!

    Ich habe den Baustein in betrieb, aber leider bleibt er am Ende des Wertes nicht stehen und überfährt den Endwert.
    In den Exceptions taucht folgender Fehler auf:
    [INFORMATION]File "/hs/compile/hs_logik.py", line 179, in addFormel
    File "case", line 1
    (EN[5] [ EN[4]) and (int(SN[4])=]EN[4])
    ^
    SyntaxError: invalid syntax
    [5012L, 19856L, 1L, '(EN[5] [ EN[4]) and (int(SN[4])=]EN[4])', '1', '', 2L, 0L, 0L, 0L][/INFORMATION]

    Den Baustein habe ich hier aus dem Thread übernommen, der Code sieht so aus:

    [INFORMATION]
    ################################################## ##################################
    # (C) 2005, Matthias Schmidt, v1.1 #
    ################################################## ##################################
    # BS : Langzeitdimmer aus/ab #
    ################################################## ##################################
    # 18.1.05 angelegt #
    # 12.1.10 optimiert für alternatives Aufdimmen #
    # 22.8.12 taktung sek für smoothes dimmen #
    # 25.9.12 timer am ende auch auf 1 sec gesetzt... #
    ################################################## ##################################

    #5000|"Text"|Typ(1-4)|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|"smh@213\Langzeitdimmer"|1|5|"Ein/Aus"|"Dauer (min)"|"Istwert"|"Endwert"|"Startwert"|3|"Dimmwert "|"Ende erreicht"|"Ber. SW"

    5001|5|3|1|4|0

    # EN[x]
    5002|1|0 # Ein/Aus
    5002|2|6 # Dauer
    5002|3|0 # Istwert
    5002|4|0 # Endwert
    5002|5|0 # Startwert

    # Speicher
    5003|1|0|0 # Schrittweite berechnet
    5003|2|4|1 # fix 1 sec. unbenutzt (2012-08-22 TAKT von 10s auf 1s geaendert)
    5003|3|0|0 # Startwert
    5003|4|0|0 # Abbild A

    # Ausgänge
    5004|1|0|0|2|0 # Ausgang
    5004|2|0|1|2|0 # Ende erreicht=1
    5004|3|0|0|2|0 # berechnete Schrittweite

    # Logik Berechnung SW

    # wenn Einschaltung und Startwert = 0 -> Istwert in Startspeicher_SN3 und Abbild SN4
    5012|0|"(EC[1] and EN[1]==1 and EN[5]==0)"|"EN[3]"|""|0|0|3|0
    5012|0|"(EC[1] and EN[1]==1 and EN[5]==0)"|"EN[3]"|""|0|0|4|0

    # wenn Einschaltung und Startwert ungleich 0 -> Startvorgabe in Startspeicher_SN3 und Abbild SN4
    5012|0|"(EC[1] and EN[1]==1 and EN[5]!=0)"|"EN[5]"|""|0|0|3|0
    5012|0|"(EC[1] and EN[1]==1 and EN[5]!=0)"|"EN[5]"|""|0|0|4|0

    # wenn Einschaltung -> fertigmeldung rücksetzen
    5012|0|"(EC[1] and EN[1]==1)"|"0"|""|2|0|0|0

    #Berechnungsabbruch wenn AUS
    5012|1|"EN[1]==0 or AN[2]"|""|""|0|0|0|0

    # wenn eingeschaltet wird oder Dauer geändert wird -> Schrittweite berechnen und in Speicher und auf A3
    # Schrittweite = (Endwert - Startspeicher) / Dauer * 60 / 1
    5012|0|"(EC[1] and EN[1]) or (EC[2] and EN[2]>0)"|"float(EN[4]-SN[3])/float(EN[2]*60.0/1.0)"|""|3|0|1|0

    # wenn eingeschaltet wird oder Dauer geändert wird -> Startwert auf Dimmausgang ??? warum nicht Startspeicher
    5012|0|"(EC[1] and EN[1]) or (EC[2] and EN[2]>0)"|"EN[5]"|""|1|0|0|0

    # Timer event,
    # - Abbild um Schrittweite erhöhen
    5012|0|"EN[1] and OC[1]"|"SN[4]+SN[1]"|""|0|0|4|0

    # - Werte auf Ausgang ausgeben
    5012|0|"EN[1] and OC[1]"|"int(SN[4])"|""|1|0|0|0


    # 5012|Ende nach Ausführen|Bedingung|Formel|Zeitformel|Ausgang|Zeit speicher|Speichervariable|Negierter Ausgang
    # Ende nach Ausführen
    # | Bedingung
    # | | Formel
    # | | | Zeitformel
    # | | | | Ausgang
    # | | | | | Zeitspeicher
    # | | | | | | Speichervariable
    # | | | | | | | Negierter Ausgang
    # | | | | | | | |
    # 5012|0|"EC[1] and EN[1]"|"1"|""|1|0|0|2

    # Wenn Ende erreicht abdimmen, Fertigmeldung
    #wenn SN4=EN4 immer, direkt, Augang2 (Ende Erreicht)=1, Danach beenden
    5012|1|"int(SN[4])==EN[4]"|"1"|""|2|0|0|0

    #Wenn Abdimmen (E5 > E4) und ist <= soll (A1 < E4)
    5012|1|"(EN[5] > EN[4]) and (int(SN[4])<=EN[4])"|"1"|""|2|0|0|0

    #Wenn Hochdimmen (E5 < E4) und ist => soll (A1 => E4)
    5012|1|"(EN[5] < EN[4]) and (int(SN[4])=>EN[4])"|"1"|""|2|0|0|0

    # Timer neustarten, Basis 10 Sekunden, geaendert auf 1 sec (5te feld von hinten)
    5012|0|"(EC[1] and EN[1]) or OC[1]"|""|"1"|0|1|0|0
    [/INFORMATION]


    Ich beschreibe den Baustein mit verschiedenen Werten aus einer Szene, das heisst, es wird ständig hoch und runtergedimmt....
    Hat jemand eine Idee??

    Einen Kommentar schreiben:


  • ozett
    antwortet
    ABER:
    bei all dem feedback zum dimm-baustein: auch damals schon gut, was? (_lobhudelei_modus). Wie wäres es mit nem facelift? ist doch heute gar nicht mehr so schlimm .... ;-) und der stress ist seit 2005 bestimmt weniger geworden , da klappt das sicher .... ;-)

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    Zitat von ozett Beitrag anzeigen
    klar,
    der baustein sieht irgendwie auch "in die jahre gekommen" aus, aber wer tut das nicht? ;-)
    Der war gut - so lange ist das schon her? Ich werde wirklich alt

    Einen Kommentar schreiben:


  • ozett
    antwortet
    klar,
    der baustein sieht irgendwie auch "in die jahre gekommen" aus, aber wer tut das nicht? ;-)

    ich muss allerdings nochmla sagen, dass ich keinerlei ahnung von baustein-programmierung habe, sondern nur nach allen Hilfen hier zuvor die Werte der Taktung von 10 auf 1 (sec.) geändert habe. in meinen kurzen test hats geklappt. also:


    Code:
    ####################################################################################
    #   (C) 2005, Matthias Schmidt, v1.1                                               #
    ####################################################################################
    #   BS : Langzeitdimmer aus/ab                                                     #
    ####################################################################################
    #   18.1.05 angelegt                                                               #
    #   12.1.10 optimiert für alternatives Aufdimmen                                   #
    #   22.8.12 taktung sek für smoothes dimmen
    #   25.9.12 timer am ende auch auf 1 sec gesetzt...
    ####################################################################################
    
    #5000|"Text"|Typ(1-4)|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|"smh@213\Langzeitdimmer1s"|1|5|"Ein/Aus"|"Dauer (min)"|"Istwert"|"Endwert"|"Startwert"|3|"Dimmwert"|"Ende erreicht"|"Ber. SW"
    
    5001|5|3|1|4|0
    
    # EN[x]
    5002|1|0                # Ein/Aus
    5002|2|6                # Dauer
    5002|3|0                # Istwert
    5002|4|0                # Endwert
    5002|5|0                # Startwert
    
    # Speicher
    5003|1|0|0              # Schrittweite berechnet
    5003|2|4|1             # fix 1 sec. unbenutzt (2012-08-22 TAKT von 10s auf 1s geaendert)
    5003|3|0|0              # Startwert
    5003|4|0|0              # Abbild A
    
    # Ausgänge
    5004|1|0|0|2|0            # Ausgang
    5004|2|0|1|2|0            # Ende erreicht=1
    5004|3|0|0|2|0            # berechnete Schrittweite
    
    # Logik Berechnung SW  
    
    # wenn Einschaltung und Startwert = 0 -> Istwert in Startspeicher_SN3 und Abbild SN4
    5012|0|"(EC[1] and EN[1]==1 and EN[5]==0)"|"EN[3]"|""|0|0|3|0
    5012|0|"(EC[1] and EN[1]==1 and EN[5]==0)"|"EN[3]"|""|0|0|4|0
    
    # wenn Einschaltung und Startwert ungleich 0 -> Startvorgabe in Startspeicher_SN3 und Abbild SN4
    5012|0|"(EC[1] and EN[1]==1 and EN[5]!=0)"|"EN[5]"|""|0|0|3|0
    5012|0|"(EC[1] and EN[1]==1 and EN[5]!=0)"|"EN[5]"|""|0|0|4|0
    
    # wenn Einschaltung -> fertigmeldung rücksetzen
    5012|0|"(EC[1] and EN[1]==1)"|"0"|""|2|0|0|0
    
    #Berechnungsabbruch wenn AUS
    5012|1|"EN[1]==0 or AN[2]"|""|""|0|0|0|0
    
    # wenn eingeschaltet wird oder Dauer geändert wird -> Schrittweite berechnen und in Speicher und auf A3
    # Schrittweite = (Endwert - Startspeicher) / Dauer * 60 / 1
    5012|0|"(EC[1] and EN[1]) or (EC[2] and EN[2]>0)"|"float(EN[4]-SN[3])/float(EN[2]*60.0/1.0)"|""|3|0|1|0
    
    # wenn eingeschaltet wird oder Dauer geändert wird -> Startwert auf Dimmausgang ??? warum nicht Startspeicher
    5012|0|"(EC[1] and EN[1]) or (EC[2] and EN[2]>0)"|"EN[5]"|""|1|0|0|0
    
    # Timer event, 
    # - Abbild um Schrittweite erhöhen
    5012|0|"EN[1] and OC[1]"|"SN[4]+SN[1]"|""|0|0|4|0
    
    # - Werte auf Ausgang ausgeben
    5012|0|"EN[1] and OC[1]"|"int(SN[4])"|""|1|0|0|0
    
    
    # 5012|Ende nach Ausführen|Bedingung|Formel|Zeitformel|Ausgang|Zeitspeicher|Speichervariable|Negierter Ausgang
    #      Ende nach Ausführen
    #      |  Bedingung
    #      |  |                 Formel
    #      |  |                 |  Zeitformel
    #      |  |                 |  |  Ausgang
    #      |  |                 |  |  | Zeitspeicher
    #      |  |                 |  |  | | Speichervariable
    #      |  |                 |  |  | | | Negierter Ausgang
    #      |  |                 |  |  | | | |
    # 5012|0|"EC[1] and EN[1]"|"1"|""|1|0|0|2
    
    # Wenn Ende erreicht abdimmen, Fertigmeldung
    #wenn SN4=EN4 immer, direkt, Augang2 (Ende Erreicht)=1, Danach beenden
    5012|1|"int(SN[4])==EN[4]"|"1"|""|2|0|0|0
    
    #Wenn Abdimmen (E5 > E4) und ist <= soll (A1 < E4)
    5012|1|"(EN[5] > EN[4]) and (int(SN[4])<=EN[4])"|"1"|""|2|0|0|0
    
    #Wenn Hochdimmen (E5 < E4) und ist => soll (A1 => E4)
    5012|1|"(EN[5] < EN[4]) and (int(SN[4])=>EN[4]) "|"1"|""|2|0|0|0
    
    # Timer neustarten, Basis 10 Sekunden, geaendert auf 1 sec (5te feld von hinten)
    5012|0|"(EC[1] and EN[1]) or OC[1]"|""|"1"|0|1|0|0
    Angehängte Dateien

    Einen Kommentar schreiben:


  • kippi
    antwortet
    hi,

    könntest du mal kurz den Baustein posten oder den gesamten Code, würde das auch gerne mal ausprobieren, da ich ein schönes Fading fürs Heimkino bauen wollte. Und dazu wäre das ja wenns geht ideal

    Einen Kommentar schreiben:


  • ozett
    antwortet
    hi,
    nach ich habe nach meinen zweifeln einfach noch den timer aus dem vorhergehenden post von 10sec auf 1sec gesetzt. ich hatte ja (lange ist her) einfach deine ge-bug-fixte version genommen.

    ansonsten nur ausprobiert, ob der dimmer auch wie von dir vorgeschlagen mit den dezimalwerten als timer-minuten funktioniert. tut er, wie ja schon geschrieben.

    sieht soweit gut aus. wenn man wollte, dann könnte man diesen dimmer-baustein sicher noch um weitere kleinigkeiten "pimpen". ich würde fast glauben, dass matthias bei seinen innovationen dies seit 2009 bei sich irgendwo schon getan hat ?-) aber mir reicht das im augenblick so, für meinen zweck.

    und damit zur nächsten baustelle bei der knx-modelleisenbahn.. ok?
    gruss,
    ozett

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Danke fürs Feedback.
    Kannst du bitte genau beschreiben was du geändert hast - für "nachfolgende Generationen".
    Und zum Beilegen: der Baustein kommt ja nicht von Gira... da müssten Sie zumindest Fragen ;-)

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • ozett
    antwortet
    blindflug

    habe jetzt zeit zum testen gefunden.
    und den timer auf 1 sec gesetzt.
    damit verschwindet eine kleine anfangsverzögerung. und der verlauf ist gleichmässiger. auf- und abdimmen geht gut.
    min-werte als 0,5 gehen (=30sec.) auch.

    Der Baustein von 2009 wird immer mal wieder nachgefragt, könnte fast schon beim HS dabei liegen, oder? ;-)

    ganz herzlichen dank,
    ozett

    Einen Kommentar schreiben:


  • ozett
    antwortet
    was ist denn damit:

    # Timer neustarten, Basis 10 Sekunden
    5012|0|"(EC[1] and EN[1]) or OC[1]"|""|"10"|0|1|0|0

    (bewege mich hier echt auf duennen eis, in diesem baustein ...)

    gruss,
    ozett

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    die Version die ich einsetze dimmt auch von Dunkel nach hell - bei mir jeden Morgen :-)
    Und wenn ich mir den Baustein so anschaue ist der auch SEHR gut dokumentiert.

    ich würde das
    5003|2|4|10 # fix 10 sec. unbenutzt
    auf
    5003|2|4|1 # fix 1 sec. unbenutzt
    ändern
    und außerdem

    # wenn eingeschaltet wird oder Dauer geändert wird -> Schrittweite berechnen und in Speicher und auf A3
    # Schrittweite = (Endwert - Startspeicher) / Dauer * 60 / 10
    5012|0|"(EC[1] and EN[1]) or (EC[2] and EN[2]>0)"|"float(EN[4]-SN[3])/float(EN[2]*60.0/10.0)"|""|3|0|1|0

    auf

    # wenn eingeschaltet wird oder Dauer geändert wird -> Schrittweite berechnen und in Speicher und auf A3
    # Schrittweite = (Endwert - Startspeicher) / Dauer * 60 / 1
    5012|0|"(EC[1] and EN[1]) or (EC[2] and EN[2]>0)"|"float(EN[4]-SN[3])/float(EN[2]*60.0/1.0)"|""|3|0|1|0


    Damit müsste der Baustein sekündlich takten.
    Evtl. kannst du mit dem Wert noch spielen - z.B. 0.5 sekunden...
    Nimm bitte die Version die ein paar posts weiter oben von mir hochgeladen wurde...

    Alles ohne Garantie und ohne Gewähr.

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • ozett
    antwortet
    im downloadbereich steht:
    "Der Dimmer funktioniert momentan nur im Modus Abdimmen, also Endwert < Startwert. Die Taktfrequenz ist fest eingestellt auf 10 Sekunden."

    der takt ist in dem baustein wohl nicht von dir geändert? auch die zwischenwerte scheinen nicht auf die zeitdauer klein gerrechnet, um mit kleinen teilschritten echt smooth zu dimmen. aufdimmen habe ich jetzt nicht getestet.

    meine fähigkeiten zur änderung (und kenntnisse um solche bausteingrenzen) für den HS sind limitiert, ohne hilfe komme ich selbst so wohl nicht weiter ...

    danke und gruss,
    ozett

    Einen Kommentar schreiben:


  • ozett
    antwortet
    ganz herzlichen dank für den tip.
    es ist wirklich einen versuch wert. werde gleich mal sehen wies geht. hätte es schon alles gern weiter im HS. stelle dann das ergebnis ein...

    (nebenbei: linknx dimmt schön soft rauf und runter. und wie ich so runterdimme auf 0 stosse ich auf einen bug, der einen endless-loop produziert. alles braucht so seine beschäftigung bis zum guten ende...)

    danke und gruss,
    ozett

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    So 0,17 Minuten entsprechen etwa 10 Sekunden.
    Keine Garantie für nix - aber ein Versuch ist es Wert.
    Gruß
    T.

    Einen Kommentar schreiben:


  • ozett
    antwortet
    hi,
    noch nicht. im baustein ist die zeitvorgabe mit minuten angezeigt. also dachte ich: mindestes 1 min. wie könnte ich da 10 sec. eintragen?

    gruss,+
    ozett

    Einen Kommentar schreiben:

Lädt...
X