Dimmen

Wir lernen Bytewerte kennen und dimmen damit Lichter.

Der Rollladen und die KNX Steuerung

Neben der Beleuchtung ist wohl der Sonnenschutz der klassische Einsatzbereich eines KNX Systems. Wir betrachten zuerst den einfacheren Fall, den Rollladen. (Um Unklarheiten zu vermeiden: Das ist das Ding, das man auf und zu machen kann, jedoch keine Lamellenverstellung etc. möglich ist.) Auch hier besteht wieder das Problem, dass jeder Hersteller seine Aktoren ein wenig anders konfiguriert. So bietet jeder Aktor andere Statusmeldungen, andere Möglichkeiten Szenen zu verwirklichen etc. Die normale Ansteuerung läuft aber glücklicherweise bei allen Aktoren gleich ab. Bei KNiXuino sind daher diese Basisfunktionen implementiert, weil das 1. völlig ausreichend ist und man 2. somit alle Aktoren am Markt ansprechen kann.

Ein Rolladenaktor besitzt mindestens 4 Objekte. Erstens ein auf/ab Objekt, das DPT1 (Bit) Werte empfängt. Dann ein Stop Objekt. Dieses empfängt ebenfalls einen DPT1 Wert, wobei es beim Rollladen egal ist ob man 0 oder 1 sendet, in beiden Fällen stoppt der Rolladen an der momentanen Position. Wir verwenden hier noch das "Position anfahren" Objekt. Bei diesem wird über einen 1 Byte Wert (0-255) eine bestimmte Position angefahren. 255 steht für völlig geschlossen, 0 für offen. Als mögliche Statusmeldung gibt es bei praktisch jedem Aktor eine Positionsmeldung ebenfalls als 1 Byte Wert.

Es sei angemerkt, dass Sonnenschutz und KNX immer etwas problematisch ist. Grund dafür ist, dass Rollladenmotoren nicht sonderlich intelligent sind und ihre Position nicht wirklich wissen. Der Aktor kann also die Position nur an Hand der vergangenen Zeit, nach einem Schliessen oder Öffnen Befehl, abschätzen. Will man also vernünftige Statusmeldungen oder auch Positionen möglichst exakt anfahren, dann ist es notwendig die gesamte Fahrzeit zum Öffnen/Schliessen in der ETS beim Rolladenaktor genau einzustellen. Die Fahrzeit kann immer bei den Aktoreingenschaften eingestellt werden.

Mein Beispielrollladen

Mein Beispielrolladen hat folgende KNX Objekte.

GADPTsend/receive
2/2/251 BitRollladen auf/ab (0=auf, 1=ab)
2/2/261 BitRollladen stop
2/2/281 BytePosition anfahren
2/2/271 ByteStatus Position

Dementsprechend sieht die Definition im zentralen Definitionfile so aus: (Ich verwende einen doppelten Unterstrich für Beschattung, ob das Sinn macht sei jedem selber überlassen)

KNXObject  eg__sz_aa               (ga(2,2,25));
KNXObject  eg__sz_stop             (ga(2,2,26));
KNXObject  eg__sz_position         (ga(2,2,28),0,1);
KNXObject  eg__sz_pos_status       (ga(2,2,27),0,1);

#include <Arduino.h>

#include "KNXConnection.h"
#include "KNXObjectDefinitions.h"

void setup() {
  Serial.begin(9600);
  Serial.println("Ready ! ");
  objectSettings();
}

void loop() {
}

void serialEvent()
{
  char ch = Serial.read();
  if (ch == 's') eg__sz_pos_status.print();
  if (ch == '0') eg__sz_aa.set(0);
  if (ch == '1') eg__sz_aa.set(1);
  if (ch == '2') eg__sz_stop.set(0);
  if (ch == '3') eg__sz_stop.set(1);
  if (ch == '4') eg__sz_position.set(0);
  if (ch == '5') eg__sz_position.set(128);
  if (ch == '6') eg__sz_position.set(255);
  if (ch == '7') eg__sz_position.set(15);
  if (ch == '8') eg__sz_position.set(25);
  if (ch == 'l') Serial.println("----------------------------");

} // end keyboardInput

Die Funktionsweise ist eigentlich wie beim Dimmen. Über die Eingaben kann man auf- und abfahren, stoppen oder auch bestimmte Positionen anfahren.