Definitionenfile

Wir basteln ein Definitionenfile für unser gesamtes Haus.

Anwesenheitssimulation

Wohl der Klassiker für KNX-Zentralen ist die Anwesenheitssimulation. Mit ihr soll simuliert werden, dass sich jemand im Haus aufhält, um Einbrecher abzuschrecken. Deshlab haben wir hier mal eine kleine Anwesenheitssimulation in die Library gegeben. Du kannst sie so verwenden, oder auch nur ansehen um ein wenig Erfahrung mit dem KNiXuino zu sammeln...

Funktionsweise

Bei der Anwesenheitssimulation werden Lichter in zufälliger Abfolge ein- und ausgeschaltet. Such dir also Lichter aus, die einerseits von aussen gut sichtbar sind, andererseits vielleicht nicht allzu viel Strom verbrauchen. Es reichen 2-3 gut gewählte Lichter, man kann aber auch mehr nehmen. Zusätzlich muss man für jedes Licht festlegen wie lange die Phase des Einschaltens mindestens und höchstens dauern soll. Danach folgt die ausgeschaltete Phase, die man ebenfalls durch eine Mindest- und eine Höchstzeit festlegt.



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


KNXPresenceSimulation presenceSim;



void setup() {
  Serial.begin(9600);
  delay(60);
  Serial.println("Ready ! ");
  objectSettings();
  
  
  	  presenceSim.add (eg_buero,    23*60  33*60,  30,     40);
	  presenceSim.add (eg_wc,       40,    180,    60*20,  60*60);
	//presenceSim.add (eg_diele,    15,    60*30,  30,     60*60);
	//presenceSim.add (eg_kue_wand, 15,    60*30,  30,     60*60);
 
      presenceSim.on();
  // presenceSim->setGroupAddress(ga (4, 3, 23));
  
}

void loop() {
  presenceSim.doIt();
  delay(30);
}

void serialEvent()
{
  char ch = Serial.read();
  if (ch == '0') eg_diele.off();
  if (ch == '1') eg_diele.on();

  if (ch == 'p') presenceSim.toggle();
  if (ch == 'b') eg_buero.toggle();

  if (ch == 'l') Serial.println("--------------------------------------------");
} // end keyboardInput




 

Ein Beispielsketch

Im Beispielsketch sind die Definitionen direkt inkludiert, ich bevorzuge aber eine Definition im Definionfile, das wir im letzten Tutorial angelegt haben.

Die Anwesenheitssimulation ist genauso wie ein Schalter auch ein KNXObjekt, somit kann man sie wie ein Licht ein- und ausschalten. Gibt man ihm eine Gruppenadresse, dann geht das auch über externe KNX Taster.

Man muss der Anwesenheitssimulation jetzt Lichter einfügen, die beteiligt werden sollen. So kommt Leben in die Bude. In der add Funktion übergibt man min und max Wert für ein, min und max wert für aus in Sekunden.

Im Loop muss man die doIt() Methode der Anwesenheitssimulation aufrufen. Nachdem das nicht ständig nötig ist haben wir dann noch eine Pause eingefügt.

Während ich das WC nur immer recht kurz einschalte (zwischen 40 und 180 Sekunden) und danach lange ausschalte (zwischen 20 und 60 Minuten), brennt das Bürolicht fast immer.

Solltest du die Anwesenheitssimulation produktiv einsetzen wollen musst du sie noch aktivieren (einschalten) oder deaktivieren (ausschalten). Je nach Möglichkiet bietet sich dafür ein KNX Taster an, eine selber programmierte Logik oder was auch immer. Im Beispielsketch kannst du über Eingabe von "p" am Serial Monitor ein- und ausschalten.