node-red-contrib-boolean-logic-ultimate 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +12 -0
- package/boolean-logic-ultimate/ImpulseUltimate.js +15 -1
- package/examples/BlinkerUltimate.json +119 -0
- package/examples/BooleanLogicUltimate.json +171 -0
- package/examples/Comparator.json +104 -0
- package/examples/FilterUltimate.json +105 -0
- package/examples/ImpulseUltimate.json +82 -0
- package/examples/InjectUltimate.json +100 -0
- package/examples/InterruptFlowUltimate.json +153 -0
- package/examples/InvertUltimate.json +88 -0
- package/examples/KalmanFilterUltimate.json +96 -0
- package/examples/PresenceSimulatorUltimate.json +105 -0
- package/examples/RailwaySwitchUltimate.json +186 -0
- package/examples/RateLimiterUltimate.json +178 -0
- package/examples/SimpleOutputUltimate.json +80 -0
- package/examples/StaircaseLightUltimate.json +145 -0
- package/examples/StatusUltimate.json +61 -0
- package/examples/SumUltimate.json +222 -0
- package/examples/toggleUltimate.json +63 -0
- package/examples/translator-config.json +99 -0
- package/package.json +1 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "rws_tab_1",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "RailwaySwitchUltimate - route by switcher",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Esempio: cambia l'uscita attiva inviando un messaggio sul topic di switch (switcher)."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "rws_cmt_1",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "rws_tab_1",
|
|
13
|
+
"name": "Switcher topic: switcher (payload 0..4)",
|
|
14
|
+
"info": "1) Invia switcher=0/1/2 per selezionare l'uscita.\n2) Invia DATA e osserva su quale debug arriva.",
|
|
15
|
+
"x": 280,
|
|
16
|
+
"y": 60,
|
|
17
|
+
"wires": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "rws_inj_sw0",
|
|
21
|
+
"type": "inject",
|
|
22
|
+
"z": "rws_tab_1",
|
|
23
|
+
"name": "switcher = 0",
|
|
24
|
+
"props": [
|
|
25
|
+
{ "p": "payload", "v": "0", "vt": "num" },
|
|
26
|
+
{ "p": "topic", "v": "switcher", "vt": "str" }
|
|
27
|
+
],
|
|
28
|
+
"repeat": "",
|
|
29
|
+
"crontab": "",
|
|
30
|
+
"once": false,
|
|
31
|
+
"onceDelay": 0.1,
|
|
32
|
+
"x": 150,
|
|
33
|
+
"y": 140,
|
|
34
|
+
"wires": [["rws_node_1"]]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "rws_inj_sw1",
|
|
38
|
+
"type": "inject",
|
|
39
|
+
"z": "rws_tab_1",
|
|
40
|
+
"name": "switcher = 1",
|
|
41
|
+
"props": [
|
|
42
|
+
{ "p": "payload", "v": "1", "vt": "num" },
|
|
43
|
+
{ "p": "topic", "v": "switcher", "vt": "str" }
|
|
44
|
+
],
|
|
45
|
+
"repeat": "",
|
|
46
|
+
"crontab": "",
|
|
47
|
+
"once": false,
|
|
48
|
+
"onceDelay": 0.1,
|
|
49
|
+
"x": 150,
|
|
50
|
+
"y": 180,
|
|
51
|
+
"wires": [["rws_node_1"]]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "rws_inj_sw2",
|
|
55
|
+
"type": "inject",
|
|
56
|
+
"z": "rws_tab_1",
|
|
57
|
+
"name": "switcher = 2",
|
|
58
|
+
"props": [
|
|
59
|
+
{ "p": "payload", "v": "2", "vt": "num" },
|
|
60
|
+
{ "p": "topic", "v": "switcher", "vt": "str" }
|
|
61
|
+
],
|
|
62
|
+
"repeat": "",
|
|
63
|
+
"crontab": "",
|
|
64
|
+
"once": false,
|
|
65
|
+
"onceDelay": 0.1,
|
|
66
|
+
"x": 150,
|
|
67
|
+
"y": 220,
|
|
68
|
+
"wires": [["rws_node_1"]]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "rws_inj_data",
|
|
72
|
+
"type": "inject",
|
|
73
|
+
"z": "rws_tab_1",
|
|
74
|
+
"name": "DATA",
|
|
75
|
+
"props": [
|
|
76
|
+
{ "p": "payload", "v": "data", "vt": "str" },
|
|
77
|
+
{ "p": "topic", "v": "data", "vt": "str" }
|
|
78
|
+
],
|
|
79
|
+
"repeat": "",
|
|
80
|
+
"crontab": "",
|
|
81
|
+
"once": false,
|
|
82
|
+
"onceDelay": 0.1,
|
|
83
|
+
"x": 120,
|
|
84
|
+
"y": 300,
|
|
85
|
+
"wires": [["rws_node_1"]]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "rws_node_1",
|
|
89
|
+
"type": "RailwaySwitchUltimate",
|
|
90
|
+
"z": "rws_tab_1",
|
|
91
|
+
"name": "Railway Switch",
|
|
92
|
+
"triggertopic": "switcher",
|
|
93
|
+
"initializewith": "1",
|
|
94
|
+
"payloadPropName": "payload",
|
|
95
|
+
"translatorConfig": "",
|
|
96
|
+
"x": 370,
|
|
97
|
+
"y": 220,
|
|
98
|
+
"wires": [["rws_dbg_0"], ["rws_dbg_1"], ["rws_dbg_2"], ["rws_dbg_3"], ["rws_dbg_4"]]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "rws_dbg_0",
|
|
102
|
+
"type": "debug",
|
|
103
|
+
"z": "rws_tab_1",
|
|
104
|
+
"name": "PIN 0",
|
|
105
|
+
"active": true,
|
|
106
|
+
"tosidebar": true,
|
|
107
|
+
"console": false,
|
|
108
|
+
"tostatus": false,
|
|
109
|
+
"complete": "true",
|
|
110
|
+
"targetType": "full",
|
|
111
|
+
"statusVal": "",
|
|
112
|
+
"statusType": "auto",
|
|
113
|
+
"x": 560,
|
|
114
|
+
"y": 140,
|
|
115
|
+
"wires": []
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "rws_dbg_1",
|
|
119
|
+
"type": "debug",
|
|
120
|
+
"z": "rws_tab_1",
|
|
121
|
+
"name": "PIN 1",
|
|
122
|
+
"active": true,
|
|
123
|
+
"tosidebar": true,
|
|
124
|
+
"console": false,
|
|
125
|
+
"tostatus": false,
|
|
126
|
+
"complete": "true",
|
|
127
|
+
"targetType": "full",
|
|
128
|
+
"statusVal": "",
|
|
129
|
+
"statusType": "auto",
|
|
130
|
+
"x": 560,
|
|
131
|
+
"y": 180,
|
|
132
|
+
"wires": []
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "rws_dbg_2",
|
|
136
|
+
"type": "debug",
|
|
137
|
+
"z": "rws_tab_1",
|
|
138
|
+
"name": "PIN 2",
|
|
139
|
+
"active": true,
|
|
140
|
+
"tosidebar": true,
|
|
141
|
+
"console": false,
|
|
142
|
+
"tostatus": false,
|
|
143
|
+
"complete": "true",
|
|
144
|
+
"targetType": "full",
|
|
145
|
+
"statusVal": "",
|
|
146
|
+
"statusType": "auto",
|
|
147
|
+
"x": 560,
|
|
148
|
+
"y": 220,
|
|
149
|
+
"wires": []
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "rws_dbg_3",
|
|
153
|
+
"type": "debug",
|
|
154
|
+
"z": "rws_tab_1",
|
|
155
|
+
"name": "PIN 3",
|
|
156
|
+
"active": true,
|
|
157
|
+
"tosidebar": true,
|
|
158
|
+
"console": false,
|
|
159
|
+
"tostatus": false,
|
|
160
|
+
"complete": "true",
|
|
161
|
+
"targetType": "full",
|
|
162
|
+
"statusVal": "",
|
|
163
|
+
"statusType": "auto",
|
|
164
|
+
"x": 560,
|
|
165
|
+
"y": 260,
|
|
166
|
+
"wires": []
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "rws_dbg_4",
|
|
170
|
+
"type": "debug",
|
|
171
|
+
"z": "rws_tab_1",
|
|
172
|
+
"name": "PIN 4",
|
|
173
|
+
"active": true,
|
|
174
|
+
"tosidebar": true,
|
|
175
|
+
"console": false,
|
|
176
|
+
"tostatus": false,
|
|
177
|
+
"complete": "true",
|
|
178
|
+
"targetType": "full",
|
|
179
|
+
"statusVal": "",
|
|
180
|
+
"statusType": "auto",
|
|
181
|
+
"x": 560,
|
|
182
|
+
"y": 300,
|
|
183
|
+
"wires": []
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "rl_tab_1",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "RateLimiterUltimate - debounce + control",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Esempio: genera un burst di messaggi e limita la frequenza con RateLimiter (debounce)."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "rl_cmt_1",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "rl_tab_1",
|
|
13
|
+
"name": "Burst → RateLimiter → Forward/Diagnostics",
|
|
14
|
+
"info": "Clicca BURST per generare messaggi ravvicinati. Output 1 = forward; Output 2 = diagnostica.\nUsa i pulsanti RESET/FLUSH e CHANGE MODE via topic \"rate\".",
|
|
15
|
+
"x": 290,
|
|
16
|
+
"y": 60,
|
|
17
|
+
"wires": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "rl_inj_burst",
|
|
21
|
+
"type": "inject",
|
|
22
|
+
"z": "rl_tab_1",
|
|
23
|
+
"name": "BURST (20 msgs)",
|
|
24
|
+
"props": [
|
|
25
|
+
{ "p": "count", "v": "20", "vt": "num" },
|
|
26
|
+
{ "p": "interval", "v": "50", "vt": "num" }
|
|
27
|
+
],
|
|
28
|
+
"repeat": "",
|
|
29
|
+
"crontab": "",
|
|
30
|
+
"once": false,
|
|
31
|
+
"onceDelay": 0.1,
|
|
32
|
+
"x": 160,
|
|
33
|
+
"y": 140,
|
|
34
|
+
"wires": [["rl_fn_burst"]]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "rl_fn_burst",
|
|
38
|
+
"type": "function",
|
|
39
|
+
"z": "rl_tab_1",
|
|
40
|
+
"name": "Burst generator",
|
|
41
|
+
"func": "const count = Number(msg.count || 20);\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;",
|
|
42
|
+
"outputs": 1,
|
|
43
|
+
"noerr": 0,
|
|
44
|
+
"initialize": "",
|
|
45
|
+
"finalize": "",
|
|
46
|
+
"libs": [],
|
|
47
|
+
"x": 370,
|
|
48
|
+
"y": 140,
|
|
49
|
+
"wires": [["rl_node_1"]]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "rl_inj_reset",
|
|
53
|
+
"type": "inject",
|
|
54
|
+
"z": "rl_tab_1",
|
|
55
|
+
"name": "RESET",
|
|
56
|
+
"props": [
|
|
57
|
+
{ "p": "topic", "v": "rate", "vt": "str" },
|
|
58
|
+
{ "p": "reset", "v": "true", "vt": "bool" }
|
|
59
|
+
],
|
|
60
|
+
"repeat": "",
|
|
61
|
+
"crontab": "",
|
|
62
|
+
"once": false,
|
|
63
|
+
"onceDelay": 0.1,
|
|
64
|
+
"x": 130,
|
|
65
|
+
"y": 220,
|
|
66
|
+
"wires": [["rl_node_1"]]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "rl_inj_flush",
|
|
70
|
+
"type": "inject",
|
|
71
|
+
"z": "rl_tab_1",
|
|
72
|
+
"name": "FLUSH",
|
|
73
|
+
"props": [
|
|
74
|
+
{ "p": "topic", "v": "rate", "vt": "str" },
|
|
75
|
+
{ "p": "flush", "v": "true", "vt": "bool" }
|
|
76
|
+
],
|
|
77
|
+
"repeat": "",
|
|
78
|
+
"crontab": "",
|
|
79
|
+
"once": false,
|
|
80
|
+
"onceDelay": 0.1,
|
|
81
|
+
"x": 130,
|
|
82
|
+
"y": 260,
|
|
83
|
+
"wires": [["rl_node_1"]]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "rl_inj_mode_throttle",
|
|
87
|
+
"type": "inject",
|
|
88
|
+
"z": "rl_tab_1",
|
|
89
|
+
"name": "MODE throttle (200ms)",
|
|
90
|
+
"props": [
|
|
91
|
+
{ "p": "topic", "v": "rate", "vt": "str" },
|
|
92
|
+
{ "p": "mode", "v": "throttle", "vt": "str" },
|
|
93
|
+
{ "p": "interval", "v": "200", "vt": "num" }
|
|
94
|
+
],
|
|
95
|
+
"repeat": "",
|
|
96
|
+
"crontab": "",
|
|
97
|
+
"once": false,
|
|
98
|
+
"onceDelay": 0.1,
|
|
99
|
+
"x": 170,
|
|
100
|
+
"y": 300,
|
|
101
|
+
"wires": [["rl_node_1"]]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "rl_inj_mode_debounce",
|
|
105
|
+
"type": "inject",
|
|
106
|
+
"z": "rl_tab_1",
|
|
107
|
+
"name": "MODE debounce (500ms trailing)",
|
|
108
|
+
"props": [
|
|
109
|
+
{ "p": "topic", "v": "rate", "vt": "str" },
|
|
110
|
+
{ "p": "mode", "v": "debounce", "vt": "str" },
|
|
111
|
+
{ "p": "wait", "v": "500", "vt": "num" },
|
|
112
|
+
{ "p": "emitOn", "v": "trailing", "vt": "str" }
|
|
113
|
+
],
|
|
114
|
+
"repeat": "",
|
|
115
|
+
"crontab": "",
|
|
116
|
+
"once": false,
|
|
117
|
+
"onceDelay": 0.1,
|
|
118
|
+
"x": 210,
|
|
119
|
+
"y": 340,
|
|
120
|
+
"wires": [["rl_node_1"]]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "rl_node_1",
|
|
124
|
+
"type": "RateLimiterUltimate",
|
|
125
|
+
"z": "rl_tab_1",
|
|
126
|
+
"name": "RateLimiter",
|
|
127
|
+
"mode": "debounce",
|
|
128
|
+
"wait": 500,
|
|
129
|
+
"emitOn": "trailing",
|
|
130
|
+
"interval": 1000,
|
|
131
|
+
"trailing": false,
|
|
132
|
+
"windowSize": 1000,
|
|
133
|
+
"maxInWindow": 10,
|
|
134
|
+
"dropStrategy": "drop",
|
|
135
|
+
"payloadPropName": "payload",
|
|
136
|
+
"translatorConfig": "",
|
|
137
|
+
"controlTopic": "rate",
|
|
138
|
+
"statInterval": 2,
|
|
139
|
+
"x": 590,
|
|
140
|
+
"y": 220,
|
|
141
|
+
"wires": [["rl_dbg_fwd"], ["rl_dbg_diag"]]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "rl_dbg_fwd",
|
|
145
|
+
"type": "debug",
|
|
146
|
+
"z": "rl_tab_1",
|
|
147
|
+
"name": "Forward",
|
|
148
|
+
"active": true,
|
|
149
|
+
"tosidebar": true,
|
|
150
|
+
"console": false,
|
|
151
|
+
"tostatus": false,
|
|
152
|
+
"complete": "true",
|
|
153
|
+
"targetType": "full",
|
|
154
|
+
"statusVal": "",
|
|
155
|
+
"statusType": "auto",
|
|
156
|
+
"x": 780,
|
|
157
|
+
"y": 200,
|
|
158
|
+
"wires": []
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "rl_dbg_diag",
|
|
162
|
+
"type": "debug",
|
|
163
|
+
"z": "rl_tab_1",
|
|
164
|
+
"name": "Diagnostics",
|
|
165
|
+
"active": true,
|
|
166
|
+
"tosidebar": true,
|
|
167
|
+
"console": false,
|
|
168
|
+
"tostatus": false,
|
|
169
|
+
"complete": "payload",
|
|
170
|
+
"targetType": "msg",
|
|
171
|
+
"statusVal": "",
|
|
172
|
+
"statusType": "auto",
|
|
173
|
+
"x": 790,
|
|
174
|
+
"y": 240,
|
|
175
|
+
"wires": []
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "sou_tab_1",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "SimpleOutputUltimate - true/false emit",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Esempio: ad ogni input il nodo emette TRUE su output 1 e FALSE su output 2 (indipendentemente dal payload in ingresso)."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "sou_cmt_1",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "sou_tab_1",
|
|
13
|
+
"name": "Qualsiasi messaggio in ingresso genera true/false",
|
|
14
|
+
"info": "Utile per generare rapidamente un TRUE/FALSE senza usare due inject separati.",
|
|
15
|
+
"x": 260,
|
|
16
|
+
"y": 60,
|
|
17
|
+
"wires": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "sou_inj_1",
|
|
21
|
+
"type": "inject",
|
|
22
|
+
"z": "sou_tab_1",
|
|
23
|
+
"name": "Trigger",
|
|
24
|
+
"props": [
|
|
25
|
+
{ "p": "payload", "v": "anything", "vt": "str" },
|
|
26
|
+
{ "p": "topic", "v": "trigger", "vt": "str" }
|
|
27
|
+
],
|
|
28
|
+
"repeat": "",
|
|
29
|
+
"crontab": "",
|
|
30
|
+
"once": false,
|
|
31
|
+
"onceDelay": 0.1,
|
|
32
|
+
"x": 150,
|
|
33
|
+
"y": 160,
|
|
34
|
+
"wires": [["sou_node_1"]]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "sou_node_1",
|
|
38
|
+
"type": "SimpleOutputUltimate",
|
|
39
|
+
"z": "sou_tab_1",
|
|
40
|
+
"name": "Output",
|
|
41
|
+
"x": 370,
|
|
42
|
+
"y": 160,
|
|
43
|
+
"wires": [["sou_dbg_true"], ["sou_dbg_false"]]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "sou_dbg_true",
|
|
47
|
+
"type": "debug",
|
|
48
|
+
"z": "sou_tab_1",
|
|
49
|
+
"name": "True",
|
|
50
|
+
"active": true,
|
|
51
|
+
"tosidebar": true,
|
|
52
|
+
"console": false,
|
|
53
|
+
"tostatus": false,
|
|
54
|
+
"complete": "payload",
|
|
55
|
+
"targetType": "msg",
|
|
56
|
+
"statusVal": "",
|
|
57
|
+
"statusType": "auto",
|
|
58
|
+
"x": 540,
|
|
59
|
+
"y": 140,
|
|
60
|
+
"wires": []
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "sou_dbg_false",
|
|
64
|
+
"type": "debug",
|
|
65
|
+
"z": "sou_tab_1",
|
|
66
|
+
"name": "False",
|
|
67
|
+
"active": true,
|
|
68
|
+
"tosidebar": true,
|
|
69
|
+
"console": false,
|
|
70
|
+
"tostatus": false,
|
|
71
|
+
"complete": "payload",
|
|
72
|
+
"targetType": "msg",
|
|
73
|
+
"statusVal": "",
|
|
74
|
+
"statusType": "auto",
|
|
75
|
+
"x": 540,
|
|
76
|
+
"y": 180,
|
|
77
|
+
"wires": []
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "st_tab_1",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "StaircaseLightUltimate - timed light",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Esempio: accende la luce per una durata e la spegne automaticamente, con warning pre-off opzionale."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "st_cmt_1",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "st_tab_1",
|
|
13
|
+
"name": "Trigger = payload true, off = payload false (se abilitato)",
|
|
14
|
+
"info": "Il topic di controllo è \"stairs\" (comandi on/off/extend).",
|
|
15
|
+
"x": 300,
|
|
16
|
+
"y": 60,
|
|
17
|
+
"wires": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "st_inj_motion",
|
|
21
|
+
"type": "inject",
|
|
22
|
+
"z": "st_tab_1",
|
|
23
|
+
"name": "Motion (true)",
|
|
24
|
+
"props": [
|
|
25
|
+
{ "p": "payload", "v": "true", "vt": "bool" },
|
|
26
|
+
{ "p": "topic", "v": "sensor", "vt": "str" }
|
|
27
|
+
],
|
|
28
|
+
"repeat": "",
|
|
29
|
+
"crontab": "",
|
|
30
|
+
"once": false,
|
|
31
|
+
"onceDelay": 0.1,
|
|
32
|
+
"x": 150,
|
|
33
|
+
"y": 140,
|
|
34
|
+
"wires": [["st_node_1"]]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "st_inj_off_input",
|
|
38
|
+
"type": "inject",
|
|
39
|
+
"z": "st_tab_1",
|
|
40
|
+
"name": "Off input (false)",
|
|
41
|
+
"props": [
|
|
42
|
+
{ "p": "payload", "v": "false", "vt": "bool" },
|
|
43
|
+
{ "p": "topic", "v": "sensor", "vt": "str" }
|
|
44
|
+
],
|
|
45
|
+
"repeat": "",
|
|
46
|
+
"crontab": "",
|
|
47
|
+
"once": false,
|
|
48
|
+
"onceDelay": 0.1,
|
|
49
|
+
"x": 160,
|
|
50
|
+
"y": 180,
|
|
51
|
+
"wires": [["st_node_1"]]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "st_inj_extend",
|
|
55
|
+
"type": "inject",
|
|
56
|
+
"z": "st_tab_1",
|
|
57
|
+
"name": "Extend (topic=stairs)",
|
|
58
|
+
"props": [
|
|
59
|
+
{ "p": "topic", "v": "stairs", "vt": "str" },
|
|
60
|
+
{ "p": "extend", "v": "true", "vt": "bool" }
|
|
61
|
+
],
|
|
62
|
+
"repeat": "",
|
|
63
|
+
"crontab": "",
|
|
64
|
+
"once": false,
|
|
65
|
+
"onceDelay": 0.1,
|
|
66
|
+
"x": 170,
|
|
67
|
+
"y": 240,
|
|
68
|
+
"wires": [["st_node_1"]]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "st_inj_force_off",
|
|
72
|
+
"type": "inject",
|
|
73
|
+
"z": "st_tab_1",
|
|
74
|
+
"name": "Force off (topic=stairs)",
|
|
75
|
+
"props": [
|
|
76
|
+
{ "p": "topic", "v": "stairs", "vt": "str" },
|
|
77
|
+
{ "p": "command", "v": "off", "vt": "str" }
|
|
78
|
+
],
|
|
79
|
+
"repeat": "",
|
|
80
|
+
"crontab": "",
|
|
81
|
+
"once": false,
|
|
82
|
+
"onceDelay": 0.1,
|
|
83
|
+
"x": 180,
|
|
84
|
+
"y": 280,
|
|
85
|
+
"wires": [["st_node_1"]]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "st_node_1",
|
|
89
|
+
"type": "StaircaseLightUltimate",
|
|
90
|
+
"z": "st_tab_1",
|
|
91
|
+
"name": "Stairs",
|
|
92
|
+
"controlTopic": "stairs",
|
|
93
|
+
"payloadPropName": "payload",
|
|
94
|
+
"translatorConfig": "",
|
|
95
|
+
"durationSeconds": 10,
|
|
96
|
+
"warningEnabled": true,
|
|
97
|
+
"warningOffsetSeconds": 3,
|
|
98
|
+
"restartOnTrigger": true,
|
|
99
|
+
"allowOffInput": true,
|
|
100
|
+
"onPayload": true,
|
|
101
|
+
"onPayloadType": "bool",
|
|
102
|
+
"offPayload": false,
|
|
103
|
+
"offPayloadType": "bool",
|
|
104
|
+
"warningPayload": "warning",
|
|
105
|
+
"warningPayloadType": "str",
|
|
106
|
+
"x": 390,
|
|
107
|
+
"y": 200,
|
|
108
|
+
"wires": [["st_dbg_cmd"], ["st_dbg_warn"]]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "st_dbg_cmd",
|
|
112
|
+
"type": "debug",
|
|
113
|
+
"z": "st_tab_1",
|
|
114
|
+
"name": "Light command",
|
|
115
|
+
"active": true,
|
|
116
|
+
"tosidebar": true,
|
|
117
|
+
"console": false,
|
|
118
|
+
"tostatus": false,
|
|
119
|
+
"complete": "true",
|
|
120
|
+
"targetType": "full",
|
|
121
|
+
"statusVal": "",
|
|
122
|
+
"statusType": "auto",
|
|
123
|
+
"x": 600,
|
|
124
|
+
"y": 180,
|
|
125
|
+
"wires": []
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "st_dbg_warn",
|
|
129
|
+
"type": "debug",
|
|
130
|
+
"z": "st_tab_1",
|
|
131
|
+
"name": "Warning",
|
|
132
|
+
"active": true,
|
|
133
|
+
"tosidebar": true,
|
|
134
|
+
"console": false,
|
|
135
|
+
"tostatus": false,
|
|
136
|
+
"complete": "true",
|
|
137
|
+
"targetType": "full",
|
|
138
|
+
"statusVal": "",
|
|
139
|
+
"statusType": "auto",
|
|
140
|
+
"x": 580,
|
|
141
|
+
"y": 220,
|
|
142
|
+
"wires": []
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "stu_tab_1",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "StatusUltimate - show msg property",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Esempio: mostra il valore di una proprietà del msg nello status del nodo, e lascia passare il msg."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "stu_cmt_1",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "stu_tab_1",
|
|
13
|
+
"name": "Lo status mostra msg.payload",
|
|
14
|
+
"info": "Configura la proprietà da mostrare (es. payload, mycar.color, ecc.).",
|
|
15
|
+
"x": 200,
|
|
16
|
+
"y": 60,
|
|
17
|
+
"wires": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "stu_inj_1",
|
|
21
|
+
"type": "inject",
|
|
22
|
+
"z": "stu_tab_1",
|
|
23
|
+
"name": "payload = \"Ciao\"",
|
|
24
|
+
"props": [{ "p": "payload", "v": "Ciao", "vt": "str" }],
|
|
25
|
+
"repeat": "",
|
|
26
|
+
"crontab": "",
|
|
27
|
+
"once": false,
|
|
28
|
+
"onceDelay": 0.1,
|
|
29
|
+
"x": 150,
|
|
30
|
+
"y": 140,
|
|
31
|
+
"wires": [["stu_node_1"]]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "stu_node_1",
|
|
35
|
+
"type": "StatusUltimate",
|
|
36
|
+
"z": "stu_tab_1",
|
|
37
|
+
"name": "Status",
|
|
38
|
+
"property": "payload",
|
|
39
|
+
"x": 340,
|
|
40
|
+
"y": 140,
|
|
41
|
+
"wires": [["stu_dbg_1"]]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "stu_dbg_1",
|
|
45
|
+
"type": "debug",
|
|
46
|
+
"z": "stu_tab_1",
|
|
47
|
+
"name": "Pass-through",
|
|
48
|
+
"active": true,
|
|
49
|
+
"tosidebar": true,
|
|
50
|
+
"console": false,
|
|
51
|
+
"tostatus": false,
|
|
52
|
+
"complete": "true",
|
|
53
|
+
"targetType": "full",
|
|
54
|
+
"statusVal": "",
|
|
55
|
+
"statusType": "auto",
|
|
56
|
+
"x": 560,
|
|
57
|
+
"y": 140,
|
|
58
|
+
"wires": []
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
|