Unhandled JSON-RPC method [subscribeChannels]

Hallo,

ich versuche über die Websocken-Schnittstelle Daten aus dem edge abzurufen, schaffe es aber nicht Kanäle zu abonnieren.

Wenn ich z.B. folgendes JSON sende:

{
   "method":"subscribeChannels",
   "params":{
      "channels":[
         "_sum/State"
      ],
      "count":0
   },
   "jsonrpc":"2.0",
   "id":"AFD8FEB4-1482-4C96-A2DE-1E096B9F6419"
}

Bekomme ich als Antwort:

{
   "jsonrpc":"2.0",
   "id":"afd8feb4-1482-4c96-a2de-1e096b9f6419",
   "error":{
      "code":4001,
      "message":"Unhandled JSON-RPC method [subscribeChannels]",
      "data":[
         "subscribeChannels"
      ]
   }
}

Was mache ich falsch?

Grüße
Lukas

Hallo,

die Websocket-API ist leider undokumentiert - aber das OpenEMS UI ist die Referenzimplementierung.

Dort sieht man, dass der subscribeChannels Request (https://github.com/OpenEMS/openems/blob/develop/ui/src/app/shared/edge/edge.ts#L164C20-L166) vor dem Senden in einen EdgeRpc Request gepackt wird (https://github.com/OpenEMS/openems/blob/develop/ui/src/app/shared/edge/edge.ts#L232-L248). So müsste es funktionieren.

Gruß,
Stefan

Hallo Stefan,

vielen Dank für die schnelle Rückmeldung.
Mit dem Verpacken in einen EdgeRpc-Request hat es funktioniert.

Hatte es in der Doku (https://openems.github.io/openems.io/openems/latest/component-communication/index.html#_edge_rpc) so verstanden, dass der EdgeRpc-Request nur dann benötigt wird wenn ein Backend im Spiel ist.

Grüße
Lukas