iobroker.alias-workbench 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +58 -98
  2. package/admin/css/werkbank.css +88 -0
  3. package/admin/i18n/de.json +766 -1
  4. package/admin/i18n/en.json +766 -1
  5. package/admin/i18n/es.json +766 -1
  6. package/admin/i18n/fr.json +766 -1
  7. package/admin/i18n/it.json +766 -1
  8. package/admin/i18n/nl.json +766 -1
  9. package/admin/i18n/pl.json +766 -1
  10. package/admin/i18n/pt.json +766 -1
  11. package/admin/i18n/ru.json +766 -1
  12. package/admin/i18n/uk.json +766 -1
  13. package/admin/i18n/zh-cn.json +766 -1
  14. package/admin/js/ablage.js +118 -0
  15. package/admin/js/attrappe.js +749 -0
  16. package/admin/js/baum.js +52 -5
  17. package/admin/js/detail.js +64 -3
  18. package/admin/js/entwurf.js +246 -31
  19. package/admin/js/ergebnis.js +77 -2
  20. package/admin/js/katalog.js +235 -40
  21. package/admin/js/mqtt.js +297 -27
  22. package/admin/js/musternamen.js +70 -26
  23. package/admin/js/objekte.js +2 -0
  24. package/admin/js/quellentausch.js +823 -16
  25. package/admin/js/schreiben.js +3 -2
  26. package/admin/js/sprache.js +11 -8
  27. package/admin/js/vorlagen.js +8 -3
  28. package/admin/js/vorlagenblatt.js +228 -64
  29. package/admin/js/werte.js +294 -5
  30. package/admin/js/zielleiste.js +19 -10
  31. package/admin/js/zuordnung.js +8 -7
  32. package/admin/js/zustand.js +32 -0
  33. package/admin/js/zustandsliste.js +9 -2
  34. package/admin/tab.html +24 -0
  35. package/admin/vorlagen/hm-dimmer.json +32 -8
  36. package/admin/vorlagen/hm-fensterkontakt-hm.json +20 -5
  37. package/admin/vorlagen/hm-fensterkontakt-hmip.json +28 -7
  38. package/admin/vorlagen/hm-heizgruppe.json +38 -11
  39. package/admin/vorlagen/hm-heizkoerper.json +42 -12
  40. package/admin/vorlagen/hm-rollladen.json +28 -7
  41. package/admin/vorlagen/hm-schaltaktor-lampe.json +24 -6
  42. package/admin/vorlagen/hm-schaltaktor-mehrfach.json +32 -8
  43. package/admin/vorlagen/hm-schaltaktor-steckdose.json +24 -6
  44. package/admin/vorlagen/hm-temperatur-feuchte.json +8 -2
  45. package/admin/vorlagen/hm-wandthermostat.json +36 -9
  46. package/admin/vorlagen/messpunkt.json +40 -10
  47. package/admin/vorlagen/tasmota-lampe.json +48 -12
  48. package/admin/vorlagen/tasmota-mehrfach.json +40 -10
  49. package/admin/vorlagen/tasmota-rgb.json +36 -9
  50. package/admin/vorlagen/tasmota-steckdose.json +56 -14
  51. package/io-package.json +41 -28
  52. package/package.json +3 -3
  53. package/admin/sprachen/de.json +0 -685
  54. package/admin/sprachen/en.json +0 -685
@@ -20,7 +20,10 @@
20
20
  "verboten": [
21
21
  "1.WORKING"
22
22
  ],
23
- "hinweis": "1.ERROR gibt es beim HmIP-Kontakt nicht - daran trennen sich die beiden Fassungen. 1.WORKING bleibt verboten, damit kein Schaltaktor hier hereinrutscht."
23
+ "hinweis": {
24
+ "de": "1.ERROR gibt es beim HmIP-Kontakt nicht - daran trennen sich die beiden Fassungen. 1.WORKING bleibt verboten, damit kein Schaltaktor hier hereinrutscht.",
25
+ "en": "1.ERROR does not exist on the HmIP contact — that is what separates the two variants. 1.WORKING stays forbidden so no switch actuator slips in here."
26
+ }
24
27
  },
25
28
  "zustaende": [
26
29
  {
@@ -36,7 +39,10 @@
36
39
  "lesen": "1.ERROR",
37
40
  "optional": true,
38
41
  "vorgabeAus": true,
39
- "hinweis": "0 heisst in Ordnung, 7 Sabotage. Das window-Muster hat keinen Platz dafuer - angehakt landet der Punkt im info-Geraet."
42
+ "hinweis": {
43
+ "de": "0 heisst in Ordnung, 7 Sabotage. Das window-Muster hat keinen Platz dafuer - angehakt landet der Punkt im info-Geraet.",
44
+ "en": "0 means OK, 7 sabotage. The window pattern has no slot for it — ticked, the point lands in the info device."
45
+ }
40
46
  },
41
47
  {
42
48
  "name": "LOWBAT",
@@ -47,7 +53,10 @@
47
53
  "punkt": "1.LOWBAT"
48
54
  },
49
55
  "optional": true,
50
- "hinweis": "Dieses Geraet fuehrt LOWBAT zweimal, an Kanal 0 und an Kanal 1. Kanal 0 ist der Wartungskanal und die richtige Adresse."
56
+ "hinweis": {
57
+ "de": "Dieses Geraet fuehrt LOWBAT zweimal, an Kanal 0 und an Kanal 1. Kanal 0 ist der Wartungskanal und die richtige Adresse.",
58
+ "en": "This device carries LOWBAT twice, on channel 0 and on channel 1. Channel 0 is the maintenance channel and the right address."
59
+ }
51
60
  },
52
61
  {
53
62
  "name": "UNREACH",
@@ -63,7 +72,10 @@
63
72
  "lesen": "0.STICKY_UNREACH",
64
73
  "optional": true,
65
74
  "vorgabeAus": true,
66
- "hinweis": "Bleibt stehen, bis jemand sie zuruecksetzt - zeigt also auch einen Ausfall an, der schon wieder vorbei ist."
75
+ "hinweis": {
76
+ "de": "Bleibt stehen, bis jemand sie zuruecksetzt - zeigt also auch einen Ausfall an, der schon wieder vorbei ist.",
77
+ "en": "Stays set until someone clears it — so it also shows a failure that has already passed."
78
+ }
67
79
  },
68
80
  {
69
81
  "name": "RSSI",
@@ -76,7 +88,10 @@
76
88
  },
77
89
  "optional": true,
78
90
  "vorgabeAus": true,
79
- "hinweis": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648."
91
+ "hinweis": {
92
+ "de": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648.",
93
+ "en": "RSSI_DEVICE comes first: it is the level the central unit receives from the device. RSSI_PEER is often empty on battery devices and then carries sentinel values such as -2147483648."
94
+ }
80
95
  }
81
96
  ],
82
97
  "weiterePunkte": {
@@ -23,7 +23,10 @@
23
23
  "1.ERROR",
24
24
  "1.SET_POINT_TEMPERATURE"
25
25
  ],
26
- "hinweis": "0.SABOTAGE ist die eigentliche Kennung. Ohne sie tragen die Ausschluesse die ganze Last, und Ausschluesse zaehlen nur auf, was man kennt: 1.STATE zusammen mit 0.LOW_BAT trifft auf dem Testsystem zwoelf Geraete, davon acht Schaltaktoren (HM-LC-Sw1PBU-FM und Verwandte) und den alten HM-Sec-SCo. Mit 0.SABOTAGE bleiben genau die drei HmIP-Fensterkontakte uebrig - die Schaltaktoren fuehren den Punkt nicht, der HM-Sec-SCo auch nicht, und die Heizgruppen haben ihn zwar, aber kein 1.STATE.\n\nDie Ausschluesse bleiben trotzdem stehen: 1.WORKING kennzeichnet den Schaltaktor, 1.ERROR die aeltere HM-Sec-SCo mit eigener Vorlage, SET_POINT_TEMPERATURE haelt die Thermostate fern, die ebenfalls 0.LOW_BAT fuehren.\n\nVorbehalt: Gemessen ist das an HMIP-SWDO. Ob jedes HmIP-Modell den Sabotagekontakt fuehrt - SWDO-I verdeckt, SWDO-PL, der Fenstergriff SRH - ist nicht geprueft. Bei HmIP-Gehaeusegeraeten ist er ueblich; faellt doch eines durch, gehoert dort eine eigene Vorlage hin."
26
+ "hinweis": {
27
+ "de": "0.SABOTAGE ist die eigentliche Kennung. Ohne sie tragen die Ausschluesse die ganze Last, und Ausschluesse zaehlen nur auf, was man kennt: 1.STATE zusammen mit 0.LOW_BAT trifft auf dem Testsystem zwoelf Geraete, davon acht Schaltaktoren (HM-LC-Sw1PBU-FM und Verwandte) und den alten HM-Sec-SCo. Mit 0.SABOTAGE bleiben genau die drei HmIP-Fensterkontakte uebrig - die Schaltaktoren fuehren den Punkt nicht, der HM-Sec-SCo auch nicht, und die Heizgruppen haben ihn zwar, aber kein 1.STATE.\n\nDie Ausschluesse bleiben trotzdem stehen: 1.WORKING kennzeichnet den Schaltaktor, 1.ERROR die aeltere HM-Sec-SCo mit eigener Vorlage, SET_POINT_TEMPERATURE haelt die Thermostate fern, die ebenfalls 0.LOW_BAT fuehren.\n\nVorbehalt: Gemessen ist das an HMIP-SWDO. Ob jedes HmIP-Modell den Sabotagekontakt fuehrt - SWDO-I verdeckt, SWDO-PL, der Fenstergriff SRH - ist nicht geprueft. Bei HmIP-Gehaeusegeraeten ist er ueblich; faellt doch eines durch, gehoert dort eine eigene Vorlage hin.",
28
+ "en": "0.SABOTAGE is the real signature. Without it the exclusions carry the whole load, and exclusions only count what one already knows: 1.STATE together with 0.LOW_BAT matches twelve devices on the test system, eight of them switch actuators (HM-LC-Sw1PBU-FM and relatives) and the old HM-Sec-SCo. With 0.SABOTAGE exactly the three HmIP window contacts remain — the switch actuators do not carry the point, nor does the HM-Sec-SCo, and the heating groups do have it but no 1.STATE.\n\nThe exclusions stay anyway: 1.WORKING marks the switch actuator, 1.ERROR the older HM-Sec-SCo with its own template, SET_POINT_TEMPERATURE keeps away the thermostats, which also carry 0.LOW_BAT.\n\nCaveat: this was measured on HMIP-SWDO. Whether every HmIP model carries the sabotage contact — SWDO-I concealed, SWDO-PL, the window handle SRH — has not been checked. On HmIP enclosure devices it is usual; if one does fall through, it needs a template of its own."
29
+ }
27
30
  },
28
31
  "zustaende": [
29
32
  {
@@ -32,7 +35,10 @@
32
35
  "typ": "boolean",
33
36
  "lesen": "1.STATE",
34
37
  "leseformel": "val > 0",
35
- "hinweis": "Die Quelle steht auf 0 bis 1. Groesser null heisst offen."
38
+ "hinweis": {
39
+ "de": "Die Quelle steht auf 0 bis 1. Groesser null heisst offen.",
40
+ "en": "The source is on a 0 to 1 scale. Greater than zero means open."
41
+ }
36
42
  },
37
43
  {
38
44
  "name": "STATE_RAW",
@@ -41,7 +47,10 @@
41
47
  "lesen": "1.STATE",
42
48
  "optional": true,
43
49
  "vorgabeAus": true,
44
- "hinweis": "Derselbe Punkt ungerechnet. Nur noetig, wenn etwas die Rohzahl braucht - im window-Muster hat sie keinen Platz und landet im info-Geraet."
50
+ "hinweis": {
51
+ "de": "Derselbe Punkt ungerechnet. Nur noetig, wenn etwas die Rohzahl braucht - im window-Muster hat sie keinen Platz und landet im info-Geraet.",
52
+ "en": "The same point, unconverted. Only needed when something wants the raw number — the window pattern has no slot for it and it lands in the info device."
53
+ }
45
54
  },
46
55
  {
47
56
  "name": "SABOTAGE",
@@ -49,7 +58,10 @@
49
58
  "typ": "boolean",
50
59
  "lesen": "0.SABOTAGE",
51
60
  "optional": true,
52
- "hinweis": "Meldet, wenn das Gehaeuse geoeffnet wurde. Nicht vorgehakt: weder window- noch info-Muster haben einen Platz dafuer - wer die Meldung will, hakt sie an. Als Erkennungsmerkmal (erkennung.erforderlich) traegt 0.SABOTAGE weiter.",
61
+ "hinweis": {
62
+ "de": "Meldet, wenn das Gehaeuse geoeffnet wurde. Nicht vorgehakt: weder window- noch info-Muster haben einen Platz dafuer - wer die Meldung will, hakt sie an. Als Erkennungsmerkmal (erkennung.erforderlich) traegt 0.SABOTAGE weiter.",
63
+ "en": "Reports when the enclosure was opened. Not ticked: neither the window nor the info pattern has a slot for it — tick it if you want the report. As a detection mark (erkennung.erforderlich) 0.SABOTAGE stays."
64
+ },
53
65
  "vorgabeAus": true
54
66
  },
55
67
  {
@@ -61,7 +73,10 @@
61
73
  "punkt": "0.LOWBAT"
62
74
  },
63
75
  "optional": true,
64
- "hinweis": "HmIP schreibt LOW_BAT, die aeltere Homematic-Reihe LOWBAT."
76
+ "hinweis": {
77
+ "de": "HmIP schreibt LOW_BAT, die aeltere Homematic-Reihe LOWBAT.",
78
+ "en": "HmIP writes LOW_BAT, the older Homematic line writes LOWBAT."
79
+ }
65
80
  },
66
81
  {
67
82
  "name": "UNREACH",
@@ -78,7 +93,10 @@
78
93
  "lesen": "0.OPERATING_VOLTAGE",
79
94
  "optional": true,
80
95
  "vorgabeAus": true,
81
- "hinweis": "Batteriespannung. Nicht vorgehakt, und der VOLTAGE-Platz des Musters ist dafuer auch nicht gedacht: im type-detector gehoert VOLTAGE zur Messgruppe neben Strom, Verbrauch und Frequenz - es ist die Netzspannung eines messenden Geraets. Fuer Batterien gibt es dort nur BATTERY mit value.battery in Prozent. Einen Platz fuer „Batteriespannung in Volt\" kennt der Detector nicht. Angehakt landet der Punkt deshalb im info-Geraet. Dass die Batterie zur Neige geht, meldet LOWBAT, und das ist vorgehakt."
96
+ "hinweis": {
97
+ "de": "Batteriespannung. Nicht vorgehakt, und der VOLTAGE-Platz des Musters ist dafuer auch nicht gedacht: im type-detector gehoert VOLTAGE zur Messgruppe neben Strom, Verbrauch und Frequenz - es ist die Netzspannung eines messenden Geraets. Fuer Batterien gibt es dort nur BATTERY mit value.battery in Prozent. Einen Platz fuer „Batteriespannung in Volt\" kennt der Detector nicht. Angehakt landet der Punkt deshalb im info-Geraet. Dass die Batterie zur Neige geht, meldet LOWBAT, und das ist vorgehakt.",
98
+ "en": "Battery voltage. Not ticked, and the pattern's VOLTAGE slot is not meant for it either: in the type-detector VOLTAGE belongs to the metering group next to current, consumption and frequency — it is the mains voltage of a metering device. For batteries there is only BATTERY with value.battery in percent. The detector has no slot for \"battery voltage in volts\". Ticked, the point therefore lands in the info device. That the battery is running low is reported by LOWBAT, and that one is ticked."
99
+ }
82
100
  },
83
101
  {
84
102
  "name": "RSSI",
@@ -91,7 +109,10 @@
91
109
  },
92
110
  "optional": true,
93
111
  "vorgabeAus": true,
94
- "hinweis": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648."
112
+ "hinweis": {
113
+ "de": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648.",
114
+ "en": "RSSI_DEVICE comes first: it is the level the central unit receives from the device. RSSI_PEER is often empty on battery devices and then carries sentinel values such as -2147483648."
115
+ }
95
116
  }
96
117
  ],
97
118
  "weiterePunkte": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "hm-heizgruppe",
3
- "version": 3,
3
+ "version": 4,
4
4
  "rang": 46,
5
5
  "name": {
6
6
  "de": "HmIP Heizgruppe",
@@ -8,13 +8,19 @@
8
8
  },
9
9
  "geraetetyp": "thermostat",
10
10
  "funktion": "heating",
11
- "hinweis": "Die Heizgruppe eines Raums (HmIP-HEATING, in der Zentrale als INT000000x). Sie ist kein Gerät, sondern eine Zusammenfassung: Wandthermostat, Heizkörperventile und ein etwaiger Fensterkontakt regeln darin gemeinsam. Deshalb führt sie beides — Luftfeuchte vom Wandthermostaten und Ventilstellung vom Heizkörper — und deshalb fehlen ihr Funkpegel und Batteriespannung: die gehören den Geräten darin, nicht der Gruppe.\n\nSie ist der richtige Alias für einen Raum. Wer stattdessen das einzelne Ventil nimmt, stellt die Regelung neben die Gruppe statt in sie hinein.",
11
+ "hinweis": {
12
+ "de": "Die Heizgruppe eines Raums (HmIP-HEATING, in der Zentrale als INT000000x). Sie ist kein Gerät, sondern eine Zusammenfassung: Wandthermostat, Heizkörperventile und ein etwaiger Fensterkontakt regeln darin gemeinsam. Deshalb führt sie beides — Luftfeuchte vom Wandthermostaten und Ventilstellung vom Heizkörper — und deshalb fehlen ihr Funkpegel und Batteriespannung: die gehören den Geräten darin, nicht der Gruppe.\n\nSie ist der richtige Alias für einen Raum. Wer stattdessen das einzelne Ventil nimmt, stellt die Regelung neben die Gruppe statt in sie hinein.",
13
+ "en": "The heating group of a room (HmIP-HEATING, in the central unit as INT000000x). It is not a device but a summary: wall thermostat, radiator valves and any window contact control together inside it. That is why it carries both — humidity from the wall thermostat and valve position from the radiator — and why it has no signal level and no battery voltage: those belong to the devices inside it, not to the group.\n\nIt is the right alias for a room. Taking the single valve instead puts the control beside the group rather than inside it."
14
+ },
12
15
  "erkennung": {
13
16
  "erforderlich": [
14
17
  "1.SET_POINT_TEMPERATURE",
15
18
  "4.SECTION"
16
19
  ],
17
- "hinweis": "Kanal 4 fuehrt SECTION und PROCESS - das hat nur die Gruppe. Ein hoeherer Rang als bei Heizkoerper und Wandthermostat sorgt dafuer, dass sie gewinnt, wo sie zutrifft."
20
+ "hinweis": {
21
+ "de": "Kanal 4 fuehrt SECTION und PROCESS - das hat nur die Gruppe. Ein hoeherer Rang als bei Heizkoerper und Wandthermostat sorgt dafuer, dass sie gewinnt, wo sie zutrifft.",
22
+ "en": "Channel 4 carries SECTION and PROCESS — only the group has that. A higher rank than the radiator and the wall thermostat makes it win wherever it matches."
23
+ }
18
24
  },
19
25
  "zustaende": [
20
26
  {
@@ -38,15 +44,21 @@
38
44
  "typ": "number",
39
45
  "einheit": "%",
40
46
  "lesen": "1.HUMIDITY",
41
- "hinweis": "Kommt vom Wandthermostaten der Gruppe."
47
+ "hinweis": {
48
+ "de": "Kommt vom Wandthermostaten der Gruppe.",
49
+ "en": "Comes from the group's wall thermostat."
50
+ }
42
51
  },
43
52
  {
44
53
  "name": "VALVE",
45
54
  "rolle": "value.valve",
46
55
  "typ": "number",
47
56
  "einheit": "%",
48
- "lesen": "1.VALVE_STATE",
49
- "hinweis": "Die Ventilstellung der Heizkoerper in dieser Gruppe."
57
+ "lesen": "1.LEVEL",
58
+ "hinweis": {
59
+ "de": "Die Ventilstellung der Heizkoerper in dieser Gruppe, 0 bis 100 Prozent. NICHT 1.VALVE_STATE — siehe hm-heizkoerper: das ist bei HmIP ein Zustandscode 0-8, kein Oeffnungsgrad. An allen sieben Gruppen von Ricardo nachgemessen (01.10.2026): 1.LEVEL traegt max 100 und die Einheit Prozent, 1.VALVE_STATE ist ENUM.",
60
+ "en": "The valve position of the radiators in this group, 0 to 100 percent. NOT 1.VALVE_STATE — see hm-heizkoerper: on HmIP that is a state code 0-8, not an opening percentage. Measured on all seven of Ricardo's groups (01.10.2026): 1.LEVEL has max 100 and the unit percent, 1.VALVE_STATE is an ENUM."
61
+ }
50
62
  },
51
63
  {
52
64
  "name": "MODE",
@@ -61,7 +73,10 @@
61
73
  "2": "Urlaub",
62
74
  "3": "Modus 3"
63
75
  },
64
- "hinweis": "Der Platz MODE verlangt eine Werteliste - ohne common.states steht im Widget nur eine nackte Zahl. Die Quelle liefert keine mit: hm-rpc meldet den Punkt als INTEGER 0 bis 3 ohne VALUE_LIST.\nBelegt sind 0, 1 und 2. Die Zuordnung steht so in aiohomematic, der Bibliothek hinter der Homematic-Anbindung von Home Assistant: AUTO=0, MANU=1, AWAY=2. Automatik heisst, das Wochenprogramm laeuft; Manuell haelt den eingestellten Sollwert; Urlaub (englisch away) ist der Modus, zu dem PARTY_MODE und PARTY_TIME_START/END gehoeren.\n3 bleibt neutral - bei HmIP kennt aiohomematic keine 3, und Boost laeuft ueber den eigenen Punkt."
76
+ "hinweis": {
77
+ "de": "Der Platz MODE verlangt eine Werteliste - ohne common.states steht im Widget nur eine nackte Zahl. Die Quelle liefert keine mit: hm-rpc meldet den Punkt als INTEGER 0 bis 3 ohne VALUE_LIST.\nBelegt sind 0, 1 und 2. Die Zuordnung steht so in aiohomematic, der Bibliothek hinter der Homematic-Anbindung von Home Assistant: AUTO=0, MANU=1, AWAY=2. Automatik heisst, das Wochenprogramm laeuft; Manuell haelt den eingestellten Sollwert; Urlaub (englisch away) ist der Modus, zu dem PARTY_MODE und PARTY_TIME_START/END gehoeren.\n3 bleibt neutral - bei HmIP kennt aiohomematic keine 3, und Boost laeuft ueber den eigenen Punkt.",
78
+ "en": "The MODE slot requires a value list — without common.states the widget shows a bare number. The source supplies none: hm-rpc reports the point as INTEGER 0 to 3 without a VALUE_LIST.\n0, 1 and 2 are used. The mapping is the one in aiohomematic, the library behind Home Assistant's Homematic integration: AUTO=0, MANU=1, AWAY=2. Automatic means the week programme is running; manual holds the setpoint; holiday (English: away) is the mode that PARTY_MODE and PARTY_TIME_START/END belong to.\n3 stays neutral — on HmIP aiohomematic knows no 3, and boost runs through its own point."
79
+ }
65
80
  },
66
81
  {
67
82
  "name": "BOOST",
@@ -78,7 +93,10 @@
78
93
  "lesen": "1.PARTY_MODE",
79
94
  "optional": true,
80
95
  "vorgabeAus": true,
81
- "hinweis": "Nur lesbar. Gehoert zum Urlaubsmodus und wird ueber MODE gesetzt, nicht hier."
96
+ "hinweis": {
97
+ "de": "Nur lesbar. Gehoert zum Urlaubsmodus und wird ueber MODE gesetzt, nicht hier.",
98
+ "en": "Read only. Belongs to holiday mode and is set via MODE, not here."
99
+ }
82
100
  },
83
101
  {
84
102
  "name": "WINDOW_STATE",
@@ -91,7 +109,10 @@
91
109
  "0": "zu",
92
110
  "1": "offen"
93
111
  },
94
- "hinweis": "Bei der Gruppe kommt der Wert vom Fensterkontakt, der ihr zugeordnet ist - hier steht also, ob im Raum ein Fenster offen ist und die Heizung deshalb zurueckfaehrt.\n\nTrotzdem nicht vorgehakt: Das thermostat-Muster hat zwar einen Platz WINDOW, der nimmt aber nur sensor.window oder state.window - die Quelle liefert eine Zahl mit value.window. Angehakt landet der Punkt deshalb im info-Geraet statt im Thermostat. Wer ihn drin haben will, rechnet ihn per Leseformel auf einen Wahrheitswert um (`val === 1`) und setzt die Rolle auf sensor.window."
112
+ "hinweis": {
113
+ "de": "Bei der Gruppe kommt der Wert vom Fensterkontakt, der ihr zugeordnet ist - hier steht also, ob im Raum ein Fenster offen ist und die Heizung deshalb zurueckfaehrt.\n\nTrotzdem nicht vorgehakt: Das thermostat-Muster hat zwar einen Platz WINDOW, der nimmt aber nur sensor.window oder state.window - die Quelle liefert eine Zahl mit value.window. Angehakt landet der Punkt deshalb im info-Geraet statt im Thermostat. Wer ihn drin haben will, rechnet ihn per Leseformel auf einen Wahrheitswert um (`val === 1`) und setzt die Rolle auf sensor.window.",
114
+ "en": "On the group the value comes from the window contact assigned to it — so this says whether a window in the room is open and the heating is therefore set back.\n\nStill not ticked: the thermostat pattern does have a WINDOW slot, but it only accepts sensor.window or state.window — the source delivers a number with value.window. Ticked, the point therefore lands in the info device instead of the thermostat. To keep it in the thermostat, convert it to a boolean with a read formula (`val === 1`) and set the role to sensor.window."
115
+ }
95
116
  },
96
117
  {
97
118
  "name": "LOWBAT",
@@ -99,7 +120,10 @@
99
120
  "typ": "boolean",
100
121
  "lesen": "0.LOW_BAT",
101
122
  "optional": true,
102
- "hinweis": "Die Gruppe fasst die Batteriewarnungen ihrer Mitglieder zusammen."
123
+ "hinweis": {
124
+ "de": "Die Gruppe fasst die Batteriewarnungen ihrer Mitglieder zusammen.",
125
+ "en": "The group combines the battery warnings of its members."
126
+ }
103
127
  },
104
128
  {
105
129
  "name": "UNREACH",
@@ -114,7 +138,10 @@
114
138
  "typ": "boolean",
115
139
  "lesen": "0.ERROR_OVERHEAT",
116
140
  "optional": true,
117
- "hinweis": "Ueberhitzungsmeldung der Gruppe. Vorgehakt, weil sie ein Ausfallhinweis ist und keine Diagnosegroesse: `indicator.error` gehoert zur selben Wartungsgruppe wie LOWBAT und UNREACH. Nicht genommen sind 0.ERROR_CODE - ein Zahlencode ohne Werteliste, waehrend der Platz einen Indikator erwartet - und 0.SABOTAGE: Gehaeusemanipulation ist kein Heizungsausfall."
141
+ "hinweis": {
142
+ "de": "Ueberhitzungsmeldung der Gruppe. Vorgehakt, weil sie ein Ausfallhinweis ist und keine Diagnosegroesse: `indicator.error` gehoert zur selben Wartungsgruppe wie LOWBAT und UNREACH. Nicht genommen sind 0.ERROR_CODE - ein Zahlencode ohne Werteliste, waehrend der Platz einen Indikator erwartet - und 0.SABOTAGE: Gehaeusemanipulation ist kein Heizungsausfall.",
143
+ "en": "Overheating report of the group. Ticked because it is a failure indication and not a diagnostic value: `indicator.error` belongs to the same maintenance group as LOWBAT and UNREACH. Not taken are 0.ERROR_CODE — a numeric code without a value list, while the slot expects an indicator — and 0.SABOTAGE: enclosure tampering is not a heating failure."
144
+ }
118
145
  }
119
146
  ],
120
147
  "weiterePunkte": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "hm-heizkoerper",
3
- "version": 3,
3
+ "version": 4,
4
4
  "rang": 42,
5
5
  "name": {
6
6
  "de": "HmIP Heizkörperthermostat",
@@ -8,7 +8,10 @@
8
8
  },
9
9
  "geraetetyp": "thermostat",
10
10
  "funktion": "heating",
11
- "hinweis": "HmIP-eTRV und Verwandte — das Ventil am Heizkörper. Es regelt und meldet seine Stellung, misst aber keine Luftfeuchte; dafür ist der Wandthermostat da. Entsprechend fehlt hier HUMIDITY, und es fehlt mit Absicht: Wer es als optionalen Platz stehen lässt, bekommt bei jedem Gerät die Meldung „weggelassen, weil die Quelle fehlt\".",
11
+ "hinweis": {
12
+ "de": "HmIP-eTRV und Verwandte — das Ventil am Heizkörper. Es regelt und meldet seine Stellung, misst aber keine Luftfeuchte; dafür ist der Wandthermostat da. Entsprechend fehlt hier HUMIDITY, und es fehlt mit Absicht: Wer es als optionalen Platz stehen lässt, bekommt bei jedem Gerät die Meldung „weggelassen, weil die Quelle fehlt\".",
13
+ "en": "HmIP-eTRV and relatives — the valve on the radiator. It controls and reports its position, but it does not measure humidity; that is what the wall thermostat is for. HUMIDITY is therefore absent here, and absent on purpose: leaving it as an optional slot produces the message \"left out because the source is missing\" on every device."
14
+ },
12
15
  "erkennung": {
13
16
  "erforderlich": [
14
17
  "1.SET_POINT_TEMPERATURE",
@@ -18,7 +21,10 @@
18
21
  "1.HUMIDITY",
19
22
  "4.SECTION"
20
23
  ],
21
- "hinweis": "1.LEVEL ist die Ventilstellung und trennt vom Wandthermostaten, der keine hat. 1.HUMIDITY haelt den Wandthermostaten fern, 4.SECTION die Heizgruppe - die fuehrt beides und wuerde sonst hier haengenbleiben."
24
+ "hinweis": {
25
+ "de": "1.LEVEL ist die Ventilstellung und trennt vom Wandthermostaten, der keine hat. 1.HUMIDITY haelt den Wandthermostaten fern, 4.SECTION die Heizgruppe - die fuehrt beides und wuerde sonst hier haengenbleiben.",
26
+ "en": "1.LEVEL is the valve position and separates this from the wall thermostat, which has none. 1.HUMIDITY keeps the wall thermostat away, 4.SECTION the heating group — that one carries both and would otherwise stick here."
27
+ }
22
28
  },
