homebridge-melcloud-control 3.9.10 → 3.10.0-beta.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.
@@ -19,23 +19,20 @@
19
19
  "title": "Name",
20
20
  "type": "string",
21
21
  "placeholder": "Account name",
22
- "description": "Your own account name.",
23
- "required": true
22
+ "description": "Your own account name."
24
23
  },
25
24
  "user": {
26
25
  "title": "User",
27
26
  "type": "string",
28
27
  "placeholder": "User",
29
- "description": "MELCloud account username.",
30
- "required": true
28
+ "description": "MELCloud account username."
31
29
  },
32
30
  "passwd": {
33
31
  "title": "Password",
34
32
  "type": "string",
35
33
  "placeholder": "Password",
36
34
  "description": "MELCloud account password.",
37
- "format": "password",
38
- "required": true
35
+ "format": "password"
39
36
  },
40
37
  "language": {
41
38
  "title": "Language",
@@ -44,6 +41,7 @@
44
41
  "maxLength": 2,
45
42
  "pattern": "^[0-9]+$",
46
43
  "default": "0",
44
+ "description": "Here select the language used in MELCloud account.",
47
45
  "oneOf": [
48
46
  {
49
47
  "title": "English",
@@ -201,9 +199,7 @@
201
199
  "25"
202
200
  ]
203
201
  }
204
- ],
205
- "description": "Here select the language used in MELCloud account.",
206
- "required": true
202
+ ]
207
203
  },
208
204
  "ataDevices": {
209
205
  "title": "Devices ATA",
@@ -215,28 +211,24 @@
215
211
  "title": "ID",
216
212
  "type": "integer",
217
213
  "default": 0,
218
- "required": false,
219
214
  "readonly": true
220
215
  },
221
216
  "type": {
222
217
  "title": "Type",
223
218
  "type": "integer",
224
219
  "default": 0,
225
- "required": false,
226
220
  "readonly": true
227
221
  },
228
222
  "typeString": {
229
223
  "title": "Type",
230
224
  "type": "string",
231
225
  "default": "Air Conditioner",
232
- "required": false,
233
226
  "readonly": true
234
227
  },
235
228
  "name": {
236
229
  "title": "Name",
237
230
  "type": "string",
238
- "default": "Air Conditioner",
239
- "required": false
231
+ "default": "Air Conditioner"
240
232
  },
241
233
  "displayMode": {
242
234
  "title": "Control",
@@ -244,6 +236,7 @@
244
236
  "minimum": 0,
245
237
  "maximum": 2,
246
238
  "default": 1,
239
+ "description": "Select accessory control type displayed in HomeKit app.",
247
240
  "oneOf": [
248
241
  {
249
242
  "title": "None/Disabled",
@@ -263,9 +256,7 @@
263
256
  2
264
257
  ]
265
258
  }
266
- ],
267
- "description": "Select accessory control type displayed in HomeKit app.",
268
- "required": true
259
+ ]
269
260
  },
270
261
  "heatDryFanMode": {
271
262
  "title": "Heat",
@@ -273,6 +264,7 @@
273
264
  "minimum": 0,
274
265
  "maximum": 3,
275
266
  "default": 1,
267
+ "description": "Select the operating mode for Heat, if this mode is not supported, it will be disabled.",
276
268
  "oneOf": [
277
269
  {
278
270
  "title": "None/Disabled",
@@ -298,9 +290,7 @@
298
290
  3
299
291
  ]
300
292
  }
301
- ],
302
- "description": "Select the operating mode for Heat, if this mode is not supported, it will be disabled.",
303
- "required": true
293
+ ]
304
294
  },
305
295
  "coolDryFanMode": {
306
296
  "title": "Cool",
@@ -308,6 +298,7 @@
308
298
  "minimum": 0,
309
299
  "maximum": 3,
310
300
  "default": 1,
301
+ "description": "Select the operating mode for Cool, if this mode is not supported, it will be disabled.",
311
302
  "oneOf": [
312
303
  {
313
304
  "title": "None/Disabled",
@@ -333,9 +324,7 @@
333
324
  3
334
325
  ]
335
326
  }
336
- ],
337
- "description": "Select the operating mode for Cool, if this mode is not supported, it will be disabled.",
338
- "required": true
327
+ ]
339
328
  },
340
329
  "autoDryFanMode": {
341
330
  "title": "Auto",
@@ -343,6 +332,7 @@
343
332
  "minimum": 0,
344
333
  "maximum": 3,
345
334
  "default": 1,
335
+ "description": "Select the operating mode for Auto, if this mode is not supported, it will be disabled.",
346
336
  "oneOf": [
347
337
  {
348
338
  "title": "None/Disabled",
@@ -368,23 +358,19 @@
368
358
  3
369
359
  ]
370
360
  }
371
- ],
372
- "description": "Select the operating mode for Auto, if this mode is not supported, it will be disabled.",
373
- "required": true
361
+ ]
374
362
  },
375
363
  "temperatureSensor": {
376
364
  "title": "Room",
377
365
  "type": "boolean",
378
366
  "default": false,
379
- "description": "This enable extra room temperature sensor to use with automations in HomeKit app.",
380
- "required": false
367
+ "description": "This enable extra room temperature sensor to use with automations in HomeKit app."
381
368
  },
382
369
  "temperatureSensorOutdoor": {
383
370
  "title": "Outdoor",
384
371
  "type": "boolean",
385
372
  "default": false,
386
- "description": "This enable extra outdoor temperature sensor to use with automations in HomeKit app.",
387
- "required": false
373
+ "description": "This enable extra outdoor temperature sensor to use with automations in HomeKit app."
388
374
  },
389
375
  "refreshInterval": {
390
376
  "title": "Refresh Interval",
@@ -392,8 +378,7 @@
392
378
  "default": 5,
393
379
  "minimum": 1,
394
380
  "maximum": 60,
395
- "description": "Set the background device state refresh time in seconds.",
396
- "required": false
381
+ "description": "Set the background device state refresh time in seconds."
397
382
  },
