RS IPS Project Exporter

Update 19.03.2014
Version 1.9, Bugfixes&Features -> siehe Changelog im Download

 

Intention:

Wer in IP-Symcon (ff. IPS) Projekte baut und die Scripte dem Forum zur allg. Nutzung zur Verfügung stellt, hat gemeinhin das „Problem“, die im Projekt befindlichen Objekte (Objektbaum-Elemente)  zu managen. In der Regel baut man sich Installations-Logiken, die diese Objekte im Zielsystem installieren. 

Komplexer wird es, wenn es um 1..2..3… viele Scripte geht. Man muss diese nicht nur -File für File- (oder als zip) zur Verfügung stellen, sondern auch deren Versionen lokal managen können. Mal eben den in einem der Scripte Code aktualisiert … und schon beginnt der Streß…

Das ist aber nur die Entwickler-Seite. Beim User geht es ja weiter: er muss die Scripte Installieren, verknüpfen, Variablen zuweisen, Variablenprofile erstellen und zuweisen, WFE-Objekte erstellen und mit den Quellobjekten aus dem IPS-Objektbaum verknüpfen….. Je nach Fähigkeiten des User kann hier reichlich schief gehen. Man sucht sich (im eigenen wie im Fremdsystem) zu Tode, nur um sicher zu stellen, dass die Installation exakt ausgeführt wurde….. Und dann kommen die evtl. vorhandenen, echten Bugs dazu. Bis dahin haben potenzielle User vielleicht schon die Lust verloren. Der Entwickler evtl. auch.

Hat man das aber überstanden, droht der nächste Horror: irgendwann wird ein Update notwendig. Die Ganze Arie nochmal: Der User muss alles exakt updaten und konfigurieren können. Wenn nicht, geht u.U. viel Zeit bei der Fehlersuche drauf. Und und und….

Hier setzt der IPS RS Project Exporter an:

Man installiert den RS Project Exporter (nur 1 Script!) in seinem System, setzt 1-2 Konfigurationsparameter (nämlich die ID des Projekt-Roots und das Projekt-Root im WFC). Das RS Project Exporter-Script ausführen – fertig. Es steht nun ein fix und fertiges (Export-) Script zur Verfügung, das ein vollständiges Projekt enthält. Dieses Script wird dann im Zielsystem ausgeführt – fertig. Man hat nun ein nahezu 1:1 geclontes Projekt (Ausnahme: Objekt-ID’s werden neu generiert) aus seinem Quellsystem im Zielsystem installiert, welches sofort lauffähig ist.

Bei Updates genau das gleiche Spiel: Quellprojekt auf genau die selbe Art und Weise exportieren, der User führt das Install-Script aus und – zack: hat er ca. 2000ms später eine exakte Kopie des Quellprojekts (in der neuesten Version) in seinem IP-Symcon.

Staun – wie geht das?

Der RS Project Exporter scannt rekursiv einen kompletten Projekt-Baum und sammelt die Konfigurationsdaten sämtlicher Objekte (incl. Script-Inhalte) ein. Genau das Gleiche macht er im Objektbaum des Webfronts – sofern eine WFC-ID angegeben wurde. Diese Daten werden komplett in einem Export-Script (mit Datumsangabe als Versionierungs-Hilfe) in einem lokalen Export-Ordner (im IPS-Objektbaum) abgelegt.

Dieses Script (das sogenannte ‚Install-Script‘) kann nun an Dritte weitergegeben werden. Der Empfänger muss dieses Script nur in sein IPS (Zielsystem) laden und einmal ausführen. Es werden nun alle Objekte des Quell-Projekts (incl. Webfront-Elemente) im Zielsystem installiert.

Wenn erforderlich, können die projekteigenen Installationsroutinen  im Anschluss auf die neu erstellen Objektstrukturen zugreifen und diese konfigurieren. In einfachen Strukturen kann dies natürlich auch der Anwender machen.

Unter dem Strich

