iobroker-ucl 1.2.90 → 1.2.92

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.
@@ -362,27 +362,6 @@ var HomematicDimmer = /** @class */ (function (_super) {
362
362
  _this.turnOffExitHouseWinter = turnOffExitHouseWinter;
363
363
  _this.turnOnEnterHouseSummer = turnOnEnterHouseSummer;
364
364
  _this.turnOnEnterHouseWinter = turnOnEnterHouseWinter;
365
- /* adapter.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
366
- adapter.log("Inside HomematicDimmer, param adapter: " + adapter);
367
- adapter.log("Inside HomematicDimmer, param id: " + id);
368
- adapter.log("Inside HomematicDimmer, param baseState: " + baseState);
369
- adapter.log("Inside HomematicDimmer, param etage: " + etage);
370
- adapter.log("Inside HomematicDimmer, param raum: " + raum);
371
- adapter.log("Inside HomematicDimmer, param device: " + device);
372
- adapter.log("Inside HomematicDimmer, param alexaSmartNamesForOn: " + alexaSmartNamesForOn);
373
- adapter.log("Inside HomematicDimmer, param alexaActionNamesForOn: " + alexaActionNamesForOn);
374
- adapter.log("Inside HomematicDimmer, param alexaLevelSchemeForOn: " + alexaLevelSchemeForOn);
375
- adapter.log("Inside HomematicDimmer, param alexaSmartNamesForOff: " + alexaSmartNamesForOff);
376
- adapter.log("Inside HomematicDimmer, param alexaActionNamesForOff: " + alexaActionNamesForOff);
377
- adapter.log("Inside HomematicDimmer, param levelSchemes: " + levelSchemes);
378
- adapter.log("Inside HomematicDimmer, param tasterBooleanOn: " + tasterBooleanOn);
379
- adapter.log("Inside HomematicDimmer, param tasterBooleanOff: " + tasterBooleanOff);
380
- adapter.log("Inside HomematicDimmer, param nachtbeleuchtung: " + nachtbeleuchtung);
381
- adapter.log("Inside HomematicDimmer, param turnOffExitHouseSummer: " + turnOffExitHouseSummer);
382
- adapter.log("Inside HomematicDimmer, param turnOffExitHouseWinter: " + turnOffExitHouseWinter);
383
- adapter.log("Inside HomematicDimmer, param turnOnEnterHouseSummer: " + turnOnEnterHouseSummer);
384
- adapter.log("Inside HomematicDimmer, param turnOnEnterHouseWinter: " + turnOnEnterHouseWinter);
385
- adapter.log("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")*/
386
365
  _this.levelSchemes.forEach(function (colorscheme) {
387
366
  colorscheme.setDevice(_this);
388
367
  if (colorscheme.getAlexaName() != null) {
@@ -405,27 +405,6 @@ export class HomematicDimmer extends AbstractHomematic {
405
405
  this.turnOffExitHouseWinter = turnOffExitHouseWinter;
406
406
  this.turnOnEnterHouseSummer = turnOnEnterHouseSummer;
407
407
  this.turnOnEnterHouseWinter = turnOnEnterHouseWinter;
408
- /* adapter.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
409
- adapter.log("Inside HomematicDimmer, param adapter: " + adapter);
410
- adapter.log("Inside HomematicDimmer, param id: " + id);
411
- adapter.log("Inside HomematicDimmer, param baseState: " + baseState);
412
- adapter.log("Inside HomematicDimmer, param etage: " + etage);
413
- adapter.log("Inside HomematicDimmer, param raum: " + raum);
414
- adapter.log("Inside HomematicDimmer, param device: " + device);
415
- adapter.log("Inside HomematicDimmer, param alexaSmartNamesForOn: " + alexaSmartNamesForOn);
416
- adapter.log("Inside HomematicDimmer, param alexaActionNamesForOn: " + alexaActionNamesForOn);
417
- adapter.log("Inside HomematicDimmer, param alexaLevelSchemeForOn: " + alexaLevelSchemeForOn);
418
- adapter.log("Inside HomematicDimmer, param alexaSmartNamesForOff: " + alexaSmartNamesForOff);
419
- adapter.log("Inside HomematicDimmer, param alexaActionNamesForOff: " + alexaActionNamesForOff);
420
- adapter.log("Inside HomematicDimmer, param levelSchemes: " + levelSchemes);
421
- adapter.log("Inside HomematicDimmer, param tasterBooleanOn: " + tasterBooleanOn);
422
- adapter.log("Inside HomematicDimmer, param tasterBooleanOff: " + tasterBooleanOff);
423
- adapter.log("Inside HomematicDimmer, param nachtbeleuchtung: " + nachtbeleuchtung);
424
- adapter.log("Inside HomematicDimmer, param turnOffExitHouseSummer: " + turnOffExitHouseSummer);
425
- adapter.log("Inside HomematicDimmer, param turnOffExitHouseWinter: " + turnOffExitHouseWinter);
426
- adapter.log("Inside HomematicDimmer, param turnOnEnterHouseSummer: " + turnOnEnterHouseSummer);
427
- adapter.log("Inside HomematicDimmer, param turnOnEnterHouseWinter: " + turnOnEnterHouseWinter);
428
- adapter.log("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")*/
429
408
 
430
409
  this.levelSchemes.forEach(colorscheme => {
431
410
  colorscheme.setDevice(this);
@@ -312,6 +312,7 @@ function loadHomematicRollladen(adapter) {
312
312
  ));
313
313
  }
314
314
  });
315
+ cacheRollladenArray = sortArray(cacheRollladenArray);
315
316
  return cacheRollladenArray;
316
317
  }
317
318
  exports.loadHomematicRollladen = loadHomematicRollladen;
@@ -334,6 +335,7 @@ function loadHomematicWandthermostate(adapter) {
334
335
  ));
335
336
  }
336
337
  });
338
+ cacheWandthermostateArray = sortArray(cacheWandthermostateArray);
337
339
  return cacheWandthermostateArray;
338
340
  }
339
341
  exports.loadHomematicWandthermostate = loadHomematicWandthermostate;
@@ -356,6 +358,7 @@ function loadHomematicPraesenzmelder(adapter) {
356
358
  ));
357
359
  }
358
360
  });
361
+ cachePraesenzmelderArray = sortArray(cachePraesenzmelderArray);
359
362
  return cachePraesenzmelderArray;
360
363
  }
361
364
  exports.loadHomematicPraesenzmelder = loadHomematicPraesenzmelder;
@@ -378,6 +381,7 @@ function loadHomematicWetterstationen(adapter) {
378
381
  ));
379
382
  }
380
383
  });
384
+ cacheWetterstationenArray = sortArray(cacheWetterstationenArray);
381
385
  return cacheWetterstationenArray;
382
386
  }
383
387
  exports.loadHomematicWetterstationen = loadHomematicWetterstationen;
@@ -400,6 +404,7 @@ function loadHomematicDoors(adapter) {
400
404
  ));
401
405
  }
402
406
  });
407
+ cacheDoorsArray = sortArray(cacheDoorsArray);
403
408
  return cacheDoorsArray;
404
409
  }
405
410
  exports.loadHomematicDoors = loadHomematicDoors;
@@ -431,6 +436,7 @@ function loadHomematicWandschalter(adapter) {
431
436
  ));
432
437
  }
433
438
  });
439
+ cacheWandschalterArray = sortArray(cacheWandschalterArray);
434
440
  return cacheWandschalterArray;
435
441
  }
436
442
  exports.loadHomematicWandschalter = loadHomematicWandschalter;
@@ -453,6 +459,7 @@ function loadHomematicFussbodenheizungen(adapter) {
453
459
  ));
454
460
  }
455
461
  });
462
+ cacheFussbodenheizungenArray = sortArray(cacheFussbodenheizungenArray);
456
463
  return cacheFussbodenheizungenArray;
457
464
  }
458
465
  exports.loadHomematicFussbodenheizungen = loadHomematicFussbodenheizungen;
@@ -475,6 +482,7 @@ function loadHomematicWandtaster(adapter) {
475
482
  ));
476
483
  }
477
484
  });
485
+ cacheWandtasterArray = sortArray(cacheWandtasterArray);
478
486
  return cacheWandtasterArray;
479
487
  }
480
488
  exports.loadHomematicWandtaster = loadHomematicWandtaster;
@@ -497,6 +505,7 @@ function loadHomematicAccessPoints(adapter) {
497
505
  ));
498
506
  }
499
507
  });
508
+ cacheAccessPointsArray = sortArray(cacheAccessPointsArray);
500
509
  return cacheAccessPointsArray;
501
510
  }
502
511
  exports.loadHomematicAccessPoints = loadHomematicAccessPoints;
@@ -519,6 +528,7 @@ function loadHomematicTemperatursensoren(adapter) {
519
528
  ));
520
529
  }
521
530
  });
531
+ cacheTemperatursensorenArray = sortArray(cacheTemperatursensorenArray);
522
532
  return cacheTemperatursensorenArray;
523
533
  }
524
534
  exports.loadHomematicTemperatursensoren = loadHomematicTemperatursensoren;
@@ -541,6 +551,7 @@ function loadHomematicRauchmelder(adapter) {
541
551
  ));
542
552
  }
543
553
  });
554
+ cacheRauchmelderArray = sortArray(cacheRauchmelderArray);
544
555
  return cacheRauchmelderArray;
545
556
  }
546
557
  exports.loadHomematicRauchmelder = loadHomematicRauchmelder;
@@ -563,6 +574,7 @@ function loadHomematicFunktschaltaktoren(adapter) {
563
574
  ));
564
575
  }
565
576
  });
577
+ cacheFunkschaltaktorenArray = sortArray(cacheFunkschaltaktorenArray);
566
578
  return cacheFunkschaltaktorenArray;
567
579
  }
568
580
  exports.loadHomematicFunktschaltaktoren = loadHomematicFunktschaltaktoren;
@@ -585,6 +597,7 @@ function loadHomematicWindows(adapter) {
585
597
  ));
586
598
  }
587
599
  });
600
+ cacheWindowsArray = sortArray(cacheWindowsArray);
588
601
  return cacheWindowsArray;
589
602
  }
590
603
  exports.loadHomematicWindows = loadHomematicWindows;
@@ -607,6 +620,7 @@ function loadHomematicSteckdosen(adapter) {
607
620
  ));
608
621
  }
609
622
  });
623
+ cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
610
624
  return cacheSteckdosenArray;
611
625
  }
612
626
  exports.loadHomematicSteckdosen = loadHomematicSteckdosen;
@@ -629,6 +643,7 @@ function loadHomematicHeizkoerper(adapter) {
629
643
  ));
630
644
  }
631
645
  });
646
+ cacheHeizkoerperArray = sortArray(cacheHeizkoerperArray);
632
647
  return cacheHeizkoerperArray;
633
648
  }
634
649
  exports.loadHomematicHeizkoerper = loadHomematicHeizkoerper;
@@ -642,7 +657,6 @@ function loadHomematicDimmer(adapter) {
642
657
  adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
643
658
  var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
644
659
  if (adapter.getState(datenpunktKey).val == deviceHomematicDimmer) {
645
- adapter.log("Inside loadHomematicDimmer");
646
660
  // Einschalt-Scheme:
647
661
  var alexaOnScheme = null;
648
662
  if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv).val == true) {
@@ -715,6 +729,7 @@ function loadHomematicDimmer(adapter) {
715
729
  ));
716
730
  }
717
731
  });
732
+ cacheDimmerArray = sortArray(cacheDimmerArray);
718
733
  return cacheDimmerArray;
719
734
  }
720
735
  exports.loadHomematicDimmer = loadHomematicDimmer;
@@ -723,7 +738,6 @@ function loadHomematicDevicesAll(adapter) {
723
738
  if (homematicAllArray != null) {
724
739
  return homematicAllArray;
725
740
  }
726
- adapter.log("Test");
727
741
  // @ts-ignore
728
742
  homematicAllArray = [];
729
743
  adapter.loadHomematicWandthermostate(adapter).forEach(function (homematic) {
@@ -790,6 +804,7 @@ function loadHomematicDevicesAll(adapter) {
790
804
  // @ts-ignore
791
805
  homematicAllArray.push(homematic);
792
806
  });
807
+ homematicAllArray = sortArray(homematicAllArray);
793
808
  return homematicAllArray;
794
809
  }
795
810
  exports.loadHomematicDevicesAll = loadHomematicDevicesAll;
@@ -802,4 +817,50 @@ function toStringArray(databaseValue) {
802
817
  return databaseValue.split('|');
803
818
  }
804
819
  }
820
+ function sortArray(inputArray) {
821
+ inputArray.sort(function (a, b) {
822
+ var elementA = a;
823
+ var elementB = b;
824
+ var etageA = elementA.getEtage();
825
+ var etageB = elementB.getEtage();
826
+ var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
827
+ if (compareEtage != 0) {
828
+ return compareEtage;
829
+ }
830
+ var typA = elementA.getCategory();
831
+ var typB = elementB.getCategory();
832
+ var compareTyp = typA.localeCompare(typB);
833
+ if (compareTyp != 0) {
834
+ return compareTyp;
835
+ }
836
+ var raumA = elementA.getRaum();
837
+ var raumB = elementB.getRaum();
838
+ var compareRaum = raumA.localeCompare(raumB);
839
+ if (compareRaum != 0) {
840
+ return compareRaum;
841
+ }
842
+ var deviceA = elementA.getDevice();
843
+ var deviceB = elementB.getDevice();
844
+ var compareDevice = deviceA.localeCompare(deviceB);
845
+ if (compareDevice != 0) {
846
+ return compareDevice;
847
+ }
848
+ return 0;
849
+ });
850
+ return inputArray;
851
+ }
852
+ function getEtageSortIndex(etage) {
853
+ if (etage == "OG") {
854
+ return "a";
855
+ }
856
+ else if (etage == "EG") {
857
+ return "b";
858
+ }
859
+ else if (etage == "UG") {
860
+ return "c";
861
+ }
862
+ else {
863
+ return "d";
864
+ }
865
+ }
805
866
  module.exports = { createHomematicDevice: createHomematicDevice, createHomeaticDimmer: createHomeaticDimmer, createHomeaticWandschalter: createHomeaticWandschalter, loadHomematicWandthermostate: loadHomematicWandthermostate, loadHomematicPraesenzmelder: loadHomematicPraesenzmelder, loadHomematicWetterstationen: loadHomematicWetterstationen, loadHomematicDoors: loadHomematicDoors, loadHomematicRollladen: loadHomematicRollladen, loadHomematicWandschalter: loadHomematicWandschalter, loadHomematicFussbodenheizungen: loadHomematicFussbodenheizungen, loadHomematicWandtaster: loadHomematicWandtaster, loadHomematicAccessPoints: loadHomematicAccessPoints, loadHomematicTemperatursensoren: loadHomematicTemperatursensoren, loadHomematicRauchmelder: loadHomematicRauchmelder, loadHomematicFunktschaltaktoren: loadHomematicFunktschaltaktoren, loadHomematicWindows: loadHomematicWindows, loadHomematicSteckdosen: loadHomematicSteckdosen, loadHomematicHeizkoerper: loadHomematicHeizkoerper, loadHomematicDimmer: loadHomematicDimmer, loadHomematicDevicesAll: loadHomematicDevicesAll };
@@ -307,7 +307,6 @@ export function createHomeaticWandschalter(adapter:any, rawId: number, baseState
307
307
  createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicWandschalter);
308
308
  }
309
309
 
310
-
311
310
  function createDatenpunktSingle(adapter: any, deviceRawId, attributeType, attributeName, attributeValue, category) {
312
311
  var stateDatenpunkt = "0_userdata.0.devices.homematic." + category + "." + deviceRawId + "." + attributeName;
313
312
  adapter.createState(stateDatenpunkt, attributeValue, {
@@ -339,10 +338,10 @@ export function loadHomematicRollladen(adapter: any) {
339
338
  ));
340
339
  }
341
340
  });
341
+ cacheRollladenArray = sortArray(cacheRollladenArray);
342
342
  return cacheRollladenArray;
343
343
  }
344
344
 
345
-
346
345
  var cacheWandthermostateArray = null;
347
346
  export function loadHomematicWandthermostate(adapter: any) {
348
347
  if (cacheWandthermostateArray != null) {
@@ -363,6 +362,7 @@ export function loadHomematicWandthermostate(adapter: any) {
363
362
  ));
364
363
  }
365
364
  });
365
+ cacheWandthermostateArray = sortArray(cacheWandthermostateArray);
366
366
  return cacheWandthermostateArray;
367
367
  }
368
368
 
@@ -386,6 +386,7 @@ export function loadHomematicPraesenzmelder(adapter: any) {
386
386
  ));
387
387
  }
388
388
  });
389
+ cachePraesenzmelderArray = sortArray(cachePraesenzmelderArray);
389
390
  return cachePraesenzmelderArray;
390
391
  }
391
392
 
@@ -409,6 +410,7 @@ export function loadHomematicWetterstationen(adapter: any) {
409
410
  ));
410
411
  }
411
412
  });
413
+ cacheWetterstationenArray = sortArray(cacheWetterstationenArray);
412
414
  return cacheWetterstationenArray;
413
415
  }
414
416
 
@@ -432,6 +434,7 @@ export function loadHomematicDoors(adapter: any) {
432
434
  ));
433
435
  }
434
436
  });
437
+ cacheDoorsArray = sortArray(cacheDoorsArray);
435
438
  return cacheDoorsArray;
436
439
  }
437
440
 
@@ -465,6 +468,7 @@ export function loadHomematicWandschalter(adapter: any) {
465
468
  ));
466
469
  }
467
470
  });
471
+ cacheWandschalterArray = sortArray(cacheWandschalterArray);
468
472
  return cacheWandschalterArray;
469
473
  }
470
474
 
@@ -488,6 +492,7 @@ export function loadHomematicFussbodenheizungen(adapter: any) {
488
492
  ));
489
493
  }
490
494
  });
495
+ cacheFussbodenheizungenArray = sortArray(cacheFussbodenheizungenArray);
491
496
  return cacheFussbodenheizungenArray;
492
497
  }
493
498
 
@@ -511,6 +516,7 @@ export function loadHomematicWandtaster(adapter: any) {
511
516
  ));
512
517
  }
513
518
  });
519
+ cacheWandtasterArray = sortArray(cacheWandtasterArray);
514
520
  return cacheWandtasterArray;
515
521
  }
516
522
 
@@ -534,6 +540,7 @@ export function loadHomematicAccessPoints(adapter: any) {
534
540
  ));
535
541
  }
536
542
  });
543
+ cacheAccessPointsArray = sortArray(cacheAccessPointsArray);
537
544
  return cacheAccessPointsArray;
538
545
  }
539
546
 
@@ -557,6 +564,7 @@ export function loadHomematicTemperatursensoren(adapter: any) {
557
564
  ));
558
565
  }
559
566
  });
567
+ cacheTemperatursensorenArray = sortArray(cacheTemperatursensorenArray);
560
568
  return cacheTemperatursensorenArray;
561
569
  }
562
570
 
@@ -580,6 +588,7 @@ export function loadHomematicRauchmelder(adapter: any) {
580
588
  ));
581
589
  }
582
590
  });
591
+ cacheRauchmelderArray = sortArray(cacheRauchmelderArray);
583
592
  return cacheRauchmelderArray;
584
593
  }
585
594
 
@@ -603,6 +612,7 @@ export function loadHomematicFunktschaltaktoren(adapter: any) {
603
612
  ));
604
613
  }
605
614
  });
615
+ cacheFunkschaltaktorenArray = sortArray(cacheFunkschaltaktorenArray);
606
616
  return cacheFunkschaltaktorenArray;
607
617
  }
608
618
 
@@ -626,6 +636,7 @@ export function loadHomematicWindows(adapter: any) {
626
636
  ));
627
637
  }
628
638
  });
639
+ cacheWindowsArray = sortArray(cacheWindowsArray);
629
640
  return cacheWindowsArray;
630
641
  }
631
642
 
@@ -649,6 +660,7 @@ export function loadHomematicSteckdosen(adapter: any) {
649
660
  ));
650
661
  }
651
662
  });
663
+ cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
652
664
  return cacheSteckdosenArray;
653
665
  }
654
666
 
@@ -672,6 +684,7 @@ export function loadHomematicHeizkoerper(adapter: any) {
672
684
  ));
673
685
  }
674
686
  });
687
+ cacheHeizkoerperArray = sortArray(cacheHeizkoerperArray);
675
688
  return cacheHeizkoerperArray;
676
689
  }
677
690
 
@@ -685,7 +698,6 @@ export function loadHomematicDimmer(adapter: any) {
685
698
  adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
686
699
  var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
687
700
  if (adapter.getState(datenpunktKey).val == deviceHomematicDimmer) {
688
- adapter.log("Inside loadHomematicDimmer");
689
701
 
690
702
  // Einschalt-Scheme:
691
703
  var alexaOnScheme = null;
@@ -792,6 +804,7 @@ export function loadHomematicDimmer(adapter: any) {
792
804
  ));
793
805
  }
794
806
  });
807
+ cacheDimmerArray = sortArray(cacheDimmerArray);
795
808
  return cacheDimmerArray;
796
809
  }
797
810
 
@@ -800,8 +813,7 @@ export function loadHomematicDevicesAll(adapter: any) {
800
813
  if (homematicAllArray != null) {
801
814
  return homematicAllArray;
802
815
  }
803
- adapter.log("Test");
804
-
816
+
805
817
  // @ts-ignore
806
818
  homematicAllArray = [];
807
819
 
@@ -869,6 +881,7 @@ export function loadHomematicDevicesAll(adapter: any) {
869
881
  // @ts-ignore
870
882
  homematicAllArray.push(homematic);
871
883
  });
884
+ homematicAllArray = sortArray(homematicAllArray);
872
885
  return homematicAllArray;
873
886
  }
874
887
 
@@ -881,5 +894,56 @@ function toStringArray(databaseValue) { // z.B. "Werkbank|Arbeiten|Keller"
881
894
  }
882
895
  }
883
896
 
897
+ function sortArray(inputArray) {
898
+ inputArray.sort((a,b) => {
899
+ var elementA = a;
900
+ var elementB = b;
901
+
902
+ var etageA = elementA.getEtage();
903
+ var etageB = elementB.getEtage();
904
+ var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
905
+ if (compareEtage != 0) {
906
+ return compareEtage;
907
+ }
908
+
909
+ var typA = elementA.getCategory();
910
+ var typB = elementB.getCategory();
911
+ var compareTyp = typA.localeCompare(typB);
912
+ if (compareTyp != 0) {
913
+ return compareTyp;
914
+ }
915
+
916
+
917
+ var raumA = elementA.getRaum();
918
+ var raumB = elementB.getRaum();
919
+ var compareRaum = raumA.localeCompare(raumB);
920
+ if (compareRaum != 0) {
921
+ return compareRaum;
922
+ }
923
+
924
+ var deviceA = elementA.getDevice();
925
+ var deviceB = elementB.getDevice();
926
+ var compareDevice = deviceA.localeCompare(deviceB);
927
+ if (compareDevice != 0) {
928
+ return compareDevice;
929
+ }
930
+
931
+ return 0;
932
+ });
933
+ return inputArray;
934
+ }
935
+
936
+ function getEtageSortIndex(etage: string) {
937
+ if (etage == "OG") {
938
+ return "a";
939
+ } else if (etage == "EG") {
940
+ return "b";
941
+ } else if (etage == "UG") {
942
+ return "c";
943
+ } else {
944
+ return "d";
945
+ }
946
+ }
947
+
884
948
 
885
949
  module.exports = { createHomematicDevice, createHomeaticDimmer, createHomeaticWandschalter, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, loadHomematicDevicesAll };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker-ucl",
3
- "version": "1.2.90",
3
+ "version": "1.2.92",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "build": "tsc --build",
@@ -353,7 +353,7 @@ function createZigbeeLampeWeiss(adapter, rawId, baseState, etage, raum, device,
353
353
  createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceZigbeeLampeWeiss);
354
354
  // Gruppe:
355
355
  createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeLampeWeissGroup, isGroup, deviceZigbeeLampeWeiss);
356
- // alexaLevelSchemeForOn: LampeWeissColorScheme
356
+ // alexaLevelSchemeForOn: LampeWeissAlexaScheme
357
357
  if (alexaLevelSchemeForOn != null) {
358
358
  createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeLampWeiss_AlexaColorSchemeForOn_Weiss_aktiv, true, deviceZigbeeLampeWeiss);
359
359
  createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeLampWeiss_AlexaColorSchemeForOn_Weiss_level, alexaLevelSchemeForOn.getLevel(), deviceZigbeeLampeWeiss);
@@ -707,6 +707,7 @@ function loadZigbeeSteckdosen(adapter) {
707
707
  ));
708
708
  }
709
709
  });
710
+ cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
710
711
  return cacheSteckdosenArray;
711
712
  }
712
713
  exports.loadZigbeeSteckdosen = loadZigbeeSteckdosen;
@@ -729,6 +730,7 @@ function loadZigbeeBewegungsmelder(adapter) {
729
730
  ));
730
731
  }
731
732
  });
733
+ cacheBewegungsmelderArray = sortArray(cacheBewegungsmelderArray);
732
734
  return cacheBewegungsmelderArray;
733
735
  }
734
736
  exports.loadZigbeeBewegungsmelder = loadZigbeeBewegungsmelder;
@@ -816,6 +818,7 @@ function loadZigbeeLampenRGB(adapter) {
816
818
  ));
817
819
  }
818
820
  });
821
+ cacheLampenRGBArray = sortArray(cacheLampenRGBArray);
819
822
  return cacheLampenRGBArray;
820
823
  }
821
824
  exports.loadZigbeeLampenRGB = loadZigbeeLampenRGB;
@@ -833,7 +836,7 @@ function loadZigbeeLampenWeiss(adapter) {
833
836
  var alexaOnScheme = null;
834
837
  if (adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_aktiv).val == true) {
835
838
  // @ts-ignore
836
- alexaOnScheme = new LampeWeissColorScheme(null, adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_level).val, adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_ct).val);
839
+ alexaOnScheme = new LampeWeissAlexaScheme(null, adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_level).val, adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_ct).val);
837
840
  }
838
841
  // Weitere Schemes als Array:
839
842
  var schemeArray = [];
@@ -903,6 +906,7 @@ function loadZigbeeLampenWeiss(adapter) {
903
906
  ));
904
907
  }
905
908
  });
909
+ cacheLampenWeissArray = sortArray(cacheLampenWeissArray);
906
910
  return cacheLampenWeissArray;
907
911
  }
908
912
  exports.loadZigbeeLampenWeiss = loadZigbeeLampenWeiss;
@@ -925,6 +929,7 @@ function loadZigbeeRauchmelder(adapter) {
925
929
  ));
926
930
  }
927
931
  });
932
+ cacheRauchmelderArray = sortArray(cacheRauchmelderArray);
928
933
  return cacheRauchmelderArray;
929
934
  }
930
935
  exports.loadZigbeeRauchmelder = loadZigbeeRauchmelder;
@@ -947,6 +952,7 @@ function loadZigbeeWandtaster(adapter) {
947
952
  ));
948
953
  }
949
954
  });
955
+ cacheWandtasterArray = sortArray(cacheWandtasterArray);
950
956
  return cacheWandtasterArray;
951
957
  }
952
958
  exports.loadZigbeeWandtaster = loadZigbeeWandtaster;
@@ -970,6 +976,7 @@ function loadZigbeeDosenrelais(adapter) {
970
976
  ));
971
977
  }
972
978
  });
979
+ cacheDosenrelaisArray = sortArray(cacheDosenrelaisArray);
973
980
  return cacheDosenrelaisArray;
974
981
  }
975
982
  exports.loadZigbeeDosenrelais = loadZigbeeDosenrelais;
@@ -992,6 +999,7 @@ function loadZigbeeSchalter(adapter) {
992
999
  ));
993
1000
  }
994
1001
  });
1002
+ cacheSchalterArray = sortArray(cacheSchalterArray);
995
1003
  return cacheSchalterArray;
996
1004
  }
997
1005
  exports.loadZigbeeSchalter = loadZigbeeSchalter;
@@ -1014,6 +1022,7 @@ function loadZigbeeRepeater(adapter) {
1014
1022
  ));
1015
1023
  }
1016
1024
  });
1025
+ cacheRepeaterArray = sortArray(cacheRepeaterArray);
1017
1026
  return cacheRepeaterArray;
1018
1027
  }
1019
1028
  exports.loadZigbeeRepeater = loadZigbeeRepeater;
@@ -1028,7 +1037,7 @@ function loadZigbeeFenstersensor(adapter) {
1028
1037
  var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
1029
1038
  if (adapter.getState(datenpunktKey).val == deviceZigbeeFenstersensor) {
1030
1039
  // @ts-ignore
1031
- cacheFenstersensorenArray.push(new Zigbee(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
1040
+ cacheFenstersensorenArray.push(new ZigbeeFenstersensor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
1032
1041
  adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
1033
1042
  adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
1034
1043
  adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
@@ -1036,6 +1045,7 @@ function loadZigbeeFenstersensor(adapter) {
1036
1045
  ));
1037
1046
  }
1038
1047
  });
1048
+ cacheFenstersensorenArray = sortArray(cacheFenstersensorenArray);
1039
1049
  return cacheFenstersensorenArray;
1040
1050
  }
1041
1051
  exports.loadZigbeeFenstersensor = loadZigbeeFenstersensor;
@@ -1087,7 +1097,54 @@ function loadZigbeeDevicesAll(adapter) {
1087
1097
  // @ts-ignore
1088
1098
  zigbeeAllArray.push(zigbee);
1089
1099
  });
1100
+ zigbeeAllArray = sortArray(zigbeeAllArray);
1090
1101
  return zigbeeAllArray;
1091
1102
  }
1092
1103
  exports.loadZigbeeDevicesAll = loadZigbeeDevicesAll;
1104
+ function sortArray(inputArray) {
1105
+ inputArray.sort(function (a, b) {
1106
+ var elementA = a;
1107
+ var elementB = b;
1108
+ var etageA = elementA.getEtage();
1109
+ var etageB = elementB.getEtage();
1110
+ var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
1111
+ if (compareEtage != 0) {
1112
+ return compareEtage;
1113
+ }
1114
+ var typA = elementA.getCategory();
1115
+ var typB = elementB.getCategory();
1116
+ var compareTyp = typA.localeCompare(typB);
1117
+ if (compareTyp != 0) {
1118
+ return compareTyp;
1119
+ }
1120
+ var raumA = elementA.getRaum();
1121
+ var raumB = elementB.getRaum();
1122
+ var compareRaum = raumA.localeCompare(raumB);
1123
+ if (compareRaum != 0) {
1124
+ return compareRaum;
1125
+ }
1126
+ var deviceA = elementA.getDevice();
1127
+ var deviceB = elementB.getDevice();
1128
+ var compareDevice = deviceA.localeCompare(deviceB);
1129
+ if (compareDevice != 0) {
1130
+ return compareDevice;
1131
+ }
1132
+ return 0;
1133
+ });
1134
+ return inputArray;
1135
+ }
1136
+ function getEtageSortIndex(etage) {
1137
+ if (etage == "OG") {
1138
+ return "a";
1139
+ }
1140
+ else if (etage == "EG") {
1141
+ return "b";
1142
+ }
1143
+ else if (etage == "UG") {
1144
+ return "c";
1145
+ }
1146
+ else {
1147
+ return "d";
1148
+ }
1149
+ }
1093
1150
  module.exports = { createZigbeeDevice: createZigbeeDevice, createZigbeeDosenrelais: createZigbeeDosenrelais, createZigbeeLampeRGB: createZigbeeLampeRGB, createZigbeeLampeWeiss: createZigbeeLampeWeiss, createZigbeeSteckdose: createZigbeeSteckdose, loadZigbeeSteckdosen: loadZigbeeSteckdosen, loadZigbeeBewegungsmelder: loadZigbeeBewegungsmelder, loadZigbeeLampenRGB: loadZigbeeLampenRGB, loadZigbeeLampenWeiss: loadZigbeeLampenWeiss, loadZigbeeRauchmelder: loadZigbeeRauchmelder, loadZigbeeWandtaster: loadZigbeeWandtaster, loadZigbeeDosenrelais: loadZigbeeDosenrelais, loadZigbeeSchalter: loadZigbeeSchalter, loadZigbeeRepeater: loadZigbeeRepeater, loadZigbeeFenstersensor: loadZigbeeFenstersensor, loadZigbeeDevicesAll: loadZigbeeDevicesAll };
@@ -389,7 +389,7 @@ export function createZigbeeLampeWeiss(adapter:any, rawId: number, baseState: st
389
389
  // Gruppe:
390
390
  createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeLampeWeissGroup, isGroup, deviceZigbeeLampeWeiss);
391
391
 
392
- // alexaLevelSchemeForOn: LampeWeissColorScheme
392
+ // alexaLevelSchemeForOn: LampeWeissAlexaScheme
393
393
  if (alexaLevelSchemeForOn != null) {
394
394
  createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeLampWeiss_AlexaColorSchemeForOn_Weiss_aktiv, true, deviceZigbeeLampeWeiss);
395
395
  createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeLampWeiss_AlexaColorSchemeForOn_Weiss_level, alexaLevelSchemeForOn.getLevel(), deviceZigbeeLampeWeiss);
@@ -754,6 +754,7 @@ export function loadZigbeeSteckdosen(adapter: any) {
754
754
  ));
755
755
  }
756
756
  });
757
+ cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
757
758
  return cacheSteckdosenArray;
758
759
  }
759
760
 
@@ -777,6 +778,7 @@ export function loadZigbeeBewegungsmelder(adapter: any) {
777
778
  ));
778
779
  }
779
780
  });
781
+ cacheBewegungsmelderArray = sortArray(cacheBewegungsmelderArray);
780
782
  return cacheBewegungsmelderArray;
781
783
  }
782
784
 
@@ -918,6 +920,7 @@ export function loadZigbeeLampenRGB(adapter: any) {
918
920
  ));
919
921
  }
920
922
  });
923
+ cacheLampenRGBArray = sortArray(cacheLampenRGBArray);
921
924
  return cacheLampenRGBArray;
922
925
  }
923
926
 
@@ -935,7 +938,7 @@ export function loadZigbeeLampenWeiss(adapter: any) {
935
938
  var alexaOnScheme = null;
936
939
  if (adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_aktiv).val == true) {
937
940
  // @ts-ignore
938
- alexaOnScheme = new LampeWeissColorScheme(null,
941
+ alexaOnScheme = new LampeWeissAlexaScheme(null,
939
942
  adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_level).val,
940
943
  adapter.getState(datenpunktPraefix + "." + attributeLampWeiss_AlexaColorSchemeForOn_Weiss_ct).val
941
944
  );
@@ -1052,6 +1055,7 @@ export function loadZigbeeLampenWeiss(adapter: any) {
1052
1055
  ));
1053
1056
  }
1054
1057
  });
1058
+ cacheLampenWeissArray = sortArray(cacheLampenWeissArray);
1055
1059
  return cacheLampenWeissArray;
1056
1060
  }
1057
1061
 
@@ -1075,6 +1079,7 @@ export function loadZigbeeRauchmelder(adapter: any) {
1075
1079
  ));
1076
1080
  }
1077
1081
  });
1082
+ cacheRauchmelderArray = sortArray(cacheRauchmelderArray);
1078
1083
  return cacheRauchmelderArray;
1079
1084
  }
1080
1085
 
@@ -1098,6 +1103,7 @@ export function loadZigbeeWandtaster(adapter: any) {
1098
1103
  ));
1099
1104
  }
1100
1105
  });
1106
+ cacheWandtasterArray = sortArray(cacheWandtasterArray);
1101
1107
  return cacheWandtasterArray;
1102
1108
  }
1103
1109
 
@@ -1122,6 +1128,7 @@ export function loadZigbeeDosenrelais(adapter: any) {
1122
1128
  ));
1123
1129
  }
1124
1130
  });
1131
+ cacheDosenrelaisArray = sortArray(cacheDosenrelaisArray);
1125
1132
  return cacheDosenrelaisArray;
1126
1133
  }
1127
1134
 
@@ -1145,6 +1152,7 @@ export function loadZigbeeSchalter(adapter: any) {
1145
1152
  ));
1146
1153
  }
1147
1154
  });
1155
+ cacheSchalterArray = sortArray(cacheSchalterArray);
1148
1156
  return cacheSchalterArray;
1149
1157
  }
1150
1158
 
@@ -1168,6 +1176,7 @@ export function loadZigbeeRepeater(adapter: any) {
1168
1176
  ));
1169
1177
  }
1170
1178
  });
1179
+ cacheRepeaterArray = sortArray(cacheRepeaterArray);
1171
1180
  return cacheRepeaterArray;
1172
1181
  }
1173
1182
 
@@ -1182,7 +1191,7 @@ export function loadZigbeeFenstersensor(adapter: any) {
1182
1191
  var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
1183
1192
  if (adapter.getState(datenpunktKey).val == deviceZigbeeFenstersensor) {
1184
1193
  // @ts-ignore
1185
- cacheFenstersensorenArray.push(new Zigbee(adapter,
1194
+ cacheFenstersensorenArray.push(new ZigbeeFenstersensor(adapter,
1186
1195
  adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
1187
1196
  adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
1188
1197
  adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
@@ -1191,6 +1200,7 @@ export function loadZigbeeFenstersensor(adapter: any) {
1191
1200
  ));
1192
1201
  }
1193
1202
  });
1203
+ cacheFenstersensorenArray = sortArray(cacheFenstersensorenArray);
1194
1204
  return cacheFenstersensorenArray;
1195
1205
  }
1196
1206
 
@@ -1243,7 +1253,61 @@ export function loadZigbeeDevicesAll(adapter: any) {
1243
1253
  // @ts-ignore
1244
1254
  zigbeeAllArray.push(zigbee);
1245
1255
  });
1256
+ zigbeeAllArray = sortArray(zigbeeAllArray);
1246
1257
  return zigbeeAllArray;
1247
1258
  }
1248
1259
 
1260
+ function sortArray(inputArray) {
1261
+ inputArray.sort((a,b) => {
1262
+ var elementA = a;
1263
+ var elementB = b;
1264
+
1265
+ var etageA = elementA.getEtage();
1266
+ var etageB = elementB.getEtage();
1267
+ var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
1268
+ if (compareEtage != 0) {
1269
+ return compareEtage;
1270
+ }
1271
+
1272
+ var typA = elementA.getCategory();
1273
+ var typB = elementB.getCategory();
1274
+ var compareTyp = typA.localeCompare(typB);
1275
+ if (compareTyp != 0) {
1276
+ return compareTyp;
1277
+ }
1278
+
1279
+
1280
+ var raumA = elementA.getRaum();
1281
+ var raumB = elementB.getRaum();
1282
+ var compareRaum = raumA.localeCompare(raumB);
1283
+ if (compareRaum != 0) {
1284
+ return compareRaum;
1285
+ }
1286
+
1287
+ var deviceA = elementA.getDevice();
1288
+ var deviceB = elementB.getDevice();
1289
+ var compareDevice = deviceA.localeCompare(deviceB);
1290
+ if (compareDevice != 0) {
1291
+ return compareDevice;
1292
+ }
1293
+
1294
+ return 0;
1295
+ });
1296
+ return inputArray;
1297
+ }
1298
+
1299
+ function getEtageSortIndex(etage: string) {
1300
+ if (etage == "OG") {
1301
+ return "a";
1302
+ } else if (etage == "EG") {
1303
+ return "b";
1304
+ } else if (etage == "UG") {
1305
+ return "c";
1306
+ } else {
1307
+ return "d";
1308
+ }
1309
+ }
1310
+
1311
+
1312
+
1249
1313
  module.exports = { createZigbeeDevice, createZigbeeDosenrelais, createZigbeeLampeRGB, createZigbeeLampeWeiss, createZigbeeSteckdose, loadZigbeeSteckdosen, loadZigbeeBewegungsmelder, loadZigbeeLampenRGB, loadZigbeeLampenWeiss, loadZigbeeRauchmelder, loadZigbeeWandtaster, loadZigbeeDosenrelais, loadZigbeeSchalter, loadZigbeeRepeater, loadZigbeeFenstersensor, loadZigbeeDevicesAll };