Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

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