398
383
  "presets": {
399
384
  "title": "Presets",
@@ -403,15 +388,13 @@
403
388
  "properties": {
404
389
  "id": {
405
390
  "title": "ID",
406
- "type": "integer",
407
- "required": false
391
+ "type": "integer"
408
392
  },
409
393
  "name": {
410
394
  "title": "Name",
411
395
  "type": "string",
412
396
  "placeholder": "Preset name",
413
- "description": "Your own name displayed in Homebridge/HomeKit app.",
414
- "required": false
397
+ "description": "Your own name displayed in Homebridge/HomeKit app."
415
398
  },
416
399
  "displayType": {
417
400
  "title": "Type",
@@ -419,6 +402,7 @@
419
402
  "minimum": 0,
420
403
  "maximum": 5,
421
404
  "default": 0,
405
+ "description": "Select the characteristic type to be displayed in HomeKit app.",
422
406
  "oneOf": [
423
407
  {
424
408
  "title": "None/Disabled",
@@ -456,18 +440,18 @@
456
440
  5
457
441
  ]
458
442
  }
459
- ],
460
- "description": "Select the characteristic type to be displayed in HomeKit app.",
461
- "required": true
443
+ ]
462
444
  },
463
445
  "namePrefix": {
464
446
  "title": "Prefix",
465
447
  "type": "boolean",
466
448
  "default": false,
467
- "description": "Enable/disable the accessory name as a prefix for button/sensor name.",
468
- "required": false
449
+ "description": "Enable/disable the accessory name as a prefix for button/sensor name."
469
450
  }
470
- }
451
+ },
452
+ "required": [
453
+ "displayType"
454
+ ]
471
455
  }
472
456
  },
473
457
  "buttonsSensors": {
@@ -476,19 +460,57 @@
476
460
  "items": {
477
461
  "type": "object",
478
462
  "properties": {
479
- "name": {
480
- "title": "Name",
481
- "type": "string",
482
- "placeholder": "Button name",
483
- "description": "Your own name displayed in Homebridge/HomeKit app.",
484
- "required": false
463
+ "displayType": {
464
+ "title": "Type",
465
+ "type": "integer",
466
+ "minimum": 0,
467
+ "maximum": 5,
468
+ "default": 0,
469
+ "description": "Select the characteristic type to be displayed in HomeKit app.",
470
+ "oneOf": [
471
+ {
472
+ "title": "None/Disabled",
473
+ "enum": [
474
+ 0
475
+ ]
476
+ },
477
+ {
478
+ "title": "Outlet",
479
+ "enum": [
480
+ 1
481
+ ]
482
+ },
483
+ {
484
+ "title": "Switch",
485
+ "enum": [
486
+ 2
487
+ ]
488
+ },
489
+ {
490
+ "title": "Motion Sensor",
491
+ "enum": [
492
+ 3
493
+ ]
494
+ },
495
+ {
496
+ "title": "Occupancy Sensor",
497
+ "enum": [
498
+ 4
499
+ ]
500
+ },
501
+ {
502
+ "title": "Contact Sensor",
503
+ "enum": [
504
+ 5
505
+ ]
506
+ }
507
+ ]
485
508
  },
486
509
  "mode": {
487
510
  "title": "Mode",
488
511
  "type": "integer",
489
512
  "minimum": 0,
490
513
  "maximum": 40,
491
- "default": 0,
492
514
  "description": "Function, VH - Vane Horizontal, VV - Vane Vertical.",
493
515
  "oneOf": [
494
516
  {
@@ -701,67 +723,33 @@
701
723
  40
702
724
  ]
703
725
  }
704
- ],
705
- "required": true
726
+ ]
706
727
  },
707
- "displayType": {
708
- "title": "Type",
709
- "type": "integer",
710
- "minimum": 0,
711
- "maximum": 5,
712
- "default": 0,
713
- "oneOf": [
714
- {
715
- "title": "None/Disabled",
716
- "enum": [
717
- 0
718
- ]
719
- },
720
- {
721
- "title": "Outlet",
722
- "enum": [
723
- 1
724
- ]
725
- },
726
- {
727
- "title": "Switch",
728
- "enum": [
729
- 2
730
- ]
731
- },
732
- {
733
- "title": "Motion Sensor",
734
- "enum": [
735
- 3
736
- ]
737
- },
738
- {
739
- "title": "Occupancy Sensor",
740
- "enum": [
741
- 4
742
- ]
743
- },
744
- {
745
- "title": "Contact Sensor",
746
- "enum": [
747
- 5
748
- ]
749
- }
750
- ],
751
- "description": "Select the characteristic type to be displayed in HomeKit app.",
752
- "required": true
728
+ "name": {
729
+ "title": "Name",
730
+ "type": "string",
731
+ "placeholder": "Button name",
732
+ "description": "Your own name displayed in Homebridge/HomeKit app."
753
733
  },
754
734
  "namePrefix": {
755
735
  "title": "Prefix",
756
736
  "type": "boolean",
757
737
  "default": false,
758
- "description": "Enable/disable the accessory name as a prefix for button/sensor name.",
759
- "required": false
738
+ "description": "Enable/disable the accessory name as a prefix for button/sensor name."
760
739
  }
761
- }
740
+ },
741
+ "required": [
742
+ "displayType"
743
+ ]
762
744
  }
763
745
  }
764
- }
746
+ },
747
+ "required": [
748
+ "displayMode",
749
+ "heatDryFanMode",
750
+ "coolDryFanMode",
751
+ "autoDryFanMode"
752
+ ]
765
753
  },
766
754
  "condition": {
767
755
  "functionBody": "const devices = model.accounts[arrayIndices]?.ataDevices || []; return devices.length > 0 && devices.every(device => device.id != null);"
@@ -777,28 +765,24 @@
777
765
  "title": "ID",
778
766
  "type": "integer",
779
767
  "default": 0,
780
- "required": false,
781
768
  "readonly": true
782
769
  },
783
770
  "type": {
784
771
  "title": "Type",
785
772
  "type": "integer",
786
773
  "default": 1,
787
- "required": false,
788
774
  "readonly": true
789
775
  },
790
776
  "typeString": {
791
777
  "title": "Type",
792
778
  "type": "string",
793
779
  "default": "Heat Pump",
794
- "required": false,
795
780
  "readonly": true
796
781
  },
797
782
  "name": {
798
783
  "title": "Name",
799
784
  "type": "string",
800
- "default": "Heat Pump",
801
- "required": false
785
+ "default": "Heat Pump"
802
786
  },
