Eine Erklärung der KNX Gruppenadressen.
In KNX wird jede Meldung an eine so genannte Gruppenadresse gerichtet. So definiert man in der ETS (die Software mit der man seine KNX Geräte programmiert) z.B. eine Gruppenadresse für ein Licht. Ich verwende hier die Adresse 1/2/1 was meinem Bürolicht entspricht. Es gibt verschiedene Methoden seine Gruppenadressen anzulegen. Üblich ist es z.B. am Anfang eine 1 für Beleuchtung, dann pro Geschoss eine Zahl (bei mir 2 für 1.OG). Dann wird einfach durchnummeriert. Man kann sich aber auch jedes beliebige andere System zurechtlegen. Heute werden fast nur noch 3-teilige Adressen verwendet.
Der Lichtschalter in meinem Büro wird über die ETS dann so programmiert, dass es seine Meldungen an diese Adresse schickt. Er schickt also entweder an die Adresse 1/2/1 eine 1 für Licht an, oder eine 0 für Licht aus.
Der Schaltaktor in meinem Schaltkasten wurde so programmiert, dass es Meldungen auf dieser Gruppenadresse (GA) 1/2/1 checkt. Ist eine Meldung an diese Adresse gerichtet, setzt er entsprechende Aktionen. Erhält er also auf der 1/2/1 eine 1, dann schaltet er das Licht ein. Empfängt er eine 0, dann schaltet er das Licht aus. Das ist KNX!.
Um im KNX Bus etwas machen zu können (Licht einschalten, Rolladen hochfahren usw.) muss man also immer die jeweilige GA kennen. Hast du eine ETS mit der du deinen Bus programmierst, dann kannst du die GA einfach in der ETS ansehen, oder dir auch gleich eine Liste aller GA exportieren. Hast du keine ETS, so gilt es mit dem KNiXuino erst die GA herauszufinden, die du ansteuern möchtest. Aber auch glücklichen ETS Besitzern helfen folgende Spielereien, um das Verständnis für KNX und Gruppadressen zu steigern.
Verwende den KNiXuino MEGA mit dem Direct Com Sketch aus dem vorigen Tutorial. Öffne den Seriellen Monitor und schalte ein Licht ein und aus. Du siehst Meldungen der folgenden Art:
tdi ($1103 $0A01 $00) $01
Dies bedeutet folgendes:
tdi = transparent data indication - Wir betreiben den SIM-KNX im Transparentmodus. Das haben wir im direct com Tutorial so festgelegt. Dieser hat zur Folge, dass der SIM-KNX jede Meldung, die am Bus so vorbeikommt weitergibt. Im Direct Com Sketch wird das dann noch weiter auf den seriellen Monitor geschickt. Im Transparentmodus werden gesendete Werte mit der transparent data indication angezeigt. Es wird also angezeigt, dass Daten empfangen wurden.
$1103: Dies ist die physikalische Adresse des Geräts, das gesendet hat. Neben den Gruppenadressen um die es hier eigentlich geht hat auch jedes Gerät im Bus eine eindeutige physikalische Adresse. Das $ vor der Zahl bedeutet, dass die Zahl im HEX Modus ist. Der SIM-KNX hat fabrikseitig die physikalische Adresse $FFFF. Dies kann man einfach so lassen. Uns können physikalische Adressen eigentlich recht egal sein.
$0A01: Jetzt wird es spannend. Das ist die Gruppenadresse an die geschickt wird. In diesem Fall die HEX Zahl A01. In der ETS werden Gruppenadressen als 3 Zahlen festgelegt. Dies ist übersichtlicher als HEX-Zahlen. Gespeichert wird die Gruppenadresse trotzdem als 16-Bit Zahl. Also als Zahl zwischen 0 und 32767.
Um Gruppenadressen umzurechnen findest du im Footer (auf dieser Seite) einen kleinen Converter. Hier kannst du entweder die 3-stellige GA eintragen oder die HEX-GA. In beiden Fällen wird im untersten Feld die dezimale GA ausgegeben. Unsere GA in Beispiel (A01) ist also 2561 oder 1/2/1. Probiers aus. Kommt dir diese Adresse noch bekannt vor? Das war mein Bürolicht.
$00: Hier wird die Länge der empfangenen Daten in Byte angegeben. Handelt es sich um weniger als 1 Byte, so steht hier $00. Nachdem diese GA nur Bitwerte (0 oder 1) empfängt ist hier vorerst immer $00 zu finden.
$01: Die empfangenen Werte in diesem Fall 1 für Licht ein.
Meistens wirst du bei jedem Licht ein oder aus 2 Zeilen empfangen. Dies sieht üblicherweise etwa so aus:
tdi ($1103 $0A01 $00) $01 tdi ($1512 A0A02 $00) $01
Die obere Zeile ist die selbe wie oben erklärt. (Es wurde also mit dem Lichtschalter das Licht eingeschaltet.) Die 2. Zeile ist die Antwort des Schaltaktors. Offensichtlich hat der Schaltaktor, der sich für diese GA zuständig fühlt also die Meldung verstanden und sendet jetzt auf einer eigenen Status-GA wieder zurück, dass er das Licht auch wirklich eingeschaltet hat. Die GA liegen häufig direkt nebeneinander (0A1 und 0A2) sie können aber auch völlig verschieden sein.
Solltest du keine ETS haben, aus der du die 3-stelligen Gruppenadressen auslesen kannst, wird dir also nichts anderes übrig bleiben als über diesen Weg rauszufinden welches Licht welche Gruppenadresse hat. Dies ist aber nicht allzu schwierig.
In unserem Fall hat das betreffende Licht die GA 0A01 für ein/aus bzw. 0A02 als Status-Adresse. Notiere dir diese, am besten gleich in einer Excel Liste etc.
GA | GA Hex | Länge | Beschreibung |
---|---|---|---|
2561 | 0A01 | 1 Bit | Bürolicht ein/aus |
2562 | 0A02 | 1 Bit | Bürolicht ein/aus Status |
Zur Kontrolle kannst du mit dem direct com Sketch auch Schaltbefehle schicken. Tipp dazu etwa folgendes ein:
tds ($0A01) 1
tds steht für transparent data send. In Klammer wird einfach die GA und danach der Wert geschickt.Damit solltest du das betreffende Licht (bei mir das Bürolicht) einschalten. Steht hinten eine 0 schaltet man aus. Du wirst auch immer eine entsprechende Antwort des Aktors bekommen.