NEWS
2 Werte Subtrtahieren in Node Red
-
Hallo
Möchte mir 2 Werte subtrahieren lassen und das Ergebniss im IoBroker anzeigen lassen.
Der ertse Wert hat manchmal auch den Wert Null da es hierbei ein wechselrichter ist der nicht immer am laufen ist.
Der 2 Wert ist der Verbrauch vom Teich wird ermittelt durch ein Sonoff Pow.
Möchte heir immer den realen Teichverbrauch haben auch wenn der Wechselrichter einspeist.Dachte mir mit einer normalen subtrahieren (minus) Rechnung müsste ich das lösen können.
-
@siporax MIt Note injekt über die beiden iobroker get dann im change die Formel eingeben und in den ertstellten Ordner im Broker übergeben lassen.
So sollte der Weg ja sein denke ich mal.
Aber irgendwie rechnet das nicht. -
[
{
"id": "8ab0e66e044bf135",
"type": "tab",
"label": "Teichverbrauch",
"disabled": false,
"info": "",
"env": []
},
{
"id": "70e72e3ff52dc5a7",
"type": "ioBroker get",
"z": "8ab0e66e044bf135",
"name": "W1T",
"topic": "fritzdect.0.DECT_116570079058.power",
"attrname": "W1T",
"payloadType": "value",
"errOnInvalidState": "nothing",
"x": 390,
"y": 400,
"wires": [
[
"768a8036c4a6b366"
]
]
},
{
"id": "fdcacb08349897af",
"type": "inject",
"z": "8ab0e66e044bf135",
"name": "Teichverbrauch ohne Wechselrichter",
"props": [
{
"p": "trigger",
"v": "true",
"vt": "bool"
}
],
"repeat": "60",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 150,
"y": 400,
"wires": [
[
"70e72e3ff52dc5a7"
]
]
},
{
"id": "768a8036c4a6b366",
"type": "ioBroker get",
"z": "8ab0e66e044bf135",
"name": "Teich_Verbrauch ",
"topic": "sonoff.0.Teich-Verbrauch.ENERGY_Power",
"attrname": "Teich_Verbrauch ",
"payloadType": "value",
"errOnInvalidState": "nothing",
"x": 550,
"y": 400,
"wires": [
[
"352f7707160183e2"
]
]
},
{
"id": "352f7707160183e2",
"type": "change",
"z": "8ab0e66e044bf135",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "W1T - Teich_Verbrauch ",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 750,
"y": 400,
"wires": [
[
"a8ce4721b9fcf7e7"
]
]
},
{
"id": "a8ce4721b9fcf7e7",
"type": "ioBroker out",
"z": "8ab0e66e044bf135",
"name": "Node_Red_Realer_Teichverbrauch",
"topic": "0_userdata.0.Node_Red_Realer_Teichverbrauch",
"ack": "true",
"autoCreate": "false",
"stateName": "",
"role": "",
"payloadType": "",
"readonly": "",
"stateUnit": "",
"stateMin": "",
"stateMax": "",
"x": 1000,
"y": 400,
"wires": []
}
] -
@siporax said in 2 Werte Subtrtahieren in Node Red:
[
{
"id": "8ab0e66e044bf135",
"type": "tab",
"label": "Teichverbrauch",
"disabled": false,
"info": "",
"env": []
},
{
"id": "70e72e3ff52dc5a7",
"type": "ioBroker get",
"z": "8ab0e66e044bf135",
"name": "W1T",
"topic": "fritzdect.0.DECT_116570079058.power",
"attrname": "W1T",
"payloadType": "value",
"errOnInvalidState": "nothing",
"x": 390,
"y": 400,
"wires": [
[
"768a8036c4a6b366"
]
]
},
{
"id": "fdcacb08349897af",
"type": "inject",
"z": "8ab0e66e044bf135",
"name": "Teichverbrauch ohne Wechselrichter",
"props": [
{
"p": "trigger",
"v": "true",
"vt": "bool"
}
],
"repeat": "60",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 150,
"y": 400,
"wires": [
[
"70e72e3ff52dc5a7"
]
]
},
{
"id": "768a8036c4a6b366",
"type": "ioBroker get",
"z": "8ab0e66e044bf135",
"name": "Teich_Verbrauch ",
"topic": "sonoff.0.Teich-Verbrauch.ENERGY_Power",
"attrname": "Teich_Verbrauch ",
"payloadType": "value",
"errOnInvalidState": "nothing",
"x": 550,
"y": 400,
"wires": [
[
"352f7707160183e2"
]
]
},
{
"id": "352f7707160183e2",
"type": "change",
"z": "8ab0e66e044bf135",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "W1T - Teich_Verbrauch ",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 750,
"y": 400,
"wires": [
[
"a8ce4721b9fcf7e7"
]
]
},
{
"id": "a8ce4721b9fcf7e7",
"type": "ioBroker out",
"z": "8ab0e66e044bf135",
"name": "Node_Red_Realer_Teichverbrauch",
"topic": "0_userdata.0.Node_Red_Realer_Teichverbrauch",
"ack": "true",
"autoCreate": "false",
"stateName": "",
"role": "",
"payloadType": "",
"readonly": "",
"stateUnit": "",
"stateMin": "",
"stateMax": "",
"x": 1000,
"y": 400,
"wires": []
}
] -
@siporax Verstehe ich dich richtig: Du hast einen Teich, dessen Technik entweder übers Netz, gemessen mit SonOff-Pow, versorgt wird oder bei Netzausfall über eine Wechselrichter. Wie wird die Leistung des Wechselrichters gemessen?
-
@geschild said in 2 Werte Subtrtahieren in Node Red:
@siporax Verstehe ich dich richtig: Du hast einen Teich, dessen Technik entweder übers Netz, gemessen mit SonOff-Pow, versorgt wird oder bei Netzausfall über eine Wechselrichter. Wie wird die Leistung des Wechselrichters gemessen?
Über eine fritz dect Steckdose wird der Wechselrichter gemessen
und der Teich über Sonoff Pow
Wie im Beispiel im Bild oben zu sehen ist.
983 Watt kommen vom Wechselrichter und nach Teichabzug gehen noch 780 Watt in die Batterie.
Damit ist der Verbraucht real vom Teich 203 Watt und diesen Wert will ich immer sehen mit oder ohne Wechselrichter. -
@siporax Werte kommen an aber werden nicht gerechnet habe da ein fehler drin denke ich.
-
-
So habe ich das gemacht mit dem Rechnen.
-
@siporax
Sieht es etwa so aus?
Du möchtest rechnen: POW - Fritz = Teichverbrauch real ?
Bzw. wissen: Wann hat der Teich mehr verbraucht, als der Wechselrichter liefert und wieviel ? -
@geschild Teich jat mehr verbrauch z.b im Winter in der Nacht usw.ist verschieden.
Kann man keine Regel erstellen wenn du das meinst.
Daher wollte ich es einfach immer so rechnen:
Pow minus Fritz Dect
Da dieses rgebnis immer der Verbrauch vom Teich ergibt.
Ob er 400 oder 800 Watt er ausgibt.
Nachts gibt er wenn die Batterie leer ist auch einfach auch mal 0 Watt ab.
Soltte doch gehen oder lieg ich falsch? -
@siporax Der Verbrauch vom Teich wird doch über den POW gemessen!
-
@geschild ja wird er aber der kann nur in eine Richtung zählen.
Sollange der Wechselrichter aus ist geht das prima.
Wenn er sich einschaltet zählt er den wert dazu und ich sehe mein realen verbrauch nicht mehr. -
@siporax Was ist an meiner Zeichnung falsch ?
-
@geschild könnten wir um uns um die Rechnung kümmern und nicht warum,bitte.
Den das Ergebnis ist das was ich brauche -
-
@geschild said in 2 Werte Subtrtahieren in Node Red:
Ich habes mal versucht damit.
Werte kommen an nur errechnet wird nichts bisher.
Denke die Ordnerstruktur im Broker muss dazu genau so aussehen,
einfach diese neu zu zuordnen geht nicht so einfach. -
@siporax wie ich schon mehrfach erklärt habe, rechnet man über einen Kontext oder sammelt alles in einem Nachrichtenobjekt. Was steht denn in Deiner function Node drin. Welcher deiner beiden Werte soll den triggern? Vorher wurde doch schon mit get nodes gearbeitet.
So wird das NIE funktionieren- und vielleicht kann sich einer ja mal überlegen warum.
Wenn ich das so lese muss doch nur der Verbrauch triggern und davon wird der Wechselrichterwert abgezogen. Dafür benötigt man keine 2 trigger und auch keine function Node.
Übrigens wenn ihr hier ein Flow einstellt, dann nur zwischen CodeTags und dann verspoilern.. sonst kann niemand damit was anfangen.
-
@siporax
Das wurde doch unten alles schon mal richtig dargestellt. Wie gesagt 2 mal triggern bringt nichts - die Werte treffen sich nie,Hier zum Import (verspoilert und in CodeTags):
-
Deine Lösung ist eleganter als meine. Chapeau. Bin mehr in script als in nodered zu Hause.
Bitte deshalb um Nachhilfe, wie deine Lösung funktioniert, wo erfolgt die Subtraktion (Doppelklick auf den change hat mich nicht weiter gebracht).
Noch in eigener Sache:
Deinen Kommentar zu meinem Ergebnis möchte ich nicht unkommentiert zu Kenntnis nehmen.
"Übrigens wenn ihr hier ein Flow einstellt, dann nur zwischen CodeTags und dann verspoilern.. sonst kann niemand damit was anfangen."
Einfach die .txt öffnen, STRG-A, STRG-C, in NodeRed importieren. Feddich"Was steht denn in Deiner function Node drin"
Importieren, Doppelklick auf node, lesen."So wird das NIE funktionieren- und vielleicht kann sich einer ja mal überlegen warum."
Doch, es funktioniert (sonst hätte ich es nicht gepostet) - und vielleicht kann sich einer ja mal überlegen warum.