Die URL ändert sich nicht. Schau in den Quelltext der JSONRPC-Klasse herein (liegt im scripts Ordner als include). Intern wird ein POST auf genau diese URL gemacht und die Parameter dabei im JSON-Format als Message Body übertragen. Die Funktion selbst ist auch nur ein Parameter. Message Body sollte aber bei einem Get nicht genutzt werden und kann zu Fehlermeldungen führen: http://stackoverflow.com/questions/978061/http-get-with-request-body/15656884#15656884
ich hoffe ich darf mich hier einmal anhängen. Ich würde auch gerne über eine HTTP-Anfrage (http-post) über die JSON Schnittstelle Daten an IPS senden. Mein System bietet mir dabei die Möglichkeit über http (Get oder Post)-Requests mit anderen System zu kommunizieren. Leider bekomme ich es noch nicht hin, dass ich Daten zu IPS senden kann.
In meinem Bussystem kann ich neue Geräte anlegen, dabei Benötige ich die IP und evtl. Login-Daten:
Ich habe den Fernzugriff aktiviert und meinen Lizenz-Namen und das Fernzugriffspasswort als Login-Daten verwendet. Bei der IP-Adresse habe ich die Adresse der WebFront „127.0.0.1“ genommen. Diese dürfte allerdings falsch sein, da ich über die Adresse nur vom Computer (wo IPS drauf läuft) zugreifen kann. Wo kann ich die IP-Adresse von IPS sehen?
Wenn ich das Gerät (hier: IPS) angelgt habe, kann die Befehle programmieren (in Lua). Ich weiß, dass ich nur über Post auf die API zugreifen kann und ich deshalb meine Programmierung in der Header-Modifizierung eintragen muss. Leider weiß ich auch dort nicht ob ich es richtig gemacht habe:
Ich denke hier fehlen noch die Angaben der Parameter. Die beim Get-Befehl werden die Parameter eigentlich nur der IP-Adresse angehängt und bilden somit einen Http-Request, soweit ich es richtig verstanden hab. Als TCP-Port habe ich 3777 verwendet, da dieser für die JSON API steht.
Wenn ich meinen Befehl teste erhalte ich folgende Antwort:
Ich hoffe mir kann hierbei jemand helfen und mir evtl. das ganze ein wenig verständlicher machen.
Da mir das System schon ein vorprogrammiertes Beispiel für Sonos Geräte zur Verfügung stellt wollte ich dieses noch einmal als Beispiel zeigen: