Ankündigung

Einklappen
Keine Ankündigung bisher.

[Logik Baustein] Relatives Dimmen

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

  • henfri
    antwortet
    Zitat von Cannon Beitrag anzeigen

    Ich dachte eigentich ich hätte da was übersehen. ;-)
    Nee, ich glaube nicht. Klingt plausibel.

    Aber ich stehe mit der eval-Syntax auf Kriegsfu
    Damit sagst Du, dass Du mit Python Syntax auf dem Kriegsfuss stehst?
    Nein, nur mit einem Teil derer - wie ich schrieb.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von henfri Beitrag anzeigen
    Aber ich stehe mit der eval-Syntax auf Kriegsfu
    Damit sagst Du, dass Du mit Python Syntax auf dem Kriegsfuss stehst?

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von henfri Beitrag anzeigen
    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.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo Cannon,

    wahrscheinlich schon. Aber ich stehe mit der eval-Syntax auf Kriegsfuß - mir fällt es sogar schwer dein Beispiel nachzuvollziehen.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Geht das nicht direkt mit der Funktion fade eines Items? Also so:

    Code:
            # value[0]: 0 = ab, 1 = auf
            # value[1]: 0 = Stopp, 1 = bewegen
            dimmen:
                type: list
                knx_dpt: 3
                enforce_updates: yes
                on_update:
                    - .fader = sh...Dimmwert()
                    - .fader = sh..fader.fade(value[0] * 255, 5, 0.2) if value[1] == 1 else -1
                fader:
                    type: num
                    on_change: ...Dimmwert = value if value != -1 else None

    Einen Kommentar schreiben:


  • henfri
    hat ein Thema erstellt [Logik Baustein] Relatives Dimmen.

    [Logik Baustein] Relatives Dimmen

    Hallo,

    ich habe sh.py das relative Dimmen beigebracht:

    Code:
    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
    Gruß,
    Hendrik
    Zuletzt geändert von bmx; 09.01.2021, 14:49.
Lädt...
X