iobroker-ucl 1.2.91 → 1.2.93

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.
@@ -15,7 +15,7 @@ npm publish
15
15
  docker exec -it iobroker bash
16
16
 
17
17
  // 5.) Im Docker iobroker container drin das NPM module aktualisieren: (PUTTY)
18
- npm update iobroker-ucl (initial installieren mit: npm install iobroker-ucl)
18
+ npm update iobroker-ucl (initial installieren mit: npm install iobroker-ucl)
19
19
  npm ls --depth=0 (um sicher zu gehen, dass richtige Version auch gezogen wurde)
20
20
 
21
21
 
@@ -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;
@@ -714,6 +729,7 @@ function loadHomematicDimmer(adapter) {
714
729
  ));
715
730
  }
716
731
  });
732
+ cacheDimmerArray = sortArray(cacheDimmerArray);
717
733
  return cacheDimmerArray;
718
734
  }
719
735
  exports.loadHomematicDimmer = loadHomematicDimmer;
@@ -788,6 +804,7 @@ function loadHomematicDevicesAll(adapter) {
788
804
  // @ts-ignore
789
805
  homematicAllArray.push(homematic);
790
806
  });
807
+ homematicAllArray = sortArray(homematicAllArray);
791
808
  return homematicAllArray;
792
809
  }
793
810
  exports.loadHomematicDevicesAll = loadHomematicDevicesAll;
@@ -800,4 +817,50 @@ function toStringArray(databaseValue) {
800
817
  return databaseValue.split('|');
801
818
  }
802
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
+ }
803
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
 
@@ -791,6 +804,7 @@ export function loadHomematicDimmer(adapter: any) {
791
804
  ));
792
805
  }
793
806
  });
807
+ cacheDimmerArray = sortArray(cacheDimmerArray);
794
808
  return cacheDimmerArray;
795
809
  }
796
810
 
@@ -867,6 +881,7 @@ export function loadHomematicDevicesAll(adapter: any) {
867
881
  // @ts-ignore
868
882
  homematicAllArray.push(homematic);
869
883
  });
884
+ homematicAllArray = sortArray(homematicAllArray);
870
885
  return homematicAllArray;
871
886
  }
872
887
 
@@ -879,5 +894,56 @@ function toStringArray(databaseValue) { // z.B. "Werkbank|Arbeiten|Keller"
879
894
  }
880
895
  }
881
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
+
882
948
 
883
949
  module.exports = { createHomematicDevice, createHomeaticDimmer, createHomeaticWandschalter, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, loadHomematicDevicesAll };
package/main.js CHANGED
@@ -3,7 +3,7 @@ var DateCalendarTest = require('./test.js').DateCalendarTest;
3
3
  var _a = require('./html.js'), AbstractColumn = _a.AbstractColumn, HtmlTable = _a.HtmlTable, HtmlCreator = _a.HtmlCreator, StaticIconColumn = _a.StaticIconColumn, AbstractStandardTextColumn = _a.AbstractStandardTextColumn;
4
4
  var _b = require('./homematicClasses.js'), HomematicWindow = _b.HomematicWindow, HomematicSteckdose = _b.HomematicSteckdose, HomematicHeizkoerper = _b.HomematicHeizkoerper, HomematicDimmer = _b.HomematicDimmer, HomematicWandthermostat = _b.HomematicWandthermostat, HomematicFussbodenheizung = _b.HomematicFussbodenheizung, HomematicWandschalter = _b.HomematicWandschalter, HomematicDoor = _b.HomematicDoor, HomematicWetterstation = _b.HomematicWetterstation, HomematicAccessPoint = _b.HomematicAccessPoint, HomematicRollladen = _b.HomematicRollladen, HomematicWandtaster = _b.HomematicWandtaster, HomematicTemperatursensor = _b.HomematicTemperatursensor, HomematicRauchmelder = _b.HomematicRauchmelder, HomematicPraesenzmelder = _b.HomematicPraesenzmelder, AbstractHomematic = _b.AbstractHomematic, HomematicFunkschaltaktor = _b.HomematicFunkschaltaktor, deviceHomematicWandthermostat = _b.deviceHomematicWandthermostat, deviceHomematicPraesenzmelder = _b.deviceHomematicPraesenzmelder, deviceHomematicWetterstation = _b.deviceHomematicWetterstation, deviceHomematicDoor = _b.deviceHomematicDoor, deviceHomematicRollladen = _b.deviceHomematicRollladen, deviceHomematicWandschalter = _b.deviceHomematicWandschalter, deviceHomematicFussbodenheizung = _b.deviceHomematicFussbodenheizung, deviceHomematicWandtaster = _b.deviceHomematicWandtaster, deviceHomematicAccessPoint = _b.deviceHomematicAccessPoint, deviceHomematicTemperatursensor = _b.deviceHomematicTemperatursensor, deviceHomematicRauchmelder = _b.deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor = _b.deviceHomematicFunkSchaltaktor, deviceHomematicWindow = _b.deviceHomematicWindow, deviceHomematicSteckdose = _b.deviceHomematicSteckdose, deviceHomematicHeizkoerper = _b.deviceHomematicHeizkoerper, deviceHomematicDimmer = _b.deviceHomematicDimmer, DimmerAlexaScheme = _b.DimmerAlexaScheme, DimmerTasterScheme = _b.DimmerTasterScheme;
5
5
  var _c = require('./homematicFunctions.js'), createHomematicDevice = _c.createHomematicDevice, createHomeaticDimmer = _c.createHomeaticDimmer, createHomeaticWandschalter = _c.createHomeaticWandschalter, loadHomematicWandthermostate = _c.loadHomematicWandthermostate, loadHomematicPraesenzmelder = _c.loadHomematicPraesenzmelder, loadHomematicWetterstationen = _c.loadHomematicWetterstationen, loadHomematicDoors = _c.loadHomematicDoors, loadHomematicRollladen = _c.loadHomematicRollladen, loadHomematicWandschalter = _c.loadHomematicWandschalter, loadHomematicFussbodenheizungen = _c.loadHomematicFussbodenheizungen, loadHomematicWandtaster = _c.loadHomematicWandtaster, loadHomematicAccessPoints = _c.loadHomematicAccessPoints, loadHomematicTemperatursensoren = _c.loadHomematicTemperatursensoren, loadHomematicRauchmelder = _c.loadHomematicRauchmelder, loadHomematicFunktschaltaktoren = _c.loadHomematicFunktschaltaktoren, loadHomematicWindows = _c.loadHomematicWindows, loadHomematicSteckdosen = _c.loadHomematicSteckdosen, loadHomematicHeizkoerper = _c.loadHomematicHeizkoerper, loadHomematicDimmer = _c.loadHomematicDimmer, loadHomematicDevicesAll = _c.loadHomematicDevicesAll;
6
- var _d = require('./zigbeeClasses.js'), AbstractZigbee = _d.AbstractZigbee, ColorScheme = _d.ColorScheme, RGBColorScheme = _d.RGBColorScheme, WhiteColorScheme = _d.WhiteColorScheme, ZigbeeLampeRGB = _d.ZigbeeLampeRGB, LampeWeissTasterScheme = _d.LampeWeissTasterScheme, LampeWeissAlexaScheme = _d.LampeWeissAlexaScheme, ZigbeeLampeWeiss = _d.ZigbeeLampeWeiss, ZigbeeSteckdose = _d.ZigbeeSteckdose, ZigbeeSchalter = _d.ZigbeeSchalter, ZigbeeRepeater = _d.ZigbeeRepeater, ZigbeeFenstersensor = _d.ZigbeeFenstersensor, ZigbeeRauchmelder = _d.ZigbeeRauchmelder, ZigbeeBewegungsmelder = _d.ZigbeeBewegungsmelder, ZigbeeWandtaster = _d.ZigbeeWandtaster, ZigbeeDosenrelais = _d.ZigbeeDosenrelais, deviceZigbeeSteckdose = _d.deviceZigbeeSteckdose, deviceZigbeeBewegungsmelder = _d.deviceZigbeeBewegungsmelder, deviceZigbeeLampeRGB = _d.deviceZigbeeLampeRGB, deviceZigbeeLampeWeiss = _d.deviceZigbeeLampeWeiss, deviceZigbeeRauchmelder = _d.deviceZigbeeRauchmelder, deviceZigbeeWandtaster = _d.deviceZigbeeWandtaster, deviceZigbeeDosenrelais = _d.deviceZigbeeDosenrelais, deviceZigbeeSchalter = _d.deviceZigbeeSchalter, deviceZigbeeRepeater = _d.deviceZigbeeRepeater, deviceZigbeeFenstersensor = _d.deviceZigbeeFenstersensor;
6
+ var _d = require('./zigbeeClasses.js'), AbstractZigbee = _d.AbstractZigbee, ColorConverter = _d.ColorConverter, ColorScheme = _d.ColorScheme, RGBColorScheme = _d.RGBColorScheme, WhiteColorScheme = _d.WhiteColorScheme, ZigbeeLampeRGB = _d.ZigbeeLampeRGB, LampeWeissTasterScheme = _d.LampeWeissTasterScheme, LampeWeissAlexaScheme = _d.LampeWeissAlexaScheme, ZigbeeLampeWeiss = _d.ZigbeeLampeWeiss, ZigbeeSteckdose = _d.ZigbeeSteckdose, ZigbeeSchalter = _d.ZigbeeSchalter, ZigbeeRepeater = _d.ZigbeeRepeater, ZigbeeFenstersensor = _d.ZigbeeFenstersensor, ZigbeeRauchmelder = _d.ZigbeeRauchmelder, ZigbeeBewegungsmelder = _d.ZigbeeBewegungsmelder, ZigbeeWandtaster = _d.ZigbeeWandtaster, ZigbeeDosenrelais = _d.ZigbeeDosenrelais, deviceZigbeeSteckdose = _d.deviceZigbeeSteckdose, deviceZigbeeBewegungsmelder = _d.deviceZigbeeBewegungsmelder, deviceZigbeeLampeRGB = _d.deviceZigbeeLampeRGB, deviceZigbeeLampeWeiss = _d.deviceZigbeeLampeWeiss, deviceZigbeeRauchmelder = _d.deviceZigbeeRauchmelder, deviceZigbeeWandtaster = _d.deviceZigbeeWandtaster, deviceZigbeeDosenrelais = _d.deviceZigbeeDosenrelais, deviceZigbeeSchalter = _d.deviceZigbeeSchalter, deviceZigbeeRepeater = _d.deviceZigbeeRepeater, deviceZigbeeFenstersensor = _d.deviceZigbeeFenstersensor;
7
7
  var _e = require('./zigbeeFunctions.js'), createZigbeeDevice = _e.createZigbeeDevice, createZigbeeDosenrelais = _e.createZigbeeDosenrelais, createZigbeeLampeRGB = _e.createZigbeeLampeRGB, createZigbeeLampeWeiss = _e.createZigbeeLampeWeiss, createZigbeeSteckdose = _e.createZigbeeSteckdose, loadZigbeeSteckdosen = _e.loadZigbeeSteckdosen, loadZigbeeBewegungsmelder = _e.loadZigbeeBewegungsmelder, loadZigbeeLampenRGB = _e.loadZigbeeLampenRGB, loadZigbeeLampenWeiss = _e.loadZigbeeLampenWeiss, loadZigbeeRauchmelder = _e.loadZigbeeRauchmelder, loadZigbeeWandtaster = _e.loadZigbeeWandtaster, loadZigbeeDosenrelais = _e.loadZigbeeDosenrelais, loadZigbeeSchalter = _e.loadZigbeeSchalter, loadZigbeeRepeater = _e.loadZigbeeRepeater, loadZigbeeFenstersensor = _e.loadZigbeeFenstersensor, loadZigbeeDevicesAll = _e.loadZigbeeDevicesAll;
8
8
  var _f = require('./camera.js'), sendToPictureGartenToTelegram = _f.sendToPictureGartenToTelegram, sendToPictureSeiteToTelegram = _f.sendToPictureSeiteToTelegram, sendToPictureHaustuereToTelegram = _f.sendToPictureHaustuereToTelegram, sendToPictureDoorbellToTelegram = _f.sendToPictureDoorbellToTelegram, sendToPictureGarageToTelegram = _f.sendToPictureGarageToTelegram;
9
9
  var AlexaInputConverter = require('./alexa.js').AlexaInputConverter;
@@ -80,6 +80,7 @@ module.exports = {
80
80
  loadHomematicDevicesAll: loadHomematicDevicesAll,
81
81
  // zigbeeClasses.ts
82
82
  AbstractZigbee: AbstractZigbee,
83
+ ColorConverter: ColorConverter,
83
84
  ColorScheme: ColorScheme,
84
85
  RGBColorScheme: RGBColorScheme,
85
86
  WhiteColorScheme: WhiteColorScheme,
package/main.ts CHANGED
@@ -4,7 +4,7 @@ const { DateCalendarTest } = require('./test.js');
4
4
  const { AbstractColumn, HtmlTable, HtmlCreator, StaticIconColumn, AbstractStandardTextColumn } = require('./html.js');
5
5
  const { HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor, deviceHomematicWandthermostat, deviceHomematicPraesenzmelder, deviceHomematicWetterstation, deviceHomematicDoor, deviceHomematicRollladen, deviceHomematicWandschalter, deviceHomematicFussbodenheizung, deviceHomematicWandtaster, deviceHomematicAccessPoint, deviceHomematicTemperatursensor, deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor, deviceHomematicWindow, deviceHomematicSteckdose, deviceHomematicHeizkoerper, deviceHomematicDimmer,DimmerAlexaScheme, DimmerTasterScheme} = require('./homematicClasses.js');
6
6
  const { createHomematicDevice, createHomeaticDimmer, createHomeaticWandschalter, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, loadHomematicDevicesAll } = require('./homematicFunctions.js');
7
- const { AbstractZigbee, ColorScheme, RGBColorScheme, WhiteColorScheme, ZigbeeLampeRGB, LampeWeissTasterScheme, LampeWeissAlexaScheme, ZigbeeLampeWeiss, ZigbeeSteckdose, ZigbeeSchalter, ZigbeeRepeater, ZigbeeFenstersensor, ZigbeeRauchmelder, ZigbeeBewegungsmelder, ZigbeeWandtaster, ZigbeeDosenrelais, deviceZigbeeSteckdose, deviceZigbeeBewegungsmelder, deviceZigbeeLampeRGB, deviceZigbeeLampeWeiss, deviceZigbeeRauchmelder, deviceZigbeeWandtaster, deviceZigbeeDosenrelais, deviceZigbeeSchalter, deviceZigbeeRepeater, deviceZigbeeFenstersensor } = require('./zigbeeClasses.js');
7
+ const { AbstractZigbee, ColorConverter, ColorScheme, RGBColorScheme, WhiteColorScheme, ZigbeeLampeRGB, LampeWeissTasterScheme, LampeWeissAlexaScheme, ZigbeeLampeWeiss, ZigbeeSteckdose, ZigbeeSchalter, ZigbeeRepeater, ZigbeeFenstersensor, ZigbeeRauchmelder, ZigbeeBewegungsmelder, ZigbeeWandtaster, ZigbeeDosenrelais, deviceZigbeeSteckdose, deviceZigbeeBewegungsmelder, deviceZigbeeLampeRGB, deviceZigbeeLampeWeiss, deviceZigbeeRauchmelder, deviceZigbeeWandtaster, deviceZigbeeDosenrelais, deviceZigbeeSchalter, deviceZigbeeRepeater, deviceZigbeeFenstersensor } = require('./zigbeeClasses.js');
8
8
  const { createZigbeeDevice, createZigbeeDosenrelais, createZigbeeLampeRGB, createZigbeeLampeWeiss, createZigbeeSteckdose, loadZigbeeSteckdosen, loadZigbeeBewegungsmelder, loadZigbeeLampenRGB, loadZigbeeLampenWeiss, loadZigbeeRauchmelder, loadZigbeeWandtaster, loadZigbeeDosenrelais, loadZigbeeSchalter, loadZigbeeRepeater, loadZigbeeFenstersensor, loadZigbeeDevicesAll } = require('./zigbeeFunctions.js');
9
9
  const { sendToPictureGartenToTelegram, sendToPictureSeiteToTelegram, sendToPictureHaustuereToTelegram, sendToPictureDoorbellToTelegram, sendToPictureGarageToTelegram } = require('./camera.js');
10
10
  const { AlexaInputConverter } = require('./alexa.js');
@@ -32,7 +32,7 @@ module.exports = {
32
32
  createHomematicDevice, createHomeaticDimmer, createHomeaticWandschalter, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, loadHomematicDevicesAll,
33
33
 
34
34
  // zigbeeClasses.ts
35
- AbstractZigbee, ColorScheme, RGBColorScheme, WhiteColorScheme, ZigbeeLampeRGB, LampeWeissTasterScheme, LampeWeissAlexaScheme, ZigbeeLampeWeiss, ZigbeeSteckdose, ZigbeeSchalter, ZigbeeRepeater, ZigbeeFenstersensor, ZigbeeRauchmelder, ZigbeeBewegungsmelder, ZigbeeWandtaster, ZigbeeDosenrelais,
35
+ AbstractZigbee, ColorConverter, ColorScheme, RGBColorScheme, WhiteColorScheme, ZigbeeLampeRGB, LampeWeissTasterScheme, LampeWeissAlexaScheme, ZigbeeLampeWeiss, ZigbeeSteckdose, ZigbeeSchalter, ZigbeeRepeater, ZigbeeFenstersensor, ZigbeeRauchmelder, ZigbeeBewegungsmelder, ZigbeeWandtaster, ZigbeeDosenrelais,
36
36
  deviceZigbeeSteckdose, deviceZigbeeBewegungsmelder, deviceZigbeeLampeRGB, deviceZigbeeLampeWeiss, deviceZigbeeRauchmelder, deviceZigbeeWandtaster, deviceZigbeeDosenrelais, deviceZigbeeSchalter, deviceZigbeeRepeater, deviceZigbeeFenstersensor,
37
37
 
38
38
  // zigbeeFunctions.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker-ucl",
3
- "version": "1.2.91",
3
+ "version": "1.2.93",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "build": "tsc --build",
package/zigbeeClasses.js CHANGED
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
15
15
  };
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ZigbeeDosenrelais = exports.ZigbeeWandtaster = exports.ZigbeeBewegungsmelder = exports.ZigbeeRauchmelder = exports.ZigbeeFenstersensor = exports.ZigbeeRepeater = exports.ZigbeeSchalter = exports.ZigbeeSteckdose = exports.ZigbeeLampeWeiss = exports.LampeWeissAlexaScheme = exports.LampeWeissTasterScheme = exports.ZigbeeLampeRGB = exports.WhiteColorScheme = exports.RGBColorScheme = exports.ColorScheme = exports.AbstractZigbee = void 0;
18
+ exports.ZigbeeDosenrelais = exports.ZigbeeWandtaster = exports.ZigbeeBewegungsmelder = exports.ZigbeeRauchmelder = exports.ZigbeeFenstersensor = exports.ZigbeeRepeater = exports.ZigbeeSchalter = exports.ZigbeeSteckdose = exports.ColorConverter = exports.ZigbeeLampeWeiss = exports.LampeWeissAlexaScheme = exports.LampeWeissTasterScheme = exports.ZigbeeLampeRGB = exports.WhiteColorScheme = exports.RGBColorScheme = exports.ColorScheme = exports.AbstractZigbee = void 0;
19
19
  // https://stackoverflow.com/questions/8595509/how-do-you-share-constants-in-nodejs-modules
20
20
  var deviceZigbeeSteckdose = "Steckdose";
21
21
  var deviceZigbeeBewegungsmelder = "Bewegungsmelder";
@@ -845,6 +845,7 @@ var ColorConverter = /** @class */ (function () {
845
845
  };
846
846
  return ColorConverter;
847
847
  }());
848
+ exports.ColorConverter = ColorConverter;
848
849
  var ZigbeeSteckdose = /** @class */ (function (_super) {
849
850
  __extends(ZigbeeSteckdose, _super);
850
851
  function ZigbeeSteckdose(adapter, id, baseState, etage, raum, device, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, additionalStates4TurnOn, additionalStates4TurnOff) {
@@ -1108,6 +1109,7 @@ var ZigbeeDosenrelais = /** @class */ (function (_super) {
1108
1109
  exports.ZigbeeDosenrelais = ZigbeeDosenrelais;
1109
1110
  module.exports = {
1110
1111
  AbstractZigbee: AbstractZigbee,
1112
+ ColorConverter: ColorConverter,
1111
1113
  ColorScheme: ColorScheme,
1112
1114
  RGBColorScheme: RGBColorScheme,
1113
1115
  WhiteColorScheme: WhiteColorScheme,
package/zigbeeClasses.ts CHANGED
@@ -847,7 +847,7 @@ export class ZigbeeLampeWeiss extends AbstractZigbee {
847
847
  }
848
848
  }
849
849
 
850
- class ColorConverter {
850
+ export class ColorConverter {
851
851
  public convertXY2HSL(x, y) {
852
852
  var bri = 254;
853
853
  let xy = {
@@ -1247,7 +1247,7 @@ export class ZigbeeDosenrelais extends AbstractZigbee {
1247
1247
 
1248
1248
 
1249
1249
  module.exports = {
1250
- AbstractZigbee, ColorScheme, RGBColorScheme, WhiteColorScheme, ZigbeeLampeRGB, LampeWeissTasterScheme, LampeWeissAlexaScheme, ZigbeeLampeWeiss, ZigbeeSteckdose, ZigbeeSchalter, ZigbeeRepeater, ZigbeeFenstersensor, ZigbeeRauchmelder, ZigbeeBewegungsmelder, ZigbeeWandtaster, ZigbeeDosenrelais,
1250
+ AbstractZigbee, ColorConverter, ColorScheme, RGBColorScheme, WhiteColorScheme, ZigbeeLampeRGB, LampeWeissTasterScheme, LampeWeissAlexaScheme, ZigbeeLampeWeiss, ZigbeeSteckdose, ZigbeeSchalter, ZigbeeRepeater, ZigbeeFenstersensor, ZigbeeRauchmelder, ZigbeeBewegungsmelder, ZigbeeWandtaster, ZigbeeDosenrelais,
1251
1251
  deviceZigbeeSteckdose, deviceZigbeeBewegungsmelder, deviceZigbeeLampeRGB, deviceZigbeeLampeWeiss, deviceZigbeeRauchmelder, deviceZigbeeWandtaster, deviceZigbeeDosenrelais, deviceZigbeeSchalter, deviceZigbeeRepeater, deviceZigbeeFenstersensor
1252
1252
  };
1253
1253
 
@@ -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;
@@ -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 };
@@ -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
 
@@ -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 };