====== Beispielseite KNX-Grundlagen ====== Mit dem folgenden Beispiel soll die Kommunikation auf dem KNX-Bus veranschaulicht werden. {{ ::knx_beispiel_installation_vereinfacht.png?nolink |}} Hier ist eine stark vereinfachte KNX-Installation abgebildet. Sie besteht aus * 2 Lichtschaltern und * einem Schaltaktor. Jeder Lichtschalter besitzt eine **Taste T**, der Schaltaktor einen **Ausgang A**, an dem die zu schaltende Lampe angeschlossen ist. ---- Folgende Beobachtungen ergeben sich, wenn die Taste an Lichtschalter 1 verwendet wird, um das Licht ein- und auszuschalten. ^ Lichtschalter 1 ^ Lichtschalter 2 ^ Schaltaktor ^ | Taste T wird gedrückt; Lichtschalter sendet **ON-Datagramm** an die Gruppenadresse ''3/4/91'' | | | | | empfängt Datagramm, tut aber nichts, weil keine Aktion für eingehende Datagramme an der Adresse ''3/4/91'' hinterlegt ist. | empfängt Datagramm; erkennt, dass der Ausgang A auf die Gruppenadresse ''3/4/91'' reagieren muss und schaltet das Licht ein (**ON**) | | Taste T wird gedrückt; Lichtschalter weiß, dass zuletzt ON gesendet wurde und sendet nun **OFF-Datagramm** an die Gruppenadresse ''3/4/91'' | | | | | empfängt Datagramm, tut aber wiederum nichts | empfängt Datagramm; erkennt, dass erneut der Ausgang A geschaltet werden muss (**OFF**) | Etwas anders verhält es sich, wenn der zweite Schalter ebenfalls gedrückt wird. ^ Lichtschalter 1 ^ Lichtschalter 2 ^ Schaltaktor ^ | Taste T wird gedrückt; Lichtschalter sendet **ON-Datagramm** an die Gruppenadresse ''3/4/91'' | | | | | empfängt Datagramm, tut aber nichts, weil keine Aktion für eingehende Datagramme an der Adresse ''3/4/91'' hinterlegt ist. | empfängt Datagramm; erkennt, dass der Ausgang A auf die Gruppenadresse ''3/4/91'' reagieren muss und schaltet das Licht ein (**ON**) | | | Taste T wird gedrückt; Lichtschalter sendet **ON-Datagramm** an die Gruppenadresse ''3/4/91'' | | | empfängt Datagramm, tut aber nichts, weil keine Aktion für eingehende Datagramme an der Adresse ''3/4/91'' hinterlegt ist. | | empfängt Datagramm; erkennt, dass erneut der Ausgang A geschaltet werden muss (Ausgang A ist bereits auf **ON**) | Leider ist dies nicht das erwünschte Verhalten. Wenn beim Durchqueren eines Flures auf der einen Seite mit einem Tastendruck das Licht eingeschaltet wurde, dann möchte man es mit einem Tastendruck auf der anderen Seite wieder ausschalten können. Der Taster, der bei jedem Druck eine Umschaltung vornimmt, muss also wissen, in welchem Zustand sich das Licht gerade befindet, und zwar unabhängig davon, ob er selbst oder ein anderes Gerät zuletzt das Licht geschaltet hat. ---- Für diesen Zweck werden sogenannte Statusadressen verwendet. Das folgende Beispiel zeigt, wie dies funktioniert. Dafür wurde das Beispiel von oben dahingehend erweitert, dass nun zusätzlich Statusadressen für die Tasten und den Ausgang hinterlegt sind. {{ ::knx_beispiel_installation_mit_status.png?nolink |}} ^ Lichtschalter 1 ^ Lichtschalter 2 ^ Schaltaktor ^ | Taste T wird gedrückt; Lichtschalter sendet **ON-Datagramm** an die Gruppenadresse ''3/4/91'' | | | | | empfängt Datagramm, tut aber nichts, weil keine Aktion für eingehende Datagramme an der Adresse ''3/4/91'' hinterlegt ist. | empfängt Datagramm; erkennt, dass der Ausgang A auf die Gruppenadresse ''3/4/91'' reagieren muss und schaltet das Licht ein (**ON**) | | | | sendet Status-Datagramm an Gruppenadresse ''3/5/91'' mit der Information **ON** | | empfängt Datagramm und erkennt, dass durch die Adresse ''3/5/91'' eine Status-Information für die Taste T eingegangen ist; Taste T erhält den Zustand **ON** | empfängt Datagramm und erkennt, dass durch die Adresse ''3/5/91'' eine Status-Information für die Taste T eingegangen ist; Taste T erhält den Zustand **ON** | | | Taste T wird gedrückt; Lichtschalter sendet **OFF-Datagramm** an die Gruppenadresse ''3/4/91'' | | | empfängt Datagramm, tut aber nichts | | empfängt Datagramm; erkennt, dass erneut Ausgang A geschaltet werden muss und schaltet das Licht aus (**OFF**) | | | | sendet Status-Datagramm an Gruppenadresse ''3/5/91'' mit der Information **OFF** | | empfängt Datagramm für ''3/5/91''; Taste T erhält den Zustand **OFF** | empfängt Datagramm für ''3/5/91''; Taste T erhält den Zustand **OFF** | |