Dokumentation
Migrate
Benötigt: IP-Symcon >= 7.0
string Migrate (string $JSONData)
Parameterliste
JSONData | Persistenz (Konfiguration, Attribute) der Instanz |
Rückgabewert
JSON-kodiertes Objekt mit der neuen Konfiguration/Attributen.
Leerer String, sofern keine Änderungen notwendig sind.
Beschreibung
Diese Funktion wird nur beim Start von IP-Symcon oder nach eine Modul-Update aufgerufen. Sie wird nicht beim erstmaligem Erstellen einer Instanz aufgerufen. Die gelieferte Persistenz ist unabhängig von der bereits im Create registrierten Properties/Attributen. Dadurch kann diese beliebig angepasst/korrigiert werden, sodass diese für die neuen Properties/Attribute passt. Dadurch können z.B. alte Properties (z.B. wegen einem Tippfehler) im Namen oder Inhalt korrigiert werden.
Die neuen Werte sind in den Properties/Attributen direkt im darauf folgenden ApplyChanges verfügbar.
Die Migrate Funktion wird von IP-Symcon aufgerufen. Sie muss somit von der Basisklasse überschrieben werden, um eigene Erweiterungen hinzuzufügen
Beispiel
public function Migrate($JSONData) {
// Diese Zeile nicht entfernen
parent::Migrate($JSONData);
// Beispielinhalt von JSONData
/*
{
"attributes": {
"MeinAttribut": "MeinWert"
},
"configuration": {
"MeineKonfiguration": "MeinWert"
}
}
*/
// Eigenschaften/Attribute migrieren
$j = json_decode($JSONString);
$j->attributes->NeuesAttribut = $j->attributes->MeinAttribut;
$j->configuration->NeueKonfiguration = $j->configuration->MeineKonfiguration;
return json_encode($j);
}