Ankündigung

Einklappen
Keine Ankündigung bisher.

"Rule" mit "Item Group" wird doppelt ausgeführt.

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

    "Rule" mit "Item Group" wird doppelt ausgeführt.

    Hallo,

    ich habe folgendes Problem mit "rule" in OpenHab. Ich will email bei der Änderung vom Status der Fensterkontakte versenden. Es ist funktioniert. Wenn ich aber nicht pro Fenster Regel schreibe, sondern für die ganze Gruppe, dann wird Email (bzw. log-Ausgabe) immer doppelt ausgeführt. Ich habe keine Idee was es hier nicht stimmt. So sehen die Regeln aus:
    Code:
     rule "fenster_email"
      when
      Item gFenster received update
      then
      var msg = "Fensterstatus:\n"    
          for(contact : gFenster.allMembers) {
              var String mappedState = transform("MAP","fenster.map", contact.state.toString)
              msg = msg + contact.name + ": " + mappedState + "\n"
          }
          logInfo("fenster_email", "---------------")
          sendMail("myemail@mymail.de", "Fenster-Status", msg)        
      end
    Fensterkontakte haben 3 Zustände: Open, Closed und Ajar.
    Hier ist die Regel für die Fenster (gehört zu gFenster- Gruppe)
    Code:
     rule "fenster_buero"
      when
              Item Contact_UG_Buero_Z changed or
              Item Contact_UG_Buero_A changed or
              Item Contact_UG_Buero_K changed
      then
              if (Contact_UG_Buero_Z.state == OPEN) {
                  Fenster_UG_Buero.postUpdate("CLOSED")
              } else if (Contact_UG_Buero_A.state == OPEN){
                  Fenster_UG_Buero.postUpdate("OPEN")
              } else {
                  Fenster_UG_Buero.postUpdate("AJAR")
              }
      end
    In der Log-Datei sehe ich pro Aktion nur eine Zustandsänderung.

    Hat jemand Idee, wo ich das Problem suchen soll?

    Danke im Voraus.

    Boris

    #2
    Wie sehen denn die Item-Definitionen und die Group-Definition aus?

    Kommentar


      #3
      Hallo udo1toni,

      So sehen die Items-Definitionen aus:
      (Das ist natürlich nur ein Ausschnitt)

      Code:
      Group All
      
      Group gFenster "Fenster" <contact> (All)
      Group gContact "Kontakt" <window> (All)
      Group gSocket "Steckdose" <socket> (All)
      
      /* Büro */
      Contact Contact_UG_Buero_K "Büro Zu [MAP(contact.map):%s]" <contact> (gContact) { knx="<3/0/2"}
      Contact Contact_UG_Buero_A "Büro Kippen [MAP(contact.map):%s]" <contact> (gContact) { knx="<3/0/1"}
      Contact Contact_UG_Buero_Z "Büro Drehen [MAP(contact.map):%s]" <contact> (gContact) { knx="<3/0/0"}
      String Fenster_UG_Buero "Fenster Büro [MAP(fenster.map):%s]" <contact> (gFenster)
      Danke

      Kommentar


        #4
        Bau doch mal spaßeshalber ein logInfo in die Rule "fenster_buero" ein (vor dem if-Ausdruck), einfach um auszuschließen, dass eventuell schon diese Rule mehrfach getriggert wird.

        Kommentar

        Lädt...
        X