Jo, Wochenheizplan habe ich noch mal erstellen lassen.
Hier der Code:
<?
/*
################################################################################
# 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'] = 32297 /*[Allgemein\Heizungssteuerung\Scripte\aktionsScripte-changeWebfrontVariable]*/ ;
$this->heizungssteuerung['createHeizplanConstants']['WebFrontVariableProfileName'] = "Anwesend-Abwesend";
// $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] = 56607 /*[Allgemein\Heizungssteuerung\Heizplan\00-Temperatur Profile]*/;
$this->heizungssteuerung['rootNodesHeizplan'][1] = 19278 /*[Allgemein\Heizungssteuerung\Heizplan\01-Montag]*/;
$this->heizungssteuerung['rootNodesHeizplan'][2] = 32944 /*[Allgemein\Heizungssteuerung\Heizplan\02-Dienstag]*/;
$this->heizungssteuerung['rootNodesHeizplan'][3] = 45699 /*[Allgemein\Heizungssteuerung\Heizplan\03-Mittwoch]*/;
$this->heizungssteuerung['rootNodesHeizplan'][4] = 45971 /*[Allgemein\Heizungssteuerung\Heizplan\04-Donnerstag]*/;
$this->heizungssteuerung['rootNodesHeizplan'][5] = 10494 /*[Allgemein\Heizungssteuerung\Heizplan\05-Freitag]*/;
$this->heizungssteuerung['rootNodesHeizplan'][6] = 18162 /*[Allgemein\Heizungssteuerung\Heizplan\06-Samstag]*/;
$this->heizungssteuerung['rootNodesHeizplan'][7] = 25226 /*[Allgemein\Heizungssteuerung\Heizplan\07-Sonntag]*/;
// ###
// ### 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'] = 39142 /*[Badezimmer\CLIMATECONTROL_REGULATOR\SETPOINT]*/ ;
// $this->heizungssteuerung['readRaumSollTemeratur']['Büro'] = 57653 /*[Objekt #57653 existiert nicht]*/; // cAOIDs ok //[Heizung\HomeMatic Komponenten\Büro\Büro - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
// $this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer'] = 54771 /*[Objekt #54771 existiert nicht]*/; // cAOIDs ok //[Heizung\HomeMatic Komponenten\Gästezimmer\Gästezimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
// $this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 53751 /*[Objekt #53751 existiert nicht]*/; // cAOIDs ok //[Heizung\HomeMatic Komponenten\Schlafzimmer\Schlafzimmer - Thermostat - Klima (CLIMATECONTROL_REGULATOR)\SETPOINT]
//$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] = 50601 /*[Objekt #50601 existiert nicht]*/; // 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'] = 42715 /*[Objekt #42715 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
$this->heizungssteuerung['readRaumSollTemeratur']['Büro'] = 57644 /*[Objekt #57644 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
$this->heizungssteuerung['readRaumSollTemeratur']['Gästezimmer'] = 26155 /*[Objekt #26155 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
$this->heizungssteuerung['readRaumSollTemeratur']['Schlafzimmer'] = 35587 /*[Objekt #35587 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
$this->heizungssteuerung['readRaumSollTemeratur']['Wohnzimmer'] = 53457 /*[Objekt #53457 existiert nicht]*/; // 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'] = 54276 /*[Badezimmer\CLIMATECONTROL_REGULATOR]*/ ;
/*
$this->heizungssteuerung['writeRaumSollTemeratur']['Büro'] = 19315 /*[Objekt #19315 existiert nicht]*/; // cAOIDs ok ;
$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer'] = 31325 /*[Objekt #31325 existiert nicht]*/; // cAOIDs ok ;
$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] = 30084 /*[Objekt #30084 existiert nicht]*/; // cAOIDs ok ;
$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] = 42515 /*[Objekt #42515 existiert nicht]*/; // 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'] = 42715 /*[Objekt #42715 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Bad]
$this->heizungssteuerung['writeRaumSollTemeratur']['Büro'] = 57644 /*[Objekt #57644 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Büro]
$this->heizungssteuerung['writeRaumSollTemeratur']['Gästezimmer'] = 26155 /*[Objekt #26155 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Gästezimmer]
$this->heizungssteuerung['writeRaumSollTemeratur']['Schlafzimmer'] = 35587 /*[Objekt #35587 existiert nicht]*/; // cAOIDs ok //[Heizung\Heizungssteuerung\heiz - Soll Temperaturen\Schlafzimmer]
$this->heizungssteuerung['writeRaumSollTemeratur']['Wohnzimmer'] = 53457 /*[Objekt #53457 existiert nicht]*/; // 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'] = 20574 /*[Badezimmer\WEATHER\TEMPERATURE]*/ ;
/*
$this->heizungssteuerung['readRaumIstTemeratur']['Büro'] = 39080 /*[Objekt #39080 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['readRaumIstTemeratur']['Gästezimmer'] = 47279 /*[Objekt #47279 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['readRaumIstTemeratur']['Schlafzimmer'] = 25826 /*[Objekt #25826 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['readRaumIstTemeratur']['Wohnzimmer'] = 10100 /*[Objekt #10100 existiert nicht]*/; // 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'] = 52917 /*[Objekt #52917 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['heizStatiRaeume']['Büro'] = 46508 /*[Objekt #46508 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['heizStatiRaeume']['Gästezimmer'] = 31397 /*[Objekt #31397 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['heizStatiRaeume']['Schlafzimmer'] = 54207 /*[Objekt #54207 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['heizStatiRaeume']['Wohnzimmer'] = 46096 /*[Objekt #46096 existiert nicht]*/; // 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] = 40376 /*[Allgemein\Heizungssteuerung\Dummy_Window]*/ ;
// ###
// ### 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'] = 54043 /*[Allgemein\Heizungssteuerung\Heizplan\00-Temperatur Profile\Badezimmer - Anwesend]*/ ;
$this->heizungssteuerung['temperaturProfile']['Bad']['Abwesend'] = 36055 /*[Allgemein\Heizungssteuerung\Heizplan\00-Temperatur Profile\Badezimmer - Abwesend]*/ ;
/*
$this->heizungssteuerung['temperaturProfile']['Büro'] = array();
$this->heizungssteuerung['temperaturProfile']['Büro']['Anwesend'] = 23609 /*[Objekt #23609 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Büro']['Abwesend'] = 25567 /*[Objekt #25567 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Gästezimmer'] = array();
$this->heizungssteuerung['temperaturProfile']['Gästezimmer']['Anwesend'] = 16056 /*[Objekt #16056 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Gästezimmer']['Abwesend'] = 32661 /*[Objekt #32661 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Schlafzimmer'] = array();
$this->heizungssteuerung['temperaturProfile']['Schlafzimmer']['Anwesend'] = 20055 /*[Objekt #20055 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Schlafzimmer']['Abwesend'] = 18066 /*[Objekt #18066 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Wohnzimmer'] = array();
$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Anwesend'] = 24623 /*[Objekt #24623 existiert nicht]*/; // cAOIDs ok
$this->heizungssteuerung['temperaturProfile']['Wohnzimmer']['Abwesend'] = 10409 /*[Objekt #10409 existiert nicht]*/; // 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:15 Uhr - Frühmorgens";
$this->heizungssteuerung['zeitProfile']['Bad'][1] = "07:15 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:15 Uhr - Frühmorgens"] = TRUE;
$this->heizungssteuerung['standardZuordnung']['Bad']['Werktags']["07:15 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 08:00 Uhr - Frühmorgens"] = FALSE;
$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["08:00 bis 10:00 Uhr - Morgens"] = TRUE;
$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["10:00 bis 22:00 Uhr - Tagsüber"] = FALSE;
$this->heizungssteuerung['standardZuordnung']['Bad']['Wochenende']["22:30 bis 23:30 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'] = "KEINE";
/*
$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
?>