Filtern von doppelten Nachrichten in NodeRED auf einem Raspberry Pi

Erstellt am 13. Mai 2018 von It_berater

Wie können doppelte Nachrichten gefiltert werden? Manchmal will man das eine Nachricht nur einmal versendet wird, auch wenn sie innerhalb einer bestimmten Zeit nochmal mit dem gleichen Wert versendet wird. Das geht mit dem deduplicate Node. Wenn der mit npm i node-red-contrib-deduplicate installiert wurde, kann er wie folgt eingesetzt werden:

Rechts im Debug Fenstern kann man auch am Zeitstempel sehen, das die Test-Nachricht nur einmal ausgegeben wird, auch wenn man innerhalb von 5 Sekunden mehrmals klickt. Die Zeit kann in den Eigenschaften angepasst werden:

Und auch die Aus.- und Eingänge können einen Namen erhalten:

Mein Beispielflow kann hier kopiert und eingefügt werden:

[
    {
        "id": "3328263d.a9beaa",
        "type": "tab",
        "label": "Test Filter",
        "disabled": false,
        "info": ""
    },
    {
        "id": "ea699d27.d25",
        "type": "deduplicate",
        "z": "3328263d.a9beaa",
        "name": "Filter doppelte Nachrichten für 5 Sekunden",
        "keyproperty": "",
        "expiry": 5,
        "x": 370,
        "y": 140,
        "wires": [
            [
                "a83a8014.f47d8"
            ],
            [
                "c82d007.5162a8"
            ]
        ],
        "inputLabels": [
            "Eingang"
        ],
        "outputLabels": [
            "Einmal",
            "Duplikat"
        ]
    },
    {
        "id": "216fab0b.558d8c",
        "type": "inject",
        "z": "3328263d.a9beaa",
        "name": "",
        "topic": "",
        "payload": "Test",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 110,
        "y": 140,
        "wires": [
            [
                "ea699d27.d25"
            ]
        ]
    },
    {
        "id": "a83a8014.f47d8",
        "type": "debug",
        "z": "3328263d.a9beaa",
        "name": "Einmal",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 650,
        "y": 120,
        "wires": []
    },
    {
        "id": "c82d007.5162a8",
        "type": "debug",
        "z": "3328263d.a9beaa",
        "name": "Duplikat",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 660,
        "y": 180,
        "wires": []
    },
    {
        "id": "8cc38fe2.7330d8",
        "type": "comment",
        "z": "3328263d.a9beaa",
        "name": "(c) 2018 Thomas Wenzlaff http://www.wenzlaff.info",
        "info": "",
        "x": 230,
        "y": 40,
        "wires": []
    }
]

Ähnliche Artikel:

  1. Überwachung: Automatischer Ping an Server mit NodeRED auf Raspberry Pi (مراقبة)
  2. Feinstaub (Particulate Matter, Pył ) Messung mit dem Raspberry Pi aus einer JSON Datei und NodeRED – Teil 1
  3. Benzin Preise per NodeRED ermitteln und in Echtzeit grafisch darstellen mit dem Raspberry Pi (محطة بنزين)