jsonRpc Response aus Edge

Guten Morgen

Ich sende JsonRpc Requests aus UI nach Edge und möchte Erolgs- und Fehlermeldungen zurück ans UI liefern. Nach dem Studium der Edge Quellcodes bin ich auf folgende Lösung gekommen:

public CompletableFuture<JsonrpcResponseSuccess> handleJsonrpcRequest(User user, JsonrpcRequest request)
	throws OpenemsNamedException {
		
	JsonObject Response = JsonUtils.parseToJsonObject("{'message':'Erfolg !'}");

	if (Response == null)
		// null, weil ich nicht wusste, wie man ein Throwable definiert
		return CompletableFuture.failedFuture(null); 
	else
		return CompletableFuture.completedFuture(new GenericJsonrpcResponseSuccess( request.getId(), Response));
}

Ein paar Details sind vermutlich noch falsch, aber ist das der richtige Ansatz ?

Und geht das auch kürzer in der return-Zeile oder muss man wirklich all diese vordefinierten Klassen und Methoden verwenden um {‘message’:‘Erfolg !’} zurück zu liefern?

Hallo,

ein typischer Use-Case ist, dass man aus dem UI mit einer spezifischen Component im Edge kommunizieren möchte. Dazu kann man im Edge das JsonApi Interface implementieren.

Hier ein bisschen Doku dazu:

https://openems.github.io/openems.io/openems/latest/component-communication/index.html#_jsonapi_component

Beispiel:

Gruß,
Stefan

Danke Stefan.

Das ist genau mein Use-Case.
Und ich bin jetzt auch mit dem CompletableFuture “per Du”. :slight_smile: