Moin,
ich wollte hier mal ein Modul vorstellen.
Moduls „Versionierung“
Das Versionierungs-Modul dient zur automatisierten Versionierung von Skripten in IP-Symcon.
Es versioniert ausgewählte Skripte in:
a) selbst einstellbaren regelmäßigen Abständen als neue Versionen oder und
b) nach Änderung der Versionsnummer
Die Versionierten Scripte können an einer von 2 Stellen automatisch versioniert werden:
a) Unter dem zu versionierenden Skript. Dazu wird eine Dummy Instanz Namens Versionierung erstellt und unter dieser wird das Script in eine Variable gespeichert.
b) Die Speicherung erfolgt unter der Versionierungsinstanz. Unter dieser werden alle Variablen erstellt.
Der Name unter was die Speicherung erfolgen soll ist frei einstellbar.
Die Wiederherstellung erfolgt unter der Angabe der Versionsnummer unterhalt der Variable. Es können alle Versionierungen wiederhergestellt werden. Wiederhergestellte Scripte werden durch einen Kommentar im Script gekennzeichnet und gegen ungewolltes ausführen durch ein return geschützt. Dieser Bereich muss händisch nach der Wiederherstellung entfernt werden.
Zur Verfügung stehende Funktionen dafür:
define(‚ID_VERSIONIERUNG‘, 12345); // ID der Modul Instanz für die automatische Versionierung
Versionierung :
TBSV_Versionierung(ID_VERSIONIERUNG, $_IPS[‚SELF‘], array(„DATUM“ => date(‚Y-m-d H:00:00‘, time()), „VERSION“ => „0.0.0.10“));
Mit dieser Funktion kann durch Änderung des array Wertes „DATUM“ die Versionierung ausgelöst werden oder durch die Änderung des Wertes „VERSION“
Als Rückgabe aus der Funktion gibt es Informationen ob das erfolgreich war.
Wiederherstellung:
TBSV_Wiederherstellung(ID_VERSIONIERUNG, $_IPS[‚SELF‘], array(„VERSION“ => „0.0.0.60“));
Mit dieser Funktion wird ein Versioniertes Script wiederhergestellt. Es befindet sich unterhalb der Variable. Als Rückgabe aus der Funktion gibt es Informationen ob das erfolgreich war.
Historie :
TBSV_VersionsHistorie(ID_VERSIONIERUNG, $_IPS[‚SELF‘])
Diese Funktion liefert als Rückgabe Informationen über bereits Versionierte Zustände des Scriptes.
Funktionen und Anwendungsbereiche:
- Automatische Versionierung : Speichert Skripte regelmäßig ab, um Änderungen rückgängig machen zu können.
- VersionsHistorie : Listet alle Versionen eines Skripts chronologisch auf, sodass jede Änderung nachvollziehbar bleibt.
- Wiederherstellen : Ermöglicht die Rückführung eines Skripts auf eine frühere Version – ideal, um Änderungen rückgängig zu machen oder einen Zustand zu einem bestimmten Zeitpunkt / Version wiederherzustellen.
Anwendungsfälle:
Das Modul ist besonders nützlich in komplexen IP-Symcon-Projekten, bei denen Skripte regelmäßig angepasst oder optimiert werden. Die Versionierungshistorie und einfache Wiederherstellung tragen zur Fehlerreduktion und Nachvollziehbarkeit bei und erleichtern die Arbeit bei Skriptoptimierungen und -tests.
Dazu mal ein paar Bilder:
Unter der Instanz versioniert.
Unter dem Script Versioniert:
im Script:
in der Instanz:
Wiederhergestellte Scripte unter der Instanz:
Und einmal das wiederhergestellte Script: