NEWS
2 Werte Subtrtahieren in Node Red
-
@mickym said in 2 Werte Subtrtahieren in Node Red:
@geschild Deine Lösung hat den Vorteil, wenn der Verbrauch nicht triggert, dass dann der Wert sofort angepasst wird. Sollte also auch der Wechelrichter triggern müsste man den Verbrauch extra auslesen und dann brauchst Du ein paar mehr Nodes. Insofern hat Deine Lösung durchaus seine Berechtigung, wenn der Verbrauch nicht oft genug triggert.
In diesem Fall würde sich meine Lösung wie folgt "verkomplizieren":
Danke für die Hilfe ,bin nun doch etwas überfordert aber ich versuche es einfach mal mit dem leztem Beispiel.
Wenn ich nicht klar komme melde ich mich nochmal hier mit dem Qode hier. -
@siporax Wie gesagt das brauchst Du nur, wenn Dir der Tech-Pow trigger nicht ausreicht.
Sonst langt die einfache Lösung.
-
@mickym said in 2 Werte Subtrtahieren in Node Red:
@siporax Wie gesagt das brauchst Du nur, wenn Dir der Tech-Pow trigger nicht ausreicht.
Sonst langt die einfache Lösung.
Setze mich später gleich man dran an das ganze.Melde mich dann wieder.
-
@siporax Die einfache Lösung nur mit der Trigger des Sonoff - war hier (sind nur 4 Nodes): https://forum.iobroker.net/post/1019849
-
@mickym said in 2 Werte Subtrtahieren in Node Red:
@siporax Die einfache Lösung nur mit der Trigger des Sonoff - war hier (sind nur 4 Nodes): https://forum.iobroker.net/post/1019849
So habs soweit übernommen u d angepasst läuft aber nicht bzw schreib keine Daten in den Broker da steht immer Null
[ { "id": "78f6b708eb6bd2fe", "type": "tab", "label": "Realer Teichverbrauch", "disabled": false, "info": "", "env": [] }, { "id": "4e110ac9e3526a1d", "type": "ioBroker in", "z": "78f6b708eb6bd2fe", "name": "Teich-Pow", "topic": "sonoff.0.Teich-Verbrauch.ENERGY_Power", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 120, "y": 100, "wires": [ [ "e6795d8dc9d84fcc" ] ] }, { "id": "be61f3942177482d", "type": "ioBroker get", "z": "78f6b708eb6bd2fe", "name": "WR-Fritz", "topic": "fritzdect.0.DECT_116570079058.power", "attrname": "wr", "payloadType": "value", "errOnInvalidState": "nothing", "x": 520, "y": 100, "wires": [ [ "719b166cf1c4cf56" ] ] }, { "id": "719b166cf1c4cf56", "type": "change", "z": "78f6b708eb6bd2fe", "name": "TeichPow - WR", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "verbrauch - wr", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 140, "wires": [ [ "2528507974039f88", "ec4528823eccb390" ] ] }, { "id": "2528507974039f88", "type": "ioBroker out", "z": "78f6b708eb6bd2fe", "d": true, "name": "Realer_Teichverbrauch", "topic": "0_userdata.0.Node_Red_Realer_Teichverbrauch", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 950, "y": 180, "wires": [] }, { "id": "ec4528823eccb390", "type": "debug", "z": "78f6b708eb6bd2fe", "name": "Ergebnis nur payload", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 940, "y": 140, "wires": [] }, { "id": "e6795d8dc9d84fcc", "type": "change", "z": "78f6b708eb6bd2fe", "name": "", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "verbrauch", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 320, "y": 100, "wires": [ [ "be61f3942177482d" ] ] }, { "id": "5413c6e8e87d1659", "type": "ioBroker in", "z": "78f6b708eb6bd2fe", "name": "WR-Fritz", "topic": "fritzdect.0.DECT_116570079058.power", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 120, "y": 180, "wires": [ [ "e857e6e86301279a" ] ] }, { "id": "8e2c30a2834a5bc7", "type": "ioBroker get", "z": "78f6b708eb6bd2fe", "name": "Teich-Pow", "topic": "sonoff.0.Teich-Verbrauch.ENERGY_Power", "attrname": "verbrauch", "payloadType": "value", "errOnInvalidState": "nothing", "x": 530, "y": 180, "wires": [ [ "719b166cf1c4cf56" ] ] }, { "id": "e857e6e86301279a", "type": "change", "z": "78f6b708eb6bd2fe", "name": "", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "wr", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 320, "y": 180, "wires": [ [ "8e2c30a2834a5bc7" ] ] } ]
-
@siporax said in 2 Werte Subtrtahieren in Node Red:
@mickym said in 2 Werte Subtrtahieren in Node Red:
@siporax Die einfache Lösung nur mit der Trigger des Sonoff - war hier (sind nur 4 Nodes): https://forum.iobroker.net/post/1019849
So habs soweit übernommen u d angepasst läuft aber nicht bzw schreib keine Daten in den Broker da steht immer Null
[ { "id": "78f6b708eb6bd2fe", "type": "tab", "label": "Realer Teichverbrauch", "disabled": false, "info": "", "env": [] }, { "id": "4e110ac9e3526a1d", "type": "ioBroker in", "z": "78f6b708eb6bd2fe", "name": "Teich-Pow", "topic": "sonoff.0.Teich-Verbrauch.ENERGY_Power", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 120, "y": 100, "wires": [ [ "e6795d8dc9d84fcc" ] ] }, { "id": "be61f3942177482d", "type": "ioBroker get", "z": "78f6b708eb6bd2fe", "name": "WR-Fritz", "topic": "fritzdect.0.DECT_116570079058.power", "attrname": "wr", "payloadType": "value", "errOnInvalidState": "nothing", "x": 520, "y": 100, "wires": [ [ "719b166cf1c4cf56" ] ] }, { "id": "719b166cf1c4cf56", "type": "change", "z": "78f6b708eb6bd2fe", "name": "TeichPow - WR", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "verbrauch - wr", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 140, "wires": [ [ "2528507974039f88", "ec4528823eccb390" ] ] }, { "id": "2528507974039f88", "type": "ioBroker out", "z": "78f6b708eb6bd2fe", "d": true, "name": "Realer_Teichverbrauch", "topic": "0_userdata.0.Node_Red_Realer_Teichverbrauch", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 950, "y": 180, "wires": [] }, { "id": "ec4528823eccb390", "type": "debug", "z": "78f6b708eb6bd2fe", "name": "Ergebnis nur payload", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 940, "y": 140, "wires": [] }, { "id": "e6795d8dc9d84fcc", "type": "change", "z": "78f6b708eb6bd2fe", "name": "", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "verbrauch", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 320, "y": 100, "wires": [ [ "be61f3942177482d" ] ] }, { "id": "5413c6e8e87d1659", "type": "ioBroker in", "z": "78f6b708eb6bd2fe", "name": "WR-Fritz", "topic": "fritzdect.0.DECT_116570079058.power", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 120, "y": 180, "wires": [ [ "e857e6e86301279a" ] ] }, { "id": "8e2c30a2834a5bc7", "type": "ioBroker get", "z": "78f6b708eb6bd2fe", "name": "Teich-Pow", "topic": "sonoff.0.Teich-Verbrauch.ENERGY_Power", "attrname": "verbrauch", "payloadType": "value", "errOnInvalidState": "nothing", "x": 530, "y": 180, "wires": [ [ "719b166cf1c4cf56" ] ] }, { "id": "e857e6e86301279a", "type": "change", "z": "78f6b708eb6bd2fe", "name": "", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "wr", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 320, "y": 180, "wires": [ [ "8e2c30a2834a5bc7" ] ] } ]
-
@siporax Ja dann mach mal ein Screenshot und zeig den Status bzw. mach Debug Nodes dran. Wenn 100-100 = 0 rauskommt, dann ist das ja richtig.
Und es stimmt ja nicht, dass er nichts schreibt:
Der Datenpunkt wurde um 14:34 heute beschrieben.
-
@mickym said in 2 Werte Subtrtahieren in Node Red:
@siporax Ja dann mach mal ein Screenshot und zeig den Status bzw. mach Debug Nodes dran. Wenn 100-100 = 0 rauskommt, dann ist das ja richtig.
Und es stimmt ja nicht, dass er nichts schreibt:
Der Datenpunkt wurde um 14:34 heute beschrieben.
-
@siporax Na dann kommt doch das Ergebnis raus. Du musst doch nur die iobroker-Out Node wieder aktivieren.
Die Debug Node kannst wieder wegschmeissen - das ist doch nur zur Fehlersuche bzw. zur Demonstration. Und wie gesagt - ich sehe die Sonoff Node trigger meistens - dann könntest auch die einfache Lösung mit den 4 Nodes nehmen:
-
Sorry: </> Code einfügen hab ich kapiert, aber wie daraus einen Spoiler macht ???
Egal. Code in .txt. Habe mal die topics in flow Variable gepackt. Jetzt braucht man die iobrokerIn/Out nur noch wie gewohnt mit den DP verbinden.
Könnte man das so machen. (Ich lerne gern dazu)
-
-
@geschild So nun zu Deinem Flow.
Das wird zwar so funktionieren - aber in dem Fall finde ich es übertrieben Flow variablen zu setzen, nur um das topic zu vereinfachen. Insbesondere ändert sich der Wert dieser Flowvariablen ja nie. Das würde nur Sinn machen, wenn Du unabhängig die Initialisierung triggern würdest. Dann lieber wieder das topic direkt setzen:
-
-
Übrigens Deine Function Node
var topic = msg.topic; flow.set('teichPowTopic', topic); msg.payload = flow.get('teichPowTopic'); return msg;
kann man auch mit einer ChangeNode ohne Codieren machen.
Das macht das Gleiche:
-
@mickym said in 2 Werte Subtrtahieren in Node Red:
Übrigens Deine Function Node
var topic = msg.topic; flow.set('teichPowTopic', topic); msg.payload = flow.get('teichPowTopic'); return msg;
kann man auch mit einer ChangeNode ohne Codieren machen.
Das macht das Gleiche:
So habs zum rechnen gebracht steht zwar ein minus davor im Zielordner beim Ergebnis aber damit kann ich leben.
-
-
@siporax Das Minus kannst Du eliminieren, wenn Du die Subtraktion umdrehst oder halt den absoluten Wert nimmst.
Um den absoluten Wert zu erhalten - einfach die ChangeNode wie folgt ändern:
Oder alternativ mit -1 multiplizieren also
(payload-wr) * -1
-
@geschild sagte in 2 Werte Subtrtahieren in Node Red:
PS. Kannst du mir den elektrischen Aufbau von @siporax erklären?
Nee - das muss @siporax selbst machen - ich bin nur für die Logik in NodeRed zuständig.
-
@mickym said in 2 Werte Subtrtahieren in Node Red:
@geschild sagte in 2 Werte Subtrtahieren in Node Red:
PS. Kannst du mir den elektrischen Aufbau von @siporax erklären?
Nee - das muss @siporax selbst machen - ich bin nur für die Logik in NodeRed zuständig.
Habe eine Warnmeldungen
-
@siporax said in 2 Werte Subtrtahieren in Node Red:
@mickym said in 2 Werte Subtrtahieren in Node Red:
@geschild sagte in 2 Werte Subtrtahieren in Node Red:
PS. Kannst du mir den elektrischen Aufbau von @siporax erklären?
Nee - das muss @siporax selbst machen - ich bin nur für die Logik in NodeRed zuständig.
Habe eine Warnmeldungen
Wenn Wechselrichter ausgeschaltet ist hat der Teich dennoch Verbrauch der wird mir nicht dan angezeigt ?