NEWS
SG Ready bei Stromeinspeisung aktivieren
-
Hallo liebe Community,
ab einer Einspeisung von 2.000 Watt ins Netz und einer WW-Temperatur < 45 Grad möchte ich bei meiner Wärmepumpe SG Ready aktivieren.
Leider erkennt er die Temperatur scheinbar nicht richtig in der Function Node.
Den negativen Wert bei der Einspeisung erkennt er auch nicht richtig
Hat jemand einen Tip ?Gruß Michael
[ { "id": "edfdd07.226efb", "type": "function", "z": "c6aa354c.9da348", "name": "Einspeisung > 2.000 Watt ?", "func": "if(msg.netz < '-2000' & msg.wwtemp < '45') {\n msg.payload = true;\n }\nelse{\n msg.payload = false;\n}\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 940, "y": 560, "wires": [ [ "60307c86.1cb4bc", "4ffd7610.d4ed4" ] ] } ]
-
Was ist das was du gepostet hast? Sieht bisschen aus wie die RAW Daten eines Objektes
Woher bekommt iobroker die infos über Einspeisung und die Daten der WP ?
-
@Dancekid
Hi, das könnte daran liegen das du mit Strings arbeitest. Da ist 4.61 dann größer als 45, nur mal so als Beispiel. Du könntest versuchen den String in der Funktion Node als Number zu verwenden und dann bei den Bedingungen auch mit Nummer arbeiten.[ { "id": "a220602c.31397", "type": "function", "z": "523fbe1.477244", "name": "Einspeisung > 2.000 Watt ?", "func": "if (Number (msg.netz) < -2000 & Number (msg.wwtemp) < 45) {\n msg.payload = true;\n }\nelse{\n msg.payload = false;\n}\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 580, "y": 280, "wires": [ [] ] } ]
@wendy2702
Das ist ne Funktion Node in Node Red in der Java Script Funktionen ausgeführt werden. -
@frankyboy73 oh,
Sorry das Node-Red hatte ich übersehen.
-
@wendy2702
Kein Thema
Zur Info:
Das sieht dann so ähnlich aus.
Und in der Funktion Node (Einspeisung > 2000 Watt) steht dann so was ähnliches drin.
-
Guten Abend Frankyboy,
danke für den Hinweis mit dem String.
Habe vor 27 Jahren mal Turbo Pascal in der Schule gehabt und seitdem nichts mehr.
"Habe versucht im Netz ein wenig was zu finden, aber da fehlen mir die Suchbegriffe für die Fehlerbehebung.Wenn ich das ganze als Number definiere, dann brauche ich noch was für die negativen Werte.
Meine PV-Anlage liefert bei Einspeisung einen negativen Wert und daher muss ich prüfen, ob die Zahl kleiner als -2.000 Watt ist.
Bei -3.000 Watt werden also 3.000 Watt in das Netz eingespeist.Ich könnte auch nutzen: (PV-Leistung - Hausverbrauch) > 2.000 Watt wenn das einfacher in der Function funktioniert.
if(Number (msg.netz) < 2000 & Number (msg.wwtemp) < 45) { msg.payload = true; } else{ msg.payload = false; } return msg;
Syntax muss bestimmt anders lauten ?
if (msg.hasOwnProperty("pvleistung")) { flow.set('pvleistung', msg.pvleistung); } else if (msg.hasOwnProperty("hausverbrauch")) { flow.set('hausverbrauch', msg.hausverbrauch); } var pvleistung = flow.get('pvleistung') || 0; var hausverbrauch = flow.get('hausverbrauch') || 0; msg.einspeisung = pvleistung-hausverbrauch; return Number (msg.einspeisung)
Gruß Michael
-
@Dancekid Hi, klappt das bei Nummer nicht wenn du in der Funktion schreibst, < -2000 ? Hatte das eigentlich gestestet und dachte das würde so gehen. Da müsste ich mich sonst auch erst mal schlau machen. Werde da morgen mal ein bisschen rumspielen und versuchen das zu lösen.
-
Guten Morgen Frankyboy,
gestern war es wohl zuspät. Heute funktioniert es.
Teste gerade die Einstellungen; bekomme zumindest keinen Fehler mehr. Mal sehen, ob es so richtig läuft.
Danke für die Tips.
Gruß Michael
-
Off Topic:
darf ich mal Fragen was für eine WP du hast und was das SG Ready bedeutet?
-
@Dancekid
Hi, das freut mich.
Nur so als Tipp noch, da du ja eh ne Funktion Node verwendest, brauchst du eigentlich nicht mehr ne Umwandlung. Anstatt msg.payload = true schreibst du msg.payload = 1 und anstatt false 0. Dann kommt 1 und 0 aus der Funktion, als Nummer, brauchst du nen String, dann '1' und '0'