Ankündigung

Einklappen
Keine Ankündigung bisher.

received command-Rule triggert nicht mehr nach Umstieg auf Openhab 2.4

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

    received command-Rule triggert nicht mehr nach Umstieg auf Openhab 2.4

    Hallo,

    die folgende Rule funktioniert nicht mehr richtig seit Umstieg auf Openhab 2.4. Unter 1.x hat sie auf jeden Fall funktioniert.
    Schalte ich über OpenHAB "Licht_KG_Flur" ein, triggert sie. Wird "Licht_KG_Flur" vom KNX-Bus eingeschaltet, löst sie nicht aus...

    Code:
    rule "Bewegungsmelder Kellerflur Alarmierung"
            when
                    Item Licht_KG_Flur received command ON or
                    Item BewegungKellerflur received command ON
            then
                    BewegungKellerflur.postUpdate(ON)
                    if (AlarmanlageScharf.state == ON) {
                            sendBroadcastNotification('Alarmanlage: Bewegungsmelder Kellerflur hat Bewegung erkannt!')
                    }
    end
    Hat jemand Tipps?

    Danke und Gruß
    thoern

    #2
    Das Problem dürfte der Trigger sein, in Zusammenhang mit knx-gebundenen Items. Mit knx2 gibt es eine Unterscheidung zwischen externen und internen knx Channels (man verzeihe mir die ungenaue Wortwahl...)

    Fall 1: knx Aktor schaltet Licht über GA 1/1/1 und meldet den Zustand des Aktors über GA 1/1/2. zugehöriger Channel:
    Code:
    Type switch : "Licht" [ ga="1/1/1+<1/1/2" ]
    ankommende Nachrichten werden ausschließlich als postUpdate behandelt, gleich, ob über GA 1/1/1 oder über GA 1/1/2
    sendCommand schickt auf GA 1/1/1.

    Fall 2: openHAB steuert einen nicht-knx Aktor, der soll über knx gesteuert werden (also z.B. über einen Lichtschalter). Dabei ist GA 1/1/1 der Befehl, GA 1/1/2 wieder der Status. Der Punkt ist nun: der Status stammt nicht vom knx-Bus, sondern von openHAB. Die Verhältnisse drehen sich um. zugehöriger Channel:
    Code:
    Type switch-control : "Licht" [ ga="1/1/2+1/1/1" ]
    ankommende Nachrichten werden ausschließlich als sendCommand behandelt, gleich, ob über GA 1/1/1 oder über GA 1/1/2
    postUpdate schickt den Status auf GA 1/1/2(!)

    Unter knx1 gab es diesen Unterschied nicht, alle ankommenden Nachrichten wurden grundsätzlich sowohl als sendCommand() als auch als postUpdate() interpretiert, was dazu geführt hat, dass knx-Anwender den Unterschied zwischen den verschiedenen Triggern und Befehlen etwas vernachlässigt haben (ich meine damit ganz besonders mich selbst... ).

    Für Deine Rule bedeutet das: Entweder, Du änderst die Trigger auf received update oder changed, oder Du legst zusätzliche Channel an, die dann als *-control Channel auftreten. Die verlinkten Items darfst Du dann natürlich nicht zum Senden verwenden (es sei denn, Du weißt genau, was Du tust, sprich, Du triffst Vorkehrungen, um eine Schleife zu verhindern)

    Kommentar


      #3
      Zitat von udo1toni Beitrag anzeigen
      Für Deine Rule bedeutet das: Entweder, Du änderst die Trigger auf received update...
      Dake dir! Genau so hab ich das jetzt gelöst. Funzt jetzt.

      Gruß
      thoern

      Kommentar

      Lädt...
      X