[ { "id": "db_tab_1", "type": "tab", "label": "DebouncerUltimate - burst filter", "disabled": false, "info": "Esempio: filtra burst ravvicinati con il nodo DebouncerUltimate." }, { "id": "db_cmt_1", "type": "comment", "z": "db_tab_1", "name": "Burst → Debouncer → Forward", "info": "Clicca BURST per generare messaggi ravvicinati. Cambia la modalità con LEADING/TRAILING/BOTH oppure usa FLUSH/RESET via topic \"debouncer\".", "x": 300, "y": 60, "wires": [] }, { "id": "db_inj_burst", "type": "inject", "z": "db_tab_1", "name": "BURST (10 msgs)", "props": [ { "p": "count", "v": "10", "vt": "num" }, { "p": "interval", "v": "50", "vt": "num" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 150, "y": 140, "wires": [["db_fn_burst"]] }, { "id": "db_fn_burst", "type": "function", "z": "db_tab_1", "name": "Burst generator", "func": "const count = Number(msg.count || 10);\nconst interval = Number(msg.interval || 50);\nlet i = 0;\n\nconst sendOne = () => {\n node.send({ topic: 'data', payload: i, index: i, ts: Date.now() });\n i += 1;\n if (i < count) {\n setTimeout(sendOne, interval);\n }\n};\n\nsendOne();\nreturn null;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 360, "y": 140, "wires": [["db_node_1"]] }, { "id": "db_inj_leading", "type": "inject", "z": "db_tab_1", "name": "LEADING (400ms)", "props": [ { "p": "topic", "v": "debouncer", "vt": "str" }, { "p": "emitOn", "v": "leading", "vt": "str" }, { "p": "wait", "v": "400", "vt": "num" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 160, "y": 220, "wires": [["db_node_1"]] }, { "id": "db_inj_trailing", "type": "inject", "z": "db_tab_1", "name": "TRAILING (400ms)", "props": [ { "p": "topic", "v": "debouncer", "vt": "str" }, { "p": "emitOn", "v": "trailing", "vt": "str" }, { "p": "wait", "v": "400", "vt": "num" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 170, "y": 260, "wires": [["db_node_1"]] }, { "id": "db_inj_both", "type": "inject", "z": "db_tab_1", "name": "BOTH (400ms)", "props": [ { "p": "topic", "v": "debouncer", "vt": "str" }, { "p": "emitOn", "v": "both", "vt": "str" }, { "p": "wait", "v": "400", "vt": "num" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 150, "y": 300, "wires": [["db_node_1"]] }, { "id": "db_inj_flush", "type": "inject", "z": "db_tab_1", "name": "FLUSH", "props": [ { "p": "topic", "v": "debouncer", "vt": "str" }, { "p": "flush", "v": "true", "vt": "bool" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 120, "y": 340, "wires": [["db_node_1"]] }, { "id": "db_inj_reset", "type": "inject", "z": "db_tab_1", "name": "RESET", "props": [ { "p": "topic", "v": "debouncer", "vt": "str" }, { "p": "reset", "v": "true", "vt": "bool" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 120, "y": 380, "wires": [["db_node_1"]] }, { "id": "db_node_1", "type": "DebouncerUltimate", "z": "db_tab_1", "name": "Debouncer", "wait": 400, "emitOn": "trailing", "controlTopic": "debouncer", "x": 590, "y": 240, "wires": [["db_dbg_fwd"]] }, { "id": "db_dbg_fwd", "type": "debug", "z": "db_tab_1", "name": "Forward", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 780, "y": 220, "wires": [] } ]