Universelle Heizungssteuerung

Danke euch erstmals für die schnellen Antworten.

Habe den "Fehler gefunden. Ich greife über die Konsole mit dyndns auf den server zu. Dort hab ich aber nur DSL 384. Als ich heuet geschaut habe, waren die Variablen plötzlich wie von Geisterhand da.

Ich werde weiterbasteln und bestimmt euch noch mit ein paar Fragen nerven.

Ich habe einen Server 2008R2, ne CCU und viele HM Komponenten.

In Planung ist im Moment noch das IPS-EnergieKontrollModul EKM-868 mit USB Empfänger und Stromverbrauch und PV-Ertrag erfassen zu können.

Was haltet Ihr davon, oder kennt ihr bessere Alternativen?

Gruß und Danke nochmals

Ich habe folgendes Set verbaut:

funzt prima. Das IPS Script gibt es hier im Forum auch schon.

Werde mir das mal genauer anschauen. Danke

Bekomme folgende Fehlermeldung bei nutzung von Ernies Heizungsscipts:

s. Screenshot

Der Wochenplan wurde aber erzeugt.
Steh irgendwie auf dem Schlauch…

Das steht in der config.class.ips.php

<?

/*
 ################################################################################
 # IP-Symcon Config-Datei                                                       #
 #                                                                              #
 # Beschreibung : config Datei zu IP-Symcon                                     #
 # Create date  : 2010-11-05                                                    #
 # Last change  : 2010-11-05                                                    #
 # Version      : 0.09                                                          #
 # Datei        : config.class.ips.php                                          #
 # Author       : ernie                                                         #
 # Copyright    : ernie                                                         #
 ################################################################################
 */

namespace de\IPSymcon\ernie;

if (!defined("INCLUDED_DEBUGGER")) {
	DEFINE("INCLUDED_DEBUGGER",TRUE);
	include("../debugger.class.ips.php");
	}

class Config implements EnvironmentDebugger {
	// cAOIDs ok == Object (Variable/Script/Kategorie) bereits in checkAllObjectIDs berücksichtigt
	private $version;
	private $debug;
	private $heizungssteuerung;
	private $ipsConfigObjectIDs;
	
	public function __construct($myVersion) {
		$this->timeBegin = microtime();
		$this->version = $myVersion;
		$this->debug = array();
		$this->debug['showHiddenThings']			= true;
		$this->debug['debugThisSession']			= false;
		$this->debug['showDebugMessageOnEnd']	= false;
		$this->debug['debugWithPRE']				= false;

		$this->debug['disableWarnings']			= false;
		$this->debug['disableOutput']				= false;

		if ($this->debug['disableWarnings']) {
			error_reporting(E_ERROR);
			// alle ohne NOTICE:
			// error_reporting(E_ALL & ~E_NOTICE);
		}

		$this->environmentDebugConfigObject = new EnvironmentDebugObject();

		$do = $this->environmentDebugConfigObject;
		// echo "<PRE>". $this->environmentDebugConfigObject . "</PRE><br>
";
		// $this->environmentDebugConfigObject->addDebugEnvironment('environmentName',	0,	PRE?,	show Categories?,showCount,	OnEnd,	uesedDebuggers);
		$do->addDebugEnvironment('config.class[getWunschTemperatur]',							0,	TRUE,	TRUE,	FALSE,	FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('config.class[checkObjectIDExists]',							0,	TRUE,	TRUE,	FALSE,	FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 1 / maxValue = 1

		$do->addDebugEnvironment('heizungssteuerung_createHeizplan.class[__construct]',	0,	TRUE,	TRUE,	FALSE,	FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('heizungssteuerung_createHeizplan.class[initialzing]',	6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9

		$do->addDebugEnvironment('heizungssteuerung_trigger.class[__construct]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[showActualHeizplan]',	6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[setActualTemperature]',6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[lookOpenWindows]',		6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[setRaumTemperatur]',	4,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 5 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[SOLL-IST-VERGLEICH]',	6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[lookAllRooms]',			7,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 8 / maxValue = 9

		$do->addDebugEnvironment('HomeMaticKomponenten.class[__construct]',					0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponenten.class[getSollTemperatur]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponentenHeizenJaNein.class[__construct]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponentenHeizenJaNein.class[getSollTemperatur]',	0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponentenHeizenJaNein.class[setHeizenJaNein]',		8,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 9 / maxValue = 9

		// ##################################################
		// ###
		// ### DEFINE Heizungssteuerung
		// ###
		$this->heizungssteuerung = array();

		// ### Definition, aus welchem Interface
		// ### das Heizungs-Komponenten erstellt werden soll?
		// ### Aktuell implementiert:
		// ###    - HomeMaticKomponenten
		// ###    - EinsWireWagoKombinationsKomponenten
		// ###    - HomeMaticKomponentenHeizenJaNein
		// ### LAST CHANGE IN IN REVISION 3
		// $this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponenten";
		// ### Test-Szenario CHANGE CHANGE CHANGE 1/3
		// $this->heizungssteuerung['heizungsKomponenten'] = "EinsWireWagoKombinationsKomponenten";
		$this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponentenHeizenJaNein";

		// ### Definition der createHeizplan Konstanten, u.a.
		// ###   - ObjectID des ChangeBoolean Scripts, dass im WebFront die Anwesend/Abwesend der Variablen tooglet
		// ###   - Konstanten für die CustomProfiles, die den An- und Abwesenheitsvariablen zugeweisen werden
		// ###   - Auswahl, ob die Heizplan Variablen (An- und Abwesenenheit) für das iFront
		// ###		- gekürzt werden sollen (ohne Bezeichner "Mittags / Abends)
		// ###		- das CustomProfile (~Switch oder b_Anwesend-Abwesend) für einen Toogle-Button hinterlegt bekommen
		// ###         - b_Anwesend-Abwesend: Die Variablen im WebFront sind grün und rot und haben den Bezeichner
		// ###           "Anwesend" und "Abwesend" im iFront muss man ins Untermenü wechseln, um Sie umzuschalten
		// ###         - ~Switch: Die Variablen im WebFront sind grün und rot und haben den Bezeichner
		// ###           "An" und "Aus" im iFront kann man diese per Toogle Button direkt umschalten
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['createHeizplanConstants'] = array();
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontChangeVariableScriptObjectID']	= 26590 /*[Heizung\Heizungssteuerung\Scripte\WebFrontChangeVariable]*/; // cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'] 				= "b_Anwesend-Abwesend"; 	// cAOIDs ok
		// $this->heizungssteuerung['createHeizplanConstants']['WebFrontWunschTempeaturProfileName'] = "f_Raumtempperatur";     // wird nur manuell den Wunsch-Temperatur Variablen zugewiesen
		$this->heizungssteuerung['createHeizplanConstants']['iFrontVariableProfileName'] 				= "~Switch"; 					// cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['CreateShortHeizplanVariablen'] 			= TRUE;
		$this->heizungssteuerung['createHeizplanConstants']['CreateiFrontToogleButton'] 					= TRUE;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableBoolean'] 					= 0;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableInteger'] 					= 1;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableFloat'] 					= 2;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableString'] 					= 3;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableString'] 					= 3;

		// ### Definition der ObjectIDs der Kategorien, in denen der Heizplan
		// ### der einzelnen Tage erstellt werden soll
		// ### LAST CHANGE IN IN REVISION 1
		$this->heizungssteuerung['rootNodesHeizplan'] = array();
		// for testing:
		// $this->heizungssteuerung['rootNodesHeizplan'][0] = 39943 /*[Objekt #39943 existiert nicht]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][1] = 36401 /*[Heizung\Heizplan\01-Montag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][2] = 14859 /*[Heizung\Heizplan\02-Dienstag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][3] = 48837 /*[Heizung\Heizplan\03-Mittwoch]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][4] = 53040 /*[Heizung\Heizplan\04-Donnerstag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][5] = 53113 /*[Heizung\Heizplan\05-Freitag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][6] = 17223 /*[Heizung\Heizplan\06-Samstag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][7] = 37094 /*[Heizung\Heizplan\07-Sonntag]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs, an denen die Raum-Soll-Temperaturen gelesen werden können
		// ###    bei HomeMatic muss hier die SETPOINT Variable der Thermostate verlinkt werden
		// ###    bei 1-Wire in IPS selbst definierte Variablen
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['readRaumSollTemeratur'] = array();
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		//$this->heizungssteuerung['readRaumSollTemeratur']['Bad'] 			= 28484 /*[EG\Bad\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Bad\Bad - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Büro']			= 10386 /*[1. OG\Frank\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Büro\Büro - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer'] 	= 28435 /*[1. OG\Gästezimmer\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Gästezimmer\Gästezimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 20023 /*[2.OG\Volker\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Schlafzimmer\Schlafzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] 	= 31934 /*[EG\Wohnzimmer\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Wohnzimmer\Wohnzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		// ### ODER IPS-Variablen (zum speichern und lesen der Werte)
		// ### (diese müssen im IPS-Baum selbst angelegt werden)
		// ###    z.B. bei 1-wire Modulen
		// ###    z.B. bei HomeMaticHeizenJaNein
		// ### Test-Szenario CHANGE CHANGE CHANGE 2/3
		$this->heizungssteuerung['readRaumSollTemeratur']['Bad'] 			= 54527 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Bad]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Büro']			= 20720 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Büro]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
		$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer'] 	= 21805 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Gästezimmer]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
		$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 17349 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Schlafzimmer]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] 	= 51441 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Wohnzimmer]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Wohnzimmer]

		// ###
		// ### Definition der ObjectIDs an denen die Raum-Soll-Temperaturen geschrieben werden können
		// ### Eventuell sind diese gleich "Gelesenen", bei HomeMatic jedoch nicht ...
		// ### dort wird die Variable ausgelsen, jedoch ins Thermostat zurückgeschrieben
		// ### LAST CHANGE IN IN REVISION 3
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['writeRaumSollTemeratur'] = array();
		$this->heizungssteuerung['writeRaumSollTemeratur']['Bad'] 				= 32381 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Bad]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 52908 /*[1. OG\Frank\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer']   	= 49039 /*[1. OG\Gästezimmer\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 53871 /*[2.OG\Volker\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 15757 /*[EG\Wohnzimmer\Soll-Werte]*/; // cAOIDs ok ;
		// ### ODER IPS-Variablen (zum speichern und lesen der Werte)
		// ### (diese müssen im IPS-Baum selbst angelegt werden)
		// ###    z.B. bei 1-wire Modulen
		/*
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Bad'] 				= 54527 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Bad]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 20720 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Büro]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer'] 	= 21805 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Gästezimmer]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 17349 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Schlafzimmer]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 51441 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Wohnzimmer]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Wohnzimmer]
		*/

		// ###
		// ### Definition der ObjectIDs, an denen die Raum-Ist-Temperaturen gelesen werden können
		// ### LAST CHANGE IN IN REVISION 2
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['readRaumIstTemeratur'] = array();
		$this->heizungssteuerung['readRaumIstTemeratur']['Bad'] 				= 30804 /*[EG\Bad\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Büro']				= 46744 /*[1. OG\Frank\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Gästezimmer'] 	= 11373 /*[1. OG\Gästezimmer\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Schlafzimmer'] 	= 43081 /*[2.OG\Volker\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Wohnzimmer'] 	= 22472 /*[EG\Wohnzimmer\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs, an denen die Heiz-Stati der Räume gelesen werden können
		// ### Diese ObjectIDs müssen nur definiert werden, wenn das Interface entweder
		// ### HomeMaticHeizenJaNein oder EinsWireWagoKombinationsKomponenten ist
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['heizStatiRaeume'] = array();
		$this->heizungssteuerung['heizStatiRaeume']['Bad'] 				= 37257 /*[Heizung\Heizungssteuerung\heiz - Stati\Bad]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Büro']				= 41762 /*[Heizung\Heizungssteuerung\heiz - Stati\Büro]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Gästezimmer'] 		= 48166 /*[Heizung\Heizungssteuerung\heiz - Stati\Gästezimmer]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Schlafzimmer'] 	= 13872 /*[Heizung\Heizungssteuerung\heiz - Stati\Schlafzimmer]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Wohnzimmer'] 		= 41456 /*[Heizung\Heizungssteuerung\heiz - Stati\Wohnzimmer]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs der Fenster-Kontakte
		// ### LAST CHANGE IN IN REVISION 2
		$this->heizungssteuerung['rootNodesFenster'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Bad'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Bad'][0] 				= 12012 /*[EG\Bad\Fenster\STATE]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs der IPS-Variablen, aus denen
		// ### die An-/Abwesend Wunsch-Temperaturen ausgelesen werden soll
		// ### Dort sollten FLOAT Variablen erstellt werden
		// LAST CHANGE IN IN REVISION 2
		$this->heizungssteuerung['temperaturProfile'] = array();
		$this->heizungssteuerung['temperaturProfile']['Bad'] = array();
		$this->heizungssteuerung['temperaturProfile']['Bad']['Anwesend'] 				= 54657 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Bad - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Bad']['Abwesend'] 				= 33492 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Bad - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Büro'] = array();
		$this->heizungssteuerung['temperaturProfile']['Büro']['Anwesend'] 			= 15482 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Büro - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Büro']['Abwesend'] 			= 58612 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Büro Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Gästezimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Gästezimmer']['Anwesend'] 	= 59560 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Gästezimmer - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Gästezimmer']['Abwesend'] 	= 15023 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Gästezimmer -Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Schlafzimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Schlafzimmer']['Anwesend'] 	= 30450 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Schlafzimmer - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Schlafzimmer']['Abwesend'] 	= 45535 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Schlafzimmer - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Anwesend'] 	= 38785 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Wohnzimmer - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Abwesend'] 	= 37050 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Wohnzimmer - Abwesend]*/; // cAOIDs ok

		// ###
		// ### Definition der Zeit- und Standard-Anwesenheits-Profilen
		// ### inkl. der Aufteilung nach Wochentag / Wochenende
		// ### LAST CHANGE IN IN REVISION 1
		$this->heizungssteuerung['zeitProfile'] = array();
		$this->heizungssteuerung['standardZuordnung'] = array();

		// ### Raum Definitionen - Bad
		$this->heizungssteuerung['zeitProfile']['Bad'] = array();
		$this->heizungssteuerung['zeitProfile']['Bad'][0] = "06:00 bis 07:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Bad'][1] = "07:00 bis 08:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Bad'][2] = "08:00 bis 21:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Bad'][3] = "21:30 bis 23:00 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Bad'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags']["06:00 bis 07:00 Uhr - Frühmorgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags']["07:00 bis 08:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags']["08:00 bis 21:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags']["21:30 bis 23:00 Uhr - Abends"] 			= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["06:00 bis 07:00 Uhr - Frühmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["07:00 bis 08:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["08:00 bis 21:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["21:30 bis 23:00 Uhr - Abends"] 		= TRUE;

		// ### Raum Definitionen - Büro
		$this->heizungssteuerung['zeitProfile']['Büro'] = array();
		$this->heizungssteuerung['zeitProfile']['Büro'][0] = "06:00 bis 12:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Büro'][1] = "12:00 bis 16:00 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Büro'][2] = "16:00 bis 19:30 Uhr - Nachmittags";
		$this->heizungssteuerung['zeitProfile']['Büro'][3] = "19:30 bis 23:00 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Büro'] = array();
		$this->heizungssteuerung['standardZuordnung']['Büro']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Büro']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Büro']['Werktags']["06:00 bis 12:00 Uhr - Morgens"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Werktags']["12:00 bis 16:00 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Werktags']["16:00 bis 19:30 Uhr - Nachmittags"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Werktags']["19:30 bis 23:00 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Wochenende']["06:00 bis 12:00 Uhr - Morgens"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Wochenende']["12:00 bis 16:00 Uhr - Tagsüber"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Wochenende']["16:00 bis 19:30 Uhr - Nachmittags"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Büro']['Wochenende']["19:30 bis 23:00 Uhr - Abends"] 		= FALSE;

		// ### Raum Definitionen - Gästezimmer
		$this->heizungssteuerung['zeitProfile']['Gästezimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Gästezimmer'][0] = "07:00 bis 23:00 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer'] = array();
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Werktags']["07:00 bis 23:00 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Wochenende']["07:00 bis 23:00 Uhr - Einheitlich"] = FALSE;

		// ### Raum Definitionen - Schlafzimmer
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'][0] = "07:00 bis 18:00 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'][1] = "18:00 bis 23:00 Uhr - Abends";
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'][2] = "23:00 bis 23:59 Uhr - Nachts";
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer'] = array();
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Werktags']["07:00 bis 18:00 Uhr - Tagsüber"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Werktags']["18:00 bis 23:00 Uhr - Abends"] = TRUE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Werktags']["23:00 bis 23:59 Uhr - Nachts"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende']["07:00 bis 18:00 Uhr - Tagsüber"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende']["18:00 bis 23:00 Uhr - Abends"] = TRUE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende']["23:00 bis 23:59 Uhr - Nachts"] = FALSE;

		// ### Raum Definitionen - Wohnzimmer
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][0] = "07:00 bis 12:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][1] = "12:00 bis 18:00 Uhr - Mittags";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][2] = "18:00 bis 23:00 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["07:00 bis 12:00 Uhr - Morgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["12:00 bis 18:00 Uhr - Mittags"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["18:00 bis 23:00 Uhr - Abends"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["07:00 bis 12:00 Uhr - Morgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["12:00 bis 18:00 Uhr - Mittags"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["18:00 bis 23:00 Uhr - Abends"] 	= TRUE;

		// ############################################################################################
		// ###
		// ### Raum-Steuerungstechniken definieren:
		// ###
		// ### KEINE Erweiterte Raum-Steuerungstechnik
		// ###    Das Raum-Thermostat wird einfach auf die Wunsch-Temperatur gesetzt
		// ###
		// ### SIMPLE-DELTA Raumsteuerungstechnik
		// ###    Da einige Systeme den Raum höher heizen als gewünscht, kann
		// ###    hier ein DELTA-Wert angegeben werden, der auf von allen
		// ###    Wunsch-Temperaturen abgezogen wird
		// ###
		// ### SOLL-IST-VERGLEICH Raumsteuerungstechnik
		// ###    Sollte das Thermostat nur Heizen Ja/Nein unterstützen
		// ###    oder die Thermostatssteuerung zu schlecht sein, kann mit
		// ###    dieser Steuerungstechnik die Soll Temperatur permanent mit
		// ###    der Ist-Temperatur verglichen und angepasst werden
		// ###    Solange die Wunsch-Temperatur plus die Delta-Temperatur im
		// ###    Raum noch nicht erreicht ist, wird diese als Soll-Temperatur gesetzt
		// ###    Wenn diese Temperatur erreicht ist, wird die Soll-Temperatur auf die
		// ###    Wunsch-Temperatur minus die Delta-Temperatur gesetzt.
		// ###    Dies gilt so lange, bis die Ist-Temperatur diese neue
		// ###    Soll-Temperatur unterschreitet
		// ###
		// ###    Eventuelle DELTA-Werte aus SIMPLE-DELTA werden auch hier beachtet
		// ###
		// ### ÜBERSCHWAPPT-DELTA Raumstuéuerungstechik (aktuell noch NICHT implementiert)
		// ###    Hier der Raum erst auf die Wunsch-Temperatur minus den jeweiligen Delta Wert
		// ###    hochheizt. Dann wird die tatsächliche Wunsch-Temperatur gesetzt.
		// ###    Damit soll verhindert werden, dass die Raumtemperatur "überschwappt" bevor sich die
		// ###    Stellantriebe bei der Wunsch-Temperatur schließen
		// ###
		// ###    Eventuelle DELTA-Werte aus SIMPLE-DELTA werden auch hier beachtet

		// Welche Technik soll für welchen Raum benutzt werden?
		// LAST CHANGE IN REVISION 3
		$this->heizungssteuerung['raumSteuerungsTechnik'] = array();
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Bad'] 			= "SIMPLE-DELTA";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Büro'] 			= "KEINE";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Gästezimmer'] 	= "SIMPLE-DELTA";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Wohnzimmer'] 	= "SIMPLE-DELTA";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Schlafzimmer']	= "SIMPLE-DELTA";
		// ### Test-Szenario CHANGE CHANGE CHANGE 3/3
		$this->heizungssteuerung['raumSteuerungsTechnik']['Bad'] 			= "SOLL-IST-VERGLEICH";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Büro'] 			= "SOLL-IST-VERGLEICH";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Gästezimmer'] 	= "SOLL-IST-VERGLEICH";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Wohnzimmer'] 	= "SOLL-IST-VERGLEICH";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Schlafzimmer']	= "SOLL-IST-VERGLEICH";

		// Delta Werte, die beim "Hochheizen" eines Raumes vorerst von der Wunsch-Temperatur
		// abgezogen werden, bis die Wunsch-Temperatur minus Delta erreicht wird

		// SIMPLE-DELTA Werte definieren
		// Delta Werte, die für die Soll-Temperatur des Raumes abgezogen wird
		// LAST CHANGE IN REVISION 2
		$this->heizungssteuerung['simpleDeltaTemperatur'] = array();
		$this->heizungssteuerung['simpleDeltaTemperatur']['Bad'] 			=  1.0;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Büro'] 			=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Gästezimmer'] 	=  1.0;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Schlafzimmer']	=  1.0;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Wohnzimmer'] 	=  1.0;

		// ÜBERSCHWAPP-DELTA Raum-Steuerungs-Definitionen
		/*
	   // TODO: in config verschieben?
	   // Überschwappt-Abrechnungs-Delta
		// ist die Abrechnungs-Wert in %,
		// bei der der Raum auf die eigentliche Wunsch-Temperatur angehoben wird
	   // Beispiele:
	   //    - Wunsch-Temperatur = 18°
	   //    - DeltaWert: 2° ==> Anheiz-Temperatur == 16° (18 - 2)
	   //
	   // 0    bedeutet, dass bei einer IST-Temperatur von 18,0° (18° - 0,0° /  0% von 2°)
		//      die SOLL-Temperatur von 16° Anheizen auf 18° angehoben wird
		// 0.25 bedeutet, dass bei einer IST-Temperatur von 17,5° (18° - 0,5° / 25% von 2°)
		//      die SOLL-Temperatur von 16° Anheizen auf 18° angehoben wird
	   // 1    bedeutet, dass bei einer IST-Temperatur von 16,0° (18° - 2,0° / 100% von 2°)
		//      die SOLL-Temperatur von 16° Anheizen auf 18° angehoben wird
		$ueberschwapptDelta = 0.25;
		==> für jeden Raum einzeln
		*/

		// ###
		// ### END DEFINE Heizungssteuerung
		// ###
		// ##############################################################

		// define other things
		$this->diverses = array();
		$this->diverses['newLine'] 					= "<br>
