NEWS
2 Nodes Differenz berechnen und Datenpunkt setzen
-
Liebe Community,
aktuell hänge ich an einem Problem, was für die meisten von Euch wahrscheinlich keins sein wird.
Ich möchte im NodeRed einen Flow erstellen, der zwei Zahlenwerte miteinander vergleicht und wenn die Differenz größer als 10 ist, ein Datenpunkt auf true gesetzt wird.Ziel ist es, dass mein Roborock S50 mit öffnen der Eingangstür zum Mülleimer (Goto) fährt, aber nur wenn er mehr als 10 m ² gereinigt hat. Als Vergleichswerte sollen die insgesamt gereinigte Fläche(mihome-vacuum.0.history.total_area) vor und nach der Reinigung herhalten. Der Vorherwert wird vor dem Saugen in einen selbst erstellten Datenpunkt geschrieben.
Ich würde mich riesig freuen wenn mir hierbei jemand helfen könnte.
Grüße
[ { "id": "ab2ae8fb.e68e58", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "d7c17ae3.1f7e58", "type": "alexa-local", "z": "ab2ae8fb.e68e58", "devicename": "Küche", "inputtrigger": true, "x": 310, "y": 240, "wires": [ [ "33d45720.bc45d8", "708d1619.5ce768" ] ] }, { "id": "708d1619.5ce768", "type": "switch", "z": "ab2ae8fb.e68e58", "name": "true or false", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "on", "vt": "str" }, { "t": "eq", "v": "off", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 830, "y": 240, "wires": [ [ "b10ba82c.de2328" ], [ "111f80ec.17b5af" ] ] }, { "id": "b10ba82c.de2328", "type": "function", "z": "ab2ae8fb.e68e58", "name": "Zonen", "func": "// User eingabe!\n// Koordinaten des Gebiets eintragen.\n// Letzte Zahl und das Komma entfernen\n// Schema siehe unten\nvar zone = '25000,22500,28700,25000';\n\n// anzahl der Saugvorgänge\nvar time = 1;\n\nmsg.payload = '[' + zone + ',' + time + ']';\nreturn msg;", "outputs": 1, "noerr": 0, "x": 990, "y": 220, "wires": [ [ "d5807028.37dd7" ] ] }, { "id": "d5807028.37dd7", "type": "ioBroker out", "z": "ab2ae8fb.e68e58", "name": "Clean a zone", "topic": "mihome-vacuum.0.control.zoneClean", "ack": "false", "autoCreate": "false", "x": 1150, "y": 220, "wires": [] }, { "id": "111f80ec.17b5af", "type": "function", "z": "ab2ae8fb.e68e58", "name": "false", "func": "msg.payload = false;\nreturn msg;", "outputs": 1, "noerr": 0, "x": 990, "y": 260, "wires": [ [ "ad3384d3.aaf928" ] ] }, { "id": "ad3384d3.aaf928", "type": "ioBroker out", "z": "ab2ae8fb.e68e58", "name": "Start/Home", "topic": "mihome-vacuum.0.control.clean_home", "ack": "false", "autoCreate": "false", "x": 1150, "y": 260, "wires": [] }, { "id": "33d45720.bc45d8", "type": "ioBroker get", "z": "ab2ae8fb.e68e58", "name": "Total area ", "topic": "mihome-vacuum.0.history.total_area", "attrname": "payload", "payloadType": "value", "x": 520, "y": 140, "wires": [ [ "643761f6.3dc32" ] ] }, { "id": "643761f6.3dc32", "type": "ioBroker out", "z": "ab2ae8fb.e68e58", "name": "Gesaugte_Flaeche", "topic": "Datenpunkte.0.Saugroboter.Gesaugte_Flaeche", "ack": "true", "autoCreate": "false", "x": 730, "y": 140, "wires": [] } ]
-
Also, aus deinem Flow werde ich noch nicht so richtig schlau. Aber generell kannst du vlt so vorgehen:
-
![Bild Text](
Bild Link)
Jetzt brauchst du nur noch die ioBroker nodes korrekt auszufüllen.
-
Hallo rewenode,
vielen dank dafür.
Macht was es soll .
Allerdings konnte ich deinen Flow nicht direkt importieren, sondern musste die einzelnen Nodes neu erstellen. Beim Importieren aus dem Clipboard war der Quellcode rot und ich konnte den Import nicht bestätigten. sei's drum.
Vielen Dank für die Unterstützung.
Grüße
-
@marcelm sagte in 2 Nodes Differenz berechnen und Datenpunkt setzen:
Allerdings konnte ich deinen Flow nicht direkt importieren, sondern musste die einzelnen Nodes neu erstellen. Beim Importieren aus dem Clipboard war der Quellcode rot und ich konnte den Import nicht bestätigten. sei's drum.
Sorry, Sieht eigentlich ok aus der Text.
Aber gut das du es hin bekommen hast