homematic-manager 3.0.0-beta.24 → 3.0.0-beta.25

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-09-26T19:43:02.939Z",
2
+ "generatedAt": "2026-09-26T21:19:09.981Z",
3
3
  "sources": [
4
4
  {
5
5
  "name": "openccu-data/easymode_extract",
@@ -29,7 +29,7 @@
29
29
  "name": "webui/easymode-controls",
30
30
  "version": "OpenCCU 3.89.8.20260719 (/www/config/easymodes, /www/webui/js/lang)",
31
31
  "url": "https://github.com/hobbyquaker/homematic-manager/blob/master/data/scripts/easymode-controls.mjs",
32
- "sha256": "feba59f9bdadd840ca1c6f299e480ded8bc4e3a01c079822b076f633f36f5ac1"
32
+ "sha256": "311c7072ac5c29b9ecfb54859cd03bc9d94ceb40bf3c24a19bb590dfb94975aa"
33
33
  },
34
34
  {
35
35
  "name": "homematic-manager/legacy-easymode-localization",
@@ -72,6 +72,86 @@
72
72
  "requires": ["EVENT_TIMEOUT_BASE"],
73
73
  "label": {"de": "Wert der Zeitspanne", "en": "Time interval value"}
74
74
  }
75
+ ],
76
+ "branches": [
77
+ {
78
+ "when": [{"deviceTypeIncludes": "HmIP-DLP", "not": true}],
79
+ "controls": [
80
+ {
81
+ "kind": "time",
82
+ "prefix": "EVENT_DELAY",
83
+ "selector": "eventDelay",
84
+ "requires": ["EVENT_DELAY_UNIT"],
85
+ "label": {"de": "Eventverzögerung", "en": "Event delay"}
86
+ },
87
+ {"kind": "param", "param": "CHANNEL_OPERATION_MODE", "requires": ["CHANNEL_OPERATION_MODE"]},
88
+ {"kind": "param", "param": "EVENT_FILTER_PERIOD", "requires": ["EVENT_FILTER_PERIOD"]},
89
+ {"kind": "param", "param": "MSG_FOR_POS_A", "requires": ["MSG_FOR_POS_A"]},
90
+ {"kind": "param", "param": "MSG_FOR_POS_B", "requires": ["MSG_FOR_POS_B"]},
91
+ {"kind": "param", "param": "MSG_FOR_POS_C", "requires": ["MSG_FOR_POS_C"]},
92
+ {
93
+ "kind": "param",
94
+ "param": "NOTIFICATION_SOUND_TYPE_LOW_TO_HIGH",
95
+ "requires": ["NOTIFICATION_SOUND_TYPE_LOW_TO_HIGH"]
96
+ },
97
+ {
98
+ "kind": "param",
99
+ "param": "NOTIFICATION_SOUND_TYPE_HIGH_TO_LOW",
100
+ "requires": ["NOTIFICATION_SOUND_TYPE_HIGH_TO_LOW"]
101
+ },
102
+ {
103
+ "kind": "param",
104
+ "param": "SENSOR_SENSITIVITY",
105
+ "requires": ["SENSOR_SENSITIVITY"],
106
+ "label": {"de": "Sensor-Empfindlichkeit", "en": "Sensor sensitivity"}
107
+ },
108
+ {"kind": "param", "param": "TRIGGER_ANGLE", "requires": ["TRIGGER_ANGLE"]},
109
+ {"kind": "param", "param": "TRIGGER_ANGLE_HYSTERESIS", "requires": ["TRIGGER_ANGLE_HYSTERESIS"]},
110
+ {"kind": "param", "param": "TRIGGER_ANGLE_2", "requires": ["TRIGGER_ANGLE_2"]},
111
+ {
112
+ "kind": "param",
113
+ "param": "LED_DISABLE_CHANNELSTATE",
114
+ "requires": ["LED_DISABLE_CHANNELSTATE"],
115
+ "label": {"de": "Geräte-LED deaktivieren", "en": "Deactivate device LED"}
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ "when": [{"deviceTypeIncludes": "HmIP-DLP"}],
121
+ "controls": [
122
+ {
123
+ "kind": "param",
124
+ "param": "EVENT_TIMEOUT_VALUE",
125
+ "requires": ["EVENT_TIMEOUT_BASE"],
126
+ "label": {"de": "Wert der Zeitspanne", "en": "Time interval value"}
127
+ },
128
+ {
129
+ "kind": "param",
130
+ "param": "EVENT_FILTER_PERIOD",
131
+ "requires": ["EVENT_FILTER_NUMBER"],
132
+ "label": {"de": "Meldungen bei", "en": "Messages for"}
133
+ },
134
+ {
135
+ "kind": "param",
136
+ "param": "SENSOR_SENSITIVITY",
137
+ "requires": ["SENSOR_SENSITIVITY"],
138
+ "label": {"de": "Erschütterungs-Empfindlichkeit", "en": "Vibration sensitivity"}
139
+ },
140
+ {
141
+ "kind": "time",
142
+ "prefix": "EVENT_DELAY",
143
+ "selector": "eventDelay",
144
+ "requires": ["EVENT_DELAY_UNIT"],
145
+ "label": {"de": "Meldeverzögerung für Lageerkennung", "en": "Message delay for position detection"}
146
+ },
147
+ {
148
+ "kind": "param",
149
+ "param": "TRIGGER_ANGLE",
150
+ "requires": ["TRIGGER_ANGLE"],
151
+ "label": {"de": "Lagetoleranz", "en": "Position tolerance"}
152
+ }
153
+ ]
154
+ }
75
155
  ]
76
156
  },
77
157
  "ACCESS_TRANSCEIVER": {
@@ -453,6 +533,216 @@
453
533
  "requires": ["SENSOR_SENSITIVITY"],
454
534
  "label": {"de": "Sensorempfindlichkeit Hinderniserkennung", "en": "Sensor sensitivity obstacle detection"}
455
535
  }
536
+ ],
537
+ "branches": [
538
+ {
539
+ "when": [{"channelMode": "blind"}],
540
+ "controls": [
541
+ {
542
+ "kind": "time",
543
+ "prefix": "EVENT_DELAY",
544
+ "selector": "eventDelay",
545
+ "requires": ["EVENT_DELAY_UNIT"],
546
+ "label": {"de": "Eventverzögerung", "en": "Event delay"}
547
+ },
548
+ {
549
+ "kind": "time",
550
+ "prefix": "EVENT_RANDOMTIME",
551
+ "selector": "eventRandomTime",
552
+ "requires": ["EVENT_RANDOMTIME_UNIT"],
553
+ "label": {"de": "Zufallsanteil", "en": "Random part"}
554
+ },
555
+ {
556
+ "kind": "param",
557
+ "param": "CHANGE_OVER_DELAY",
558
+ "requires": ["CHANGE_OVER_DELAY"],
559
+ "label": {"de": "Motorrichtungsumschaltzeit", "en": "Blind direction switch-over time"}
560
+ },
561
+ {
562
+ "kind": "param",
563
+ "param": "REFERENCE_RUN_COUNTER",
564
+ "requires": ["REFERENCE_RUN_COUNTER"],
565
+ "label": {
566
+ "de": "Anzahl der Fahrten bis zur automatischen Referenzfahrt",
567
+ "en": "Number of runs until automatic reference drive"
568
+ }
569
+ },
570
+ {
571
+ "kind": "param",
572
+ "param": "POSITION_SAVE_TIME",
573
+ "requires": ["POSITION_SAVE_TIME"],
574
+ "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
575
+ },
576
+ {
577
+ "kind": "param",
578
+ "param": "ENDPOSITION_AUTO_DETECT",
579
+ "requires": ["ENDPOSITION_AUTO_DETECT"],
580
+ "label": {"de": "Automatische Erkennung der Endposition", "en": "Automatic detection of the end position"}
581
+ },
582
+ {
583
+ "kind": "param",
584
+ "param": "REFERENCE_RUNNING_TIME_BOTTOM_TOP_VALUE",
585
+ "requires": ["REFERENCE_RUNNING_TIME_BOTTOM_TOP_UNIT"],
586
+ "label": {"de": "Wert der Fahrzeit", "en": "Value movement time"}
587
+ },
588
+ {
589
+ "kind": "param",
590
+ "param": "REFERENCE_RUNNING_TIME_TOP_BOTTOM_VALUE",
591
+ "requires": ["REFERENCE_RUNNING_TIME_TOP_BOTTOM_UNIT"],
592
+ "label": {"de": "Wert der Fahrzeit", "en": "Value movement time"}
593
+ },
594
+ {
595
+ "kind": "param",
596
+ "param": "REFERENCE_RUNNING_TIME_SLATS_VALUE",
597
+ "requires": ["REFERENCE_RUNNING_TIME_SLATS_UNIT"],
598
+ "label": {"de": "Wert der Lamellenverstellzeit", "en": "Value slat adjustment time"}
599
+ },
600
+ {
601
+ "kind": "param",
602
+ "param": "DELAY_COMPENSATION",
603
+ "requires": ["DELAY_COMPENSATION"],
604
+ "label": {"de": "Zeitverzögerung", "en": "Time delay"}
605
+ }
606
+ ]
607
+ },
608
+ {
609
+ "when": [{"channelMode": "blind", "not": true}, {"channelMode": "shutter"}],
610
+ "controls": [
611
+ {
612
+ "kind": "time",
613
+ "prefix": "EVENT_DELAY",
614
+ "selector": "eventDelay",
615
+ "requires": ["EVENT_DELAY_UNIT"],
616
+ "label": {"de": "Eventverzögerung", "en": "Event delay"}
617
+ },
618
+ {
619
+ "kind": "time",
620
+ "prefix": "EVENT_RANDOMTIME",
621
+ "selector": "eventRandomTime",
622
+ "requires": ["EVENT_RANDOMTIME_UNIT"],
623
+ "label": {"de": "Zufallsanteil", "en": "Random part"}
624
+ },
625
+ {
626
+ "kind": "param",
627
+ "param": "CHANGE_OVER_DELAY",
628
+ "requires": ["CHANGE_OVER_DELAY"],
629
+ "label": {"de": "Motorrichtungsumschaltzeit", "en": "Blind direction switch-over time"}
630
+ },
631
+ {
632
+ "kind": "param",
633
+ "param": "REFERENCE_RUN_COUNTER",
634
+ "requires": ["REFERENCE_RUN_COUNTER"],
635
+ "label": {
636
+ "de": "Anzahl der Fahrten bis zur automatischen Referenzfahrt",
637
+ "en": "Number of runs until automatic reference drive"
638
+ }
639
+ },
640
+ {
641
+ "kind": "param",
642
+ "param": "POSITION_SAVE_TIME",
643
+ "requires": ["POSITION_SAVE_TIME"],
644
+ "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
645
+ },
646
+ {
647
+ "kind": "param",
648
+ "param": "SENSOR_SENSITIVITY",
649
+ "requires": ["SENSOR_SENSITIVITY"],
650
+ "label": {"de": "Sensorempfindlichkeit Hinderniserkennung", "en": "Sensor sensitivity obstacle detection"}
651
+ },
652
+ {
653
+ "kind": "param",
654
+ "param": "ENDPOSITION_AUTO_DETECT",
655
+ "requires": ["ENDPOSITION_AUTO_DETECT"],
656
+ "label": {"de": "Automatische Erkennung der Endposition", "en": "Automatic detection of the end position"}
657
+ },
658
+ {
659
+ "kind": "param",
660
+ "param": "REFERENCE_RUNNING_TIME_BOTTOM_TOP_VALUE",
661
+ "requires": ["REFERENCE_RUNNING_TIME_BOTTOM_TOP_UNIT"],
662
+ "label": {"de": "Wert der Fahrzeit", "en": "Value movement time"}
663
+ },
664
+ {
665
+ "kind": "param",
666
+ "param": "REFERENCE_RUNNING_TIME_TOP_BOTTOM_VALUE",
667
+ "requires": ["REFERENCE_RUNNING_TIME_TOP_BOTTOM_UNIT"],
668
+ "label": {"de": "Wert der Fahrzeit", "en": "Value movement time"}
669
+ },
670
+ {"kind": "param", "param": "DELAY_COMPENSATION", "label": {"de": "Zeitverzögerung", "en": "Time delay"}}
671
+ ]
672
+ },
673
+ {
674
+ "when": [
675
+ {"channelMode": "blind", "not": true},
676
+ {"channelMode": "shutter", "not": true}
677
+ ],
678
+ "controls": [
679
+ {
680
+ "kind": "time",
681
+ "prefix": "EVENT_DELAY",
682
+ "selector": "eventDelay",
683
+ "requires": ["EVENT_DELAY_UNIT"],
684
+ "label": {"de": "Eventverzögerung", "en": "Event delay"}
685
+ },
686
+ {
687
+ "kind": "time",
688
+ "prefix": "EVENT_RANDOMTIME",
689
+ "selector": "eventRandomTime",
690
+ "requires": ["EVENT_RANDOMTIME_UNIT"],
691
+ "label": {"de": "Zufallsanteil", "en": "Random part"}
692
+ },
693
+ {
694
+ "kind": "param",
695
+ "param": "CHANGE_OVER_DELAY",
696
+ "requires": ["CHANGE_OVER_DELAY"],
697
+ "label": {"de": "Motorrichtungsumschaltzeit", "en": "Blind direction switch-over time"}
698
+ },
699
+ {
700
+ "kind": "param",
701
+ "param": "REFERENCE_RUN_COUNTER",
702
+ "requires": ["REFERENCE_RUN_COUNTER"],
703
+ "label": {
704
+ "de": "Anzahl der Fahrten bis zur automatischen Referenzfahrt",
705
+ "en": "Number of runs until automatic reference drive"
706
+ }
707
+ },
708
+ {
709
+ "kind": "param",
710
+ "param": "POSITION_SAVE_TIME",
711
+ "requires": ["POSITION_SAVE_TIME"],
712
+ "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
713
+ },
714
+ {
715
+ "kind": "param",
716
+ "param": "ENDPOSITION_AUTO_DETECT",
717
+ "requires": ["ENDPOSITION_AUTO_DETECT"],
718
+ "label": {"de": "Automatische Erkennung der Endposition", "en": "Automatic detection of the end position"}
719
+ },
720
+ {
721
+ "kind": "param",
722
+ "param": "REFERENCE_RUNNING_TIME_BOTTOM_TOP_VALUE",
723
+ "requires": ["REFERENCE_RUNNING_TIME_BOTTOM_TOP_UNIT"],
724
+ "label": {"de": "Wert der Fahrzeit", "en": "Value movement time"}
725
+ },
726
+ {
727
+ "kind": "param",
728
+ "param": "REFERENCE_RUNNING_TIME_TOP_BOTTOM_VALUE",
729
+ "requires": ["REFERENCE_RUNNING_TIME_TOP_BOTTOM_UNIT"],
730
+ "label": {"de": "Wert der Fahrzeit", "en": "Value movement time"}
731
+ },
732
+ {
733
+ "kind": "param",
734
+ "param": "REFERENCE_RUNNING_TIME_SLATS_VALUE",
735
+ "requires": ["REFERENCE_RUNNING_TIME_SLATS_UNIT"],
736
+ "label": {"de": "Wert der Lamellenverstellzeit", "en": "Value slat adjustment time"}
737
+ },
738
+ {
739
+ "kind": "param",
740
+ "param": "DELAY_COMPENSATION",
741
+ "requires": ["DELAY_COMPENSATION"],
742
+ "label": {"de": "Zeitverzögerung", "en": "Time delay"}
743
+ }
744
+ ]
745
+ }
456
746
  ]
457
747
  },
458
748
  "BLIND_VIRTUAL_RECEIVER": {
@@ -483,6 +773,79 @@
483
773
  "requires": ["POSITION_SAVE_TIME"],
484
774
  "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
485
775
  }
776
+ ],
777
+ "branches": [
778
+ {
779
+ "when": [{"channelMode": "blind"}],
780
+ "controls": [
781
+ {
782
+ "kind": "param",
783
+ "param": "LOGIC_COMBINATION",
784
+ "option": "LOGIC_COMBINATION",
785
+ "requires": ["LOGIC_COMBINATION"],
786
+ "label": {"de": "Verknüpfungsregel Jalousiesteuerung", "en": "Connection rule blind"}
787
+ },
788
+ {
789
+ "kind": "param",
790
+ "param": "LOGIC_COMBINATION_2",
791
+ "option": "LOGIC_COMBINATION",
792
+ "requires": ["LOGIC_COMBINATION"],
793
+ "label": {"de": "Verknüpfungsregel Lamellensteuerung", "en": "Connection rule slat"}
794
+ },
795
+ {
796
+ "kind": "param",
797
+ "param": "POSITION_SAVE_TIME",
798
+ "requires": ["POSITION_SAVE_TIME"],
799
+ "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
800
+ }
801
+ ]
802
+ },
803
+ {
804
+ "when": [{"channelMode": "blind", "not": true}, {"channelMode": "shutter"}],
805
+ "controls": [
806
+ {
807
+ "kind": "param",
808
+ "param": "LOGIC_COMBINATION",
809
+ "option": "LOGIC_COMBINATION",
810
+ "requires": ["LOGIC_COMBINATION"],
811
+ "label": {"de": "Verknüpfungsregel", "en": "Connection rule"}
812
+ },
813
+ {
814
+ "kind": "param",
815
+ "param": "POSITION_SAVE_TIME",
816
+ "requires": ["POSITION_SAVE_TIME"],
817
+ "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
818
+ }
819
+ ]
820
+ },
821
+ {
822
+ "when": [
823
+ {"channelMode": "blind", "not": true},
824
+ {"channelMode": "shutter", "not": true}
825
+ ],
826
+ "controls": [
827
+ {
828
+ "kind": "param",
829
+ "param": "LOGIC_COMBINATION",
830
+ "option": "LOGIC_COMBINATION",
831
+ "requires": ["LOGIC_COMBINATION"],
832
+ "label": {"de": "Verknüpfungsregel Jalousiesteuerung", "en": "Connection rule blind"}
833
+ },
834
+ {
835
+ "kind": "param",
836
+ "param": "LOGIC_COMBINATION_2",
837
+ "option": "LOGIC_COMBINATION",
838
+ "requires": ["LOGIC_COMBINATION"],
839
+ "label": {"de": "Verknüpfungsregel Lamellensteuerung", "en": "Connection rule slat"}
840
+ },
841
+ {
842
+ "kind": "param",
843
+ "param": "POSITION_SAVE_TIME",
844
+ "requires": ["POSITION_SAVE_TIME"],
845
+ "label": {"de": "Position Übernahmezeit", "en": "Position saving time"}
846
+ }
847
+ ]
848
+ }
486
849
  ]
