node-red-contrib-event-calc 3.3.6 → 3.3.15

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.
@@ -0,0 +1,723 @@
1
+ [
2
+ {
3
+ "id": "test-alarm-flow",
4
+ "type": "tab",
5
+ "label": "Test: Event Alarm",
6
+ "disabled": false,
7
+ "info": "Test flow for event-alarm node.\n\nTests:\n1. Raise alarm (condition true)\n2. Acknowledge alarm\n3. Clear alarm (condition false)\n4. Full lifecycle: raise > ack > clear (resolved)\n5. Alternate path: raise > clear > ack (resolved)"
8
+ },
9
+ {
10
+ "id": "test-cache",
11
+ "type": "event-cache",
12
+ "name": "Test Cache",
13
+ "maxEntries": "10000",
14
+ "ttl": "0"
15
+ },
16
+ {
17
+ "id": "comment-alarm-test",
18
+ "type": "comment",
19
+ "z": "test-alarm-flow",
20
+ "name": "Event Alarm Test — ISA-18.2 Lifecycle",
21
+ "info": "",
22
+ "x": 210,
23
+ "y": 40,
24
+ "wires": []
25
+ },
26
+ {
27
+ "id": "test-alarm-raise",
28
+ "type": "inject",
29
+ "z": "test-alarm-flow",
30
+ "name": "Raise Alarm (active=true)",
31
+ "props": [
32
+ { "p": "topic", "v": "test/alarm/temp_high/active", "vt": "str" },
33
+ { "p": "payload", "v": "true", "vt": "bool" }
34
+ ],
35
+ "repeat": "",
36
+ "crontab": "",
37
+ "once": false,
38
+ "onceDelay": 0.1,
39
+ "x": 180,
40
+ "y": 100,
41
+ "wires": [["test-alarm-cache-in"]]
42
+ },
43
+ {
44
+ "id": "test-alarm-clear",
45
+ "type": "inject",
46
+ "z": "test-alarm-flow",
47
+ "name": "Clear Alarm (active=false)",
48
+ "props": [
49
+ { "p": "topic", "v": "test/alarm/temp_high/active", "vt": "str" },
50
+ { "p": "payload", "v": "false", "vt": "bool" }
51
+ ],
52
+ "repeat": "",
53
+ "crontab": "",
54
+ "once": false,
55
+ "onceDelay": 0.1,
56
+ "x": 180,
57
+ "y": 140,
58
+ "wires": [["test-alarm-cache-in"]]
59
+ },
60
+ {
61
+ "id": "test-alarm-ack",
62
+ "type": "inject",
63
+ "z": "test-alarm-flow",
64
+ "name": "Acknowledge",
65
+ "props": [
66
+ { "p": "payload.action", "v": "ack", "vt": "str" },
67
+ { "p": "payload.source", "v": "test/alarm/temp_high/active", "vt": "str" }
68
+ ],
69
+ "repeat": "",
70
+ "crontab": "",
71
+ "once": false,
72
+ "onceDelay": 0.1,
73
+ "x": 130,
74
+ "y": 200,
75
+ "wires": [["test-alarm-node"]]
76
+ },
77
+ {
78
+ "id": "test-alarm-ack-all",
79
+ "type": "inject",
80
+ "z": "test-alarm-flow",
81
+ "name": "Acknowledge All",
82
+ "props": [
83
+ { "p": "payload.action", "v": "ack_all", "vt": "str" }
84
+ ],
85
+ "repeat": "",
86
+ "crontab": "",
87
+ "once": false,
88
+ "onceDelay": 0.1,
89
+ "x": 150,
90
+ "y": 240,
91
+ "wires": [["test-alarm-node"]]
92
+ },
93
+ {
94
+ "id": "test-alarm-list",
95
+ "type": "inject",
96
+ "z": "test-alarm-flow",
97
+ "name": "List Active Alarms",
98
+ "props": [
99
+ { "p": "payload.action", "v": "list", "vt": "str" }
100
+ ],
101
+ "repeat": "",
102
+ "crontab": "",
103
+ "once": false,
104
+ "onceDelay": 0.1,
105
+ "x": 160,
106
+ "y": 280,
107
+ "wires": [["test-alarm-node"]]
108
+ },
109
+ {
110
+ "id": "test-alarm-cache-in",
111
+ "type": "event-in",
112
+ "z": "test-alarm-flow",
113
+ "name": "Push to Cache",
114
+ "cache": "test-cache",
115
+ "topicSource": "msg",
116
+ "topicPattern": "",
117
+ "x": 430,
118
+ "y": 120,
119
+ "wires": [[]]
120
+ },
121
+ {
122
+ "id": "test-alarm-node",
123
+ "type": "event-alarm",
124
+ "z": "test-alarm-flow",
125
+ "name": "Temperature High",
126
+ "cache": "test-cache",
127
+ "conditionId": "TempHigh_Reactor1",
128
+ "conditionName": "Reactor 1 Temperature High",
129
+ "inputMappings": [
130
+ { "name": "active", "topic": "test/alarm/temp_high/active" }
131
+ ],
132
+ "condition": "active == true",
133
+ "severity": "700",
134
+ "outputTopic": "alarm/TempHigh_Reactor1",
135
+ "x": 450,
136
+ "y": 240,
137
+ "wires": [["debug-alarm-raised"], ["debug-alarm-acked"], ["debug-alarm-cleared"], ["debug-alarm-resolved"]]
138
+ },
139
+ {
140
+ "id": "debug-alarm-raised",
141
+ "type": "debug",
142
+ "z": "test-alarm-flow",
143
+ "name": "RAISED",
144
+ "active": true,
145
+ "tosidebar": true,
146
+ "console": false,
147
+ "tostatus": true,
148
+ "complete": "payload",
149
+ "targetType": "msg",
150
+ "statusVal": "payload.condition_name",
151
+ "statusType": "msg",
152
+ "x": 680,
153
+ "y": 160,
154
+ "wires": []
155
+ },
156
+ {
157
+ "id": "debug-alarm-acked",
158
+ "type": "debug",
159
+ "z": "test-alarm-flow",
160
+ "name": "ACKNOWLEDGED",
161
+ "active": true,
162
+ "tosidebar": true,
163
+ "console": false,
164
+ "tostatus": true,
165
+ "complete": "payload",
166
+ "targetType": "msg",
167
+ "statusVal": "payload.condition_name",
168
+ "statusType": "msg",
169
+ "x": 700,
170
+ "y": 220,
171
+ "wires": []
172
+ },
173
+ {
174
+ "id": "debug-alarm-cleared",
175
+ "type": "debug",
176
+ "z": "test-alarm-flow",
177
+ "name": "CLEARED",
178
+ "active": true,
179
+ "tosidebar": true,
180
+ "console": false,
181
+ "tostatus": true,
182
+ "complete": "payload",
183
+ "targetType": "msg",
184
+ "statusVal": "payload.condition_name",
185
+ "statusType": "msg",
186
+ "x": 690,
187
+ "y": 280,
188
+ "wires": []
189
+ },
190
+ {
191
+ "id": "debug-alarm-resolved",
192
+ "type": "debug",
193
+ "z": "test-alarm-flow",
194
+ "name": "RESOLVED",
195
+ "active": true,
196
+ "tosidebar": true,
197
+ "console": false,
198
+ "tostatus": true,
199
+ "complete": "payload",
200
+ "targetType": "msg",
201
+ "statusVal": "payload.condition_name",
202
+ "statusType": "msg",
203
+ "x": 690,
204
+ "y": 340,
205
+ "wires": []
206
+ },
207
+ {
208
+ "id": "comment-alarm-path-a",
209
+ "type": "comment",
210
+ "z": "test-alarm-flow",
211
+ "name": "Path A: Raise > Ack > Clear → Resolved | Path B: Raise > Clear > Ack → Resolved",
212
+ "info": "Test both ISA-18.2 lifecycle paths:\n\nPath A:\n1. Click 'Raise Alarm'\n2. Click 'Acknowledge'\n3. Click 'Clear Alarm' → should output on RESOLVED\n\nPath B:\n1. Click 'Raise Alarm'\n2. Click 'Clear Alarm' → should output on CLEARED\n3. Click 'Acknowledge' → should output on RESOLVED",
213
+ "x": 360,
214
+ "y": 400,
215
+ "wires": []
216
+ },
217
+
218
+ {
219
+ "id": "test-frame-flow",
220
+ "type": "tab",
221
+ "label": "Test: Event Frame (ISA-88)",
222
+ "disabled": false,
223
+ "info": "Test flow for event-frame node.\n\nTests:\n1. Start/end each ISA-88 level independently\n2. Parent-child linking via parentLevel\n3. Cascade end from parent to children"
224
+ },
225
+ {
226
+ "id": "comment-frame-test",
227
+ "type": "comment",
228
+ "z": "test-frame-flow",
229
+ "name": "Event Frame Test — ISA-88 Hierarchy with Cascade End",
230
+ "info": "",
231
+ "x": 250,
232
+ "y": 40,
233
+ "wires": []
234
+ },
235
+ {
236
+ "id": "test-proc-start",
237
+ "type": "inject",
238
+ "z": "test-frame-flow",
239
+ "name": "Start Procedure",
240
+ "props": [
241
+ { "p": "payload", "v": "true", "vt": "bool" },
242
+ { "p": "batch_id", "v": "TEST-BATCH-001", "vt": "str" },
243
+ { "p": "unit", "v": "Reactor-A", "vt": "str" }
244
+ ],
245
+ "repeat": "",
246
+ "crontab": "",
247
+ "once": false,
248
+ "onceDelay": 0.1,
249
+ "x": 140,
250
+ "y": 100,
251
+ "wires": [["test-procedure"]]
252
+ },
253
+ {
254
+ "id": "test-proc-end",
255
+ "type": "inject",
256
+ "z": "test-frame-flow",
257
+ "name": "End Procedure (cascades all)",
258
+ "props": [
259
+ { "p": "payload", "v": "false", "vt": "bool" }
260
+ ],
261
+ "repeat": "",
262
+ "crontab": "",
263
+ "once": false,
264
+ "onceDelay": 0.1,
265
+ "x": 170,
266
+ "y": 140,
267
+ "wires": [["test-procedure"]]
268
+ },
269
+ {
270
+ "id": "test-procedure",
271
+ "type": "event-frame",
272
+ "z": "test-frame-flow",
273
+ "name": "Procedure",
274
+ "level": "procedure",
275
+ "batchName": "Test Product",
276
+ "batchNameType": "str",
277
+ "unit": "unit",
278
+ "unitType": "msg",
279
+ "batchId": "batch_id",
280
+ "batchIdType": "msg",
281
+ "parentLevel": "",
282
+ "triggerField": "payload",
283
+ "metadataField": "",
284
+ "contextKey": "test_isa88",
285
+ "endChildren": true,
286
+ "x": 420,
287
+ "y": 120,
288
+ "wires": [["debug-frame-start"], ["debug-frame-end"]]
289
+ },
290
+ {
291
+ "id": "test-unitproc-start",
292
+ "type": "inject",
293
+ "z": "test-frame-flow",
294
+ "name": "Start Unit Procedure",
295
+ "props": [
296
+ { "p": "payload", "v": "true", "vt": "bool" }
297
+ ],
298
+ "repeat": "",
299
+ "crontab": "",
300
+ "once": false,
301
+ "onceDelay": 0.1,
302
+ "x": 160,
303
+ "y": 220,
304
+ "wires": [["test-unit-procedure"]]
305
+ },
306
+ {
307
+ "id": "test-unitproc-end",
308
+ "type": "inject",
309
+ "z": "test-frame-flow",
310
+ "name": "End Unit Procedure",
311
+ "props": [
312
+ { "p": "payload", "v": "false", "vt": "bool" }
313
+ ],
314
+ "repeat": "",
315
+ "crontab": "",
316
+ "once": false,
317
+ "onceDelay": 0.1,
318
+ "x": 160,
319
+ "y": 260,
320
+ "wires": [["test-unit-procedure"]]
321
+ },
322
+ {
323
+ "id": "test-unit-procedure",
324
+ "type": "event-frame",
325
+ "z": "test-frame-flow",
326
+ "name": "Unit Procedure",
327
+ "level": "unit_procedure",
328
+ "batchName": "Reaction Step",
329
+ "batchNameType": "str",
330
+ "unit": "",
331
+ "unitType": "str",
332
+ "batchId": "",
333
+ "batchIdType": "str",
334
+ "parentLevel": "procedure",
335
+ "triggerField": "payload",
336
+ "metadataField": "",
337
+ "contextKey": "test_isa88",
338
+ "endChildren": true,
339
+ "x": 430,
340
+ "y": 240,
341
+ "wires": [["debug-frame-start"], ["debug-frame-end"]]
342
+ },
343
+ {
344
+ "id": "test-op-start",
345
+ "type": "inject",
346
+ "z": "test-frame-flow",
347
+ "name": "Start Operation",
348
+ "props": [
349
+ { "p": "payload", "v": "true", "vt": "bool" }
350
+ ],
351
+ "repeat": "",
352
+ "crontab": "",
353
+ "once": false,
354
+ "onceDelay": 0.1,
355
+ "x": 140,
356
+ "y": 340,
357
+ "wires": [["test-operation"]]
358
+ },
359
+ {
360
+ "id": "test-op-end",
361
+ "type": "inject",
362
+ "z": "test-frame-flow",
363
+ "name": "End Operation",
364
+ "props": [
365
+ { "p": "payload", "v": "false", "vt": "bool" }
366
+ ],
367
+ "repeat": "",
368
+ "crontab": "",
369
+ "once": false,
370
+ "onceDelay": 0.1,
371
+ "x": 140,
372
+ "y": 380,
373
+ "wires": [["test-operation"]]
374
+ },
375
+ {
376
+ "id": "test-operation",
377
+ "type": "event-frame",
378
+ "z": "test-frame-flow",
379
+ "name": "Operation",
380
+ "level": "operation",
381
+ "batchName": "Mixing",
382
+ "batchNameType": "str",
383
+ "unit": "",
384
+ "unitType": "str",
385
+ "batchId": "",
386
+ "batchIdType": "str",
387
+ "parentLevel": "unit_procedure",
388
+ "triggerField": "payload",
389
+ "metadataField": "",
390
+ "contextKey": "test_isa88",
391
+ "endChildren": true,
392
+ "x": 420,
393
+ "y": 360,
394
+ "wires": [["debug-frame-start"], ["debug-frame-end"]]
395
+ },
396
+ {
397
+ "id": "test-phase-start",
398
+ "type": "inject",
399
+ "z": "test-frame-flow",
400
+ "name": "Start Phase",
401
+ "props": [
402
+ { "p": "payload", "v": "true", "vt": "bool" },
403
+ { "p": "metadata", "v": "{\"speed_rpm\":1500,\"temp_c\":75}", "vt": "json" }
404
+ ],
405
+ "repeat": "",
406
+ "crontab": "",
407
+ "once": false,
408
+ "onceDelay": 0.1,
409
+ "x": 130,
410
+ "y": 460,
411
+ "wires": [["test-phase"]]
412
+ },
413
+ {
414
+ "id": "test-phase-end",
415
+ "type": "inject",
416
+ "z": "test-frame-flow",
417
+ "name": "End Phase",
418
+ "props": [
419
+ { "p": "payload", "v": "false", "vt": "bool" }
420
+ ],
421
+ "repeat": "",
422
+ "crontab": "",
423
+ "once": false,
424
+ "onceDelay": 0.1,
425
+ "x": 120,
426
+ "y": 500,
427
+ "wires": [["test-phase"]]
428
+ },
429
+ {
430
+ "id": "test-phase",
431
+ "type": "event-frame",
432
+ "z": "test-frame-flow",
433
+ "name": "Phase",
434
+ "level": "phase",
435
+ "batchName": "Add Ingredient A",
436
+ "batchNameType": "str",
437
+ "unit": "",
438
+ "unitType": "str",
439
+ "batchId": "",
440
+ "batchIdType": "str",
441
+ "parentLevel": "operation",
442
+ "triggerField": "payload",
443
+ "metadataField": "metadata",
444
+ "contextKey": "test_isa88",
445
+ "endChildren": true,
446
+ "x": 410,
447
+ "y": 480,
448
+ "wires": [["debug-frame-start"], ["debug-frame-end"]]
449
+ },
450
+ {
451
+ "id": "debug-frame-start",
452
+ "type": "debug",
453
+ "z": "test-frame-flow",
454
+ "name": "Frame Started",
455
+ "active": true,
456
+ "tosidebar": true,
457
+ "console": false,
458
+ "tostatus": true,
459
+ "complete": "payload",
460
+ "targetType": "msg",
461
+ "statusVal": "payload.level",
462
+ "statusType": "auto",
463
+ "x": 660,
464
+ "y": 260,
465
+ "wires": []
466
+ },
467
+ {
468
+ "id": "debug-frame-end",
469
+ "type": "debug",
470
+ "z": "test-frame-flow",
471
+ "name": "Frame Ended",
472
+ "active": true,
473
+ "tosidebar": true,
474
+ "console": false,
475
+ "tostatus": true,
476
+ "complete": "payload",
477
+ "targetType": "msg",
478
+ "statusVal": "payload.level",
479
+ "statusType": "auto",
480
+ "x": 660,
481
+ "y": 360,
482
+ "wires": []
483
+ },
484
+ {
485
+ "id": "comment-frame-test-instructions",
486
+ "type": "comment",
487
+ "z": "test-frame-flow",
488
+ "name": "Test cascade: Start all 4 levels, then End Procedure → all should end. Or end any child individually.",
489
+ "info": "1. Start Procedure\n2. Start Unit Procedure\n3. Start Operation\n4. Start Phase\n5. End Procedure → cascades to all children\n\nAlternate: End Operation only → Phase ends too, but Procedure and Unit Procedure stay running.",
490
+ "x": 370,
491
+ "y": 560,
492
+ "wires": []
493
+ },
494
+
495
+ {
496
+ "id": "test-simple-frame-flow",
497
+ "type": "tab",
498
+ "label": "Test: Simple Frame",
499
+ "disabled": false,
500
+ "info": "Test flow for simple-frame node.\n\nTests:\n1. Basic start/end with static type\n2. Start/end with metadata\n3. Dynamic type from msg property"
501
+ },
502
+ {
503
+ "id": "comment-simple-test",
504
+ "type": "comment",
505
+ "z": "test-simple-frame-flow",
506
+ "name": "Simple Frame Test — Start/End Event Recording",
507
+ "info": "",
508
+ "x": 230,
509
+ "y": 40,
510
+ "wires": []
511
+ },
512
+ {
513
+ "id": "comment-basic",
514
+ "type": "comment",
515
+ "z": "test-simple-frame-flow",
516
+ "name": "1. Basic Start / Stop",
517
+ "info": "",
518
+ "x": 140,
519
+ "y": 80,
520
+ "wires": []
521
+ },
522
+ {
523
+ "id": "test-sf-start",
524
+ "type": "inject",
525
+ "z": "test-simple-frame-flow",
526
+ "name": "Start Downtime",
527
+ "props": [
528
+ { "p": "payload", "v": "true", "vt": "bool" }
529
+ ],
530
+ "repeat": "",
531
+ "crontab": "",
532
+ "once": false,
533
+ "onceDelay": 0.1,
534
+ "x": 140,
535
+ "y": 120,
536
+ "wires": [["test-sf-downtime"]]
537
+ },
538
+ {
539
+ "id": "test-sf-end",
540
+ "type": "inject",
541
+ "z": "test-simple-frame-flow",
542
+ "name": "End Downtime",
543
+ "props": [
544
+ { "p": "payload", "v": "false", "vt": "bool" }
545
+ ],
546
+ "repeat": "",
547
+ "crontab": "",
548
+ "once": false,
549
+ "onceDelay": 0.1,
550
+ "x": 140,
551
+ "y": 160,
552
+ "wires": [["test-sf-downtime"]]
553
+ },
554
+ {
555
+ "id": "test-sf-downtime",
556
+ "type": "simple-frame",
557
+ "z": "test-simple-frame-flow",
558
+ "name": "Downtime",
559
+ "eventType": "downtime",
560
+ "eventTypeType": "str",
561
+ "eventName": "Unplanned Downtime",
562
+ "eventNameType": "str",
563
+ "triggerField": "payload",
564
+ "metadataField": "",
565
+ "outputTopic": "",
566
+ "x": 370,
567
+ "y": 140,
568
+ "wires": [["debug-sf-start"], ["debug-sf-end"]]
569
+ },
570
+ {
571
+ "id": "comment-metadata",
572
+ "type": "comment",
573
+ "z": "test-simple-frame-flow",
574
+ "name": "2. With Metadata",
575
+ "info": "",
576
+ "x": 130,
577
+ "y": 220,
578
+ "wires": []
579
+ },
580
+ {
581
+ "id": "test-sf-maint-start",
582
+ "type": "inject",
583
+ "z": "test-simple-frame-flow",
584
+ "name": "Start Maintenance",
585
+ "props": [
586
+ { "p": "payload", "v": "true", "vt": "bool" },
587
+ { "p": "metadata", "v": "{\"technician\":\"John Smith\",\"work_order\":\"WO-2024-0542\"}", "vt": "json" }
588
+ ],
589
+ "repeat": "",
590
+ "crontab": "",
591
+ "once": false,
592
+ "onceDelay": 0.1,
593
+ "x": 150,
594
+ "y": 260,
595
+ "wires": [["test-sf-maintenance"]]
596
+ },
597
+ {
598
+ "id": "test-sf-maint-end",
599
+ "type": "inject",
600
+ "z": "test-simple-frame-flow",
601
+ "name": "End Maintenance",
602
+ "props": [
603
+ { "p": "payload", "v": "false", "vt": "bool" }
604
+ ],
605
+ "repeat": "",
606
+ "crontab": "",
607
+ "once": false,
608
+ "onceDelay": 0.1,
609
+ "x": 150,
610
+ "y": 300,
611
+ "wires": [["test-sf-maintenance"]]
612
+ },
613
+ {
614
+ "id": "test-sf-maintenance",
615
+ "type": "simple-frame",
616
+ "z": "test-simple-frame-flow",
617
+ "name": "Maintenance",
618
+ "eventType": "maintenance",
619
+ "eventTypeType": "str",
620
+ "eventName": "Scheduled PM",
621
+ "eventNameType": "str",
622
+ "triggerField": "payload",
623
+ "metadataField": "metadata",
624
+ "outputTopic": "",
625
+ "x": 380,
626
+ "y": 280,
627
+ "wires": [["debug-sf-start"], ["debug-sf-end"]]
628
+ },
629
+ {
630
+ "id": "comment-dynamic",
631
+ "type": "comment",
632
+ "z": "test-simple-frame-flow",
633
+ "name": "3. Dynamic Type from msg",
634
+ "info": "",
635
+ "x": 160,
636
+ "y": 360,
637
+ "wires": []
638
+ },
639
+ {
640
+ "id": "test-sf-shift-start",
641
+ "type": "inject",
642
+ "z": "test-simple-frame-flow",
643
+ "name": "Start Day Shift",
644
+ "props": [
645
+ { "p": "payload", "v": "true", "vt": "bool" },
646
+ { "p": "event_type", "v": "shift", "vt": "str" },
647
+ { "p": "event_name", "v": "Day Shift", "vt": "str" }
648
+ ],
649
+ "repeat": "",
650
+ "crontab": "",
651
+ "once": false,
652
+ "onceDelay": 0.1,
653
+ "x": 140,
654
+ "y": 400,
655
+ "wires": [["test-sf-shift"]]
656
+ },
657
+ {
658
+ "id": "test-sf-shift-end",
659
+ "type": "inject",
660
+ "z": "test-simple-frame-flow",
661
+ "name": "End Shift",
662
+ "props": [
663
+ { "p": "payload", "v": "false", "vt": "bool" }
664
+ ],
665
+ "repeat": "",
666
+ "crontab": "",
667
+ "once": false,
668
+ "onceDelay": 0.1,
669
+ "x": 130,
670
+ "y": 440,
671
+ "wires": [["test-sf-shift"]]
672
+ },
673
+ {
674
+ "id": "test-sf-shift",
675
+ "type": "simple-frame",
676
+ "z": "test-simple-frame-flow",
677
+ "name": "Shift Tracker",
678
+ "eventType": "event_type",
679
+ "eventTypeType": "msg",
680
+ "eventName": "event_name",
681
+ "eventNameType": "msg",
682
+ "triggerField": "payload",
683
+ "metadataField": "",
684
+ "outputTopic": "",
685
+ "x": 380,
686
+ "y": 420,
687
+ "wires": [["debug-sf-start"], ["debug-sf-end"]]
688
+ },
689
+ {
690
+ "id": "debug-sf-start",
691
+ "type": "debug",
692
+ "z": "test-simple-frame-flow",
693
+ "name": "Event Started",
694
+ "active": true,
695
+ "tosidebar": true,
696
+ "console": false,
697
+ "tostatus": true,
698
+ "complete": "payload",
699
+ "targetType": "msg",
700
+ "statusVal": "payload.name",
701
+ "statusType": "auto",
702
+ "x": 610,
703
+ "y": 220,
704
+ "wires": []
705
+ },
706
+ {
707
+ "id": "debug-sf-end",
708
+ "type": "debug",
709
+ "z": "test-simple-frame-flow",
710
+ "name": "Event Ended",
711
+ "active": true,
712
+ "tosidebar": true,
713
+ "console": false,
714
+ "tostatus": true,
715
+ "complete": "payload",
716
+ "targetType": "msg",
717
+ "statusVal": "payload.name",
718
+ "statusType": "auto",
719
+ "x": 610,
720
+ "y": 320,
721
+ "wires": []
722
+ }
723
+ ]