803
787
  "displayMode": {
804
788
  "title": "Control",
@@ -806,6 +790,7 @@
806
790
  "minimum": 0,
807
791
  "maximum": 2,
808
792
  "default": 1,
793
+ "description": "Select accessory control type displayed in HomeKit app.",
809
794
  "oneOf": [
810
795
  {
811
796
  "title": "None/Disabled",
@@ -825,9 +810,7 @@
825
810
  2
826
811
  ]
827
812
  }
828
- ],
829
- "description": "Select accessory control type displayed in HomeKit app.",
830
- "required": true
813
+ ]
831
814
  },
832
815
  "hideZone": {
833
816
  "title": "Hide zone",
@@ -835,6 +818,7 @@
835
818
  "minimum": 0,
836
819
  "maximum": 15,
837
820
  "default": 0,
821
+ "description": "Select zone to hidde in HomeKit app, if present.",
838
822
  "oneOf": [
839
823
  {
840
824
  "title": "None/Disabled",
@@ -932,72 +916,61 @@
932
916
  15
933
917
  ]
934
918
  }
935
- ],
936
- "description": "Select zone to hidde in HomeKit app, if present.",
937
- "required": true
919
+ ]
938
920
  },
939
921
  "temperatureSensor": {
940
922
  "title": "Temperature Sensor Room",
941
923
  "type": "boolean",
942
924
  "default": false,
943
- "description": "This enable extra temperature sensor to use with automations in HomeKit app.",
944
- "required": false
925
+ "description": "This enable extra temperature sensor to use with automations in HomeKit app."
945
926
  },
946
927
  "temperatureSensorFlow": {
947
928
  "title": "Temperature Sensor Flow",
948
929
  "type": "boolean",
949
930
  "default": false,
950
- "description": "This enable extra Flow temperature sensor to use with automations in HomeKit app.",
951
- "required": false
931
+ "description": "This enable extra Flow temperature sensor to use with automations in HomeKit app."
952
932
  },
953
933
  "temperatureSensorReturn": {
954
934
  "title": "Temperature Sensor Return",
955
935
  "type": "boolean",
956
936
  "default": false,
957
- "description": "This enable extra Return temperature sensor to use with automations in HomeKit app.",
958
- "required": false
937
+ "description": "This enable extra Return temperature sensor to use with automations in HomeKit app."
959
938
  },
960
939
  "temperatureSensorFlowZone1": {
961
940
  "title": "Temperature Sensor Flow Zone 1",
962
941
  "type": "boolean",
963
942
  "default": false,
964
- "description": "This enable extra Flow Zone 1 temperature sensor to use with automations in HomeKit app.",
965
- "required": false
943
+ "description": "This enable extra Flow Zone 1 temperature sensor to use with automations in HomeKit app."
966
944
  },
967
945
  "temperatureSensorReturnZone1": {
968
946
  "title": "Temperature Sensor Return Zone 1",
969
947
  "type": "boolean",
970
948
  "default": false,
971
- "description": "This enable extra Return Zone 1 temperature sensor to use with automations in HomeKit app.",
972
- "required": false
949
+ "description": "This enable extra Return Zone 1 temperature sensor to use with automations in HomeKit app."
973
950
  },
974
951
  "temperatureSensorFlowWaterTank": {
975
952
  "title": "Temperature Sensor Flow Water Tank",
976
953
  "type": "boolean",
977
954
  "default": false,
978
- "description": "This enable extra Flow Water Tank temperature sensor to use with automations in HomeKit app.",
979
- "required": false
955
+ "description": "This enable extra Flow Water Tank temperature sensor to use with automations in HomeKit app."
980
956
  },
981
957
  "temperatureSensorReturnWaterTank": {
982
958
  "title": "Temperature Sensor Return Water Tank",
983
959
  "type": "boolean",
984
960
  "default": false,
985
- "description": "This enable extra Return Water Tank temperature sensor to use with automations in HomeKit app.",
986
- "required": false
961
+ "description": "This enable extra Return Water Tank temperature sensor to use with automations in HomeKit app."
987
962
  },
988
963
  "temperatureSensorFlowZone2": {
989
964
  "title": "Temperature Sensor Flow Zone 2",
990
965
  "type": "boolean",
991
966
  "default": false,
992
- "description": "This enable extra Flow Zone 2 temperature sensor to use with automations in HomeKit app.",
993
- "required": false
967
+ "description": "This enable extra Flow Zone 2 temperature sensor to use with automations in HomeKit app."
994
968
  },
995
969
  "temperatureSensorReturnZone2": {
996
970
  "title": "Temperature Sensor Return Zone 2",
997
971
  "type": "boolean",
998
972
  "default": false,
999
- "description": "This enable extra Return Zone 2 temperature sensor to use with automations in HomeKit app.",
1000
- "required": false
973
+ "description": "This enable extra Return Zone 2 temperature sensor to use with automations in HomeKit app."
1001
974
  },
1002
975
  "refreshInterval": {
1003
976
  "title": "Refresh Interval",
@@ -1005,8 +978,7 @@
1005
978
  "default": 5,
1006
979
  "minimum": 1,
1007
980
  "maximum": 60,
1008
- "description": "Set the background device state refresh time in seconds.",
1009
- "required": false
981
+ "description": "Set the background device state refresh time in seconds."
1010
982
  },
1011
983
  "presets": {
1012
984
  "title": "Presets",
@@ -1016,15 +988,7 @@
1016
988
  "properties": {
1017
989
  "id": {
1018
990
  "title": "ID",
1019
- "type": "integer",
1020
- "required": false
1021
- },
1022
- "name": {
1023
- "title": "Name",
1024
- "type": "string",
1025
- "placeholder": "Preset name",
1026
- "description": "Your own name displayed in Homebridge/HomeKit app.",
1027
- "required": false
991
+ "type": "integer"
1028
992
  },
1029
993
  "displayType": {
1030
994
  "title": "Type",
@@ -1032,6 +996,7 @@
1032
996
  "minimum": 0,
1033
997
  "maximum": 5,
1034
998
  "default": 0,
999
+ "description": "Select the characteristic type to be displayed in HomeKit app.",
1035
1000
  "oneOf": [
1036
1001
  {
1037
1002
  "title": "None/Disabled",
@@ -1069,18 +1034,24 @@
1069
1034
  5
1070
1035
  ]
1071
1036
  }
1072
- ],
1073
- "description": "Select the characteristic type to be displayed in HomeKit app.",
1074
- "required": true
1037
+ ]
1038
+ },
1039
+ "name": {
1040
+ "title": "Name",
1041
+ "type": "string",
1042
+ "placeholder": "Preset name",
1043
+ "description": "Your own name displayed in Homebridge/HomeKit app."
1075
1044
  },
