Ankündigung

Einklappen
Keine Ankündigung bisher.

Zwei Rules werden ausgeführt obwohl unterschiedliche Trigger

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

    Zwei Rules werden ausgeführt obwohl unterschiedliche Trigger

    Hi,

    ich habe ein Problem, dass mich zur Verzweiflung treibt.

    Ich habe folgende Rules:

    Code:
    rule "Flur Nachtschaltung"
    when
    Item DG_Flur_Deckenspots_Switch changed from OFF to ON
    then
    logInfo("Nachtschaltung.rules", "Licht im Flur wurde angeschalten")
    if(Nachtschaltung.state == ON)
    {
    logInfo("Nachtschaltung.rules", "Flur Nachtschaltung ist aktiv --> Rule wird ausgeführt")
    if((now.getHourOfDay >= startTimeKids || now.getHourOfDay <= endTime))
    {
    logInfo("Nachtschaltung.rules", "Flur wird auf " + percentFlur + "% gedimmt")
    DG_Flur_Deckenspots_Dimmer.sendCommand(percentFlur)
    }
    }
    end
    rule "Lio Nachtschaltung"
    when
    Item DG_Lio_Deckenspots_Switch changed from OFF to ON
    then
    logInfo("Nachtschaltung.rules", "Licht bei Lio wurde angeschalten")
    if(Nachtschaltung.state == ON)
    {
    logInfo("Nachtschaltung.rules", "Lio Nachtschaltung ist aktiv --> Rule wird ausgeführt")
    if((now.getHourOfDay >= startTimeKids || now.getHourOfDay <= endTime))
    {
    logInfo("Nachtschaltung.rules", "Lio wird auf " + percent + "% gedimmt")
    DG_Lio_Deckenspots_Dimmer.sendCommand(percent)
    }
    }
    end
    Dazu gehören folgende Items:
    Code:
    Dimmer DG_Lio_Deckenspots_Dimmer "Lio Deckenspots Dimmer" (DG_Lichter) { channel="knx:device:bridge:MDTDaliGateway:Gruppe_9" }
    Switch DG_Lio_Deckenspots_Switch "Lio Deckenspots Switch" (DG_Lichter) { channel="knx:device:bridge:MDTDaliGateway:Gruppe_9_Schalten" }
    
    Dimmer DG_Flur_Deckenspots_Dimmer "Flur Deckenspots Dimmer" (DG_Lichter) { channel="knx:device:bridge:MDTDaliGateway:Gruppe_8" }
    Switch DG_Flur_Deckenspots_Switch "Flur Deckenspots Switch" (DG_Lichter) { channel="knx:device:bridge:MDTDaliGateway:Gruppe_8_Schalten" }
    und folgende Things

    Code:
    Type switch : Gruppe_8_Schalten "Licht Flur DG" [ga="1/2/101+<1/2/102"]
    Type dimmer : Gruppe_8 "Licht Flur DG" [switch="1/2/101+<1/2/102", position="1/2/103+<1/2/104", increaseDecrease="1/2/105"]
    Type switch : Gruppe_9_Schalten "Licht Lio" [ga="1/2/1+<1/2/2"]
    Type dimmer : Gruppe_9 "Licht Lio" [switch="1/2/1+<1/2/2", position="1/2/3+<1/2/4", increaseDecrease="1/2/5"]
    Jetzt habe ich das Problem, sobald das Item DG_Lio_Deckenspots_Switch ein ON bekommt werden beide Rules ausgeführt. Im Busmonitor sehe ich auch, dass OpenHAB den Wert für beide Gruppen setzt. Ich verstehe aber nicht wieso die Rule für den Flur getriggert wird wenn das oben genannte Item seinen Wert ändert.
    Vielleicht seht ihr den Fehler, ich begreife es nicht mehr.
    Falls ihr mehr Infos benötigt, bitte bescheid geben.

    Vielen Dank
    Marcus

    #2
    Es geht damit los, dass Du Deine Channel überdefiniert hast. Ein Dimmer Channel hat per Definition auch einen Switch-Anteil. Es gibt keinen Grund, einen weiteren Channel vom Typ Switch zu definieren. Auch das entsprechende Item benötigst Du nicht. Du kannst einfach das Dimmeritem verwenden um zu schalten. Für die Rückmeldung der Schaltstellung kannst Du DimmerItem.getStateAs(OnOffType) verwenden. Im Trigger-Teil einer Rule funktioniert das natürlich nicht, dort kannst Du aber changed from 0 als Trigger Pendant zu changed from OFF to ON verwenden.

    Die zweite Sache ist, dass Du mehrere GA für den switch-Parameter setzt. Dazu gibt es keinen Grund. Der Status des Dimmers ist immer eine Zahl von 0 - 100, eine Schaltzustandsänderung führt nur dazu, dass der Zustand auf 0 bzw. 100 gesetzt wird (was unter Umständen gar nicht der korrekte Dimmwert ist). Im Switch-Teil benötigst Du ausschließlich die GA, mittels derer openHAB in der Lage sein soll, den Dimmer ein- und auszuschalten.

    Welche GA sind in den Dimmern in den Schaltkanälen hinterlegt? In welcher Reihenfolge (welches ist die sendende Adresse)? Da die Rules ja beide getriggert werden: Kannst Du sehen, was unmittelbar vor dem Trigger auf dem Bus passiert?

    Kommentar


      #3
      Hallo,

      vielen Dank für deine Ausführung.
      Ich habe meine Channels entsprechend angepasst und jetzt laufen die Rules auch sauber, sprich es werden nicht mehr beide getriggert und auch auf dem Busmonitor wird der Wert für die zweite Gruppe nicht gesetzt.

      Ich hatte das changed from 0 nicht auf dem Schirm. So macht das ganze natürlich mehr Sinn.

      Vielen Dank
      Marcus

      Kommentar


        #4
        Super!

        Kommentar

        Lädt...
        X