Hallo,
es kann ja mal sein, das bei einem Modul-Update Änderungen an Einstellungen, Variablen-Idents, Variablenprofilen etc. gemacht werden sollen.
Zur Zeit ist das so, das der Benutzer nach dem Updaten bestimmte Arbeiten machen müsste.
Ich hatte zB mal in einem Modul (Miele@Home) nachträglich die Möglichkeit geschaffen neben der bisherigen konventionellen Anmeldung OAuth nutzen zu können. Die Variable zur Auswahl war initial natürlich leer, was bedeutete, das bei schon eingerichteten Instanzen diese Variable durch den Benutze aus „Login“ gesetzt werden musste.
Das könnte ich mir schöner vorstellen:
- bei einem Modul kann man eine Funktion „UpdateVersion“ überlagen
- diese Funktion bekommt die alte und neue Versionsnummer (aus library.json) übergeben
- anhand dieser Angaben kann in der Funktion die entsprechenden Anpassungen gemacht werden
- der Aufruf erfolgt bei der ersten Aufruf des Moduls nach dem Update, nach Erfolgt merkt sich IPS die aktuelle Versionsnummer und damit wird das Script nur einmal aufgerufen.
In dem o.g. Beispiel würde UpdateVersion() so aussehen:
public function UpdateVersion(string $oldVersion, string $newVersion)
{
if ($newVersion == "1.12") {
$userid = $this->ReadPropertyString('userid');
$password = $this->ReadPropertyString('password');
if ($userid != '' && $password != '') {
IPS_SetProperty('OAuth_Type', CONNECTION_DEVELOPER);
$this->ApplyChanges():
}
}
return true;
}
Ist jetzt kein besonders spannendes Beispiel, aber das könnte ja auch eine Korrektur an einem Modul-spezifischen Variablenprofil sei oder oder …
Gerade weil IPS sich ja km Bereich der Module deutlich „professionalisiert“, fände ich das eine gute Ergänzung der Möglichkeiten.
Gruß
demel