Ist der RS Project Exporter ein Werkzeug, welches die Projektentwicklung innerhalb der IP-Symcon Community pushen soll: sowohl versierte Programmierer werden von den eher lästigen Installationsroutinen entlastet (die sie ansonsten für jedes ihrer Projekte selbst entwickeln und testen müssten), also auch Einsteigern soll damit ein wenig die Angst vor komplizierten Programmierarbeiten genommen werden. Jede der beiden genannten Populationsgruppen wird entlastet und soll somit die Lust an der Veröffentlichung eigener Projekte innerhalb der Comunity pushen. Es steckt also schon ein strategischer Gedanke dahinter.

—————————————————————————————–

Kurzanleitung

Für Ungeduldige nur das Nötigste (die Anderen können unten weiterlesen ;-) )

  • Project-Exporter-Script aus dem Download ins IPS importieren (z.B. in ein neu kreiertes Script)
  • Project-Exporter einmal starten (legt Ordnerstrukturen und Child-Script „PE Export-Files“ an)
  • ID des Quellprojektes in den Project-Exporter eintragen -> Project Exporter starten
  • Install-Script des Quellprojektes wurde vom Exporter erstellt, dieses Script ins Zielsystem transferieren
  • Script ausführen – fertig. das kopierte Projekt ist nun vollständig im Zielsystem und betriebsbereit 

—————————————————————————————–

Feature-Übersicht

  • Einfachste Handhabung des Projekt Exporters: in nur 3 Schritten zu einem Projekt-Clon (1x Script  Projekt Exporter ausführen,  1 Exportscript an Zielsystem übergeben, Exporterscript im Zielsystem starten – fertig)
  • Vollständiges, funktionsfähiges kopieren von beliebig komplexen Projekten aus IP-Symcon in andere IPS-Umgebungen (Ausnahmen: was geht nicht?)
  • Beliebig viele, voneinander unabhängige Parallel-Installationen möglich, egal ob im Quell- oder Zielsystem
  • Darüber hinaus kopieren von externen Files (Files, die nicht mit Objekten im IPS-Objektbaum verknüpft sind) und/oder kompletten Ordnern aus dem IP-Symcon Root-Ordner (mit Hilfe des Hilfs-Scripts ‚RS PE Export-Files‘). Diese Files können Scripte oder Grafik-Files sein
  • Automatische Update-Funktion: wird beim Start des Installer-Scripts ein gültiges Logfile und ein gültiges Zielprojekt gefunden, schaltet das Script automatisch in den Updatemodus: fehlende Elemente im Zielprojekt werden angelegt, alle Objekte neu konfiguriert und verlinkt, Objekte unterhalb der Config-Kategorie werden nicht überschrieben
  • Privacy-Mode true/false: bei true werden Variablen-Inhalte des Quell-Systems werden nicht exportiert (Datenschutz), bei false werden diese mit übertragen
  • Automatische Neuverlinkung der innerhalb des Zielprojekts angelegten Objekte untereinander, auch innerhalb der Scripte!
  • Events werden nach Installation im Zielsystem aus Sicherheitsgründen immer deaktiviert
  • Automatische Versionierung der Exporte (via Datumsangabe)
  • Script erzeugt ein nach Fehlerklassen sortiertes Installations-Protokoll (OK-MeldungenUser-Prüfung erforderlich und Fehler)
  • Installer-Script legt nach Ausführung Protokollscript mit Installations-Protokoll und Installations-Inventory an (Voraussetzungen für spätere Updates)
  • Online-Versionsprüfung und User-Info bei neuerer Version des Exporters (im Meldungsfenster des Scripts)
  • Abwärtskompatibilität bis IPS V2.6: Projekte können zwischen IPS V2.6 bis IPS V 3.1 in beliebige Richtung kopiert werden. Versionsbedingte Änderung in IP-Symcon übersetzt der RS IPS Project Exporter automatisch (gilt für Objekteigenschaften, nicht für Scripte!)

Workflow (Export eines Projekts)

Workflow (Neu-Installation eines Projekts)

Workflow (Update eines bestehenden Projekts)

was geht nicht:

  • Zunächst: der IPS RS Project Exporter übernimmt zwar sehr viele Installationsaufgaben und Konfigurations-Aktivitäten, er kann aber nur Aktor-Module (Enocean, Homematic etc) installieren – nicht aber deren Status-Variablen (welche vom Modul eigenständig erzeugt werden) nicht mit anderen Objekten verlinken und auch nicht konfigurieren. Das sollte beim Erstellen von Projekten entsprechend berücksichtigt werden.
  • Media-Objekte werden nicht berücksichtigt
  • Root-Ebene (ID 0) des Kategorie-Baums  darf nicht kopiert werden
  • Keine Verlinkung von oder mit Objekten außerhalb des Projektbaums

