JSON - Aktor schalten

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Communicate
Beiträge: 126
Registriert: 08.07.2012, 22:41
Hat sich bedankt: 1 Mal

JSON - Aktor schalten

Beitrag von Communicate » 14.12.2012, 19:45

Hallo zusammen,

mit folgendem JSON möchte ich einen Aktor schalten:

Code: Alles auswählen

{    "method": "Interface.setValue",
    "params":  {
      
       "_session_id_" : "g34iv7zz5y", "address":"JEQ0049593:1","state":0
     } 
}

Allerdings erhalte ich immer nur einen Fehler:

{
"version": "1.1",
"result": null,
"error": {
"name": "JSONRPCError",
"code": 402,
"message": "missing argument (interface)"
}
}

Laut der JSON-Info brauche ich m.E. aber gar keine Angabe zum Interface.

Könnt Ihr mir helfen?


Danke und Gruß
Dominic

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: JSON - Aktor schalten

Beitrag von hobbyquaker » 14.12.2012, 22:40

Hallo!

JSON Interface.setValue dient - soweit ich das bisher überblicke, bin noch in der "Einarbeitung" was die JSON Schnittstelle angeht, man möge mich korrigieren wenn falsches schreibe ;) - dazu Werte in die "Paramsets" zu schreiben, also in die Geräte-Konfigurationen und in Direktverknüpfungen. Und nicht verwechseln mit der XML RPC Methode setValue - das sind zwei paar Stiefel... Du hast ihr auch nicht alle geforderten Parameter geliefert. (siehe http://ccu/api/homematic.cgi - diese Methode verlangt den neben dem Parameter Interface noch weitere Parameter und mit dem Parameter "State" fängt sie nichts an)

Um einfach Remote per HTTP ein Aktor zu schalten gibts aber auch noch mehrere andere Wege - Homematic Script oder XML RPC. Wenn möglich solltest Du XML RPC nutzen (schneller, belastet CCU weniger, läuft unabhängig von und eine Ebene unter der Logikschicht ReGa).

via XML RPC würde es so gehen (Beispiel ist ein Dimmer - Datenpunkt LEVEL):
Bildschirmfoto 2012-12-14 um 22.30.44.png
wenn es unbedingt über die JSON Schnittstelle laufen soll würde es so funktionieren (Parameter _session_id ergänzen):
Bildschirmfoto 2012-12-14 um 22.29.59.png
Alternativ zur JSON RPC kannst Du auch die http://ccu:8181/Test.exe für Remote Homematic-Script ausführung verwenden. Die erfordert auch keine gültige Session und ist etwas performanter und weniger CCU-belastend als JSON RPC da es den Weg durch den Lighttpd Webserver und diverse TCL und Homematic Scripts einspart.

Eine weitere Alternative wäre die Nutzung der XML-API (was aber auch nichts anderes als in TCL CGIs gepackte Homematic-Scripts sind, also auch über die Logikschicht und den Webserver laufen)


Grüße,
Hobbyquaker

Communicate
Beiträge: 126
Registriert: 08.07.2012, 22:41
Hat sich bedankt: 1 Mal

Re: JSON - Aktor schalten

Beitrag von Communicate » 15.12.2012, 00:13

Hallo,

Leider muss es fürs erste wirklich json sein (will eine native ios App erstellen und ich brauche die Authentifizierung).

Aber sag mal, ist dein Screenshot für json wirklich dafür da einen Aktoren zu schalten?
Der Script Teil verwirrt mich doch. Wo muss ich denn vorher wie so ein Script erstellt haben um es dann per json aufzurufen.

Grüße
Dominic

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: JSON - Aktor schalten

Beitrag von hobbyquaker » 15.12.2012, 00:24

Code: Alles auswählen

{
    "method": "ReGa.runScript",
    "params":  {
       "script": "dom.GetObject(2598).State(false);",
       "_session_id_": "xxx"
    } 
}
Der Parameter Script beinhaltet hier ein winziges Homematic Script:

Code: Alles auswählen

dom.GetObject(2598).State(false);
Infos was diese Befehlszeile im einzelnen bedeutet, was das "DOM Objekt" ist, wie die Methode "GetObject" und "State" funktionieren findest Du in den Homematic Script Dokumentationen von eQ3 (gibts dort auf der Homepage irgendwo)

Die ID 2598 ist in diesem Beispiel ist die ID eine Funk-Schaltaktors (bzw genauer gesagt die ID des Datenpunkt "STATE" eines Kanals des Funk-Schaltaktor) für das Treppenhauslicht bei mir. Mit State false geht das Licht aus, mit State true geht das Licht an.

Um die ID eines solchen Datenpunktes rauszufinden kannst Du z.B. das "HQ WebUI" benutzen - Link in meiner Signatur. Von dort stammen auch die Screenshots des Scripteditors mit dem Du komfortabel JSON RPCs testen kannst und alle Links zu wichtigen Dokus hinter dem Hilfe-Button verlinkt zu finden sind. Man verzeihe mir wenn ich hier nebenbei mit Screenshots und so "Werbung" mach ;-)

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: JSON - Aktor schalten

Beitrag von hobbyquaker » 15.12.2012, 00:29

ah und noch was fällt mir ein:
(will eine native ios App erstellen und ich brauche die Authentifizierung).
Das hindert Dich nicht unbedingt daran XML RPC zu nutzen. Ich habe für das HQ WebUI einen kleinen "Proxy" gebaut, der XML RPC calls auf Port 80 bereitstellt und durch eine JSON RPC Authentifizierung schützt. Das ist dieses kleine TCL CGI: https://github.com/hobbyquaker/hq-webui ... xmlrpc.cgi

Allerdings handelst Dir mit diesem Proxy auch einen Nachteil bei der Nutzung der XML RPC Schnittstelle ein: der Perfomancevorteil der XML RPC gegenüber der JSON RPC ist dahin weil eben vor dem XML RPC Aufruf noch ein JSON RPC aufruf stattfindet der die ReGa bemüht und damit die CCU stärker belastet...

Hab genau zu diesem Thema (und allgemein zur Sinnhaftigkeit des Logins auf der CCU) vorher in diesem Thread was geschrieben: http://homematic-forum.de/forum/viewtop ... 128#p82989

Grüße

Communicate
Beiträge: 126
Registriert: 08.07.2012, 22:41
Hat sich bedankt: 1 Mal

Re: JSON - Aktor schalten

Beitrag von Communicate » 15.12.2012, 09:24

Hallo,

Wollte dein ui gerade testen. Hab's installiert, ccu rebooted aber dann kann
Ich die neue ui nicht aufrufen. Brauch ich noch mehr als das Paket zum installieren?

Fehlermeldung ist 404.
Grüße
Dominic

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: JSON - Aktor schalten

Beitrag von hobbyquaker » 15.12.2012, 09:43

Hast Du [url]http://<ccu-ip>/addons/hq/ui[/url] aufgerufen? Wird das HQ WebUI unter Zusatzsoftware als installiert angezeigt?

Grüße

Communicate
Beiträge: 126
Registriert: 08.07.2012, 22:41
Hat sich bedankt: 1 Mal

Re: JSON - Aktor schalten

Beitrag von Communicate » 15.12.2012, 09:47

Ja genau unter der Adresse.

Nein, es wird nicht als zusatzsoftware angezeigt.

Gruß
Dominic

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: JSON - Aktor schalten

Beitrag von hobbyquaker » 15.12.2012, 09:49

Dann ist offensichtlich bei der Installation was schief gelaufen. Ist meines Wissens bisher noch nie passiert, daher bin ich erst mal etwas ratlos... Hast Du die Version 2.0.3 von homematic-inside? Und dann die .tar.gz Datei bei Zusatzsoftware hochgeladen? Ich würde da jetzt einfach mal ein zweiten Versuch Unternehmen - falls die Installation wieder fehlschlägt hab ich was zu tun ;-) Alternativ liesse es sich auch via FTP/SCP auf die CCU befördern, aber eigentlich "sollte" der Installer einwandfrei funktionieren...

Communicate
Beiträge: 126
Registriert: 08.07.2012, 22:41
Hat sich bedankt: 1 Mal

Re: JSON - Aktor schalten

Beitrag von Communicate » 15.12.2012, 09:54

Teste ich heute Abend. Hatte aber bereits vier install versuche hinter mir. Ja hab die homematic Inside version

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“