Ankündigung

Einklappen
Keine Ankündigung bisher.

Rules mit Schalter auslösen

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

    Rules mit Schalter auslösen

    Hallo zusammen,

    ich habe in der ETS eine Gruppenadresse Kino.

    Diese Gruppenadresse ist als Thing in der KNX.Thing hinterlegt:

    Code:
    Type switch        : th_eg_wohnzimmer_harmony_kino       "Kino"       [ ga="X/X/XX" ]

    Desweiteren ist dieses Thing mit einem Item verknüpft:

    Code:
    Switch eg_wohnzimmer_harmony_kino "Kino" <cinema> (gSZ,gSZMultimedia) ["Switchable"] {channel="knx:device:bridge:generic:th_eg_wohnzimmer_harmony_kino"}
    Diese zeigt widerrum auf die ensprechende Rule, die ich mit Openhab starten kann. Diese funktioniert dann auch.

    Ich möchte diese aber nun mit einem Schalter triggern. Die Taste auf dem Schalter ist mit der GA des Things verkmüpft.

    Wenn ich den Schalter drücke, sehe ich auch wie dieser An und Aus auf den Bus sendet, aber die Rule startet nicht.


    Jemand eine Idee?

    Hier noch die Rule:

    Code:
    rule "Fernsehen schauen an/aus"
    when
        Item eg_wohnzimmer_harmony_tv received command
    then
        if (eg_wohnzimmer_harmony_tv.state==ON) {
     
      if (ws_daemmerungswert.state < 30) {
      
       eg_wohnzimmer_stehlampe.sendCommand(ON)
       eg_wohnzimmer_wohnwand.sendCommand(ON)
        }
        if (ws_helligkeit_sued.state > 35000) {   
         
         eg_wohnzimmer_links_rol.sendCommand(50)
         eg_wohnzimmer_rechts_rol.sendCommand(50)
         eg_wohnzimmer_rechts_rol_so.sendCommand(ON)
         eg_wohnzimmer_links_rol_so.sendCommand(ON)
         
         }
         
        if (ws_helligkeit_ost.state > 35000) { 
         
         eg_kueche_rol.sendCommand(50)
         eg_kueche_rol_so.sendCommand(ON)
       
       }
      
     eg_wohnzimmer_harmony_activity.sendCommand("TV")
         }
     
     else {
     
       if (ws_daemmerungswert.state < 25) {
       
         
         
         eg_wohnzimmer_rechts_rol_so.sendCommand(OFF)
         eg_wohnzimmer_links_rol_so.sendCommand(OFF)
         eg_wohnzimmer_rechts_rol.sendCommand(100)
         eg_wohnzimmer_links_rol.sendCommand(100)
         eg_kueche_rol_so.sendCommand(OFF)
         eg_kueche_rol.sendCommand(100)
         }
         
       else {
    
         eg_wohnzimmer_rechts_rol_so.sendCommand(OFF)
         eg_wohnzimmer_links_rol_so.sendCommand(OFF)
         eg_wohnzimmer_rechts_rol.sendCommand(0)
         eg_wohnzimmer_links_rol.sendCommand(0)
         eg_kueche_rol_so.sendCommand(OFF)
         eg_kueche_rol.sendCommand(0)
         
       
       }
       
      eg_wohnzimmer_harmony_activity.sendCommand("PowerOff")
      eg_wohnzimmer_stehlampe.sendCommand(OFF)
      eg_wohnzimmer_wohnwand.sendCommand(OFF)
      
          if (ws_daemmerungswert.state < 100) {
        
        eg_wohnzimmer_db.sendCommand(ON)
         }
      }
    end












    #2
    Ja, das ist ganz einfach. Du verwendest received command als Trigger, was ja auch korrekt ist, denn Du möchtest bei Empfang des Befehls die Rule ausführen. Damit openHAB2 über knx2 Befehle empfängt, musst Du als Channel-Type aber switch-control verwenden, nicht switch.

    Bei switch-control tritt openHAB als virtueller Aktor auf, das heißt, es reagiert auf Befehle und sendet entsprechend einen Status (die sendende GA muss als erstes im Channel angegeben werden!)
    Bei switch sendet openHAB Befehle und empfängt den Status.

    Falls notwendig, kann man die gleiche GA sowohl in einem switch-control als auch in einem switch channel verwenden, man bekommt dann halt auf dem einen Item die Befehle zurück, die openHAB selbst gesendet hat (das ist der Grund, warum das aufgetrennt wurde - frag am besten nicht, das ist ein ganz dunkles Kapitel von openHAB2 )
    Diese Zweiteilung gibt es für alle Channel-Typen also auch für Dimmer, Contact, Rollershutter... wann immer man die Befehle von knx bei openHAB auswerten möchte, mus man die -control-Variante definieren.

    Kommentar


      #3
      Hallo udo1toni,

      vielen Dank für deine ausführliche Antwort.

      ich habe jetzt in der KNX.things Datei den Channel wie folgt angepasst:

      Code:
      Type switch-control        : th_eg_wohnzimmer_harmony_kino       "Kino"       [ ga="X/X/XX" ]
      Leider reagiert die Rule noch immer nicht auf das Drücken der Taste. Muss ich sonst noch wo etwas ändern? Viele Grüße Sascha


      Kommentar


        #4
        Siehst Du denn irgendetwas im Log? Die knx Anbindung grundsätzlich funktioniert, Du kannst also Licht schalten von openHAB aus und bekommst vom Bus grundsätzlich auch den Status von Devices mitgeteilt?

        Kommentar


          #5
          Hallo,

          Ja openhab kann bei mir so ziemlich alles schalten und ich sehen auch im Bus Monitor die Aktionen. In den Open Hab logs sehe ich allerdings keine Einträge von dem oben genannten Thing. Lediglich, dass es gelinked wurde.

          Viele Grüße

          Sascha

          Kommentar


            #6
            openHAB schon mal neu gestartet?

            Kommentar


              #7
              super hat funktioniert danke.

              Kommentar

              Lädt...
              X