Ankündigung

Einklappen
Keine Ankündigung bisher.

Rolladensteuerung GA lesen

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

  • Petzinger
    antwortet
    1000 Dank für deine Antwort. Damit habe ich es hinbekommen.
    Über das Sperrobjekt wollte ich es nicht machen, da ich dann auch meine manuelle Steuerung über die Taster sperre.

    Code:
    Type rollershutter : ShutterDusk [ upDown="<2/3/6" ]
    Code:
    Rollershutter WS_Shutter_Dusk "Dämmerung Jalousie" <rollershutter> {channel="knx:device:bridge:ws1:ShutterDusk"}

    So geht es dann Abends runter, wenn Tür geschlossen. Ich weiß ich hätte die CLOSED Bedingung direkt mit ins when schreiben können, aber das ist nur ein Auszug aus der kompletten Rule die insgesamt 3 Türen steuert.
    Code:
    rule "shutter dusk down"
    when
       Item WS_Shutter_Dusk changed to 100
    then
    if (Living_Window_South.state == CLOSED) {
       Living_Shutter_South.sendCommand(DOWN)
    }
    end
    Und so geht es morgens wieder hoch
    Code:
    rule "shutter dusk up"
    when
       Item WS_Shutter_Dusk changed to 0
    then
    Living_Shutter_South.sendCommand(UP)
    end

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Ganz grundsätzlich: *-control Channel werden nur dann verwendet, wenn ein zu steuerndes Gerät nicht am knx Bus angeschlossen ist, aber von knx aus gesteuert werden soll.
    Das gewöhnliche Szenario ist eben, dass openHAB das steuernde System ist.

    Der Status eines Channels gehört immer dem Aktor. Ein *-control Channel hat aber keinen Aktor und somit auch keinen Status (in knx). Stattdessen liefert openHAB den Status, wenn dieser angefragt wird.

    readInterval ist ein Parameter, der dafür sorgt, dass alle lesbaren GA zyklisch gelesen werden. Die Betonung liegt dabei auf lesbar. Dazu muss zum einen das L-Flag gesetzt sein (bei exakt einem KO, bei dem die GA außerdem als Haupt-GA eingetragen ist).
    Weiterhin muss in openHAB die GA als lesbar markiert sein (das ist das < vor der GA).

    Es ist aber weder notwendig noch sinnvoll, die GA überhaupt abzufragen. Stattdessen soll openHAB lediglich darauf reagieren, wenn die Wetterstation das DOWN sendet.

    Der eigentliche Fehler besteht darin, dass Du den falschen Trigger gewählt hast.
    received command bedeutet: hat einen Befehl empfangen.
    Wie oben erwähnt ist openHAB gewöhnlich der Befehlshaber, knx führt die Befehle aus und antwortet, Obacht, mit dem neuen Status.
    Das bedeutet: alle auf gewöhnlichen (nicht *-control) Channels empfangenen Nachrichten werden von openHAB als Status Update interpretiert, nicht als Befehl.
    Warum die Jalousien nicht mehr funktionieren, wenn Du in openHAB den Typ auf rollershutter-control änderst, ist mir nicht klar, aber das ist ohnehin nicht der richtige Weg.
    Stattdessen musst Du einfach den Trigger der Rule auf changed ändern.

    receivedCommand als implizite Variable steht dann allerdings nicht zur Verfügung, stattdessen musst Du also entweder den konkreten Status verwenden (also WS_Shutter_Dusk.state), oder Du nutzt die implizite Variable newState.
    Noch einfacher wäre es, die Rule explizit nur auf changed to 100 triggern zu lassen. Dann muss dies nicht innerhalb der Rule überprüft werden

    Noch viel einfacher wäre es, das Bit (GA 2/3/6 ist ein einzelnes Bit) als switch abzubilden, nicht als rollershutter.
    Es ist egal, ob das Steuersignal als ON oder 100 dargestellt wird (DOWN wäre ja der Befehl... funktioniert so aber nicht richtig), schließlich musst Du ohnehin eine Rule verwenden.

    Zu beachten ist noch, dass Du die Verknüpfung der Wetterstation zum Aktor für die Tür-Jalousie entfernen musst, falls diese noch im Aktor eingetragen ist (die GA stehen im Screenshot nicht dabei...)

    Gewöhnlich wird man das ganze Problem über ein Sperrobjekt erledigen, allerdings lässt sich die Jalousie dann gar nicht mehr bedienen, solange die Tür geöffnet ist. Dafür braucht es dann aber auch kein openHAB dazu.
    Zuletzt geändert von udo1toni; 28.06.2022, 21:41.

    Einen Kommentar schreiben:


  • Petzinger
    hat ein Thema erstellt Rolladensteuerung GA lesen.

    Rolladensteuerung GA lesen

    Guten Tag,


    Ich habe folgendes Problem.

    Ich habe von MDT die Wetterstation und den Jalousieaktor. In der Wetterstation habe ich die Fassadensteuerung und Dämmerung aktiv. Damit werden auch die Jalousien gesteuert und das funktioniert soweit alles super.

    Jetzt möchte ich allerdings verhindern, dass die Jalousie automatisch fährt wenn die Terrassentür geöffnet ist. Die manuelle Steuerung soll allerdings jeder Zeit möglich sein. Für die Fassadensteuerung habe ich bei geöffneter Tür einfach die absolute Position gesperrt. Allerdings bekomme ich das mit der Dämmerung nicht hin, da die Wetterstation nur Auf und Ab schickt. Wenn ich den Autor komplett sperre, ist auch meine manuelle Steuerung gesperrt.

    Jetzt war meine Überlegung, dass ins openhab zu legen. Wenn auf GA Dämmerung von der Wetterstation DOWN geschickt wird und das Fenster geschlossen ist, schließe auch die Jalousie.

    Wie kann ich im openhab einfach nur eine GA lesen und darauf reagieren? So klappt das aktuelle nicht.

    Code:
    Thing device ws1 [
       address="1.1.8",
       fetch=false,
       pingInterval=300,
       readInterval=3600
    ] {
       Type rollershutter : ShutterDusk [ upDown="1.008:2/3/6" ]
    }
    Code:
    Rollershutter  WS_Shutter_Dusk     "Dämmerung Jalousie"                           <rollershutter> {channel="knx:device:bridge:ws1:ShutterDusk"}
    Code:
    rule "shutter dusk"
    when
       Item WS_Shutter_Dusk received command
    then
       if (receivedCommand == DOWN && Living_Window_South.state == CLOSED) {
          Living_Shutter_South.sendCommand(DOWN)
       }
    
       if (receivedCommand == UP) {
          Living_Shutter_South.sendCommand(UP)
       }
    end
    Unbenannt.png

    Wenn ich den type auf rollershutter-control setze, dann funktioniert meine rule aber meine restlichen Jalousien im Haus machen nichts mehr.

    Was mache ich falsch oder ist der Ansatz komplett falsch?

    Vielen Dank
Lädt...
X