NEWS
Ahoy DTU - API - Json Post request zum schalten senden
-
Hi Leute,
ich suche jetzt schon ne ganze Weile aber irgendwie bin ich unfähig oder schlicht zu unwissend um mein Ziel zu erreichenAlso folgende Zielstellung:
Ich habe die Ahoy-DTU am laufen und bekomme auch ordentlich alle Daten über MQTT. Nun möchte ich aber den Wechselrichter per Script Aus- / Einschalten können. Meinem Verständnis nach geht dies über ein Json Post Kommando an die DTU, nur finde ich nicht raus, wie ich das vom IOB schicken kann.Gedanke war, das mit Javascript zu machen aber offensichtlich fehlt mir hier das Wissen, warum ich auf eure Hilfe hoffe.
Was ich bisher glaube zu wissen ist der Command bzw. das Grundkonstrukt aber wie bekomm ich das jetzt funktional, dass es auch etwas sendet?
url = 'http://ip-der-dtu/api/', method = 'POST', headers = { ['Content-type'] = 'application/json' }, postData = '{"id":0,"cmd":"power","val":0}',
Das Ganze folgt der Anleitung Control via REST API aus der Ahoy Beschreibung.
Danke schon mal für eure Hilfe!
Viele Grüße
Mario -
Rein Interessehalber, warum möchte man seinen WR ausschalten?
-
@mariohbs
Ich mache etwas Vergleichbares um Nachrichten per Signal zu senden.
Das sollte sich leicht adaptieren lassen ... ungetestet:function dtuSendKill() { var sendParams = { url: 'http://ip-der-dtu/api/', headers: {'Content-Type': 'application/json'}, postData = '{"id":0,"cmd":"power","val":0}' }; request.post(sendParams, function(error, response, body) { if (error) { console.error(error); } else { console.log('Wechselrichter abgeschaltet!'); } }); }
-
@haselchen - Wegen Nachteinspeisung aus dem Akku. Abschaltung bevor der Akku zu tief entladen wird.
@Codierknecht - Danke, das sieht gut aus. Werde es heute Nachmittag nach Feierabend mal testen und mich zurück melden
-
@codierknecht Funktioniert leider nicht und ich habe keine Idee warum
Erster Fehler war mit postData. Da ist bei dir nen = drin, das wollte das Script nicht und ich habe es gegen einen Doppelpunkt ausgetauscht. Also so:
postData: '{"id":0,"cmd":"power","val":0}'
Seitdem läuft es zumindest an, bringt aber nach einigen Sekunden die Meldung:
error javascript.0 (833) script.js.Test-Scripte.HM-Steuern: {'code':'ECONNRESET'} error Request error: Error: socket hang up
Hast du noch eine Idee wie ich hier weiter kommen könnte?
Danke schon mal und viel Grüße
Mario -
@mariohbs sagte in Ahoy DTU - API - Json Post request zum schalten senden:
Da ist bei dir nen = drin, das wollte das Script nicht und ich habe es gegen einen Doppelpunkt ausgetauscht.
Copy-Paste-Fehler, sorry
Hast du noch eine Idee wie ich hier weiter kommen könnte?
Nö - außer mal mit
postData
rumspielen. Irgendetwas passt ihm da nicht. -
@codierknecht Ich habe es übe Javascript ums verrecken nicht hinbekommen. Habe es jetzt mit einem CURL über EXEC Block gelöst. Funktioniert jetzt zufriedenstellend
Vielen Dank nochmal!
-
@mariohbs Freut mich sehr das du eine Lösung gefunden hast.
Ich stehe aktuell vor dem gleichen Problem. Würde mich sehr interessieren wie du das im Detail gelöst hast. -
Ich schluieße mich mal an, ich bekomme auch den Fehler ECONNRESET und wäre sehr daran interessiert, wie man das lösen kann.