Werte externer Scripte an IPS Variablen übergeben ?

Hallo miteinander …

ich bin gerade auf der Suche, wie man einen Wert, der in einem „fremden“ PHP Script zur Laufzeit existiert, von dort in eine IPS-Variable „drücken“ kann.

Oder anders ausgedrückt: Ein anderes Programm - also nicht IPS ! - ruft zyklisch ein PHP Script auf, das Werte in eine MySQL DB schreibt. Das hat zunächst einmal nichts mit IPS zu tun. Nun würde ich gerne bestimmte Werte - die ja gerade in diesem externen PHP Script existieren - zusätzlich in mehreren IPS-Variablen verfügbar haben wollen, um damit bestimmte Aufgaben zu erledigen.

Kann mir jemand einen Tip geben, wo ich mit der Suche - in der Doku oder im Forum - anfangen kann. Ich hab schon eine Weile gesucht, finde aber bislang keinen passenden Ansatz.

Vielen Dank schon einmal für jeden ernst gemeinten Hinweis.

Gruß
MarEng

Du könntest im externen PHP Script die Daten in eine Datei schreiben und diese mit file_get_contents in IPS importieren.
Ein weiterer Weg ist per PHP auf die MySQL Datenbank zuzugreifen. http://www.php.net/manual/de/book.mysql.php

Hi MarEng,
ich habe es zwar nicht nicht getestet, aber schau Dir das mal an:

Datenaustausch: IP-Symcon :: Automatisierungssoftware

@ Ferengi-Master: Danke für diese Anregung. Ich vergaß leider zu schreiben, dass ich natürlich diesen „Umweg“ gehen kann (selber schon gemacht), ich aber nach einem direkterem Weg der Datenübergabe suche.

@ Neon: Ich finde Deinen Hinweis über SOAP zu gehen recht interessant. Ich hab das zwar noch nie gemacht, aber ich werd es mal versuchen. Wenn sich was positives dazu ergeben sollte, werde ich es hier berichten.

Falls es noch andere Ideen geben sollte —> Danke, gerne angenommen.

Gruß
MarEng

Hallo noch einmal …

wie versprochen, hier mein Ergebnis zum Thema „Datenaustausch mittels SOAP“.

Es ist tatsächlich so einfach wie in der Doku beschrieben:

  1. man muss dafür sorgen, dass in allen PHP Instanzen die SOAP Extension vorhanden und aktiv ist. In einer Standardinstallation von PHP sollte das eigentlich immer der Fall sein. Kann man einfach prüfen, indem man nachschaut, ob in der php.ini der Eintrag „extension=php_soap.dll“ vorhanden ist. Ansonsten neu eintragen, oder ggf. aktivieren.
    Innerhalb von IPS gibt es eine „eigene“ php.ini, in der dieser Eintrag standard mäßig fehlt. Da die DLL im Unterverzeichnis …/IP-Symcon/ext vorhanden ist (oder zumindest sein sollte), reicht es diesen Eintrag „extension=php_soap.dll“ dort vorzunehmen. Danach muss IPS neu gestartet werden, da ansonsten die DLL bei Bedarf nicht geladen wird.

  2. In das externe PHP Script kann man dann ein par Zeilen Code eingeben (siehe Doku). Ich habe bei mir 2 Zeilen eingefügt:

$soap = new SoapClient(„http://127.0.0.1:3773/wsdl/IIPSVariableManager“);
$soap->WriteVariableInteger(12345, $Wert);

12345 ist meine IPS Variable, in die ich den Integer Wert aus diesem externen Script transportiere

Das war schon alles.

In der oberen Zeile wird die lokale IP verwendet. Falls man von einem anderen Rechner etwas nach IPS (auf diese Weise) transportieren möchte, müsste es bei entsprechnder Anpassung auch funktionieren. Das habe ich aber nicht ausgetestet.

Also an dieser Stelle nochmal mein Dank an Neon für seinen hilfreichen Hinweis.

Gruß
MarEng