De-/Aktivieren einer Komponente via jsonrpc oder anders

Hallo Community

Wie kann ich eine Komponente (Controller) aus dem UI aktivieren bzw. deaktivieren oder ganz allgemein konfigurieren? Ich möchte nicht gehen über:
UI -> Menü -> Einstellungen -> Komponenten konfigurieren

Gibt es dafür einen Channel oder muss das erfolgen über:
jsonrpc -> Edge -> Component.deactivate()

Vielen Dank!

Hi,

es gibt sehr viele Möglichkeiten, die Konfiguration in OpenEMS zu ändern.

  1. JSON RPC über HTTP
  2. JSON RPC über Websockets

Für beide Fälle müsste man die folgende Anfrage an OpenEMS senden:

{
	"method": "updateComponentConfig",
	"params": {
		"componentId": "yourFancyComponentId",
		"properties": [{
 			"name": "enabled",
			"value": true
		}]
	}
}

Diese Methode ist auch in der Dokumentation beschrieben.

Wenn du abenteuerlustig bist, kannst du auch über Apache Felix Webconsole gehen. Dort kann man die Konfiguration auch über die REST API erledigen.
Beispielsweise könnte man die Einstellung enabled mit der folgende Anfrage setzen:

$ curl -u admin:admin -X POST -d "enabled=true" http://localhost:8080/system/console/configMgr/io.openems.edge.mycomponent

Die Beschreibung der REST API findest du in der Dokumentation von Apache Felix

Viele Grüße

2 Likes

Hi Lóránt

Danke für den Hinweis auf die Methode updateComponentConfig.
Ich hätte sonst vom Controller abgeleitet, handleJsonrpcRequest implementiert und die Komponente manuell deaktiviert.

So ist es einfacher :slight_smile: