iobroker.prosoft_flow 0.1.0

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,778 @@
1
+ {
2
+ "i18n": true,
3
+ "type": "panel",
4
+ "items": {
5
+ "tabs": {
6
+ "type": "tabs",
7
+ "items": {
8
+ "connection": {
9
+ "type": "panel",
10
+ "label": "Qoşulma / Connection",
11
+ "items": {
12
+ "headerConn": {
13
+ "type": "header",
14
+ "text": "Modbus Rabitə Ayarları (Serial RTU / Modbus TCP)"
15
+ },
16
+ "connectionType": {
17
+ "type": "select",
18
+ "label": "Qoşulma Növü / Connection Type",
19
+ "options": [
20
+ {
21
+ "value": "serial",
22
+ "label": "Serial RTU (RS-232 / RS-485)"
23
+ },
24
+ {
25
+ "value": "tcp",
26
+ "label": "Modbus TCP"
27
+ },
28
+ {
29
+ "value": "rtu_over_tcp",
30
+ "label": "Modbus RTU over TCP"
31
+ }
32
+ ],
33
+ "default": "serial",
34
+ "sm": 12,
35
+ "md": 4
36
+ },
37
+ "slaveId": {
38
+ "type": "number",
39
+ "label": "Modbus Slave ID (AFC)",
40
+ "min": 1,
41
+ "max": 255,
42
+ "default": 244,
43
+ "sm": 6,
44
+ "md": 4
45
+ },
46
+ "pollInterval": {
47
+ "type": "number",
48
+ "label": "Dövri Sorğu İntervalı / Poll Interval (ms)",
49
+ "min": 50,
50
+ "max": 60000,
51
+ "default": 1000,
52
+ "sm": 6,
53
+ "md": 4
54
+ },
55
+ "serialHeader": {
56
+ "type": "header",
57
+ "text": "Serial Parametrləri (COM Port)",
58
+ "hidden": "data.connectionType !== 'serial'"
59
+ },
60
+ "serialPort": {
61
+ "type": "text",
62
+ "label": "Serial Port (məs: COM1 və ya /dev/ttyUSB0)",
63
+ "default": "COM1",
64
+ "hidden": "data.connectionType !== 'serial'",
65
+ "sm": 12,
66
+ "md": 4
67
+ },
68
+ "baudRate": {
69
+ "type": "select",
70
+ "label": "Baud Rate",
71
+ "options": [
72
+ {
73
+ "value": 1200,
74
+ "label": "1200"
75
+ },
76
+ {
77
+ "value": 2400,
78
+ "label": "2400"
79
+ },
80
+ {
81
+ "value": 4800,
82
+ "label": "4800"
83
+ },
84
+ {
85
+ "value": 9600,
86
+ "label": "9600"
87
+ },
88
+ {
89
+ "value": 19200,
90
+ "label": "19200"
91
+ },
92
+ {
93
+ "value": 38400,
94
+ "label": "38400"
95
+ },
96
+ {
97
+ "value": 57600,
98
+ "label": "57600"
99
+ },
100
+ {
101
+ "value": 115200,
102
+ "label": "115200"
103
+ }
104
+ ],
105
+ "default": 9600,
106
+ "hidden": "data.connectionType !== 'serial'",
107
+ "sm": 6,
108
+ "md": 2
109
+ },
110
+ "dataBits": {
111
+ "type": "select",
112
+ "label": "Data Bits",
113
+ "options": [
114
+ {
115
+ "value": 7,
116
+ "label": "7"
117
+ },
118
+ {
119
+ "value": 8,
120
+ "label": "8"
121
+ }
122
+ ],
123
+ "default": 8,
124
+ "hidden": "data.connectionType !== 'serial'",
125
+ "sm": 6,
126
+ "md": 2
127
+ },
128
+ "stopBits": {
129
+ "type": "select",
130
+ "label": "Stop Bits",
131
+ "options": [
132
+ {
133
+ "value": 1,
134
+ "label": "1"
135
+ },
136
+ {
137
+ "value": 2,
138
+ "label": "2"
139
+ }
140
+ ],
141
+ "default": 1,
142
+ "hidden": "data.connectionType !== 'serial'",
143
+ "sm": 6,
144
+ "md": 2
145
+ },
146
+ "parity": {
147
+ "type": "select",
148
+ "label": "Parity",
149
+ "options": [
150
+ {
151
+ "value": "none",
152
+ "label": "None"
153
+ },
154
+ {
155
+ "value": "even",
156
+ "label": "Even"
157
+ },
158
+ {
159
+ "value": "odd",
160
+ "label": "Odd"
161
+ }
162
+ ],
163
+ "default": "none",
164
+ "hidden": "data.connectionType !== 'serial'",
165
+ "sm": 6,
166
+ "md": 2
167
+ },
168
+ "netHeader": {
169
+ "type": "header",
170
+ "text": "TCP Şəbəkə Parametrləri",
171
+ "hidden": "data.connectionType === 'serial'"
172
+ },
173
+ "tcpHost": {
174
+ "type": "text",
175
+ "label": "Modbus TCP Server IP / Host",
176
+ "default": "127.0.0.1",
177
+ "hidden": "data.connectionType === 'serial'",
178
+ "sm": 12,
179
+ "md": 6
180
+ },
181
+ "tcpPort": {
182
+ "type": "number",
183
+ "label": "TCP Port",
184
+ "min": 1,
185
+ "max": 65535,
186
+ "default": 502,
187
+ "hidden": "data.connectionType === 'serial'",
188
+ "sm": 6,
189
+ "md": 3
190
+ },
191
+ "tcpTimeout": {
192
+ "type": "number",
193
+ "label": "TCP Timeout (ms)",
194
+ "min": 200,
195
+ "max": 30000,
196
+ "default": 2000,
197
+ "hidden": "data.connectionType === 'serial'",
198
+ "sm": 6,
199
+ "md": 3
200
+ }
201
+ }
202
+ },
203
+ "tagsTab": {
204
+ "type": "panel",
205
+ "label": "Stansiya (Dövri Teqlər)",
206
+ "items": {
207
+ "formulaHelp": {
208
+ "type": "staticText",
209
+ "text": "📐 **Formula Sintaksisi**: Oxunan xam dəyər `x` dəyişəni ilə ifadə olunur. İstənilən riyazi ifadə və `Math.*` funksiyaları yazıla bilər.\nNümunələr: `x * 0.1`, `x / 1000`, `x + 273.15`, `Math.round(x * 100) / 100`. Boş buraxıldıqda xam dəyər qəbul edilir.",
210
+ "sm": 12
211
+ },
212
+ "tags": {
213
+ "type": "table",
214
+ "label": "Cari Dövri Teqlər Siyahısı (123 Teq)",
215
+ "sm": 12,
216
+ "items": [
217
+ {
218
+ "type": "text",
219
+ "attr": "name",
220
+ "title": "Teq Adı / Tagname",
221
+ "width": "20%"
222
+ },
223
+ {
224
+ "type": "number",
225
+ "attr": "address",
226
+ "title": "Modbus Ünvan",
227
+ "width": "10%"
228
+ },
229
+ {
230
+ "type": "select",
231
+ "attr": "dataType",
232
+ "title": "Tip",
233
+ "options": [
234
+ {
235
+ "value": "float",
236
+ "label": "float (IEEE-754)"
237
+ },
238
+ {
239
+ "value": "uint32",
240
+ "label": "uint32"
241
+ },
242
+ {
243
+ "value": "int32",
244
+ "label": "int32"
245
+ },
246
+ {
247
+ "value": "uint16",
248
+ "label": "uint16"
249
+ },
250
+ {
251
+ "value": "int16",
252
+ "label": "int16"
253
+ },
254
+ {
255
+ "value": "dt",
256
+ "label": "dt (DateTime)"
257
+ },
258
+ {
259
+ "value": "bool",
260
+ "label": "bool (Coil)"
261
+ },
262
+ {
263
+ "value": "ascii8",
264
+ "label": "ascii8 (4 Reg)"
265
+ },
266
+ {
267
+ "value": "ascii16",
268
+ "label": "ascii16 (8 Reg)"
269
+ }
270
+ ],
271
+ "width": "15%"
272
+ },
273
+ {
274
+ "type": "text",
275
+ "attr": "group",
276
+ "title": "Qrup / Group",
277
+ "width": "15%"
278
+ },
279
+ {
280
+ "type": "checkbox",
281
+ "attr": "poll",
282
+ "title": "Dövri",
283
+ "width": "8%"
284
+ },
285
+ {
286
+ "type": "text",
287
+ "attr": "formula",
288
+ "title": "Formula (məs: x * 0.1)",
289
+ "width": "16%"
290
+ },
291
+ {
292
+ "type": "text",
293
+ "attr": "unit",
294
+ "title": "Vahid",
295
+ "width": "8%"
296
+ },
297
+ {
298
+ "type": "text",
299
+ "attr": "description",
300
+ "title": "Təsvir",
301
+ "width": "18%"
302
+ }
303
+ ]
304
+ }
305
+ }
306
+ },
307
+ "reportsTab": {
308
+ "type": "panel",
309
+ "label": "Hesabatlar & Cədvəl",
310
+ "items": {
311
+ "reportHelp": {
312
+ "type": "staticText",
313
+ "text": "⏱️ **Cədvəl və Yaş (Age 1) Məntiqi**: Günün tamamında (məs: 08:02) və ya saat tamamında axın kompüteri bağlanmış dövrün məlumatlarını Age 1 yaddaşına atır. Hər qrup üçün fərdi olaraq cədvəl (saatlıq, gündəlik, aylıq) və ya dövri sorğu (polling) seçilə bilər.\n🔒 **Yarım-dupleks Qorunması**: Hesabat oxunarkən əsas Modbus sorğu dövrü müvəqqəti dayandırılır (`pollPaused=true`) və hesabat qurtardıqdan sonra avtomatik bərpa olunur.",
314
+ "sm": 12
315
+ },
316
+ "clockHeader": {
317
+ "type": "header",
318
+ "text": "AFC Vaxt Mənbəyi"
319
+ },
320
+ "afcTimeRegister": {
321
+ "type": "number",
322
+ "label": "Əsas AFC Vaxt Registri (Default AFC Real-Time Clock Register)",
323
+ "default": 9900,
324
+ "min": 1,
325
+ "max": 65535,
326
+ "sm": 12,
327
+ "md": 6
328
+ },
329
+ "groupsHeader": {
330
+ "type": "header",
331
+ "text": "Hesabat Qrupları Konfiqurasiyası (Oxuma Növü: Cədvəl / Dövri / Əl ilə)"
332
+ },
333
+ "reportGroups": {
334
+ "type": "table",
335
+ "label": "Hesabat Qrupları Siyahısı",
336
+ "sm": 12,
337
+ "items": [
338
+ {
339
+ "type": "text",
340
+ "attr": "name",
341
+ "title": "Qrup Adı",
342
+ "width": "12%"
343
+ },
344
+ {
345
+ "type": "checkbox",
346
+ "attr": "enabled",
347
+ "title": "Aktiv",
348
+ "width": "5%"
349
+ },
350
+ {
351
+ "type": "select",
352
+ "attr": "readMode",
353
+ "title": "Oxuma Növü",
354
+ "options": [
355
+ {
356
+ "value": "schedule",
357
+ "label": "Cədvəl (AFC Saatı)"
358
+ },
359
+ {
360
+ "value": "polling",
361
+ "label": "Dövri (Interval)"
362
+ },
363
+ {
364
+ "value": "manual",
365
+ "label": "Yalnız Əl ilə"
366
+ }
367
+ ],
368
+ "width": "15%"
369
+ },
370
+ {
371
+ "type": "select",
372
+ "attr": "scheduleType",
373
+ "title": "Cədvəl Tipi",
374
+ "options": [
375
+ {
376
+ "value": "hourly",
377
+ "label": "Hər saat"
378
+ },
379
+ {
380
+ "value": "daily",
381
+ "label": "Hər gün"
382
+ },
383
+ {
384
+ "value": "monthly",
385
+ "label": "Hər ay"
386
+ }
387
+ ],
388
+ "width": "11%"
389
+ },
390
+ {
391
+ "type": "number",
392
+ "attr": "scheduleDay",
393
+ "title": "Gün",
394
+ "width": "5%"
395
+ },
396
+ {
397
+ "type": "number",
398
+ "attr": "scheduleHour",
399
+ "title": "Saat",
400
+ "width": "5%"
401
+ },
402
+ {
403
+ "type": "number",
404
+ "attr": "scheduleMinute",
405
+ "title": "Dəq",
406
+ "width": "5%"
407
+ },
408
+ {
409
+ "type": "number",
410
+ "attr": "timeRegister",
411
+ "title": "AFC Vaxt Reg",
412
+ "width": "10%"
413
+ },
414
+ {
415
+ "type": "number",
416
+ "attr": "age",
417
+ "title": "Yaş (Age)",
418
+ "width": "6%"
419
+ },
420
+ {
421
+ "type": "number",
422
+ "attr": "pollInterval",
423
+ "title": "Interval (s)",
424
+ "width": "8%"
425
+ },
426
+ {
427
+ "type": "number",
428
+ "attr": "ageRegisterM1",
429
+ "title": "M1 Age Reg",
430
+ "width": "9%"
431
+ },
432
+ {
433
+ "type": "number",
434
+ "attr": "ageRegisterM2",
435
+ "title": "M2 Age Reg",
436
+ "width": "9%"
437
+ }
438
+ ]
439
+ },
440
+ "dailyTagsHeader": {
441
+ "type": "header",
442
+ "text": "Gündəlik Hesabat Teqləri (Daily Report - 57 Teq)"
443
+ },
444
+ "dailyTags": {
445
+ "type": "table",
446
+ "label": "Gündəlik Teqlər",
447
+ "sm": 12,
448
+ "items": [
449
+ {
450
+ "type": "text",
451
+ "attr": "name",
452
+ "title": "Teq Adı",
453
+ "width": "25%"
454
+ },
455
+ {
456
+ "type": "number",
457
+ "attr": "meter",
458
+ "title": "Sayğac (Meter)",
459
+ "width": "10%"
460
+ },
461
+ {
462
+ "type": "number",
463
+ "attr": "addressAge0",
464
+ "title": "Ünvan (Age 0)",
465
+ "width": "15%"
466
+ },
467
+ {
468
+ "type": "number",
469
+ "attr": "addressAgeOthers",
470
+ "title": "Ünvan (Age 1..35)",
471
+ "width": "15%"
472
+ },
473
+ {
474
+ "type": "select",
475
+ "attr": "dataType",
476
+ "title": "Tip",
477
+ "options": [
478
+ {
479
+ "value": "float",
480
+ "label": "float"
481
+ },
482
+ {
483
+ "value": "uint32",
484
+ "label": "uint32"
485
+ },
486
+ {
487
+ "value": "int32",
488
+ "label": "int32"
489
+ },
490
+ {
491
+ "value": "uint16",
492
+ "label": "uint16"
493
+ },
494
+ {
495
+ "value": "dt",
496
+ "label": "dt"
497
+ },
498
+ {
499
+ "value": "ascii8",
500
+ "label": "ascii8"
501
+ },
502
+ {
503
+ "value": "ascii16",
504
+ "label": "ascii16"
505
+ }
506
+ ],
507
+ "width": "15%"
508
+ },
509
+ {
510
+ "type": "text",
511
+ "attr": "formula",
512
+ "title": "Formula",
513
+ "width": "20%"
514
+ }
515
+ ]
516
+ },
517
+ "hourlyTagsHeader": {
518
+ "type": "header",
519
+ "text": "Saatlıq Hesabat Teqləri (Hourly Report - 57 Teq)"
520
+ },
521
+ "hourlyTags": {
522
+ "type": "table",
523
+ "label": "Saatlıq Teqlər",
524
+ "sm": 12,
525
+ "items": [
526
+ {
527
+ "type": "text",
528
+ "attr": "name",
529
+ "title": "Teq Adı",
530
+ "width": "25%"
531
+ },
532
+ {
533
+ "type": "number",
534
+ "attr": "meter",
535
+ "title": "Sayğac (Meter)",
536
+ "width": "10%"
537
+ },
538
+ {
539
+ "type": "number",
540
+ "attr": "addressAge0",
541
+ "title": "Ünvan (Age 0)",
542
+ "width": "15%"
543
+ },
544
+ {
545
+ "type": "number",
546
+ "attr": "addressAgeOthers",
547
+ "title": "Ünvan (Age 1..35)",
548
+ "width": "15%"
549
+ },
550
+ {
551
+ "type": "select",
552
+ "attr": "dataType",
553
+ "title": "Tip",
554
+ "options": [
555
+ {
556
+ "value": "float",
557
+ "label": "float"
558
+ },
559
+ {
560
+ "value": "uint32",
561
+ "label": "uint32"
562
+ },
563
+ {
564
+ "value": "int32",
565
+ "label": "int32"
566
+ },
567
+ {
568
+ "value": "uint16",
569
+ "label": "uint16"
570
+ },
571
+ {
572
+ "value": "dt",
573
+ "label": "dt"
574
+ },
575
+ {
576
+ "value": "ascii8",
577
+ "label": "ascii8"
578
+ },
579
+ {
580
+ "value": "ascii16",
581
+ "label": "ascii16"
582
+ }
583
+ ],
584
+ "width": "15%"
585
+ },
586
+ {
587
+ "type": "text",
588
+ "attr": "formula",
589
+ "title": "Formula",
590
+ "width": "20%"
591
+ }
592
+ ]
593
+ },
594
+ "snapshotTagsHeader": {
595
+ "type": "header",
596
+ "text": "Ani Hesabat Teqləri (Snapshot Report - 57 Teq)"
597
+ },
598
+ "snapshotTags": {
599
+ "type": "table",
600
+ "label": "Ani Teqlər",
601
+ "sm": 12,
602
+ "items": [
603
+ {
604
+ "type": "text",
605
+ "attr": "name",
606
+ "title": "Teq Adı",
607
+ "width": "30%"
608
+ },
609
+ {
610
+ "type": "number",
611
+ "attr": "meter",
612
+ "title": "Sayğac",
613
+ "width": "15%"
614
+ },
615
+ {
616
+ "type": "number",
617
+ "attr": "address",
618
+ "title": "Ünvan",
619
+ "width": "20%"
620
+ },
621
+ {
622
+ "type": "select",
623
+ "attr": "dataType",
624
+ "title": "Tip",
625
+ "options": [
626
+ {
627
+ "value": "float",
628
+ "label": "float"
629
+ },
630
+ {
631
+ "value": "uint32",
632
+ "label": "uint32"
633
+ },
634
+ {
635
+ "value": "int32",
636
+ "label": "int32"
637
+ },
638
+ {
639
+ "value": "uint16",
640
+ "label": "uint16"
641
+ },
642
+ {
643
+ "value": "dt",
644
+ "label": "dt"
645
+ },
646
+ {
647
+ "value": "ascii8",
648
+ "label": "ascii8"
649
+ },
650
+ {
651
+ "value": "ascii16",
652
+ "label": "ascii16"
653
+ }
654
+ ],
655
+ "width": "15%"
656
+ },
657
+ {
658
+ "type": "text",
659
+ "attr": "formula",
660
+ "title": "Formula",
661
+ "width": "20%"
662
+ }
663
+ ]
664
+ },
665
+ "customTagsHeader": {
666
+ "type": "header",
667
+ "text": "Xüsusi Hesabat Teqləri (Prover və s.)"
668
+ },
669
+ "customReportTags": {
670
+ "type": "table",
671
+ "label": "Xüsusi Teqlər",
672
+ "sm": 12,
673
+ "items": [
674
+ {
675
+ "type": "text",
676
+ "attr": "groupName",
677
+ "title": "Qrup Adı (məs: Prover)",
678
+ "width": "20%"
679
+ },
680
+ {
681
+ "type": "text",
682
+ "attr": "name",
683
+ "title": "Teq Adı",
684
+ "width": "25%"
685
+ },
686
+ {
687
+ "type": "number",
688
+ "attr": "meter",
689
+ "title": "Sayğac",
690
+ "width": "10%"
691
+ },
692
+ {
693
+ "type": "number",
694
+ "attr": "addressAge0",
695
+ "title": "Ünvan (Age 0)",
696
+ "width": "15%"
697
+ },
698
+ {
699
+ "type": "number",
700
+ "attr": "addressAgeOthers",
701
+ "title": "Ünvan (Age Others)",
702
+ "width": "15%"
703
+ },
704
+ {
705
+ "type": "select",
706
+ "attr": "dataType",
707
+ "title": "Tip",
708
+ "options": [
709
+ {
710
+ "value": "float",
711
+ "label": "float"
712
+ },
713
+ {
714
+ "value": "uint32",
715
+ "label": "uint32"
716
+ },
717
+ {
718
+ "value": "int32",
719
+ "label": "int32"
720
+ },
721
+ {
722
+ "value": "uint16",
723
+ "label": "uint16"
724
+ },
725
+ {
726
+ "value": "dt",
727
+ "label": "dt"
728
+ }
729
+ ],
730
+ "width": "15%"
731
+ }
732
+ ]
733
+ }
734
+ }
735
+ },
736
+ "licensingTab": {
737
+ "type": "panel",
738
+ "label": "Lisenziya (RFC-005)",
739
+ "items": {
740
+ "licHeader": {
741
+ "type": "header",
742
+ "text": "Avadanlıq İdentifikatoru və Lisenziyalaşdırma"
743
+ },
744
+ "licText": {
745
+ "type": "staticText",
746
+ "text": "🛡️ Bu adapter Native AOT mühərriki vasitəsilə aparat səviyyəsində qorunur (RFC-005). Lisenziya açarı almaq üçün aşağıdakı Hardware ID-ni təqdim edin.",
747
+ "sm": 12
748
+ },
749
+ "licenseKey": {
750
+ "type": "text",
751
+ "label": "Lisenziya Açarı / Expired Hash (PFH- / Ed25519)",
752
+ "help": "Xüsusi hazırlanmış PFH- expired hash və ya Ed25519 lisenziya açarını bura daxil edin",
753
+ "sm": 12
754
+ },
755
+ "licenseTimeSource": {
756
+ "type": "select",
757
+ "label": "Zaman Yoxlama Mənbəyi / License Time Source",
758
+ "options": [
759
+ { "value": "afc", "label": "Physical Flow Computer (AFC Hardware RTC - Tamper Proof) [Tövsiyə olunur]" },
760
+ { "value": "pc", "label": "Local PC Clock (Monotonic Anti-Rollback Guard)" }
761
+ ],
762
+ "default": "afc",
763
+ "sm": 8
764
+ },
765
+ "licenseTimeAddress": {
766
+ "type": "number",
767
+ "label": "AFC RTC Clock Registr Ünvanı",
768
+ "default": 9950,
769
+ "min": 1,
770
+ "max": 65535,
771
+ "sm": 4
772
+ }
773
+ }
774
+ }
775
+ }
776
+ }
777
+ }
778
+ }