KNX Shutter Statusabfrage über EIB_RequestStatus

Ist das eigentlich ein Fehler im Modul oder so gewollt?

Modul: KNX Shutter

Wenn ich eine Statusabfrage via “EIB_RequestStatus(1234)” starte, dann werden laut Busmonitor die Adressen abgefragt die unter “Aktiviere prozentuale Positionierung (Rolladen)” und “Aktiviere prozentuale Positionierung (Lamelle)” zu finden sind. Da sind jedoch die Gruppen für das Ansteuern der Positionierung (Writebefehle) hinterlegt. Unter “Mehr” stehen jeweils die Statusobjekte definiert. Diese werden jedoch nicht abgefragt beim “EIB_RequestStatus(1234)”. Die Writebefehle liefern keinen Response vom Bus. Dreht man die Gruppenadressen testweise um, dann liefern die abgefragten Aktoren jeweils einen Response - doch dann funktioniert das Anfahren der Writebefehle natürlich nicht mehr.

Wenn man das Flag der Objektfunktion, die eigentlich für das Anfahren der absoluten Position dar ist auch auf “Lesen” stellt und nicht nur auf “Scheiben” und “Kommunikation”, dann antwortet die Gruppenadresse auch mit einem Response.

Standardmäßig sind diese Objektfunktionen zumindestens in MDT Geräten nicht mit dem Flag versehen. Wäre evtl. einen Hinweis in der Anleitung wert.

Ich bin mit der Umsetzung von KNX_RequestStatus() auch nicht zufrieden. Denn wie du ja auch schon festgestellt hast, wird hier auf dem Bus immer die Gruppenadresse abgefragt, die auch die Aktion ausführt.

Ich hatte mich dazu auch schon mal mit @paresy ausgetauscht und vorgeschlagen, dass immer die eingetragene(n) Rückmelde-Adresse(n) abgefragt werden:

Bei einem Dimmer wären das der Status Ein/Aus und Helligkeit, die auf dem Bus abgefragt werden da hier eine RM-GA eingetragen ist. Es ist ja auch so, dass bei den Aktoren das Lese-Flag sowieso nur bei den Status-KO’s per Default gesetzt ist. Bei einem Rücklesen der Schalt-GA , wie es ja aktuell von IPS bei einem KNX_RequestStatus() gemacht wird, würde gar nicht beantwortet werden!

Vielleicht wird das ja in Zukunft mal so umgesetzt…wäre schön.

Grüße André

Das was in dem Modul unter “mehr” steht sind eigentlich die mithörenden Adressen. Prinzipiel ist das von Symcon schon richtig umgesetzt. Nur sucht man sich erst wieder einen Wolf, wenn die Aktoren nicht richtig vom Hersteller eingestellt sind. Das kommt noch aus den Anfangszeiten von KNX wo es noch keine Statusobjekt gab, wegen knappen Speicher. Da gab es die mithörenden Adressen. Heute allerdings wird vieles über Statusobjekt realisiert, aber auch nicht immer konsequent - es ist heute einfach ein gemischtwarenladen. Das Thema hatte ich mit dem MDT Support besprochen. In diesem Fall hat mal am Beispiel Rolladenaktor keine Chanche den Status aktiv über eine Gruppenadresse abzufragen bzw. regelmäßig senden zu lassen. Das geht nur über Requestanfragen auf Gruppenadressen, dessen Kommunikatiosnobjekt das Flag “Lesen” gesetzt haben.

Smycon hat dazu sogar eine Unterstützung: Skript zum Auslesen der Zustände vom Bus

Ich hatte mir das Thema Rückmeldeobjekt vor langer Zeit einmal genauer zugeführt und mir dazu eine Doku gemacht, um nicht jedesmal wieder neu einstigen zu müssen. Anbei ein Auszug. Wer die komplette Doku haben möchte, gerne Privatnachricht hinterlassen.

Rückmeldeobjekte

Wichtig zu wissen ist, dass ein Kommunikationsobjekt nur eine Gruppenadresse senden kann (es ist sendent). Die nachfolgenden Adressen, die zugeordnet sind, sind hörend zu interpretieren!!

Siehe in der Datei Flags.docx mehr zum Thema Flags. Darin wird beschrieben, wie die Kommunikationsobjekte sich gegenseitig abhören, um mitzubekommen ob sich der Status geändert hat. Bei alten Sensoren wurde noch kein Statuseingang verbaut, da Speicherplatz gering war. Man musste das mit Flags lösen. Hat man Gruppenadressen, die mehrere Lichter gleichzeitig schalten sollen, dann wird es mit den Flags unmöglich den Status zu interpretieren. Dann hat man beim Umschalten das Verhalten, dass sich nichts tut. Erst beim nochmaligen Schalten wird erst reagiert.

Die neueren Sensoren haben fast alle Eingänge für Statusobjekte. Die heißen dann „Wert für Umschaltung“, oder ähnlich. Da kann dann der Status des Aktorkanals direkt mit der Taste des Tastsensors verbunden werden. Ändert sich der Zustand, dann bekommt der Taster das sofort mit.

Hat der Taster kein entsprechenden Eingang oder sind kompliziertere Schaltungen vorhanden, dann greift man auf das „hörende“ Kommunikationsobjekt zurück.

Beispiel:

Zwei Leuchten am Bett. Eine links, eine rechts. Jede Seite hat auch einen Schalter um die Leuchten jeweils separat schalten zu können. Außerdem gibt es einen Schalter am Eingang, der die beiden Leuchten zentral zusammen schalten kann.

1/1/3 Gruppe schaltet Leuchte rechts (Taste Taster rechts und Aktor Kanal A)
1/1/4 Gruppe schaltet Leuchte links (Taste Taster links und Aktor Kanal B)
1/1/2 Gruppe schaltet Leuchte rechts und links (Taste Taster Eingang und Aktor Kanal A und B)

Taster rechts schaltet Gruppe 1/1/3
Taster links schaltet Gruppe 1/1/4
Taster Eingang schaltet Gruppe 1/1/2

Das sind die jeweils ersten Gruppenadressen, die zu den Kommunikationsobjekten gesetzt wurden. Das funktioniert auch soweit. Nur bekommen die Geräte nichts voneinander mit, wenn die geschaltet werden. Das lässt sich auch über Flags nicht lösen, weil verschiedene Gruppen geschaltet werden. Die Taster können nur innerhalb der Gruppe lauschen.

Die Lösung ist die „hörende“ Adresse, die als zweites oder fortfolgend zum Kommunikationsobjekt gesetzt wird.

Taster rechts schaltet Gruppe 1/1/3, 1/1/2
Taster links schaltet Gruppe 1/1/4, 1/1/2
Taster Eingang schaltet Gruppe 1/1/2

Der Taster rechts beispielsweise hört nun auf Adresse 1/1/2 und passt seinen Status entsprechend an, wenn der Taster Eingang geschaltet wird. Bedenke! Nur die erste Adresse auf dem Kommunikationsobjekt ist schreibend! Die fortfolgenden sind hörend!! Nicht zu verwechseln mit „lesend“!! Lesend wäre, wenn aktiv ein diverses Kommunikationsobjekt abgefragt wird.

[…]

Ich habe ja schon mehrmals den Vorschlag gemacht die Darstellung der Gruppenadressen unter der Instanz zu ändern und ALLE gleichzeitig anzuzeigen. Hinter jeder GA dann ein paar Checkboxen für:

  • ‘hierauf senden - gemäß KNX nur bei einer’
  • ‘diese mit RequestStatus abfragen’
  • ‘Werte empfangen (insbesondere bei der ‘sendenden’ kann man das entfernen)
  • Leseanfragen vom Bus auf dieser Adresse beantworten
  • vmtl habe ich gerade noch eine Option vergessen
1 „Gefällt mir“

Das ist zu kurz gedacht, weil man hier viele hörende Adressen haben kann, was in der Praxis durchaus vorkommt. Es wäre schon eine “große” Lösung erforderlich , z.B. wie von @tobiasr beschrieben.

Was ist der Grund, warum ihr die GA überhaupt abfragen müsst? Startet ihr IPS ständig neu?

