Ankündigung

Einklappen
Keine Ankündigung bisher.

Eval für Lüftungsanlage

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

    Eval für Lüftungsanlage

    Hallo,

    ich habe ein Problem beim Schalten meiner Lüftungsanlage. Ich habe eine UZSU gebaut, mit der ich 3 Stufen wählen kann. Die UZSU sendet mir 1, 2 oder 3. Ich versuche jetzt mittels eval und eval_trigger die Werte umzuwandeln und zu der richtigen Gruppenadresse eine 1 zu senden.

    Der Code in der smartvisu.conf sieht folgendermaßen aus:

    Code:
        [[lueftung]]
            [[[stufen]]]
                type = num
                visu_acl = rw
                enforce_updates = yes
                knx_dpt = 5
                [[[[uzsu]]]]
                    type=dict
                    uzsu_item=sonstiges.lueftung.stufen
                    cache=True
                    visu_acl=rw            
            [[[stufe_1]]]
                type = num
                visu_acl = rw
                enforce_updates = yes
                knx_dpt = 1
                knx_send = 7/1/11
                eval = value if value=1 else 1
                eval_trigger = sonstiges.lueftung.stufen
            [[[stufe_2]]]
                type = num
                visu_acl = rw
                enforce_updates = yes
                knx_dpt = 1
                knx_send = 7/1/12
                eval = value * 0.5
                eval_trigger = sonstiges.lueftung.stufen
            [[[stufe_3]]]
                type = num
                visu_acl = rw
                enforce_updates = yes
                knx_dpt = 1
                knx_send = 7/1/13
                eval = value if value=3 else 1
                eval_trigger = sonstiges.lueftung.stufen
    Der eval in Stufe 2 funktioniert, ist aber nicht schön. Wie baue ich ein eval für "wenn 3 kommt, dann sende 1"

    Danke und Gruß
    Alex

    #2
    Vergleich als Operator ist "==". Google mal nach "python operator".

    Ansonsten noch mal klar sagen was bei welcher Stufe gesendet werden soll.
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      Danke für die Info:

      die Werte 1, 2 oder 3 werden an lueftung.stufen gesendet. Über eval_trigger höhren die Items stufe_1 auf 1, stufe_2 auf 2, stufe_3 auf 3. Jedes Item, also stufe_1, stufe_2, stufe_3 soll aber an die jeweilige GA eine 1 senden.

      Beispiel bei 3 - springt stufe_3 an und soll aber eine 1 senden.

      Ich hoffe es wird klarer...

      also
      bei 1 - sende 1 an GA 7/1/11
      bei 2 - sende 1 an GA 7/1/12
      bei 3 - sende 1 an GA 7/1/13

      also in der Art:

      value = value ist 1, dann sende 1
      value = value ist 2, dann sende 1
      Zuletzt geändert von alex78; 12.07.2015, 20:43.

      Kommentar


        #4
        Stufe 1
        1 if value==1 else none
        Stufe 2
        1 if value==2 else none
        Stufe 3
        1 if value==3 else none

        Für eval ist die Doku von PEP308 ganz hilfreich.
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          funktioniert leider nicht - invalid syntax

          Kommentar


            #6
            Ups...man sollte das nicht während des Tatorts ausm Kopf machen .
            Müsste ich auch nochmal nachsehen.
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #7
              Versuche mal "None" statt "none".
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar


                #8
                funktioniert jetzt. Danke.
                Die richtige Syntax:
                Code:
                    [[lueftung]]
                        [[[stufen]]]
                            type = num
                            visu_acl = rw
                            enforce_updates = yes
                            knx_dpt = 5
                            [[[[uzsu]]]]
                                type=dict
                                uzsu_item=sonstiges.lueftung.stufen
                                cache=True
                                visu_acl=rw            
                        [[[stufe_1]]]
                            type = num
                            visu_acl = rw
                            enforce_updates = yes
                            knx_dpt = 1
                            knx_send = 7/1/11
                            eval = 1 if value==1 else None
                            eval_trigger = sonstiges.lueftung.stufen
                        [[[stufe_2]]]
                            type = num
                            visu_acl = rw
                            enforce_updates = yes
                            knx_dpt = 1
                            knx_send = 7/1/12
                            eval = 1 if value==2 else None
                            eval_trigger = sonstiges.lueftung.stufen
                        [[[stufe_3]]]
                            type = num
                            visu_acl = rw
                            enforce_updates = yes
                            knx_dpt = 1
                            knx_send = 7/1/13
                            eval = 1 if value==3 else None
                            eval_trigger = sonstiges.lueftung.stufen

                Kommentar

                Lädt...
                X