1076
1045
  "namePrefix": {
1077
1046
  "title": "Prefix",
1078
1047
  "type": "boolean",
1079
1048
  "default": false,
1080
- "description": "Enable/disable the accessory name as a prefix for button/sensor name.",
1081
- "required": false
1049
+ "description": "Enable/disable the accessory name as a prefix for button/sensor name."
1082
1050
  }
1083
- }
1051
+ },
1052
+ "required": [
1053
+ "displayType"
1054
+ ]
1084
1055
  }
1085
1056
  },
1086
1057
  "buttonsSensors": {
@@ -1089,19 +1060,57 @@
1089
1060
  "items": {
1090
1061
  "type": "object",
1091
1062
  "properties": {
1092
- "name": {
1093
- "title": "Name",
1094
- "type": "string",
1095
- "placeholder": "Button name",
1096
- "description": "Your own name displayed in Homebridge/HomeKit app.",
1097
- "required": false
1063
+ "displayType": {
1064
+ "title": "Type",
1065
+ "type": "integer",
1066
+ "minimum": 0,
1067
+ "maximum": 5,
1068
+ "default": 0,
1069
+ "description": "Select the characteristic type to be displayed in HomeKit app.",
1070
+ "oneOf": [
1071
+ {
1072
+ "title": "None/Disabled",
1073
+ "enum": [
1074
+ 0
1075
+ ]
1076
+ },
1077
+ {
1078
+ "title": "Outlet",
1079
+ "enum": [
1080
+ 1
1081
+ ]
1082
+ },
1083
+ {
1084
+ "title": "Switch",
1085
+ "enum": [
1086
+ 2
1087
+ ]
1088
+ },
1089
+ {
1090
+ "title": "Motion Sensor",
1091
+ "enum": [
1092
+ 3
1093
+ ]
1094
+ },
1095
+ {
1096
+ "title": "Occupancy Sensor",
1097
+ "enum": [
1098
+ 4
1099
+ ]
1100
+ },
1101
+ {
1102
+ "title": "Contact Sensor",
1103
+ "enum": [
1104
+ 5
1105
+ ]
1106
+ }
1107
+ ]
1098
1108
  },
1099
1109
  "mode": {
1100
1110
  "title": "Mode",
1101
1111
  "type": "integer",
1102
1112
  "minimum": 0,
1103
1113
  "maximum": 70,
1104
- "default": 0,
1105
1114
  "description": "Select the function.",
1106
1115
  "oneOf": [
1107
1116
  {
@@ -1236,67 +1245,31 @@
1236
1245
  70
1237
1246
  ]
1238
1247
  }
1239
- ],
1240
- "required": true
1248
+ ]
1241
1249
  },
1242
- "displayType": {
1243
- "title": "Type",
1244
- "type": "integer",
1245
- "minimum": 0,
1246
- "maximum": 5,
1247
- "default": 0,
1248
- "oneOf": [
1249
- {
1250
- "title": "None/Disabled",
1251
- "enum": [
1252
- 0
1253
- ]
1254
- },
1255
- {
1256
- "title": "Outlet",
1257
- "enum": [
1258
- 1
1259
- ]
1260
- },
1261
- {
1262
- "title": "Switch",
1263
- "enum": [
1264
- 2
1265
- ]
1266
- },
1267
- {
1268
- "title": "Motion Sensor",
1269
- "enum": [
1270
- 3
1271
- ]
1272
- },
1273
- {
1274
- "title": "Occupancy Sensor",
1275
- "enum": [
1276
- 4
1277
- ]
1278
- },
1279
- {
1280
- "title": "Contact Sensor",
1281
- "enum": [
1282
- 5
1283
- ]
1284
- }
1285
- ],
1286
- "description": "Select the characteristic type to be displayed in HomeKit app.",
1287
- "required": true
1250
+ "name": {
1251
+ "title": "Name",
1252
+ "type": "string",
1253
+ "placeholder": "Button name",
1254
+ "description": "Your own name displayed in Homebridge/HomeKit app."
1288
1255
  },
1289
1256
  "namePrefix": {
1290
1257
  "title": "Prefix",
1291
1258
  "type": "boolean",
1292
1259
  "default": false,
1293
- "description": "Enable/disable the accessory name as a prefix for button/sensor name.",
1294
- "required": false
1260
+ "description": "Enable/disable the accessory name as a prefix for button/sensor name."
1295
1261
  }
1296
- }
1262
+ },
1263
+ "required": [
1264
+ "displayType"
1265
+ ]
1297
1266
  }
1298
1267
  }
1299
- }
1268
+ },
1269
+ "required": [
1270
+ "displayMode",
1271
+ "hideZone"
1272
+ ]
1300
1273
  },
1301
1274
  "condition": {
1302
1275
  "functionBody": "const devices = model.accounts[arrayIndices]?.atwDevices || []; return devices.length > 0 && devices.every(device => device.id != null);"
@@ -1312,28 +1285,24 @@
1312
1285
  "title": "ID",
1313
1286
  "type": "integer",
1314
1287
  "default": 0,
1315
- "required": false,
1316
1288
  "readonly": true
1317
1289
  },
1318
1290
  "type": {
1319
1291
  "title": "Type",
1320
1292
  "type": "integer",
1321
1293
  "default": 3,
1322
- "required": false,
1323
1294
  "readonly": true
1324
1295
  },
1325
1296
  "typeString": {
1326
1297
  "title": "Type",
1327
1298
  "type": "string",
1328
1299
  "default": "Ventilation",
1329
- "required": false,
1330
1300
  "readonly": true
1331
1301
  },
1332
1302
  "name": {
1333
1303
  "title": "Name",
1334
1304
  "type": "string",
1335
- "default": "Ventilation",
1336
- "required": false
1305
+ "default": "Ventilation"
1337
1306
  },
1338
1307
  "displayMode": {
1339
1308
  "title": "Control",
@@ -1341,6 +1310,7 @@
1341
1310
  "minimum": 0,
1342
1311
  "maximum": 2,
1343
1312
  "default": 1,
1313
+ "description": "Select accessory control type displayed in HomeKit app.",
1344
1314
  "oneOf": [
1345
1315
  {
1346
1316
  "title": "None/Disabled",
@@ -1360,30 +1330,25 @@
1360
1330
  2
1361
1331
  ]
1362
1332
  }
1363
- ],
1364
- "description": "Select accessory control type displayed in HomeKit app.",
1365
- "required": true
1333
+ ]
1366
1334
  },
1367
1335
  "temperatureSensor": {
1368
1336
  "title": "Temperature Sensor Room",
1369
1337
  "type": "boolean",
1370
1338
  "default": false,
1371
- "description": "This enable extra temperature sensor to use with automations in HomeKit app.",
1372
- "required": false
1339
+ "description": "This enable extra temperature sensor to use with automations in HomeKit app."
1373
1340
  },
1374
1341
  "temperatureSensorOutdoor": {
1375
1342
  "title": "Temperature Sensor Outdoor",
1376
1343
  "type": "boolean",
1377
1344
  "default": false,
1378
- "description": "This enable extra outdoor temperature sensor to use with automations in HomeKit app.",
1379
- "required": false
1345
+ "description": "This enable extra outdoor temperature sensor to use with automations in HomeKit app."
1380
1346
  },
1381
1347
  "temperatureSensorSupply": {
1382
1348
  "title": "Temperature Sensor Supply",
1383
1349
  "type": "boolean",
1384
1350
  "default": false,
1385
- "description": "This enable extra supply temperature sensor to use with automations in HomeKit app.",
1386
- "required": false
1351
+ "description": "This enable extra supply temperature sensor to use with automations in HomeKit app."
1387
1352
  },
1388
1353
  "refreshInterval": {
1389
1354
  "title": "Refresh Interval",
@@ -1391,8 +1356,7 @@
1391
1356
  "default": 5,
1392
1357
  "minimum": 1,
1393
1358
  "maximum": 60,
1394
- "description": "Set the background device state refresh time in seconds.",
1395
- "required": false
1359
+ "description": "Set the background device state refresh time in seconds."
1396
1360
  },
1397
1361
  "presets": {
1398
1362
  "title": "Presets",
@@ -1403,22 +1367,15 @@
1403
1367
  "id": {
1404
1368
  "title": "ID",
1405
1369
  "type": "integer",
1406
- "required": false,
1407
1370
  "readonly": true
1408
1371
  },
1409
- "name": {
1410
- "title": "Name",
1411
- "type": "string",
1412
- "placeholder": "Preset name",
1413
- "description": "Your own name displayed in Homebridge/HomeKit app.",
1414
- "required": false
1415
- },
1416
1372
  "displayType": {
1417
1373
  "title": "Type",
1418
1374
  "type": "integer",
1419
1375
  "minimum": 0,
1420
1376
  "maximum": 5,
1421
1377
  "default": 0,
1378
+ "description": "Select the characteristic type to be displayed in HomeKit app.",
1422
1379
  "oneOf": [
1423
1380
  {
1424
1381
  "title": "None/Disabled",
@@ -1456,18 +1413,24 @@
1456
1413
  5
1457
1414
  ]
1458
1415
  }
1459
- ],
1460
- "description": "Select the characteristic type to be displayed in HomeKit app.",
1461
- "required": true
1416
+ ]
1417
+ },
1418
+ "name": {
1419
+ "title": "Name",
1420
+ "type": "string",
1421
+ "placeholder": "Preset name",
1422
+ "description": "Your own name displayed in Homebridge/HomeKit app."
1462
1423
  },
1463
1424
  "namePrefix": {
1464
1425
  "title": "Prefix",
1465
1426
  "type": "boolean",
1466
1427
  "default": false,
1467
- "description": "Enable/disable the accessory name as a prefix for button/sensor name.",
1468
- "required": false
1428
+ "description": "Enable/disable the accessory name as a prefix for button/sensor name."
1469
1429
  }
1470
- }
1430
+ },
1431
+ "required": [
1432
+ "displayType"
1433
+ ]
1471
1434
  }
1472
1435
  },
1473
1436
  "buttonsSensors": {
@@ -1476,19 +1439,57 @@
1476
1439
  "items": {
1477
1440
  "type": "object",
1478
1441
  "properties": {
1479
- "name": {
1480
- "title": "Name",
1481
- "type": "string",
1482
- "placeholder": "Button name",
1483
- "description": "Your own name displayed in Homebridge/HomeKit app.",
1484
- "required": false
1442
+ "displayType": {
1443
+ "title": "Type",
1444
+ "type": "integer",
1445
+ "minimum": 0,
1446
+ "maximum": 5,
1447
+ "default": 0,
1448
+ "description": "Select the characteristic type to be displayed in HomeKit app.",
1449
+ "oneOf": [
1450
+ {
1451
+ "title": "None/Disabled",
1452
+ "enum": [
1453
+ 0
1454
+ ]
1455
+ },
1456
+ {
1457
+ "title": "Outlet",
1458
+ "enum": [
1459
+ 1
1460
+ ]
1461
+ },
1462
+ {
1463
+ "title": "Switch",
1464
+ "enum": [
1465
+ 2
1466
+ ]
1467
+ },
1468
+ {
1469
+ "title": "Motion Sensor",
1470
+ "enum": [
1471
+ 3
1472
+ ]
1473
+ },
1474
+ {
1475
+ "title": "Occupancy Sensor",
1476
+ "enum": [
1477
+ 4
1478
+ ]
1479
+ },
1480
+ {
1481
+ "title": "Contact Sensor",
1482
+ "enum": [
1483
+ 5
1484
+ ]
1485
+ }
1486
+ ]
1485
1487
  },
1486
1488
  "mode": {
1487
1489
  "title": "Mode",
1488
1490
  "type": "integer",
1489
1491
  "minimum": 0,
1490
1492
  "maximum": 18,
1491
- "default": 0,
1492
1493
  "description": "Select the function.",
1493
1494
  "oneOf": [
1494
1495
  {
@@ -1575,67 +1576,30 @@
1575
1576
  18
1576
1577
  ]
1577
1578
  }
1578
- ],
1579
- "required": true
1579
+ ]
1580
1580
  },
1581
- "displayType": {
1582
- "title": "Type",
1583
- "type": "integer",
1584
- "minimum": 0,
1585
- "maximum": 5,
1586
- "default": 0,
1587
- "oneOf": [
1588
- {
1589
- "title": "None/Disabled",
1590
- "enum": [
1591
- 0
1592
- ]
1593
- },
1594
- {
1595
- "title": "Outlet",
1596
- "enum": [
1597
- 1
1598
- ]
1599
- },
1600
- {
1601
- "title": "Switch",
1602
- "enum": [
1603
- 2
1604
- ]
1605
- },
1606
- {
1607
- "title": "Motion Sensor",
1608
- "enum": [
1609
- 3
1610
- ]
1611
- },
1612
- {
1613
- "title": "Occupancy Sensor",
1614
- "enum": [
1615
- 4
1616
- ]
1617
- },
1618
- {
1619
- "title": "Contact Sensor",
1620
- "enum": [
1621
- 5
1622
- ]
1623
- }
1624
- ],
1625
- "description": "Select the characteristic type to be displayed in HomeKit app.",
1626
- "required": true
1581
+ "name": {
1582
+ "title": "Name",
1583
+ "type": "string",
1584
+ "placeholder": "Button name",
1585
+ "description": "Your own name displayed in Homebridge/HomeKit app."
1627
1586
  },
1628
1587
  "namePrefix": {
1629
1588
  "title": "Prefix",
1630
1589
  "type": "boolean",
1631
1590
  "default": false,
1632
- "description": "Enable/disable the accessory name as a prefix for button/sensor name.",
1633
- "required": false
1591
+ "description": "Enable/disable the accessory name as a prefix for button/sensor name."
1634
1592
  }
1635
- }
1593
+ },
1594
+ "required": [
1595
+ "displayMode"
1596
+ ]
1636
1597
  }
1637
1598
  }
1638
- }
1599
+ },
1600
+ "required": [
1601
+ "displayMode"
1602
+ ]
1639
1603
  },
1640
1604
  "condition": {
1641
1605
  "functionBody": "const devices = model.accounts[arrayIndices]?.ervDevices || []; return devices.length > 0 && devices.every(device => device.id != null);"
@@ -1647,45 +1611,44 @@
1647
1611
  "default": 120,
1648
1612
  "minimum": 1,
1649
1613
  "maximum": 600,
1650
- "description": "Set the background account data refresh time in seconds.",
1651
- "required": false
1652
- },
1653
- "disableLogDeviceInfo": {
1654
- "title": "Disable Log Device Info",
1655
- "type": "boolean",
1656
- "default": false,
1657
- "description": "This disable logging device info by every connections device to the network.",
1658
- "required": false
1659
- },
1660
- "disableLogInfo": {
1661
- "title": "Disable Log Info",
1662
- "type": "boolean",
1663
- "default": false,
1664
- "required": false
1665
- },
1666
- "disableLogSuccess": {
1667
- "title": "Disable Log Success",
1668
- "type": "boolean",
1669
- "default": false,
1670
- "required": false
1614
+ "description": "Set the background account data refresh time in seconds."
1671
1615
  },
1672
- "disableLogWarn": {
1673
- "title": "Disable Log Warn",
1674
- "type": "boolean",
1675
- "default": false,
1676
- "required": false
1677
- },
1678
- "disableLogError": {
1679
- "title": "Disable Log Error",
1680
- "type": "boolean",
1681
- "default": false,
1682
- "required": false
1683
- },
1684
- "enableDebugMode": {
1685
- "title": "Enable Log Debug",
1686
- "type": "boolean",
1687
- "default": false,
1688
- "required": false
1616
+ "log": {
1617
+ "title": "Log",
1618
+ "type": "object",
1619
+ "properties": {
1620
+ "deviceInfo": {
1621
+ "title": "Device Info",
1622
+ "type": "boolean",
1623
+ "default": true,
1624
+ "description": "This enable logging device info by every connections device to the network."
1625
+ },
1626
+ "success": {
1627
+ "title": "Log Success",
1628
+ "type": "boolean",
1629
+ "default": true
1630
+ },
1631
+ "info": {
1632
+ "title": "Log Info",
1633
+ "type": "boolean",
1634
+ "default": false
1635
+ },
1636
+ "warn": {
1637
+ "title": "Log Warn",
1638
+ "type": "boolean",
1639
+ "default": true
1640
+ },
1641
+ "error": {
1642
+ "title": "Log Error",
1643
+ "type": "boolean",
1644
+ "default": true
1645
+ },
1646
+ "debug": {
1647
+ "title": "Log Debug",
1648
+ "type": "boolean",
1649
+ "default": false
1650
+ }
1651
+ }
1689
1652
  },
1690
1653
  "restFul": {
1691
1654
  "title": "RESTFul",
@@ -1695,8 +1658,7 @@
1695
1658
  "title": "Enable",
1696
1659
  "type": "boolean",
1697
1660
  "default": false,
1698
- "description": "This enable RESTful server.",
1699
- "required": false
1661
+ "description": "This enable RESTful server."
1700
1662
  },
1701
1663
  "debug": {
1702
1664
  "title": "Debug",
@@ -1705,8 +1667,7 @@
1705
1667
  "description": "This enable debug mode for RESTFul.",
1706
1668
  "condition": {
1707
1669
  "functionBody": "return model.accounts[arrayIndices].restFul.enable === true;"
1708
- },
1709
- "required": false
1670
+ }
1710
1671
  }
1711
1672
  }
1712
1673
  },
@@ -1720,16 +1681,6 @@
1720
1681
  "default": false,
1721
1682
  "description": "This enable MQTT client."
1722
1683
  },
1723
- "debug": {
1724
- "title": "Debug",
1725
- "type": "boolean",
1726
- "default": false,
1727
- "description": "This enable debug mode for MQTT.",
1728
- "condition": {
1729
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true;"
1730
- },
1731
- "required": false
1732
- },
1733
1684
  "host": {
1734
1685
  "title": "IP/Hostname",
1735
1686
  "type": "string",
@@ -1737,9 +1688,8 @@
1737
1688
  "format": "hostname",
1738
1689
  "description": "Here set the IP/Hostname of MQTT Broker.",
1739
1690
  "condition": {
1740
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true;"
1741
- },
1742
- "required": false
1691
+ "functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
1692
+ }
1743
1693
  },
1744
1694
  "port": {
1745
1695
  "title": "Port",
@@ -1747,9 +1697,8 @@
1747
1697
  "placeholder": 1883,
1748
1698
  "description": "Here set the port of MQTT Broker.",
1749
1699
  "condition": {
1750
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true;"
1751
- },
1752
- "required": false
1700
+ "functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
1701
+ }
1753
1702
  },
1754
1703
  "clientId": {
1755
1704
  "title": "Client ID",
@@ -1757,54 +1706,70 @@
1757
1706
  "placeholder": "client id",
1758
1707
  "description": "Here optional set the Client ID of MQTT Broker.",
1759
1708
  "condition": {
1760
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true"
1761
- },
1762
- "required": false
1709
+ "functionBody": "return model.devices[arrayIndices].mqtt.enable === true"
1710
+ }
1763
1711
  },
1764
1712
  "prefix": {
1765
1713
  "title": "Prefix",
1766
1714
  "type": "string",
1767
- "placeholder": "home/melcloud",
1715
+ "placeholder": "home",
1768
1716
  "description": "Here set the prefix.",
1769
1717
  "condition": {
1770
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true;"
1771
- },
1772
- "required": false
1718
+ "functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
1719
+ }
1773
1720
  },
1774
- "auth": {
1775
- "title": "Authorization",
1721
+ "debug": {
1722
+ "title": "Debug",
1776
1723
  "type": "boolean",
1777
1724
  "default": false,
1778
- "description": "This enable authorization for MQTT Broker.",
1725
+ "description": "This enable debug mode for MQTT.",
1779
1726
  "condition": {
1780
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true;"
1781
- },
1782
- "required": false
1727
+ "functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
1728
+ }
1783
1729
  },
1784
- "user": {
1785
- "title": "User",
1786
- "type": "string",
1787
- "placeholder": "user",
1788
- "description": "Here set the user of MQTT Broker.",
1789
- "condition": {
1790
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true && model.accounts[arrayIndices].mqtt.auth === true;"
1730
+ "auth": {
1731
+ "title": "Authorization",
1732
+ "type": "object",
1733
+ "properties": {
1734
+ "enable": {
1735
+ "title": "Enable",
1736
+ "type": "boolean",
1737
+ "default": false,
1738
+ "description": "This enable authorization for MQTT Broker."
1739
+ },
1740
+ "user": {
1741
+ "title": "User",
1742
+ "type": "string",
1743
+ "placeholder": "user",
1744
+ "description": "Here set the user of MQTT Broker.",
1745
+ "condition": {
1746
+ "functionBody": "return model.devices[arrayIndices].mqtt.auth.enable === true;"
1747
+ }
1748
+ },
1749
+ "passwd": {
1750
+ "title": "Password",
1751
+ "type": "string",
1752
+ "placeholder": "password",
1753
+ "description": "Here set the password of MQTT Broker.",
1754
+ "format": "password",
1755
+ "condition": {
1756
+ "functionBody": "return model.devices[arrayIndices].mqtt.auth.enable === true;"
1757
+ }
1758
+ }
1791
1759
  },
1792
- "required": false
1793
- },
1794
- "passwd": {
1795
- "title": "Password",
1796
- "type": "string",
1797
- "placeholder": "password",
1798
- "description": "Here set the password of MQTT Broker.",
1799
- "format": "password",
1800
1760
  "condition": {
1801
- "functionBody": "return model.accounts[arrayIndices].mqtt.enable === true && model.accounts[arrayIndices].mqtt.auth === true;"
1802
- },
1803
- "required": false
1761
+ "functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
1762
+ }
1804
1763
  }
1805
1764
  }
1806
1765
  }
1807
- }
1766
+ },
1767
+ "required": [
1768
+ "name",
1769
+ "user",
1770
+ "passwd",
1771
+ "language"
1772
+ ]
1808
1773
  }
1809
1774
  }
1810
1775
  }
@@ -1860,7 +1825,7 @@
1860
1825
  ]
1861
1826
  },
1862
1827
  {
1863
- "key": "accounts[].ataDevices[]",
1828
+ "key": "accounts[].ataDevices",
1864
1829
  "type": "section",
1865
1830
  "title": "Presets",
1866
1831
  "expandable": true,
@@ -1875,15 +1840,15 @@
1875
1840
  "key": "accounts[].ataDevices[].presets[].id",
1876
1841
  "readonly": true
1877
1842
  },
1878
- "accounts[].ataDevices[].presets[].name",
1879
1843
  "accounts[].ataDevices[].presets[].displayType",
1844
+ "accounts[].ataDevices[].presets[].name",
1880
1845
  "accounts[].ataDevices[].presets[].namePrefix"
1881
1846
  ]
1882
1847
  }
1883
1848
  ]
1884
1849
  },
1885
1850
  {
1886
- "key": "accounts[].ataDevices[]",
1851
+ "key": "accounts[].ataDevices",
1887
1852
  "type": "section",
1888
1853
  "title": "Temperature Sensors",
1889
1854
  "expandable": true,
@@ -1894,7 +1859,7 @@
1894
1859
  ]
1895
1860
  },
1896
1861
  {
1897
- "key": "accounts[].ataDevices[]",
1862
+ "key": "accounts[].ataDevices",
1898
1863
  "type": "section",
1899
1864
  "title": "Buttons / Sensors",
1900
1865
  "expandable": true,
@@ -1905,9 +1870,9 @@
1905
1870
  "type": "tabarray",
1906
1871
  "title": "{{ value.name || 'button/sensor' }}",
1907
1872
  "items": [
1908
- "accounts[].ataDevices[].buttonsSensors[].name",
1909
- "accounts[].ataDevices[].buttonsSensors[].mode",
1910
1873
  "accounts[].ataDevices[].buttonsSensors[].displayType",
1874
+ "accounts[].ataDevices[].buttonsSensors[].mode",
1875
+ "accounts[].ataDevices[].buttonsSensors[].name",
1911
1876
  "accounts[].ataDevices[].buttonsSensors[].namePrefix"
1912
1877
  ]
1913
1878
  }
@@ -1960,7 +1925,7 @@
1960
1925
  ]
1961
1926
  },
1962
1927
  {
1963
- "key": "accounts[].atwDevices[]",
1928
+ "key": "accounts[].atwDevices",
1964
1929
  "type": "section",
1965
1930
  "title": "Presets",
1966
1931
  "expandable": true,
@@ -1975,15 +1940,15 @@
1975
1940
  "key": "accounts[].atwDevices[].presets[].id",
1976
1941
  "readonly": true
1977
1942
  },
1978
- "accounts[].atwDevices[].presets[].name",
1979
1943
  "accounts[].atwDevices[].presets[].displayType",
1944
+ "accounts[].atwDevices[].presets[].name",
1980
1945
  "accounts[].atwDevices[].presets[].namePrefix"
1981
1946
  ]
1982
1947
  }
1983
1948
  ]
1984
1949
  },
1985
1950
  {
1986
- "key": "accounts[].atwDevices[]",
1951
+ "key": "accounts[].atwDevices",
1987
1952
  "type": "section",
1988
1953
  "title": "Temperature Sensors",
1989
1954
  "expandable": true,
@@ -2001,7 +1966,7 @@
2001
1966
  ]
2002
1967
  },
2003
1968
  {
2004
- "key": "accounts[].atwDevices[]",
1969
+ "key": "accounts[].atwDevices",
2005
1970
  "type": "section",
2006
1971
  "title": "Buttons / Sensors",
2007
1972
  "expandable": true,
@@ -2012,9 +1977,9 @@
2012
1977
  "type": "tabarray",
2013
1978
  "title": "{{ value.name || 'button/sensor' }}",
2014
1979
  "items": [
2015
- "accounts[].atwDevices[].buttonsSensors[].name",
2016
- "accounts[].atwDevices[].buttonsSensors[].mode",
2017
1980
  "accounts[].atwDevices[].buttonsSensors[].displayType",
1981
+ "accounts[].atwDevices[].buttonsSensors[].mode",
1982
+ "accounts[].atwDevices[].buttonsSensors[].name",
2018
1983
  "accounts[].atwDevices[].buttonsSensors[].namePrefix"
2019
1984
  ]
2020
1985
  }
@@ -2066,7 +2031,7 @@
2066
2031
  ]
2067
2032
  },
2068
2033
  {
2069
- "key": "accounts[].ervDevices[]",
2034
+ "key": "accounts[].ervDevices",
2070
2035
  "type": "section",
2071
2036
  "title": "Presets",
2072
2037
  "expandable": true,
@@ -2081,15 +2046,15 @@
2081
2046
  "key": "accounts[].ervDevices[].presets[].id",
2082
2047
  "readonly": true
2083
2048
  },
2084
- "accounts[].ervDevices[].presets[].name",
2085
2049
  "accounts[].ervDevices[].presets[].displayType",
2050
+ "accounts[].ervDevices[].presets[].name",
2086
2051
  "accounts[].ervDevices[].presets[].namePrefix"
2087
2052
  ]
2088
2053
  }
2089
2054
  ]
2090
2055
  },
2091
2056
  {
2092
- "key": "accounts[].ervDevices[]",
2057
+ "key": "accounts[].ervDevices",
2093
2058
  "type": "section",
2094
2059
  "title": "Temperature Sensors",
2095
2060
  "expandable": true,
@@ -2101,7 +2066,7 @@
2101
2066
  ]
2102
2067
  },
2103
2068
  {
2104
- "key": "accounts[].ervDevices[]",
2069
+ "key": "accounts[].ervDevices",
2105
2070
  "type": "section",
2106
2071
  "title": "Buttons / Sensors",
2107
2072
  "expandable": true,
@@ -2112,9 +2077,9 @@
2112
2077
  "type": "tabarray",
2113
2078
  "title": "{{ value.name || 'button/sensor' }}",
2114
2079
  "items": [
2115
- "accounts[].ervDevices[].buttonsSensors[].name",
2116
- "accounts[].ervDevices[].buttonsSensors[].mode",
2117
2080
  "accounts[].ervDevices[].buttonsSensors[].displayType",
2081
+ "accounts[].ervDevices[].buttonsSensors[].mode",
2082
+ "accounts[].ervDevices[].buttonsSensors[].name",
2118
2083
  "accounts[].ervDevices[].buttonsSensors[].namePrefix"
2119
2084
  ]
2120
2085
  }
@@ -2158,15 +2123,15 @@
2158
2123
  ]
2159
2124
  },
2160
2125
  {
2161
- "key": "accounts[]",
2126
+ "key": "devices[].log",
2162
2127
  "title": "Log",
2163
2128
  "items": [
2164
- "accounts[].disableLogDeviceInfo",
2165
- "accounts[].disableLogInfo",
2166
- "accounts[].disableLogSuccess",
2167
- "accounts[].disableLogWarn",
2168
- "accounts[].disableLogError",
2169
- "accounts[].enableDebugMode"
2129
+ "devices[].log.deviceInfo",
2130
+ "devices[].log.success",
2131
+ "devices[].log.info",
2132
+ "devices[].log.warn",
2133
+ "devices[].log.error",
2134
+ "devices[].log.debug"
2170
2135
  ]
2171
2136
  },
2172
2137
  {
@@ -2187,20 +2152,26 @@
2187
2152
  ]
2188
2153
  },
2189
2154
  {
2190
- "key": "accounts[].mqtt",
2155
+ "key": "devices[].mqtt",
2191
2156
  "title": "MQTT",
2192
2157
  "items": [
2193
- "accounts[].mqtt.enable",
2194
- "accounts[].mqtt.debug",
2195
- "accounts[].mqtt.host",
2196
- "accounts[].mqtt.port",
2197
- "accounts[].mqtt.clientId",
2198
- "accounts[].mqtt.prefix",
2199
- "accounts[].mqtt.auth",
2200
- "accounts[].mqtt.user",
2201
- {
2202
- "key": "accounts[].mqtt.passwd",
2203
- "type": "password"
2158
+ "devices[].mqtt.enable",
2159
+ "devices[].mqtt.host",
2160
+ "devices[].mqtt.port",
2161
+ "devices[].mqtt.clientId",
2162
+ "devices[].mqtt.prefix",
2163
+ "devices[].mqtt.debug",
2164
+ {
2165
+ "key": "devices[].mqtt.auth",
2166
+ "title": "Authorization",
2167
+ "items": [
2168
+ "devices[].mqtt.auth.enable",
2169
+ "devices[].mqtt.auth.user",
2170
+ {
2171
+ "key": "devices[].mqtt.auth.passwd",
2172
+ "type": "password"
2173
+ }
2174
+ ]
2204
2175
  }
2205
2176
  ]
2206
2177
  }