Ankündigung

Einklappen
Keine Ankündigung bisher.

eval, eval_trigger Frage

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

    eval, eval_trigger Frage

    Hallo, eine kurze Frage zum Thema eval....

    Bin gerade etwas am verzweifeln, aber warum funktionirt das hier nicht?

    Code:
          
    AA
      
         Raum0
          
             Licht:
    
                Licht1:
                    name: Licht 1
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_send: 0/4/0
                    knx_listen: 0/4/1
    
                Licht1_Status:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_send: 0/4/1
                    eval: 1 if sh.AA.Raum0.Licht.Licht_Westseite() == 1 and sh.AA.Raum0.Licht.Terrasse_Bambus() == 1 else 0
                    eval_trigger:
                      - AA.Raum0.Licht.Licht_Westseite
                      - AA.Raum0.Licht.Terrasse_Bambus
    Licht1_Status sendet brav seinen Wert auf den Bus. 0/4/1 wird also gesendet (geprüft in der ETS Gruppenmonitor).
    Aber Licht1 empfängt (Listen) diesen Status einfach nicht!

    Gibt es da irgendwelche Einschränkungen die man beachten muss?
    Zuletzt geändert von schuma; 22.10.2018, 19:22.

    #2
    Zwei Items über das KNX Plugin Werte austauschen zu lassen ist nicht die beste Idee
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Aber warum funktioniert es nicht?
      Wo doch auf den Bus gesendet wird.

      Kommentar


        #4
        Weil (meiner Meinungnach) gesendete Telegramme bewusst gefiltert werden, weil sonst jedes gesendete Telegramm als Echo vom Bus zurückkommen würde, was z.B. bei Items mit nur einer Gruppenadresse für knx_snd und knx_listen Probleme schaffen kann.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          Wenn Du das Licht mit 0/4/0 schaltest und der Aktor auf 0/4/1 den Status sendet. Was willst Du im Status Item erreichen, wenn Du auf die Status Adresse des Aktors sendest?
          Viele Grüße
          Martin

          There is no cloud. It's only someone else's computer.

          Kommentar


            #6
            Das Ganze ist etwas gewachsen.
            Eigentlich bildet das Ganze eine Art Szene. Gesendet wird auf 0/4/0 Der Status käme halt nicht vom Aktor sondern von dem Hilfsitem.
            Die Aktoren senden den Status der einzelnen Lampen.

            es soll am Ende ein Stateswitch angehen wenn beide Lichter an sind und ausgehen wenn nur eins der beiden Lichter an ist.
            Szenen Status erfüllt sozusagen.

            Ich mache das dann halt anders. Entweder mit dem Logikmodul oder einfach mit einer Szene. Ist auch dann verständlicher.

            Konnte nur nicht verstehen warum mein Provisorium nicht funktionierte.

            Aber da konntest Du mich gut aufklären.
            Vielen Dank

            Kommentar


              #7
              Wenn das Status Item vom Bus aus abgefragt werden soll, ist knx_send falsch. Dann müsstest Du auf jeden Fall knx_reply verwenden.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                Ne, soll es nicht. Send ist da schon richtig.
                Es sendet zum einen an den SV Stateswitch (Licht1) und an einen Tastsensor.

                Kommentar


                  #9
                  Dann habe ich noch nicht verstanden was Du überhaupt erreichen willst.
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    #10
                    Wenn die Frage schon so heisdt, weshalb verwendest du in Licht1 nicht ebenfalls einen eval_trigger: ..Licht1_Status?

                    Übrigens: Anstatt deines langen eval in Licht1_Status könntest du einfach eval: or schreiben.

                    Kommentar


                      #11

                      Es gibt da zwei Lampen (Bambus , Westseite) im Garten die sowohl einzeln als auch über einen Taster gemeinsam (Licht 1) geschaltet werden.
                      Der Schalter Licht1 soll aber signalisieren ob die beiden Lampen leuchten. (Szenen Status erfüllt)

                      Kommentar


                        #12
                        Zitat von smai Beitrag anzeigen
                        Wenn die Frage schon so heisdt, weshalb verwendest du in Licht1 nicht ebenfalls einen eval_trigger: ..Licht1_Status?

                        Übrigens: Anstatt deines langen eval in Licht1_Status könntest du einfach eval: or schreiben.
                        1. Stimmt gute Idee! Das könnte noch gehen.
                        2. Danke fürs „or“

                        Diese Provisorium entsteht dadurch, dass die Funktion Licht1 mal eine andere Aufgabe hatte. Ich wollte jetzt nicht einen harten Bruch bei der Bedienung machen. In Zukunft wird das dann eine normale Szene werden.
                        Aber für den Moment ist es erstmal besser wenn beim Drücken eine LED angeht und beim nochmal drücken die LED wieder ausgeht.
                        Hat mit WAF etc. zu tun

                        Kommentar


                          #13
                          Getestet....
                          Zitat von smai Beitrag anzeigen
                          Wenn die Frage schon so heisdt, weshalb verwendest du in Licht1 nicht ebenfalls einen eval_trigger: ..Licht1_Status?
                          Geht nicht, da dann ja eine 0 über den eval_trigger kommt und das Licht1 Item dann auch eine 0 auf den Bus sendet. Und mir die beiden Lichter somit ausschalte obwohl ich ja nur ein Licht ausgemacht habe. Es sollte nur der status des Buttons geändert werden. Wenn die 0 über KNX in das Item käme. würde der Button nicht wieder eine 0 über den Bus senden.
                          Ist recht komplex zu erklären.....

                          Zitat von smai Beitrag anzeigen
                          Übrigens: Anstatt deines langen eval in Licht1_Status könntest du einfach eval: or schreiben.
                          "and" funktioniert natürlich wie erwartet...

                          Ich mache einfach ne Szene draus....

                          Kommentar

                          Lädt...
                          X