hast du es mal mit diesem baustein (aus diesem thread) probiert?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Langzeitandimmen "WakeUP-Light"
Einklappen
X
-
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
Kommentar
-
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
Kommentar
-
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
Kommentar
-
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
Kommentar
-
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
Kommentar
-
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
Kommentar
-
Zitat von ozett Beitrag anzeigenklar,
der baustein sieht irgendwie auch "in die jahre gekommen" aus, aber wer tut das nicht? ;-)- so lange ist das schon her? Ich werde wirklich alt
Gruß MatthiasEIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
- PN nur für PERSÖNLICHES!
Kommentar
-
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??Gruss
Sven :-)
Kommentar
Kommentar