# ACTIVE\_POWER vs. SET\_ACTIVE\_POWER

**URL:** <https://community.openems.io/t/active-power-vs-set-active-power/1517>\
**Category:** Uncategorized\
**Created:** [April 5, 2023, 9:47pm UTC](https://community.openems.io/t/active-power-vs-set-active-power/1517 "2023-04-05T21:47:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![SBartel](https://community.openems.io/letter_avatar_proxy/v4/letter/s/2acd7d/32.png) [@SBartel](https://community.openems.io/u/SBartel)\
**Post date:** [April 5, 2023, 9:47pm UTC](https://community.openems.io/t/active-power-vs-set-active-power/1517/1 "2023-04-05T21:47:15Z")

</div>

Hallo und Guten Morgen

Ich habe eine kurze Frage:  
Ist ACTIVE\_POWER der Kanal auf dem die aktuelle Leistung des ESS liegt  
und wird in diesen Kanal geschrieben wenn man\_setActivePower() aufruft?

Der Kanal gehört ja `SymmetricEss.ChannelId`.

Das ist nämlich etwas verwirrend, weil viele ESS-Implementierungen in den Kanal SET\_ACTIVE\_POWER die geforderte Leistung schreiben.

Eine kurze Erklärung dazu wäre toll.

Sebastian

---

<div class="post-metadata">

**Author:** ![tsicking](https://community.openems.io/user_avatar/community.openems.io/tsicking/32/954_2.png) [@tsicking](https://community.openems.io/u/tsicking)\
**Post date:** [April 6, 2023, 9:15am UTC](https://community.openems.io/t/active-power-vs-set-active-power/1517/2 "2023-04-06T09:15:46Z")

</div>

Hallo Sebastian,

ACTIVE\_POWER ist read-only, also die von der Ess gelesene Leistung, und SET\_ACTIVE\_POWER die geforderte Leistung, und sollte auch nur im **Managed** SymmetricEss zu finden sein (bzw. eher SET\_ACTIVE\_POWER\_EQUALS,…). Die Methode `_setActivePower` ist zur internen Benutzung, um den von der Ess gelesenen Wert in den OpenEMS-Channel zu schreiben und wird nicht genutzt, um eine Vorgabe an das Ess zu machen.

Beste Grüße,  
Thomas

---

<div class="post-metadata">

**Author:** ![klinki](https://community.openems.io/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@klinki](https://community.openems.io/u/klinki)\
**Post date:** [April 6, 2023, 4:25pm UTC](https://community.openems.io/t/active-power-vs-set-active-power/1517/3 "2023-04-06T16:25:55Z")

</div>

m.W. wird die geforderte Leistung ausschließlich der applyPower()-Methode übergeben. Ein **Managed** SymmetricEss setzt die Implementierung der Methode vorraus.  
Stefan hatte das [hier](https://community.openems.io/t/ess-that-can-talk-with-openems-using-modbus-tcp/1029/3) schon ganz gut aufgedröselt.  
Ich bin (natürlich) auch darüber gefallen 😉

Gruß  
klinki

---

<div class="post-metadata">

**Author:** ![SBartel](https://community.openems.io/letter_avatar_proxy/v4/letter/s/2acd7d/32.png) [@SBartel](https://community.openems.io/u/SBartel)\
**Post date:** [April 7, 2023, 10:50am UTC](https://community.openems.io/t/active-power-vs-set-active-power/1517/4 "2023-04-07T10:50:40Z")

</div>

Ja, ihr habt recht. Ich fasse das mal so zusammen:

_SymmetricEss_ stellt den Channel _ACTIVE\_POWER_ bereit, in dem man die tatsächliche Leistung seines eigenen ESS schreiben **muss** (sonst weiß z.B. UI, oder ein Controller nichts davon)

Dazu stellt _SymmetricEss_ die (Convenience-) Funktion _\_setActivePower()_ bereit.

**Analog dazu:**  
_ManagedSymmetricEss_ stellt den Channel _SET\_ACTIVE\_POWER\_EQUALS_ bereit, in dem man die geforderte Leistung schreiben **kann**.

Dazu stellt _ManagedSymmetricEss_ die (Convenience-) Funktion _setActivePowerEquals()_ bereit.

* * *

Die Verwirrung entsteht, weil viele Implementierungen den definierten Channel _SET\_ACTIVE\_POWER\_EQUALS_ ignorieren und einen eigenen Channel definieren.  
Der heißt dann oft SET\_ACTIVE\_POWER.

@Stefan, falls Du mitgelesen hast.  
Kannst Du das so bestätigen?
