Universelle Heizungssteuerung

Danke für Dein Angebot!

Mal eine ganz dumme Frage: Bei Dir funktioniert die Angelegenheit, dass sich der Heizplan von „gestern“ jede Nacht auf die Default-Einstellungen zurücksetzt?

Grüße,
Christoph

Äh ne ? nur wöchentlich auf default … meine ich zumindest!? Muss aber jetzt auch weg … werde aber noch schnell etwas umstellen und heute Nach nachsehen.
Wenn ich das aber richtig verstanden habe, ist der „Reset“ auf Default auch nur Wöchentlich !?

Wenn ich Ernie hier in Post 500 richtig verstehe, dann werden immer jeden Tag um 00:00 Uhr alle vorherigen Tagen zurückgesetzt.

ALLE vorherigen Tage stimmt auf jeden Fall nicht. Ich hatte vorhin für Mittwoch etwas geändert und das ist immer noch so. Die Frage wäre ja auch was „alle vorherigen Tage“ bedeutet. Nur die der aktuellen Woche? Oder nur der gestrige Tag?
Ich bin immer noch der Meinung das erst Sonntag Nacht die Default Werte geladen werden …

Okay. Da morgen Sonntag ist, lässt sich das ja relativ zeitnah testen.

Das heißt, für mich zum Verständnis, wenn ich heute den Heizplan von Donnerstag und Freitag ändere, sollte er Montag um 00:01 Uhr wieder auf default stehen, richtig?

Dann teste ich das mal.

Also der Sonntag wars wohl nicht …

Ich hatte am Freitag in einem Raum etwas für Mittwoch verändert. Das wurde bis gestern beibehalten und erst heute Nacht zurückgesetzt. Also hat das System erkannt, das ich am Samstag etwas für den darauffolgenden Mittwoch verändert habe? Oder wird einfach immer nur mit dem Tageswechsel der vergangene Tag auf Default gesetzt ?

Es wird mit dem Tageswechsel der vorherige Tag auf Standard gesetzt. Und genau das passiert bei mir nicht. Zu keinem Zeitpunkt.

Gruß, Christoph

Hallo Leute !

Meine Elektroheizung funktioniert soweit sehr gut, nun hab ich jetzt das Problem, dass ich für mehrere Fenster einen Fensterkontakt gekauft habe.
Ich habe diese auch schon angelernt und sie funktionieren soweit alle!
Das Problem das ich nun habe ist, dass mehrere Fensterkontakte einer Heizung zugeordnet werden müssen und das funktioniert aber leider nicht.
Wie kann ich mehrere Kontakte für die Heizung im Wohnzimmer eingeben

Danke für eure Hilfe

Lg Christian

Hier im Forum gibt es Regeln zur Schreibweise, bitte beachten !

Gruß
Bruno

Hallo!

Hat jemand schon eine Lösung oder Idee dass ich mein Problem lösen kann.

Danke!

Bin nur am Raten, da ich das Prog nicht selbst einsetze. Im Wiki wird was beschrieben:

rootNodesFenster Array
letzte Änderung in Revision 2

```php
$this->heizungssteuerung['rootNodesFenster']['Bad'] = array();
$this->heizungssteuerung['rootNodesFenster']['Bad'][0] 				= 58608;

In diesem Array können Räume und Fenster definiert werden. Sind diese geöffnet, wird die Temperatur des Raumes auf die Abwesend Temperatur gesetzt.



Vielleicht dann

```php
$this->heizungssteuerung['rootNodesFenster']['Bad'] = array();
$this->heizungssteuerung['rootNodesFenster']['Bad'][0] 				= 12345;
$this->heizungssteuerung['rootNodesFenster']['Bad'][1] 				= 23456;
$this->heizungssteuerung['rootNodesFenster']['Bad'][2] 				= 34567;

Leider hat das keine Erfolg gebracht da das System offensichtlich schaut ob ein Fenster geschlossen ist und sobald ein Fenster geschlossen ist schaltet sich die Heizung ein obwohl ein zweites, dass auch im System hängt offen steht

Hallo zusammen,

ich habe dieses Script hier gefunden und kann nur sagen, dass es ein tolles Script ist.
Leider klappt das bei mir aber nicht mit den FS20 Komponenten, so wie es soll. Hat jemand eine ähnliche Konfig wie ich am Laufen und dieses Script auch erfolgreich ohne Fehler?

Ich habe folgende Komponenten:
6 x FS20 Raumthermostate
6 x FHT80 Stellantriebe
1 x FHZ1300

Ich habe wie gesagt das Script soweit komplett integriert, auch ebenfalls schon die Version „erniesHeizungssteuerung_revision_3.5beta_version0.19“ implementiert.

Nur leider bekomme ich immer folgende Fehler und kann die Ursache nicht finden :confused:

08.09.2015 10:20:00 | SendeHeizenFloatTemperatur6und30Grad.class | MISSLUNGENER Versuch, Temperatur für Heizkörper Bad auf ABKÜHLEN zu setzen

… das insgesamt 6 mal für alle Räume…

dazu…

08.09.2015 10:20:00 | ExecuteThreadID #8 | [Heizungssteuerung\Scripte\aktionsScripte-trigger.class] =
Notice: Undefined offset: 0 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 353
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 356
Warning: HM_WriteValueFloat: Instance #11163 does not implement this function! in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 221
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 238
Notice: Undefined offset: 0 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 353
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 356
Warning: HM_WriteValueFloat: Instance #17233 does not implement this function! in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 221
Notice: Undefined offset: 0 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 353
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 356
Warning: HM_WriteValueFloat: Instance #16826 does not implement this function! in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 221
Notice: Undefined offset: 0 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 353
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 356
Warning: HM_WriteValueFloat: Instance #37177 does not implement this function! in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 221
Notice: Undefined offset: 0 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 353
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\heizungssteuerung rigger.class.ips.php on line 356
Warning: HM_WriteValueFloat: Instance #39500 does not implement this function! in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 221
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 238
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 238

Über eine Idee und Hilfe wäre ich dankbar.
LG

Hier noch 2 Screenshots meiner aktuellen Konfig

Hallo.

Du hast offensichtlich nicht den Typ der verwendeten Komponenten in den Skripten eingestellt.
Du versuchst auf Homematic-Komponenten und nicht auf FS20 zuzugreifen.

poste mal deine config.class.ips.php, dann sehe ich den Fehler sehr wahrscheinlich schnell …

Gruß,

ernie

Guten Morgen zusammen und @Ernie.

Hier wie gewünscht die aktuelle Datei: config.class.ips.php

Vielen Dank vorab.


<?

/*
 ################################################################################
 # 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('SendeHeizenFloatTemperatur.class[__construct]',						0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('SendeHeizenFloatTemperatur.class[getSollTemperatur]',				0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('SendeHeizenFloatTemperatur6und30Grad.class[__construct]',			0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('SendeHeizenFloatTemperatur6und30Grad.class[getSollTemperatur]',	0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('SendeHeizenFloatTemperatur6und30Grad.class[setHeizenJaNein]',	8,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // minValue = 9 / maxValue = 9
		$do->addDebugEnvironment('SendeHeizenBooleanJaNein.class[__construct]',							0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('SendeHeizenBooleanJaNein.class[getSollTemperatur]',					0,	TRUE,	TRUE,	TRUE,		FALSE,	DEBUG_MODE_ECHO_LINEBREAK); // maxValue = 1
		$do->addDebugEnvironment('SendeHeizenBooleanJaNein.class[setHeizenJaNein]',					0,	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 implementierte Interfaces:
		// ###    - sendeHeizenFloatTemperatur (ehemals HomeMaticKomponenten)
		// ###    - sendeHeizenFloatTemperatur6und30Grad (ehemals HomeMaticKomponentenHeizenJaNein)
		// ###    - sendeHeizenBooleanJaNein (ehemals EinsWireWagoKombinationsKomponenten)
		// ### Aktuell implementierte heizungsKomponenten (NUR BEI heizungsInterface sendeHeizenFloatTemperatur):
		// ###    - HomeMatic
		// ###    - FS20
		// ### LAST CHANGE IN IN REVISION 3.5
		// ### Test-Szenario CHANGE CHANGE CHANGE 1/3
		// $this->heizungssteuerung['heizungsKomponenten'] = "EinsWireWagoKombinationsKomponenten";
		$this->heizungssteuerung['heizungsInterface'] = "sendeHeizenFloatTemperatur6und30Grad";
		$this->heizungssteuerung['heizungsKomponenten'] = "";

		// ### 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']	= 24847; // 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;

		// ### 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; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][1] = 52400; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][2] = 57755; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][3] = 37636; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][4] = 11120; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][5] = 55568; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][6] = 57889; // cAOIDs ok
		$this->heizungssteuerung['rootNodesHeizplan'][7] = 57622; // 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'] 			= 26621; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Bad\Bad - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Büro']			= 18769; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Büro\Büro - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Küche'] = 10401; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Gästezimmer\Gästezimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 51488; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Schlafzimmer\Schlafzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] 	= 46178; // 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'] 			= 26621; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Bad\Bad - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Büro']			= 18769; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Büro\Büro - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Küche'] = 10401; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Gästezimmer\Gästezimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 51488; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Schlafzimmer\Schlafzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
		$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] 	= 46178; // cAOIDs ok  //[Heizung\HomeMatic Komponenten\Wohnzimmer\Wohnzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]

		// ###
		// ### 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'] 				= 11163; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 16826; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Küche'] 	= 37177; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 17233; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 39500; // 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'] 				= 11163; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Büro']				= 16826; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Küche'] 	= 37177; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] 	= 17233; // cAOIDs ok ;
		$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] 		= 39500; // cAOIDs ok ;		*/

		// ###
		// ### 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'] 				= 12767; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Büro']				= 40151; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Küche'] 	= 17734; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Schlafzimmer'] 	= 11012; // cAOIDs ok
		$this->heizungssteuerung['readRaumIstTemeratur']['Wohnzimmer'] 	= 45076; // 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'] 				= 12767; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Büro']				= 40151; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Küche'] 		= 17734; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Schlafzimmer'] 	= 11012; // cAOIDs ok
		$this->heizungssteuerung['heizStatiRaeume']['Wohnzimmer'] 		= 45076; // 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] 				= 33489; // cAOIDs ok

		// ###
		// ### Definition der ObjectIDs der Fenster-Kontakte
		// ### LAST CHANGE IN IN REVISION 2
		$this->heizungssteuerung['rootNodesFenster'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Schlafzimmer'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Schlafzimmer'][0] 				= 11214; // 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'] 				= 21323; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Bad']['Abwesend'] 				= 47688; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Büro'] = array();
		$this->heizungssteuerung['temperaturProfile']['Büro']['Anwesend'] 			= 44782; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Büro']['Abwesend'] 			= 51103; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Küche'] = array();
		$this->heizungssteuerung['temperaturProfile']['Küche']['Anwesend'] 	= 	34726; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Küche']['Abwesend'] 	= 18389; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Schlafzimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Schlafzimmer']['Anwesend'] 	= 56372; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Schlafzimmer']['Abwesend'] 	= 45318; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer'] = array();
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Anwesend'] 	= 58825; // cAOIDs ok
		$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Abwesend'] 	= 28705; // 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] = "03:00 bis 04:00 Uhr - Frühmorgens";
		$this->heizungssteuerung['zeitProfile']['Bad'][1] = "05:00 bis 06: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']["03:00 bis 04:00 Uhr - Frühmorgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags']["05:00 bis 06: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']["03:00 bis 04:00 Uhr - Frühmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["05:00 bis 06: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 - Küche
		$this->heizungssteuerung['zeitProfile']['Küche'] = array();
		$this->heizungssteuerung['zeitProfile']['Küche'][0] = "08:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Küche'][1] = "10:00 bis 21:00 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Küche'][2] = "21:00 bis 22:00 Uhr - Abends";
		$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']["08:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Küche']['Werktags']["10:00 bis 21:00 Uhr - Tagsüber"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Küche']['Werktags']["21:00 bis 22:00 Uhr - Abends"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Küche']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] 	= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Küche']['Wochenende']["10:00 bis 21:00 Uhr - Tagsüber"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Küche']['Wochenende']["21:00 bis 22:00 Uhr - Abends"] 	= TRUE;

		// ### Raum Definitionen - Schlafzimmer
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'][0] = "07:00 bis 19:00 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'][1] = "19:00 bis 22:00 Uhr - Abends";
		$this->heizungssteuerung['zeitProfile']['Schlafzimmer'][2] = "22: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 19:00 Uhr - Tagsüber"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Werktags']["19:00 bis 22:00 Uhr - Abends"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Werktags']["22:00 bis 23:59 Uhr - Nachts"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende']["07:00 bis 19:00 Uhr - Tagsüber"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende']["19:00 bis 22:00 Uhr - Abends"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Schlafzimmer']['Wochenende']["22:00 bis 23:59 Uhr - Nachts"] 	= FALSE;

		// ### Raum Definitionen - Wohnzimmer
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'] = array();
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][0] = "07:00 bis 10:00 Uhr - Morgens";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][1] = "10:00 bis 13:00 Uhr - Spätmorgens";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][2] = "13:00 bis 19:00 Uhr - Tagsüber";
		$this->heizungssteuerung['zeitProfile']['Wohnzimmer'][3] = "19: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 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["10:00 bis 13:00 Uhr - Spätmorgens"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["13:00 bis 19:00 Uhr - Tagsüber"] 		= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Werktags']["19:00 bis 23:00 Uhr - Abends"] 			= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["07:00 bis 10:00 Uhr - Morgens"] 		= TRUE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["10:00 bis 13:00 Uhr - Spätmorgens"] = FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["13:00 bis 19:00 Uhr - Tagsüber"] 	= FALSE;
		$this->heizungssteuerung['standardZuordnung']['Wohnzimmer']['Wochenende']["19: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']['Küche']	= "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']['Küche']	= "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
		// Die Werte gelten für das
		//    - SIMPLE-DELTA und
		//    - SOLL-IST-VERGLEICH (wie viel mehr wird ein Raum auf bzw. abgezeigt,
		//
		// Steuerungstechnik (siehe obige Erklärung)
		// Die Werte dürfen nicht zuindest bei SOLL-IST-VERGLEICH NICHT 0 sein,
		// da ansonsten die Heiz und Abkühl-Temperatur gleich ist,
		// was Fehler in der Steuerung verursacht
		// TODO: am Anfang abprüfen, ob die Werte 0 sind (in checkAllObjectIDs)
		// LAST CHANGE IN REVISION 2
		$this->heizungssteuerung['simpleDeltaTemperatur'] = array();
		$this->heizungssteuerung['simpleDeltaTemperatur']['Bad'] 			=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Büro'] 			=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Küche']	=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Schlafzimmer']	=  0.5;
		$this->heizungssteuerung['simpleDeltaTemperatur']['Wohnzimmer'] 	=  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 getHeizungsInterface() {
		return $this->heizungssteuerung['heizungsInterface'];
	}

	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->getHeizungsInterface() == "sendeHeizenFloatTemperatur" ) {$actualObjectType = "object";}
		if ($this->getHeizungsInterface() == "sendeHeizenFloatTemperatur6und30Grad") {$actualObjectType = "object";}
		if ($this->getHeizungsInterface() == "sendeHeizenBooleanJaNein" ) {$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['heizungsInterface'] == "sendeHeizenBooleanJaNein"
		   || $this->heizungssteuerung['heizungsInterface'] == "sendeHeizenFloatTemperatur6und30Grad") {

			// $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

?>


OK, einen Fehler habe ich schon gefunden.

In Zeile 95 und 96 waren noch falsche Angaben, diese habe ich berichtigt.


	$this->heizungssteuerung['heizungsInterface'] = "sendeHeizenFloatTemperatur";
		$this->heizungssteuerung['heizungsKomponenten'] = "FS20";

Nun bekomme ich zwar erheblich weniger Fehlermeldungen, jedoch noch diese pro Raum:

09.09.2015 07:33:20*| trigger.class*| FEHLER: de\IPSymcon\ernie\SendeHeizenFloatTemperatur implementiert NICHT die Raum-Steuerungs-Technik SOLL-IST-VERGLEICH (Raum: Büro)

09.09.2015 07:52:00*| ExecuteThreadID #10*| [Heizungssteuerung\Scripte\aktionsScripte-trigger.class] =
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 106
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 106
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizungskomponenten.ips.php on line 106

Und wieder ein Fehler weniger.

Diesen Fehler habe ich nun auch beseitigt:

09.09.2015 07:52:00*| ExecuteThreadID #10*| [Heizungssteuerung\Scripte\aktionsScripte-trigger.class] =
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizun gskomponenten.ips.php on line 106
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizun gskomponenten.ips.php on line 106
Warning: Variablentyp Boolean entspricht nicht Integer in C:\IP-Symcon\scripts\heizungssteuerung\INTERFACES_Heizun gskomponenten.ips.php on line 106

Grund war in Zeile 210-216, dort war ein falscher Name. Anstatt --> „[‚Fenster Bad‘]“, war nur „[‚Bad‘]“
Liegt aber natürlich an meiner eigenen Zusammenstellung der Geräte und nicht an einem Fehler im Code.



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

		$this->heizungssteuerung['rootNodesFenster'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Fenster Schlafzimmer'] = array();
		$this->heizungssteuerung['rootNodesFenster']['Fenster Schlafzimmer'][0] 				= 11214 /*[Fenster\Fenster Schlafzimmer\Status]*/; // cAOIDs ok

Bleibt also nur noch die Frage offen, was das bedeutet kann:

09.09.2015 07:33:20*| trigger.class*| FEHLER: de\IPSymcon\ernie\SendeHeizenFloatTemperatur implementiert NICHT die Raum-Steuerungs-Technik SOLL-IST-VERGLEICH (Raum: Büro)

Final result:
Auch den letzten Fehler gefunden.

Anscheinend muss bei FS20 Komponenten in den Zeilen 376 - 380 immer „SIMPLE-DELTA“
stehen. Denn nun bekomme ich keine Fehler mehr und er setzt auch über alle Komponenten die Werte.


$this->heizungssteuerung['raumSteuerungsTechnik']['Bad'] 			= "SIMPLE-DELTA";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Büro'] 			= "SIMPLE-DELTA";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Küche']	= "SIMPLE-DELTA";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Wohnzimmer'] 	= "SIMPLE-DELTA";
		$this->heizungssteuerung['raumSteuerungsTechnik']['Schlafzimmer']	= "SIMPLE-DELTA";

Ergebnis

09.09.2015 09:25:06*| SendeHeizenFloatTemperatur.class*| Temperatur für Heizkörper Wohnzimmer auf 5° gesetzt; Grund: Temperaturänderung durch An/Abwesenheit im Zeitprofil ausgelöst
(SIMPLE-DELTA Steuerung / Wunschtemperatur == 5.5°)

super,

im Wiki sind die Steuerungs-Techniken teilweise erklärt und warum welche Steuerungstechnik für welche Komponenten nicht verfügbar ist.

Viel Spaß mit dem Script