+ Antworten
Seite 2 von 4 ErsteErste 1 2 3 4 LetzteLetzte
Ergebnis 11 bis 20 von 36

Thema: IPSLibrary

  1. #11
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Initialer Download/Base Installation

    Mit dem BaseLoader Script ist der komplette Download des IPSLibrary Installers und der benötigten "core" Module aus dem Source Code Repository möglich:

    Folgende Module werden durch das Script heruntergeladen und installiert:
    • IPSModuleManager
    • IPSLogger
    • IPSModuleManagerGUI
    • IPSMessageHandler
    • IPSComponent


    Der initiale Download sollte auch, falls noch nicht vorhanden, die Datei __autoload.php anlegen und folgende Zeilen hinzufügen:
    PHP-Code:
        include_once IPS_GetKernelDir()."\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php";
        
    IPSUtils_Include("IPSLogger_PhpErrorHandler.inc.php""IPSLibrary::app::core::IPSLogger"); 
    Nach dem Ausführen des BaseLoader Scriptes steht können alle weiteren Module bequem über das WebInterface von IPSModuleManagerGUI installiert werden:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	IPSModuleManagerGUI_NewModule.png 
Hits:	1940 
Größe:	115.8 KB 
ID:	19352
    Geändert von Brownson (29.11.12 um 20:51 Uhr) Grund: Code Anpassung neues BaseLoader Script
    Gruß
    Andreas

  2. #12
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Installation neuer Module

    Die Installation neuer Module gliedert sich in 3 Phasen:
    • Module Download
    • Konfiguration
    • Installation


    Module Download
    Ein Module kann nach mit folgendem Code geladen werden:
    PHP-Code:
       IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
       
    $moduleManager = new IPSModuleManager('IPSLogger');
       
    $moduleManager->LoadModule(); 
    Konfiguration
    Ist nicht bei jedem Module nötig, Details über die jeweilige Konfiguration kann der jeweiligen Module Dokumentation entnommen werden.

    Module Installation
    Folgende Schritte werden bei einer Installation ausgeführt:
    • Check von anderen Modulen, die für die Installation Voraussetzung sind
    • Versions Check von referenzierten Modulen
    • Installation (beinhaltet das Anlegen aller benötigten Variablen und Skripte)


    Beispiel zur Installation des IPSLogger Modules:
    PHP-Code:
       IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
       
    $moduleManager = new IPSModuleManager('IPSLogger');
       
    $moduleManager->InstallModule(); 
    Hinweis:
    Download und Installation kann auch mit dem Modul IPSModuleManagerGUI vorgenommen werden.
    Geändert von Brownson (27.11.12 um 22:30 Uhr) Grund: Hinweis IPSModuleManagerGUI
    Gruß
    Andreas

  3. #13
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Update eines oder mehrerer Module

    Update eines einzelnen Modules erfolgt mit folgendem Code:

    PHP-Code:
       IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
       
    $moduleManager = new IPSModuleManager('IPSLogger');
       
    $moduleManager->UpdateModule(); 
    Ein Update aller installierten Module kann mit folgendem Code gemacht werden;

    PHP-Code:
       IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
       
    $moduleManager = new IPSModuleManager('');
       
    $moduleManager->UpdateAllModules(); 
    Bei einem Update werden alle Skripte des jeweiligen Modules neu aus dem Repository geladen
    (Konfigurations Skripte / Dateien werden nicht verändert). Sollte nach dem Update eine neue
    Versionsnummer gefunden werden, wird automatisch das Installations Script ausgeführt (inklusive
    Anpassung der WebFront und Mobile Strukturen).

    Hinweis:
    Download und Installation kann auch mit dem Modul IPSModuleManagerGUI vorgenommen werden.
    Geändert von Brownson (27.11.12 um 22:30 Uhr) Grund: Hinweis IPSModuleManagerGUI
    Gruß
    Andreas

  4. #14
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Vorgehen im Fehlerfall

    Sollte der Installations Vorgang mit einem Fehler abbrechen, so sollte man sich als erstes die Fehlermeldung genau durchlesen – meistens gibt diese bereits Auskunft über den zugrunde liegenden Fehler.

    Konfigurations Fehler
    Mit hoher Wahrscheinlichkeit wird der Fehler wohl in einer ungültigen Konfiguration liegen, in jedem Falle die Dokumentation in den Konfigurations Files nochmals genau lesen, als Referenz kann man auch einen Blick auf die Files im Example Verzeichnis des jeweiligen Modules werfen.

    Der IPSModuleManager ist so eingestellt, dass er bei jedem Fehler sofort abbricht. Im Fehlerfall also Problem beheben und Installation erneut starten.

    Änderungen an der Konfiguration
    Sehr viele Konfigurations Parameter erfordern ein erneutes Ausführen der Installation (ist normalerweise im Konfigurations File vermerkt).

    PHP-Code:
       IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
       
    $moduleManager = new IPSModuleManager('<<MyModuleName>>');
       
    $moduleManager->InstallModule(); 
    Fehler bei Hardware Anbindung
    Um Fehler bei der Anbindung über den IPSComponent Layer zu verhindern, sollte dieser bereits vor der Installation des eigentlichen Modules überprüft werden. Details sind der Dokumentation der jeweiligen Komponente zu entnehmen.

    Im Falle eines Homematic Shutter Modules könnte man das auf folgende Weise machen:
    PHP-Code:
       $component = new IPSComponentShutter_Homematic(12345 /*ID der Homematic Instanz*/);
       
    $component->MoveDown(); /*Herunterfahren der Beschattung*/ 
    Manuelles Löschen
    Manche Konfigurations Änderungen erfordern ein manuelles Löschen der alten Daten, wie zum Beispiel das Entfernen von Geräten in der Entertainment Steuerung. Sollte etwas zuviel gelöscht werden – kein Problem, ein erneutes Ausführen der Installation behebt das Problem.

    Fehler Liste
    Eine List von aufgetretenen Fehlern und deren Ursache und Lösung befindet sich im folgenden Thread

    Jeder Post enthält:
    • eine Beschreibung des Fehlers (Fehlermeldung oder fehlerhaftes Verhalten)
    • die Ursache (fehlerhafte Konfiguration oder ...)
    • eine kurze Beschreibung wie das Problem behoben wurde
    Geändert von Brownson (11.02.12 um 17:57 Uhr)
    Gruß
    Andreas

  5. #15
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Migration alter bestehender Module in die IPSLibrary

    Die Migrations bestehender Skripte (IPSLogger, IPSShadowing, ...) konnte durch diverse Struktur Änderungen nicht komplett automatisiert werden.

    Es wird generell empfohlen die alten Module komplett zu löschen und mit der IPSLibrary neu zu installieren.

    Es ist auch möglich alte Module mit der IPSLibrary zu mischen, allerdings empfiehlt es sich in diesem Fall den IPSLogger auf die neue Struktur zu migrieren.
    Für bestehende Module kann dann der IPSLogger durch ein Include File mit dem Namen „IPSLogger.ips.php“ im /scripts Verzeichnis auf die neue Struktur verlinkt werden (kompletten Inhalt der Datei mit folgendem Code ersetzen):
    Code:
    <?
       IPSUtils_Include ('IPSLogger.inc.php',      'IPSLibrary::app::core::IPSLogger');
    ?>
    Alle anderen IPSLogger_xxx Files können gelöscht werden

    Migrations Script:
    Weiters gibt es auch noch die Möglichkeit ein Migrations Script auszuführen, das teilweise versucht die bestehenden Strukturen in die IPSLibrary zu migrieren:

    Es gibt jedoch ein Script, dass die alten Installationen so gut es geht in die neue Struktur migriert (um die bereits vorhandenen IDs in IPS nicht zu Veränderung und Verlinkungen auf die bereits installierten Module nicht ungültig zu machen. Voraussetzung ist, dass die IPSLibrary Base Installation bereits vorhanden ist (siehe Thread weiter oben).

    1.) Folgendes Script lädt die neuen Files für das jeweilige Module und verschiebt auch alle Variablen in die neue Struktur (die Zeile für das zu migrierende Modul muss auskommentiert werden.
    Ein manuelles Anlegen des Scriptes ist nicht erforderlich, es wird bereits durch den „BaseLoader“ erzeugt und ist unter Program.IPSLibrary.install.BaseLoader zu finden):

    2.) Die Anpassungen im jeweiligen Konfigurations File muss manuell gemacht werden (es kann aber der Inhalt von den alten Konfigurations Files direkt übernommen werden).

    3.) Installations Script nochmals ausführen:
    PHP-Code:
       $moduleManager = new IPSModuleManager('<<MyModuleName>>');
       
    $moduleManager->InstallModule(); 
    ACHTUNG:
    Pfad für WebFront und Mobile Installation haben sich geändert. Diese liegt jetzt unter "Visualization.WebFront" bzw. "Visualization.Mobile". Pfad im Init File (/IPSLibrary/install/InitializationFiles/<<Module>>.ini anpassen oder Links manuell verschieben.

    Im Falle des IPSLoggers hat sich die Struktur im WebFront von „WebFront.Logger“ auf „Visualization.WebFront.IPSLogger“ und bei Mobile von
    „iPhone.System.Logging“ auf „Visualization.Mobile.System.Logging“ geändert.

    Beim IPSLogger muss auch noch das Widget manuell korrigiert werden (die ID des Scriptes muss auf das neue Script Program.IPSLibrary.app.core.IPSLogger.IPSLogger_Cl earSingleOut.ips.php korrigiert werden, alternativ kann das Widget auch gelöscht werden, es wird dann beim nächsten Installation Vorgang automatisch angelegt).

    Im Zweifel einfach die bestehenden Struktur des jeweiligen Modules löschen, und die Installation erneut ausführen.
    Geändert von Brownson (11.06.12 um 19:10 Uhr) Grund: Code Korrektur
    Gruß
    Andreas

  6. #16
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Deinstallation von Modulen:

    In der aktuellen Version des IPSModuleManagers ist nun auch eine automatische Deinstallation möglich:
    PHP-Code:
       IPSUtils_Include ("IPSModuleManager.class.php","IPSLibrary::install::IPSModuleManager");
       
    $moduleManager = new IPSModuleManager('<<MyModuleName>>');
       
    $moduleManager->DeleteModule(); 
    Die Deinstallation läuft im Wesentlichen folgendermaßen ab:

    Als erstes die Visualisierung entfernen:
    • Löschen der IPS Einträge (Links, ...) im Mobile Frontend (Visualization.Mobile.<<Module>>)
    • Löschen der Webfront Konfigurator Einträge (Einträge mit Namen <<ModuleName_XXX>> löschen)
    • Löschen der IPS Einträge (Links, ...) im WebFront Ordner (Visualization.WFC10.<<Module>>)


    Danach die eigentliche Programm Logik entfernen:
    • Löschen der IPS Einträge (Variablen, ...) im Program.IPSLibrary.data.<<Moduletype>>.<<Module>> Folder
    • Löschen der IPS Einträge (Skripte, ...) im Program.IPSLibrary.app.<<Moduletype>>.<<Module>> Folder
    • Löschen der IPS Einträge (Skripte, ...) im Program.IPSLibrary.config.<<Moduletype>>.<<Module> > Folder
    • Löschen der IPS Einträge (Skripte) im install Folder
      Program.IPSLibrary.install.InitializationFiles.<<M odule>>.ini,
      Program.IPSLibrary.install. InstallationScripts.<<Module>>_Installation,
      Program.IPSLibrary.install. DownloadListFiles.<<Module>>_Filelist.ini,


    Zum Ende werden noch die Dateien im Filesystem gelöscht:

    • Löschen der Dateien im IPSLibrary/app/<<Moduletype>>/<<Module>> Verzeichnis
    • Löschen der Dateien im IPSLibrary/config/<<Moduletype>>/<<Module>> Verzeichnis
    • Löschen der Dateien im /webfront/user/<<Module>> Verzeichnis
    • Löschen der Installations Dateien
      IPSLibrary/install/InitializationFiles/<<Module>>.ini,
      IPSLibrary/install/ InstallationScripts/<<Module>>_Installation.ips.php,
      IPSLibrary/install/ DownloadListFiles/<<Module>>_Filelist.ini,


    Hinweis:
    Das Löschen eines Modules kann auch mit dem Modul IPSModuleManagerGUI vorgenommen werden.
    Geändert von Brownson (28.11.12 um 21:14 Uhr) Grund: Hinweis IPSModuleManagerGUI
    Gruß
    Andreas

  7. #17
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Liste der derzeitigen Module

    Derzeitige Module:



    Weiters sind noch vorhanden:
    • IPSTools - .Net Programm zum Steuern und Abfragen diverser Windows Funktionalitäten (Bildschirmschoner starten, Mausposition abfragen, …)
    • eBusAdapter – IP-Symcon Delphi Extension zur Anbindung eines eBusAdapters
    Geändert von Brownson (01.12.12 um 20:44 Uhr)
    Gruß
    Andreas

  8. #18
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard License

    Die komplette IPSLibrary unterliegt der GPL (General Public License). Alle Source Files sollten einen kurzen Header haben, der darauf hinweist.

    /**
    * This file is part of the IPSLibrary.
    *
    * The IPSLibrary is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published
    * by the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    *
    * The IPSLibrary is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
    */

    http://www.gnu.org/licenses/gpl.txt.

    GNU General Public License
    Gruß
    Andreas

  9. #19
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Mitwirken bei der Entwicklung/Git

    Ein Mitwirken bei der IPSLibrary ist auf vielfältige Weise möglich:
    • Erstellen von Konzepten für die Entwicklung neuer Module (welche Konfigurations Möglichkeiten würde ein geplantes Module benötigen, wie könnte die Visualisierungen aussehen, welche Schnittstellen bräuchte das Module, wie kann die jeweilige Hardware angesteuert werden, ...).
    • Entwicklung – Erstellen neuer Module, Erweiterung der bestehenden Module mit zusätzlichen Features,
    • Dokumentation – Schreiben von User Dokumentation (Welche Möglichkeiten bieten die Module zur Konfiguration, wie kann man die Module untereinander verlinken, welche Dinge müssen manuell erledigt werden). Zusätzlich sind auch noch Beiträge im Wiki bzw. auch im Forum auf die man verlinken kann willkommen, wo man noch diverse Hintergrund Informationen bekommt (Hardware die man erfolgreich im Einsatz hat, Schaltpläne, Zusammenfassungen über diverse Themenbereiche der Hausautomatisierung und vieles mehr...)
    • Testen – Testen von neuen Entwicklungen, Testen der Module nach neuen IP-Symcon Releases, Implementieren von automatisierten Tests, ...
    • Support – Hilfestellung bei Installations- oder Konfigurationsproblemen


    Um Änderungen im Code zu veröffentlichen, ist die Installation eines GIT Clients notwendig. Ein intuitiver Client wäre zum Beispiel:

    Git Client - SmartGit



    Vorhandene Code Repositories siehe weiter unten...

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	SmartGit.png 
Hits:	8224 
Größe:	111.7 KB 
ID:	15384
    Geändert von Brownson (04.11.12 um 14:53 Uhr) Grund: Anpassung Attachment
    Gruß
    Andreas

  10. #20
    Registriert seit
    Aug 2010
    Ort
    Österreich (Korneuburg)
    Beiträge
    4,458

    Standard Code Repository

    Zur Zeit gibt es das offizielle Release Repository und einige Development Repositories.

    Release Repository:
    IPSLibrary

    5 Developer Repositories:
    IPSLibrary Development Brownson
    IPSLibrary Development 1007
    IPSLibrary Development MCS-51
    IPSLibrary Development MyFly
    IPSLibrary Development Domizei

    In der neuesten Version des IPSModuleManagers ist auch ein Support mehrerer Repositories implementiert.

    Durch das Ausführen des BaseLoader Skriptes wird der ModuleManager aus dem Release Repository heruntergeladen, dieser beinhaltet auch eine Liste der bevorzugten Repositories (zu finden im Config Verzeichnis mit dem Namen KnownRepositories.ini).
    Die GUI bietet dann jeweils das Modul mit der höchsten Versionsnummer zum Download an.

    Zusätzlich oder andere Repositories kann man durch das File KnownUserRepositories.ini einbinden.

    Ansicht eines Repositories im WebBrowser
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	IPSLibrary_GithubCom.png 
Hits:	1064 
Größe:	75.1 KB 
ID:	15385
    Geändert von Brownson (28.11.12 um 21:48 Uhr) Grund: Update Repositories
    Gruß
    Andreas

Ähnliche Themen

  1. Diskussions Thread zur IPSLibrary
    Von Brownson im Forum IPSLibrary
    Antworten: 216
    Letzter Beitrag: 16.06.19, 18:28