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