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
@@ -23,7 +23,10 @@
23
23
  "inhalt": {
24
24
  "tele.STATE": "POWER%N%"
25
25
  },
26
- "hinweis": "stat.POWER steht bewusst nicht in der Pflichtliste: den Punkt legt der mqtt-Adapter erst an, wenn das Geraet zum ersten Mal geschaltet hat. Vorher haette die Vorlage nie gegriffen, obwohl der Schaltzustand die ganze Zeit in tele.STATE steht - von dort liest sie ersatzweise. cmnd.POWER bleibt dagegen Pflicht: es ist der Beleg dafuer, dass hier ueberhaupt etwas zu schalten ist. Ohne ihn wuerde jeder blosse Messpunkt mit Relaismeldung als Steckdose durchgehen. Die Nummern der Ausgaenge liest die Vorlage aus den Feldern POWER1, POWER2 ... in tele.STATE, nicht aus vorhandenen Objekten."
26
+ "hinweis": {
27
+ "de": "stat.POWER steht bewusst nicht in der Pflichtliste: den Punkt legt der mqtt-Adapter erst an, wenn das Geraet zum ersten Mal geschaltet hat. Vorher haette die Vorlage nie gegriffen, obwohl der Schaltzustand die ganze Zeit in tele.STATE steht - von dort liest sie ersatzweise. cmnd.POWER bleibt dagegen Pflicht: es ist der Beleg dafuer, dass hier ueberhaupt etwas zu schalten ist. Ohne ihn wuerde jeder blosse Messpunkt mit Relaismeldung als Steckdose durchgehen. Die Nummern der Ausgaenge liest die Vorlage aus den Feldern POWER1, POWER2 ... in tele.STATE, nicht aus vorhandenen Objekten.",
28
+ "en": "stat.POWER is deliberately not in the required list: the mqtt adapter only creates the point once the device has been switched for the first time. Before that the template would never have matched, even though the switch state has been in tele.STATE the whole time — that is where it reads from instead. cmnd.POWER stays required: it is the evidence that there is anything to switch here at all. Without it every bare measuring point with a relay report would pass as a socket. The template reads the output numbers from the fields POWER1, POWER2 ... in tele.STATE, not from objects that already exist."
29
+ }
27
30
  },
28
31
  "zustaende": [
29
32
  {
@@ -56,7 +59,10 @@
56
59
  "lesen": "tele.SENSOR",
57
60
  "feld": "ENERGY.Power",
58
61
  "optional": true,
59
- "hinweis": "Die meisten Mehrfachsteckdosen messen nur gesamt. Angehakt bekaeme jeder Ausgang denselben Wert, und die Summe erschiene vierfach. Nur anhaken, wenn dieses Modell je Ausgang misst.",
62
+ "hinweis": {
63
+ "de": "Die meisten Mehrfachsteckdosen messen nur gesamt. Angehakt bekaeme jeder Ausgang denselben Wert, und die Summe erschiene vierfach. Nur anhaken, wenn dieses Modell je Ausgang misst.",
64
+ "en": "Most multi-output sockets measure only the total. Ticked, every output would get the same value, and the total would appear four times. Tick it only if this model measures per output."
65
+ },
60
66
  "vorgabeAus": true
61
67
  },
62
68
  {
@@ -69,7 +75,10 @@
69
75
  "feld": "ENERGY.Total",
70
76
  "optional": true,
71
77
  "vorgabeAus": true,
72
- "hinweis": "Die meisten Mehrfachsteckdosen messen nur gesamt. Angehakt bekaeme jeder Ausgang denselben Wert, und die Summe erschiene vierfach. Nur anhaken, wenn dieses Modell je Ausgang misst."
78
+ "hinweis": {
79
+ "de": "Die meisten Mehrfachsteckdosen messen nur gesamt. Angehakt bekaeme jeder Ausgang denselben Wert, und die Summe erschiene vierfach. Nur anhaken, wenn dieses Modell je Ausgang misst.",
80
+ "en": "Most multi-output sockets measure only the total. Ticked, every output would get the same value, and the total would appear four times. Tick it only if this model measures per output."
81
+ }
73
82
  },
74
83
  {
75
84
  "name": "UNREACH",
@@ -98,7 +107,10 @@
98
107
  "feld": "UptimeSec",
99
108
  "optional": true,
100
109
  "vorgabeAus": true,
101
- "hinweis": "Sekunden seit dem letzten Start. Faellt der Wert staendig zurueck, startet das Geraet neu."
110
+ "hinweis": {
111
+ "de": "Sekunden seit dem letzten Start. Faellt der Wert staendig zurueck, startet das Geraet neu.",
112
+ "en": "Seconds since the last start. If the value keeps falling back, the device is restarting."
113
+ }
102
114
  },
103
115
  {
104
116
  "name": "LAST_REPORT",
@@ -108,7 +120,10 @@
108
120
  "feld": "Time",
109
121
  "optional": true,
110
122
  "vorgabeAus": true,
111
- "hinweis": "Zeitstempel der letzten Telemetrie des Geraets, nicht der von ioBroker."
123
+ "hinweis": {
124
+ "de": "Zeitstempel der letzten Telemetrie des Geraets, nicht der von ioBroker.",
125
+ "en": "Timestamp of the device's last telemetry, not ioBroker's."
126
+ }
112
127
  },
113
128
  {
114
129
  "name": "HEAP",
@@ -119,7 +134,10 @@
119
134
  "feld": "Heap",
120
135
  "optional": true,
121
136
  "vorgabeAus": true,
122
- "hinweis": "Freier Speicher. Wird er klein, wird das Geraet unzuverlaessig."
137
+ "hinweis": {
138
+ "de": "Freier Speicher. Wird er klein, wird das Geraet unzuverlaessig.",
139
+ "en": "Free memory. If it gets small, the device becomes unreliable."
140
+ }
123
141
  },
124
142
  {
125
143
  "name": "WIFI_QUALITY",
@@ -130,7 +148,10 @@
130
148
  "feld": "Wifi.RSSI",
131
149
  "optional": true,
132
150
  "vorgabeAus": true,
133
- "hinweis": "Guete 0 bis 100. RSSI in dBm steht getrennt daneben."
151
+ "hinweis": {
152
+ "de": "Guete 0 bis 100. RSSI in dBm steht getrennt daneben.",
153
+ "en": "Quality 0 to 100. RSSI in dBm is listed separately beside it."
154
+ }
134
155
  },
135
156
  {
136
157
  "name": "WIFI_SSID",
@@ -149,7 +170,10 @@
149
170
  "feld": "Wifi.LinkCount",
150
171
  "optional": true,
151
172
  "vorgabeAus": true,
152
- "hinweis": "Wie oft die WLAN-Verbindung seit dem Start neu aufgebaut wurde."
173
+ "hinweis": {
174
+ "de": "Wie oft die WLAN-Verbindung seit dem Start neu aufgebaut wurde.",
175
+ "en": "How often the Wi-Fi connection has been re-established since start."
176
+ }
153
177
  },
154
178
  {
155
179
  "name": "WIFI_DOWNTIME",
@@ -159,7 +183,10 @@
159
183
  "feld": "Wifi.Downtime",
160
184
  "optional": true,
161
185
  "vorgabeAus": true,
162
- "hinweis": "Summe der Ausfallzeit seit dem Start."
186
+ "hinweis": {
187
+ "de": "Summe der Ausfallzeit seit dem Start.",
188
+ "en": "Total downtime since start."
189
+ }
163
190
  },
164
191
  {
165
192
  "name": "IP",
@@ -169,7 +196,10 @@
169
196
  "feld": "IPAddress",
170
197
  "optional": true,
171
198
  "vorgabeAus": true,
172
- "hinweis": "Drei Wege, weil keiner allein reicht. tele.STATE steht zuerst, weil es alle paar Minuten frisch kommt und einem Adresswechsel folgt - allerdings fuehrt es die IP erst ab neuerer Firmware mit (gemessen: 12.5.0 nein, 15.5.0 ja). tele.INFO2 schickt eine Tasmota beim Start und laesst es retained stehen; das steht auch bei alter Firmware da, ist aber ein Standbild vom letzten Boot. stat.STATUS5 entsteht, wenn jemand den Status abfragt. Aeltere Firmware schreibt die Felder in tele.INFO2 ohne die Huelle Info2 - deshalb derselbe Punkt zweimal, einmal mit und einmal ohne (gemessen 20.09.2026 am Badlicht: {WebServerMode, Hostname, IPAddress}).",
199
+ "hinweis": {
200
+ "de": "Drei Wege, weil keiner allein reicht. tele.STATE steht zuerst, weil es alle paar Minuten frisch kommt und einem Adresswechsel folgt - allerdings fuehrt es die IP erst ab neuerer Firmware mit (gemessen: 12.5.0 nein, 15.5.0 ja). tele.INFO2 schickt eine Tasmota beim Start und laesst es retained stehen; das steht auch bei alter Firmware da, ist aber ein Standbild vom letzten Boot. stat.STATUS5 entsteht, wenn jemand den Status abfragt. Aeltere Firmware schreibt die Felder in tele.INFO2 ohne die Huelle Info2 - deshalb derselbe Punkt zweimal, einmal mit und einmal ohne (gemessen 20.09.2026 am Badlicht: {WebServerMode, Hostname, IPAddress}).",
201
+ "en": "Three paths, because none of them is enough on its own. tele.STATE comes first, because it arrives fresh every few minutes and follows an address change — though it only carries the IP from newer firmware on (measured: 12.5.0 no, 15.5.0 yes). tele.INFO2 is sent by a Tasmota at start and left retained; it is there on old firmware too, but it is a snapshot from the last boot. stat.STATUS5 appears when someone queries the status. Older firmware writes the fields into tele.INFO2 without the Info2 wrapper — hence the same point twice, once with and once without (measured 20.09.2026 on Badlicht: {WebServerMode, Hostname, IPAddress})."
202
+ },
173
203
  "lesenSonst": [
174
204
  {
175
205
  "punkt": "tele.INFO2",
@@ -16,7 +16,10 @@
16
16
  "inhalt": {
17
17
  "tele.STATE": "Color"
18
18
  },
19
- "hinweis": "Das Farbfeld in tele.STATE ist der Unterschied zu einer gewoehnlichen Tasmota. stat.POWER steht nicht in der Pflichtliste - der Punkt entsteht erst beim ersten Schalten, der Zustand steht solange in tele.STATE."
19
+ "hinweis": {
20
+ "de": "Das Farbfeld in tele.STATE ist der Unterschied zu einer gewoehnlichen Tasmota. stat.POWER steht nicht in der Pflichtliste - der Punkt entsteht erst beim ersten Schalten, der Zustand steht solange in tele.STATE.",
21
+ "en": "The colour field in tele.STATE is what sets this apart from an ordinary Tasmota. stat.POWER is not in the required list — the point only appears on the first switch, and until then the state is in tele.STATE."
22
+ }
20
23
  },
21
24
  "zustaende": [
22
25
  {
@@ -27,7 +30,10 @@
27
30
  "leseformel": "JSON.parse(val)?.Color ? '#' + String(JSON.parse(val).Color).slice(0, 6) : null",
28
31
  "schreiben": "cmnd.Color",
29
32
  "schreibformel": "String(val).replace('#', '')",
30
- "hinweis": "Tasmota liefert die Farbe ohne Raute (F4FFCC), ioBroker und VIS erwarten sie mit. Bei RGBW-Geräten hängen weitere Kanäle hinten an, deshalb die ersten sechs Zeichen. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit."
33
+ "hinweis": {
34
+ "de": "Tasmota liefert die Farbe ohne Raute (F4FFCC), ioBroker und VIS erwarten sie mit. Bei RGBW-Geräten hängen weitere Kanäle hinten an, deshalb die ersten sechs Zeichen. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit.",
35
+ "en": "Tasmota delivers the colour without a hash (F4FFCC); ioBroker and VIS expect it with one. On RGBW devices further channels are appended, hence the first six characters. Reads from tele.STATE and writes to cmnd — the feedback therefore arrives only with the next telemetry, at TelePeriod 300 up to five minutes later. Tasmota does answer at once on stat/RESULT, but only the one changed key is in there; as a read source that would be useless. Remedy on the device: SetOption59 1 — then Tasmota sends tele/STATE on every change."
36
+ }
31
37
  },
32
38
  {
33
39
  "name": "DIMMER",
@@ -37,7 +43,10 @@
37
43
  "lesen": "tele.STATE",
38
44
  "feld": "Dimmer",
39
45
  "schreiben": "cmnd.Dimmer",
40
- "hinweis": "Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit."
46
+ "hinweis": {
47
+ "de": "Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit.",
48
+ "en": "Reads from tele.STATE and writes to cmnd — the feedback therefore arrives only with the next telemetry, at TelePeriod 300 up to five minutes later. Tasmota does answer at once on stat/RESULT, but only the one changed key is in there; as a read source that would be useless. Remedy on the device: SetOption59 1 — then Tasmota sends tele/STATE on every change."
49
+ }
41
50
  },
42
51
  {
43
52
  "name": "ON",
@@ -46,7 +55,10 @@
46
55
  "lesen": "stat.POWER",
47
56
  "schreiben": "cmnd.POWER",
48
57
  "schreibformel": "val ? \"ON\" : \"OFF\"",
49
- "hinweis": "getrennte Quellen: sonst zeigt der Schalter den Befehl statt des Zustands",
58
+ "hinweis": {
59
+ "de": "getrennte Quellen: sonst zeigt der Schalter den Befehl statt des Zustands",
60
+ "en": "separate sources: otherwise the switch shows the command instead of the state"
61
+ },
50
62
  "lesenSonst": {
51
63
  "punkt": "tele.STATE",
52
64
  "leseformel": "JSON.parse(val)?.POWER === 'ON'"
@@ -77,7 +89,10 @@
77
89
  "3": "Farben rückwärts",
78
90
  "4": "zufällig"
79
91
  },
80
- "hinweis": "Der Platz EFFECT verlangt eine Werteliste — ohne common.states erkennt der type-detector ihn nicht. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit."
92
+ "hinweis": {
93
+ "de": "Der Platz EFFECT verlangt eine Werteliste — ohne common.states erkennt der type-detector ihn nicht. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit.",
94
+ "en": "The EFFECT slot requires a value list — without common.states the type-detector does not recognise it. Reads from tele.STATE and writes to cmnd — the feedback therefore arrives only with the next telemetry, at TelePeriod 300 up to five minutes later. Tasmota does answer at once on stat/RESULT, but only the one changed key is in there; as a read source that would be useless. Remedy on the device: SetOption59 1 — then Tasmota sends tele/STATE on every change."
95
+ }
81
96
  },
82
97
  {
83
98
  "name": "FADE",
@@ -90,7 +105,10 @@
90
105
  "schreibformel": "val ? \"ON\" : \"OFF\"",
91
106
  "optional": true,
92
107
  "vorgabeAus": true,
93
- "hinweis": "weiche Übergänge. Kein Platz im rgbSingle-Muster, landet im info-Gerät. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit."
108
+ "hinweis": {
109
+ "de": "weiche Übergänge. Kein Platz im rgbSingle-Muster, landet im info-Gerät. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit.",
110
+ "en": "Soft transitions. No slot in the rgbSingle pattern, so it lands in the info device. Reads from tele.STATE and writes to cmnd — the feedback therefore arrives only with the next telemetry, at TelePeriod 300 up to five minutes later. Tasmota does answer at once on stat/RESULT, but only the one changed key is in there; as a read source that would be useless. Remedy on the device: SetOption59 1 — then Tasmota sends tele/STATE on every change."
111
+ }
94
112
  },
95
113
  {
96
114
  "name": "SPEED",
@@ -101,7 +119,10 @@
101
119
  "schreiben": "cmnd.Speed",
102
120
  "optional": true,
103
121
  "vorgabeAus": true,
104
- "hinweis": "Geschwindigkeit des Effekts, 1 bis 40. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit."
122
+ "hinweis": {
123
+ "de": "Geschwindigkeit des Effekts, 1 bis 40. Liest aus tele.STATE und schreibt nach cmnd — die Rückmeldung kommt deshalb erst mit der nächsten Telemetrie, bei TelePeriod 300 also bis zu fünf Minuten später. Tasmota antwortet zwar sofort auf stat/RESULT, aber dort steht nur der eine geänderte Schlüssel; als Lesequelle wäre das unbrauchbar. Abhilfe am Gerät: SetOption59 1 — dann schickt Tasmota tele/STATE bei jeder Änderung mit.",
124
+ "en": "Speed of the effect, 1 to 40. Reads from tele.STATE and writes to cmnd — the feedback therefore arrives only with the next telemetry, at TelePeriod 300 up to five minutes later. Tasmota does answer at once on stat/RESULT, but only the one changed key is in there; as a read source that would be useless. Remedy on the device: SetOption59 1 — then Tasmota sends tele/STATE on every change."
125
+ }
105
126
  },
106
127
  {
107
128
  "name": "UNREACH",
@@ -130,7 +151,10 @@
130
151
  "feld": "UptimeSec",
131
152
  "optional": true,
132
153
  "vorgabeAus": true,
133
- "hinweis": "Sekunden seit dem letzten Start. Fällt der Wert ständig zurück, startet das Gerät neu."
154
+ "hinweis": {
155
+ "de": "Sekunden seit dem letzten Start. Fällt der Wert ständig zurück, startet das Gerät neu.",
156
+ "en": "Seconds since the last start. If the value keeps falling back, the device is restarting."
157
+ }
134
158
  },
135
159
  {
136
160
  "name": "LAST_REPORT",
@@ -210,7 +234,10 @@
210
234
  "feld": "StatusNET.IPAddress"
211
235
  }
212
236
  ],
213
- "hinweis": "Drei Wege, weil keiner allein reicht. tele.STATE steht zuerst, weil es alle paar Minuten frisch kommt und einem Adresswechsel folgt - allerdings fuehrt es die IP erst ab neuerer Firmware mit (gemessen: 12.5.0 nein, 15.5.0 ja). tele.INFO2 schickt eine Tasmota beim Start und laesst es retained stehen; das steht auch bei alter Firmware da, ist aber ein Standbild vom letzten Boot. stat.STATUS5 entsteht, wenn jemand den Status abfragt. Aeltere Firmware schreibt die Felder in tele.INFO2 ohne die Huelle Info2 - deshalb derselbe Punkt zweimal, einmal mit und einmal ohne (gemessen 20.09.2026 am Badlicht: {WebServerMode, Hostname, IPAddress})."
237
+ "hinweis": {
238
+ "de": "Drei Wege, weil keiner allein reicht. tele.STATE steht zuerst, weil es alle paar Minuten frisch kommt und einem Adresswechsel folgt - allerdings fuehrt es die IP erst ab neuerer Firmware mit (gemessen: 12.5.0 nein, 15.5.0 ja). tele.INFO2 schickt eine Tasmota beim Start und laesst es retained stehen; das steht auch bei alter Firmware da, ist aber ein Standbild vom letzten Boot. stat.STATUS5 entsteht, wenn jemand den Status abfragt. Aeltere Firmware schreibt die Felder in tele.INFO2 ohne die Huelle Info2 - deshalb derselbe Punkt zweimal, einmal mit und einmal ohne (gemessen 20.09.2026 am Badlicht: {WebServerMode, Hostname, IPAddress}).",
239
+ "en": "Three paths, because none of them is enough on its own. tele.STATE comes first, because it arrives fresh every few minutes and follows an address change — though it only carries the IP from newer firmware on (measured: 12.5.0 no, 15.5.0 yes). tele.INFO2 is sent by a Tasmota at start and left retained; it is there on old firmware too, but it is a snapshot from the last boot. stat.STATUS5 appears when someone queries the status. Older firmware writes the fields into tele.INFO2 without the Info2 wrapper — hence the same point twice, once with and once without (measured 20.09.2026 on Badlicht: {WebServerMode, Hostname, IPAddress})."
240
+ }
214
241
  }
215
242
  ],
216
243
  "nebenwirkungen": [
@@ -16,7 +16,10 @@
16
16
  "tele.STATE": "POWER"
17
17
  },
18
18
  "namenshinweis": "steckdose|dose|stecker|plug|socket",
19
- "hinweis": "stat.POWER steht bewusst nicht in der Pflichtliste: den Punkt legt der mqtt-Adapter erst an, wenn das Geraet zum ersten Mal geschaltet hat. Vorher haette die Vorlage nie gegriffen, obwohl der Schaltzustand die ganze Zeit in tele.STATE steht - von dort liest sie ersatzweise. cmnd.POWER bleibt dagegen Pflicht: es ist der Beleg dafuer, dass hier ueberhaupt etwas zu schalten ist. Ohne ihn wuerde jeder blosse Messpunkt mit Relaismeldung als Steckdose durchgehen."
19
+ "hinweis": {
20
+ "de": "stat.POWER steht bewusst nicht in der Pflichtliste: den Punkt legt der mqtt-Adapter erst an, wenn das Geraet zum ersten Mal geschaltet hat. Vorher haette die Vorlage nie gegriffen, obwohl der Schaltzustand die ganze Zeit in tele.STATE steht - von dort liest sie ersatzweise. cmnd.POWER bleibt dagegen Pflicht: es ist der Beleg dafuer, dass hier ueberhaupt etwas zu schalten ist. Ohne ihn wuerde jeder blosse Messpunkt mit Relaismeldung als Steckdose durchgehen.",
21
+ "en": "stat.POWER is deliberately not in the required list: the mqtt adapter only creates the point once the device has been switched for the first time. Before that the template would never have matched, even though the switch state has been in tele.STATE the whole time — that is where it reads from instead. cmnd.POWER stays required: it is the evidence that there is anything to switch here at all. Without it every bare measuring point with a relay report would pass as a socket."
22
+ }
20
23
  },