Nutzungsrechte:

  • das Script darf für private, nicht kommerzielle Zwecke frei verwendet werden
  • eine Weitergabe oder Änderung sowie auszugsweise Verwendung des Codes nur nach schriftl. Genehmigung des Autors
  • für evtl. entstehende Schäden durch die Verwendung dieses Scripts wird keinerlei Haftung übernommen 

 

Video Projekte exportieren: Video Projekte importieren:

Video IPS Projekte exportieren

Video IPS Projekte importieren

Ziel-Publikum

Wem könnte eigentlich dieses komische Ding nutzen? Muss man das Tool haben? Muss ich mich etwa wieder in was komplexes, neues einarbeiten (IPS war ja schon heavy)? macht das abhängig?

Nun, ich würde nicht soweit gehen und sagen, dass es jeder braucht oder haben muss. Ich denke, der typische Anwender wird einerseits der IPS-Einsteiger sein (weil er ohne tiefergehende System-Kenntnisse schnell und easy ganze Projekte übernehmen kann), andererseits werden es vermutlich fortgeschrittene User sein, die entweder komplexere Projekte einfach verteilen oder ins Testsystem kopieren wollen, ohne dabei jedesmal aufwändige Installationslogiken schreiben zu müssen (na, ganz ohne wird es aus jetziger Sicht nicht gehen).
Einarbeiten muss man sich m.E. nicht. Es reicht, zu wissen, was eine ID und ein Objekt ist, wie ich ein Script ins eigene IPS kopiere, und wie ich im Script die ID zuweise. Und auf „Ausführen“ klicken sollte man auch können. Also eigentlich jeder IPS-Nutzer.

Infos für Projekt-Autoren

Sehr wichtig war mir bei der Entwicklung auch, möglichst wenig Abhängigkeiten zu erzeugen: das Tool ist ein Stand-alone-Script und das soll es auch bleiben. Man kann damit Projekte kopieren, die Projekte sind aber nicht von diesem Tool abhängig – da es keine Interaktionen gibt. Genau so wird es keine Interaktion oder Abhängigkeiten umgekehrt geben. Projekte können und sollten weiterhin so entwickelt werden, dass sie auch ohne dieses Tool auskommen (müssen sie aber nicht).  Mit dem Project Exporter kann man allerdings den Installations-Code seht stark reduzieren und die Objektanlage und Konfiguration dem Projekt Exporter überlassen.

Tipps & Tricks für Projekt-Autoren

Tipps und Tricks für Anwender

Versionsinfos

Danksagung

Herzlichen Dank an Chef-Tester Werner (IPS-Forum: wgreipl) und IPS-Chefarchitekt Michael (IPS-Forum: paresy) für Unterstützung, Geduld, Tipps&Tricks und…und…

für kommerzielle Nutzung lizensierte Partner*

IPS-Forendiskussion

  • Zum IPS  RS Projekt Exporter im IPS-Forum: Link
  • Q&A zum RS Project Exporter im IPS-Forum: Link

 

FAQ RS Project Exporter

wie erfahre ich, ob es ein Update gibt?

Alle Projekte auf Raketenschnecke.net sind ab 2013 mit einem Update-Info Modul ausgestattet. Ist eine neuere Version des Projekts verfügbar, wird eine Info über das WFE eingeblendet. Ausnahme: der Project Exporter hat keine WFE-Visualisierung, daher werden hier die Update-Informationen im Script-Meldungsfenster ausgegeben. Diese Info verschwindet nach einem erfolgreichen Update.

Versions- und Update-Infos werden immer über einen Blog-Artikel veröffentlicht, der mit der Projekt-Homepage verlinkt ist.

Wo finde ich einen Download?

Keine Angst, Du bist nicht blind! Die Downloads sind (seit 16.11.2014) nur registrierten Usern zugänglich ;-)

 

*falls Interesse an einer kommerziellen Nutzung besteht, wende Dich gern an MICH 


 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

css.php