Über openDTU das Ho...
 
Benachrichtigungen
Alles löschen

Über openDTU das Hoymiles-Limit vom Victron Cerbo GX mit NodeRed ansteuern?

6 Beiträge
3 Benutzer
0 Likes
145 Ansichten
 fdm
(@fdm)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 10
Themenstarter  

Moin, da hier ja die verschiedensten Fakultäten versammelt sind, wende ich mich mal mit der Bitte um Hilfe an euch:

Mit meiner Hausautomatisierung (IPS auf einem Windows-PC) regel ich meine PV-Batterienladung/Entladung, das läuft im Großen u. Ganzen sehr stabil.

-Tagsüber wird die Batterie von der PV mit einem Victron MPPT-Laderegler (Kontrolle MPPT/Batterie durch Victron Cerbo GX / Pylontech-Batt.-BMS) bis zu einem Batterie-SoC von 89% geladen, ist ein weiterer Erhöhung des SoC (Überschuß) vorhanden, wird über openDTU und angeschlossenem Hoymiles-Wechselrichter die Leistung ins Netzt geleitet, mit einer Hysterese von 4% SoC.

-Die Entladung erfolgt nachts indem ich über openDTU und dort angeschlossenem Hoymiles-Wechselrichter die Batterie wieder bis auf einen SoC < 15% ins Hausnetz entlade.

Versagt nun die übergeordnete Hausautomatisierungssteuerung wird die Batterie zwar durch das BMS geschützt, aber weiter bis auf 0% entladen und abgeschaltet.

Dies möchte ich zur Schonung der Batterie und Aufrechterhaltung der Funktion des Cerbo GX durch Abschaltung der Entladung ab einem SoC<10 verhindern.

Dazu möchte ich auf dem Cerbo GX (dort läuft auch NodeRed) den SoC überwachen und über ein http-request-Node die openDTU/Hoymiles auf WR-Output-Limit 0% einstellen.

Als zweiten Schritt, evtl. auch über eine vor dem Windows-PC vorgeschalteten Shelly-Plug, den PC ausschalten u. danach einschalten um die Hausautomatisierung wieder zu aktivieren.
Nun sitze ich schon einige Zeit um in NodeRed die Ansteuerung des WR-Output-Limit der openDTU hin zu bekommen, leider krieg ich es nicht zum Laufen.

Ansprechen mit cURL unter Windows auf dem PC klappt, das Limit kann ich einstellen, d.h. user/password der openDTU und Seriennummer des Hoymiles stimmen. Ich habe dazu folgendes cURL verwendet:

curl --include --request POST --data "data={'serial':'114190xxxxx', 'limit_type':1, 'limit_value':99}" --user "admin:openDTU42" http://192.168.178.20/api/limit/config  

Setze ich nun (zusammengesucht aus dem inet, da ich von NodeRed wenig Ahnung habe) die cURL Abfolge in NodeRed um, mit anschließendem http-request, erhalte ich nur ein: „warning , no values found, code 1002“ (d.h. das WR-Limit wird nicht verändert).

Hier meine Eingaben in der function-Node von NodeRed (natürlich mit den richtigen Adressen) :

msg.method = "POST";

msg.url = 'http://192.168.178.20/api/limit/config';

msg.headers = {

'Authorization': 'Basic '+(Buffer.from('admin:openDTU42')).toString('base64')

};

msg.payload = {

'serial': '114190xxxxxx',

'limit_type': 1,

'limit_value': 55

};

return msg;

 

Setze ich falsche Werte in die 'Authorization' erhalte ich überhaupt keine Rückmeldung, also scheint das ja hoffentlich schon mal zu stimmen.
Wie gesagt kenne ich mich leider mit NodeRed nicht so aus, um den Fehler einzukreisen.

Hat jemand eine Idee oder das schon mal in NodeRed so umgesetzt?
Für eure Hilfe wäre ich dankbar.

Gruß fdmarder

 

 


   
Zitat
(@und-mehr)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1122
 

When POSTing config data to OpenDTU, always send all settings back, even if only one setting was changed. Sending single settings is not supported and you will receive a response {"type":"warning","message":"Values are missing!"}

..,-


   
AntwortZitat
 fdm
(@fdm)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 10
Themenstarter  

@und-mehr ja, das hatte ich auch schon in der Doku von git openDTU gefunden, aber daran liegt es nicht.

Wollte die Lösung hier eingeben , wird aber von der Forums-SW blockiert.

Diese r Beitrag wurde geändert Vor 1 Woche von fdm

   
AntwortZitat
(@und-mehr)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1122
 

dann musst du in die Qeulle gucken:

void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request)
{
    if (!WebApi.checkCredentials(request)) {
        return;
    }

    AsyncJsonResponse* response = new AsyncJsonResponse();
    JsonObject retMsg = response->getRoot();
    retMsg["type"] = "warning";

    if (!request->hasParam("data", true)) {
        retMsg["message"] = "No values found!";
        retMsg["code"] = WebApiError::GenericNoValueFound;

request->hasParam("data", true) ist nicht true

oder versuch es mit mqtt

..,-


   
AntwortZitat
 Wilm
(@wilm)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 76
 

Ich hatte nur Erfolg mittels MQTT zwischen Node-Red und OpenDTU. Am besten mit dem SetPersistance-Parameter. Ist ausreichend in Github dokumentiert.

Multiplus II 3000/48 GX
Süd-Ost: Jinko Solar 4,92kWp
West: Jinko Solar 2,15kWp
Nord-West: No Name 720Wp
Süd: Jinko Solar 820Wp an Hoymiles HM-600 und OpenDTU
Seplos Mason 280Ah LFP Akku
Homebrew. 100Ah LFP Akku

Betrieb als ESS mit erweiterter Steuerung über Node-Red


   
AntwortZitat
 fdm
(@fdm)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 10
Themenstarter  

schau mal unter https://github.com/tbnobody/OpenDTU/discussions/1925

dort hab ich die Umsetzung mit http-request beschrieben.

(Kann ich hier leider nicht als Antwort hinzufügen)


   
AntwortZitat
Über openDTU das Ho...
 
Teilen: