Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
wahrscheinlich schon. Aber ich stehe mit der eval-Syntax auf Kriegsfuß - mir fällt es sogar schwer dein Beispiel nachzuvollziehen.
Ich dachte eigentich ich hätte da was übersehen. ;-)
Das Dimmen bezieht sich hier auf den Druck auf einen Tastsensor. Sprich vom KNX kommt der Dimmbefehl. Im Item dimmen wird der Wert eines anderes Items (der Dimmwert) in das Item fader geschrieben. Das Item fader wird dann entweder auf 0 oder 255 gedimmt mit Schrittweite 5 und einem Zeitdelte von 0.2 Sekunden. Sobald der Taster losgelassen wird, stoppt der Dimmbefehl. Das item fader wird auf -1 gesetzt und das dimmen ist beendet.
RelativDimmen:
filename: relativdimmen.py
min_to_max_duration: 2.5 # in 2.5s wird von min bis max gedimmt
step: 2.5
watch_item:
- eg.StripeOben.R.RelativDimmen
Items sind:
Code:
- eg.StripeOben.R
- eg.StripeOben.R.RelativDimmen
Die Logik:
Code:
#!/usr/bin/env python3
# relativdimmen.py
# Watch the DPT3.007 item (list)
#from lib.item import Items
#items = Items.get_instance()
logger.warning('[Relativ Dimmen] Start')
min=0
max=100
input_val = trigger['value']
try:
input_item= items.return_item(trigger['source'])
target_item= input_item.return_parent()
start = input_val[1]
increase = input_val[0]
except:
logger.error("This logic must be triggered by an Item of type list with DPT3.007")
min_to_max_duration = 2.5 # logic.min_to_max_duration
step = 2.5 # logic.step
time_delta= min_to_max_duration / ( (max-min)/step ) # e.g. 2s / ((100-0)/ 1) = 0.02
logger.warning('[Relativ Dimmen] Start {} Increase {}'.format(start,increase))
if start:
if increase:
target_item.fade(max, step, time_delta)
logger.warning('[Relativ Dimmen] To {} Step {}, TimeDelta {}'.format(max, step, time_delta))
else: # decrease
target_item.fade(min, step, time_delta)
logger.warning('[Relativ Dimmen] To {} Step {}, TimeDelta {}'.format(min, step, time_delta))
else:
logger.info('[Relativ Dimmen] Stoppe Fading')
target_item._fading=False
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: