JSON API - wie funktioniert Event.poll ?

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

Moderator: Co-Administratoren

Antworten
honorick
Beiträge: 6
Registriert: 20.10.2017, 08:59

JSON API - wie funktioniert Event.poll ?

Beitrag von honorick » 20.10.2017, 09:07

Hallo zusammen,

ich habe eine App entwickelt die über die JSON API (/api/homematic.cgi) mit der CCU kommuniziert. Funktioniert prima, jedoch kostet das ständige Pollen der Geräte und Kanäle (bzw. der Werte) sehr viel Performance. Ein echtes Pushen von Ereignissen von der CCU zur App ist ja über diese Schnittstelle nicht möglich - ABER es gibt ja die Methode Event.poll. Mein Verständnis war, dass ich mich hier per Event.subscribe anmelde und dann bei jedem nachfolgenden Event.poll die geänderten Werte (oder zumindest die Kanäle in denen sich Werte geändert haben) bekomme. Funktioniert leider nicht - lediglich das erste Event.poll gibt mir folgendes Ergebnis zurück:

Code: Alles auswählen

{
    "version": "1.1",
    "result": [
        {
            "type": "init",
            "data": null
        }
    ],
    "error": null
}
Alle nachfolgenden Aufrufe von Event.poll (nach beliebig langer Zeit und beliebig vielen Änderungen) geben dann nur noch dieses Ergebnis zurück:

Code: Alles auswählen

{
    "version": "1.1",
    "result": [],
    "error": null
}
Ist die Event-Methode hier nicht richtig implementiert? Mache ich etwas falsch? Habe ich die Methode falsch verstanden?

Wäre super, wenn hier jemand weiterhelfen könnte.

Grüße, Björn

zap
Beiträge: 66
Registriert: 05.12.2014, 17:57

Re: JSON API - wie funktioniert Event.poll ?

Beitrag von zap » 27.10.2017, 16:00

Ich habe den gleichen Effekt festgestellt und bin zu dem Schluss gekommen, dass es ein Bug in der CCU ist.
Nun verwende ich die RPC Schnittstelle.

honorick
Beiträge: 6
Registriert: 20.10.2017, 08:59

Re: JSON API - wie funktioniert Event.poll ?

Beitrag von honorick » 14.11.2017, 20:58

Ja, wäre vermutlich auch zu einfach gewesen ;)
An die XML-RPC-Schnittstelle hatte ich auch schon gedacht - da muss ich mir einmal ansehen wie ich die Schnittstelle für die Events eingebaut bekomme und trotzdem die bisherige Kommunikation über die JSON API beibehalten kann.

Viele Grüße

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“