Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. 2 Nodes Differenz berechnen und Datenpunkt setzen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    774

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

2 Nodes Differenz berechnen und Datenpunkt setzen

Geplant Angeheftet Gesperrt Verschoben Node-Red
5 Beiträge 2 Kommentatoren 2.0k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    marcelm
    schrieb am zuletzt editiert von
    #1

    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": []
        }
    ]
    
    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von rewenode
      #2

      Also, aus deinem Flow werde ich noch nicht so richtig schlau. Aber generell kannst du vlt so vorgehen:

      ```
      [
      {
      "id": "1e080742.f66a59",
      "type": "ioBroker in",
      "z": "dfeaaaa.ac84358",
      "name": "",
      "topic": " insgesamt gereinigte Fläche",
      "payloadType": "value",
      "onlyack": "",
      "func": "all",
      "gap": "",
      "x": 380,
      "y": 420,
      "wires": [
      [
      "4bcd2e3e.d4bd2"
      ]
      ]
      },
      {
      "id": "4bcd2e3e.d4bd2",
      "type": "change",
      "z": "dfeaaaa.ac84358",
      "name": "sichern in flow.gesamt",
      "rules": [
      {
      "t": "set",
      "p": "payload",
      "pt": "msg",
      "to": "gesamt",
      "tot": "flow"
      }
      ],
      "action": "",
      "property": "",
      "from": "",
      "to": "",
      "reg": false,
      "x": 640,
      "y": 420,
      "wires": [
      [
      "ede03239.fc68d8"
      ]
      ]
      },
      {
      "id": "ede03239.fc68d8",
      "type": "ioBroker get",
      "z": "dfeaaaa.ac84358",
      "name": "",
      "topic": "lese Datenpunkt Vorher",
      "attrname": "payload",
      "payloadType": "value",
      "x": 890,
      "y": 420,
      "wires": [
      [
      "778c60b8.a4829"
      ]
      ]
      },
      {
      "id": "8c726e71.9e094",
      "type": "ioBroker out",
      "z": "dfeaaaa.ac84358",
      "name": "",
      "topic": "dein Datenpunkt der true sein soll",
      "ack": "false",
      "autoCreate": "false",
      "x": 1080,
      "y": 500,
      "wires": []
      },
      {
      "id": "778c60b8.a4829",
      "type": "change",
      "z": "dfeaaaa.ac84358",
      "name": "Falls die (gesamt-vorher) > 10 ist true sonst false",
      "rules": [
      {
      "t": "set",
      "p": "payload",
      "pt": "msg",
      "to": "(\t$flowContext("vorher") - payload > 10 ? true : false\t)",
      "tot": "jsonata"
      }
      ],
      "action": "",
      "property": "",
      "from": "",
      "to": "",
      "reg": false,
      "x": 690,
      "y": 500,
      "wires": [
      [
      "8c726e71.9e094"
      ]
      ]
      }
      ]

      
      
      Verflixt, wie krieg ich denn ein Bild hier rein? Den Link seh ich in meiner Antwort, nur das Bild nicht ;-(
      
      ![Bild Text](![sauger.png](/assets/uploads/files/1551386058797-sauger.png) Bild Link)
      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        rewenode
        schrieb am zuletzt editiert von rewenode
        #3

        ![Bild Text](sauger.png Bild Link)

        Jetzt brauchst du nur noch die ioBroker nodes korrekt auszufüllen.

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          marcelm
          schrieb am zuletzt editiert von
          #4

          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

          R 1 Antwort Letzte Antwort
          0
          • M marcelm

            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

            R Offline
            R Offline
            rewenode
            schrieb am zuletzt editiert von
            #5

            @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 :+1:

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            756

            Online

            32.6k

            Benutzer

            82.0k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe