Ankündigung

Einklappen
Keine Ankündigung bisher.

item-Funktion fade, wie nutzen

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

    item-Funktion fade, wie nutzen

    Ich möchte bei Tag-Nach-Wechsel eine Umschaltung der Farben im DualWhite-LED-Stripe langsam realsieren. Idealerweise ohne Logik. Geht das mit der fade-Funktion. Mir ist nur deren Anwendung nicht ganz klar.

    Code:
                        TagNachtWechsel:
                            type: bool
                            eval: value
                            eval_trigger: EG.Schlafen.TagNacht
                            on_change:
                                - .backup = sh....WW.Dimmwert()
                                - ...WW.Dimmwert = sh....CW.Dimmwert()
                                - ...CW.Dimmwert = sh..backup()
                            backup:
                                type: num
    Wo bzw. wie könnte ich die hier einbinden?

    #2
    https://www.smarthomeng.de/user/konf...highlight=fade

    den Ausdruck setzt du dann als eval (statt value, was eh keinen Sinn macht).

    Da du aber mehrere Items hast, müsstest du das für WW und CW individuell machen. Du kannst aber auch im eval relative Angaben machen, sodass ein Kopieren recht einfach ist:
    eval: sh....WW.Dimmwert.fade(0,1,1) Achte darauf, dass ein fade abgebrochen wird, sobald das gefadete Item von außen geändert wird. Wenn du also zB ein KNX Item faden willst, das auch ein knx_listen hat, müsstest du hier den Fade auf ein Hilfsitem legen, das nur das knx_send, aber kein listen hat.

    Kommentar


      #3
      Zitat von Onkelandy Beitrag anzeigen
      https://www.smarthomeng.de/user/konf...highlight=fade

      den Ausdruck setzt du dann als eval (statt value, was eh keinen Sinn macht).

      Da du aber mehrere Items hast, müsstest du das für WW und CW individuell machen. Du kannst aber auch im eval relative Angaben machen, sodass ein Kopieren recht einfach ist:
      eval: sh....WW.Dimmwert.fade(0,1,1) Achte darauf, dass ein fade abgebrochen wird, sobald das gefadete Item von außen geändert wird. Wenn du also zB ein KNX Item faden willst, das auch ein knx_listen hat, müsstest du hier den Fade auf ein Hilfsitem legen, das nur das knx_send, aber kein listen hat.
      Geht das nur mit eval, also ohne eval_trigger? Oder brauche ich den trigger immer?

      Ich würde das jetzt so machen:

      Code:
                      WW:
                         Dimmwert:
                              type: num
                              knx_dpt: 5
                              knx_send: 5/3/13
                              knx_listen: 5/3/13
                              knx_init: 5/3/13
                              enforce_updates: yes
                              visu_acl: rw
                              fade:
                                  type: num
                                  knx_dpt: 5
                                  knx_send: 5/3/13
                                  enforce_updates: yes
                                  visu_acl: rw
                                  eval: ..Dimmwert.fade(value, 1, 30)
      Code:
                          TagNachtWechsel:
                              type: bool
                              eval: value
                              eval_trigger: EG.Wohnen.TagNacht
                              on_change:
                                  - .backup = sh....WW.Dimmwert()
                                  - ...WW.Dimmwert.fade = sh....CW.Dimmwert()
                                  - ...CW.Dimmwert.fade = sh..backup()
                              backup:
                                  type: num

      Kommentar


        #4
        Brauchst jedenfalls ein sh. Beim eval
        dann könnte es klappen

        Kommentar


          #5
          Das lief so nicht. Ich habe das jetzt anders gelöst. Ich glaube zwar nicht, dass der Weg sehr elegant ist, aber es funktioniert. :-)

          Code:
                              TagNachtWechsel:
                                  type: bool
                                  eval: value
                                  eval_trigger: EG.Buero.TagNacht
                                  on_change:
                                      - .backup_ww = sh....WW.Dimmwert()
                                      - .backup_cw = sh....CW.Dimmwert()
                                      - ...WW.Dimmwert = sh....WW.Dimmwert.fade(sh..backup_cw(), 1, 600/abs(sh..backup_cw()-sh..backup_ww()))
                                      - ...CW.Dimmwert = sh....CW.Dimmwert.fade(sh..backup_ww(), 1, 600/abs(sh..backup_cw()-sh..backup_ww()))
                                  backup_ww:
                                      type: num
                                  backup_cw:
                                      type: num
          Ich glaube die items erklären sich von selbst. Die Dauer ist so angelegt, dass der Dimmwechselvorgang 10 Minuten dauert.

          Kommentar


            #6
            Das heißt, eine Itemfunktion mit dem Wert des Items (value) zu bestücken, funzt nicht? Wäre vielleicht ein netter Featurerequest auf github?

            Kommentar


              #7
              Zitat von Onkelandy Beitrag anzeigen
              Das heißt, eine Itemfunktion mit dem Wert des Items (value) zu bestücken, funzt nicht? Wäre vielleicht ein netter Featurerequest auf github?
              Code:
                                  TagNachtWechsel:
                                      type: bool
                                      eval: value
                                      eval_trigger: EG.Wohnen.TagNacht
                                      on_change:
                                          - .backup = sh....WW.Dimmwert()
                                          - ...WW.Dimmwert.fade = sh....CW.Dimmwert()
                                          - ...CW.Dimmwert.fade = sh..backup()
                                      backup:
                                          type: num
                              WW:
                                  Dimmwert:
                                      type: num
                                      knx_dpt: 5
                                      knx_send: 5/3/12
                                      knx_init: 5/3/12
                                      enforce_updates: yes
                                      visu_acl: rw
                                      fade:
                                          type: num
                                          knx_dpt: 5
                                          knx_send: 5/3/12
                                          enforce_updates: yes
                                          visu_acl: rw
                                          eval: sh..Dimmwert.fade(value, 1, 30)
              Das ging zumindest nicht. Und selbst wenn hätte es auch den Nachteil, dass man das faden nicht so einfach abbrechen kann. Mir ist immer noch nicht so ganz klar, wo die Zuweisung der Item-Funktionen geht oder nicht. Ein paar mehr Beispiele in der Doku wäre echt großartig. :-)

              Deshalb weiß ich nicht, ob da was fehlt oder ob ichs einfach falsch gemacht habe. ;-)

              Kommentar


                #8
                Achso, wer sowas auch nutzen will:

                Code:
                                    TagNachtWechsel:
                                        type: bool
                                        eval: value
                                        eval_trigger: EG.Buero.TagNacht
                                        on_change:
                                            - .backup_ww = sh....WW.Dimmwert()
                                            - .backup_cw = sh....CW.Dimmwert()
                                            - ...WW.Dimmwert = sh....WW.Dimmwert.fade(sh..backup_cw(), 1, 600/abs(sh..backup_cw()-sh..backup_ww())) if sh..backup_cw()-sh..backup_ww() > 0 else None
                                            - ...CW.Dimmwert = sh....CW.Dimmwert.fade(sh..backup_ww(), 1, 600/abs(sh..backup_cw()-sh..backup_ww())) if sh..backup_cw()-sh..backup_ww() > 0 else None
                                        backup_ww:
                                            type: num
                                        backup_cw:
                                            type: num
                Jetzt fehlerbereinigt, damit es keine Division durch Null gibt. :-)

                Kommentar

                Lädt...
                X