23
29
  "zustaende": [
24
30
  {
@@ -41,8 +47,11 @@
41
47
  "rolle": "value.valve",
42
48
  "typ": "number",
43
49
  "einheit": "%",
44
- "lesen": "1.VALVE_STATE",
45
- "hinweis": "Wie weit das Ventil offen steht. VALVE_STATE ist der gemeldete Istwert; 1.LEVEL daneben laesst sich auch schreiben, gehoert aber der Regelung und nicht dem Nutzer."
50
+ "lesen": "1.LEVEL",
51
+ "hinweis": {
52
+ "de": "Wie weit das Ventil offen steht, 0 bis 100 Prozent. NICHT 1.VALVE_STATE: das heisst bei HmIP zwar so, ist aber ein Zustandscode 0-8 (STATE_NOT_AVAILABLE, ADAPTION_DONE, TOO_TIGHT, ERROR_POSITION, …) und hat mit dem Oeffnungsgrad nichts zu tun. Bis zum 01.10.2026 stand hier VALVE_STATE, und der Platz zeigte deshalb eine Codenummer mit einem Prozentzeichen dahinter: am HK_Badezimmer eine 4, also ADAPTION_DONE, angezeigt als 4 Prozent. Aufgefallen ist es nie, weil die Zahl plausibel aussieht. Die Erkennung dieser Vorlage verlangt 1.LEVEL ohnehin schon.",
53
+ "en": "How far the valve is open, 0 to 100 percent. NOT 1.VALVE_STATE: on HmIP the name says valve, but it is a state code 0-8 (STATE_NOT_AVAILABLE, ADAPTION_DONE, TOO_TIGHT, ERROR_POSITION, …) and has nothing to do with the opening percentage. Until 01.10.2026 this read VALVE_STATE, so the slot showed a code number with a percent sign after it: on HK_Badezimmer a 4, that is ADAPTION_DONE, displayed as 4 percent. It never stood out, because the number looks plausible. This template's detection already requires 1.LEVEL anyway."
54
+ }
46
55
  },
47
56
  {
48
57
  "name": "MODE",
@@ -57,7 +66,10 @@
57
66
  "2": "Urlaub",
58
67
  "3": "Modus 3"
59
68
  },
60
- "hinweis": "Der Platz MODE verlangt eine Werteliste - ohne common.states steht im Widget nur eine nackte Zahl. Die Quelle liefert keine mit: hm-rpc meldet den Punkt als INTEGER 0 bis 3 ohne VALUE_LIST.\nBelegt sind 0, 1 und 2. Die Zuordnung steht so in aiohomematic, der Bibliothek hinter der Homematic-Anbindung von Home Assistant: AUTO=0, MANU=1, AWAY=2. Automatik heisst, das Wochenprogramm laeuft; Manuell haelt den eingestellten Sollwert; Urlaub (englisch away) ist der Modus, zu dem PARTY_MODE und PARTY_TIME_START/END gehoeren.\n3 bleibt neutral - bei HmIP kennt aiohomematic keine 3, und Boost laeuft ueber den eigenen Punkt."
69
+ "hinweis": {
70
+ "de": "Der Platz MODE verlangt eine Werteliste - ohne common.states steht im Widget nur eine nackte Zahl. Die Quelle liefert keine mit: hm-rpc meldet den Punkt als INTEGER 0 bis 3 ohne VALUE_LIST.\nBelegt sind 0, 1 und 2. Die Zuordnung steht so in aiohomematic, der Bibliothek hinter der Homematic-Anbindung von Home Assistant: AUTO=0, MANU=1, AWAY=2. Automatik heisst, das Wochenprogramm laeuft; Manuell haelt den eingestellten Sollwert; Urlaub (englisch away) ist der Modus, zu dem PARTY_MODE und PARTY_TIME_START/END gehoeren.\n3 bleibt neutral - bei HmIP kennt aiohomematic keine 3, und Boost laeuft ueber den eigenen Punkt.",
71
+ "en": "The MODE slot requires a value list — without common.states the widget shows a bare number. The source supplies none: hm-rpc reports the point as INTEGER 0 to 3 without a VALUE_LIST.\n0, 1 and 2 are used. The mapping is the one in aiohomematic, the library behind Home Assistant's Homematic integration: AUTO=0, MANU=1, AWAY=2. Automatic means the week programme is running; manual holds the setpoint; holiday (English: away) is the mode that PARTY_MODE and PARTY_TIME_START/END belong to.\n3 stays neutral — on HmIP aiohomematic knows no 3, and boost runs through its own point."
72
+ }
61
73
  },
62
74
  {
63
75
  "name": "BOOST",
@@ -74,7 +86,10 @@
74
86
  "lesen": "1.PARTY_MODE",
75
87
  "optional": true,
76
88
  "vorgabeAus": true,
77
- "hinweis": "Nur lesbar. Gehoert zum Urlaubsmodus und wird ueber MODE gesetzt, nicht hier."
89
+ "hinweis": {
90
+ "de": "Nur lesbar. Gehoert zum Urlaubsmodus und wird ueber MODE gesetzt, nicht hier.",
91
+ "en": "Read only. Belongs to holiday mode and is set via MODE, not here."
92
+ }
78
93
  },
79
94
  {
80
95
  "name": "WINDOW_STATE",
@@ -87,7 +102,10 @@
87
102
  "0": "zu",
88
103
  "1": "offen"
89
104
  },
90
- "hinweis": "Meldet, ob die Fensteroffen-Erkennung zugeschlagen hat. Das thermostat-Muster hat zwar einen Platz WINDOW, der nimmt aber nur sensor.window oder state.window - die Quelle liefert eine Zahl mit value.window. Angehakt landet der Punkt deshalb im info-Geraet. Wer ihn im Thermostat haben will, rechnet ihn per Leseformel auf einen Wahrheitswert um und setzt die Rolle auf sensor.window."
105
+ "hinweis": {
106
+ "de": "Meldet, ob die Fensteroffen-Erkennung zugeschlagen hat. Das thermostat-Muster hat zwar einen Platz WINDOW, der nimmt aber nur sensor.window oder state.window - die Quelle liefert eine Zahl mit value.window. Angehakt landet der Punkt deshalb im info-Geraet. Wer ihn im Thermostat haben will, rechnet ihn per Leseformel auf einen Wahrheitswert um und setzt die Rolle auf sensor.window.",
107
+ "en": "Reports whether the open-window detection has tripped. The thermostat pattern does have a WINDOW slot, but it only accepts sensor.window or state.window — the source delivers a number with value.window. Ticked, the point therefore lands in the info device. To have it in the thermostat, convert it to a boolean with a read formula and set the role to sensor.window."
108
+ }
91
109
  },
92
110
  {
93
111
  "name": "LOWBAT",
@@ -98,7 +116,10 @@
98
116
  "punkt": "0.LOWBAT"
99
117
  },
100
118
  "optional": true,
101
- "hinweis": "HmIP schreibt LOW_BAT, die aeltere Homematic-Reihe LOWBAT."
119
+ "hinweis": {
120
+ "de": "HmIP schreibt LOW_BAT, die aeltere Homematic-Reihe LOWBAT.",
121
+ "en": "HmIP writes LOW_BAT, the older Homematic line writes LOWBAT."
122
+ }
102
123
  },
103
124
  {
104
125
  "name": "UNREACH",
@@ -113,7 +134,10 @@
113
134
  "typ": "boolean",
114
135
  "lesen": "1.VALVE_STATE_ERROR_POSITION",
115
136
  "optional": true,
116
- "hinweis": "Meldet, dass das Ventil seine Stellung nicht erreicht - es klemmt oder sitzt falsch auf. Ein Heizkoerper, dessen Ventil nicht fahren kann, heizt nicht; das ist ein Ausfall und darum vorgehakt, nicht eine Diagnosegroesse wie Funkpegel oder Betriebsspannung.\n\nDie Quelle fuehrt keine Rolle an diesem Punkt, die Werkbank setzt darum `indicator.error` - damit landet er im Wartungsteil des thermostat-Musters, neben LOWBAT und UNREACH."
137
+ "hinweis": {
138
+ "de": "Meldet, dass das Ventil seine Stellung nicht erreicht - es klemmt oder sitzt falsch auf. Ein Heizkoerper, dessen Ventil nicht fahren kann, heizt nicht; das ist ein Ausfall und darum vorgehakt, nicht eine Diagnosegroesse wie Funkpegel oder Betriebsspannung.\n\nDie Quelle fuehrt keine Rolle an diesem Punkt, die Werkbank setzt darum `indicator.error` - damit landet er im Wartungsteil des thermostat-Musters, neben LOWBAT und UNREACH.",
139
+ "en": "Reports that the valve does not reach its position — it is jammed or seated wrong. A radiator whose valve cannot move does not heat; that is a failure and therefore ticked, not a diagnostic value like signal level or supply voltage.\n\nThe source carries no role on this point, so the workbench sets `indicator.error` — that puts it in the maintenance part of the thermostat pattern, next to LOWBAT and UNREACH."
140
+ }
117
141
  },
