Der Raffstore und die KNX Steuerung

Rolladen war keine Hexerei. Etwas komplizierter läuft es mit den Raffstores. Also eine Aussenverschattung mit verstellbaren Lamellen. Die Steuerung der Position erfolgt wie beim Rollladen. (siehe letztes Tutorial).

Die Einstellung der Lamellen kann einerseits über eine Absolutposition (0-255) erfolgen, andererseits kann man über die GA, die den Raffstore stoppt auch die Lamellen ein Stück weiter bewegen. (Somit macht es auch Sinn an diese Gruppenadresse 0 oder 1 zu schicken. Die Bewegungsrichtung der Lamellen ist dann nämlich unterschieldich) Durch Verwenden der selben Gruppenadresse zum Stoppen und für die Lamelle kann man mit einer Taste beide Aktionen durchführen. So kann man einen Raffstore mit nur einer Taste (mittels langem und kurzen Druck) vollständig steuern. Mit dem KNiXuino macht das direkte Anfahren einer Lamellenposition mehr Sinn, weil das eigentlich sehr gut funktioniert (Richtige Konfiguration in der ETS vorausgesetzt). Den Befehl "Lamelle ein wenig mehr zu schliessen" braucht man doch eher auf einem Taster als bei einer automatischen Steuerung.

Außerdem legen wir noch eine Command Sequence an. Diese bewegt den Raffstore zu einer 3/4 geschlossenen Position und stellt dann die Lamellen horizontal..

Mein Beispielraffstore

Mein Beispielraffstore hat folgende KNX Objekte.

Objekt Nr.DPTsend/receiveGruppenadresse
2/2/201 BitEZ west auf/ab (0=auf, 1=ab)
2/2/211 BitEz west stop, Lamellen verstellen
2/2/221 BytePosition anfahren (0-255)
2/2/241 ByteLamellenposition anfahren (0-255)
2/2/401 ByteStatus Lamellen

Dies wird wieder im zentralen Definitionsfile festgelegt: Ich lege auch eine CommandSequence "mittagssonne" an. Diese schließt den Raffstore auf ca. 75% und stellt dann die Lamellen horizontal. Die Command Sequence kann natürlich um beliebig viele Raffstores und Rolläden erweitert werden...

KNXObject  eg__west_aa            (0x1214); // 2-2-20
KNXObject  eg__west_stop          (0x1215); // 2-2-21  Stop und Lamellenverstellung
KNXObject  eg__west_pos           (ga(2,2,23),0,1);
KNXObject  eg__west_lamellenpos   (ga(2,2,24),0,1);
KNXObject  eg__west_lamellenpos_status (ga(2,2,40),0,1);
KNXCommandSequence eg__mittagssonne;


void objectSettings() {
		
  eg__mittagssonne.addCommand(new KNXCommand(eg__west_pos, 170, 0)); 
  eg__mittagssonne.addCommand(new KNXCommand(eg__west_lamellenpos, 120, 10)); 
......
}

#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__west_lamellenpos_status.print();
  if (ch == '0') eg__west_aa.set(0);
  if (ch == '1') eg__west_aa.set(1);
  if (ch == '2') eg__west_stop.set(0);
  if (ch == '3') eg__west_stop.set(1);
  
  if (ch == '4') eg__west_lamellenpos.set(0);
  if (ch == '5') eg__west_lamellenpos.set(25);
  if (ch == '6') eg__west_lamellenpos.set(100); 
  if (ch == '7') eg__west_lamellenpos.set(150);
  if (ch == '8') eg__west_lamellenpos.set(255);

  if (ch == '9') eg__mittagssonne.on();



} // end keyboardInput

Probier ein wenig herum. Durch Eingabe von 9 wird die Kommandosequenz gestartet. Mein Aktor ist intelligent genug, dass er zuerst die Position fertig anfährt, bevor er die Lamellenposition einstellt, dadurch kann man in der CommandSequence beide Befehle direkt hintereinander schicken und der Aktor führt sie nacheinander aus.