";
		$this->diverses['newDebugLine'] 			= "
";
		$this->diverses['HTMLDebugPlaceHolder'] 	= "   ";

		$this->diverses['color[black]'] 		= "#000000";
		$this->diverses['color[green]']		= "#009900";
		$this->diverses['color[red]'] 		= "#FF0000";
		$this->diverses['color[winered]']	= "#990000";
		$this->diverses['color[yellow]']		= "#FFFFCC";
	}

	public function getVersion() {
		return $this->version;
	}

	public function getCreateHeizplanConfigConstantsArray() {
		return $this->heizungssteuerung['createHeizplanConstants'];
	}

	public function getHeizungsKomponenten() {
		return $this->heizungssteuerung['heizungsKomponenten'];
	}

	public function getWindowRootNodeForRoom($roomName) {
	   // returns Array, falls Fenster für den Raum existieren
	   // returns -1, falls keine Fenster existieren
		if (isset($this->heizungssteuerung['rootNodesFenster'][$roomName])) {
			return $this->heizungssteuerung['rootNodesFenster'][$roomName];
		}
		else {
		   return -1;
		}
	}
	
	public function getRootNodeForDay($dayNumber) {
	   // 1 = Montag; 7 = Sonntag
		return $this->heizungssteuerung['rootNodesHeizplan'][$dayNumber];
	}

	public function getObjectIDRaumHeizStatus($raumName) {
		return $this->heizungssteuerung['heizStatiRaeume'][$raumName];
	}

	public function getReadRaumSollTemperaturObjectID($raumName) {
		return $this->heizungssteuerung['readRaumSollTemeratur'][$raumName];
	}

	public function getRaumIstTemperatur($raumName) {
		return GetValueFloat($this->heizungssteuerung['readRaumIstTemeratur'][$raumName]);
	}

	public function getRaumSteuerungsTechnik($raumName) {
		return $this->heizungssteuerung['raumSteuerungsTechnik'][$raumName];
	}

	public function getSimpleDeltaTemperaturRaum($raumName) {
		return $this->heizungssteuerung['simpleDeltaTemperatur'][$raumName];
	}

	public function getWriteRaumSollTemperaturObjectID($raumName) {
		return $this->heizungssteuerung['writeRaumSollTemeratur'][$raumName];
	}

	public function getWunschTemperatur($raumName,$anwesenheit) {
	   $anwesenheitString = "";
		if ($anwesenheit) {$anwesenheitString = "Anwesend";}
		else {$anwesenheitString = "Abwesend";}
		$this->showEnvironmentDebugMessage('call getWunschTemperatur('. $raumName .','. $anwesenheitString .')' ,"config.class[getWunschTemperatur]",1);
		$result = GetValueFloat($this->heizungssteuerung['temperaturProfile'][$raumName][$anwesenheitString]);
		$this->showEnvironmentDebugMessage('   $result == '. $result ,"config.class[getWunschTemperatur]",1);
		return $result;
	}

	public function getZeitProfile() {
		return $this->heizungssteuerung['zeitProfile'];
	}

	public function getTemperaturProfile() {
		return $this->heizungssteuerung['temperaturProfile'];
	}

	public function getStandardZuordnung() {
		return $this->heizungssteuerung['standardZuordnung'];
	}

	public function getInitialAnwesendValue($raumName,$zeit,$actualWeekDay) {
		// $this->showEnvironmentDebugMessage('call getInitialAnwesendValue('. $raumName .','. $anwesenheit .')' ,"config.class[getWunschTemperatur]",1);
		// $this->configObject->showEnvironmentDebugMessage('   $result == '. $result ,"homeMaticKomponenten.class[getSollTemperatur]",1);
		if ($actualWeekDay <= 5) {
		   return $this->heizungssteuerung['standardZuordnung'][$raumName]['Werktags'][$zeit];
	   }
		else {
		   return $this->heizungssteuerung['standardZuordnung'][$raumName]['Wochenende'][$zeit];
		}
	}

	 public function checkAllObjectIDs () {
	 	// Alle ObjectIDs für IPS Variablen durchgehen, ob dort auch Variablen existieren?
	 	$this->checkObjectIDExists("script",$this->heizungssteuerung['createHeizplanConstants']['WebFrontChangeVariableScriptObjectID'],'$this->heizungssteuerung["createHeizplanConstants"]["WebFrontChangeVariableScriptObjectID"]');
	 	//$this->checkObjectIDExists("variableProfile",$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'],'$this->heizungssteuerung["createHeizplanConstants"]["WebFrontVariableProfileName"]');
	 	$this->checkObjectIDExists("variableProfile",$this->heizungssteuerung['createHeizplanConstants']['iFrontVariableProfileName'],'$this->heizungssteuerung["createHeizplanConstants"]["iFrontVariableProfileName"]');
	 	foreach ($this->heizungssteuerung['rootNodesHeizplan'] as $key => $value) {$this->checkObjectIDExists("category",$value,'$this->heizungssteuerung["rootNodesHeizplan"]['. $key ."]");}
	 	foreach ($this->heizungssteuerung['readRaumSollTemeratur'] as $key => $value) {$this->checkObjectIDExists("variable",$value,'$this->heizungssteuerung["readRaumSollTemeratur"]['. $key ."]");}
		// Wird die Raum-Temperatur auf ein Objeckt oder eine IPS Variable geschrieben (je nach Interface)?
		$actualObjectType = "";
		if ($this->getHeizungsKomponenten() == "HomeMaticKomponenten" ) {$actualObjectType = "object";}
		if ($this->getHeizungsKomponenten() == "HomeMaticKomponentenHeizenJaNein") {$actualObjectType = "object";}
		if ($this->getHeizungsKomponenten() == "EinsWireWagoKombinationsKomponenten" ) {$actualObjectType = "variable";}
		foreach ($this->heizungssteuerung['writeRaumSollTemeratur'] as $key => $value) {$this->checkObjectIDExists($actualObjectType,$value,'$this->heizungssteuerung["writeRaumSollTemeratur"]['. $key ."]");}
		$actualObjectType = "";
		foreach ($this->heizungssteuerung['readRaumIstTemeratur'] as $key => $value) {$this->checkObjectIDExists("variable",$value,'$this->heizungssteuerung["readRaumIstTemeratur"]['. $key ."]");}

		// $this->heizungssteuerung['heizStatiRaeume'] nur checken, wenn das Interface HomeMaticHeizenJaNein oder EinsWireWago ist
		// für HomeMatic werden die Variablen nicht benötigt
		if ($this->heizungssteuerung['heizungsKomponenten'] == "EinsWireWagoKombinationsKomponenten"
		   || $this->heizungssteuerung['heizungsKomponenten'] == "HomeMaticKomponentenHeizenJaNein") {

			// $this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponenten";
			foreach ($this->heizungssteuerung['heizStatiRaeume'] as $key => $value) {$this->checkObjectIDExists("variable",$value,'$this->heizungssteuerung["heizStatiRaeume"]['. $key ."]");}
			}

		foreach ($this->heizungssteuerung['rootNodesFenster'] as $key => $value) {
			foreach ($this->heizungssteuerung['rootNodesFenster'][$key] as $key1 => $value1) {
				$this->checkObjectIDExists("variable",$value1,'$this->heizungssteuerung["rootNodesFenster"]['. $key ."][". $key1 ."]");
				}
			}
		foreach ($this->heizungssteuerung['temperaturProfile'] as $key => $value) {
			foreach ($this->heizungssteuerung['temperaturProfile'][$key] as $key1 => $value1) {
				$this->checkObjectIDExists("variable",$value1,'$this->heizungssteuerung["temperaturProfile"]['. $key ."][". $key1 ."]");
				}
			}
	 }
	 
	public function checkObjectIDExists($objectType,$objectID,$objectName) {

		$this->showEnvironmentDebugMessage('check existens of Variable Number '. $objectID .' ('. $objectType .' / '. $objectName .')' ,"config.class[checkObjectIDExists]",1);

	   $objectExists = FALSE;
		if ($objectType == "variable") {$objectExists = IPS_VariableExists($objectID);}
		if ($objectType == "script") {$objectExists = IPS_ScriptExists($objectID);}
		if ($objectType == "category") {$objectExists = IPS_CategoryExists($objectID);}
		if ($objectType == "variableProfile") {$objectExists = IPS_VariableProfileExists($objectID);}
		if ($objectType == "object") {$objectExists = IPS_ObjectExists($objectID);}

      if (!$objectExists) {
			if ($objectType == "") {
				$this->showEnvironmentDebugMessage("FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " besitzt KEINEN Type ==> Abbruch des Scripts (". $objectName .")" ,"config.class[checkObjectIDExists]",1);
				IPS_LogMessage("config.class","FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " besitzt KEINEN Type 
==> Abbruch des Scripts (". $objectName .")");
				}
			else {
				$this->showEnvironmentDebugMessage("FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " existiert NICHT ==> Abbruch des Scripts (". $objectType ." / ". $objectName .")" ,"config.class[checkObjectIDExists]",1);
				IPS_LogMessage("config.class","FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " existiert NICHT 
==> Abbruch des Scripts (". $objectType ." / ". $objectName .")");
				}
			die(-1);
			}
		return 1;
		}

	public function showEnvironmentDebugMessage ($message, $debugCategorie, $debugCount) {
		// delegate call
		$this->environmentDebugConfigObject->showEnvironmentDebugMessage($message, $debugCategorie, $debugCount);
	}

	 public function showDebugMessage ($message) {
	 // Dummy Methode, da tatsaechliche Ausgaben ueber showEnvironmentDebugMessage ausgegeben werden sollten
	 // TODO: EXCEPTION werfen
	 }


}

//Fügen Sie hier ihren Skriptquellcode ein

?>

Das ist nur ein Warnung, das Script wird aber trotzdem weiter ausgeführt. Deshalb kommt trotzdem ein Heizplan heraus.

In Zeile 229 wird der Status der Fenster ausgelesen. Bei meinen HomeMatic Fensterkontakten sind das Integer-Werte.

Welche Fensterkontakte hast Du? HomeMatic?

Was ist 12012 bei Dir für eine Variable?

Fürchte ich habe die Anleitung nicht zu 100% verstanden gehabt.

Die 12012 ist die ID vom SATAE des HM Fenstersensor (Boolean).

Habe jetzt ID 25001 ERROR des HM Fenstersensors (integer).
Damit bekomme ich keine Fehler mehr gemeldet.
Ist das die richtige ID, oder muss ich etwas Anderes machen?

Gruß und DANKE

PS: Wage mich jetzt an die Anpassung an meine Zimmeraufteilung…

Fürchte ich habe die Anleitung nicht zu 100% verstanden gehabt.

Die 12012 ist die ID vom SATAE des HM Fenstersensor (Boolean).

Habe jetzt ID 25001 ERROR des HM Fenstersensors (integer).
Damit bekomme ich keine Fehler mehr gemeldet.
Ist das die richtige ID, oder muss ich etwas Anderes machen?

Gruß und DANKE

PS: Wage mich jetzt an die Anpassung an meine Zimmeraufteilung…
Kann ich auch Raum Gruppen bilden?

Ich möchte sagen können, nur ich bin da und es soll mein Schlafzimmer, die Flure und die Küche geheizt werden.

Oder Alle sind da und es sollen alle Zimmer bis auf das Gästezimmer geheizt werden.

Wie kann ich das Umsetzten?

Du musst die STATE Variable nehmen. Hier der Screenshot von meinem Objektbaum an dieser Stelle. Dort ist STATE (vom ROTARY_HANDLE_SENSOR) eine Integer Variable. Wie sieht das bei Dir aus?

Raumgruppen gibt es eigentlich nicht. Vom Prinzip kannst Du jeder Heizvariable vorgeben, zu welchen Zeitslots Sie standardäßig heizen oder nicht heizen soll. So werden die Variablen dann dynamisch angelegt.

Später kannst Du im WebFront zu jeder Zeit die einzelnen Variablen togglen, also die Heizung manuell an und aus machen für einen bestimmten Zeitslot.

Eine Gruppe könntest Du Dir mit einem eigenen Script basteln, dass mehrere Variablen gleichzeitig setzt. Aber so richtig sehe ich den Sinn noch nicht. Für mehrere Personen, mehrere Räume und mehrere Zeitslots (also abc Fälle) etwas zu schreiben und es bedienbar zu halten, macht es echt kompliziert. Da geht es doch viel schneller, wenn Du nach Hause kommst, die 3 Räume mit den vielleicht 2 übrigen Zeitslots des Tages direkt anzuklicken. Kommt dann eine 2. Person nach Haus, klickt Sie sich einfach die restlichen Räume an.

Ich habe schon überlegt, eine „Gute Nacht“ Schalter einzubauen. Der macht für den heutigen Tag einfach alle Heizungs aus, wenn der letzte ins Bett geht.

Was meinst Du dazu?

Siehe Bild: Bei mir ist STATE eine Boolean Variable. Vermutlich weil ich keinen Dreh/Kipp Sensor, sondern einen „normalen“ Fenstersensor habe. Aber was nun?

Den gute Nacht Schalter finde ich für ein zweite Haus in dem wir IP Symcon schon haben ganz spannen. Generell sowiso, nur ich habs gerne im Bett warm :slight_smile:

Aber zu deiner Frage warum und wiso die Varianten:

Es handelt sich um ein ferienhaus, welchen 2 Trakte hat.

  1. Trackt für Gäste, derzeit nur ein HM Raumregler, der gesondert auf an- und abwesend geschaltet werden soll.

  2. Trackt ist sozusagen meine Wohnung,

Variante 1 -> nur ich (Küche, Flure, BAD, WC, mein Zimmer auf anwesend sein sollen) da bin.

Variante 2 -> noch ein Appartment vom Vermieter ( Appartment mit dessen BAD, gemeinsamme Flure, gemeinsamme Küche… auf anwesend)

Variante 3 -> alle Da, also auch noch Gästezimmer, weitere Schlafzimmer, alle Bäder / WC, Wohnzimmer und Esszimmer.

Dafür suche ich eine sinnvolle Lösung.

Ich habe die letzten Tag e viel mit deinen Script getestet, bin aber ehrlich gesagt nicht wirklich an der Gruppenlösung weitergekommen.

Freu mich riesig, wenn dir was dazu einfällt.

PS: Gute Nacht Schalter findet mein Vermieter auch TOP, grad gefragt.

Ändere Zeile 229 in

public function getWindowStatus ($objectID) {return GetValue($objectID);}

dann müsste die Warning weg sein.

Aber ich glaube, dass Du auch noch Zeilen darunter anpassen musst:

	// Fenster Stati-Funktionen fr HomeMatic
	public function getOpendWindowValue() {return 2;} // $FENSTER_OFFEN = 2;

	public function getTitedWindowValue() {return 1;} // $FENSTER_GEKIPPT = 1;

	public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0;

ansonsten werden deine Fenster nicht richtig erkannt. Wahrscheinlich müsste

	// Fenster Stati-Funktionen fr HomeMatic
	public function getOpendWindowValue() {return 1;} // $FENSTER_OFFEN = 1;

	public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0;

passen.
Wie heißt dein Fenster-Sensor genau?.

Für die nächste Version muss ich dann aufnehmen, dass man jedem Fenster sagen muss, ob es ein Dreh/Kipp oder Normaler-Sensor ist.

Ich glaube, wenn ich es richtig verstehe, möchtest Du gerne die verschiedenen Heizplan-Variablen nicht alle in einen Heizplan erstellen, sondern in zwei Heizplänen: „Eigene Wohnung“ und „Vermieter“, oder?

Jede Heizungs sollte also einer dieser beiden Gruppen zuordbar sein? Damit könnest Du im WebFront beide Heizpläne einzeln isoliert anzeigen.

Ich denke, dass ich erst nächsten Winter wieder nächsten Winter die Zeit finden werden, solche Änderungen in eine Revision 4 zu implementieren. Wenn es Dir den Aufwand wert ist, könntest Du jetzt im Frühjahr als Workaround mein Script einfach 2x installieren.

Einmal für Dich und einmal für den Vermieter. In der jeweiligen config trägst Du nur die jeweiligen Heizungen ein. Die Heizpläne kannst Du damit voneinander trennen.

Was meinst Du dazu?

So viele gibt es nicht :smiley:

HomeMatic HM-Sec-Sc Funk-Tür-/Fensterkontakt | ELV-Elektronik

Gruß
Bruno

Bei mir ist was ganz anderes inzwischen in zeile 229 und und in deiner originaldatei war auch was anderes an der stelle.

Was soll ersetzt werden?

Wo soll das genau rein?

HomeMatic HM-Sec-Sc Funk-Tür-/Fensterkontakt

Leider nicht ganz, ich möchte, wenn möglich sowas wie die Möglichkeit zu sagen nur ich bin da. Also nur mein sz, küche, bad, flure
oder aber nur vermiter ist da, er hat oberhalb ein appartment, nutzt aber neben seine appartment auch die gemeinsammen flure und die küche.
Als dritte varainate gibt es dann nich uns alle gemeinsamm an- oder abwesen. da sind dann noch weiter schlafzimmer mit an- oder aus zu schalten.

Unabhängig davon hat das Haus eine zweite Hälfte, diese wird an feriengäste vermietet und sollte unabhängig davon (mittels zweitem script, denke ich) auf anwesend und abwesend geschaltet werden können.

Ich werde mich mal daran versuchen :slight_smile:

Sorry, das ich erst jetzt antworten, irgendwie ist deine Antwort an mir vorrüber gegangen in „Neue Beiträge“ …

Alles in

INTERFACE_heizungskomponenten.ips.php

Hast Du Script schon zuende eingerichtet? Kannst Du die Heizung schon über den Heizplan regeln?

Eine Möglichkeit, zu sagen Du bist global da oder nicht da gibt es momentan ja nicht – weder für alle Heizungen, noch für einzelne Teile oder Gruppen. Du kannst für jede Heizung einen Standard für jeden Zeitslot vorgeben. Diese An- oder Abwesenheitsvariable kannst Du dann im nachhinein im WebFront ändern.

Wenn Du „Du bist Da klickst“, würde sich ja auch die Frage stellen, „nur für den aktuellen Zeitslot“ oder „für alle restlichen Zeitslots des Tages“. Und was ist z.B. mit der Heizung im Gästezimmer? Die soll bei mir zum Beispiel gar nicht an sein, wenn ich zuhause bin.

Bei mir gibt es eigentlich kein „ich bin zuhause“. Wenn ich zuhause bin, muss eigentlich immer nur mein Büro an sein. Wenn meine Frau noch zusätzlich da ist, noch die Küche und das Wohnzimmer … Das sind so viele verschiedene Möglichkeiten (mit jeweils den Zeitslots über den Tag), dass ich jeden Abend einfach die Variablen für den nächsten Tag stelle, wenn Sie vom Standard abweichen.

Eine Gloable An- und Abwesenheit (egal ob mit oder ohne Gruppen) macht zumindest für mich keinen Sinn, da sich meine Anwesenheit jeden Tag verändert.

Nur Du bist da bedeutet in meinen Augen dann, dass Du nur deine Variablen auf Anwesend klickst. Die anderen lässt Du unverändert.

Bringt Dich das weiter?

Meld Dich, wenn Du Fragen hast …

Sorry II,

ich hab dieses mal auch lange gebraucht bis ich dir antworten kann.

Habe das Script am Laufen. Aber noch 2 Probleme, die mir gerade auffallen.

  1. Wenn ich das creat Heizplan oneday laufen lasse wird ein Plan für gestern erstell. woran liegt das?

  2. Habe ich die Zeilen wie von dir beschrieben, denke ich, eingetragen. Dennoch erhalte ich die Fehlermeldung s. Bild.

Hier nochmal der Scipt von config.class.ips.php:

<?

/*
 ################################################################################
 # IP-Symcon Config-Datei                                                       #
 #                                                                              #
 # Beschreibung : config Datei zu IP-Symcon                                     #
 # Create date  : 2010-11-05                                                    #
 # Last change  : 2010-11-05                                                    #
 # Version      : 0.09                                                          #
 # Datei        : config.class.ips.php                                          #
 # Author       : ernie                                                         #
 # Copyright    : ernie                                                         #
 ################################################################################
 */

namespace de\IPSymcon\ernie;

if (!defined("INCLUDED_DEBUGGER")) {
	DEFINE("INCLUDED_DEBUGGER",TRUE);
	include("../debugger.class.ips.php");
	}

class Config implements EnvironmentDebugger {
	// cAOIDs ok == Object (Variable/Script/Kategorie) bereits in checkAllObjectIDs berücksichtigt
	private $version;
	private $debug;
	private $heizungssteuerung;
	private $ipsConfigObjectIDs;
	
	public function __construct($myVersion) {
		$this->timeBegin = microtime();
		$this->version = $myVersion;
		$this->debug = array();
		$this->debug['showHiddenThings']			= true;
		$this->debug['debugThisSession']			= false;
		$this->debug['showDebugMessageOnEnd']	= false;
		$this->debug['debugWithPRE']				= false;

		$this->debug['disableWarnings']			= false;
		$this->debug['disableOutput']				= false;

		if ($this->debug['disableWarnings']) {
			error_reporting(E_ERROR);
			// alle ohne NOTICE:
			// error_reporting(E_ALL & ~E_NOTICE);
		}

		$this->environmentDebugConfigObject = new EnvironmentDebugObject();

		$do = $this->environmentDebugConfigObject;
		// echo "<PRE>". $this->environmentDebugConfigObject . "</PRE><br>
";
		// $this->environmentDebugConfigObject->addDebugEnvironment('environmentName',	0,	PRE?,	show Categories?,showCount,	OnEnd,	uesedDebuggers);
		$do->addDebugEnvironment('config.class[getWunschTemperatur]',							0,	TRUE,	TRUE,	FALSE,	FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('config.class[checkObjectIDExists]',							0,	TRUE,	TRUE,	FALSE,	FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 1 / maxValue = 1

		$do->addDebugEnvironment('heizungssteuerung_createHeizplan.class[__construct]',	0,	TRUE,	TRUE,	FALSE,	FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('heizungssteuerung_createHeizplan.class[initialzing]',	6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9

		$do->addDebugEnvironment('heizungssteuerung_trigger.class[__construct]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[showActualHeizplan]',	6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[setActualTemperature]',6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[lookOpenWindows]',		6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[setRaumTemperatur]',	4,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 5 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[SOLL-IST-VERGLEICH]',	6,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 7 / maxValue = 9
		$do->addDebugEnvironment('heizungssteuerung_trigger.class[lookAllRooms]',			7,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 8 / maxValue = 9

		$do->addDebugEnvironment('HomeMaticKomponenten.class[__construct]',					0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponenten.class[getSollTemperatur]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponentenHeizenJaNein.class[__construct]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponentenHeizenJaNein.class[getSollTemperatur]',	0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('HomeMaticKomponentenHeizenJaNein.class[setHeizenJaNein]',		8,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 9 / maxValue = 9

		// ##################################################
		// ###
		// ### DEFINE Heizungssteuerung
		// ###
		$this->heizungssteuerung = array();

		// ### Definition, aus welchem Interface
		// ### das Heizungs-Komponenten erstellt werden soll?
		// ### Aktuell implementiert:
		// ###    - HomeMaticKomponenten
		// ###    - EinsWireWagoKombinationsKomponenten
		// ###    - HomeMaticKomponentenHeizenJaNein
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponenten";
		// ### Test-Szenario CHANGE CHANGE CHANGE 1/3
		// $this->heizungssteuerung['heizungsKomponenten'] = "EinsWireWagoKombinationsKomponenten";
		// $this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponentenHeizenJaNein";

		// ### Definition der createHeizplan Konstanten, u.a.
		// ###   - ObjectID des ChangeBoolean Scripts, dass im WebFront die Anwesend/Abwesend der Variablen tooglet
		// ###   - Konstanten für die CustomProfiles, die den An- und Abwesenheitsvariablen zugeweisen werden
		// ###   - Auswahl, ob die Heizplan Variablen (An- und Abwesenenheit) für das iFront
		// ###		- gekürzt werden sollen (ohne Bezeichner "Mittags / Abends)
		// ###		- das CustomProfile (~Switch oder b_Anwesend-Abwesend) für einen Toogle-Button hinterlegt bekommen
		// ###         - b_Anwesend-Abwesend: Die Variablen im WebFront sind grün und rot und haben den Bezeichner
		// ###           "Anwesend" und "Abwesend" im iFront muss man ins Untermenü wechseln, um Sie umzuschalten
		// ###         - ~Switch: Die Variablen im WebFront sind grün und rot und haben den Bezeichner
		// ###           "An" und "Aus" im iFront kann man diese per Toogle Button direkt umschalten
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['createHeizplanConstants'] = array();
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontChangeVariableScriptObjectID']	= 26590 /*[Heizung\Heizungssteuerung\Scripte\WebFrontChangeVariable]*/; // cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'] 				= "b_Anwesend_-Abwesend"; 	// cAOIDs ok
		// $this->heizungssteuerung['createHeizplanConstants']['WebFrontWunschTempeaturProfileName'] = "f_Raumtempperatur";     // wird nur manuell den Wunsch-Temperatur Variablen zugewiesen
		$this->heizungssteuerung['createHeizplanConstants']['iFrontVariableProfileName'] 				= "~Switch"; 					// cAOIDs ok
		$this->heizungssteuerung['createHeizplanConstants']['CreateShortHeizplanVariablen'] 			= TRUE;
		$this->heizungssteuerung['createHeizplanConstants']['CreateiFrontToogleButton'] 					= TRUE;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableBoolean'] 					= 0;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableInteger'] 					= 1;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableFloat'] 					= 2;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableString'] 					= 3;
		$this->heizungssteuerung['createHeizplanConstants']['IPSCreateVariableString'] 					= 3;

		// ### Definition der ObjectIDs der Kategorien, in denen der Heizplan
		// ### der einzelnen Tage erstellt werden soll
		// ### LAST CHANGE IN IN REVISION 1
		$this->heizungssteuerung['rootNodesHeizplan'] = array();
		// for testing:
		// $this->heizungssteuerung['rootNodesHeizplan'][0] = 39943 /*[Objekt #39943 existiert nicht]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][1] = 36401 /*[Heizung\Heizplan\01-Montag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][2] = 14859 /*[Heizung\Heizplan\02-Dienstag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][3] = 48837 /*[Heizung\Heizplan\03-Mittwoch]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][4] = 53040 /*[Heizung\Heizplan\04-Donnerstag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][5] = 53113 /*[Heizung\Heizplan\05-Freitag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][6] = 17223 /*[Heizung\Heizplan\06-Samstag]*/; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][7] = 37094 /*[Heizung\Heizplan\07-Sonntag]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs, an denen die Raum-Soll-Temperaturen gelesen werden können
		// ###    bei HomeMatic muss hier die SETPOINT Variable der Thermostate verlinkt werden
		// ###    bei 1-Wire in IPS selbst definierte Variablen
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['readRaumSollTemeratur'] = array();
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['readRaumSollTemeratur']['Bad EG'] 			= 28484 /*[EG\Bad\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Bad Volker']		= 23548 /*[2.OG\Bad Volker\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Constanze'] 		= 47237 /*[2.OG\Constanze\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Esszimmer']			= 20663 /*[EG\Esszimmer\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Flur 1.OG'] 		= 35128 /*[1. OG\Flur\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Flur EG'] 			= 34245 /*[EG\Flur\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Frank'] 		 	   = 10386 /*[1. OG\Frank\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer']  	= 28435 /*[1. OG\Gästezimmer\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Küche']  			= 37603 /*[EG\Küche\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Tayfun'] 			= 10996 /*[1. OG\Tayfun\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Volker'] 			= 20023 /*[2.OG\Volker\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['WC 1.OG'] 			= 23190 /*[1. OG\WC\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer']		= 31934 /*[EG\Wohnzimmer\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnhalle']			= 38664 /*[Neubau\Wohnhalle\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		$this->heizungssteuerung['readRaumSollTemeratur']['Flur/Garerobe/WC']= 55581 /*[Neubau\Flur/Garderobe/WC\Soll-Werte\SETPOINT]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		// ### ODER IPS-Variablen (zum speichern und lesen der Werte)
		// ### (diese müssen im IPS-Baum selbst angelegt werden)
		// ###    z.B. bei 1-wire Modulen
		// ###    z.B. bei HomeMaticHeizenJaNein
		// ### Test-Szenario CHANGE CHANGE CHANGE 2/3
		//$this->heizungssteuerung['readRaumSollTemeratur']['Bad EG'] 			= 54527 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Bad EG]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Bad Volker']		= 26347 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Bad Volker]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Constanze'] 		= 49546 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Constanze]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Esszimmer']			= 41177 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Esszimmer]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Flur 1.OG'] 		= 35961 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Flur 1.OG]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Flur EG'] 			= 27523 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Flur EG]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Frank'] 		 	   = 20720 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Frank]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer']  	= 21805 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Gästezimmer]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Küche']  			= 49207 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Küche]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Tayfun'] 			= 56575 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Tayfun]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Volker'] 			= 17349 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Volker]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['WC 1.OG'] 			= 55273 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\WC 1.OG]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer']		= 51441 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Wohnzimmer]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Wohnhalle']			= 40910 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Z Wohnhalle]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['readRaumSollTemeratur']['Flur/Garerobe/WC']= 44557 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Z Flur/Garederobe/WC]*/; // cAOIDs ok  //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		
		// ###
		// ### Definition der ObjectIDs an denen die Raum-Soll-Temperaturen geschrieben werden können
		// ### Eventuell sind diese gleich "Gelesenen", bei HomeMatic jedoch nicht ...
		// ### dort wird die Variable ausgelsen, jedoch ins Thermostat zurückgeschrieben
		// ### LAST CHANGE IN IN REVISION 3
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['writeRaumSollTemeratur'] = array();
		$this->heizungssteuerung['writeRaumSollTemeratur']['Bad EG'] 				= 32381 /*[EG\Bad\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Bad Volker']			= 47686 /*[2.OG\Bad Volker\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Constanze']			= 55883 /*[2.OG\Constanze\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Esszimmer']			= 23427 /*[EG\Esszimmer\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Flur 1.OG']			= 22236 /*[1. OG\Flur\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Flur EG']				= 31507 /*[EG\Flur\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Frank']		    		= 52908 /*[1. OG\Frank\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer']			= 49039 /*[1. OG\Gästezimmer\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Küche'] 				= 44296 /*[EG\Küche\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Tayfun']				= 11686 /*[1. OG\Tayfun\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Volker']				= 53871 /*[2.OG\Volker\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['WC 1.OG']       		= 13560 /*[1. OG\WC\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 	   	= 15757 /*[EG\Wohnzimmer\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnhalle'] 	      = 15081 /*[Neubau\Wohnhalle\Soll-Werte]*/; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Flur/Garderobe/WC']	= 19594 /*[Neubau\Flur/Garderobe/WC\Soll-Werte]*/; // cAOIDs ok ;

		
		// ### ODER IPS-Variablen (zum speichern und lesen der Werte)
		// ### (diese müssen im IPS-Baum selbst angelegt werden)
		// ###    z.B. bei 1-wire Modulen
		/*
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Bad'] 				= 54527 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Bad EG]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 20720 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Frank]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer'] 	= 21805 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Gästezimmer]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 17349 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Volker]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
		//$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 51441 /*[Heizung\Heizungssteuerung\heiz- Soll Temperaturen\Wohnzimmer]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Wohnzimmer]
		*/

		// ###
		// ### Definition der ObjectIDs, an denen die Raum-Ist-Temperaturen gelesen werden können
		// ### LAST CHANGE IN IN REVISION 2
		// ### Entweder direkte Thermostate
		// ###    bei HomeMatic
		$this->heizungssteuerung['readRaumIstTemeratur'] = array();
		$this->heizungssteuerung['readRaumIstTemeratur']['Bad EG'] 				= 30804 /*[EG\Bad\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Bad Volker']			= 14444 /*[2.OG\Bad Volker\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Constanze']			= 14604 /*[2.OG\Constanze\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Esszimmer']			= 50783 /*[EG\Esszimmer\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Flur 1.OG']			= 55428 /*[1. OG\Flur\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Flur EG']				= 43713 /*[EG\Flur\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Frank']				= 46744 /*[1. OG\Frank\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Gästezimmer']		= 11373 /*[1. OG\Gästezimmer\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Küche']				= 55260 /*[EG\Küche\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Tayfun']				= 42399 /*[1. OG\Tayfun\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Volker']				= 43081 /*[2.OG\Volker\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['WC 1.OG']       	= 53887 /*[1. OG\WC\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Wohnzimmer']    	= 22472 /*[EG\Wohnzimmer\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Wohnhalle'] 	      = 43886 /*[Neubau\Wohnhalle\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Flur/Garderobe/WC']= 50222 /*[Neubau\Flur/Garderobe/WC\Ist-Werte\TEMPERATURE]*/; // cAOIDs ok


		// ###
		// ### Definition der ObjectIDs, an denen die Heiz-Stati der Räume gelesen werden können
		// ### Diese ObjectIDs müssen nur definiert werden, wenn das Interface entweder
		// ### HomeMaticHeizenJaNein oder EinsWireWagoKombinationsKomponenten ist
		// ### LAST CHANGE IN IN REVISION 3
		$this->heizungssteuerung['heizStatiRaeume'] = array();
		$this->heizungssteuerung['heizStatiRaeume']['Bad EG'] 				= 37257 /*[Heizung\Heizungssteuerung\heiz - Stati\Bad EG]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Bad Volker']			= 37142 /*[Heizung\Heizungssteuerung\heiz - Stati\Bad Volker]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Constanze']				= 16669 /*[Heizung\Heizungssteuerung\heiz - Stati\Constanze]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Esszimmer']				= 19954 /*[Heizung\Heizungssteuerung\heiz - Stati\Esszimmer]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Flur 1.OG']				= 19367 /*[Heizung\Heizungssteuerung\heiz - Stati\Flur 1.OG]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Flur EG']				= 54771 /*[Heizung\Heizungssteuerung\heiz - Stati\Flur EG]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Frank']   				= 41762 /*[Heizung\Heizungssteuerung\heiz - Stati\Frank]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Gästezimmer']			= 48166 /*[Heizung\Heizungssteuerung\heiz - Stati\Gästezimmer]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Küche']   				= 40395 /*[Heizung\Heizungssteuerung\heiz - Stati\Küche]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Tayfun']	    			= 53131 /*[Heizung\Heizungssteuerung\heiz - Stati\Tayfun]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Volker']	   			= 13872 /*[Heizung\Heizungssteuerung\heiz - Stati\Volker]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['WC 1.OG']				= 43381 /*[Heizung\Heizungssteuerung\heiz - Stati\WC 1.OG]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Wohnzimmer']			= 41456 /*[Heizung\Heizungssteuerung\heiz - Stati\Wohnzimmer]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Wohnhalle']    		= 45797 /*[Heizung\Heizungssteuerung\heiz - Stati\Z Wohnhalle]*/; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Flur/Garderobe/WC'] 	= 42803 /*[Heizung\Heizungssteuerung\heiz - Stati\Z Flur/Garderobe/WC]*/; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs der Fenster-Kontakte
		// ### LAST CHANGE IN IN REVISION 2
		$this->heizungssteuerung['rootNodesFenster'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Bad EG'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Bad EG'][0] 				= 12012 /*[EG\Bad\Fenster\STATE]*/; // cAOIDs ok

    
		// ###
		// ### Definition der ObjectIDs der IPS-Variablen, aus denen
		// ### die An-/Abwesend Wunsch-Temperaturen ausgelesen werden soll
		// ### Dort sollten FLOAT Variablen erstellt werden
		// LAST CHANGE IN IN REVISION 2
		$this->heizungssteuerung['temperaturProfile'] = array();
		$this->heizungssteuerung['temperaturProfile']['Bad EG'] = array();
		$this->heizungssteuerung['temperaturProfile']['Bad EG']['Anwesend'] 			   	= 54657 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Bad EG - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Bad EG']['Abwesend'] 				   = 33492 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Bad EG - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Bad Volker'] = array();
		$this->heizungssteuerung['temperaturProfile']['Bad Volker']['Anwesend'] 			= 30746 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Bad Volker - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Bad Volker']['Abwesend'] 			= 37239 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Bad Volker - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Constanze'] = array();
		$this->heizungssteuerung['temperaturProfile']['Constanze']['Anwesend'] 				= 47111 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Constanze - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Constanze']['Abwesend'] 				= 30283 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Constanze - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Esszimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Esszimmer']['Anwesend'] 				= 14068 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Esszimmer - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Esszimmer']['Abwesend'] 				= 13689 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Esszimmer - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Flur 1.OG'] = array();
		$this->heizungssteuerung['temperaturProfile']['Flur 1.OG']['Anwesend'] 				= 49488 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Flur 1.OG - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Flur 1.OG']['Abwesend']			 	= 34659 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Flur 1.OG - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Flur EG'] = array();
		$this->heizungssteuerung['temperaturProfile']['Flur EG']['Anwesend'] 				= 18896 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Flur EG - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Flur EG']['Abwesend'] 				= 38083 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Flur EG - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Frank'] = array();
		$this->heizungssteuerung['temperaturProfile']['Frank']['Anwesend'] 					= 15482 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Frank - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Frank']['Abwesend'] 					= 58612 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Frank - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Gästezimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Gästezimmer']['Anwesend'] 			= 59560 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Gästezimmer - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Gästezimmer']['Abwesend']		 	= 15023 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Gästezimmer -Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Küche'] = array();
		$this->heizungssteuerung['temperaturProfile']['Küche']['Anwesend'] 					= 16463 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Küche - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Küche']['Abwesend'] 					= 22532 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Küche - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Tayfun'] = array();
		$this->heizungssteuerung['temperaturProfile']['Tayfun']['Anwesend'] 					= 24039 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Tayfun - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Tayfun']['Abwesend'] 					= 22969 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Tayfun - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Volker'] = array();
		$this->heizungssteuerung['temperaturProfile']['Volker']['Anwesend'] 					= 30450 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Volker - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Volker']['Abwesend']				 	= 45535 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Volker - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['WC 1.OG'] = array();
		$this->heizungssteuerung['temperaturProfile']['WC 1.OG']['Anwesend'] 				= 50313 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\WC 1.OG - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['WC 1.OG']['Abwesend']				 	= 32329 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\WC 1.OG - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Anwesend'] 			= 38785 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Wohnzimmer - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Abwesend'] 			= 37050 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Wohnzimmer - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnhalle'] = array();
		$this->heizungssteuerung['temperaturProfile']['Wohnhalle']['Anwesend']			 	= 55470 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Z Wohnhalle - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnhalle']['Abwesend'] 				= 59449 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Z Wohnhalle - Abwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Flur/Garderobe/WC'] = array();
		$this->heizungssteuerung['temperaturProfile']['Flur/Garderobe/WC']['Anwesend'] 	= 31314 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Z Flur/Garderobe/WC - Anwesend]*/; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Flur/Garderobe/WC']['Abwesend'] 	= 28596 /*[Heizung\Heizplan\00-Wunsch-Temperaturen\Z Flur/Garderobe/WC - Abwesend]*/; // cAOIDs ok

		// ###
		// ### Definition der Zeit- und Standard-Anwesenheits-Profilen
		// ### inkl. der Aufteilung nach Wochentag / Wochenende
		// ### LAST CHANGE IN IN REVISION 1
		$this->heizungssteuerung['zeitProfile'] = array();
		$this->heizungssteuerung['standardZuordnung'] = array();

			// ### Raum Definitionen - Bad EG
		$this->heizungssteuerung['zeitProfile']['Bad EG'] = array();
		$this->heizungssteuerung['zeitProfile']['Bad EG'][0] = "06:00 bis 08:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Bad EG'][1] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Bad EG'][2] = "10:00 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Bad EG'][3] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Bad EG'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Werktags']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Werktags']["08:00 bis 10:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Werktags']["10:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Wochenende']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Wochenende']["10:00 bis 18:30 Uhr - Tagsüber"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad EG']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 		= TRUE;

			// ### Raum Definitionen - Bad Volker
		$this->heizungssteuerung['zeitProfile']['Bad Volker'] = array();
		$this->heizungssteuerung['zeitProfile']['Bad Volker'][0] = "06:00 bis 08:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Bad Volker'][1] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Bad Volker'][2] = "10:00 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Bad Volker'][3] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Bad Volker'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Werktags']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Werktags']["08:00 bis 10:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Werktags']["10:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Wochenende']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Wochenende']["10:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad Volker']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 		= TRUE;


		// ### Raum Definitionen - Constanze
		$this->heizungssteuerung['zeitProfile']['Constanze'] = array();
		$this->heizungssteuerung['zeitProfile']['Constanze'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Constanze'] = array();
		$this->heizungssteuerung['standardZuordnung']['Constanze']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Constanze']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Constanze']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Constanze']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;

		// ### Raum Definitionen - Esszimmer
		$this->heizungssteuerung['zeitProfile']['Esszimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Esszimmer'][0] = "07:00 bis 10:30 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Esszimmer'][1] = "10:30 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Esszimmer'][2] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Esszimmer'] = array();
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Werktags']["07:00 bis 10:30 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Werktags']["30:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Wochenende']["07:00 bis 10:30 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Wochenende']["10:30 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Esszimmer']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 		= TRUE;

      // ### Raum Definitionen - Flur 1.OG
		$this->heizungssteuerung['zeitProfile']['Flur 1.OG'] = array();
		$this->heizungssteuerung['zeitProfile']['Flur 1.OG'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Flur 1.OG'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur 1.OG']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur 1.OG']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur 1.OG']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Flur 1.OG']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = TRUE;

		// ### Raum Definitionen - Flur EG
		$this->heizungssteuerung['zeitProfile']['Flur EG'] = array();
		$this->heizungssteuerung['zeitProfile']['Flur EG'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Flur EG'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur EG']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur EG']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur EG']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Flur EG']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = TRUE;
		
		// ### Raum Definitionen - Frank
		$this->heizungssteuerung['zeitProfile']['Frank'] = array();
		$this->heizungssteuerung['zeitProfile']['Frank'][0] = "06:00 bis 08:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Frank'][1] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Frank'][2] = "10:00 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Frank'][3] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Frank'] = array();
		$this->heizungssteuerung['standardZuordnung']['Frank']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Frank']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Frank']['Werktags']["06:00 bis 08:00 Uhr - Frühmorgens"]	 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Werktags']["08:00 bis 10:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Werktags']["10:00 bis 18:30 Uhr - Tagsüber"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Wochenende']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Wochenende']["10:00 bis 18:30 Uhr - Tagsüber"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Frank']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 			= TRUE;

		// ### Raum Definitionen - Gästezimmer
		$this->heizungssteuerung['zeitProfile']['Gästezimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Gästezimmer'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer'] = array();
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Gästezimmer']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		
		// ### Raum Definitionen - Küche
		$this->heizungssteuerung['zeitProfile']['Küche'] = array();
		$this->heizungssteuerung['zeitProfile']['Küche'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Küche'] = array();
		$this->heizungssteuerung['standardZuordnung']['Küche']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Küche']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Küche']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Küche']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = TRUE;

      // ### Raum Definitionen - Tayfun
		$this->heizungssteuerung['zeitProfile']['Tayfun'] = array();
		$this->heizungssteuerung['zeitProfile']['Tayfun'][0] = "06:00 bis 08:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Tayfun'][1] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Tayfun'][2] = "10:00 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Tayfun'][3] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Tayfun'] = array();
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Werktags']["06:00 bis 08:00 Uhr - Frühmorgens"]	 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Werktags']["08:00 bis 10:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Werktags']["10:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Wochenende']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Wochenende']["10:00 bis 18:30 Uhr - Tagsüber"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Tayfun']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 		= TRUE;

		// ### Raum Definitionen - Volker
		$this->heizungssteuerung['zeitProfile']['Volker'] = array();
		$this->heizungssteuerung['zeitProfile']['Volker'][0] = "06:00 bis 08:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Volker'][1] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Volker'][2] = "10:00 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Volker'][3] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Volker'] = array();
		$this->heizungssteuerung['standardZuordnung']['Volker']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Volker']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Volker']['Werktags']["06:00 bis 08:00 Uhr - Frühmorgens"]	 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Werktags']["08:00 bis 10:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Werktags']["10:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Wochenende']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Wochenende']["10:00 bis 18:30 Uhr - Tagsüber"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Volker']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 		= TRUE;


		// ### Raum Definitionen - Wohnzimmer
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][0] = "06:00 bis 08:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][1] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][2] = "10:00 bis 18:30 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][3] = "18:30 bis 23:59 Uhr - Abends";
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["06:00 bis 08:00 Uhr - Frühmorgens"]	 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["08:00 bis 10:00 Uhr - Morgens"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["10:00 bis 18:30 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["18:30 bis 23:59 Uhr - Abends"] 			= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["06:00 bis 08:00 Uhr - Frühmorgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["10:00 bis 18:30 Uhr - Tagsüber"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["18:30 bis 23:59 Uhr - Abends"] 		= TRUE;
		
		
				// ### Raum Definitionen - NB Wohnhalle
		$this->heizungssteuerung['zeitProfile']['Wohnhalle'] = array();
		$this->heizungssteuerung['zeitProfile']['Wohnhalle'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Wohnhalle'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnhalle']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnhalle']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Wohnhalle']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnhalle']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = TRUE;
		
		
				// ### Raum Definitionen - NB Flur/Garderobe/WC
		$this->heizungssteuerung['zeitProfile']['Flur/Garderobe/WC'] = array();
		$this->heizungssteuerung['zeitProfile']['Flur/Garderobe/WC'][0] = "00:01 bis 23:59 Uhr - Einheitlich";
		$this->heizungssteuerung['standardZuordnung']['Flur/Garderobe/WC'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur/Garderobe/WC']['Werktags'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur/Garderobe/WC']['Wochenende'] = array();
		$this->heizungssteuerung['standardZuordnung']['Flur/Garderobe/WC']['Werktags']["00:01 bis 23:59 Uhr - Einheitlich"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Flur/Garderobe/WC']['Wochenende']["00:01 bis 23:59 Uhr - Einheitlich"] = TRUE;


		// ############################################################################################
		// ###
		// ### Raum-Steuerungstechniken definieren:
		// ###
		// ### KEINE Erweiterte Raum-Steuerungstechnik
		// ###    Das Raum-Thermostat wird einfach auf die Wunsch-Temperatur gesetzt
		// ###
		// ### SIMPLE-DELTA Raumsteuerungstechnik
		// ###    Da einige Systeme den Raum höher heizen als gewünscht, kann
		// ###    hier ein DELTA-Wert angegeben werden, der auf von allen
		// ###    Wunsch-Temperaturen abgezogen wird
		// ###
		// ### SOLL-IST-VERGLEICH Raumsteuerungstechnik
		// ###    Sollte das Thermostat nur Heizen Ja/Nein unterstützen
		// ###    oder die Thermostatssteuerung zu schlecht sein, kann mit
		// ###    dieser Steuerungstechnik die Soll Temperatur permanent mit
		// ###    der Ist-Temperatur verglichen und angepasst werden
		// ###    Solange die Wunsch-Temperatur plus die Delta-Temperatur im
		// ###    Raum noch nicht erreicht ist, wird diese als Soll-Temperatur gesetzt
		// ###    Wenn diese Temperatur erreicht ist, wird die Soll-Temperatur auf die
		// ###    Wunsch-Temperatur minus die Delta-Temperatur gesetzt.
		// ###    Dies gilt so lange, bis die Ist-Temperatur diese neue
		// ###    Soll-Temperatur unterschreitet
		// ###
		// ###    Eventuelle DELTA-Werte aus SIMPLE-DELTA werden auch hier beachtet
		// ###
		// ### ÜBERSCHWAPPT-DELTA Raumstuéuerungstechik (aktuell noch NICHT implementiert)
		// ###    Hier der Raum erst auf die Wunsch-Temperatur minus den jeweiligen Delta Wert
		// ###    hochheizt. Dann wird die tatsächliche Wunsch-Temperatur gesetzt.
		// ###    Damit soll verhindert werden, dass die Raumtemperatur "überschwappt" bevor sich die
		// ###    Stellantriebe bei der Wunsch-Temperatur schließen
		// ###
		// ###    Eventuelle DELTA-Werte aus SIMPLE-DELTA werden auch hier beachtet

		// Welche Technik soll für welchen Raum benutzt werden?
		// LAST CHANGE IN REVISION 3
		$this->heizungssteuerung['raumSteuerungsTechnik'] = array();
		$this->heizungssteuerung['raumSteuerungsTechnik']['Bad EG'] 			= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Bad Volker'] 		= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Constanze'] 		= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Esszimmer'] 		= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Flur 1.OG']			= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Flur EG'] 			= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Frank'] 				= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Gästezimmer'] 		= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Küche'] 				= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Tayfun']				= "KEINE";
      $this->heizungssteuerung['raumSteuerungsTechnik']['Volker'] 			= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Wohnzimmer'] 		= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Wohnhalle'] 		= "KEINE";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Flur/Garderobe/WC']	= "KEINE";

		
		// ### Test-Szenario CHANGE CHANGE CHANGE 3/3
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Bad EG'] 			= "SOLL-IST-VERGLEICH";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Bad Volker'] 		= "SOLL-IST-VERGLEICH";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Constanze'] 		= "SOLL-IST-VERGLEICH";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Esszimmer'] 		= "SOLL-IST-VERGLEICH";
		//$this->heizungssteuerung['raumSteuerungsTechnik']['Flur 1.OG']			= "SOLL-IST-VERGLEICH";

		// Delta Werte, die beim "Hochheizen" eines Raumes vorerst von der Wunsch-Temperatur
		// abgezogen werden, bis die Wunsch-Temperatur minus Delta erreicht wird

		// SIMPLE-DELTA Werte definieren
		// Delta Werte, die für die Soll-Temperatur des Raumes abgezogen wird
		// LAST CHANGE IN REVISION 2
		$this->heizungssteuerung['simpleDeltaTemperatur'] = array();
		$this->heizungssteuerung['simpleDeltaTemperatur']['Bad EG'] 			=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Bad Volker'] 		=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Constanze'] 		=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Esszimmer']			=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Flur 1.OG']		 	=  0.5;

		// ÜBERSCHWAPP-DELTA Raum-Steuerungs-Definitionen
		/*
	   // TODO: in config verschieben?
	   // Überschwappt-Abrechnungs-Delta
		// ist die Abrechnungs-Wert in %,
		// bei der der Raum auf die eigentliche Wunsch-Temperatur angehoben wird
	   // Beispiele:
	   //    - Wunsch-Temperatur = 18°
	   //    - DeltaWert: 2° ==> Anheiz-Temperatur == 16° (18 - 2)
	   //
	   // 0    bedeutet, dass bei einer IST-Temperatur von 18,0° (18° - 0,0° /  0% von 2°)
		//      die SOLL-Temperatur von 16° Anheizen auf 18° angehoben wird
		// 0.25 bedeutet, dass bei einer IST-Temperatur von 17,5° (18° - 0,5° / 25% von 2°)
		//      die SOLL-Temperatur von 16° Anheizen auf 18° angehoben wird
	   // 1    bedeutet, dass bei einer IST-Temperatur von 16,0° (18° - 2,0° / 100% von 2°)
		//      die SOLL-Temperatur von 16° Anheizen auf 18° angehoben wird
		$ueberschwapptDelta = 0.25;
		==> für jeden Raum einzeln
		*/

		// ###
		// ### END DEFINE Heizungssteuerung
		// ###
		// ##############################################################

		// define other things
		$this->diverses = array();
		$this->diverses['newLine'] 					= "<br>
