Ok du hast gewonnen
Ich hab noch eingebaut das der Button und die Parameterfenster ausgeblendet werden wenn der Befehl Starten abgefeuert wurde.
Hier mal mein Script Export mitm Project Exporter :
<?
/**********************************************************************************************************************
* this Install-Script was automated generated by RS IPS Project-Exporter *
* © by Raketenschnecke 2012-2013, mail: raketenschnecke@gmx.de *
* // Projekt-HomePage: http://www.raketenschnecke.net/rs-projekte/rs-ips-project-exporter/ *
**********************************************************************************************************************/
/**********************************************************************************************************************
Project: Rechts (Quell-ID: 58214), generated on 13.02.2014, 16:24 Uhr
* *
* Dieses Script beinhaltet ein automatisch in einem Script zusammengeführtes IPS-Projekt (Quell-Projekt) *
* Zur Installation des (Quell-) Projekts auf dem lokalen System (Zielsystem) bitte dieses Script an einer beliebigen *
* Stelle im Objektbaum platzieren und einmalig manuell starten (Konfigurationen sind nicht notwendig. Es werden alle *
* notwendigen Strukturen (Kategorien, Variablen, Scripte etc) aus dem Quell-Projekt im Ziel-Projekt angelegt (derzeit*
* ohne Links, Events) *
* Dies ist !!! KEINE !!! vollständige Projekt-Installation! D.h.: eine Konfiguration, Verlinkung von Objekten etc. *
* muss durch Scripts des eigentlichen Projekts oder manuell durch den Anwender erfolgen. *
* *
**********************************************************************************************************************/
############################### Konfig ##############################################################################
// Ziel-WFC angeben
$WFC_TargetID = 0; // bei falscher WFC-ID wird keine Installation von WFE-Komponenten vorgenommen
$WFC_existItemoverwrite = 1; // 0=> bereits im Zielsystem bestehende WFC-Items werden NICHT überschrieben,
// 1=> existierende Objekte werden überschrieben (default)
// Copy-Parameter (1: Objekte werden im Zielsystem installiert; 0: Objekte werden nicht installiert) +++++++++++++++++
$VarProfile = 1; // 1: überschreibt vorhandene Profile im Zielsystem, 0: installiert nur neue Profile
# !!! die folgende Option mit äußerster Vorsicht nutzen (Default-Wert 0)!!! #
$existsScriptsoverwrite = 0; // 1: im Zielsystem existierende Scripte (=benamste Scriptfiles) werden überschrieben
############################### Main Area ############################################################################
##### Project Exporter Comment: Projekt-Export Rechts (Quell-ID: 58214) vom 13.02.2014 16:24 #####
// Inventorys laden
$MessageProkoll = array();
$Inv = ObjectInventory();
$VProfInv = VarProfileInventory();
if(function_exists('loadFileExportInventory'))
{
$ExpFileInv = loadFileExportInventory();
if($ExpFileInv[0] != NULL)
createExportFiles($ExpFileInv);
}
// Parameters-Array erzeugen
$Parameters = array('VarProfile'=>$VarProfile, 'ScrOverwrite'=>$existsScriptsoverwrite, 'WFCItems'=>$WFC_existItemoverwrite, 'Update'=>0);
// letztes Logfile finden & Updatemodus setzen
$lastLog_ID = findlastLogfile();
if($lastLog_ID > 0)
{
$Parameters['Update'] = 1;
include $lastLog_ID.'.ips.php';
// last Inventory laden
$lastInv = ObjectInventoryProtocol();
// Meldungsausgabe
if(isset($lastInv[0]))
{
$MessageProkoll['Info'][] = "#1004 letztes Inventory aus Protokollfile geladen";
}
// Last Inventory initialisieren
$InvData = explode(';', substr(preg_replace("/\r|
/s", "", $lastInv[1]),0, -1));
$InvObjID = (int)explode(',', $InvData[0])[1];
$lastInvObj = createlastInventoryObjects($InvObjID);
// Meldungsausgabe
if(IPS_ObjectExists((int)$lastInvObj[0]['newObjectID']))
{
$MessageProkoll['Info'][] = "#1005 bestehendes Zielprojekt für Update gefunden: ".$lastInvObj[0]['ObjectName']." ID#".$lastInvObj[0]['newObjectID']."";
}
else
{
$MessageProkoll['Failure'][] = "#1025 Fehler: kein bestehendes Zielprojekt gefunden";
exit("Scriptabbruch: kein bestehendes Zielprojekt gefunden! Nur Neu-Installation möglich,
bitte alle Child-Files unterhalb dieses Scripts löschen!");
}
}
$MessageProkoll['InstallParameters'] = $Parameters;
// Funktionsaufrufe
// Variablenprofile aus Profile-Inventory holen und Profil-Baum generieren
$VarProfile = createVarProfileInventory();
// Variablenprofile anlegen (abhängig von Parameters)
createVarProfile($VarProfile);
// Projekt Root-Element aus Inventory generieren und anlegen
$ObjectTree = createInventoryObjects();
// Child-Objekte vom Root aus Inventory generieren und anlegen
$ObjInstallTree = createObjectsTree($ObjectTree);
// Funktion zum Verlinken aller neu instalierten Elemente
linknewObjects($ObjInstallTree);
// Funktion zum Installieren der WFC-Items
installWFC_Items($WFC_TargetID);
// Install-Script ins Config-Verzeichnis verschieben
moveInstallScripttoConfig();
// Installationsprotokoll erzeugen
$InstProtocol = createObjInventoryProtocol($ObjInstallTree);
// Script self-renaming
IPS_SetName($_IPS['SELF'], 'Rechts (Quell-ID: 58214) 2014_02_13-16_24'.', Ziel-ID: '.$ObjInstallTree[0]['newObjectID']);
// Installationsprotokoll schreiben
CreateProtocolFile($InstProtocol);
// ++++++++++++++ Script-Core +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// prüft, ob Logfiles unterhalb des Export-Scripts hängen und gibt die ID des letzten Logfiles aus +++++++++++++++++
function findlastLogfile()
{
$Childs = IPS_GetChildrenIDs($_IPS['SELF']);
$ScrTS = 0;
if(isset($Childs[0]))
{
$ScrTS = 0;
$ScrID = 0;
for($i=0;$i<count($Childs);$i++)
{
// 1. Zeile aus jedem Protokollfile auslesen und Installationsdatum ermitteln
$script = IPS_GetKernelDir()."scripts\\".$Childs[$i].'.ips.php';
$fh = fopen($script, "r");
$firstLine = mb_strlen(fgets($fh));
fseek($fh, $firstLine);
$zeile = explode(' ', fgets($fh));
if(isset($zeile[4]))
{
$TS = strtotime($zeile[4].$zeile[5]);
}
else
{
$MessageProkoll['Failure'][] = "#1024 Fehler: letztes Inventory aus Protokollfile NICHT geladen";
exit("Scriptabbruch: kein gültiges Protokollfile gefunden! Nur Installation möglich,
bitte alle Child-Files unterhalb dieses Scripts löschen!");
}
// Child mit größtem Timestamp ermitteln
if(($ScrTS < $TS))
{
$ScrTS = $TS;
$ScrID = $Childs[$i];
}
fclose($fh);
}
}
// alte Logfiles löschen
for($i=0;$i<count($Childs);$i++)
{
if($ScrID != $Childs[$i]) IPS_DeleteScript($Childs[$i], true);
}
return @$ScrID;
}
// Last Install Einzelobjekte-Array (aus Inv-Protokoll) bauen
function createlastInventoryObjects($ID)
{
global $lastInv;
for($a=1;$a<count($lastInv);$a++)
{
// Einzel-Objekt zusammenstellen
$InvData = explode(';', substr(preg_replace("/\r|
/s", "", $lastInv[$a]),0, -1));
unset($InvData[0]); // ersten Datensatz entfernen
$InvData = array_slice($InvData, 0);
for($i=0;$i<count($InvData);$i++)
{
$KeyValue = explode(',', $InvData[$i]);
$lastInvPlain[$a][$KeyValue[0]] = $KeyValue[1];
}
}
$lastInvPlain = array_slice($lastInvPlain, 0);
return $lastInvPlain;
}
// Funktion installiert externe Scripte (sofern vorhanden)
function createExportFiles($Array)
{
global $MessageProkoll;
$PicList = array('png', 'jpg', 'jpeg', 'gif');
$Cnt = count($Array);
for($i=0;$i<$Cnt;$i++)
{
$File = explode('\\', $Array[$i]);
$FileName = trim(array_pop($File));
$FilePath = IPS_GetKernelDir().substr(str_replace($FileName, '', $Array[$i]), 0, -1);
$FileExtension = str_replace(".", '', substr($FileName, -4));
$isPic = in_array($FileExtension, $PicList);
// Filecontent aus Funktion holen
$FuncName = 'ExtFile_'.preg_replace('/[^a-zA-Z0-9]/', '', $Array[$i]);
$ScrContent = $FuncName();
if($isPic)
{
$ScrContent = base64_decode($ScrContent);
}
else
{
$ScrContent = str_replace("@§@", "\\", $ScrContent);
$ScrContent = str_replace("\\'", "'", $ScrContent);
}
// Ordner anlegen, wenn nicht vorhanden
if (!is_dir($FilePath))
mkdir ($FilePath , 0777, true);
// schreiben der Content-Datei
$file = $FilePath.'\\'.$FileName;
$handle = fopen($file, "w");
$result = fwrite($handle, $ScrContent);
if($result)
{
$MessageProkoll['extFiles']['OK'][] = $file;
}
else
{
$MessageProkoll['extFiles']['Failure'][] = $file;
}
fclose($handle);
}
}
// Array Variablenprofile-Inventory erstellen
function createVarProfileInventory()
{
global $VProfInv;
if(@$VProfInv[0] != NULL)
{
for($i=0;$i<count($VProfInv);$i++)
{
$SubSet[] = explode('|', substr(preg_replace("/
/s", "", $VProfInv[$i]),0, -1));
}
for($p=0;$p<count($SubSet);$p++)
{
$SubSet[$p][0] = substr($SubSet[$p][0], 0, -1);
$SubSet[$p][1] = substr(@$SubSet[$p][1], 0, -1);
$Profiles[$p] = explode(';', $SubSet[$p][0]);
for($i=0;$i<count($Profiles[$p]);$i++)
{
$Key = explode(',', $Profiles[$p][$i])[0];
$Value = explode(',', $Profiles[$p][$i])[1];
$ProfileObj[$Key] = $Value;
}
$VarProfile[$p] = $ProfileObj;
// Associations hinzufügen
if(@$SubSet[$p][1] != NULL)
{
$AssRaw = explode('§', $SubSet[$p][1]);
for($i=0;$i<count($AssRaw);$i++)
{
$AssBlock = explode(';', $AssRaw[$i]);
for($v=0;$v<4;$v++)
{
if($AssBlock[$v] != NULL)
{
$Key = explode(',',($AssBlock[$v]))[0];
$Value = explode(',',($AssBlock[$v]))[1];
$ValuePair[$Key] = $Value;
}
}
$newAssBlock[] = $ValuePair;
unset($ValuePair);
}
$VarProfile[$p]['Associations'] = $newAssBlock;
unset($newAssBlock);
unset($AssBlock[$p]);
}
}
$MessageProkoll['Info'][] = "#1010 VarProfil-Array erstell";
return $VarProfile;
}
}
// Function Variablenprofil anlegen
function createVarProfile($VarProfile)
{
global $Parameters;
if(isset($VarProfile[0]))
{
// Profile-Array durchgehen
for($i=0;$i<count($VarProfile);$i++)
{
$Profilname = $VarProfile[$i]['ProfileName'];
$isSystemProfile = strpos($Profilname, '~');
if(($Parameters['VarProfile'] == 1) && (IPS_VariableProfileExists($Profilname)) && ($isSystemProfile === false))
{
$MessageProkoll['Install']['OK'] = "#2011 Profil $Profilname wird gelöscht";
if(IPS_VariableProfileExists($Profilname)) IPS_DeleteVariableProfile($Profilname);
}
else
{
$MessageProkoll['Install']['User'] = "#2010 bestehendes Variablen-Profil $Profilname wird nicht überschrieben (Systemprofil oder Option abgeschaltet)";
}
// Variablen-Profil anlegen (nur Neuanlage)
if((!IPS_VariableProfileExists($Profilname))&& ($isSystemProfile === false))
{
IPS_CreateVariableProfile($Profilname, (int)$VarProfile[$i]['ProfileType']);
IPS_SetVariableProfileText($Profilname, $VarProfile[$i]['Prefix'], $VarProfile[$i]['Suffix']);
IPS_SetVariableProfileValues($Profilname, (float)$VarProfile[$i]['MinValue'], (float)$VarProfile[$i]['MaxValue'], (float)$VarProfile[$i]['StepSize']);
IPS_SetVariableProfileDigits($Profilname, (int)$VarProfile[$i]['Digits']);
IPS_SetVariableProfileIcon($Profilname, $VarProfile[$i]['Icon']);
$MessageProkoll['Install']['OK'] = "#2012 Profil $Profilname angelegt";
// Associations setzen
if(isset($VarProfile[$i]['Associations']))
{
$Ass = $VarProfile[$i]['Associations'];
for($a=0;$a<count($Ass);$a++)
{
// Falls Assoziation "Name und Icon" leer sind, wird Leerzeichen bei Name eingefügt (sonst Fehlermeldung
// bei Assoziations-Zuweisung
if(($Ass[$a]['Name'] == NULL) && ($Ass[$a]['Icon'] == NULL)) $Ass[$a]['Name'] = ' ';
IPS_SetVariableProfileAssociation($Profilname, (float)$Ass[$a]['Value'], $Ass[$a]['Name'], $Ass[$a]['Icon'], (int)$Ass[$a]['Color']);
}
$MessageProkoll['Install']['OK'] = "#2013 Profilassociations für Profil $Profilname angelegt";
}
}
}
return;
}
}
// Objekt-Tree generieren und Childs holen
function createInventoryObjects()
{
global $Inv;
global $IObjects;
$DataSet = explode(';', substr(preg_replace("/\r|
/s", "", $Inv[1]),0, -1));
$ObjID = (int)explode(',', $DataSet[0])[1];
$Objects[0] = createObject($ObjID);
if(isset($Objects[0]['ChildrenIDs']) != NULL)
$Objects[0]['ChildrenIDs'] = createChildObjects($Objects[0]['ChildrenIDs']);
return $Objects;
}
// rekursive Objektanlage aller Objekte im Ziel-Projekt
function createObjectsTree($Objects)
{
//global $Objects;
for($i=0;$i<count($Objects);$i++)
{
// Objekt anlegen
$Objects[$i] = Objekteanlegen($Objects[$i]);
// nach Childs durchsuchen
if(isset($Objects[$i]['ChildrenIDs']))
{
for($ch=0;$ch<count($Objects[$i]['ChildrenIDs']);$ch++)
{
$Objects[$i]['ChildrenIDs'][$ch]['newParentID'] = $Objects[$i]['newObjectID'];
}
// nächste Rekursion:
$newObjects = $Objects[$i]['ChildrenIDs'];
$Objects[$i]['ChildrenIDs'] = createObjectsTree($newObjects);
}
}
return $Objects;
}
// Inventory rekursiv abarbeiten und Einzelobjekte zur Anlage übergeben
function createChildObjects($Childs)
{
for($i=0;$i<count($Childs);$i++)
{
$Childs[$i] = createObject($Childs[$i]);
if(isset($Childs[$i]['ChildrenIDs']))
{
$newChilds = $Childs[$i]['ChildrenIDs'];
$Childs[$i]['ChildrenIDs'] = createChildObjects($newChilds);
}
}
return $Childs;
}
// Einzel-Objekt aus Inventory generieren
function createObject($ObjID)
{
global $Inv;
global $Parameters;
global $lastInvObj;
// Inventory nach Objekt-ID durchsuchen und Array-ID zurückgeben
for($s=0;$s<count($Inv);$s++)
{
if(strstr($Inv[$s], 'ObjectID,'.$ObjID)) $Key = $s;
}
$DataSet = explode(';', substr(preg_replace("/\r|
/s", "", $Inv[$Key]),0, -1));
// Objekt Key-Value Zuordnung
for($p=0;$p<count($DataSet);$p++)
{
$Key = explode(',', $DataSet[$p])[0];
$Value = explode(',', $DataSet[$p])[1];
$Object[$Key] = $Value;
}
// newObjectID aus lastInventory (Inst-Protokoll) ankleben, wenn Update = 1
if($Parameters['Update'] == 1)
{
for($l=0;$l<count($lastInvObj);$l++)
{
if($Object['ObjectID'] == $lastInvObj[$l]['ObjectID'])
$Object['newObjectID'] = @$lastInvObj[$l]['newObjectID'];
}
}
// Child-IDs ankleben
for($i=0;$i<count($Inv);$i++)
{
$DataSet = explode(';', substr(preg_replace("/\r|
/s", "", $Inv[$i]),0, -1));
for($p=0;$p<count($DataSet);$p++)
{
$Key = explode(',', $DataSet[$p])[0];
$Value = explode(',', $DataSet[$p])[1];
$Subject[$Key] = $Value;
}
if(@$Subject['ParentID'] == $Object['ObjectID']) $Object['ChildrenIDs'][] = $Subject['ObjectID'];
}
return $Object;
}
// +++ Function ZielProjekt-Objekte anlegen ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function Objekteanlegen($Object)
{
global $Parameters;
global $MessageProkoll;
$MessageProkoll['Install']['OK'][] = "#3011 Objekt ".$Object['ObjectName'].", altID #".$Object['ObjectID']." zur Anlage übernommen";
// ObjectInfo Zeilenumbruch zurückwandeln
$Object['ObjectInfo'] = str_replace("§&§", "
", $Object['ObjectInfo']);
switch ($Object['ObjectType'])
{
case 0: // Kategorien
if((@$Object['newObjectID'] > 0) && ($Object['isConfigTree'] == 0))
{
$Cat_ID = (int)$Object['newObjectID'];
// prüfen, ob Kategorie tats. noch existiert (wenn nicht: anlegen)
if(!IPS_ObjectExists($Cat_ID)) $Cat_ID = IPS_CreateCategory();
IPS_SetName($Cat_ID, $Object['ObjectName']);
IPS_SetHidden($Cat_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Cat_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Cat_ID, $Object['ObjectInfo']);
IPS_SetIcon($Cat_ID, $Object['ObjectIcon']);
if(isset($Cat_ID, $Object['newParentID'])) IPS_SetParent($Cat_ID, (int)$Object['newParentID']);
if($Cat_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3023 Kategorie-Objekt ".$Object['ObjectName'].", ID #".$Cat_ID." existiert (Update ein)";
$MessageProkoll['Install']['OK'][] = "#3025 Kategorie-Objekt ".$Object['ObjectName'].", ID #".$Cat_ID." neu konfiguriert";
}
elseif((@$Object['isConfigTree'] == 0) || (@$Object['newObjectID'] == 0) || (!IPS_ObjectExists((int)$Object['newObjectID'])))
{
$Cat_ID = IPS_CreateCategory();
$Object['newObjectID'] = $Cat_ID;
if($Cat_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3022 Kategorie-Objekt ".$Object['ObjectName'].", neuID #".$Cat_ID." angelegt";
IPS_SetName($Cat_ID, $Object['ObjectName']);
IPS_SetHidden($Cat_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Cat_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Cat_ID, $Object['ObjectInfo']);
IPS_SetIcon($Cat_ID, $Object['ObjectIcon']);
if(isset($Cat_ID, $Object['newParentID'])) IPS_SetParent($Cat_ID, (int)$Object['newParentID']);
$MessageProkoll['Install']['OK'][] = "#3025 Kategorie-Objekt ".$Object['ObjectName'].", ID #".$Cat_ID." neu konfiguriert";
if($Cat_ID == 0)
$MessageProkoll['Install']['Failure'][] = "#3021 Kategorie-Objekt ".$Object['ObjectName'].", , altID #".$Object['ObjectID']." Neuanlage fehlgeschlagen";
}
else
{
$MessageProkoll['Install']['OK'][] = "#3024 Kategorie-Objekt ".$Object['ObjectName']." nicht neu konfiguriert (Objekt im Config-Bereich)";
}
return $Object;
break;
case 1: // Instanzen
if((@$Object['newObjectID'] > 0) && ($Object['isConfigTree'] == 0))
{
$Inst_ID = (int)$Object['newObjectID'];
// prüfen, ob Kategorie tats. noch existiert (wenn nicht: anlegen)
if(!IPS_ObjectExists($Inst_ID)) $Inst_ID = IPS_CreateInstance($Object['ModuleID']);
if($Inst_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3033 Kategorie-Objekt ".$Object['ObjectName'].", ID #".$Inst_ID." bereits vorhanden (Update ein)";
}
elseif(($Object['isConfigTree'] == 0) || (@$Object['newObjectID'] == 0) || (!IPS_ObjectExists((int)$Object['newObjectID'])))
{
$Inst_ID = IPS_CreateInstance($Object['ModuleID']);
if($Inst_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3032 Instanz-Objekt ".$Object['ObjectName'].", neuID #".$Inst_ID." angelegt";
if($Inst_ID == 0)
$MessageProkoll['Install']['Failure'][] = "#3031 Instanz-Objekt ".$Object['ObjectName'].", , altID #".$Object['ObjectID']." Neuanlage fehlgeschlagen";
}
else
{
$MessageProkoll['Install']['OK'][] = "#3034 Instanz-Objekt ".$Object['ObjectName']." nicht neu konfiguriert (Objekt im Config-Bereich)";
}
IPS_SetName($Inst_ID, $Object['ObjectName']);
if(isset($Inst_ID, $Object['newParentID'])) IPS_SetParent($Inst_ID, (int)$Object['newParentID']);
IPS_SetHidden($Inst_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Inst_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Inst_ID, $Object['ObjectInfo']);
IPS_SetIcon($Inst_ID, $Object['ObjectIcon']);
IPS_ApplyChanges($Inst_ID);
$Object['newObjectID'] = $Inst_ID;
if($Inst_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3035 Instanz-Objekt ".$Object['ObjectName'].", neuID #".$Inst_ID." neu konfiguriert";
return $Object;
break;
case 2: // Variablen, nur anlegen, wenn sie nicht mit einer Instanz verküpft sind ($Object['ObjectIsReadOnly'] == 0)
if((int)$Object['ObjectIsReadOnly'] == 0)
{
$ah_ID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0]; // Archive Handler
if((@$Object['newObjectID'] > 0) && ($Object['isConfigTree'] == 0))
{
$Var_ID = (int)$Object['newObjectID'];
// prüfen, ob Var tats. noch existiert (wenn nicht: anlegen)
if(!IPS_ObjectExists($Var_ID)) $Var_ID = IPS_CreateVariable((int)$Object['ValueType']);
if($Var_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3043 Variablen-Objekt ".$Object['ObjectName'].", ID #".$Var_ID." bereits vorhanden (Update ein)";
}
elseif((@$Object['isConfigTree'] == 0) || (@$Object['newObjectID'] == 0)|| (!IPS_ObjectExists((int)$Object['newObjectID'])))
{
$Var_ID = IPS_CreateVariable((int)$Object['ValueType']);
if($Var_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3042 Variablen-Objekt ".$Object['ObjectName'].", neuID #".$Var_ID." angelegt";
if($Var_ID == 0)
$MessageProkoll['Install']['Failure'][] = "#3041 Variablen-Objekt ".$Object['ObjectName'].", , altID #".$Object['ObjectID']." Neuanlage fehlgeschlagen";
}
else
{
$MessageProkoll['Install']['OK'][] = "#3044 Variablen-Objekt ".$Object['ObjectName']." nicht neu konfiguriert (Objekt im Config-Bereich)";
}
//echo "Variablen-Konfiguration für Var ID $Var_ID startet:
";
IPS_SetName($Var_ID, $Object['ObjectName']);
if(isset($Var_ID, $Object['newParentID'])) IPS_SetParent($Var_ID, (int)$Object['newParentID']);
IPS_SetHidden($Var_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Var_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Var_ID, $Object['ObjectInfo']);
IPS_SetIcon($Var_ID, $Object['ObjectIcon']);
//if($Object['VariableCustomAction'] > 0)
//IPS_SetVariableCustomAction($Var_ID, $Object['VariableCustomAction']);
IPS_SetVariableCustomProfile($Var_ID, $Object['VariableCustomProfile']);
AC_SetLoggingStatus($ah_ID, $Var_ID, (bool)$Object['LoggingStatus']);
AC_SetAggregationType($ah_ID, $Var_ID, (int)$Object['AggregationType']);
$Object['newObjectID'] = $Var_ID;
if($Var_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3045 Variablen-Objekt ".$Object['ObjectName'].", neuID #".$Var_ID." neu konfiguriert";
}
else
{
$MessageProkoll['Install']['User'][] = "#3044 Variablen-Objekt ".$Object['ObjectName'].", altID #".$Object['ObjectID']." nicht angelegt (wird automatisch durch IPS-Modul angelegt)";
}
return $Object;
break;
case 3: // Scripte
// bei ScriptOverwrite = 0: Prüfen, ob manuell benanntes Scriptfile im System vorhanden (Scriptabbuch, wenn ja)
if(($Parameters['Update'] == 0) && ($Parameters['ScrOverwrite'] == 0))
{
if(explode('.', $Object['ScriptFile'])[0] != $Object['ScriptID'])
{
$FileCheck = file_exists(IPS_GetKernelDir()."scripts\\".$Object['ScriptFile']);
if($FileCheck) exit('#3058 Scriptabbruch: Script '.$Object['ScriptFile'].' bereits im Script-Ordner vorhanden,
bereits installierte Zielprojekt-Objekte müssen manuell gelöscht werden');
}
}
$Scr_Name = $Object['ObjectName'];
$Scr_oldID = @IPS_GetScriptIDByFile($Object['ScriptFile']);
$ScrFunctionName = preg_replace('/[^a-zA-Z]/', '',$Scr_Name).$Object['ObjectID'];
$Scr_Content = $ScrFunctionName();
$Scr_Content = stripslashes($ScrFunctionName());
$Scr_Content = str_replace('§\'', "'", $Scr_Content);
$Scr_Content = str_replace("@§@", "\\",$Scr_Content);
// Vorabcheck Script exist
if(isset($Object['newObjectID']) && (@$Object['newObjectID'] >0))
{
$ScrExist = true;
$Scr_ID = (int)$Object['newObjectID'];
if(!IPS_ObjectExists((int)$Object['newObjectID']))
{
$ScrExist = false;
$Scr_ID = NULL;
}
}
else
{
$ScrExist = false;
}
// Script-Neuanlage
if(($ScrExist == false))
{
$Scr_ID = IPS_CreateScript(0);
IPS_SetName($Scr_ID, $Scr_Name);
if(isset($Scr_ID, $Object['newParentID'])) IPS_SetParent($Scr_ID, (int)$Object['newParentID']);
$fh = fopen(IPS_GetKernelDir()."scripts\\".$Scr_ID.'.ips.php', 'w') or die ("can't open file");
fwrite($fh, $Scr_Content);
fclose($fh);
IPS_SetScriptFile($Scr_ID, $Scr_ID.'.ips.php');
IPS_SetHidden($Scr_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Scr_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Scr_ID, $Object['ObjectInfo']);
IPS_SetIcon($Scr_ID, $Object['ObjectIcon']);
$Scr_IPS_ID = (int)explode('.',$Object['ScriptFile'])[0];
$Object['newObjectID'] = $Scr_ID;
//Scriptfile umbenenen, wenn anderer Name als IPS-ID vergeben
$ScrFilePrefix = explode('.', $Object['ScriptFile'])[0];
if($ScrFilePrefix != $Object['ObjectID'])
{
rename($Scr_ID.".ips.php", $Object['ScriptFile']);
$result = IPS_SetScriptFile($Scr_ID, $Object['ScriptFile']);
if($result)
$MessageProkoll['Install']['OK'][] = "#3053 Script-Objekt ".$Object['ObjectName'].", File in ".$Object['ScriptFile']." neu angelegt und umbenannt";
}
else
{
if($Scr_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3052 Script-Objekt ".$Object['ObjectName'].", neuID #".$Scr_ID." neu angelegt";
}
}
elseif(($ScrExist == true) && ($Object['isConfigTree'] != 1))
{
// bei ScriptOverwrite = 0: Prüfen, ob Scriptfile im System vorhanden (Scriptabbuch, wenn ja)
if(($Parameters['Update'] == 1) && ($Parameters['ScrOverwrite'] == 0))
{
if(explode('.', $Object['ScriptFile'])[0] != $Object['ScriptID'])
{
$FileCheck = file_exists(IPS_GetKernelDir()."scripts\\".$Object['ScriptFile']);
if($FileCheck) exit('#3059 Scriptabbruch: Script '.$Object['ScriptFile'].' bereits im Script-Ordner vorhanden,
bereits installierte Zielprojekt-Objekte müssen manuell gelöscht werden');
}
}
// Update (nur, wenn ConfigKategorie-Flag nicht gesetzt)
if($ScrExist)
{
// Filename mit ID oder individuell benannt
$ScrFilePrefix = explode('.', $Object['ScriptFile'])[0];
if($ScrFilePrefix == $Object['ObjectID'])
{
$ScrFileName = $Object['newObjectID'].'.ips.php';
$ScrOverwrite = 1;
}
else
{
$ScrFileName = $Object['ScriptFile'];
if($Parameters['ScrOverwrite'] == 1) {$ScrOverwrite = 1;}else{$ScrOverwrite = 0;}
}
}
else
{
$ScrFileName = $Object['ScriptFile'];
$ScrOverwrite = 1;
}
// Script-File löschen (wenn vorhanden und ScriptOverwrite = 1) und neu schreiben
$scrReturn = 0;
if($ScrExist && $ScrOverwrite)
{
unlink(IPS_GetKernelDir()."scripts\\".$ScrFileName);
$fh = fopen(IPS_GetKernelDir()."scripts\\".$ScrFileName, 'w') or die ("can't open file");
$MessageProkoll['Install']['OK'][] = "#3055 Script-File ".$Object['ObjectName'].", ".$ScrFileName.", gelöscht";
$scrReturn = fwrite($fh, $Scr_Content);
fclose($fh);
IPS_SetHidden($Scr_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Scr_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Scr_ID, $Object['ObjectInfo']);
IPS_SetIcon($Scr_ID, $Object['ObjectIcon']);
}
// Meldungen für Inst-Protokoll
if($scrReturn)
{
$MessageProkoll['Install']['OK'][] = "#3051 Script-File ".$Object['ObjectName'].", neu geschrieben";
}
elseif($ScrOverwrite == 0)
{
$MessageProkoll['Install']['OK'][] = "#3054 Script-File ".$Object['ObjectName'].', nicht überschrieben (Option $existsScriptsoverwrite deaktiviert)';
}
else
{
$MessageProkoll['Install']['Failure'][] = "#3055 Script-File ".$Object['ObjectName'].", neu schreiben fehlgeschlagen";
}
}
return $Object;
break;
case 4: // Events
$Evnt_Name = $Object['ObjectName'];
if((@$Object['newObjectID'] > 0) && ($Object['isConfigTree'] == 0))
{
$Evnt_ID = (int)$Object['newObjectID'];
// prüfen, ob Var tats. noch existiert (wenn nicht: anlegen)
if(!IPS_ObjectExists($Evnt_ID)) $Evnt_ID = IPS_CreateEvent((int)$Object['EventType']);
if($Evnt_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3063 Event-Objekt ".$Object['ObjectName'].", ID #".$Evnt_ID." bereits vorhanden (Update ein)";
}
elseif((@$Object['isConfigTree'] == 0) || (@$Object['newObjectID'] == 0)|| (!IPS_ObjectExists((int)$Object['newObjectID'])))
{
$Evnt_ID = IPS_CreateEvent((int)$Object['EventType']);
if($Evnt_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3062 Event-Objekt ".$Object['ObjectName'].", neuID #".$Evnt_ID." angelegt";
if($Evnt_ID == 0)
$MessageProkoll['Install']['Failure'][] = "#3061 Event-Objekt ".$Object['ObjectName'].", , altID #".$Object['ObjectID']." Neuanlage fehlgeschlagen";
}
else
{
$MessageProkoll['Install']['OK'][] = "#3064 Event-Objekt ".$Object['ObjectName']." nicht neu konfiguriert (Objekt im Config-Bereich)";
}
if(isset($Evnt_ID, $Object['newParentID'])) IPS_SetParent($Evnt_ID, (int)$Object['newParentID']);
IPS_SetName($Evnt_ID, $Evnt_Name);
IPS_SetPosition($Evnt_ID, (int)$Object['ObjectPosition']);
IPS_SetHidden($Evnt_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Evnt_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Evnt_ID, $Object['ObjectInfo']);
IPS_SetIcon($Evnt_ID, $Object['ObjectIcon']);
IPS_SetEventLimit($Evnt_ID, (int)$Object['EventLimit']);
// getriggertes Element
if((int)$Object['EventType'] == 0)
{
//!!! (int)$Oject['TriggerVariableID'] Auslöser ID derzeit nur ParentObject, da newTarget noch nicht bekannt.
// Konfiguration von IPS_SetEventTrigger wird erst mit Neuverlinkung abgeschlossen !!
@IPS_SetEventTrigger($Evnt_ID, (int)$Object['TriggerType'], 0);
if((int)$Object['TriggerType'] == 4)
IPS_SetEventTriggerValue($Evnt_ID, $Object['TriggerValue']);
IPS_SetEventTriggerSubsequentExecution($Evnt_ID, (bool)$Object['TriggerSubsequentExecution']);
IPS_SetEventActive($Evnt_ID, true); // Ereignis nach Installation immer aktiv
$MessageProkoll['Install']['OK'][] = "#3065 Event-Objekt ".$Object['ObjectName'].", neuID #".$Evnt_ID." neu konfiguriert und aktiviert";
}
else
{
// zyklisches Element
IPS_SetEventCyclic($Evnt_ID, (int)$Object['CyclicDateType'], (int)$Object['CyclicDateValue'], (int)$Object['CyclicDateDay'], (int)$Object['CyclicDateDayValue'], (int)$Object['CyclicTimeType'], (int)$Object['CyclicTimeValue']);
//if((int)$Object['CyclicDateType'] == 1)
IPS_SetEventCyclicDateBounds($Evnt_ID, (float)$Object['CyclicDateFrom'], (float)$Object['CyclicDateTo']);
//if((int)$Object['CyclicTimeType'] == 1)
IPS_SetEventCyclicTimeBounds($Evnt_ID, (float)$Object['CyclicTimeFrom'], (float)$Object['CyclicTimeTo']);
IPS_SetEventActive($Evnt_ID, false); // Ereignis nach Installation immer inaktiv
$MessageProkoll['Install']['User'][] = "#3066 Event-Objekt ".$Object['ObjectName'].", neuID #".$Evnt_ID." neu konfiguriert, NICHT aktiviert";
}
// PHP-Code einschleusen, wenn vorhanden
$FuncName = 'Event'.$Object['ObjectID'];
if(function_exists($FuncName))
{
$FuncContent = $FuncName();
IPS_SetEventScript($Evnt_ID, $FuncContent);
$MessageProkoll['Install']['OK'][] = "#3067 Event-Objekt ".$Object['ObjectName'].", neuID #".$Evnt_ID." PHP-Code eingebaut";
}
$Object['newObjectID'] = $Evnt_ID;
return $Object;
break;
case 5: // Media-Objekte
$MessageProkoll['Install']['Failure'][] = "#3061 Media-Objekt ".$Object['ObjectName'].", altID #".$Object['ObjectID']." nicht angelegt (Option nicht implementiert)";
return 0;
//return $Object;
break;
case 6: // Links
$Lnk_Name = $Object['ObjectName'];
if((@$Object['newObjectID'] > 0) && ($Object['isConfigTree'] == 0))
{
$Lnk_ID = (int)$Object['newObjectID'];
// prüfen, ob Lnk tats. noch existiert (wenn nicht: anlegen)
if(!IPS_ObjectExists($Lnk_ID)) $Lnk_ID = IPS_CreateLink();
if($Lnk_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3063 Link-Objekt ".$Object['ObjectName'].", ID #".$Lnk_ID." bereits vorhanden (Update ein)";
}
elseif((@$Object['isConfigTree'] == 0) || (@$Object['newObjectID'] == 0)|| (!IPS_ObjectExists((int)$Object['newObjectID'])))
{
$Lnk_ID = IPS_CreateLink();
if($Lnk_ID > 0)
$MessageProkoll['Install']['OK'][] = "#3072 Link-Objekt ".$Object['ObjectName'].", neuID #".$Lnk_ID." angelegt";
if($Lnk_ID == 0)
$MessageProkoll['Install']['Failure'][] = "#3071 Link-Objekt ".$Object['ObjectName'].", , altID #".$Object['ObjectID']." Neuanlage fehlgeschlagen";
}
else
{
$MessageProkoll['Install']['OK'][] = "#3074 Link-Objekt ".$Object['ObjectName']." nicht neu konfiguriert (Objekt im Config-Bereich)";
}
if(isset($Object['newParentID'])) IPS_SetParent($Lnk_ID, (int)$Object['newParentID']);
IPS_SetName($Lnk_ID, $Lnk_Name);
IPS_SetPosition($Lnk_ID, (int)$Object['ObjectPosition']);
IPS_SetHidden($Lnk_ID, (bool)$Object['ObjectIsHidden']);
IPS_SetPosition($Lnk_ID, (int)$Object['ObjectPosition']);
IPS_SetInfo($Lnk_ID, $Object['ObjectInfo']);
IPS_SetIcon($Lnk_ID, $Object['ObjectIcon']);
//IPS_SetLinkChildID($LinkID, 12345 /*[Objekt #12345 existiert nicht]*/);
//IPS_SetLinkTargetID($LinkID, 12345 /*[Objekt #12345 existiert nicht]*/);
$MessageProkoll['Install']['OK'][] = "#3071 Link-Objekt ".$Object['ObjectName'].", neuID #".$Lnk_ID." neu konfiguriert";
$Object['newObjectID'] = $Lnk_ID;
return $Object;
break;
}
}
// nachträgliche Verlinkung aller neu installierten Objekte
function linknewObjects($ObjLinkTree)
{
global $ObjInstallTree;
global $newTgtID;
global $newObjID;
global $MessageProkoll;
for($i=0;$i<count($ObjLinkTree);$i++)
{
$newObjID = 0;
$newTgtID = 0;
// Inventory nach Variablen-, Script-, Event- und Link-Objekten durchsuchen und neue Target-ID finden
// 2= Variable, 3= Script, 4= Event, 6 = Link
if(($ObjLinkTree[$i]['ObjectType'] == 2) && ($ObjLinkTree[$i]['VariableCustomAction'] >0)) // Scripts nach austauschbaren IDs durchsuchen
{
// neue Target-ID (Action-Script) für Variable finden
$newTargetID = findNewTargetID($ObjInstallTree, $ObjLinkTree[$i]['VariableCustomAction']);
IPS_SetVariableCustomAction((int)$ObjLinkTree[$i]['newObjectID'], (int)$newTargetID);
if($newTargetID >0)
$MessageProkoll['Link']['OK'][] = "#4011 Variablen-Objekt ".$ObjLinkTree[$i]['ObjectName'].", ID #".$ObjLinkTree[$i]['newObjectID'].", neues Actionscript ID $newTargetID zugewiesen";
if($newTargetID == 0)
$MessageProkoll['Link']['Failure'][] = "#4010 Variablen-Objekt ".$ObjLinkTree[$i]['ObjectName'].", ID #".$ObjLinkTree[$i]['newObjectID'].", kein neues Actionscript zugewiesen (keine ID gefunden)";
}
elseif($ObjLinkTree[$i]['ObjectType'] == 3) // Scripts nach austauschbaren IDs durchsuchen
{
// aktuellen Scriptnamen finden
$newObjID = 0;
$Scr = IPS_GetScript((int)$ObjLinkTree[$i]['newObjectID'])['ScriptFile'];
changeObjectIDs_inScript($ObjInstallTree, $Scr);
$MessageProkoll['Link']['OK'][] = "#4021 Script-Objekt ".$ObjLinkTree[$i]['ObjectName'].", ID #".$ObjLinkTree[$i]['newObjectID'].", durchsuche Script nach ID's";
}
elseif(($ObjLinkTree[$i]['ObjectType'] == 4) && ($ObjLinkTree[$i]['EventType'] == 0)) // Neuverlinkung nur für nichtzyklische Events
{
$newTgtID =0;
$newTargetID = findNewTargetID($ObjInstallTree, $ObjLinkTree[$i]['TriggerVariableID']);
// neue Verlinkung setzen
if($newTgtID !=0)
{
IPS_SetEventTrigger((int)$ObjLinkTree[$i]['newObjectID'], (int)$ObjLinkTree[$i]['TriggerType'], $newTgtID);
$MessageProkoll['Link']['OK'][] = "#4031 Event-Objekt ".$ObjLinkTree[$i]['ObjectName'].", ID #".$ObjLinkTree[$i]['newObjectID'].", neu verlinkt - Ziel-ID #$newTgtID";
}
else
{
$MessageProkoll['Link']['User'][] = "#4030 Event-Objekt ".$ObjLinkTree[$i]['ObjectName'].", neue ID #".$ObjLinkTree[$i]['newObjectID'].", NICHT verlinkt, keine gültige TargetID oder kein Target innerhalb des Zielprojektes gefunden";
}
}
elseif($ObjLinkTree[$i]['ObjectType'] == 6)
{
$newTgtID =0;
$newTgtID = findNewTargetID($ObjInstallTree, $ObjLinkTree[$i]['LinkChildID']);
if($newTgtID !=0)
{
IPS_SetLinkTargetID((int)$ObjLinkTree[$i]['newObjectID'], (int)$newTgtID);
$MessageProkoll['Link']['OK'][] = "#4041 Link-Objekt ".$ObjLinkTree[$i]['ObjectName'].", ID #".$ObjLinkTree[$i]['newObjectID'].", neu verlinkt (Ziel-ID $newTgtID)";
}
else
{
$MessageProkoll['Link']['User'][] = "#4040 Link-Objekt ".$ObjLinkTree[$i]['ObjectName'].", ID #".$ObjLinkTree[$i]['newObjectID'].", NICHT verlinkt, kein Target innerhalb des Zielprojektes gefunden";
}
}
// Objekt-Childs durchsuchen
if(isset($ObjLinkTree[$i]['ChildrenIDs']))
{
$newLnkTree = $ObjLinkTree[$i]['ChildrenIDs'];
linknewObjects($newLnkTree);
}
}
unset($ObjLinkTree);
}
// sucht neue Target-ID für verlinkte Objekte
function findNewTargetID($ObjLinkTree, $oldTargetID)
{
global $newTgtID;
for($i=0;$i<count($ObjLinkTree);$i++)
{
if($ObjLinkTree[$i]['ObjectID'] == $oldTargetID)
{
$newTgtID = $ObjLinkTree[$i]['newObjectID'];
$i = 9999; // Abbruch, wenn ID gefunden
}
// in Childs suchen (rekursiv)
if((isset($ObjLinkTree[$i]['ChildrenIDs'])) && ($newTgtID == 0))
{
$newObjInstTree = $ObjLinkTree[$i]['ChildrenIDs'];
findNewTargetID($newObjInstTree, $oldTargetID);
unset($newObjInstTree);
}
}
return $newTgtID;
}
// Austausch der Objekt-IDs im Script
function changeObjectIDs_inScript($ObjLinkTree, $Scr)
{
global $newObjID;
global $MessageProkoll;
$ScrContent = file(IPS_GetKernelDir()."scripts\\".$Scr);
$file = fopen(IPS_GetKernelDir()."scripts\\".$Scr, "w");
$search = '/[^0-9\/\{-]([1-5][0-9]{4})[^0-9]/'; // suche 5stellige Zahlen von 10.000 - 59.999
$counter = 0;
foreach ($ScrContent as $z)
{
$newObjID = NULL;
$newObjectID = NULL;
preg_match($search, $z, $matches);
if(isset($matches[1]))
{
$oldID = $matches[1];
$newObjectID = findNewObjectID($ObjLinkTree, $oldID);
if(($matches[1] == $oldID) && ($newObjectID >0))
{
$z = str_replace($oldID, $newObjectID, $z);
$MessageProkoll['Script']['OK'][] = "#5011 Script ID#$Scr: Inhalt verändert: Zeile ".($counter + 1).", alte Target-ID #$oldID gegen neue ID #$newObjectID getauscht";
}
else
{
$MessageProkoll['Script']['User'][] = "#5010 Script ID#$Scr: Inhalt NICHT verändert: Zeile ".($counter + 1).", alte Target-ID #$oldID nicht innerhalb des Projektes";
}
}
fwrite($file, $z);
$counter ++;
}
unset($ScrContent);
unset($ObjLinkTree);
fclose($file);
return;
}
// sucht neue Object-ID für Script-Variablen
function findNewObjectID($ObjTree, $oldObjID)
{
global $newObjID;
for($i=0;$i<count($ObjTree);$i++)
{
if($ObjTree[$i]['ObjectID'] == $oldObjID)
{
$newObjID = $ObjTree[$i]['newObjectID'];
$i = 9999; // Abbruch, wenn ID gefunden
}
// in Childs suchen (rekursiv)
if(isset($ObjTree[$i]['ChildrenIDs']))
{
$newObjTree = $ObjTree[$i]['ChildrenIDs'];
findNewObjectID($newObjTree, $oldObjID);
unset($newObjTree);
}
}
unset($ObjTree);
return $newObjID;
}
############################## WFE-Items installieren ####################################################
function installWFC_Items($WFC_TargetID)
{
global $ObjInstallTree;
global $newObjID;
global $WFC_existItemoverwrite;
global $MessageProkoll;
$MessageProkoll['WFC']['OK'][] = "#6001 lade WFC-Objektbaum";
// Inventory des Ziel-WFC laden
if(@WFC_GetItems($WFC_TargetID))
$WFC_Target_Inventory = WFC_GetItems($WFC_TargetID);
// Inventory des Quell-Projektes laden
$WFC_Raw = loadWFCInventory();
if(isset($WFC_Target_Inventory[0]) && ($WFC_Raw[0] != NULL))
{
// Quell-Inventory durchgehen und Items installieren
$MessageProkoll['WFC']['OK'][] = "#6002 durchsuche QuellWFC-Objektbaum";
$Cnt = count($WFC_Raw);
for($i=0;$i<$Cnt;$i++)
{
// Inventory-String letzte 2 Zeichen abschneiden
$str = substr($WFC_Raw[$i], 0, -2);
// Item-Zeilen in Key|Value-Sätze zerlegen (1.Stufe)
$WFC_DataSet = explode(';', $str);
// Key|Value-Sätze in Key und Value zerlegen (2. Stufe)
for($e=0;$e<count($WFC_DataSet);$e++)
{
$WFC_Values[$e] = explode('|', $WFC_DataSet[$e]);
}
// Suche für alte TargetIDs neue Target-ID und tausche diese aus (nur Objekte mir Target-ID im Objektbaum)
$newTargetID = NULL;
unset ($matches);
$search = '/[1-5]\d\d\d\d/'; // suche 5stellige Zahlen von 10.000 - 59.999
if($WFC_Values[1][1] == 'Category' || $WFC_Values[1][1] == 'InfoWidget' || $WFC_Values[1][1] == 'Graph' || $WFC_Values[1][1] == 'ContentChanger')
{
preg_match($search, $WFC_Values[2][1], $matches);
if(isset($matches[0])) $oldTargetID = $matches[0];
if(isset($matches[0])) $newTargetID = findNewObjectID($ObjInstallTree, $matches[0]);
if($newTargetID != NULL)
{
$WFC_Values[2][1] = str_replace($oldTargetID, $newTargetID, $WFC_Values[2][1]);
$MessageProkoll['WFC']['OK'][] = "#6011 WFC altTargetID #$oldTargetID gegen newTargetID #$newTargetID getauscht";
}
else
{
$MessageProkoll['WFC']['User'][] = "#6012 WFC Item ".$WFC_Values[1][1].", ".$WFC_Values[3][1]." keine neue TargetID gefunden";
}
}
unset($newObjID);
// Namen für neues WFC-Item ändern (Präfix "Cpy" hinzufügen)
if(strpos($WFC_Values[2][1], 'roottp') == 0)
$WFC_Values[2][1] = str_replace('"name":"', '"name":"Cpy', $WFC_Values[2][1]);
// Namen für ID (Item) ändern
if($WFC_Values[3][1] != 'roottp')
$WFC_Values[3][1] = str_replace($WFC_Values[3][1], 'Cpy'.$WFC_Values[3][1], $WFC_Values[3][1]);
// Namen für ParentID (Item) ändern
if($WFC_Values[4][1] != 'roottp')
$WFC_Values[4][1] = str_replace($WFC_Values[4][1], 'Cpy'.$WFC_Values[4][1], $WFC_Values[4][1]);
// Root-Item aus Quell-Projekt definieren (wird bei Updates nicht gelöscht)
if($i == 0) $WFC_RootItem = $WFC_Values[3][1];
// Ziel-Inventory nach vorhandenen Elementen durchsuchen
$Item_exist = 0;
foreach($WFC_Target_Inventory as $value)
{
if($value['ID'] == $WFC_Values[3][1])
{
if($WFC_existItemoverwrite == 0) // wenn Überschreib-Obtion abgeschaltet
{
$Item_exist = 1;
$MessageProkoll['WFC']['User'][] = "#6020 WFC-Item ".$WFC_Values[3][1]." nicht gelöscht (Option abgeschaltet)";
break;
}
elseif($WFC_Values[3][1] != $WFC_RootItem)
{
WFC_DeleteItem($WFC_TargetID, $WFC_Values[3][1]); // vorhandenes Item löschen
$MessageProkoll['WFC']['OK'][] = "#6021 WFC-Item ".$WFC_Values[3][1]." gelöscht (Option eingeschaltet)";
}
if($WFC_Values[3][1] == $WFC_RootItem)
{
$Item_exist = 1;
}
}
}
// Wenn Item im Ziel-WFC nicht vorhanden, dann installieren
if($Item_exist == 0)
{
if($WFC_Values[3][1] != 'roottp')
WFC_AddItem($WFC_TargetID, $WFC_Values[3][1], $WFC_Values[1][1], $WFC_Values[2][1], $WFC_Values[4][1]);
WFC_UpdatePosition($WFC_TargetID, $WFC_Values[3][1], (int)$WFC_Values[5][1]);
WFC_UpdateVisibility($WFC_TargetID, $WFC_Values[3][1], (bool)$WFC_Values[6][1]);
$MessageProkoll['WFC']['OK'][] = "#6031 WFC-Item ".$WFC_Values[3][1]." installiert";
}
else
{
$MessageProkoll['WFC']['OK'][] = "#6030 WFC-Item ".$WFC_Values[3][1]." nicht installiert, da bereits vorhanden";
}
unset($WFC_Values);
unset($WFC_DataSet);
}
}
else
{
$MessageProkoll['WFC']['User'][] = "#6000 WFCObjektbaum: keine Installation möglich (kein Quell-Inventory oder kein Ziel-WFE gefunden)";
}
}
// Install-Script ins Projekt-Config Verzeichnis verschieben
function moveInstallScripttoConfig()
{
global $ObjInstallTree;
global $MessageProkoll;
$RootID = (int)$ObjInstallTree[0]['newObjectID'];
$search = 'Config';
$SrchResult = searchConfigDir($ObjInstallTree);
if($SrchResult > 0)
{
IPS_SetParent($_IPS['SELF'], $SrchResult);
$MessageProkoll['Info'][] = "#1011 Install-Script: Install-Script und -Protokoll in Config-Ordner verschoben";
}
else
{
$MessageProkoll['Info'][] = "#1010 Install-Script: Install-Script und -Protokoll NICHT verschoben (kein Config-Ordner im Zielprojekt gefunden)";
}
return;
}
// Funktion zum rekursiven Durchsuchen des Obj-Inventorys nach Config-Dir
function searchConfigDir($Array)
{
global $SrchResult;
$search = 'Config';
$Cnt = count($Array);
for($i=0;$i<$Cnt;$i++)
{
if($Array[$i]['ObjectName'] == $search)
{
$SrchResult = (int)$Array[$i]['newObjectID'];
}
if((isset($Array[0]['ChildrenIDs'])) && (!isset($SrchResult)))
{
$newArray = $Array[0]['ChildrenIDs'];
searchConfigDir($newArray);
}
}
unset($Array);
unset($newArray);
return $SrchResult;
}
// Protokoll ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function InstallProtocoll()
{
global $MessageProkoll;
// +++ Installations-Parameter +++++++++++++++++++++++++
$ps ='// +++ Installationsprotokoll vom '.date("d.m.Y, H:i:s", time()).' ++++++++++++++++++++++++++++++++++++++++++++'."
";
$ps .="/** +++++++++++++++++ Installationsparameter +++++++++++++++++++++++++++++++++++++++++++++++++++++++
";
$ps .=" Update: ".$MessageProkoll['InstallParameters']['Update']."
";
$ps .=" Variablenprofile installieren: ".$MessageProkoll['InstallParameters']['VarProfile']."
";
$ps .=" benamste Scripte überschreiben: ".$MessageProkoll['InstallParameters']['ScrOverwrite']."
";
$ps .=" WFC-Items überschreiben: ".$MessageProkoll['InstallParameters']['WFCItems']."
";
$ps .="+++++++++++++++++++++ Installationsparameter Ende ++++++++++++++++++++++++++++++++++++++++++++++++++
";
// +++ Infos ++++++++++++++++++++++++++++++++++++++
$ps .="+++++++++++++++++++++ Installations-Infos ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
";
for($i=0;$i<count(@$MessageProkoll['Info']);$i++)
{
$ps .=" ".@$MessageProkoll['Info'][$i]."
";
}
$ps .="+++++++++++++++++++++ Installations-Infos Ende +++++++++++++++++++++++++++++++++++++++++++++++++++++
";
// +++ Installation ++++++++++++++++++++++++++++++++++++++
$ps .="++++++++++++++++++++ Objekt-Installation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
";
$ps .=" --- OK-Meldungen --------------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Install']['OK']);$i++)
{
$ps .=" ".@$MessageProkoll['Install']['OK'][$i]."
";
}
$ps .=" --- OK-Meldungen Ende ---------------------------------------------------------------------
";
$ps .=" --- Kontrolle durch User erforderlich -----------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Install']['User']);$i++)
{
$ps .=" ".@$MessageProkoll['Install']['User'][$i]."
";
}
$ps .=" --- Kontrolle durch User erforderlich Ende-------------------------------------------------
";
$ps .=" --- Fehlermeldungen -----------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Install']['Failure']);$i++)
{
$ps .=" ".@$MessageProkoll['Install']['Failure'][$i]."
";
}
$ps .=" --- Fehlermeldungen Ende-------------------------------------------------------------------
";
// +++ WFC-Objekte installieren und verlinken ++++++++++++++++++++++++++++++++++++++
$ps .=" +++++++++++++++++ WFC-Objekte installieren und verlinken ++++++++++++++++++++++++++++++++++++++++
";
$ps .=" --- OK-Meldungen --------------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['WFC']['OK']);$i++)
{
$ps .=" ".@$MessageProkoll['WFC']['OK'][$i]."
";
}
$ps .=" --- OK-Meldungen Ende ---------------------------------------------------------------------
";
$ps .=" --- Kontrolle durch User erforderlich -----------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['WFC']['User']);$i++)
{
$ps .=" ".@$MessageProkoll['WFC']['User'][$i]."
";
}
$ps .=" --- Kontrolle durch User erforderlich Ende-------------------------------------------------
";
$ps .=" --- Fehlermeldungen -----------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['WFC']['Failure']);$i++)
{
$ps .=" ".@$MessageProkoll['WFC']['Failure'][$i]."
";
}
$ps .=" --- Fehlermeldungen Ende-------------------------------------------------------------------
";
// +++ Scripte nachbearbeiten ++++++++++++++++++++++++++++++++++++++
$ps .=" +++++++++++++++++ ID Austausch in Scripts ++++++++++++++++++++++++++++++++++++++++++++++++++++++
";
$ps .=" --- OK-Meldungen --------------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Script']['OK']);$i++)
{
$ps .=" ".@$MessageProkoll['Script']['OK'][$i]."
";
}
$ps .=" --- OK-Meldungen Ende ---------------------------------------------------------------------
";
$ps .=" --- Kontrolle durch User erforderlich -----------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Script']['User']);$i++)
{
$ps .=" ".@$MessageProkoll['Script']['User'][$i]."
";
}
$ps .=" --- Kontrolle durch User erforderlich Ende-------------------------------------------------
";
$ps .=" --- Fehlermeldungen -----------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Script']['Failure']);$i++)
{
$ps .=" ".@$MessageProkoll['Script']['Failure'][$i]."
";
}
$ps .=" --- Fehlermeldungen Ende-------------------------------------------------------------------
";
// +++ Objekte neu verlinken ++++++++++++++++++++++++++++++++++++++
$ps .=" +++++++++++++++++ Objekte neu verlinken ++++++++++++++++++++++++++++++++++++++++++++++++++++++
";
$ps .=" --- OK-Meldungen --------------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Link']['OK']);$i++)
{
$ps .=" ".@$MessageProkoll['Link']['OK'][$i]."
";
}
$ps .=" --- OK-Meldungen Ende ---------------------------------------------------------------------
";
$ps .=" --- Kontrolle durch User erforderlich -----------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Link']['User']);$i++)
{
$ps .=" ".@$MessageProkoll['Link']['User'][$i]."
";
}
$ps .=" --- Kontrolle durch User erforderlich Ende-------------------------------------------------
";
$ps .=" --- Fehlermeldungen -----------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['Link']['Failure']);$i++)
{
$ps .=" ".@$MessageProkoll['Link']['Failure'][$i]."
";
}
$ps .=" --- Fehlermeldungen Ende-------------------------------------------------------------------
";
// +++ externe Files installiert ++++++++++++++++++++++++++++++++++++++
$ps .=" +++++++++++++++++ Installation externe Files +++++++++++++++++++++++++++++++++++++++++++++++++
";
$ps .=" --- OK-Meldungen --------------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['extFiles']['OK']);$i++)
{
$ps .=" ".@$MessageProkoll['extFiles']['OK'][$i]."
";
}
$ps .=" --- OK-Meldungen Ende ---------------------------------------------------------------------
";
$ps .=" --- Fehlermeldungen -----------------------------------------------------------------------
";
for($i=0;$i<count(@$MessageProkoll['extFiles']['Failure']);$i++)
{
$ps .=" ".@$MessageProkoll['extFiles']['Failure'][$i]."
";
}
$ps .=" --- Fehlermeldungen Ende-------------------------------------------------------------------
";
$ps .="**/
";
echo $ps;
return $ps;
}
############################### Installations-Protokoll ##################################################
// +++ erstellt Installations-Protokoll Objekt-Inventory für Exportscript ++++++++++++++
function createObjInventoryProtocol($ObjInstInv)
{
// Object-Inventory Function-Kopf generieren
$s = "<?
";
$s .= InstallProtocoll();
$s .= "// ### InstallationsProtokoll Ende #################################################
";
$s .= '// Function Object Inventory Install-Protocol'."
";
$s .= 'function ObjectInventoryProtocol()'."
";
$s .= '{'."
";
$s .= '$raw = \''."
";
// Array Copy-Parameters
$s .= createCopyParametersString();
// Daten der Einzelobjekte aus Objekt-Inventory an Export-String anfügen
$ObjStringArray = ChildGenerator($ObjInstInv);
//print_r($ObjInstInv);
$s .= createInventoryString($ObjStringArray);
// Function Footer
$s .= "';
";
$s .= '$Inv = explode("
",substr(substr($raw, 1), 1, -1)); // ersten und letzten Zeilenumbruch entfernen'."
";
$s .= 'return $Inv;'."
";
$s .= "}
";
$s .= "?>";
return $s;
}
// generiert rekursiv Protkoll-String für ggf. vorhandene Child-Arrays unter einem Objekt im Objekt-Inventory
function ChildGenerator($Array)
{
for($i=0;$i<count($Array);$i++)
{
$obj[] = createObjectRow($Array[$i]);
if((isset($Array[$i]['ChildrenIDs'])))
{
$newArray = $Array[$i]['ChildrenIDs'];
$obj[] = ChildGenerator($newArray);
}
}
return $obj;
}
// Function Objekt Install Protocol: Datenstring für 1 Objekt generieren
function createObjectRow($Obj)
{
// Objektstammdaten aus IPS_GetObject
unset($Obj['ChildrenIDs']);
// Steuerzeichen CR LF aus Object-Info filtern und ersetzen
$Obj['ObjectInfo'] = str_replace("
", "§&§", $Obj['ObjectInfo']);
// Stringstart definieren, 1. Entrag muss ObjectID sein!
$s = 'ObjectID,'.$Obj['ObjectID'].';';
// Inventory Export: Stringteil Objekt-Stammdaten vervollständigen
for($i=0;$i<count($Obj);$i++)
{
$key = key($Obj);
$s .= key($Obj).','.$Obj[key($Obj)].';';
next ($Obj);
}
$s .= "
";
return $s;
}
// +++ Export: geht Objekt-Inventory rekrusiv durch und fügt Objektdaten der Einzelobjekte an Protokoll-String an
function createInventoryString($Array)
{
$str = '';
for($i=0;$i<count($Array);$i++)
{
if(is_array($Array[$i]))
{
$newArray = $Array[$i];
$str .= createInventoryString($newArray);
}
else
{
$str .= $Array[$i];
}
}
unset($Array);
return $str;
}
// Copy-Parameters String für Install-Protocol generieren
function createCopyParametersString()
{
global $Parameters;
//$Array = $_IPS['InstParameters'];
$s = 'CopyParameters,;';
for($i=0;$i<count($Parameters);$i++)
{
$s .=key($Parameters).','.current($Parameters).';';
next($Parameters);
}
$s .= "
";
return $s;
}
// Protokoll-File schreiben
function CreateProtocolFile($InstProtocol)
{
$ScrName = IPS_GetName($_IPS['SELF'])." InstallProtocol";
echo "Protokollname: ".$ScrName;
$Script_ID = IPS_CreateScript(0);
IPS_SetName($Script_ID, $ScrName);
IPS_SetParent($Script_ID, $_IPS['SELF']);
IPS_SetInfo($Script_ID, "This script was created by: RS IPS Exporter ID #".$_IPS['SELF']);
$fh = fopen(IPS_GetKernelDir()."scripts\\".$Script_ID.".ips.php", 'w') or die("cant open file");
fwrite($fh, $InstProtocol);
fclose($fh);
IPS_SetScriptFile($Script_ID, $Script_ID.'.ips.php');
echo "Installationsprotokoll-Script \"$ScrName\" ID #$Script_ID angelegt
";
return $Script_ID;
}
################# Inventory-Daten ###############################################################################
// Function Object Inventory
function ObjectInventory()
{
global $MessageProkoll;
$raw = '
CopyParameters,;VarProfile,1;ScrOverwrite,0;
ObjectID,58214 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts]*/;HasChildren,1;ObjectIcon,;ObjectID,58214 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Rechts;ObjectPosition,0;ObjectSummary,;ObjectType,0;ParentID,27260 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt]*/;isConfigTree,0;
ObjectID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;HasChildren,1;ObjectIcon,;ObjectID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Gerät Parametrieren;ObjectPosition,0;ObjectSummary,;ObjectType,1;ParentID,58214 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts]*/;isConfigTree,0;ConnectionID,0;InstanceID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;InstanceStatus,102;LastChange,0;ModuleID,{485D0419-BE97-4548-AA9C-C083EB82E61E};ModuleName,Dummy Module;ModuleType,3;
ObjectID,13543 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Message]*/;HasChildren,;ObjectIcon,;ObjectID,13543 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Message]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,1;ObjectIsReadOnly,;ObjectName,Message;ObjectPosition,0;ObjectSummary,;ObjectType,2;ParentID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392270673;VariableCustomAction,0;VariableCustomProfile,~String;VariableID,13543 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Message]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392270673;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,3;ValueVariant,;LoggingStatus,;AggregationType,0;
ObjectID,22989 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameter Nummer]*/;HasChildren,;ObjectIcon,;ObjectID,22989 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameter Nummer]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter Nummer;ObjectPosition,0;ObjectSummary,;ObjectType,2;ParentID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392246301;VariableCustomAction,42816 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\string_edit]*/;VariableCustomProfile,~TextBox;VariableID,22989 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameter Nummer]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392270983;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,3;ValueVariant,;LoggingStatus,;AggregationType,0;
ObjectID,24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/;HasChildren,1;ObjectIcon,;ObjectID,24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parametrierung an Gerät senden;ObjectPosition,0;ObjectSummary,;ObjectType,2;ParentID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;isConfigTree,0;VariableAction,0;VariableChanged,0;VariableCustomAction,34955 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\config_button]*/;VariableCustomProfile,Zwave_config;VariableID,24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392301947;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,;AggregationType,0;
ObjectID,26404 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config]*/;HasChildren,1;ObjectIcon,;ObjectID,26404 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,awake_zwave_set_config;ObjectPosition,0;ObjectSummary,;ObjectType,3;ParentID,24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/;isConfigTree,0;IsBroken,;LastExecute,1392302058;ScriptFile,26404.ips.php;ScriptID,26404 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config]*/;ScriptType,0;
ObjectID,44358 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config\]*/;HasChildren,;ObjectIcon,;ObjectID,44358 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config\]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Unbenanntes Objekt (ID: 44358);ObjectPosition,0;ObjectSummary,;ObjectType,4;ParentID,26404 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config]*/;isConfigTree,0;CyclicDateDay,0;CyclicDateDayValue,0;Day,0;Month,0;Year,0;Day,0;Month,0;Year,0;CyclicDateType,0;CyclicDateValue,0;Hour,0;Minute,0;Second,0;Hour,0;Minute,0;Second,0;CyclicTimeType,1;CyclicTimeValue,0;EventActive,;EventID,44358 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config\]*/;EventLimit,0;EventType,0;LastRun,1392302055;NextRun,0;TriggerSubsequentExecution,1;TriggerType,0;TriggerValue,;TriggerVariableID,44362 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Links\Z-Wave Binary Sensor (NodeID 014)\Status]*/;TriggerVariableName,Status;
ObjectID,34955 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\config_button]*/;HasChildren,;ObjectIcon,;ObjectID,34955 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\config_button]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,config_button;ObjectPosition,0;ObjectSummary,;ObjectType,3;ParentID,24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/;isConfigTree,0;IsBroken,;LastExecute,1392301947;ScriptFile,34955.ips.php;ScriptID,34955 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\config_button]*/;ScriptType,0;
ObjectID,28391 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameterwert]*/;HasChildren,;ObjectIcon,;ObjectID,28391 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameterwert]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameterwert;ObjectPosition,0;ObjectSummary,;ObjectType,2;ParentID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392301945;VariableCustomAction,42816 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\string_edit]*/;VariableCustomProfile,~TextBox;VariableID,28391 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameterwert]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392301945;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,3;ValueVariant,;LoggingStatus,;AggregationType,0;
ObjectID,42816 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\string_edit]*/;HasChildren,;ObjectIcon,;ObjectID,42816 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\string_edit]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,1;ObjectIsReadOnly,;ObjectName,string_edit;ObjectPosition,0;ObjectSummary,;ObjectType,3;ParentID,12001 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren]*/;isConfigTree,0;IsBroken,;LastExecute,1392301945;ScriptFile,42816.ips.php;ScriptID,42816 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\string_edit]*/;ScriptType,0;
ObjectID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;HasChildren,1;ObjectIcon,;ObjectID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Aktuelle Parametrierung;ObjectPosition,0;ObjectSummary,;ObjectType,1;ParentID,58214 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts]*/;isConfigTree,0;ConnectionID,0;InstanceID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;InstanceStatus,102;LastChange,0;ModuleID,{485D0419-BE97-4548-AA9C-C083EB82E61E};ModuleName,Dummy Module;ModuleType,3;
ObjectID,11481 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 2]*/;HasChildren,;ObjectIcon,;ObjectID,11481 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 2]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 2;ObjectPosition,2;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392263626;VariableCustomAction,0;VariableCustomProfile,;VariableID,11481 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 2]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,13122 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 9]*/;HasChildren,;ObjectIcon,;ObjectID,13122 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 9]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 9;ObjectPosition,9;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,0;VariableCustomAction,0;VariableCustomProfile,;VariableID,13122 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 9]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,21274 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 14]*/;HasChildren,;ObjectIcon,;ObjectID,21274 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 14]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 14;ObjectPosition,14;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,0;VariableCustomAction,0;VariableCustomProfile,;VariableID,21274 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 14]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,22505 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 13]*/;HasChildren,;ObjectIcon,;ObjectID,22505 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 13]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 13;ObjectPosition,13;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392304920;VariableCustomAction,0;VariableCustomProfile,;VariableID,22505 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 13]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,25317 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 3]*/;HasChildren,;ObjectIcon,;ObjectID,25317 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 3]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 3;ObjectPosition,3;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,0;VariableCustomAction,0;VariableCustomProfile,;VariableID,25317 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 3]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,26681 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 1]*/;HasChildren,;ObjectIcon,;ObjectID,26681 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 1]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 1;ObjectPosition,1;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,0;VariableCustomAction,0;VariableCustomProfile,;VariableID,26681 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 1]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,31844 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value]*/;HasChildren,1;ObjectIcon,;ObjectID,31844 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,1;ObjectIsReadOnly,;ObjectName,Parameters_Get_Value;ObjectPosition,0;ObjectSummary,;ObjectType,3;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;IsBroken,;LastExecute,1392304920;ScriptFile,31844.ips.php;ScriptID,31844 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value]*/;ScriptType,0;
ObjectID,46143 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value\]*/;HasChildren,;ObjectIcon,;ObjectID,46143 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value\]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Unbenanntes Objekt (ID: 46143);ObjectPosition,0;ObjectSummary,;ObjectType,4;ParentID,31844 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value]*/;isConfigTree,0;CyclicDateDay,0;CyclicDateDayValue,0;Day,0;Month,0;Year,0;Day,0;Month,0;Year,0;CyclicDateType,0;CyclicDateValue,0;Hour,0;Minute,0;Second,0;Hour,0;Minute,0;Second,0;CyclicTimeType,1;CyclicTimeValue,0;EventActive,1;EventID,46143 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameters_Get_Value\]*/;EventLimit,0;EventType,0;LastRun,1392304903;NextRun,0;TriggerSubsequentExecution,1;TriggerType,0;TriggerValue,;TriggerVariableID,44362 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Links\Z-Wave Binary Sensor (NodeID 014)\Status]*/;TriggerVariableName,Status;
ObjectID,38972 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 12]*/;HasChildren,;ObjectIcon,;ObjectID,38972 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 12]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 12;ObjectPosition,12;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392304920;VariableCustomAction,0;VariableCustomProfile,;VariableID,38972 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 12]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,55339 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 7]*/;HasChildren,;ObjectIcon,;ObjectID,55339 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 7]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 7;ObjectPosition,7;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392304920;VariableCustomAction,0;VariableCustomProfile,;VariableID,55339 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 7]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
ObjectID,56811 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 5]*/;HasChildren,;ObjectIcon,;ObjectID,56811 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 5]*/;ObjectIdent,;ObjectInfo,;ObjectIsHidden,;ObjectIsReadOnly,;ObjectName,Parameter 5;ObjectPosition,5;ObjectSummary,;ObjectType,2;ParentID,42502 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung]*/;isConfigTree,0;VariableAction,0;VariableChanged,1392304920;VariableCustomAction,0;VariableCustomProfile,;VariableID,56811 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 5]*/;VariableIsBinary,;VariableIsLocked,;VariableProfile,;VariableUpdated,1392304920;ValueBoolean,;ValueFloat,0;ValueInteger,0;ValueString,;ValueType,1;ValueVariant,;LoggingStatus,1;AggregationType,0;
';
$echo = "#1001 Quell-ObjektInventory geladen";
$MessageProkoll['Info'][] = $echo;
$Inv = explode("
",substr(substr($raw, 1), 1, -1)); // ersten und letzten Zeilenumbruch entfernen
return $Inv;
}
// Variablen-Profile Inventory
function VarProfileInventory()
{
global $MessageProkoll;
$raw = '
ProfileName,~String;Digits,0;Icon,;IsReadOnly,1;MaxValue,0;MinValue,0;Prefix,;ProfileType,3;StepSize,0;Suffix,;|
ProfileName,~TextBox;Digits,0;Icon,;IsReadOnly,1;MaxValue,0;MinValue,0;Prefix,;ProfileType,3;StepSize,0;Suffix,;|
ProfileName,Zwave_config;Digits,0;Icon,;IsReadOnly,;MaxValue,0;MinValue,0;Prefix,;ProfileType,1;StepSize,0;Suffix,;|Color,65280 /*[Objekt #65280 existiert nicht]*/;Icon,;Name,Starten;Value,0;§
';
$echo = "#1002 VariablenProfile-ObjektInventory geladen";
$MessageProkoll['Info'][] = $echo;
$VarProfiles = explode("
",substr(substr($raw, 2), 0, -1)); // ersten und letzten Zeilenumbruch entfernen
return $VarProfiles;
}
// Function WFC Inventory
function loadWFCInventory()
{
global $MessageProkoll;
$raw = '
';
$echo = "#1003 WFC-ObjektInventory geladen";
$MessageProkoll['Info'][] = $echo;
$WFC_Inventory = explode("
",substr(substr($raw, 2), 0, -1)); // ersten und letzten Zeilenumbruch entfernen
return $WFC_Inventory;
}
// #### Script-Exports ############################################################################################################
// Script "awake_zwave_set_config" ------------------------------------------------------------------------------------------------------
function awakezwavesetconfig26404()
{
return
'<?
##### Project Exporter Comment: Script Version Stand 13.02.2014 16:24 #####
$zwavenode = 45372 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Links\Z-Wave Binary Sensor (NodeID 014)]*/;
$paranr = GetValue(22989 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameter Nummer]*/);
$paravalue = GetValue(28391 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameterwert]*/);
$nr = intval($paranr);
$pa = intval($paravalue);
$config = ZW_ConfigurationSetValue($zwavenode, $nr, $pa);
if ($config == true ) {
WFC_SendNotification(24364 /*[Administrator]*/, §\'Parametrierung wurde durchgeführt§\', §\'Die Parametrierung von Parameternummer §\'.$paranr.§\' auf den Wert §\'.$paravalue.§\' wurde erfolgreich durchgeführt.§\', §\'§\', 10);
}
else
{
WFC_SendNotification(24364 /*[Administrator]*/, §\'Fehler !§\', §\'Die Parametrierung von Parameternummer §\'.$paranr.§\' auf den Wert §\'.$paravalue.§\' konnte nicht durchgeführt werden !§\', §\'§\', 10);
}
IPS_SetEventActive(44358 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config\]*/, false);
IPS_SetHidden(24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/, false);
IPS_SetHidden(22989 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameter Nummer]*/,false);
IPS_SetHidden(28391 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameterwert]*/,false);
IPS_SetHidden(13543 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Message]*/,true);
?>
';
}
// Script "config_button" ------------------------------------------------------------------------------------------------------
function configbutton34955()
{
return
'<?
##### Project Exporter Comment: Script Version Stand 13.02.2014 16:24 #####
if($IPS_SENDER == "WebFront")
{
SetValue($IPS_VARIABLE, $IPS_VALUE);
switch($IPS_VALUE)
{
case 0:
IPS_SetEventActive(44358 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden\awake_zwave_set_config\]*/, true);
IPS_SetHidden(24684 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parametrierung an Gerät senden]*/, true);
IPS_SetHidden(22989 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameter Nummer]*/,true);
IPS_SetHidden(28391 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Parameterwert]*/,true);
IPS_SetHidden(13543 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Gerät Parametrieren\Message]*/,false);
break;
}
}
?>
';
}
// Script "string_edit" ------------------------------------------------------------------------------------------------------
function stringedit42816()
{
return
'<?
##### Project Exporter Comment: Script Version Stand 13.02.2014 16:24 #####
if($_IPS[§\'SENDER§\'] == "WebFront")
{
SetValue($_IPS[§\'VARIABLE§\'], $_IPS[§\'VALUE§\']);
}
?>
';
}
// Script "Parameters_Get_Value" ------------------------------------------------------------------------------------------------------
function ParametersGetValue31844()
{
return
'<?
##### Project Exporter Comment: Script Version Stand 13.02.2014 16:24 #####
$instanz = 45372 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Links\Z-Wave Binary Sensor (NodeID 014)]*/;
$para1 = ZW_ConfigurationGetValue($instanz, 1);
$para2 = ZW_ConfigurationGetValue($instanz, 2);
$para3 = ZW_ConfigurationGetValue($instanz, 3);
$para5 = ZW_ConfigurationGetValue($instanz, 5);
$para7 = ZW_ConfigurationGetValue($instanz, 7);
$para9 = ZW_ConfigurationGetValue($instanz, 9);
$para12 = ZW_ConfigurationGetValue($instanz, 12);
$para13 = ZW_ConfigurationGetValue($instanz, 13);
$para14 = ZW_ConfigurationGetValue($instanz, 14);
SetValue(26681 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 1]*/,$para1);
SetValue(11481 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 2]*/,$para2);
SetValue(25317 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 3]*/,$para3);
SetValue(56811 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 5]*/,$para5);
SetValue(55339 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 7]*/,$para7);
SetValue(13122 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 9]*/,$para9);
SetValue(38972 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 12]*/,$para12);
SetValue(22505 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 13]*/,$para13);
SetValue(21274 /*[ADMINISTRATOR\Z-WAVE SENSOREN\Fibaro Türkontakt\Rechts\Aktuelle Parametrierung\Parameter 14]*/,$para14);
?>
';
}
?>