21
24
  "zustaende": [
22
25
  {
@@ -26,7 +29,10 @@
26
29
  "lesen": "stat.POWER",
27
30
  "schreiben": "cmnd.POWER",
28
31
  "schreibformel": "val ? \"ON\" : \"OFF\"",
29
- "hinweis": "getrennte Quellen: sonst zeigt der Schalter den Befehl statt des Zustands",
32
+ "hinweis": {
33
+ "de": "getrennte Quellen: sonst zeigt der Schalter den Befehl statt des Zustands",
34
+ "en": "separate sources: otherwise the switch shows the command instead of the state"
35
+ },
30
36
  "lesenSonst": {
31
37
  "punkt": "tele.STATE",
32
38
  "leseformel": "JSON.parse(val)?.POWER === 'ON'"
@@ -37,7 +43,10 @@
37
43
  "rolle": "sensor.switch",
38
44
  "typ": "boolean",
39
45
  "lesen": "stat.POWER",
40
- "hinweis": "type-detector 6 verlangt sensor.switch oder state.active, blankes state passt nicht mehr",
46
+ "hinweis": {
47
+ "de": "type-detector 6 verlangt sensor.switch oder state.active, blankes state passt nicht mehr",
48
+ "en": "type-detector 6 requires sensor.switch or state.active; a bare state no longer fits"
49
+ },
41
50
  "lesenSonst": {
42
51
  "punkt": "tele.STATE",
43
52
  "leseformel": "JSON.parse(val)?.POWER === 'ON'"
@@ -89,7 +98,10 @@
89
98
  "feld": "ENERGY.Today",
90
99
  "optional": true,
91
100
  "vorgabeAus": true,
92
- "hinweis": "hat in keinem Muster einen Platz und landet im info-Gerät"
101
+ "hinweis": {
102
+ "de": "hat in keinem Muster einen Platz und landet im info-Gerät",
103
+ "en": "has no slot in any pattern and lands in the info device"
104
+ }
93
105
  },
94
106
  {
95
107
  "name": "YESTERDAY",
@@ -110,7 +122,10 @@
110
122
  "feld": "ENERGY.ApparentPower",
111
123
  "optional": true,
112
124
  "vorgabeAus": true,
113
- "hinweis": "Scheinleistung. Kein Platz in socket oder light — landet wie TODAY im info-Geraet."
125
+ "hinweis": {
126
+ "de": "Scheinleistung. Kein Platz in socket oder light — landet wie TODAY im info-Geraet.",
127
+ "en": "Apparent power. No slot in socket or light — lands in the info device, like TODAY."
128
+ }
114
129
  },
115
130
  {
116
131
  "name": "REACTIVE_POWER",
@@ -121,7 +136,10 @@
121
136
  "feld": "ENERGY.ReactivePower",
122
137
  "optional": true,
123
138
  "vorgabeAus": true,
124
- "hinweis": "Blindleistung."
139
+ "hinweis": {
140
+ "de": "Blindleistung.",
141
+ "en": "Reactive power."
142
+ }
125
143
  },
126
144
  {
127
145
  "name": "POWER_FACTOR",
@@ -131,7 +149,10 @@
131
149
  "feld": "ENERGY.Factor",
132
150
  "optional": true,
133
151
  "vorgabeAus": true,
134
- "hinweis": "Leistungsfaktor cos phi, 0 bis 1 — ohne Einheit."
152
+ "hinweis": {
153
+ "de": "Leistungsfaktor cos phi, 0 bis 1 — ohne Einheit.",
154
+ "en": "Power factor cos phi, 0 to 1 — no unit."
155
+ }
135
156
  },
136
157
  {
137
158
  "name": "UNREACH",
@@ -160,7 +181,10 @@
160
181
  "feld": "UptimeSec",
161
182
  "optional": true,
162
183
  "vorgabeAus": true,
163
- "hinweis": "Sekunden seit dem letzten Start. Faellt der Wert staendig zurueck, startet das Geraet neu."
184
+ "hinweis": {
185
+ "de": "Sekunden seit dem letzten Start. Faellt der Wert staendig zurueck, startet das Geraet neu.",
186
+ "en": "Seconds since the last start. If the value keeps falling back, the device is restarting."
187
+ }
164
188
  },
165
189
  {
166
190
  "name": "LAST_REPORT",
@@ -170,7 +194,10 @@
170
194
  "feld": "Time",
171
195
  "optional": true,
172
196
  "vorgabeAus": true,
173
- "hinweis": "Zeitstempel der letzten Telemetrie des Geraets, nicht der von ioBroker."
197
+ "hinweis": {
198
+ "de": "Zeitstempel der letzten Telemetrie des Geraets, nicht der von ioBroker.",
199
+ "en": "Timestamp of the device's last telemetry, not ioBroker's."
200
+ }
174
201
  },
175
202
  {
176
203
  "name": "HEAP",
@@ -181,7 +208,10 @@
181
208
  "feld": "Heap",
182
209
  "optional": true,
183
210
  "vorgabeAus": true,
184
- "hinweis": "Freier Speicher. Wird er klein, wird das Geraet unzuverlaessig."
211
+ "hinweis": {
212
+ "de": "Freier Speicher. Wird er klein, wird das Geraet unzuverlaessig.",
213
+ "en": "Free memory. If it gets small, the device becomes unreliable."
214
+ }
185
215
  },
186
216
  {
187
217
  "name": "WIFI_QUALITY",
@@ -192,7 +222,10 @@
192
222
  "feld": "Wifi.RSSI",
193
223
  "optional": true,
194
224
  "vorgabeAus": true,
195
- "hinweis": "Guete 0 bis 100. RSSI in dBm steht getrennt daneben."
225
+ "hinweis": {
226
+ "de": "Guete 0 bis 100. RSSI in dBm steht getrennt daneben.",
227
+ "en": "Quality 0 to 100. RSSI in dBm is listed separately beside it."
228
+ }
196
229
  },
197
230
  {
198
231
  "name": "WIFI_SSID",
@@ -211,7 +244,10 @@
211
244
  "feld": "Wifi.LinkCount",
212
245
  "optional": true,
213
246
  "vorgabeAus": true,
214
- "hinweis": "Wie oft die WLAN-Verbindung seit dem Start neu aufgebaut wurde."
247
+ "hinweis": {
248
+ "de": "Wie oft die WLAN-Verbindung seit dem Start neu aufgebaut wurde.",
249
+ "en": "How often the Wi-Fi connection has been re-established since start."
250
+ }
215
251
  },
216
252
  {
217
253
  "name": "WIFI_DOWNTIME",
@@ -221,7 +257,10 @@
221
257
  "feld": "Wifi.Downtime",
222
258
  "optional": true,
223
259
  "vorgabeAus": true,
224
- "hinweis": "Summe der Ausfallzeit seit dem Start."
260
+ "hinweis": {
261
+ "de": "Summe der Ausfallzeit seit dem Start.",
262
+ "en": "Total downtime since start."
263
+ }
225
264
  },
226
265
  {
227
266
  "name": "IP",
@@ -231,7 +270,10 @@
231
270
  "feld": "IPAddress",
232
271
  "optional": true,
233
272
  "vorgabeAus": true,
234
- "hinweis": "Drei Wege, weil keiner allein reicht. tele.STATE steht zuerst, weil es alle paar Minuten frisch kommt und einem Adresswechsel folgt - allerdings fuehrt es die IP erst ab neuerer Firmware mit (gemessen: 12.5.0 nein, 15.5.0 ja). tele.INFO2 schickt eine Tasmota beim Start und laesst es retained stehen; das steht auch bei alter Firmware da, ist aber ein Standbild vom letzten Boot. stat.STATUS5 entsteht, wenn jemand den Status abfragt. Aeltere Firmware schreibt die Felder in tele.INFO2 ohne die Huelle Info2 - deshalb derselbe Punkt zweimal, einmal mit und einmal ohne (gemessen 20.09.2026 am Badlicht: {WebServerMode, Hostname, IPAddress}).",
273
+ "hinweis": {
274
+ "de": "Drei Wege, weil keiner allein reicht. tele.STATE steht zuerst, weil es alle paar Minuten frisch kommt und einem Adresswechsel folgt - allerdings fuehrt es die IP erst ab neuerer Firmware mit (gemessen: 12.5.0 nein, 15.5.0 ja). tele.INFO2 schickt eine Tasmota beim Start und laesst es retained stehen; das steht auch bei alter Firmware da, ist aber ein Standbild vom letzten Boot. stat.STATUS5 entsteht, wenn jemand den Status abfragt. Aeltere Firmware schreibt die Felder in tele.INFO2 ohne die Huelle Info2 - deshalb derselbe Punkt zweimal, einmal mit und einmal ohne (gemessen 20.09.2026 am Badlicht: {WebServerMode, Hostname, IPAddress}).",
275
+ "en": "Three paths, because none of them is enough on its own. tele.STATE comes first, because it arrives fresh every few minutes and follows an address change — though it only carries the IP from newer firmware on (measured: 12.5.0 no, 15.5.0 yes). tele.INFO2 is sent by a Tasmota at start and left retained; it is there on old firmware too, but it is a snapshot from the last boot. stat.STATUS5 appears when someone queries the status. Older firmware writes the fields into tele.INFO2 without the Info2 wrapper — hence the same point twice, once with and once without (measured 20.09.2026 on Badlicht: {WebServerMode, Hostname, IPAddress})."
276
+ },
235
277
  "lesenSonst": [
236
278
  {
237
279
  "punkt": "tele.INFO2",