Datenaustausch mit anderen IP-Symcon Servern

Seit der Version 3.0 ist es möglich mit Hilfe der JSON-RPC Schnittstelle Daten mit anderen IP-Symcon Servern auszutauschen. Die Daten können Werte von Variablen sein oder auch Befehle enthalten, um Skripte zu starten oder um Aktoren zu schalten. Weitere Hinweise und Beispiele hierzu finden Sie in unserer Dokumentation.
Es wird dringend empfohlen einen Benutzernamen und ein Passwort zu vergeben, da über die Schnittstelle die komplette IP-Symcon Konfiguration eingesehen und ggf. verändert werden kann. Benutzernamen und ein Passwort sind auch offen im PHP-Skript zu sehen. Aus diesem Grund empfiehlt sich dieses Verfahren nur unter „vertrauenswürdigen“ Partnern (z.B. Datenaustausch mit der eignen Ferienwohnung).

Das folgende Beispiel zeigt, wie man einen „fremdem“ Temperaturwert in das eigene System überträgt. Voraussetzung ist die Kenntnis über: IP-Adresse, Port, ID der betreffenden Variablen sowie Benutzername und Passwort. Auf dem eigenen System muss eine Variable vom selben Typ angelegt werden sowie die JSON-RPC Schnittstelle freigegeben werden. Zu beachten ist auch, dass die Übertragung nicht automatisch z.B. ‚Bei Wertänderung‘ erfolgt. Das folgende Skript muss also zyklisch z.B. alle fünf Minuten aufgerufen werden ( Polling Methode ).

$rpc = new JSONRPC("http://user:password@ipsymcon-xxl.dyndns.org:80/api/");

// echo $rpc->GetValueFormatted(12345);

SetValue(67890  /*[Außentemperatur Sarkwitz]*/, $rpc->GetValue(12345));

Eine weitere Variante ist Push-Methode, das bedeutet, dass der entfernte IP-Symcon Server aktiv bei einer Wertänderung (hier ID 12345) den neuen Wert in eine Variable (hier ID 67890) auf den eigenen Server schreibt. Das folgende Skript sollte ‚Bei Variablenänderung‘ aufgerufen werden:

$rpc = new JSONRPC("http://user:password@ipsymcon-xxl.dyndns.org:80/api/");

$aussen_temperatur = GetValue(12345 /*[Wetter\FeWo\Temperatur im Schatten]*/);

$rpc->SetValue(67890, $aussen_temperatur);

Damit der Benutzername und das Passwort nicht im Klartext übertragen werden, empfiehlt es sich die SSL Verschlüsselung zu aktivieren (siehe Bild).

MST

json_ssl.PNG

wäre https nicht besser ? oder gleich vpn ? ich meine so wird das Passwort ja im Klartext gesendet.

Wäre nicht auch ein Push denkbar ? Also in der Ferienwohnung-IPS einen Trigger auf Wertänderung und den dann per Json im Zentral-IPS setValue ?

Wie war das eigentlich mit der IPS Lizenz nochmal bei Ferienwohnungen ? gehört alles mir = eine Lizenz ?

Kann man den Json Zugriff irgendwie auf bestimmte Sachen einschränken ?

Ein Fragezeichen dürfte dafür reichen.:wink:

HTTPS ist auf jeden Fall besser. Für das Beispiel jedoch so einfacher :slight_smile:

Wäre nit auch ein Push denkbar ? Also in der Ferienwohnung-IPS einen Trigger auf Wertänderung und den dann per Json im Zentral-IPS setValue ???

Auch das ist eine nette Alternative, wie man das Beispiel erweitern kann.

paresy

… habe die Push Alternative oben ergänzt.

MST

Ja, solche Anforderungen liebe ich… Seit wann ist Netzstruktur das ein Feature einer Endpunkt-Software? Warum nicht auch ne IPS-VM oder ein IPS-Office?

Wer ein VPN will darf sich IMO eins kostenlos aus dem Netz laden, installieren und gut. Die Fritzbox bietet notfalls auch fertige Lösungen - „Schuster bleib bei deinen Leisten“.

Toni

Toni du hast mich falsch verstanden. Mir ging es hier nicht um eine Anforderung an IPS u.ä. Mir war wichtig auf das entstehende Sicherheitsloch hinzuweisen, wenn man ungesicherte Verbindung übers Internet macht und die Möglichkeiten diese zu beseitigen.

Wollte damit das „Ferienwohnungszenario“ nur auf eine breitere Lösungsplattform setzen.

Sicher sind VPN und co. nicht Aufgabe von IPS sondern ergänzen die Lösung

Nichts für ungut, aber genau diese Art Anforderungen hab ich schon mehrfach gehabt. Jetzt wissen jedenfalls auch unbeteiligte Mitleser was wir beide gemeint haben :wink:

Ich würde mal eher sagen, das ist Sache des Anwenders. Der Endpunkt eines VPNs hat ja auch nichts auf dem Server zu suchen, egal ob IPS oder was auch immer.

Diese Diskussion hab ich am Samstagmit einem befreundeten Elektriker schon geführt, der mir VPN auf einem KNX-Router als sicher verkaufen wollte.

Gesendet von meinem ASUS Transformer Pad TF700T mit Tapatalk 4

Irgendwie stehe ich gerade auf der Leitung:

Ohne SSL funktioniert es prima, sobald ich die SSL-Verschlüsselung aktiviere und den Aufruf von new Jsonrpc von http auf https umstelle, bekomme ich folgende Meldungen:

Warning: file_get_contents(): Unable to find the wrapper „https“ - did you forget to enable it when you configured PHP? in C:\IP-Symcon\scripts__jsonrpc.inc.php on line 33

Warning: file_get_contents(https://…@<IP-Adresse>:82/api/): failed to open stream: Invalid argument in C:\IP-Symcon\scripts__jsonrpc.inc.php on line 33

Muss ich für die Nutzung von JSON-RPC in Verbindung mit SSL-Verschlüsselung noch andere Anpassungen vornehmen?

Schöne Grüße,

Olaf.

Aktuelle Beta sollte dein Problem lösen.

paresy

Danke für die Info - da es nicht so zeitkritisch bei mir ist, warte ich auf das nächste reguläre Update, damit sollte es dann ja sicherlich auch funktionieren :slight_smile:

Hi,

auch mit 3.1 gibt es obenstehendes Problem mit der SSL Verbindung
ohne SSL kein Problem

Läuft das bei jemandem von extern über SSL?

Sebastian

Die Lösung ist der Austausch der Open SSL Bibliotheken.

http://www.ip-symcon.de/service/dokumentation/installation/migration-v24-v25/

Welche Nachteile hat man dadurch?

Sebastian

Man darf beim Live-Update nicht pennen sondern muss einen Haken wegmachen.

Hatte gestern auch das Erlebnis, das es mit SSL alias HTTPS nicht funktioniert (neuste Beta Version) Gibt es mittlerweile eine Lösung? Wollte deswegen jetzt keine unsichere Tür öffnen…