Dokumentation
V1.0->V2.0 (Q1/2009)
Featureänderungen
Generelle Änderungen
- Server/Client Design, Windows Dienst + Netzwerkfähige Clientapplikation
- Alle Objekte (Instanzen, Variablen, Skripte, Events, Medien) haben eine eindeutige ID.
- Designer (jetzt Dashboard) direkt in die Clientapplikation eingebettet
Serverseitige Änderungen
- Mehr PHP Befehle zum Eingreifen/Konfigurieren von IP-Symcon
- Pro Skript können mehrere Timer (jetzt: Ereignisse) erstellt werden.
- Ereignisse können zu bestimmten Zeitpunkten gestartet werden (Timer Wizard Ersatz!, Kein Importer!).
- SOAP Schnittstelle (Entwicklerbereich )
- Bei Fehlern (IPS Funktionen) werden diese direkt in PHP Fehlermeldungen ausgegeben.
Clientseitige Änderungen
- Clientanwendung funktioniert über das Netzwerk/Internet
- Grafische Instanzenansicht durch Baumansicht ersetzt
- Multilingual (Deutsch/Englisch)
- Wizards zum Einrichten der Objekte
- Mehr Drag&Drop Möglichkeiten
- Docking der einzelnen Fenster
- Quickfilter an den meisten Stellen vorhanden
WebFront
- WebInterface, welches automatisch vorhandene Geräte visualisiert/schalten lässt
- Eine Variante im iPhone / iTouch Design erlaubt schnellen Zugriff
Modulspezifische Änderungen
- Native LCN Module
- HomeMatic Module
- ProJet/LevelJet Module
- SiLabs USBXpress I/O Modul
- Siemens S7 SPS Module
- FS20TX/RX zusammengelegt; Das FS20 Modul kann nun senden/empfangen und die Timer emulieren.
- Aus FS20RX wird FS20EX. Es erlaubt komfortabel eine Mehrkanalfernbedienung einzurichten.
- Alle WAGO Adressen werden als einzelne Instanzen erstellt. Ermöglicht vernünftige Namensvergabe und Anzeige im WebInterface
- I/O Module reconnecten sich automatisch solange, bis Sie eine Verbindunge bekommen.
- WebServer bietet SSL-Verschlüsselung
- MediaPlayer Modul als Ersatz für das WinampControl. Unterstützt mehrere Soundkarten mit direkter Soundkartenauswahl.
- ISDN Modul kann nun mehrere Anrufe gleichzeitig bedienen. Beachten Sie bitte die neue Funktionsweise. (Siehe ISDN Beispiel )
- Das FS20MS Modul ist jetzt nicht mehr an FS20 gebunden, sondern kann für fast alle Systeme verwendet werden.
Link: Shutter Control
Wegefallende Module
- DirectX MediaPlayer (eignes MediaPlayer Modul als Ersatz)
- COM/LAN (SerialPort/ClientSocket als Ersatz)
- memPIO
- M34 USB
- RedLab
- BTKit
- IPPower
Weggefallende/Geänderte Funktionen (nur die wichtigesten Funktionen angegben)
- TWZ_ItemExists ( Ersatz: Ereignissfunktionen )
- TWZ_DeleteItem ( Ersatz: Ereignissfunktionen )
- TWZ_CreateItem ( Ersatz: Ereignissfunktionen )
- IPS_UnregisterScript ( Ersatz: Skriptfunktionen )
- IPS_RegisterScript ( Ersatz: Skriptfunktionen )
- IPS_ScriptExists ( Ersatz: Skriptfunktionen )
- IPS_CreateVariable ( Ersatz: Variablenfunktionen )
- IPS_VariableExists ( Ersatz: Variablenfunktionen )
- IPS_GetVariableType ( Ersatz: s.u. )
- IPS_GetVariables ( Ersatz: s.u. )
- LOC_GetLocation_Variable ( Ersatz: s.u. )
- IPS_GetInstanceIDs ( Ersatz: s.u. )
- IPS_GetModuleInstance ( Ersatz: s.u. )
- SYS_Ping (2. Parameter entfällt)
- IMGP_SendEvent ( Ersatz: IPS_SendMediaEvent )
- SNDP_SendEvent ( Ersatz: IPS_SendMediaEvent )
- TTS_Speak ( Syntaxänderung + Hinweise: TTS_Speak )
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.
Sobald der Dienst gestoppt ist, müssen folgende Dateien aus Ihrem alten IP-Symcon Ordner in den neuen IP-Symcon Order kopieren.
- scripts*
- web* (für WIIPS)
- web_data* (für WIIPS)
- settings.xml
- bricks*
- php.ini (Pfade anpassen!)
- Alle PHP Extension DLLs, wenn Sie welche installiert haben (z.B. GD2)
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($varInvalid Link ) { 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" => $instanceInvalid Link , "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; }