Ankündigung

Einklappen
Keine Ankündigung bisher.

Nachtlicht. Probleme mit Eval_Trigger/Eval

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

    Nachtlicht. Probleme mit Eval_Trigger/Eval

    Hallo,

    ich habe ein Problem, bzw komme nicht auf die Lösung.

    Ich habe eine Zeitschaltuhr angelegt, die mir jeweils die Ausgänge meiner Flurbeleuchtung (Aktor-Kanal) sperrt bzw freigibt.
    Nun möchte ich jedoch diese Sperre mittels Visu aufheben können. Jedoch wird damit auch das Eval angestoßen und setzt das Item wieder auf den Zustand der "Zeitschaltuhr". Wie könnte ich dieses umgehen?

    Code:
        hallway:
            light:
                ceiling_light1:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_send: 6/1/0
                    knx_init: 6/1/1
    
                    block:
                        type: bool
                        visu_acl: rw
                        knx_dpt: 1
                        knx_send: 6/1/8
                        enforce_updates: 'true'
                        eval: 1 if sh.EG.hallway.light.night_light_block() == True else 0
                        eval_trigger: EG.hallway.light.night_light_block
    
                ceiling_light2:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_send: 6/1/2
                    knx_init: 6/1/3
    
    #Beleuchtung Nachtlicht
               ceiling_light3:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_send: 6/1/4
                    knx_init: 6/1/5
    
                   block:
                        type: bool
                        visu_acl: rw
                        knx_dpt: 1
                        knx_send: 6/1/7
                        enforce_updates: 'true'
                        eval: 1 if sh.EG.hallway.light.night_light_block() == False else 0
                        eval_trigger: EG.hallway.light.night_light_block            
    
    #Nachtlicht UZSU
                night_light_block:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    enforce_updates: 'true'
    
                    uzsu:
                        type: dict
                        uzsu_item: EG.hallway.light.night_light_block
                        cache: 'True'
                        visu_acl: rw
                        enforce_updates: 'yes'
    Gruß Manuel

    #2
    Hi,

    kannst Du noch schreiben, welches Item genau Du über die Visu beeinflussen willst und was für ein Ergebnis Du erwartest? Ich bin mir nicht sicher, ob ich Deine Frage korrekt verstehe.

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Hallo Waldemar,

      ich möchte die Items: EG.hallway.light.ceiling_light1.block und EG.hallway.light.ceiling_light3.block und beeinflussen. Mit diesem Item sperre und entsperre ich den Aktorkanal. Damit ich über die Visu die Sperrung aufheben kann muss ich diese beeinflussen können.

      Gruß Manuel

      Kommentar


        #4
        Hi Manuel,

        Du hast die aber so programmiert, dass immer wenn der eine true ist, der andere false wird. Soll das weiter so sein? Oder willst Du jetzt die Möglichkeit, beide Sperren aufzuheben?

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #5
          Hallo Waldemar, es soll so sein, dass Tagsüber (UZSU = 0) die eine Leuchte gesperrt ist. Nachts soll die andere Lampe gesperrt sein. Jedoch kommt es mal vor, dass ich Frühmorgens etwas aus dem Schrank nehmen möchte und da möchte ich die Möglichkeit haben, diese zu entsperren, sodass ich trotzdem beide Leuchten manuell einschalten kann. Die beiden Leuchten hören beide auf den selben Bewegungsmelder jedoch schaltet immer nur die Leuchte, die nicht gesperrt ist im normalbetrieb. Gruß und danke Manuel

          Kommentar


            #6
            Hi Manuel,

            Du kannst ja neben "block"-Item noch ein "manual"-Item machen, dass von der Visu beeinflusst wird:
            Code:
                            block:
                                type: bool
                                visu_acl: rw
                                knx_dpt: 1
                                knx_send: 6/1/8
                                enforce_updates: 'true'
                                eval: 1 if sh.EG.hallway.light.night_light_block() == True else 0
                                eval_trigger: EG.hallway.light.night_light_block
                            manual:
                                type: bool
                                visu_acl: rw
                                knx_dpt: 1
                                knx_send: 6/1/8
                                enforce_updates: 'true'
            Das wäre unabhängig von jeglicher Logik.

            Wenn es das block-Item selbst sein soll, würde es für das obige gut gehen:
            Code:
                            block:
                                type: bool
                                visu_acl: rw
                                knx_dpt: 1
                                knx_send: 6/1/8
                                enforce_updates: 'true'
                                eval: value
                                eval_trigger: EG.hallway.light.night_light_block
            Für das negierte wird es schwieriger, zumindest wenn Du das enforce_updates wirklich brauchst. Ohne ginge es so:
            Code:
                            block:
                                type: bool
                                knx_dpt: 1
                                knx_send: 6/1/7
                                eval: not value
                                eval_trigger:
                                    - EG.hallway.light.night_light_block
                                    - .visu
                                visu:
                                    type: bool
                                    visu_acl: rw
                                    eval: not value
                                    eval_trigger: ..
            Das sind die Ideen, die ich hätte, wenn Du noch konkrete Fragen zur Realisierung hast, stell sie einfach.

            Gruß, Waldemar
            ​​​​​​​
            OpenKNX www.openknx.de

            Kommentar


              #7
              Hallo Waldemar,

              danke für deine Hilfe. Ich habe das nun so realisiert und es funktioniert.

              Code:
                  hallway:
                      light:
                          ceiling_light1:
                              type: bool
                              visu_acl: rw
                              knx_dpt: 1
                              knx_send: 6/1/0
                              knx_init: 6/1/1
                              block:
                                  type: bool
                                  visu_acl: rw
                                  knx_dpt: 1
                                  knx_send: 6/1/8
                                  eval: value
                                  eval_trigger: EG.hallway.light.night_light_block
                          ceiling_light2:
                              type: bool
                              visu_acl: rw
                              knx_dpt: 1
                              knx_send: 6/1/2
                              knx_init: 6/1/3
              #Beleuchtung Nachtlicht
                          ceiling_light3:
                              type: bool
                              visu_acl: rw
                              knx_dpt: 1
                              knx_send: 6/1/4
                              knx_init: 6/1/5
                              block:
                                  type: bool
                                  visu_acl: rw
                                  knx_dpt: 1
                                  knx_send: 6/1/7
                                  eval: not value
                                  eval_trigger:
                                      - EG.hallway.light.night_light_block
                                      - .visu
                                  visu:
                                      type: bool
                                      visu_acl: rw
                                      eval: value
                                      eval_trigger: EG.hallway.light.night_light_block
                          #Nachtlicht UZSU
                          night_light_block:
                              type: bool
                              visu_acl: rw
                              knx_dpt: 1
                              enforce_updates: 'true'
                              uzsu:
                                  type: dict
                                  uzsu_item: EG.hallway.light.night_light_block
                                  cache: 'True'
                                  visu_acl: rw
                                  enforce_updates: 'yes'
              Danke für deine Hilfe.
              Zuletzt geändert von manu241; 12.09.2018, 17:20.

              Kommentar

              Lädt...
              X