NEWS
Huawei Wechselrichter und Wallbox abfrage über Modus?
-
Jetzt kommt warum auch immer wieder diese Meldung.
3 Aug 22:12:31 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.
-
Jetzt kommt warum auch immer wieder diese Meldung.
3 Aug 22:12:31 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.
-
-
@homewolf Eventuell ist da zu schnell für das Schreiben. Schau mal ob der Fehler kommt wenn Du nur in EINE Modbus-Node schreibst. Wenn kein Fehler kommt, dann verzögere das Schreiben mit einer delay Node.
-
@mickym habe gesehen, dass die Fehlermeldung von dem andern Ablauf kommt..
das umwandeln auf kW hat leider nicht geklappt.. der Zähler gibt jetzt N/A an.
-
@homewolf Nun wenn das mit Watt vorher geklappt hat - dann liegt es aber an den Werten die Konvertierung müsste aber stimmten. Sprich wenn Du die Change Node weglässt, schau mal ob Du das gleiche Ergebnis bekommst, dass Du vorher mit der function Node bekommen hast.
-
@mickym Das sind die Fehlermeldungen, die kommen...
-
@homewolf Ja aber diese Fehlermeldung kommt doch von einer function Node - nicht von dem Flow den wir gerade gemacht haben. Irgendwo gibts eine function Node mit dem Namen Sum
Am Besten Du deaktivierst diese function Node erst mal.
-
@mickym Ja habe ich korrekt. es war die, die die Werte addiert hat um die Gesamtleistung zu errechnen. Da die variable W1 es nicht mehr gab, kam der Fehler. Auch wenn ich Change Node weg lasse, kommt N/A
-
@homewolf Dann mach es doch nochmal so, wie es vorher funktioniert hat und poste mal die debug Node - damit ich sehe was Du vorher mit der Function Nodes in die Modbus Nodes geschrieben hast. Und wir sind uns doch einig - dass Umrechnung von Watt in kW - Watt/1000 ist.
Dann kannst Du auch einfach mal die ChangeNode vor Deine function Node setzen - wobei ich momentan echt schwer tu, den Code in Deiner function Node nachzuvollziehen. Das muss auch ohne function Nodes gehen - aber wie gesagt - man muss halt Schritt für Schritt probieren.
-
@mickym hier die beiden
var twatts=new Int32Array(2); var valor = (parseInt(msg.payload / 100)).toString(2).padStart(32, '0'); var twatts = new Int32Array(2); twatts[0] = parseInt(valor.substring(16, 32), 2); twatts[1] = parseInt(valor.substring(0, 16), 2); msg = { payload: twatts}; return msg;
flow.set('watts1',msg.payload); var watts=new Int32Array(2); watts[0]=msg.payload.toFixed(0) * 10; if (watts[0] < 0 ) { watts[0] = 65535 + watts[0]; watts[1] = 65535; } msg={}; msg.payload=watts; return msg;
-
@homewolf Ja nochmal machs einfach wie vorher und hänge nur die Change Node davor.
das hat doch vorher funktioniert:
Und nun rechnest Du halt den Wert aus der iobroker-IN Node mit der Change Node in kW um.
-
@mickym Ja habe ich gemacht, prinzipiell klappte es auch, er macht aus 2000 W -->2kw. Problem ist jetzt, aus 500 W macht er nicht 0,5 kW sondern 1 Kw. und aus 400 W macht er 0,0 kW .. er Rundet also...
-
@homewolf Das macht aber Deine function Node - aber zeig halt mal wenn Du eine Debug Node dahinter hängst was da rauskommt?
-
@mickym 10.0 kommt raus
-
Das kommt bei deiner Version untern drunter raus
13.8.2023, 23:16:49node: debug 1
hm-rega.0.28633 : msg.payload : array[2]
[ 16319, 57147 ] -
@homewolf Ja das ist eigenartig - da das was aus der function Node rauskommt eigentlich ein String ist.
Also bei 1499 als Input kommt 10,0 als String raus?
Kannst Du mal einen Screenshot von Deiner Modbus Node machen - ich kenne die ja nicht, aber vielleicht sehe ich da Einstellmöglichkeiten - wie gesagt ich selbst habe keinen Modbus.
-
@mickym hinter dem Change kommt raus
13.8.2023, 23:20:31node: debug 2
hm-rega.0.28633 : msg.payload : number
1.499 -
@mickym ja das ist ja richtig
1499 W = 1.499 kW - Zahlen werden in JS immer mit Punkten und nicht mit Komma dargestellt.
-
ja scheinbar braucht aber die Ausgabe bei Modbus ein , anstelle den .