Ja, in meinem Falle schon, wenn man in der Modulentwicklung ist. Abweichungen zwischen real und dem was Symcon weiß, kann im selbst programmierten Modul fatale Wirkungen haben. Da versucht das Modul dann ständig etwas zu ändern, was in Wirklichkeit schon passend ist. Da muss man dann wieder einige Routinen programmieren, die solche Dinge erkennen. Im Grunde muss ja fast alles bei den Aktoren auf Lesend stellen, damit man das regelmäßig abfragen kann. Beim Shuttermodul habe ich aber sonst auch schon vielfach Unklarheiten feststellen müssen - außerhalb der Sache mit der Modulentwicklung.

Damit unsere Mitleser hier nicht in die Falle stolpern: Wenn man diesen Weg geht, dann darf es keine weiteren Geräte (keine weiteren KO) auf dieser GA geben, wo ebenfalls das L-Flag gesetzt ist. Ich denke da an Zeitschaltuhren oder andere Bedienelemente, die ebenfalls etwas senden würden. Sonst kommen auf die Leseanfrage ggf. mehrere unterschiedliche Antworten.

Danke, das stimmt natürlich !

Das mit den hörenden Adressen ist doch nur Historisch. Die heutigen Aktoren haben für alles ein Status KO und nur das ist wird benötigt. Ob es der Ein/Aus Zustand, die Helligkeit, Lamellenposition oder der Sollwert ist.

Ich komme daher bei meinen Projekten schon lange ohne hörende Adresse aus.

Genau! Weil die Tatsache, dass es das Status-KO gibt ist nämlich der Grund, warum es die Hersteller so eingestellt haben, dass man das Schalt-KO nicht Lesen kann, denn es gibt ja ein separates KO für den Status.

Ein Zentralbefehl ZU am Abend für die Beschattung fährt alles runter und der Status für die Höhe geht auf 100% und das melden die Aktoren dann auf ihrem Status-KO für die Höhe. Was bringt da der Ansatz der hörenden Adresse der GA für Position auf Lesen zu setzen? Die wird hier ja gar nicht geändert. Gleiches gilt, wenn über einen Taster verfahren oder relativ gedimmt wird.

Daher ist für alle Fälle nur der Status des Aktors relevant. Und diesen gilt es dann auch beim Verwenden des Befehls KNX_RequestStatus()auszulesen. Hier wäre es schön, wenn man in IPS z.B. einstellen könnte, dass nach einem Neustart der Status gelesen werden soll.

Kannst du hier mal ein Beispiel aus der Praxis nennen? Ich benötige das wie gesagt, so gut wie nie. Ich will jetzt nicht zu 100% sagen, aber mir fällt gerade kein Beispiel ein, wo es heute noch Sinn machen würde.

Ich vermissen bei den Einstellungen der KNX-GA auch immer wieder die Möglichkeit hier mehrere Zeilen(GA) gleichzeitig auszuwählen um deren Optionen zu ändern.

Na klar: Bei separaten GA für Einzel- und Gruppensteuerung hörst du zwingend auf mehreren GA.

Und warum nutzt du dafür nicht das Status KO?

Weil das nicht überall vorhanden ist. Ich habe auch Geräte ohne Status-GA und solche, die in IPS virtuell gebaut sind, da ist nicht durchgängig die schöne MDT Status-KO-Welt vorhanden.

Richtig. Ich habe hier auch noch Berker Geräte verbaut. Mit denen kann man den Status nicht auswerten, oder die haben aktorseitig kein KO. Daher wie von mir oben im Beitrag schon genannt: “Gemischtwarenladen KNX”.

Mittlerweile haben - endlich - auch andere Hersteller erkannt, dass ein Status KO durchaus Sinn haben kann.

Abgesehen von der Modul-Entwicklung und den damit verbundenen Neustarts sehe ich aber auch keine Notwendigkeit, irgendwas vom Bus abzufragen.

Nein, ist es leider nicht. Aus Sicht der Aktorik magst Du Recht haben, aber aus Sicht dessen, was ich hier täglich erlebe, ist es leider nicht historisch. Gerade am Wochenende wieder einen Neukunden gehabt “ich habe eine KNX Installation aus 2002 und suche eine Visualisierung”. Da ist nichts mit Status KO, da muss mit hörenden Adressen gearbeitet werden.