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