Verzweifle an actions.HTTP.sendHttpPostRequest (unter OH4)
Verfasst: 25. Apr 2024 16:58
Hi an alle,
ich versuche gerade meine cfos-Wallbox anzubinden.
Da mein Wechselrichter nicht nativ unterstützt wird bzw Modbus nciht über IP raus gibt, möchte ich über OH gehen.
Hier liegt ja über SolarAssistant=> MQTT schon alles an.
Ich habe mich schon mit der API der http Zähler befasst.
Mit folgendem Aufruf aus dem Browser bekomme ich auch den entsprechenden Wert im cfos-System gesetzt:
http://192.168.178.239/cnf?cmd=set_ajax ... wer_w=2060
Nun möchte ich das eben gerne auf die entsprechende (JS) Rule umsetzen.
Zunächst wollte ich einfach mal den Wert fest schreiben, bevor ich mit Variablen und Berechnungen anfange.
Führt nur zur Ausgabe "Unauthorized".
Die ganze Rule schaut derzeit so aus:
Mir raucht jetzt nach einigen stunden erst mal überhaupt cfos und API verstehen und jetzt knapp 3h an OH rumprobieren echt die Rübe.
Der Fehler den ich mach kann ja nur minimal sein (oder ich habs völlig falsch verstanden). Irgendwie muss das doch halbwegs einfach gehen mal was per post zu setzen?
ich versuche gerade meine cfos-Wallbox anzubinden.
Da mein Wechselrichter nicht nativ unterstützt wird bzw Modbus nciht über IP raus gibt, möchte ich über OH gehen.
Hier liegt ja über SolarAssistant=> MQTT schon alles an.
Ich habe mich schon mit der API der http Zähler befasst.
Mit folgendem Aufruf aus dem Browser bekomme ich auch den entsprechenden Wert im cfos-System gesetzt:
http://192.168.178.239/cnf?cmd=set_ajax ... wer_w=2060
Nun möchte ich das eben gerne auf die entsprechende (JS) Rule umsetzen.
Zunächst wollte ich einfach mal den Wert fest schreiben, bevor ich mit Variablen und Berechnungen anfange.
Code: Alles auswählen
console.info(actions.HTTP.sendHttpPostRequest("http://192.168.178.239/cnf", "application/json", '{"cmd": "set_ajax_meter", "dev_id": "M5", "power_w": "2000"}'));
Die ganze Rule schaut derzeit so aus:
Code: Alles auswählen
var Verbrauch_Haus, Netzbezug, PV_Leistung, AkkuLeistung, JSONString, temp;
var thread = Java.type('java.lang.Thread')
items.getItem('FlagWallboxSchreibenReady').sendCommand('OFF');
Verbrauch_Haus = items.getItem('SolarAssistant_PV_Verbrauch_Haus').numericState;
Netzbezug = items.getItem('SolarAssistant_PV_Netz_Bezug').numericState;
PV_Leistung = items.getItem('SolarAssistant_PV_Leistung_Solar').numericState;
AkkuLeistung = items.getItem('SolarAssistant_PV_Batterie_Leistung').numericState;
console.error("Test");
//temp = 'http://192.168.178.239/cnf?cmd=set_ajax_meter&dev_id=M5&model=Ertrag%20PV&power_w=';
//temp += String(PV_Leistung);
//console.info(actions.HTTP.sendHttpPostRequest("http://192.168.178.239/cnf", "application/json", '{"cmd": "set_ajax_meter", "dev_id": "M5", "power_w": "2000"}'));
thread.sleep(1000);
items.getItem('FlagWallboxSchreibenReady').sendCommand('ON');
Der Fehler den ich mach kann ja nur minimal sein (oder ich habs völlig falsch verstanden). Irgendwie muss das doch halbwegs einfach gehen mal was per post zu setzen?