Was können wir verbessern?

Dokumentation

Migration (V1.0->V2.0)

Featureänderungen

Generelle Änderungen

Serverseitige Änderungen

Clientseitige Änderungen

WebFront (Screenshots)

Modulspezifische Änderungen

Wegefallende Module

Weggefallende/Geänderte Funktionen (nur die wichtigesten Funktionen angegben)

Migration

Führen Sie bitte ein Backup von Ihrem alten IP-Symcon durch.

Installieren Sie bitte IP-Symcon 2.0 in einen neuen Ordner.

Stellen Sie sicher, dass der IP-Symcon Dienst beendet ist. Dies können Sie am grauen TrayIcon erkennen. Einen gestarteten Dienst können Sie durch die Funktion „Dienst anhalten“ beenden.

Dienste Stoppen

Sobald der Dienst gestoppt ist, müssen folgende Dateien aus Ihrem alten IP-Symcon Ordner in den neuen IP-Symcon Order kopieren.

Nun können Sie IP-Symcon starten. Alle Variablen, Skripte, Instanzen sollten mit allen Einstellungen importiert werden. Zum Abschluss der Migration sollten Sie Ihre Skripte auf in der neuen Version von IP-Symcon nicht mehr vorhandene Funktionen überprüfen. Ferner müssen Sie alle Zugriffe über Namen durch Zugriffe über IDs ersetzen. Solange Sie aber keine Geräte umbenennen, können Sie diese Aktion auch bei Bedarf durchführen.

Kompatibilitätsfunktionen

Diese Funktionen sollten nur übergangsweise genutzt werden und so schnell wie möglich gegen die neuen, ID basierten Funktionen ausgetauscht werden, um die neuen Möglichkeiten ausnutzen zu können.

function IPS_GetVariableType( $varid )
{
    if(!is_numeric($varid))
        $varid = IPS_GetVariableID($varid);
 
    $var = IPS_GetVariable($varid);
 
    switch($var['VariableValue']['ValueType'])
    {
        case :
            return "Boolean";
            break;
        case 1:
            return "Integer";
            break;
        case 2:
            return "Float";
            break;
        case 3:
            return "String";
            break;
        default:
            return "Unknown";
            break;
    }    
}
 
function IPS_GetUpdateTime($id)
{
    $v = IPS_GetVariable($id);
    return $v['VariableUpdated'];
}
 
function FS20_SetPosition($id, $pos)
{
    SC_Move($id, $pos);
}
 
function IPS_GetVariables()
{
    $result = Array();
 
    $varids = IPS_GetVariableList();
    foreach($varids as $varid)
    {
        $var = IPS_GetVariable($varid);
        $obj = IPS_GetObject($varid);
 
        $result[] = Array(
            "name"    => $obj['ObjectName'],
            "type"    => IPS_GetVariableType($varid),
            "value"   => GetValue($varid),
            "updated" => (int)$var['VariableUpdated']
        );        
    }
 
    return $result;
}
 
function LOC_GetLocation_Variable($varid)
{
    if(!is_numeric($varid))
        $varid = IPS_GetVariableID($varid);
 
    return 'IP-SYMCON\\'.IPS_GetLocation($varid);
}
 
function IPS_GetInstanceIDs()
{
    return IPS_GetInstanceList();
}
 
function IPS_GetModuleInstance($instanceid)
{
    $instance = IPS_GetInstance($instanceid);
 
    return Array(
        "instanceid"         => $instance['InstanceID'],
        "instancestatus"     => $instance['InstanceStatus'],
        "moduleguid"         => $instance['ModuleInfo']['ModuleID'],
        "packetsreceived"    => ,
        "packetstransmitted" => ,
        "packetsaccepted"    => ,
        "packetsdropped"     => ,
        "packetsbuffered"    =>
    );
 
}
 
function IPS_GetModuleInfo ( $mguid ) {
    $marray = IPS_GetModule( $mguid );
    $m = Array();
    $m['name'] = $marray['ModuleName'];
 
    switch ($marray['ModuleType']) {
        case : 
            $m['type'] = 'Core';
            break;
        case 1: 
            $m['type'] = 'I/O';
            break;
        case 2: 
            $m['type'] = 'Splitter';
            break;
        case 3: 
            $m['type'] = 'Device';
            break;
    }
 
    $m['guid'] = $mguid;
    $larray = IPS_GetLibrary($marray['LibraryID']);
    $m['version'] = ($larray['Version'] >> 8) .".". ($larray['Version'] & 0xFF);
 
    return $m;
}