Group Write

Wir kommunizieren mit einer KNX Gruppenadresse.

KNiXuino Library

Die KNiXuino Library stellt dir verschiedene Klassen und Funktionen zur Verfügung, mit denen dir das Ansteuern des KNX-Bus erleichtert wird. Hier lernst du den Teil der Library kennen, mit dem du selber was bauen kannst.

Lade dir die aktuelle Version der Library hier herunter. Dann spiele sie einfach in dein Library Verzeichnis des Arduino. Und starte die Arduino IDE neu. Jetzt stehen dir die KNiXuino Libs zur Verfügung.

An eine GA senden

Die Library stellt eine Connection Klasse zur Verfügung. Für eine Verbindung mit dem SIM-KNX verwenden wir die Klasse KNXConnection_SIMKNX_raw. Hier findest du ein kleines Skript (bzw. ist dieses auch bei den Examples der Library). In diesem Skript kannst du ein Licht ansteuern.

#include "elapsedMillis.h"
#include "KNXConnection_SIMKNX_raw.h"

uint16_t ga = gaToInt(1,2,1);

KNXConnection_SIMKNX_raw* knx = new KNXConnection_SIMKNX_raw();  

void setup() {
  Serial.begin(9600);
  Serial.println("Ready ! Switch on and off by entering 0 and 1 ...");
}

void loop() {
}

void serialEvent()
{
  char ch = Serial.read();
  if (ch == '0') knx->write(ga, 0, 1);
  if (ch == '1') knx->write(ga, 1, 1);
} // end keyboardInput

Erklärung

Erklärung:

Zuerst wird die Gruppenadresse in der Variablen ga abgelegt. In meinem Fall ist diese - die schon bekannte - 1/2/1. Mit Hilfe des GA-Tools im Footer wissen wir natürlich, dass dies der dezimalen GA 2561 entspricht, man könnte also auch uint16_t ga = 2561; schreiben. Ich verwende hier aber die Hilfsfunktion gaToInt, welche diese Umwandlung erledigt. Du musst hier eine GA von einem deiner Lichter einfügen.

Dann wird noch ein Objekt der Klasse KNXConnection_SIMKNX_raw angelegt. Man legt einfach ein einziges Objekt dieser Klasse an und hat darüber die Lese- und Schreibfunktionen der Library.

setup: Hier wird nur die Verbinudng zum Serial Monitor geöffnet und eine kleine Meldung ausgegeben.

loop: Die Loop Funktion muss existieren. Beim Start des Arduino wird zuerst die Setup Funktion ausgeführt, danach immer wieder die Loop. Hier muss man gar nichts machen.

serialEvent: Die Funktion serialEvent wird automatsich aufgerufen, wenn Daten über die Serial Schnittstelle (=Serial Monitor) empfangen werden. Je nachdem ob 0 oder 1 empfangen wird, wird an die Connection Klasse ein write geschickt. Dieses sollte das Licht ein- und ausschalten. Du kannst also durch eintippen von 0 oder 1 im serial monitor dein Licht steuern