487
850
  },
488
851
  "CARBON_DIOXIDE_RECEIVER": {
@@ -1341,6 +1704,110 @@
1341
1704
  "requires": ["TX_THRESHOLD_POWER"],
1342
1705
  "label": {"de": "der Energieverbrauch um", "en": "the energy consumption by"}
1343
1706
  }
1707
+ ],
1708
+ "branches": [
1709
+ {
1710
+ "when": [{"deviceType": "HmIP-ESI"}, {"channel": 1}],
1711
+ "controls": [
1712
+ {
1713
+ "kind": "param",
1714
+ "param": "METER_CONSTANT_VOLUME",
1715
+ "label": {"de": "Gerätekonstante", "en": "Device constant"}
1716
+ },
1717
+ {
1718
+ "kind": "param",
1719
+ "param": "METER_CONSTANT_ENERGY",
1720
+ "label": {"de": "Gerätekonstante", "en": "Device constant"}
1721
+ },
1722
+ {"kind": "param", "param": "METER_OBIS_SEARCH_STRING", "label": {"de": "OBIS String", "en": "OBIS string"}}
1723
+ ]
1724
+ },
1725
+ {
1726
+ "when": [{"deviceType": "HmIP-ESI"}, {"channel": 1, "not": true}],
1727
+ "controls": [
1728
+ {"kind": "param", "param": "METER_OBIS_SEARCH_STRING", "label": {"de": "OBIS String", "en": "OBIS string"}}
1729
+ ]
1730
+ },
1731
+ {
1732
+ "when": [{"deviceType": "HmIP-ESI", "not": true}, {"deviceType": "HmIP-ESI-IND"}, {"channel": 1}],
1733
+ "controls": [
1734
+ {
1735
+ "kind": "param",
1736
+ "param": "METER_CONSTANT_VOLUME",
1737
+ "requires": ["METER_CONSTANT_VOLUME"],
1738
+ "label": {"de": "Gerätekonstante", "en": "Device constant"}
1739
+ },
1740
+ {
1741
+ "kind": "time",
1742
+ "prefix": "INTERVAL",
1743
+ "selector": "autoIntervalA",
1744
+ "requires": ["INTERVAL_UNIT"],
1745
+ "label": {"de": "Messintervall", "en": "Measurement interval"}
1746
+ }
1747
+ ]
1748
+ },
1749
+ {
1750
+ "when": [
1751
+ {"deviceType": "HmIP-ESI", "not": true},
1752
+ {"deviceType": "HmIP-ESI-IND"},
1753
+ {"channel": 1, "not": true},
1754
+ {"channel": 2}
1755
+ ],
1756
+ "controls": [
1757
+ {"kind": "param", "param": "METER_OBIS_SEARCH_STRING", "label": {"de": "OBIS String", "en": "OBIS string"}}
1758
+ ]
1759
+ },
1760
+ {
1761
+ "when": [
1762
+ {"deviceType": "HmIP-ESI", "not": true},
1763
+ {"deviceType": "HmIP-ESI-IND"},
1764
+ {"channel": 1, "not": true},
1765
+ {"channel": 2, "not": true}
1766
+ ],
1767
+ "controls": []
1768
+ },
1769
+ {
1770
+ "when": [
1771
+ {"deviceType": "HmIP-ESI", "not": true},
1772
+ {"deviceType": "HmIP-ESI-IND", "not": true}
1773
+ ],
1774
+ "controls": [
1775
+ {
1776
+ "kind": "time",
1777
+ "prefix": "EVENT_DELAY",
1778
+ "selector": "eventDelay",
1779
+ "requires": ["EVENT_DELAY_UNIT"],
1780
+ "label": {"de": "Eventverzögerung", "en": "Event delay"}
1781
+ },
1782
+ {
1783
+ "kind": "time",
1784
+ "prefix": "EVENT_RANDOMTIME",
1785
+ "selector": "eventRandomTime",
1786
+ "requires": ["EVENT_RANDOMTIME_UNIT"],
1787
+ "label": {"de": "Zufallsanteil", "en": "Random part"}
1788
+ },
1789
+ {
1790
+ "kind": "time",
1791
+ "prefix": "TX_MINDELAY",
1792
+ "selector": "txMinDelay",
1793
+ "requires": ["TX_MINDELAY_UNIT"],
1794
+ "label": {"de": "Mindestsendeabstand", "en": "Minimum transmission interval"}
1795
+ },
1796
+ {
1797
+ "kind": "param",
1798
+ "param": "AVERAGING",
1799
+ "requires": ["AVERAGING"],
1800
+ "label": {"de": "Mittelwertbildung über", "en": "Averaging via"}
1801
+ },
1802
+ {"kind": "param", "param": "TX_THRESHOLD_POWER", "requires": ["TX_THRESHOLD_POWER"]},
1803
+ {
1804
+ "kind": "param",
1805
+ "param": "TX_THRESHOLD_ENERGY",
1806
+ "requires": ["TX_THRESHOLD_POWER"],
1807
+ "label": {"de": "der Energieverbrauch um", "en": "the energy consumption by"}
1808
+ }
1809
+ ]
1810
+ }
1344
1811
  ]
1345
1812
  },
1346
1813
  "GENERIC_INPUT_TRANSMITER": {
@@ -1554,6 +2021,63 @@
1554
2021
  "requires": ["REPEATED_LONG_PRESS_TIMEOUT_UNIT"],
1555
2022
  "label": {"de": "Timeout für langen Tastendruck", "en": "Time-out for long button press"}
1556
2023
  }
2024
+ ],
2025
+ "branches": [
2026
+ {
2027
+ "when": [{"deviceTypeIncludes": "HmIP-ASIR", "not": true}],
2028
+ "controls": [
2029
+ {
2030
+ "kind": "param",
2031
+ "param": "CHANNEL_OPERATION_MODE",
2032
+ "requires": ["CHANNEL_OPERATION_MODE"],
2033
+ "label": {"de": "Kanal aktiv / inaktiv:", "en": "Channel active / inactive:"}
2034
+ },
2035
+ {
2036
+ "kind": "param",
2037
+ "param": "DISABLE_ACOUSTIC_SENDSTATE",
2038
+ "requires": ["DISABLE_ACOUSTIC_SENDSTATE"],
2039
+ "label": {
2040
+ "de": "Akustische Bestätigung des Tastendrucks deaktivieren",
2041
+ "en": "Deactivate acoustic confirmation of button press"
2042
+ }
2043
+ },
2044
+ {
2045
+ "kind": "param",
2046
+ "param": "LED_DISABLE_CHANNELSTATE",
2047
+ "requires": ["LED_DISABLE_CHANNELSTATE"],
2048
+ "label": {"de": "Geräte-LED deaktivieren", "en": "Deactivate device LED"}
2049
+ },
2050
+ {
2051
+ "kind": "param",
2052
+ "param": "LED_DISABLE_SENDSTATE",
2053
+ "requires": ["LED_DISABLE_SENDSTATE"],
2054
+ "label": {
2055
+ "de": "Visuelle Bestätigung des Tastendrucks deaktivieren",
2056
+ "en": "Deactivate visual confirmation of button press"
2057
+ }
2058
+ },
2059
+ {
2060
+ "kind": "param",
2061
+ "param": "DBL_PRESS_TIME",
2062
+ "requires": ["DBL_PRESS_TIME"],
2063
+ "label": {"de": "Doppelklick-Zeit (Tastensperre)", "en": "Double-click time (keypad lock)"}
2064
+ },
2065
+ {
2066
+ "kind": "param",
2067
+ "param": "LONG_PRESS_TIME",
2068
+ "requires": ["LONG_PRESS_TIME"],
2069
+ "label": {"de": "Mindestdauer für langen Tastendruck", "en": "Minimum duration for long button press"}
2070
+ },
2071
+ {
2072
+ "kind": "time",
2073
+ "prefix": "REPEATED_LONG_PRESS_TIMEOUT",
2074
+ "selector": "timeOnOffShort",
2075
+ "requires": ["REPEATED_LONG_PRESS_TIMEOUT_UNIT"],
2076
+ "label": {"de": "Timeout für langen Tastendruck", "en": "Time-out for long button press"}
2077
+ }
2078
+ ]
2079
+ },
2080
+ {"when": [{"deviceTypeIncludes": "HmIP-ASIR"}], "controls": []}
1557
2081
  ]
1558
2082
  },
1559
2083
  "LEVEL_COMMAND_TRANSMITTER_CO2": {
@@ -471,6 +471,8 @@ export class Backend {
471
471
  return this.#getParamset(p[0], p[1], p[2]);
472
472
  case 'paramset.id':
473
473
  return this.#paramsetId(p[0], p[1]);
474
+ case 'channel.mode':
475
+ return this.#channelMode(p[0], p[1]);
474
476
  case 'paramset.description':
475
477
  return this.#describe(p[0], p[1], p[2]);
476
478
  case 'paramset.put':
@@ -1181,6 +1183,20 @@ export class Backend {
1181
1183
  this.#paramsetIds.set(key, id);
1182
1184
  return id;
1183
1185
  }
1186
+ /**
1187
+ * Task 75: the channel's `channelMode` metadata, which the WebUI's blind forms are drawn by.
1188
+ * Asked each time the dialog opens (the WebUI may have switched it); a fault, no metadata on the
1189
+ * interface or anything but a string is `''`, and the form takes the WebUI's default.
1190
+ */
1191
+ async #channelMode(interfaceName, address) {
1192
+ try {
1193
+ const answer = await this.#read(interfaceName, 'getMetadata', [address, 'channelMode']);
1194
+ return typeof answer === 'string' ? answer : '';
1195
+ }
1196
+ catch {
1197
+ return '';
1198
+ }
1199
+ }
1184
1200
  async #listDevices(interfaceName, options) {
1185
1201
  if (options?.refresh === true || !this.#caches.devices.has(interfaceName)) {
1186
1202
  await this.#refreshDevices(interfaceName);
@@ -1927,6 +1943,7 @@ export const API_METHOD_NAMES = [
1927
1943
  'meta.import',
1928
1944
  'paramset.get',
1929
1945
  'paramset.id',
1946
+ 'channel.mode',
1930
1947
  'paramset.description',
1931
1948
  'paramset.put',
1932
1949
  'paramset.putLink',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homematic-manager/backend",
3
- "version": "3.0.0-beta.24",
3
+ "version": "3.0.0-beta.25",
4
4
  "type": "module",
5
5
  "description": "Homematic Manager backend: XML-RPC/BIN-RPC clients and callback servers, caches, optional ReGa",
6
6
  "license": "AGPL-3.0-or-later",
@@ -1087,6 +1087,15 @@ export interface ApiMethods {
1087
1087
  params: [interfaceName: string, address: string];
1088
1088
  result: string;
1089
1089
  };
1090
+ /**
1091
+ * Task 75: the channel's `channelMode` metadata (`getMetadata(address, 'channelMode')`) - `blind`
1092
+ * or `shutter` on a blind actuator, which the WebUI draws its MASTER form by. `''` where it is not
1093
+ * set, the interface has no metadata, or refuses; never cached, the WebUI may change it.
1094
+ */
1095
+ 'channel.mode': {
1096
+ params: [interfaceName: string, address: string];
1097
+ result: string;
1098
+ };
1090
1099
  'paramset.description': {
1091
1100
  params: [interfaceName: string, address: string, paramset: string];
1092
1101
  result: ParamsetDescription;