Allgemein
Das Demo Installation Script installiert eine einige Module unter Verwendung einer Beispiel Konfiguration.
Die Module sind im prinzip voll funktionsfähig, die Harware Anbindung wird dabei allerdings nur simuliert.
Folgende Module werden installiert:
- IPSModuleManager
- IPSModuleManagerGUI – WebFront Interface zu Installation und Update von Modulen
- IPSLogging – Logging und Error Handler der IPSLibrary
- IPSComponent – Hardware Abstraktions Layer der IPSLibrary
- IPSMessageHandler – Rückmeldung der Hardware zu den Modulen
- IPSShadowing – Beschattungssteuerung
- IPSWatering – Bewässerungssteuerung
- IPSLight – Lichtsteuerung
- IPSMessageHandler – Rückmeldung der Hardware zu den Modulen
- NetPlayer mit dem IPS eigenen MediaPlayer (Musik Verzeichnis muss danach noch gesetzt werden)
- AudioMax – Ansteuerung des MultiRoom Systems von eServiceOnline
- Entertainment Steuerung
Voraussetzung
Folgende Voraussetzungen müssen zur Installation erfüllt sein:
- BaseLoader Script muss bereits gelaufen sein
- 500 Variablen verfügbar
Es wird wieterhin empfohlen, während der Installation alle WebFront’s zu schliessen und nach der Installation die Konsole neu zu öfffnen (Grund: es werden ca. 500 Variablen, 300 Kategorien, 200 Skripte und fast 900 Links angelegt).
Installation
Nachfolgenden Code in ein neues Script in IP-Symcon einfügen und danach ausführen.
ACHTUNG: Die Ausführung kann einige Minuten in Anspruch nehmen und benötigt ungefähr 500 Variablen!
<? $defaultRepository = 'https://raw.githubusercontent.com/brownson/IPSLibrary/Development/'; IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager"); InstallModule('IPSTwilight', '', '', $defaultRepository); InstallModule('IPSLight', 'IPSLight_DemoConfiguration.inc.php', 'IPSLibrary::config::modules::IPSLight', $defaultRepository); InstallModule('IPSWatering', 'IPSWatering_DemoConfiguration.inc.php', 'IPSLibrary::config::modules::IPSWatering', $defaultRepository); InstallModule('IPSShadowing', 'IPSShadowing_DemoConfiguration.inc.php', 'IPSLibrary::config::modules::IPSShadowing', $defaultRepository); InstallModule('AudioMax', 'AudioMax_DemoConfiguration.inc.php', 'IPSLibrary::config::hardware::AudioMax', $defaultRepository); InstallModule('NetPlayer', 'NetPlayer_DemoConfiguration.inc.php', 'IPSLibrary::config::modules::NetPlayer', $defaultRepository); InstallModule('Entertainment', 'Entertainment_DemoConfiguration.inc.php', 'IPSLibrary::config::modules::Entertainment', $defaultRepository); function InstallModule($module, $configFile='', $configNamespace='', $repository) { $moduleManager = new IPSModuleManager($module, $repository); $moduleManager->LoadModule(); if ($configFile <> '') { $exampleFile = $configFile; $configFile = str_replace('Demo', '',$configFile); if ($configNamespace <> '') { $exampleFile = IPS_GetKernelDir().'scripts/'.str_replace('::','/',$configNamespace).'/Examples/'.$exampleFile; $configFile = IPS_GetKernelDir().'scripts/'.str_replace('::','/',$configNamespace).'/'.$configFile; } $fileHandler = new IPSFileHandler(); $fileHandler->CopyFile($exampleFile, $configFile); } $file = CreateInstallationScript($module); $scriptHandler = new IPSScriptHandler('Program'); $scriptHandler->RegisterScriptByFilename($file); $scriptId = IPSUtil_ObjectIDByPath('Program.IPSLibrary.install.Demo.'.$module.'_DemoInstallation'); $result = IPS_RunScriptWait($scriptId); if ($result === false) { echo "Installation von Demo Modul $module fehlgeschlagen! Detailierte Hinweise zum Fehler sind im Log File zu finden"; } } function CreateInstallationScript($module) { $script = "<? IPSUtils_Include ('IPSModuleManager.class.php', 'IPSLibrary::install::IPSModuleManager'); $moduleManager = new IPSModuleManager('$module'); $moduleManager->InstallModule(); ?>"; $directory = IPS_GetKernelDir()."scripts/IPSLibrary/install/Demo/"; $fileName = $module.'_DemoInstallation.ips.php'; if (!file_exists($directory)) { mkdir($directory, 0, true); } $fh = fopen($directory.$fileName, 'w') or die("can't open file"); fwrite($fh, $script); fclose($fh); return $directory.$fileName; } ?>