Ankündigung

Einklappen
Keine Ankündigung bisher.

Fade() funktioniert nicht (macht nur einen Schrit)

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

    Fade() funktioniert nicht (macht nur einen Schrit)

    Hallo,

    ich probiere gerade die fade() Funktion aus.
    Mein Verständnis ist, dass ein Aufruf
    fade(100, 1, 1)
    dafür sorgt, dass z.B. von 80 auf 100 gedimmt wird in Schritten von '1' mit Pausen von 1s. D.h. das dauert in diesem Fall 20s.

    Aus irgendeinem Grund wird jedoch nur ein Schritt gemacht:
    Code:
    >>> sh.og.Schlafzimmer.Licht.Kleiderschrank.Dimmwert()                                                                          
    12.2                                                                                                                            
    >>> sh.og.Schlafzimmer.Licht.Kleiderschrank.Dimmwert.fade(100,1,1)                                                              
    >>> sh.og.Schlafzimmer.Licht.Kleiderschrank.Dimmwert()                                                                          
    12.9
    (von der interaktiven sh.py shell)

    Code:
    2014-11-16 09:50:05,041 INFO     Main         knx: 0.0.0 set 1/2/47 to 21 -- __init__.py:parse_telegram:193
    2014-11-16 09:50:05,737 INFO     Main         knx: 1.0.49 set 1/2/49 to 12.9 -- __init__.py:parse_telegram:202
    2014-11-16 09:50:05,737 DEBUG    Main         Item og.Schlafzimmer.Licht.Kleiderschrank.Dimmwert = 12.9 via KNX 1.0.49 1/2/49 -- item.py:__update:363
    1.0.49 ist das Dali-GW.

    Anbei ein Log.
    Habe ich fade verstanden?

    Gruß,
    Hendrik
    Angehängte Dateien

    #2
    Hallo Hendrik,

    das hast Du soweit richtig verstanden.

    Fade wird jedoch abgebrochen, wenn das Item einen neuen Wert erhält, in Deinem Fall von der Status-GA.

    (Ich verwende Fade zusammen mit DMX, da gibt es keinen Status).
    Vorschläge für eine alternative Logik nehme ich gerne an.

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo Marcus,

      Danke, das hilft (das wäre etwas für die Doku, finde ich).
      Warum wird fade denn abgebrochen, wenn das Item einen neuen Wert erhält? Ist das nicht der Regelfall bei KNX? Was spricht dafür, beim Setzen eines neuen Wertes den Fade zu unterbrechen?
      Ich kann mir vorstellen, dass man den Fade abbrechen können möchte. Das könnte dann aber in einer Logik passieren (watch-item, wenn manuell gesetzt (z.B. nicht von der PA von sh.py oder Rückmeldung/Aktor, dann fade unterbrechen)

      Ignoranter Vorschlag: Fade sollte nicht abgebrochen werden, wenn das Item einen neuen Wert erhält.

      Aber ich vermute mal, dass du dir dabei etwas gedacht hast :-) Daher:

      Alternativ-Vorschlag: Fade einen optionalen Parameter geben, der das Verhalten bei Wertänderung steuert, oder eine zusätzliche Fade-Funktion mit diesem Verhalten.

      Spricht da etwas gegen?

      Gruß,
      Hendrik

      Kommentar


        #4
        *groß aufzeig*
        Ich stehe gerade vor dem gleichen Problem und wäre sehr froh, wenn man KNX / DALI-Leuchten damit normal dimmen könnte. Das mit dem Abbrechen ist natürlich so eine Sache, aber vorerst wäre ein Flag zum Deaktivieren dieser Funktion wirklich super!

        Vielen Dank!

        Kommentar


          #5
          Hallo zusammen,
          gibt es hierzu schon Neuigkeiten? Ich möchte auch gerne die Kinderzimmerbeleuchtung beim "zu Bett gehen" langsam herunterdimmen.
          Viele Grüße
          Dieter

          Kommentar


            #6
            Leider nicht wirklich.. Es funktioniert auf jeden Fall, wenn du einfach das knx_listen raus nimmst. Aber das ist ja nicht Sinn der Sache.
            Alternativ ginge es auch mit einer eigenen Logik anstatt des fade Befehls... kannst ja mal probieren. Ich nutze das derzeit zum Faden von Musik, funzt aber bestimmt auch für Licht...
            Code:
            #!/usr/bin/env python
            # -*- coding: utf-8 -*-
            
            logger.info(trigger)
            stepping = 2
            timedec = 17000
            item = sh.return_item(trigger['source'])
            goal = trigger['value']
            vol = sh.Squeezebox_KG.Volume()
            
            if goal > 0:
                logger.debug("Run Fade In")
                vol += stepping
                sh.Squeezebox_KG.Volume(vol)
                if (vol + stepping) > goal:
                    logger.debug("Ende Fade In. Stop")
                    sh.Squeezebox_KG.Volume(goal)
                    exit()
                else:
                    next_time = sh.now() + dateutil.relativedelta.relativedelta(microseconds=timedec)
                    sh.scheduler.change('fade', next=next_time, value=goal)
            
            
            if goal == 0:
                logger.debug("Run Fade Out")
                vol -= stepping
                sh.Squeezebox_KG.Volume(vol)
                if (vol - stepping) <= goal+1:
                    logger.debug("Ende Fade Out.")
                    exit()
                else:
                    next_time = sh.now() + dateutil.relativedelta.relativedelta(microseconds=timedec)
                    sh.scheduler.change('fade_EG', next=next_time, value=goal)
            Mich wundert auf die Schnelle, dass das ohne scheduler.add funktioniert.. vielleicht hab ich noch irgendwo was drin.. Aber einfach mal testen.

            Kommentar


              #7
              Hallo Onkelandy,
              danke; versuche ich mal.
              Viele Grüße
              Dieter

              Kommentar


                #8
                Hat's geklappt? Hast du noch was geändert oder optimiert?

                Kommentar


                  #9
                  Zitat von Onkelandy Beitrag anzeigen
                  Hat's geklappt? Hast du noch was geändert oder optimiert?
                  Hallo Onkelandy,
                  nein, mit deinem Skript habe ich es noch nicht getestet; Derzeit läuft noch eine Logic die mit cycle = 5 einfach random-Werte für die Farben setzt. Funktioniert soweit für mich zufriedenstellend, daher wegen anderen Hausbauthemen noch dein´s zurückgestellt.
                  Viele Grüße
                  Dieter

                  Kommentar

                  Lädt...
                  X