";
		$this->diverses['newDebugLine'] 			= "
";
		$this->diverses['HTMLDebugPlaceHolder'] 	= "   ";

		$this->diverses['color[black]'] 		= "#000000";
		$this->diverses['color[green]']		= "#009900";
		$this->diverses['color[red]'] 		= "#FF0000";
		$this->diverses['color[winered]']	= "#990000";
		$this->diverses['color[yellow]']		= "#FFFFCC";
	}

	public function getVersion() {
		return $this->version;
	}



	public function getCreateHeizplanConfigConstantsArray() {
		return $this->heizungssteuerung['createHeizplanConstants'];
	}

	public function getHeizungsKomponenten() {
		return $this->heizungssteuerung['heizungsKomponenten'];
	}

	public function getWindowRootNodeForRoom($roomName) {
	   // returns Array, falls Fenster für den Raum existieren
	   // returns -1, falls keine Fenster existieren
		if (isset($this->heizungssteuerung['rootNodesFenster'][$roomName])) {
			return $this->heizungssteuerung['rootNodesFenster'][$roomName];
		}
		else {
		   return -1;
		}
	}
	
	public function getRootNodeForDay($dayNumber) {
	   // 1 = Montag; 7 = Sonntag
		return $this->heizungssteuerung['rootNodesHeizplan'][$dayNumber];
	}

	public function getObjectIDRaumHeizStatus($raumName) {
		return $this->heizungssteuerung['heizStatiRaeume'][$raumName];
	}

	public function getReadRaumSollTemperaturObjectID($raumName) {
		return $this->heizungssteuerung['readRaumSollTemeratur'][$raumName];
	}

	public function getRaumIstTemperatur($raumName) {
		return GetValueFloat($this->heizungssteuerung['readRaumIstTemeratur'][$raumName]);
	}

	public function getRaumSteuerungsTechnik($raumName) {
		return $this->heizungssteuerung['raumSteuerungsTechnik'][$raumName];
	}

	public function getSimpleDeltaTemperaturRaum($raumName) {
		return $this->heizungssteuerung['simpleDeltaTemperatur'][$raumName];
	}

	public function getWriteRaumSollTemperaturObjectID($raumName) {
		return $this->heizungssteuerung['writeRaumSollTemeratur'][$raumName];
	}

	public function getWunschTemperatur($raumName,$anwesenheit) {
	   $anwesenheitString = "";
		if ($anwesenheit) {$anwesenheitString = "Anwesend";}
		else {$anwesenheitString = "Abwesend";}
		$this->showEnvironmentDebugMessage('call getWunschTemperatur('. $raumName .','. $anwesenheitString .')' ,"config.class[getWunschTemperatur]",1);
		$result = GetValueFloat($this->heizungssteuerung['temperaturProfile'][$raumName][$anwesenheitString]);
		$this->showEnvironmentDebugMessage('   $result == '. $result ,"config.class[getWunschTemperatur]",1);
		return $result;
	}

	public function getZeitProfile() {
		return $this->heizungssteuerung['zeitProfile'];
	}

	public function getTemperaturProfile() {
		return $this->heizungssteuerung['temperaturProfile'];
	}

	public function getStandardZuordnung() {
		return $this->heizungssteuerung['standardZuordnung'];
	}

	public function getInitialAnwesendValue($raumName,$zeit,$actualWeekDay) {
		// $this->showEnvironmentDebugMessage('call getInitialAnwesendValue('. $raumName .','. $anwesenheit .')' ,"config.class[getWunschTemperatur]",1);
		// $this->configObject->showEnvironmentDebugMessage('   $result == '. $result ,"homeMaticKomponenten.class[getSollTemperatur]",1);
		if ($actualWeekDay <= 5) {
		   return $this->heizungssteuerung['standardZuordnung'][$raumName]['Werktags'][$zeit];
	   }
		else {
		   return $this->heizungssteuerung['standardZuordnung'][$raumName]['Wochenende'][$zeit];
		}
	}

	 public function checkAllObjectIDs () {
	 	// Alle ObjectIDs für IPS Variablen durchgehen, ob dort auch Variablen existieren?
	 	$this->checkObjectIDExists("script",$this->heizungssteuerung['createHeizplanConstants']['WebFrontChangeVariableScriptObjectID'],'$this->heizungssteuerung["createHeizplanConstants"]["WebFrontChangeVariableScriptObjectID"]');
	 	//$this->checkObjectIDExists("variableProfile",$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'],'$this->heizungssteuerung["createHeizplanConstants"]["WebFrontVariableProfileName"]');
	 	$this->checkObjectIDExists("variableProfile",$this->heizungssteuerung['createHeizplanConstants']['iFrontVariableProfileName'],'$this->heizungssteuerung["createHeizplanConstants"]["iFrontVariableProfileName"]');
	 	foreach ($this->heizungssteuerung['rootNodesHeizplan'] as $key => $value) {$this->checkObjectIDExists("category",$value,'$this->heizungssteuerung["rootNodesHeizplan"]['. $key ."]");}
	 	foreach ($this->heizungssteuerung['readRaumSollTemeratur'] as $key => $value) {$this->checkObjectIDExists("variable",$value,'$this->heizungssteuerung["readRaumSollTemeratur"]['. $key ."]");}
		// Wird die Raum-Temperatur auf ein Objeckt oder eine IPS Variable geschrieben (je nach Interface)?
		$actualObjectType = "";
		if ($this->getHeizungsKomponenten() == "HomeMaticKomponenten" ) {$actualObjectType = "object";}
		if ($this->getHeizungsKomponenten() == "HomeMaticKomponentenHeizenJaNein") {$actualObjectType = "object";}
		if ($this->getHeizungsKomponenten() == "EinsWireWagoKombinationsKomponenten" ) {$actualObjectType = "variable";}
		foreach ($this->heizungssteuerung['writeRaumSollTemeratur'] as $key => $value) {$this->checkObjectIDExists($actualObjectType,$value,'$this->heizungssteuerung["writeRaumSollTemeratur"]['. $key ."]");}
		$actualObjectType = "";
		foreach ($this->heizungssteuerung['readRaumIstTemeratur'] as $key => $value) {$this->checkObjectIDExists("variable",$value,'$this->heizungssteuerung["readRaumIstTemeratur"]['. $key ."]");}

		//$this->heizungssteuerung['heizStatiRaeume'] nur checken, wenn das Interface HomeMaticHeizenJaNein oder EinsWireWago ist
		//für HomeMatic werden die Variablen nicht benötigt
		if ($this->heizungssteuerung['heizungsKomponenten'] == "EinsWireWagoKombinationsKomponenten"
			|| $this->heizungssteuerung['heizungsKomponenten'] == "HomeMaticKomponentenHeizenJaNein") {

		$this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponenten";
			foreach ($this->heizungssteuerung['heizStatiRaeume'] as $key => $value) {$this->checkObjectIDExists("variable",$value,'$this->heizungssteuerung["heizStatiRaeume"]['. $key ."]");}
			}

		foreach ($this->heizungssteuerung['rootNodesFenster'] as $key => $value) {
		foreach ($this->heizungssteuerung['rootNodesFenster'][$key] as $key1 => $value1) {
		$this->checkObjectIDExists("variable",$value1,'$this->heizungssteuerung["rootNodesFenster"]['. $key ."][". $key1 ."]");
				}
			}
		foreach ($this->heizungssteuerung['temperaturProfile'] as $key => $value) {
			foreach ($this->heizungssteuerung['temperaturProfile'][$key] as $key1 => $value1) {
				$this->checkObjectIDExists("variable",$value1,'$this->heizungssteuerung["temperaturProfile"]['. $key ."][". $key1 ."]");
				}
			}
	 }
	 
	public function checkObjectIDExists($objectType,$objectID,$objectName) {

		$this->showEnvironmentDebugMessage('check existens of Variable Number '. $objectID .' ('. $objectType .' / '. $objectName .')' ,"config.class[checkObjectIDExists]",1);

	   $objectExists = FALSE;
		if ($objectType == "variable") {$objectExists = IPS_VariableExists($objectID);}
		if ($objectType == "script") {$objectExists = IPS_ScriptExists($objectID);}
		if ($objectType == "category") {$objectExists = IPS_CategoryExists($objectID);}
		if ($objectType == "variableProfile") {$objectExists = IPS_VariableProfileExists($objectID);}
		if ($objectType == "object") {$objectExists = IPS_ObjectExists($objectID);}

      if (!$objectExists) {
			if ($objectType == "") {
				$this->showEnvironmentDebugMessage("FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " besitzt KEINEN Type ==> Abbruch des Scripts (". $objectName .")" ,"config.class[checkObjectIDExists]",1);
				IPS_LogMessage("config.class","FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " besitzt KEINEN Type 
==> Abbruch des Scripts (". $objectName .")");
				}
			else {
				$this->showEnvironmentDebugMessage("FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " existiert NICHT ==> Abbruch des Scripts (". $objectType ." / ". $objectName .")" ,"config.class[checkObjectIDExists]",1);
				IPS_LogMessage("config.class","FEHLER: Das in der config-Datei definierte Object mit der Nummer ". $objectID . " existiert NICHT 
==> Abbruch des Scripts (". $objectType ." / ". $objectName .")");
				}
			die(-1);
			}
		return 1;
		}

	public function showEnvironmentDebugMessage ($message, $debugCategorie, $debugCount) {
		// delegate call
		$this->environmentDebugConfigObject->showEnvironmentDebugMessage($message, $debugCategorie, $debugCount);
	}

	 public function showDebugMessage ($message) {
	 // Dummy Methode, da tatsaechliche Ausgaben ueber showEnvironmentDebugMessage ausgegeben werden sollten
	 // TODO: EXCEPTION werfen
	 }


}

//Fügen Sie hier ihren Skriptquellcode ein

?>

Die interfaces.heizungskomponenten sieht so aus:

<?

namespace de\IPSymcon\ernie;

/**********************************************
 ***
 *** INTERFACE Heizungskomponenten
 ***
 ***/
interface HeizungsKomponenten {
	// Heizungs Funktionen
	public function __construct($varConfigObject);
	public function __toString();
	public function getSollTemperatur ($raumName);
	public function setSollTemperatur ($raumName,$sollTemperatur,$grund);
	public function setHeizenJaNein ($raumName,$heizenJaNein,$sollTemperatur,$grund);
	public function getWindowStatus ($objectID);
	
	// Fenster Stati-Funktionen
	public function getOpendWindowValue();
	public function getTitedWindowValue();
	public function getClosedWindowValue();
	
	// implementierte Heizungssteuerungen
	public function isControlImplemented($controlName);
}

/***************************************************************
 ***
 *** STANDARD IMPLEMENTATION OF INTERFACE Heizungskomponenten
 ***
 ***/
class StandardHeizungsKomponenten implements HeizungsKomponenten {
	protected $configObject;
	protected $implementedControls;

	// Heizungs Funktionen
	public function __construct($varConfigObject) {}

	public function getSollTemperatur ($raumName) {}
	public function setSollTemperatur ($raumName,$sollTemperatur,$grund) {}
	public function setHeizenJaNein ($raumName,$heizenJaNein,$sollTemperatur,$grund){}
	public function getWindowStatus ($objectID) {}

	// Fenster Stati-Funktionen
	public function getOpendWindowValue() {}
	public function getTitedWindowValue() {}
	public function getClosedWindowValue() {}

	// implementierte Heizungssteuerungen
	public function isControlImplemented($controlName) {
		// echo '$this->implementedControls["SIMPLE-DELTA"] == ' . $this->implementedControls['SIMPLE-DELTA'] . "
";
		// echo get_class($this) ."
";
		return $this->implementedControls[$controlName];
		}

	public function __toString() {return get_class($this);}

	}

/*******************************************************
 ***
 *** IMPLEMENTATIONS OF INTERFACE Heizungskomponenten
 ***
 ***/
class HomeMaticKomponenten extends StandardHeizungsKomponenten {
	public function __construct($varConfigObject) {
		$this->configObject = $varConfigObject;
		
		$this->implementedControls = array();
		$this->implementedControls['KEINE'] 					= TRUE;
		$this->implementedControls['SIMPLE-DELTA'] 			= TRUE;
		$this->implementedControls['SOLL-IST-VERGLEICH'] 	= FALSE;
		$this->implementedControls['ÜBERSCHWAPPT-DELTA'] 	= FALSE;
		// echo 'construct: $this->implementedControls["SIMPLE-DELTA"] == ' . $this->implementedControls['SIMPLE-DELTA'] . "
";
		$this->configObject->showEnvironmentDebugMessage("Object HomeMaticKomponenten erstellt" ,"HomeMaticKomponenten.class[__construct]",1);
	}

	public function getSollTemperatur ($raumName) {
		$this->configObject->showEnvironmentDebugMessage('call getSollTemperatur("'. $raumName.'")' ,"HomeMaticKomponenten.class[getSollTemperatur]",1);
	   $setPointID = $this->configObject->getReadRaumSollTemperaturObjectID($raumName);
		$this->configObject->showEnvironmentDebugMessage('   $setPointID == '. $setPointID ,"HomeMaticKomponenten.class[getSollTemperatur]",1);
		$result = GetValueFloat($setPointID);
		$this->configObject->showEnvironmentDebugMessage('   $result == '. $result ,"HomeMaticKomponenten.class[getSollTemperatur]",1);
		return $result ;
	}

	public function setSollTemperatur ($raumName,$wunschTemperatur,$grund) {
	   $setPointID = $this->configObject->getWriteRaumSollTemperaturObjectID($raumName);
		$result = HM_WriteValueFloat($setPointID, "SETPOINT", $wunschTemperatur);
		if ($result) {
		   IPS_LogMessage("HomeMaticKomponenten.class","Temperatur für Heizkörper ". $raumName ." auf " . $wunschTemperatur . "° gesetzt; Grund: ". $grund);
		   }
		else {
		   IPS_LogMessage("HomeMaticKomponenten.class","MISSLUNGENER Versuch, Temperatur für Heizkörper ". $raumName ." auf " . $wunschTemperatur . "° zu setzen");
		}
		return $result;
	}

	public function getWindowStatus ($objectID) {return GetValueInteger($objectID);}

	// Fenster Stati-Funktionen für HomeMatic
	public function getOpendWindowValue() {return 2;} // $FENSTER_OFFEN = 2;

	public function getTitedWindowValue() {return 1;} // $FENSTER_GEKIPPT = 1;

	public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0;
}

/********************************************************
 ***
 *** IMPLEMENTATIONS OF INTERFACE Heizungskomponenten
 ***
 ***/
class EinsWireWagoKombinationsKomponenten extends StandardHeizungsKomponenten {
	public function __construct($varConfigObject) {
		$this->configObject = $varConfigObject;

		$this->implementedControls['KEINE'] 					= FALSE;
		$this->implementedControls['SIMPLE-DELTA'] 			= FALSE;
		$this->implementedControls['SOLL-IST-VERGLEICH'] 	= TRUE;
		$this->implementedControls['ÜBERSCHWAPPT-DELTA'] 	= FALSE;
		$this->configObject->showEnvironmentDebugMessage("Object EinsWireWagoKomponenten erstellt" ,"EinsWireWagoKombinationsKomponenten.class[__construct]",1);
	}

	public function getSollTemperatur ($raumName) {
		$this->configObject->showEnvironmentDebugMessage('call getSollTemperatur("'. $raumName.'")' ,"EinsWireWagoKombinationsKomponenten.class[getSollTemperatur]",1);
	   $setPointID = $this->configObject->getReadRaumSollTemperaturObjectID($raumName);
		$this->configObject->showEnvironmentDebugMessage('   $setPointID == '. $setPointID ,"EinsWireWagoKombinationsKomponenten.class[getSollTemperatur]",1);
		$result = GetValueFloat($setPointID);
		$this->configObject->showEnvironmentDebugMessage('   $result == '. $result ,"EinsWireWagoKombinationsKomponenten.class[getSollTemperatur]",1);
		return $result ;
	}

	public function setHeizenJaNein ($raumName,$heizenJaNein,$sollTemperatur,$grund){
	   $antriebsID = $this->configObject->getWriteRaumSollTemperaturObjectID($raumName);

		$heizenJaNeinString = "ABKÜHLEN";
		if ($heizenJaNein) {
		   $heizenJaNeinString = "HEIZEN";
		   }

	   // 1.) Stellabtrieb setzen
		$result = SetValueBoolean($antriebsID, $heizenJaNein);
	   IPS_LogMessage("EinsWireWagoKombinationsKomponenten.class","Temperatur für Heizkörper ". $raumName ." auf ". $heizenJaNeinString." gesetzt; Grund: ". $grund);

		// 2.) SOLL-Temperatur setzen
		SetValueFloat($sollTemperaturObjectID,$sollTemperatur);

		// 3.) Raum-Heizstatus-Variable Heizen/Abkuehlen setzen
		$objectIDRaumHeizStatus = $this->configObject->getObjectIDRaumHeizStatus($raumName);
		SetValueBoolean($objectIDRaumHeizStatus,$heizenJaNein);

		return 0;
	}

	public function getWindowStatus ($objectID) {return GetValueInteger($objectID);}

	// Fenster Stati-Funktionen für 1-Wire bzw. Wago
	public function getOpendWindowValue() {return 2;} // $FENSTER_OFFEN = 2;

	public function getTitedWindowValue() {return 1;} // $FENSTER_GEKIPPT = 1;

	public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0;
}

/******************************************************
 ***
 *** IMPLEMENTATIONS OF INTERFACE Heizungskomponenten
 ***
 ***/
class HomeMaticKomponentenHeizenJaNein extends StandardHeizungsKomponenten {
	public function __construct($varConfigObject) {
		$this->configObject = $varConfigObject;

		$this->implementedControls = array();
		$this->implementedControls['KEINE'] 					= FALSE;
		$this->implementedControls['SIMPLE-DELTA'] 			= FALSE;
		$this->implementedControls['SOLL-IST-VERGLEICH'] 	= TRUE;
		$this->implementedControls['ÜBERSCHWAPPT-DELTA'] 	= FALSE;
		// echo 'construct: $this->implementedControls["SIMPLE-DELTA"] == ' . $this->implementedControls['SIMPLE-DELTA'] . "
";
		$this->configObject->showEnvironmentDebugMessage("Object HomeMaticKomponenten erstellt" ,"HomeMaticKomponentenHeizenJaNein.class[__construct]",1);
	}

	public function getSollTemperatur ($raumName) {
		$this->configObject->showEnvironmentDebugMessage('call getSollTemperatur("'. $raumName.'")' ,"HomeMaticKomponentenHeizenJaNein.class[getSollTemperatur]",1);
	   $setPointID = $this->configObject->getReadRaumSollTemperaturObjectID($raumName);
		$this->configObject->showEnvironmentDebugMessage('   $setPointID == '. $setPointID ,"HomeMaticKomponentenHeizenJaNein.class[getSollTemperatur]",1);
		$result = GetValueFloat($setPointID);
		$this->configObject->showEnvironmentDebugMessage('   $result == '. $result ,"HomeMaticKomponentenHeizenJaNein.class[getSollTemperatur]",1);
		return $result ;
	}

	public function setHeizenJaNein ($raumName,$heizenJaNein,$sollTemperatur,$grund){
	// public function setSollTemperatur ($raumName,$wunschTemperatur,$grund) {
		// setPoint wird hier nur zum setzen der 6° bzw. 30° verwendet,
		// die ReadRaumTemperatur ist eigentliche SOLL-Temperatur
		//
	   $homeMaticSetPointObjectID = $this->configObject->getWriteRaumSollTemperaturObjectID($raumName);
	   $sollTemperaturObjectID = $this->configObject->getReadRaumSollTemperaturObjectID($raumName);

		$homeMaticSollTemperatur = 6;
		$heizenJaNeinString = "ABKÜHLEN";
		if ($heizenJaNein) {
		   $homeMaticSollTemperatur = 30;
		   $heizenJaNeinString = "HEIZEN";
		   }

		$this->configObject->showEnvironmentDebugMessage('$homeMaticSollTemperatur == '. $homeMaticSollTemperatur,"HomeMaticKomponentenHeizenJaNein.class[setHeizenJaNein]",9);

	   // 1.) HomeMatic auf 6° oder 30° setzen
		$result = HM_WriteValueFloat($homeMaticSetPointObjectID, "SETPOINT",$homeMaticSollTemperatur);
		if ($result) {
		   IPS_LogMessage("HomeMaticKomponentenHeizenJaNein.class","Temperatur für Heizkörper ". $raumName ." auf ". $heizenJaNeinString." gesetzt; Grund: ". $grund);
			// 2.) SOLL-Temperatur setzen
			SetValueFloat($sollTemperaturObjectID,$sollTemperatur);

			// 3.) Raum-Heizstatus-Variable Heizen/Abkuehlen setzen
			$objectIDRaumHeizStatus = $this->configObject->getObjectIDRaumHeizStatus($raumName);
			SetValueBoolean($objectIDRaumHeizStatus,$heizenJaNein);
			}
		else {
		   IPS_LogMessage("HomeMaticKomponentenHeizenJaNein.class","MISSLUNGENER Versuch, Temperatur für Heizkörper ". $raumName ." auf ". $heizenJaNeinString ." zu setzen");
		}

		return $result;
	}

	public function getWindowStatus ($objectID) {return GetValue($objectID);}

	// Fenster Stati-Funktionen für HomeMatic
    // Fenster Stati-Funktionen fr HomeMatic
    public function getOpendWindowValue() {return 1;} // $FENSTER_OFFEN = 1;

    public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0;
}

?>

Was ist noch falsch?

Gruß und danke für deine Geduld…

Hallo Ernie,

ich komme jetzt endlich mal dazu das Script einzubauen … allerdings hatte ich bereits die vorherige Revision vorbereitet und bin jetzt etwas verwirrt.

Es gibt bei mir jetzt die Kategorien:

Heiz - Soll Temperaturen
Heiz - Stati

und dann im Heizplan auch noch:

00-Wunsch-Temperaturen
00-Temperatur Profile

Da blicke ich jetzt nicht ganz durch, gehe aber mal davon aus das die beiden 00 Ordner dasselbe sind und der 00-Temperatur Profile weg kann (alte Bilder in der Anleitung?). Dann habe ich aber immer noch 2 Ordner mit SOLL Temperaturen … Heiz - Soll Temperaturen + 00-Wunsch-Temperaturen. Das kommt im Wiki nicht so richtig rüber warum das so ist … das hängt sicher mit den Homematic Sachen zusammen !?

Auch ist der Ordner für das Debugger-Script nicht ersichtlich und die Anweisung zur Erstellung des Acionsscriptes fürs Webfront ist auch nicht aufgeführt. (nur als Anmerkung gedacht!)

Gruß
Jens

Das ist schon richtig so. Wenn alle Pläne einmal erzeugt sind, kannst Du die Heizung für die nächsten 6 Tage im Vorraus einstellen. Also heute (Dienstag) für Heute, morgen, übermorgen … bis nächsten Montag.

Damit die Standard-Werte wieder hergestellt werden, löscht das Script morgens um 01:00 Uhr die Werte des vorherigen Tages (also morgen am Mittwoch um 01:00 Uhr Nachts) und legt Sie neu an. Damit kannst Du morgen am Mittwoch die Heizung für nächsten Dienstag (in 6 Tagen) ausgehend von den Standard-Werten verändern.

Erstze in ca. Zeile 100 noch mal


    public function getWindowStatus ($objectID) {return GetValue($objectID);} 

    // Fenster Stati-Funktionen für HomeMatic 
    // Fenster Stati-Funktionen fr HomeMatic 
    public function getOpendWindowValue() {return 1;} // $FENSTER_OFFEN = 1; 

    public function getClosedWindowValue() {return 0;}// $FENSTER_GESCHLOSSEN = 0; 

ein. Was passiert dann?

Wie schon richtig erkannt, habe ich zum besseren Verständnis den Temperatur-Profil Ordner in Wunsch-Temperaturen umbenannt. Dort legst Du die Temperatur fest, die Du gerne im Raum haben möchtest.

Das hängt eigentlich genau nicht mit HomeMatic zusammen. Wie im Wiki erklärt, benötigt man die Variablen nur, wenn man der HomeMatic das Regeln verbietet (HeizenJaNein) oder kein HomeMatic (z.B. EinsWire) als Heizung hat.

Solltest Du HomeMaticKomponenten als Interface verwenden, brauchst Du beide Ordner nicht. Falls nicht, werden in den beiden Ordner die Regel-Variablen abgespeichert.
Heiz - Soll Temperaturen = Soll der Raum gerade 0,5° über oder 0,5° unter der Wunsch-Temperatur sein?
Heiz - Stati = Wird der Raum gerade geheizt, oder kühlt er ab?

Auch diese Variablen erkläre ich bei Gelegenheit noch mal besser im Wiki …

Solche Anmerkungen sind gut! Ich schreibe das mit und nehme es für das nächste Release ins Wiki mit auf.

Danke für die Antwort!

Noch eine weitere Frage … die Bezeichnungen für die Kategorien … sind die zwingend so einzuhalten weil irgendwo auf die Namen zurückgegriffen wird oder läuft ALLES über die IDs und ich kann teilweise die Namen der Kategorien verändern?
Ebenso die Sache mit Anwesend/Abwesend … kann ich z.B. Abwesend anders nennen oder ist das auch zwingend einzuhalten weil ein Script das so benötigt?

Gruß
Jens

Hi,

eigentlich sollte alles nur auf die IDs zurückgreifen.

Ändere einfach mal die Namen und schau, ob es noch geht. Anwesend/Abwesend solltest Du auch ändern können (zumindest in der Ansicht im WebFront), das ist ja nur das Variablen-Profil.

Wenn Du den iFront Schalter in der config auf TRUE setzt, heißen die Variablen von alleine An/Aus …

Ok :slight_smile:

Nächste Frage:

// ### LAST CHANGE IN IN REVISION 3
		// $this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponenten";
		// ### Test-Szenario CHANGE CHANGE CHANGE 1/3
		// $this->heizungssteuerung['heizungsKomponenten'] = "EinsWireWagoKombinationsKomponenten";
		$this->heizungssteuerung['heizungsKomponenten'] = "HomeMaticKomponentenHeizenJaNein";

Hier wähle ich das System aus … was ist wenn ich 1Wire/Wago UND Homematic benutze? Habe ich dann nur die Möglichkeit Variante 3 zu nutzen??

Außerdem sind das irgendwie immer noch ziemlich viele Soll/Ist Temperaturen …

Einmal gibt es Sollwerte die gelesen werden und dann Sollwerte die geschrieben werden … ist aber im Prinzip doch dasselbe!? Warum Unterschiedliche Variablen? Bei HM gibt es nur die Setpoint Variable, um Einfluss auf die Temperatur zu nehmen … entweder regelt das Thermostat das selbst (Verstellung am Thermostat) oder man nimmt einen anderen Modus, dann ändert man die Variable per IPS oder habe ich da einen Denkfehler?? Denn der Kommentar im Script sagt das es bei HM nicht gleich ist! Welche ID brauche ich dann aber für WRITE bei HM ??
Bei Wago/1Wire ist READ=WRITE … !?

Fest eintragen muss man aber bei den Solltemperaturen nix, oder? Das gehört zu den Wunsch - Soll - Temperaturen, in denen man dann die Werte manuell eintragen muss !? Deine Scripte lesen dann je nach Status dort aus welches die Solltemperatur ist … entweder die Abwesenheits oder die Anwesenheitstemperatur und verändern dann die Solltemperaturen bei READ!?

Gruß von einem verwirrten User :wink: