Lese-Telegramm auf Gruppenadresse senden

Hallo,

seit kurzem bin ich auch unter den IPS-Nutzern vertreten.
Wie vermutlich jeder Anfänger, tue ich mich momentan noch etwas schwer, den Aufbau und die Funktionsweise von IPS zu verstehen. Aber das wird sich nach ein wenig rum testen hoffentlich schnell ändern.

Eine Frage habe ich aber direkt zu den EIB / KNX-Instanzen, zu der ich bisher keine (zufriedenstellende) Antwort gefunden habe.

Wie kann ich aktiv Werte vom Bus abfragen, sprich ein Lese-Telegramm auf eine Gruppenadresse senden?
Dies ist für mich eine essenzielle Funktion, da nicht in jedem Fall automatisch durch den Bus ein Wert gesendet wird.
Ich habe in älteren Beiträgen gelesen, dass IPS dies nicht unterstützt. Das kann ich mir aber nicht vorstellen, da es sich zum Einen um eine Grundfunktion von KNX handelt und zum Anderen der entsprechende Konfigurator diverse Einstellmöglichkeiten bietet, die in die Richtung gehen.

In den Einstellungen der jeweiligen Instanz gibt es folgende Einstellmöglichkeiten:

  • Lesen (erlaubt der Instanz den aktuellen Wert vom Bus abzufragen)
  • Schreiben (…)
  • Empfangen (…)
  • Senden (…)

Eigentlich beschreibt der erste Punkt ja genau die Funktion, die ich suche.
Aber wie sage ich der Instanz jetzt, dass sie den Wert lesen und in IPS aktualisieren und nicht senden soll?
In der Modulreferenz ist ja immer nur beschrieben, wie ich auf den Bus schreibe.
So würde EIB_Switch() ein DPT1-Telegramm zum Schreiben eines neuen Wertes auf den Bus senden. Wie aber Lese ich nur den aktuellen Wert?

Weiterhin würde mich noch interessieren, welche Gruppenadresse(n) zum Lesen herangezogen werden?
Ich vermute, auf die Hauptadresse wird immer gesendet und von der Hauptadresse und den Adressen unter „Mehr“ wird empfangen. Aber welche Adresse wird aktiv gelesen? Auch die Hauptadresse oder alle Adressen?

Wie verhält sich IPS, wenn die Adressen unterschiedliche Werte liefern würden?

Danke vorab für die hoffentlich hilfreichen Antworten!

Gruß
Slummi

Es gibt den Befehl: EIB_RequestStatus($id). Der fehlt irgendwie in der Doku - Kommt aber beim nächsten Doku Update mit rein. Damit kannst du eine Leseanforderung für die Hauptadresse versenden. Wenn du unter „Mehr?“ unterschiedlichen Adressen mit unterschiedlichen Status empfängst, wird immer der zuletzt empfangene Wert angezeigt.

paresy

Super, war mir doch sicher, dass IPS das kann.
Da scheint die Doku wirklich nicht ganz vollständig zu sein. Habe die schon mehrfach durchsucht.

Danke für die schnelle Antwort!

Slummi

Wo ich gerade so darüber nachdenke, stellt sich mir noch eine weitere Frage diesbezüglich.

Es gibt keine Möglichkeit, die Status-Variable einer KNX-Instanz mit der einer anderen abzugleichen, oder?

Ich verwende - wo möglich - grundsätzlich separate Rückmeldeadressen, weil ich mir hier sicher sein kann, dass deren Wert in jedem Fall stimmt.

Wenn ich diese Rückmeldeadressen unter „Mehr?“ eintrage, sollte dies in den meisten Fällen ausreichend sein, sofern ich nicht weitere Adressen eintrage. Denn dann habe ich ja gerade gelernt, zählt die, die zuletzt empfangen wurde. Bedeutet also bei vorhandener Rückmeldeadresse sollte auch nur diese zusätzlich eingetragen sein. Da sollte man drauf achten, da beim Import auch schon mal GAs von Zentralfunktionen automatisch eingetragen werden.

Wenn ich die Rückmeldeadresse aber aktiv abfragen will, um z.B. nach einem Ausfall von IPS den korrekten Status abzufragen (gab es schon öfter im Forum), bringt mich EIB_RequestStatus($id) nicht unbedingt weiter, da diese Funktion die Hauptadresse abfragt, nicht aber die Rückmeldeadresse.
Habe ich für die Rückmeldeadresse eine eigene Instanz, kann ich diese zwar abfragen, aber nicht mit der anderen Instanz abgleichen, da die Status-Variable schreibgeschützt ist.

Gibt es hierfür einen Lösungsansatz oder muss man mit dem Restrisiko leben, dass bei vernünftiger KNX-Konfiguration evtl. auch mal ein falscher Wert über die Hauptadresse zurück geliefert wird?

Ich hoffe, das war halbwegs verständlich?!

Slummi