[Gelöst] FEMS - Schreiben eines Wertes rückgängig machen

Hallo zusammen,

wie kann man einen geschriebenen (WO) Wert, wieder rückgängig machen?

Beispiel, hier aus dem Board:

Würde das mit { “value”: null} gehen?

Ich habe zwar schreibzugriff, traue mich aber nicht es zu machen, da ich nicht weiß, ob und wie ich aus der Nummer wieder herauskomme. :grin: :grin:

Viele Grüße Jörg

Starte die FEMS neu dann ist der Wert weg

Hallo Sn0w3y,

vielen Dank für die Antwort.

Hatte irgendwie mit einer etwas eleganteren Lösung gerechnet.

Viele Grüße Jörg

Wenn es sich um ein FEMS System handelt werden alle Werte nach einem Timeout (Konfigurierbar in der Schreib-App) automatisch wieder auf den sicheren Systemwert zurück gestellt. Man muss kontinuierlich diese Werte schreiben um das System zu übersteuern.

Hallo TheSerapher,

danke für die Hilfe, das mit dem Timeout kannte ich schon. Mir ging es nur darum zu wissen, ob man das Überschreiben mit einem Wert, wie null, oder “ “, wieder rückgängig machen kann.

Wenn es nicht geht, ist das auch ok. :slightly_smiling_face:

Viele Grüße Jörg

Was hältst du davon, zuerst zu lesen und den Wert zu merken? Dann hast du die Möglichkeit, ihn wieder zu schreiben, wenn du Angst bekommst.

Was hälst du davon erst mal meinen ersten Beitrag zu lesen?

Es handelt sich dabei um einen WO Datenpunkt. WO bedeutet Write only also kann da nichts gelesen werden.

Für den Einen, oder Anderen, der auch an der Lösung Interressiert ist. Ich habe es mehrfach bei mir getestet:

Wenn man z.B. bei einem WO - Datenpunkt
http://x:owner@<FEMS_IP>/rest/channel/ess0/SetActivePowerLessOrEquals { “value”: 5000} schreibt, kann das unabhängig von der Einstellung API Timeout mit
http://x:owner@<FEMS_IP>/rest/channel/ess0/SetActivePowerLessOrEquals { “value”: null} wieder rückgängig gemacht werden.

Viele Grüße Jörg

Weiss jemand wie man das bei Modbus macht.

mit dem Watchdog fallback scheint nur zu gehen wenn man keinerlei Werte per modbus setzt. Wenn ich aber nur einen Wert zurücksetzen will, reicht es nicht diesen Wert einfach nicht mehr zu schreiben. Er bleibt so lange erhalten bis ich aufhöre auch die anderen zu schreiben.

Hallo Holger, sorry, habe Dein Posting gerade erst gesehen.

Das müsste eigentlich auch bei modbus so funktionieren.
Wenn Du z.B. drei Werte (A, B, C) geschrieben hast und einen davon (B) wieder rückgängig machen möchtest, schreibst Du den Wert (B) einmalig mit null. Die anderen beiden Werte (A,C) kannst Du, je nach Einstellung im Watchdog dann weiter mit Deinen Werten beschreiben.

Wobei ich anmerken möchte, dass ich meinen Watchdog auf 24 Stunden + 10 Minuten stehen habe. Sollte ein Wert gewollt länger als 24 Stunden aktiv sein, brauche ich den nur einmal am Tag nachzuschreiben.
Damit erspare ich mir das permanente nachschreiben der Werte in die Anlage. :slight_smile:
Das läuft so seit ende November bei mir ohne irgendwelche Probleme!

Viele Grüße Jörg

Hallo Joerg,

danke für deine Antwort. Modbus unterstützt vom Protokoll her leider kein null.

Mittlerweile bin ich aber auch auf die REST API umgestiegen und konnte damit alle meine Probleme lösen.

Hab damit eine Lade- und Entladebegrenzung der Batterie umgesetzt. Zusätzlich wird die Batterie zu bestimmten Zeiten gezielt geladen.

Es gibt aber deshalb in vielen Standards (z. B. SunSpec und auch in OpenEMS) für jeden Datentyp einen konkreten Wert, der UNDEFINED bedeutet. In der Modbus-API ist das leider bisher nicht umgesetzt, es gibt aber einen Pull-Request dazu:

Sobald dieser fertiggestellt ist und in OpenEMS und FEMS verfügbar ist, könnte man so einen Wert aktiv zurücksetzen - genau wie wenn man über REST/JSON null schreibt.