118
142
  {
119
143
  "name": "RSSI",
@@ -126,7 +150,10 @@
126
150
  },
127
151
  "optional": true,
128
152
  "vorgabeAus": true,
129
- "hinweis": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648."
153
+ "hinweis": {
154
+ "de": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648.",
155
+ "en": "RSSI_DEVICE comes first: it is the level the central unit receives from the device. RSSI_PEER is often empty on battery devices and then carries sentinel values such as -2147483648."
156
+ }
130
157
  },
131
158
  {
132
159
  "name": "VOLTAGE",
@@ -136,7 +163,10 @@
136
163
  "lesen": "0.OPERATING_VOLTAGE",
137
164
  "optional": true,
138
165
  "vorgabeAus": true,
139
- "hinweis": "Batteriespannung. Nicht vorgehakt, und der VOLTAGE-Platz des Musters ist dafuer auch nicht gedacht: im type-detector gehoert VOLTAGE zur Messgruppe neben Strom, Verbrauch und Frequenz - es ist die Netzspannung eines messenden Geraets. Fuer Batterien gibt es dort nur BATTERY mit value.battery in Prozent. Dass die Batterie zur Neige geht, meldet LOWBAT, und das ist vorgehakt."
166
+ "hinweis": {
167
+ "de": "Batteriespannung. Nicht vorgehakt, und der VOLTAGE-Platz des Musters ist dafuer auch nicht gedacht: im type-detector gehoert VOLTAGE zur Messgruppe neben Strom, Verbrauch und Frequenz - es ist die Netzspannung eines messenden Geraets. Fuer Batterien gibt es dort nur BATTERY mit value.battery in Prozent. Dass die Batterie zur Neige geht, meldet LOWBAT, und das ist vorgehakt.",
168
+ "en": "Battery voltage. Not ticked, and the pattern's VOLTAGE slot is not meant for it either: in the type-detector VOLTAGE belongs to the metering group next to current, consumption and frequency — it is the mains voltage of a metering device. For batteries there is only BATTERY with value.battery in percent. That the battery is running low is reported by LOWBAT, and that one is ticked."
169
+ }
140
170
  }
141
171
  ],
142
172
  "weiterePunkte": {
@@ -17,7 +17,10 @@
17
17
  "1.LEVEL",
18
18
  "1.STOP"
19
19
  ],
20
- "hinweis": "1.STOP trennt den Rollladen vom Dimmer: nur ein Fahrantrieb laesst sich mitten in der Bewegung anhalten. Es haelt auch die Zentrale HM-RCV-50 fern, die fuenfzig blanke LEVEL-Kanaele fuehrt."
20
+ "hinweis": {
21
+ "de": "1.STOP trennt den Rollladen vom Dimmer: nur ein Fahrantrieb laesst sich mitten in der Bewegung anhalten. Es haelt auch die Zentrale HM-RCV-50 fern, die fuenfzig blanke LEVEL-Kanaele fuehrt.",
22
+ "en": "1.STOP separates the roller shutter from the dimmer: only a drive can be stopped in the middle of a movement. It also keeps away the HM-RCV-50 central unit, which carries fifty bare LEVEL channels."
23
+ }
21
24
  },
22
25
  "zustaende": [
23
26
  {
@@ -35,7 +38,10 @@
35
38
  "einheit": "%",
36
39
  "lesen": "1.LEVEL",
37
40
  "optional": true,
38
- "hinweis": "Liest dieselbe Quelle wie SET - der Aktor meldet keinen getrennten Istwert, waehrend der Fahrt steht in 1.LEVEL schon das Ziel. Deshalb nicht vorgehakt: angehakt stuende derselbe Wert zweimal im Alias und die Pruefung „kein Punkt doppelt\" meldet es zu Recht. Ob die Fahrt noch laeuft, sagt WORKING. Anhaken nur, wenn ein Widget ausdruecklich einen eigenen Istwert erwartet.",
41
+ "hinweis": {
42
+ "de": "Liest dieselbe Quelle wie SET - der Aktor meldet keinen getrennten Istwert, waehrend der Fahrt steht in 1.LEVEL schon das Ziel. Deshalb nicht vorgehakt: angehakt stuende derselbe Wert zweimal im Alias und die Pruefung „kein Punkt doppelt\" meldet es zu Recht. Ob die Fahrt noch laeuft, sagt WORKING. Anhaken nur, wenn ein Widget ausdruecklich einen eigenen Istwert erwartet.",
43
+ "en": "Reads the same source as SET — the actuator reports no separate actual value, and during travel 1.LEVEL already holds the target. Therefore not ticked: ticked, the same value would sit in the alias twice and the check \"no point twice\" reports it, rightly. Whether travel is still running is what WORKING says. Tick it only when a widget explicitly expects its own actual value."
44
+ },
39
45
  "vorgabeAus": true
40
46
  },
41
47
  {
@@ -45,7 +51,10 @@
45
51
  "lesen": "1.STOP",
46
52
  "schreiben": "1.STOP",
47
53
  "optional": true,
48
- "hinweis": "Liest und schreibt 1.STOP. Der Alias-Punkt bekommt trotzdem read: false - das kommt aus der Rolle button.stop -, und vis, Alexa und matter zeichnen einen Knopf. Mit der Lesequelle sieht der Alias auch einen Druck von aussen."
54
+ "hinweis": {
55
+ "de": "Liest und schreibt 1.STOP. Der Alias-Punkt bekommt trotzdem read: false - das kommt aus der Rolle button.stop -, und vis, Alexa und matter zeichnen einen Knopf. Mit der Lesequelle sieht der Alias auch einen Druck von aussen.",
56
+ "en": "Reads and writes 1.STOP. The alias point still gets read: false — that comes from the role button.stop — and vis, Alexa and matter draw a button. With the read source the alias also sees a press from outside."
57
+ }
49
58
  },
50
59
  {
51
60
  "name": "DIRECTION",
@@ -53,7 +62,10 @@
53
62
  "typ": "number",
54
63
  "lesen": "1.DIRECTION",
55
64
  "optional": true,
56
- "hinweis": "0 steht, 1 faehrt auf, 2 faehrt zu, 3 unbekannt."
65
+ "hinweis": {
66
+ "de": "0 steht, 1 faehrt auf, 2 faehrt zu, 3 unbekannt.",
67
+ "en": "0 is idle, 1 travels open, 2 travels closed, 3 unknown."
68
+ }
57
69
  },
58
70
  {
59
71
  "name": "WORKING",
@@ -61,7 +73,10 @@
61
73
  "typ": "boolean",
62
74
  "lesen": "1.WORKING",
63
75
  "optional": true,
64
- "hinweis": "true, solange der Antrieb laeuft."
76
+ "hinweis": {
77
+ "de": "true, solange der Antrieb laeuft.",
78
+ "en": "true while the drive is running."
79
+ }
65
80
  },
66
81
  {
67
82
  "name": "INHIBIT",
@@ -71,7 +86,10 @@
71
86
  "schreiben": "1.INHIBIT",
72
87
  "optional": true,
73
88
  "vorgabeAus": true,
74
- "hinweis": "Sperrt den Aktor. Solange true, nimmt er keine Befehle an - auch nicht vom Taster."
89
+ "hinweis": {
90
+ "de": "Sperrt den Aktor. Solange true, nimmt er keine Befehle an - auch nicht vom Taster.",
91
+ "en": "Locks the actuator. While true it accepts no commands — not even from the wall switch."
92
+ }
75
93
  },
76
94
  {
77
95
  "name": "UNREACH",
@@ -91,7 +109,10 @@
91
109
  "lesenSonst": {
92
110
  "punkt": "0.RSSI_PEER"
93
111
  },
94
- "hinweis": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648."
112
+ "hinweis": {
113
+ "de": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648.",
114
+ "en": "RSSI_DEVICE comes first: it is the level the central unit receives from the device. RSSI_PEER is often empty on battery devices and then carries sentinel values such as -2147483648."
115
+ }
95
116
  }
96
117
  ],
97
118
  "weiterePunkte": {
@@ -21,7 +21,10 @@
21
21
  "2.STATE"
22
22
  ],
23
23
  "namenshinweis": "licht|lampe|light|led|leuchte|strahler|decken|spot",
24
- "hinweis": "1.WORKING steht mit in der Pflicht: es trennt den Schaltaktor vom Fensterkontakt, der ebenfalls einen 1.STATE hat, aber nichts zu schalten. 2.STATE ist verboten, sonst wuerde diese Vorlage auch am Zweifach-Aktor greifen und dessen zweiten Ausgang stillschweigend unterschlagen."
24
+ "hinweis": {
25
+ "de": "1.WORKING steht mit in der Pflicht: es trennt den Schaltaktor vom Fensterkontakt, der ebenfalls einen 1.STATE hat, aber nichts zu schalten. 2.STATE ist verboten, sonst wuerde diese Vorlage auch am Zweifach-Aktor greifen und dessen zweiten Ausgang stillschweigend unterschlagen.",
26
+ "en": "1.WORKING is required as well: it separates the switch actuator from the window contact, which also has a 1.STATE but nothing to switch. 2.STATE is forbidden, otherwise this template would also match the dual actuator and silently drop its second output."
27
+ }
25
28
  },
26
29
  "zustaende": [
27
30
  {
@@ -37,7 +40,10 @@
37
40
  "typ": "boolean",
38
41
  "lesen": "1.STATE",
39
42
  "optional": true,
40
- "hinweis": "Liest dieselbe Quelle wie SET - der Aktor meldet keinen getrennten Istwert, 1.STATE ist beides. Deshalb standardmaessig aus: angehakt stuende derselbe Wert zweimal im Alias, und die Pruefung „kein Punkt doppelt\" meldet es zu Recht. Anhaken nur, wenn ein Widget ausdruecklich einen eigenen Rueckmeldepunkt erwartet.",
43
+ "hinweis": {
44
+ "de": "Liest dieselbe Quelle wie SET - der Aktor meldet keinen getrennten Istwert, 1.STATE ist beides. Deshalb standardmaessig aus: angehakt stuende derselbe Wert zweimal im Alias, und die Pruefung „kein Punkt doppelt\" meldet es zu Recht. Anhaken nur, wenn ein Widget ausdruecklich einen eigenen Rueckmeldepunkt erwartet.",
45
+ "en": "Reads the same source as SET — the actuator reports no separate actual value, 1.STATE is both. Therefore off by default: ticked, the same value would sit in the alias twice, and the check \"no point twice\" reports it, rightly. Tick it only when a widget explicitly expects its own feedback point."
46
+ },
41
47
  "vorgabeAus": true
42
48
  },
43
49
  {
@@ -46,7 +52,10 @@
46
52
  "typ": "boolean",
47
53
  "lesen": "1.WORKING",
48
54
  "optional": true,
49
- "hinweis": "Steht auf true, solange der Aktor den Befehl noch ausfuehrt."
55
+ "hinweis": {
56
+ "de": "Steht auf true, solange der Aktor den Befehl noch ausfuehrt.",
57
+ "en": "Stays true while the actuator is still carrying out the command."
58
+ }
50
59
  },
51
60
  {
52
61
  "name": "ON_TIME",
@@ -57,7 +66,10 @@
57
66
  "schreiben": "1.ON_TIME",
58
67
  "optional": true,
59
68
  "vorgabeAus": true,
60
- "hinweis": "Einschaltdauer in Sekunden. Der Platz ON_TIME im Muster nimmt ihn auf."
69
+ "hinweis": {
70
+ "de": "Einschaltdauer in Sekunden. Der Platz ON_TIME im Muster nimmt ihn auf.",
71
+ "en": "On-time in seconds. The pattern's ON_TIME slot takes it."
72
+ }
61
73
  },
62
74
  {
63
75
  "name": "INHIBIT",
@@ -67,7 +79,10 @@
67
79
  "schreiben": "1.INHIBIT",
68
80
  "optional": true,
69
81
  "vorgabeAus": true,
70
- "hinweis": "Sperrt den Aktor. Solange true, nimmt er keine Befehle an — auch nicht vom Taster."
82
+ "hinweis": {
83
+ "de": "Sperrt den Aktor. Solange true, nimmt er keine Befehle an — auch nicht vom Taster.",
84
+ "en": "Locks the actuator. While true it accepts no commands — not even from the wall switch."
85
+ }
71
86
  },
72
87
  {
73
88
  "name": "LOWBAT",
@@ -97,7 +112,10 @@
97
112
  "lesenSonst": {
98
113
  "punkt": "0.RSSI_PEER"
99
114
  },
100
- "hinweis": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648."
115
+ "hinweis": {
116
+ "de": "RSSI_DEVICE steht zuerst: es ist der Pegel, den die Zentrale vom Geraet empfaengt. RSSI_PEER ist bei Batteriegeraeten oft unbelegt und traegt dann Grenzwerte wie -2147483648.",
117
+ "en": "RSSI_DEVICE comes first: it is the level the central unit receives from the device. RSSI_PEER is often empty on battery devices and then carries sentinel values such as -2147483648."
118
+ }
101
119
  }
102
120
  ],
103
121
  "weiterePunkte": {