JSON API Wrapper für Perl und PHP

Einsatz:

Klassen zur Nutzung der JSON-API von IPSymcon

Download vom GitHub Perl und PHP-Klasse sowie PHP Wrapper für IPS Funktionen mit Beispielen für IPS4.0+

Funktion:
IPSymcon führte mit Version V3.0 eine JSON basierte API ein, mit deren Hilfe sich nahezu alle IPS-internen Funktionen von außerhalb aufrufen lassen. Ab Version V3.1 wird diese API als Standard für die IPSymcon Konsole genutzt.
Die vorgestellten Klassen kapseln mittels Autoload-Funktion diese API und wickeln das Protokoll ab. Mit ihrer Hilfe ist es z.B. möglich, Scripte mit den gleichen IPSymcon Befehlen unter Perl auf einem Unix-Server laufen zu lassen als ob sie lokal auf dem IPSServer sind.
Ein weiterer Einsatz ist die Möglichkeit der Entwicklung von IPSymcon PHP Scripten mit einer externen IDE wie PHPStorm oder Netbeans.

Der Vorteil gegenüber dem klassischen Delphi-SDK besteht darin, das man nicht mehr eine ganz spezielle Entwicklungsumgebung einer fest vorgegebenen ProgrammierSprache braucht, sondern durch die Allgemeingültigkeit von JSON ganz einfach das verwenden kann, was man selbst am besten kann, und das auch unabhängig von der verwendeten Plattform.
Limitierend ist eigentlich nur die nur begrenzt vorhande Echtzeitfähigkeit.

Installation und Konfiguration

Auf Zielsystem muss für PHP die Json- und Mbstring-Extensions installiert sein.
Die Perl-Scripte benötigen das REST::Client, MIME::Base64 und Json-Modul sowie deren Abhängigkeiten. Das Perl-Modul bitte in einen von @INC durchsuchtes Verzeichnis legen oder den use Befehl im eigenen Script anpassen.

Falls nicht im gleichen Netz gearbeitet wird ist eine Freischaltung des IPS-WebFront Ports (default ab IPS4.0 Port 3777) notwendig. Dort muss dieser Port auch für eingehende Zugriffe geöffnet werden.
Das PHP-Files sollten in das gleiche Verzeichnis wie das eigene Script gelegt werden oder die include-Befehle dort anpassen.

Gemeinsam genutzte Parameter können in eine Konfigrationsdatei ausgelagert werden (default IPS_JSON_config.cfg). Die Datei wird ausgeführt/included, so das die Syntax der jeweiligen Sprache entsprechen muss (Bei PHP ohne <? ?> Tags!)

API Aktivieren

Für externe Zugriffe wie sie hier benötigt werden, muss der "Fernzugriff" z.B. über den IPSymcon-Tray->Informationen aktiviert werden. Der User ist nun (fest) der Lizenz-Benutzername, das Password muss über "Ändern" gesetzt werden. Bei gesetztem Password ist der Fernzugriff aktiv.
Fernzugriff
Aktivierung Fernzugriff

Siehe auch die jeweils aktuelle Symcon-Dokumentation.

Anwendungen

Zunächst muss die URL für den API-Zugriff gebildet und damit die Klasse instantiert werden. Dann kann die Aktion ausgeführt werden. Fehler werden in eine Klassenvariable geschrieben und können dort geprüft werden. Alternativ kann bei PHP auch eine Exception ausgelöst werden.
Den genauen Funktionsumfang bitte der Inline-Dokumentation entnehmen. Im Download sind auch weiterführende Beispiele enthalten. So wird dieser Wrapper aktuell für Icinga/Nagios Checks zur Prüfung und Logging von IPS Variablen und zum Auslesen von WS300PC History Records verwendet.

Beispiele

Dokumentation

Die Dokumentation der API PHP-Klasse und des Wrappers ist hier zu finden.

Index
Disclaimer

© 2013+ Thomas Dreßler
Alle Rechte vorbehalten
letzte Änderung 28.01.2024