Im letzten Tutorial haben wir direkt in den KNX Bus an eine Gruppenadresse geschrieben. Jetzt lernst du die KNX Objekte kennen. Objekte setzt man ein sobald man den Schaltzustand eines KNX Devices kennen will. Schreibt man also nur Werte ins KNX, reicht es das wie im letzten Tutorial direkt zu machen. Will man aber auf Zustände reagieren, dann legt man ein Objekt an, von dem dann der aktuelle Zustand bekannt ist. Am besten du probierst gleich den folgenden Sketch aus.
#include <Arduino.h> #include "KNXConnection.h" #include "KNXObject.h" KNXConnection knx; KNXObject eg_buero((uint16_t)0xA01, (uint16_t)0xA02); void setup() { Serial.begin(9600); Serial.println("Ready ! "); } void loop() { } void serialEvent() { char ch = Serial.read(); if (ch == 's') eg_buero.print(); if (ch == '0') eg_buero.off(); if (ch == '1') eg_buero.on(); if (ch == 'l') Serial.println("---------------------------"); } // end keyboardInput
Vieles ist bekannt. Wir inkludieren aber auch die Datei "KNXObject.h". Hier werden die KNXObjects zur Verfügung gestellt.
Neben der KNX Connection, die wir schon kennen, legen wir ein Objekt vom Typ KNXObject an. Ich definiere meinen altbekannten Bürolichtschalter. Beim Anlegen des Objekts gibt man gleich die GA des Lichts an. Weiters kann man auch die Statusadresse angeben, auf der der Schaltaktor Statusmeldungen zurückschickt. Bit Objekte (also Objekte die nur 0 oder 1 kennen) sind die am häufigsten verwendeten. Man kann ganze Häuser damit steuern...
serialEvent: Wir schrieben hier nicht mehr direkt in den Bus sondern schalten über unser Objekt ein oder aus. Die Methode print gibt am Serial Monitor den Status des Objekts aus.
Probiere es aus. Bei EIngabe von "s" im Serial Monitor sollte immer der aktuelle Status des Lichts ausgegeben werden, egal ob du es über den KNiXuino oder einen Lichtschalter eingeschaltet hast.