iobroker.alias-workbench 0.9.12 → 0.10.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.
- package/README.md +54 -0
- package/admin/css/werkbank.css +8 -0
- package/admin/js/aufzaehlungen.js +24 -8
- package/admin/js/baum.js +13 -2
- package/admin/js/detail.js +302 -87
- package/admin/js/entwurf.js +44 -14
- package/admin/js/enums.js +7 -0
- package/admin/js/ergebnis.js +26 -6
- package/admin/js/erkennung.js +45 -0
- package/admin/js/mqtt.js +128 -67
- package/admin/js/musterwahl.js +103 -26
- package/admin/js/objekte.js +3 -0
- package/admin/js/pruefungen.js +1 -2
- package/admin/js/quellentausch.js +59 -12
- package/admin/js/schreiben.js +22 -18
- package/admin/js/vorlagen.js +28 -5
- package/admin/js/vorlagenblatt.js +49 -7
- package/admin/js/vorschlagen.js +60 -7
- package/admin/js/werte.js +98 -20
- package/admin/js/zuordnung.js +39 -16
- package/admin/js/zustand.js +5 -1
- package/admin/js/zustandsliste.js +185 -25
- package/admin/sprachen/de.json +35 -11
- package/admin/sprachen/en.json +35 -11
- package/admin/vorlagen/hm-rollladen.json +3 -2
- package/admin/vorlagen/messpunkt.json +6 -2
- package/admin/vorlagen/tasmota-lampe.json +6 -2
- package/admin/vorlagen/tasmota-mehrfach.json +6 -2
- package/admin/vorlagen/tasmota-rgb.json +6 -2
- package/admin/vorlagen/tasmota-steckdose.json +6 -2
- package/io-package.json +14 -14
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "messpunkt",
|
|
3
|
-
"version":
|
|
3
|
+
"version": 5,
|
|
4
4
|
"rang": 5,
|
|
5
5
|
"name": {
|
|
6
6
|
"de": "Reiner Messpunkt",
|
|
@@ -197,12 +197,16 @@
|
|
|
197
197
|
"feld": "IPAddress",
|
|
198
198
|
"optional": true,
|
|
199
199
|
"vorgabeAus": true,
|
|
200
|
-
"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.",
|
|
200
|
+
"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}).",
|
|
201
201
|
"lesenSonst": [
|
|
202
202
|
{
|
|
203
203
|
"punkt": "tele.INFO2",
|
|
204
204
|
"feld": "Info2.IPAddress"
|
|
205
205
|
},
|
|
206
|
+
{
|
|
207
|
+
"punkt": "tele.INFO2",
|
|
208
|
+
"feld": "IPAddress"
|
|
209
|
+
},
|
|
206
210
|
{
|
|
207
211
|
"punkt": "stat.STATUS5",
|
|
208
212
|
"feld": "StatusNET.IPAddress"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "tasmota-lampe",
|
|
3
|
-
"version":
|
|
3
|
+
"version": 7,
|
|
4
4
|
"rang": 10,
|
|
5
5
|
"name": {
|
|
6
6
|
"de": "Tasmota-Lampe",
|
|
@@ -229,12 +229,16 @@
|
|
|
229
229
|
"feld": "IPAddress",
|
|
230
230
|
"optional": true,
|
|
231
231
|
"vorgabeAus": true,
|
|
232
|
-
"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.",
|
|
232
|
+
"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}).",
|
|
233
233
|
"lesenSonst": [
|
|
234
234
|
{
|
|
235
235
|
"punkt": "tele.INFO2",
|
|
236
236
|
"feld": "Info2.IPAddress"
|
|
237
237
|
},
|
|
238
|
+
{
|
|
239
|
+
"punkt": "tele.INFO2",
|
|
240
|
+
"feld": "IPAddress"
|
|
241
|
+
},
|
|
238
242
|
{
|
|
239
243
|
"punkt": "stat.STATUS5",
|
|
240
244
|
"feld": "StatusNET.IPAddress"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "tasmota-mehrfach",
|
|
3
|
-
"version":
|
|
3
|
+
"version": 6,
|
|
4
4
|
"rang": 30,
|
|
5
5
|
"name": {
|
|
6
6
|
"de": "Tasmota mit mehreren Ausgängen",
|
|
@@ -169,12 +169,16 @@
|
|
|
169
169
|
"feld": "IPAddress",
|
|
170
170
|
"optional": true,
|
|
171
171
|
"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.",
|
|
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}).",
|
|
173
173
|
"lesenSonst": [
|
|
174
174
|
{
|
|
175
175
|
"punkt": "tele.INFO2",
|
|
176
176
|
"feld": "Info2.IPAddress"
|
|
177
177
|
},
|
|
178
|
+
{
|
|
179
|
+
"punkt": "tele.INFO2",
|
|
180
|
+
"feld": "IPAddress"
|
|
181
|
+
},
|
|
178
182
|
{
|
|
179
183
|
"punkt": "stat.STATUS5",
|
|
180
184
|
"feld": "StatusNET.IPAddress"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "tasmota-rgb",
|
|
3
|
-
"version":
|
|
3
|
+
"version": 6,
|
|
4
4
|
"rang": 25,
|
|
5
5
|
"name": {
|
|
6
6
|
"de": "Tasmota-Farblampe",
|
|
@@ -201,12 +201,16 @@
|
|
|
201
201
|
"punkt": "tele.INFO2",
|
|
202
202
|
"feld": "Info2.IPAddress"
|
|
203
203
|
},
|
|
204
|
+
{
|
|
205
|
+
"punkt": "tele.INFO2",
|
|
206
|
+
"feld": "IPAddress"
|
|
207
|
+
},
|
|
204
208
|
{
|
|
205
209
|
"punkt": "stat.STATUS5",
|
|
206
210
|
"feld": "StatusNET.IPAddress"
|
|
207
211
|
}
|
|
208
212
|
],
|
|
209
|
-
"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."
|
|
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})."
|
|
210
214
|
}
|
|
211
215
|
],
|
|
212
216
|
"nebenwirkungen": [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "tasmota-steckdose",
|
|
3
|
-
"version":
|
|
3
|
+
"version": 7,
|
|
4
4
|
"rang": 20,
|
|
5
5
|
"name": {
|
|
6
6
|
"de": "Tasmota-Steckdose",
|
|
@@ -231,12 +231,16 @@
|
|
|
231
231
|
"feld": "IPAddress",
|
|
232
232
|
"optional": true,
|
|
233
233
|
"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.",
|
|
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}).",
|
|
235
235
|
"lesenSonst": [
|
|
236
236
|
{
|
|
237
237
|
"punkt": "tele.INFO2",
|
|
238
238
|
"feld": "Info2.IPAddress"
|
|
239
239
|
},
|
|
240
|
+
{
|
|
241
|
+
"punkt": "tele.INFO2",
|
|
242
|
+
"feld": "IPAddress"
|
|
243
|
+
},
|
|
240
244
|
{
|
|
241
245
|
"punkt": "stat.STATUS5",
|
|
242
246
|
"feld": "StatusNET.IPAddress"
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "alias-workbench",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.10.0": {
|
|
7
|
+
"en": "**Detection and patterns**\n* Picking another pattern re-ticks the rows and leaves them alone while the new pattern does not apply yet.\n* Guessing gives every datapoint one slot only, and a contradicting unit rules a slot out — a start delay in seconds does not become an actual temperature.\n* The pattern field names what is really missing, groups included (“SET / SET_HEATING / SET_COOLING”). The legend says why a pattern does not apply and offers the matching button.\n* The hint “might fit better” only suggests patterns that apply afterwards.\n* For “Information” the field reads “✓ 24 points” instead of “24/31 filled” — that pattern takes any number of points.\n* The message “No remaining datapoint fits” no longer sits above the orange legend and names the rows decided by hand.\n\n**Free slots**\n* A slot can be created once, and every slot is listed once.\n* “Suggest free slots” now sits in the blue box next to the pattern; the button for the whole device is called “Load all datapoints of the device” and sits above the list.\n\n**The detail row of a point**\n* New: “Name” and “Slot in the pattern” — the slot fills in role, type, unit and value list.\n* “reads from” and “writes to” are wider, the formula is called “read formula” and sits below.\n* If the slot already belongs to another row, the workbench says so instead of blaming the type. A pure measured value no longer gets a write target.\n\n**Templates**\n* “Apply template values” no longer deletes a value list.\n* A template without a name can be imported and then named.\n* A skipped row gives the reason: point missing, no JSON, or field missing.\n* “Update template” leaves the detection as it was; an exported template can be imported again.\n\n**Source swap**\n* If one point fails, the note on the alias stays on the old source — the swap can be finished afterwards.\n* The greyed-out button gives its own reason.\n* The hint “one level up” only appears where it helps.\n\n**Deleting and moving**\n* The delete dialog only warns about channels that really lie below the alias.\n* After a move the source knows its alias again right away; “to the source →” no longer jumps somewhere vague.\n\n**Room and function**\n* A room is found in the middle of a device name too (“Heizung_Badezimmer INT0000001”).\n* Picking with the keyboard works like the mouse, and the offer “file it under … as well?” no longer opens a row of its own.\n* If rooms and functions cannot be loaded, the fields say so themselves.\n\n**Tasmota and MQTT**\n* The IP is found on older firmware too (`tele.INFO2` in both forms).\n* The card no longer claims a switched-off point sends; “allow sending” switches the link back on as well.\n* Creating several send points at once yields the same objects as creating them one by one — `POWER`, `Fade` and `LedTable` as `mixed`, so the write formula takes effect.\n* A HomeMatic actuator without a template no longer drags maintenance points along.\n* “Ask” for SetOption59 only counts what arrived after sending; if no answer comes, “No answer …” is shown and the button stays for a re-check.\n* The “MQTT device” card opens again on devices without a row from `tele/…`.\n\n**Display**\n* The number on a tree node counts what lies below it.\n* A node without an object of its own is marked “VIR”, the device card sorts like the tree.\n* A button reads along and stays a button; the misleading “never changes” badge is gone.\n* JSON fields with a dot in their name can be selected.",
|
|
8
|
+
"de": "**Erkennung und Muster**\n* Ein anderes Muster zu wählen setzt die Haken neu und lässt sie stehen, solange das neue Muster noch nicht greift.\n* Beim Vorschlagen bekommt jeder Datenpunkt nur einen Platz, und eine widersprechende Einheit schließt einen Platz aus — eine Startverzögerung in Sekunden wird keine Ist-Temperatur.\n* Das Musterfeld nennt, was wirklich fehlt, auch als Gruppe („SET / SET_HEATING / SET_COOLING“). Die Legende sagt, warum ein Muster nicht greift, und bietet den passenden Knopf gleich an.\n* Der Hinweis „… würde evtl. besser passen“ empfiehlt nur noch Muster, die danach auch greifen.\n* Bei „Information“ steht „✓ 24 Punkte“ statt „24/31 belegt“ — dieses Muster nimmt beliebig viele Punkte auf.\n* Die Meldung „Kein übriger Datenpunkt passt“ steht nicht mehr über der orangen Legende und nennt die von Hand entschiedenen Zeilen beim Namen.\n\n**Freie Plätze**\n* Ein Platz lässt sich nur einmal anlegen, und jeder Platz steht nur einmal in der Liste.\n* „Freie Plätze vorschlagen“ steht jetzt im blauen Kasten bei der Erkennung; der Knopf für den ganzen Bestand heißt „Alle Datenpunkte des Geräts laden“ und steht über der Liste.\n\n**Die Detailzeile eines Punkts**\n* Neu: „Name“ und „Platz im Muster“ — der Platz trägt Rolle, Typ, Einheit und Werteliste ein.\n* „liest aus“ und „schreibt auf“ sind breiter, die Formel heißt „Leseformel“ und steht darunter.\n* Gehört der Platz schon einer anderen Zeile, sagt die Werkbank das, statt einen falschen Typ anzumahnen. Ein reiner Messwert bekommt kein Schreibziel mehr.\n\n**Vorlagen**\n* „Werte der Vorlage übernehmen“ löscht keine Werteliste mehr.\n* Eine Vorlage ohne Namen lässt sich einlesen und dann auch benennen.\n* Eine weggelassene Zeile nennt den Grund: Punkt fehlt, kein JSON, oder Feld fehlt.\n* „Vorlage aktualisieren“ lässt die Erkennung, wie sie war; eine ausgegebene Vorlage lässt sich wieder einlesen.\n\n**Quellentausch**\n* Scheitert ein Punkt, bleibt der Vermerk am Alias auf der alten Quelle — der Tausch lässt sich danach zu Ende bringen.\n* Der ausgegraute Knopf nennt seinen eigenen Grund.\n* Der Hinweis „eine Ebene höher“ erscheint nur noch, wo er hilft.\n\n**Löschen und Verlegen**\n* Der Löschdialog warnt nur vor Kanälen, die wirklich unter dem Alias liegen.\n* Nach dem Verlegen kennt die Quelle ihren Alias sofort wieder; „zur Quelle →“ springt nicht mehr ins Ungefähre.\n\n**Raum und Funktion**\n* Ein Raum wird auch mitten im Gerätenamen gefunden („Heizung_Badezimmer INT0000001“).\n* Mit der Tastatur gewählt wirkt wie mit der Maus, und das Angebot „auch unter … ablegen?“ braucht keine eigene Zeile mehr.\n* Fehlen Räume und Funktionen, sagen das die Felder selbst.\n\n**Tasmota und MQTT**\n* Die IP wird auch bei älterer Firmware gefunden (`tele.INFO2` in beiden Formen).\n* Die Karte behauptet nicht mehr, ein abgeschalteter Punkt sende; „senden erlauben“ schaltet die Verknüpfung gleich mit ein.\n* Mehrere Sendepunkte auf einmal anzulegen ergibt dieselben Objekte wie einzeln — `POWER`, `Fade` und `LedTable` als `mixed`, damit die Schreibformel wirkt.\n* Ein HomeMatic-Aktor ohne Vorlage bringt keinen Wartungskram mehr mit.\n* „nachfragen“ bei SetOption59 wertet nur, was nach dem Senden kam; bleibt die Antwort aus, steht „Keine Antwort …“ da, und der Knopf bleibt zum Nachprüfen stehen.\n* Die Karte „MQTT-Gerät“ klappt auch an Geräten ohne Zeile aus `tele/…` wieder auf.\n\n**Anzeige**\n* Die Zahl am Baumknoten zählt, was darunter liegt.\n* Ein Knoten ohne eigenes Objekt trägt „VIR“, die Geräte-Karte sortiert wie der Baum.\n* Ein Taster liest mit und bleibt ein Taster; die irreführende Marke „ändert sich nie“ ist weg.\n* JSON-Felder mit einem Punkt im Namen lassen sich auswählen.",
|
|
9
|
+
"ru": "**Распознавание и шаблоны**\n* Выбор другого шаблона заново расставляет галочки и оставляет их, пока новый шаблон ещё не срабатывает.\n* При подборе каждая точка данных получает только одно место, а противоречащая единица измерения исключает место — задержка запуска в секундах не станет фактической температурой.\n* Поле шаблона называет то, чего действительно не хватает, в том числе группами («SET / SET_HEATING / SET_COOLING»). Пояснение говорит, почему шаблон не срабатывает, и сразу предлагает нужную кнопку.\n* Подсказка «возможно, подошёл бы лучше» предлагает только те шаблоны, которые после этого действительно срабатывают.\n* Для «Информации» в поле стоит «✓ 24 точки» вместо «24/31 занято» — этот шаблон принимает любое число точек.\n* Сообщение «ни одна оставшаяся точка данных не подходит» больше не стоит над оранжевым пояснением и называет строки, решённые вручную, по имени.\n\n**Свободные места**\n* Место можно создать только один раз, и каждое место стоит в списке один раз.\n* «Предложить свободные места» теперь находится в синем блоке распознавания; кнопка для всех точек называется «Загрузить все точки данных устройства» и стоит над списком.\n\n**Строка подробностей точки**\n* Новое: «Имя» и «Место в шаблоне» — место задаёт роль, тип, единицу измерения и список значений.\n* «читает из» и «пишет в» стали шире, формула называется «формула чтения» и стоит под ними.\n* Если место уже принадлежит другой строке, верстак говорит об этом вместо упрёка в неверном типе. Чистое измеренное значение больше не получает цели записи.\n\n**Шаблоны**\n* «Принять значения шаблона» больше не удаляет список значений.\n* Шаблон без имени можно прочитать, а затем и назвать.\n* Пропущенная строка называет причину: точки нет, нет JSON или нет поля.\n* «Обновить шаблон» оставляет распознавание таким, каким оно было; выгруженный шаблон можно прочитать снова.\n\n**Смена источника**\n* Если одна точка не удалась, пометка у алиаса остаётся на старом источнике — смену можно довести до конца.\n* Неактивная кнопка называет собственную причину.\n* Подсказка «на уровень выше» появляется только там, где помогает.\n\n**Удаление и перемещение**\n* Диалог удаления предупреждает только о каналах, которые действительно лежат под алиасом.\n* После перемещения источник сразу снова знает свой алиас; «к источнику →» больше не прыгает наугад.\n\n**Комната и функция**\n* Комната находится и в середине имени устройства («Heizung_Badezimmer INT0000001»).\n* Выбор с клавиатуры действует как мышью, а предложение «разместить также под …» больше не занимает отдельную строку.\n* Если комнаты и функции не загрузились, поля говорят об этом сами.\n\n**Tasmota и MQTT**\n* IP находится и на более старой прошивке (`tele.INFO2` в обеих формах).\n* Карточка больше не утверждает, что отключённая точка отправляет; «разрешить отправку» сразу включает и связь.\n* Создание нескольких точек отправки сразу даёт те же объекты, что и по одной — `POWER`, `Fade` и `LedTable` как `mixed`, чтобы формула записи действовала.\n* Актор HomeMatic без шаблона больше не тянет за собой служебные точки.\n* «Переспросить» для SetOption59 учитывает только то, что пришло после отправки; если ответа нет, стоит «Нет ответа …», и кнопка остаётся для проверки.\n* Карточка «Устройство MQTT» снова раскрывается и на устройствах без строки из `tele/…`.\n\n**Отображение**\n* Число у узла дерева считает то, что лежит под ним.\n* Узел без собственного объекта помечен «VIR», карточка устройств сортируется как дерево.\n* Кнопка читает вместе со всеми и остаётся кнопкой; вводящая в заблуждение пометка «никогда не меняется» убрана.\n* Поля JSON с точкой в имени можно выбрать.",
|
|
10
|
+
"pt": "**Detecção e padrões**\n* Escolher outro padrão marca as linhas de novo e deixa-as em paz enquanto o novo padrão ainda não se aplica.\n* Ao sugerir, cada ponto de dados recebe apenas um lugar, e uma unidade contraditória exclui um lugar — um atraso de arranque em segundos não se torna uma temperatura real.\n* O campo do padrão indica o que falta mesmo, também em grupo (“SET / SET_HEATING / SET_COOLING”). A legenda diz porque um padrão não se aplica e oferece logo o botão adequado.\n* A dica “talvez se adequasse melhor” só sugere padrões que depois se aplicam de facto.\n* Em “Informação” o campo mostra “✓ 24 pontos” em vez de “24/31 ocupados” — esse padrão aceita qualquer número de pontos.\n* A mensagem “nenhum ponto de dados restante serve” já não fica por cima da legenda laranja e nomeia as linhas decididas à mão.\n\n**Lugares livres**\n* Um lugar só pode ser criado uma vez, e cada lugar aparece uma única vez na lista.\n* “Sugerir lugares livres” está agora na caixa azul da detecção; o botão para todos os pontos chama-se “Carregar todos os pontos de dados do dispositivo” e fica por cima da lista.\n\n**A linha de detalhe de um ponto**\n* Novo: “Nome” e “Lugar no padrão” — o lugar preenche função, tipo, unidade e lista de valores.\n* “lê de” e “escreve em” ficaram mais largos, a fórmula chama-se “fórmula de leitura” e fica por baixo.\n* Se o lugar já pertence a outra linha, a bancada di-lo em vez de culpar o tipo. Um valor puramente medido já não recebe destino de escrita.\n\n**Modelos**\n* “Aplicar valores do modelo” já não apaga uma lista de valores.\n* Um modelo sem nome pode ser importado e depois também nomeado.\n* Uma linha omitida indica o motivo: ponto em falta, sem JSON, ou campo em falta.\n* “Atualizar modelo” deixa a detecção como estava; um modelo exportado pode ser importado de novo.\n\n**Troca de origem**\n* Se um ponto falhar, a nota no alias fica na origem antiga — a troca pode ser concluída depois.\n* O botão desativado indica o seu próprio motivo.\n* A dica “um nível acima” só aparece onde ajuda.\n\n**Apagar e mover**\n* O diálogo de remoção só avisa sobre canais que estão mesmo por baixo do alias.\n* Depois de mover, a origem volta a conhecer logo o seu alias; “para a origem →” já não salta para o vago.\n\n**Divisão e função**\n* Uma divisão é encontrada também no meio do nome do dispositivo (“Heizung_Badezimmer INT0000001”).\n* Escolher com o teclado funciona como com o rato, e a oferta “guardar também em …” já não abre uma linha própria.\n* Se divisões e funções não puderem ser carregadas, os próprios campos dizem-no.\n\n**Tasmota e MQTT**\n* O IP é encontrado também em firmware mais antigo (`tele.INFO2` nas duas formas).\n* O cartão já não afirma que um ponto desligado envia; “permitir envio” liga logo também a ligação.\n* Criar vários pontos de envio de uma vez dá os mesmos objectos que um a um — `POWER`, `Fade` e `LedTable` como `mixed`, para que a fórmula de escrita faça efeito.\n* Um actuador HomeMatic sem modelo já não arrasta consigo pontos de manutenção.\n* “Perguntar” para SetOption59 só conta o que chegou depois do envio; se não houver resposta, aparece “Sem resposta …” e o botão fica para nova verificação.\n* O cartão “Dispositivo MQTT” volta a abrir também em dispositivos sem linha de `tele/…`.\n\n**Apresentação**\n* O número no nó da árvore conta o que está por baixo dele.\n* Um nó sem objecto próprio traz “VIR”, o cartão de dispositivos ordena como a árvore.\n* Um botão lê junto e continua a ser um botão; a marca enganadora “nunca muda” desapareceu.\n* Campos JSON com um ponto no nome podem ser seleccionados.",
|
|
11
|
+
"nl": "**Herkenning en patronen**\n* Een ander patroon kiezen zet de vinkjes opnieuw en laat ze staan zolang het nieuwe patroon nog niet werkt.\n* Bij het voorstellen krijgt elk datapunt maar één plaats, en een tegenstrijdige eenheid sluit een plaats uit — een startvertraging in seconden wordt geen werkelijke temperatuur.\n* Het patroonveld noemt wat er echt ontbreekt, ook als groep (“SET / SET_HEATING / SET_COOLING”). De legenda zegt waarom een patroon niet werkt en biedt meteen de passende knop.\n* De hint “zou misschien beter passen” stelt alleen nog patronen voor die daarna ook werken.\n* Bij “Informatie” staat er “✓ 24 punten” in plaats van “24/31 bezet” — dat patroon neemt willekeurig veel punten op.\n* De melding “geen overgebleven datapunt past” staat niet meer boven de oranje legenda en noemt de met de hand besliste regels bij naam.\n\n**Vrije plaatsen**\n* Een plaats kan maar één keer worden aangemaakt, en elke plaats staat één keer in de lijst.\n* “Vrije plaatsen voorstellen” staat nu in het blauwe vak bij de herkenning; de knop voor alle punten heet “Alle datapunten van het apparaat laden” en staat boven de lijst.\n\n**De detailregel van een punt**\n* Nieuw: “Naam” en “Plaats in het patroon” — de plaats vult rol, type, eenheid en waardelijst in.\n* “leest uit” en “schrijft naar” zijn breder, de formule heet “leesformule” en staat eronder.\n* Hoort de plaats al bij een andere regel, dan zegt de werkbank dat, in plaats van het type te verwijten. Een zuivere meetwaarde krijgt geen schrijfdoel meer.\n\n**Sjablonen**\n* “Waarden van het sjabloon overnemen” wist geen waardelijst meer.\n* Een sjabloon zonder naam kan worden ingelezen en daarna ook benoemd.\n* Een weggelaten regel noemt de reden: punt ontbreekt, geen JSON, of veld ontbreekt.\n* “Sjabloon bijwerken” laat de herkenning zoals ze was; een uitgevoerd sjabloon kan weer worden ingelezen.\n\n**Bron wisselen**\n* Mislukt één punt, dan blijft de notitie bij de alias op de oude bron staan — de wissel kan daarna worden afgemaakt.\n* De uitgegrijsde knop noemt zijn eigen reden.\n* De hint “een niveau hoger” verschijnt alleen nog waar hij helpt.\n\n**Verwijderen en verplaatsen**\n* Het verwijderdialoog waarschuwt alleen voor kanalen die werkelijk onder de alias liggen.\n* Na het verplaatsen kent de bron zijn alias meteen weer; “naar de bron →” springt niet meer in het vage.\n\n**Ruimte en functie**\n* Een ruimte wordt ook midden in de apparaatnaam gevonden (“Heizung_Badezimmer INT0000001”).\n* Met het toetsenbord kiezen werkt als met de muis, en het aanbod “ook onder … opslaan?” heeft geen eigen regel meer nodig.\n* Kunnen ruimtes en functies niet worden geladen, dan zeggen de velden dat zelf.\n\n**Tasmota en MQTT**\n* Het IP wordt ook bij oudere firmware gevonden (`tele.INFO2` in beide vormen).\n* De kaart beweert niet meer dat een uitgeschakeld punt verzendt; “verzenden toestaan” schakelt de koppeling meteen mee in.\n* Meerdere verzendpunten in één keer aanmaken levert dezelfde objecten op als stuk voor stuk — `POWER`, `Fade` en `LedTable` als `mixed`, zodat de schrijfformule werkt.\n* Een HomeMatic-actor zonder sjabloon sleept geen onderhoudspunten meer mee.\n* “Navragen” bij SetOption59 telt alleen wat na het verzenden binnenkwam; blijft het antwoord uit, dan staat er “Geen antwoord …” en blijft de knop staan om na te kijken.\n* De kaart “MQTT-apparaat” klapt ook bij apparaten zonder regel uit `tele/…` weer open.\n\n**Weergave**\n* Het getal bij een boomknoop telt wat eronder ligt.\n* Een knoop zonder eigen object draagt “VIR”, de apparatenkaart sorteert als de boom.\n* Een knop leest mee en blijft een knop; de misleidende markering “verandert nooit” is weg.\n* JSON-velden met een punt in de naam kunnen worden gekozen.",
|
|
12
|
+
"fr": "**Détection et modèles**\n* Choisir un autre modèle recoche les lignes et les laisse tranquilles tant que le nouveau modèle ne s’applique pas encore.\n* Lors de la proposition, chaque point de données ne reçoit qu’une place, et une unité contradictoire exclut une place — un délai de démarrage en secondes ne devient pas une température réelle.\n* Le champ du modèle nomme ce qui manque vraiment, y compris par groupe (« SET / SET_HEATING / SET_COOLING »). La légende dit pourquoi un modèle ne s’applique pas et propose aussitôt le bouton adéquat.\n* L’indication « conviendrait peut-être mieux » ne propose plus que des modèles qui s’appliquent ensuite.\n* Pour « Information », le champ affiche « ✓ 24 points » au lieu de « 24/31 occupés » — ce modèle accepte un nombre quelconque de points.\n* Le message « aucun point de données restant ne convient » ne se trouve plus au-dessus de la légende orange et nomme les lignes décidées à la main.\n\n**Places libres**\n* Une place ne peut être créée qu’une fois, et chaque place ne figure qu’une fois dans la liste.\n* « Proposer des places libres » se trouve désormais dans le cadre bleu de la détection ; le bouton pour tous les points s’appelle « Charger tous les points de données de l’appareil » et se trouve au-dessus de la liste.\n\n**La ligne de détail d’un point**\n* Nouveau : « Nom » et « Place dans le modèle » — la place renseigne le rôle, le type, l’unité et la liste de valeurs.\n* « lit depuis » et « écrit vers » sont plus larges, la formule s’appelle « formule de lecture » et se trouve en dessous.\n* Si la place appartient déjà à une autre ligne, l’établi le dit au lieu de reprocher le type. Une simple valeur mesurée ne reçoit plus de cible d’écriture.\n\n**Modèles**\n* « Reprendre les valeurs du modèle » n’efface plus de liste de valeurs.\n* Un modèle sans nom peut être importé puis nommé.\n* Une ligne omise indique la raison : point manquant, pas de JSON, ou champ manquant.\n* « Mettre à jour le modèle » laisse la détection telle quelle ; un modèle exporté peut être réimporté.\n\n**Changement de source**\n* Si un point échoue, la note sur l’alias reste sur l’ancienne source — l’échange peut être terminé ensuite.\n* Le bouton grisé indique sa propre raison.\n* L’indication « un niveau plus haut » n’apparaît plus que là où elle aide.\n\n**Supprimer et déplacer**\n* La boîte de dialogue de suppression n’avertit que des canaux réellement situés sous l’alias.\n* Après un déplacement, la source reconnaît aussitôt son alias ; « vers la source → » ne saute plus dans le vague.\n\n**Pièce et fonction**\n* Une pièce est aussi trouvée au milieu du nom de l’appareil (« Heizung_Badezimmer INT0000001 »).\n* Choisir au clavier agit comme à la souris, et l’offre « ranger aussi sous … ? » n’occupe plus une ligne à part.\n* Si les pièces et fonctions ne peuvent pas être chargées, les champs le disent eux-mêmes.\n\n**Tasmota et MQTT**\n* L’IP est aussi trouvée sur un micrologiciel plus ancien (`tele.INFO2` sous les deux formes).\n* La carte n’affirme plus qu’un point désactivé émet ; « autoriser l’envoi » réactive aussitôt le lien.\n* Créer plusieurs points d’envoi d’un coup donne les mêmes objets qu’un par un — `POWER`, `Fade` et `LedTable` en `mixed`, pour que la formule d’écriture agisse.\n* Un actionneur HomeMatic sans modèle n’entraîne plus de points de maintenance.\n* « Redemander » pour SetOption59 ne compte que ce qui est arrivé après l’envoi ; sans réponse, « Pas de réponse … » s’affiche et le bouton reste pour vérifier.\n* La carte « Appareil MQTT » s’ouvre de nouveau aussi sur les appareils sans ligne issue de `tele/…`.\n\n**Affichage**\n* Le nombre sur un nœud de l’arbre compte ce qui se trouve en dessous.\n* Un nœud sans objet propre porte « VIR », la carte des appareils trie comme l’arbre.\n* Un bouton lit aussi et reste un bouton ; la marque trompeuse « ne change jamais » a disparu.\n* Les champs JSON dont le nom contient un point peuvent être sélectionnés.",
|
|
13
|
+
"it": "**Riconoscimento e modelli**\n* Scegliere un altro modello rimette le spunte e le lascia stare finché il nuovo modello non si applica ancora.\n* Nel proporre, ogni punto dati riceve un solo posto, e un’unità contraddittoria esclude un posto — un ritardo di avvio in secondi non diventa una temperatura reale.\n* Il campo del modello indica ciò che manca davvero, anche come gruppo (“SET / SET_HEATING / SET_COOLING”). La legenda dice perché un modello non si applica e offre subito il pulsante adatto.\n* L’indicazione “forse si adatterebbe meglio” propone solo modelli che poi si applicano davvero.\n* Per “Informazione” il campo mostra “✓ 24 punti” invece di “24/31 occupati” — quel modello accoglie un numero qualsiasi di punti.\n* Il messaggio “nessun punto dati rimasto è adatto” non sta più sopra la legenda arancione e nomina le righe decise a mano.\n\n**Posti liberi**\n* Un posto si può creare una volta sola, e ogni posto compare una volta sola nell’elenco.\n* “Proporre posti liberi” si trova ora nel riquadro blu del riconoscimento; il pulsante per tutti i punti si chiama “Caricare tutti i punti dati del dispositivo” e sta sopra l’elenco.\n\n**La riga di dettaglio di un punto**\n* Nuovo: “Nome” e “Posto nel modello” — il posto imposta ruolo, tipo, unità ed elenco dei valori.\n* “legge da” e “scrive su” sono più larghi, la formula si chiama “formula di lettura” e sta sotto.\n* Se il posto appartiene già a un’altra riga, il banco di lavoro lo dice invece di incolpare il tipo. Un valore puramente misurato non riceve più una destinazione di scrittura.\n\n**Modelli**\n* “Applicare i valori del modello” non cancella più un elenco di valori.\n* Un modello senza nome si può importare e poi anche nominare.\n* Una riga omessa indica il motivo: punto mancante, nessun JSON, oppure campo mancante.\n* “Aggiornare il modello” lascia il riconoscimento com’era; un modello esportato si può reimportare.\n\n**Cambio della sorgente**\n* Se un punto fallisce, l’annotazione sull’alias resta sulla vecchia sorgente — lo scambio si può portare a termine dopo.\n* Il pulsante disattivato indica il proprio motivo.\n* L’indicazione “un livello più in alto” compare solo dove aiuta.\n\n**Eliminare e spostare**\n* La finestra di eliminazione avverte solo dei canali che stanno davvero sotto l’alias.\n* Dopo lo spostamento la sorgente riconosce subito il suo alias; “alla sorgente →” non salta più nel vago.\n\n**Stanza e funzione**\n* Una stanza viene trovata anche in mezzo al nome del dispositivo (“Heizung_Badezimmer INT0000001”).\n* Scegliere con la tastiera agisce come con il mouse, e l’offerta “metterlo anche sotto …?” non occupa più una riga propria.\n* Se stanze e funzioni non si possono caricare, lo dicono i campi stessi.\n\n**Tasmota e MQTT**\n* L’IP si trova anche con firmware più vecchio (`tele.INFO2` in entrambe le forme).\n* La scheda non sostiene più che un punto disattivato invii; “consentire l’invio” riattiva subito anche il collegamento.\n* Creare più punti di invio in una volta dà gli stessi oggetti che crearli uno per uno — `POWER`, `Fade` e `LedTable` come `mixed`, così la formula di scrittura ha effetto.\n* Un attuatore HomeMatic senza modello non si porta più dietro punti di manutenzione.\n* “Richiedere” per SetOption59 conta solo ciò che è arrivato dopo l’invio; se la risposta manca, compare “Nessuna risposta …” e il pulsante resta per una verifica.\n* La scheda “Dispositivo MQTT” si apre di nuovo anche su dispositivi senza righe da `tele/…`.\n\n**Visualizzazione**\n* Il numero su un nodo dell’albero conta ciò che sta sotto di esso.\n* Un nodo senza oggetto proprio porta “VIR”, la scheda dei dispositivi ordina come l’albero.\n* Un pulsante legge anche e resta un pulsante; la marca fuorviante “non cambia mai” è sparita.\n* I campi JSON con un punto nel nome si possono selezionare.",
|
|
14
|
+
"es": "**Detección y patrones**\n* Elegir otro patrón vuelve a marcar las filas y las deja en paz mientras el nuevo patrón aún no se aplica.\n* Al proponer, cada punto de datos recibe un solo puesto, y una unidad contradictoria excluye un puesto — un retardo de arranque en segundos no se convierte en una temperatura real.\n* El campo del patrón nombra lo que realmente falta, también como grupo (“SET / SET_HEATING / SET_COOLING”). La leyenda dice por qué un patrón no se aplica y ofrece enseguida el botón adecuado.\n* La indicación “quizá encajaría mejor” solo propone patrones que después se aplican de verdad.\n* En “Información” el campo muestra “✓ 24 puntos” en lugar de “24/31 ocupados” — ese patrón admite cualquier número de puntos.\n* El mensaje “ningún punto de datos restante encaja” ya no está encima de la leyenda naranja y nombra las filas decididas a mano.\n\n**Puestos libres**\n* Un puesto solo puede crearse una vez, y cada puesto aparece una sola vez en la lista.\n* “Proponer puestos libres” está ahora en el recuadro azul de la detección; el botón para todos los puntos se llama “Cargar todos los puntos de datos del dispositivo” y está encima de la lista.\n\n**La fila de detalle de un punto**\n* Nuevo: “Nombre” y “Puesto en el patrón” — el puesto rellena rol, tipo, unidad y lista de valores.\n* “lee de” y “escribe en” son más anchos, la fórmula se llama “fórmula de lectura” y está debajo.\n* Si el puesto ya pertenece a otra fila, el banco de trabajo lo dice en vez de reprochar el tipo. Un valor puramente medido ya no recibe destino de escritura.\n\n**Plantillas**\n* “Aplicar los valores de la plantilla” ya no borra una lista de valores.\n* Una plantilla sin nombre puede importarse y luego también nombrarse.\n* Una fila omitida indica el motivo: falta el punto, no hay JSON, o falta el campo.\n* “Actualizar plantilla” deja la detección como estaba; una plantilla exportada puede volver a importarse.\n\n**Cambio de origen**\n* Si un punto falla, la nota del alias se queda en el origen antiguo — el cambio puede terminarse después.\n* El botón atenuado indica su propio motivo.\n* La indicación “un nivel más arriba” solo aparece donde ayuda.\n\n**Borrar y mover**\n* El diálogo de borrado solo avisa de los canales que están realmente debajo del alias.\n* Tras mover, el origen vuelve a conocer su alias enseguida; “al origen →” ya no salta a lo impreciso.\n\n**Habitación y función**\n* Una habitación se encuentra también en medio del nombre del dispositivo (“Heizung_Badezimmer INT0000001”).\n* Elegir con el teclado actúa como con el ratón, y la oferta “¿guardarlo también bajo …?” ya no ocupa una fila propia.\n* Si no se pueden cargar habitaciones y funciones, los propios campos lo dicen.\n\n**Tasmota y MQTT**\n* La IP se encuentra también con firmware más antiguo (`tele.INFO2` en ambas formas).\n* La tarjeta ya no afirma que un punto apagado envía; “permitir el envío” activa enseguida también el enlace.\n* Crear varios puntos de envío a la vez da los mismos objetos que crearlos uno a uno — `POWER`, `Fade` y `LedTable` como `mixed`, para que la fórmula de escritura surta efecto.\n* Un actuador HomeMatic sin plantilla ya no arrastra puntos de mantenimiento.\n* “Preguntar” para SetOption59 solo cuenta lo que llegó después del envío; si no hay respuesta, aparece “Sin respuesta …” y el botón se queda para comprobarlo.\n* La tarjeta “Dispositivo MQTT” vuelve a abrirse también en dispositivos sin fila de `tele/…`.\n\n**Visualización**\n* El número en un nodo del árbol cuenta lo que hay debajo.\n* Un nodo sin objeto propio lleva “VIR”, la tarjeta de dispositivos ordena como el árbol.\n* Un pulsador lee también y sigue siendo un pulsador; la marca engañosa “nunca cambia” ha desaparecido.\n* Los campos JSON con un punto en el nombre se pueden seleccionar.",
|
|
15
|
+
"pl": "**Rozpoznawanie i wzorce**\n* Wybór innego wzorca ustawia znaczniki na nowo i zostawia je, dopóki nowy wzorzec jeszcze nie działa.\n* Przy propozycji każdy punkt danych dostaje tylko jedno miejsce, a sprzeczna jednostka wyklucza miejsce — opóźnienie startu w sekundach nie staje się temperaturą rzeczywistą.\n* Pole wzorca nazywa to, czego naprawdę brakuje, także jako grupę („SET / SET_HEATING / SET_COOLING”). Legenda mówi, dlaczego wzorzec nie działa, i od razu proponuje właściwy przycisk.\n* Wskazówka „mógłby pasować lepiej” proponuje już tylko wzorce, które potem rzeczywiście działają.\n* Przy „Informacji” w polu stoi „✓ 24 punkty” zamiast „24/31 zajętych” — ten wzorzec przyjmuje dowolnie wiele punktów.\n* Komunikat „żaden pozostały punkt danych nie pasuje” nie stoi już nad pomarańczową legendą i nazywa po imieniu wiersze rozstrzygnięte ręcznie.\n\n**Wolne miejsca**\n* Miejsce można utworzyć tylko raz, a każde miejsce występuje na liście jeden raz.\n* „Zaproponuj wolne miejsca” znajduje się teraz w niebieskiej ramce rozpoznawania; przycisk dla wszystkich punktów nazywa się „Wczytaj wszystkie punkty danych urządzenia” i stoi nad listą.\n\n**Wiersz szczegółów punktu**\n* Nowe: „Nazwa” i „Miejsce we wzorcu” — miejsce wpisuje rolę, typ, jednostkę i listę wartości.\n* „czyta z” i „zapisuje do” są szersze, formuła nazywa się „formuła odczytu” i stoi pod spodem.\n* Jeśli miejsce należy już do innego wiersza, warsztat to mówi, zamiast zarzucać zły typ. Czysta wartość pomiarowa nie dostaje już celu zapisu.\n\n**Szablony**\n* „Przejmij wartości szablonu” nie kasuje już listy wartości.\n* Szablon bez nazwy można wczytać, a potem też nazwać.\n* Pominięty wiersz podaje powód: brak punktu, brak JSON albo brak pola.\n* „Zaktualizuj szablon” zostawia rozpoznawanie takim, jakie było; wyeksportowany szablon można wczytać ponownie.\n\n**Zmiana źródła**\n* Jeśli jeden punkt się nie uda, adnotacja przy aliasie zostaje na starym źródle — zamianę można potem dokończyć.\n* Wyszarzony przycisk podaje własny powód.\n* Wskazówka „poziom wyżej” pojawia się już tylko tam, gdzie pomaga.\n\n**Usuwanie i przenoszenie**\n* Okno usuwania ostrzega tylko przed kanałami, które naprawdę leżą pod aliasem.\n* Po przeniesieniu źródło od razu zna znowu swój alias; „do źródła →” nie skacze już w nieokreślone.\n\n**Pomieszczenie i funkcja**\n* Pomieszczenie zostaje znalezione także w środku nazwy urządzenia („Heizung_Badezimmer INT0000001”).\n* Wybór klawiaturą działa jak myszą, a propozycja „umieścić także pod …?” nie potrzebuje już własnego wiersza.\n* Jeśli pomieszczeń i funkcji nie da się wczytać, mówią o tym same pola.\n\n**Tasmota i MQTT**\n* IP zostaje znalezione także przy starszym firmware (`tele.INFO2` w obu postaciach).\n* Karta nie twierdzi już, że wyłączony punkt wysyła; „zezwól na wysyłanie” włącza od razu także powiązanie.\n* Utworzenie kilku punktów wysyłkowych naraz daje te same obiekty co pojedynczo — `POWER`, `Fade` i `LedTable` jako `mixed`, żeby formuła zapisu działała.\n* Aktor HomeMatic bez szablonu nie ciągnie już za sobą punktów serwisowych.\n* „Dopytaj” przy SetOption59 liczy tylko to, co przyszło po wysłaniu; gdy odpowiedzi brak, stoi „Brak odpowiedzi …”, a przycisk zostaje do sprawdzenia.\n* Karta „Urządzenie MQTT” otwiera się znowu także przy urządzeniach bez wiersza z `tele/…`.\n\n**Widok**\n* Liczba przy węźle drzewa liczy to, co leży pod nim.\n* Węzeł bez własnego obiektu nosi „VIR”, karta urządzeń sortuje jak drzewo.\n* Przycisk czyta razem z innymi i pozostaje przyciskiem; mylący znacznik „nigdy się nie zmienia” zniknął.\n* Pola JSON z kropką w nazwie da się wybrać.",
|
|
16
|
+
"uk": "**Розпізнавання і шаблони**\n* Вибір іншого шаблона заново розставляє позначки і лишає їх, поки новий шаблон ще не спрацьовує.\n* Під час пропонування кожна точка даних отримує лише одне місце, а суперечлива одиниця вимірювання виключає місце — затримка запуску в секундах не стане фактичною температурою.\n* Поле шаблона називає те, чого справді бракує, зокрема групами («SET / SET_HEATING / SET_COOLING»). Пояснення каже, чому шаблон не спрацьовує, і одразу пропонує потрібну кнопку.\n* Підказка «можливо, підійшов би краще» пропонує лише ті шаблони, які після цього справді спрацьовують.\n* Для «Інформації» в полі стоїть «✓ 24 точки» замість «24/31 зайнято» — цей шаблон приймає будь-яку кількість точок.\n* Повідомлення «жодна решта точок даних не підходить» більше не стоїть над помаранчевим поясненням і називає рядки, вирішені вручну, на ім’я.\n\n**Вільні місця**\n* Місце можна створити лише один раз, і кожне місце стоїть у списку один раз.\n* «Запропонувати вільні місця» тепер у синьому блоці розпізнавання; кнопка для всіх точок називається «Завантажити всі точки даних пристрою» і стоїть над списком.\n\n**Рядок подробиць точки**\n* Нове: «Ім’я» та «Місце в шаблоні» — місце задає роль, тип, одиницю вимірювання і список значень.\n* «читає з» і «пише в» стали ширшими, формула називається «формула читання» і стоїть під ними.\n* Якщо місце вже належить іншому рядку, верстат каже про це, а не дорікає типом. Чисте виміряне значення більше не отримує цілі запису.\n\n**Шаблони**\n* «Прийняти значення шаблона» більше не видаляє список значень.\n* Шаблон без імені можна прочитати, а потім і назвати.\n* Пропущений рядок називає причину: точки немає, немає JSON або немає поля.\n* «Оновити шаблон» лишає розпізнавання таким, яким воно було; вивантажений шаблон можна прочитати знову.\n\n**Зміна джерела**\n* Якщо одна точка не вдалася, позначка біля аліаса лишається на старому джерелі — зміну можна довести до кінця.\n* Неактивна кнопка називає власну причину.\n* Підказка «на рівень вище» з’являється лише там, де вона допомагає.\n\n**Видалення та переміщення**\n* Діалог видалення попереджає лише про канали, які справді лежать під аліасом.\n* Після переміщення джерело одразу знову знає свій аліас; «до джерела →» більше не стрибає навмання.\n\n**Кімната і функція**\n* Кімнату знаходить і всередині назви пристрою («Heizung_Badezimmer INT0000001»).\n* Вибір із клавіатури діє як мишею, а пропозиція «розмістити також під …?» більше не займає окремий рядок.\n* Якщо кімнати й функції не вдалося завантажити, поля кажуть про це самі.\n\n**Tasmota і MQTT**\n* IP знаходиться й на старішій прошивці (`tele.INFO2` в обох формах).\n* Картка більше не стверджує, що вимкнена точка надсилає; «дозволити надсилання» одразу вмикає й зв’язок.\n* Створення кількох точок надсилання водночас дає ті самі об’єкти, що й по одній — `POWER`, `Fade` і `LedTable` як `mixed`, щоб формула запису діяла.\n* Актор HomeMatic без шаблона більше не тягне за собою службові точки.\n* «Перепитати» для SetOption59 враховує лише те, що надійшло після надсилання; якщо відповіді немає, стоїть «Немає відповіді …», а кнопка лишається для перевірки.\n* Картка «Пристрій MQTT» знову розкривається й на пристроях без рядка з `tele/…`.\n\n**Відображення**\n* Число біля вузла дерева рахує те, що лежить під ним.\n* Вузол без власного об’єкта має «VIR», картка пристроїв сортує як дерево.\n* Кнопка читає разом з усіма і лишається кнопкою; оманливу позначку «ніколи не змінюється» прибрано.\n* Поля JSON із крапкою в назві можна вибрати.",
|
|
17
|
+
"zh-cn": "**识别与模式**\n* 选择另一个模式会重新打勾,并在新模式尚未生效期间保持不变。\n* 提议时每个数据点只获得一个位置,互相矛盾的单位会排除某个位置——以秒为单位的启动延迟不会变成实际温度。\n* 模式字段会指出真正缺少的内容,也包括分组(“SET / SET_HEATING / SET_COOLING”)。说明文字会讲清楚模式为何不生效,并直接提供相应按钮。\n* 提示“也许更合适”只推荐之后确实能生效的模式。\n* 在“信息”模式下字段显示“✓ 24 个点”而不是“24/31 已占用”——该模式可容纳任意多个点。\n* 提示“没有剩余的数据点合适”不再位于橙色说明之上,并会点名列出手动决定的行。\n\n**空闲位置**\n* 一个位置只能创建一次,并且每个位置在列表中只出现一次。\n* “建议空闲位置”现在位于识别区的蓝色方框内;面向全部数据点的按钮名为“加载设备的所有数据点”,位于列表上方。\n\n**数据点的详细行**\n* 新增:“名称”和“模式中的位置”——位置会填入角色、类型、单位和取值列表。\n* “读取自”和“写入到”更宽了,公式称为“读取公式”,位于其下方。\n* 如果该位置已属于另一行,工作台会直接说明,而不是指责类型不对。纯测量值不再获得写入目标。\n\n**模板**\n* “采用模板的值”不再删除取值列表。\n* 没有名称的模板可以导入,之后也能命名。\n* 被省略的行会给出原因:缺少数据点、没有 JSON,或缺少字段。\n* “更新模板”会保持识别规则不变;导出的模板可以再次导入。\n\n**更换来源**\n* 若某个点失败,别名上的记录仍留在旧来源上——之后可以把更换做完。\n* 变灰的按钮会说明它自己的原因。\n* 提示“上一层”只在确实有帮助的地方出现。\n\n**删除与移动**\n* 删除对话框只会对真正位于别名之下的通道发出警告。\n* 移动之后来源立刻重新认得自己的别名;“转到来源 →”不再跳向不确定的位置。\n\n**房间与功能**\n* 房间名也能在设备名称中间被找到(“Heizung_Badezimmer INT0000001”)。\n* 用键盘选择与用鼠标效果一致,提示“是否也归入……?”不再另占一行。\n* 如果房间和功能无法加载,字段本身会说明。\n\n**Tasmota 与 MQTT**\n* 较旧固件上也能找到 IP(两种形式的 `tele.INFO2`)。\n* 卡片不再声称已关闭的点在发送;“允许发送”会同时把链接一并打开。\n* 一次创建多个发送点得到的对象与逐个创建相同——`POWER`、`Fade` 和 `LedTable` 为 `mixed`,使写入公式生效。\n* 没有模板的 HomeMatic 执行器不再附带维护类数据点。\n* SetOption59 的“再问一次”只统计发送之后收到的回应;若没有回应,会显示“没有回应 …”,按钮保留以便复查。\n* “MQTT 设备”卡片在没有来自 `tele/…` 行的设备上也能重新展开。\n\n**显示**\n* 树节点上的数字统计其下方的内容。\n* 没有自身对象的节点标记为“VIR”,设备卡片的排序与树一致。\n* 按钮也会读取并且仍然是按钮;具有误导性的“从不改变”标记已去掉。\n* 名称中带点的 JSON 字段可以选择。"
|
|
18
|
+
},
|
|
6
19
|
"0.9.12": {
|
|
7
20
|
"en": "* The small **type badges in the tree** (DEV, CHA, FOL …) now all have the same width. A node without an object of its own shows just a dot there, and its badge was narrower — its name fell out of line.\n* **“Move …” did nothing on some aliases.** Creating alias points by hand in the admin often yields an alias without its own channel object — the node shows in the tree but is not an object itself. The workbench displayed the “Move …” button there, but clicking it opened no dialog and said nothing. Such an alias is now moved exactly like one with a channel; a missing channel is not created along the way.\n* **No German left in the English interface.** Three places were hard-wired German: the type badge in the detail row (“Zahl”), the “Datenpunkt” field next to “writes to” and the screen-reader label of the tick boxes (“SET anlegen”). The fixed default texts in `tab.html` are now English — before, 44 German texts were only translated at runtime. The two browser-console messages are English now as well.\n* The tab's **menu entry** now has the adapter's name in all eleven admin languages. Before, it existed in German and English only, and every other language showed “Alias Workbench”.\n* **Why `value.power.consumption`** — four shipped templates give consumption this role, which the ioBroker roles list marks as deprecated. That is deliberate: the type-detector 6.0.x recognises consumption only with exactly this role. The reason is now written into every affected template (field `_rolle`) and into the README. The README also explains why the workbench is an admin tab rather than a settings page.\n* **The object count in the header grew the longer the tab stayed open.** Only devices, channels, folders and states are meant to be counted — and only those are loaded. When following changes, however, the workbench took in every changed object type: after switching the system language, `system.config` sat in its store and the count read 3146 instead of 3145, likewise after every saved instance setting or adapter update. Following changes now applies the same rule as loading.\n* **Values from another node did not update at a source.** When you select a source that already has an alias, the list also shows that alias’s rows — and they often read from somewhere else. The electricity meter shows three rows “from Solar.Netz”: import, smoothed import and house consumption. Their value was fetched once on selection and then froze; it stayed at 428 W for hours while the system reported 22 W. Only the selected node was subscribed; the rows’ sources were only added in “Edit alias” mode. The workbench now subscribes to everything it displays — including a source you point a row to by hand in the detail view. The header accordingly shows two subscriptions instead of one on the electricity meter.\n* The legend above the list claimed **“The light pattern does not apply right now: SET requires boolean, number is set. That is why no row has a place.”** — on a device whose SET row carries `switch.light`/`boolean` and is perfectly fine. The culprit was `0_AES_KEY`: hm-rpc gives it the role `state` and the type `number`, and `state` is allowed on the light pattern’s SET place. The check asks per row “your role would fit a place, your type does not” — it never looks at who ended up holding the place, and the message then printed the PLACE instead of the row it was about. The sentence was wrong at the end too: five rows did have a place. The type reason now only applies when the named place really did stay empty; otherwise the ordinary legend is back, and every placeless row is tinted instead of just one. The case the message was built for — SET itself in the wrong type, place stays empty — is unchanged.\n* Rows carried **“differs from the template”** where no template was in force at all — and flagged the better value while doing so. What was really compared was the raw draft, that is the bare role of the source point: on a switch actuator, after “— no template —”, `SET` showed the badge and below it “The template wants: **switch**”, while the alias holds `switch.light`, which even fits the `light` pattern. Same on `UNREACH`, where `indicator.maintenance.unreach` counted as the deviation and `indicator.unreach` as the target. And it was not only the dismissed case: on a device for which a template is **never** found, the same badge appeared. The rule now: with no template in force — dismissed or never found — no template value is recorded, so the badge, the detail line, the `←` button and the **template** filter button all drop out. Rows keep what the alias holds; that is the stock rule and has nothing to do with templates. With a template everything stays as it was — a real deviation is still shown.\n* With **“— no template —”** the **output** picker stayed on screen if you came from the multi-output template — coming via any other template it was gone. Two routes, two answers on the same device. Worse: using the leftover picker brought the dismissed template **silently back** (measured: after switching to `Licht_Esstisch` the field read “HomeMatic switch actuator with several outputs” again). An output does not belong to the device but to the template’s `mehrfach` block — without it there is no placeholder and so nothing to choose; of 17 bundled templates exactly two carry such a block. The raw draft no longer inherits it, and the channels go through “one sub-folder per channel” instead. **And everything is ticked now.** The raw draft used to tick whatever had a place in the detected pattern; on two **identical** channels the detector picked one of them — the second — so `Licht_Esstisch` stood ticked and `Licht_Bar` empty. Which one it picks is chance, and guessing is not the job of a draft without a template: dropping the template means picking the points yourself.\n* The expander in the template box read **“Why this template +”** and always wanted the right-hand edge. With a long name and two badges — “HomeMatic roller shutter actuator”, chosen by hand, forced — it no longer found room there and took **a line of its own**; the box grew without anything having been added. It is now a **question mark**, with the sentence in the tooltip. What was left out stays visible as a short badge (`4 WITHOUT SOURCE`) — nobody should have to go looking for the fact that points are missing — and the sentence behind it now reads “4 left out because the source is missing” instead of “Left out because the source is missing: 4”. The header no longer wraps at all: room is made by the template name, which is shortened and shown in full in its tooltip; the id stays put, because `hm-rollladen…` is no longer an id. Expanded, the question mark is filled.\n* **A push-button is not simply any write-only point.** The workbench left the read source empty on every row whose source carried `read: false`. But HomeMatic uses that flag for two different things, counted across every device in the house: for a button press (`PRESS_SHORT` 100 points, `RAMP_STOP` 3, `STOP` 1, `OLD_LEVEL` 3 — all with `native.TYPE: ACTION`) **and** for a setting that stays put (`ON_TIME` 20 points, `RAMP_TIME` 3 — `TYPE: FLOAT`). That is why the living-room dimmer showed “never changes” on `ON_TIME` with an empty “reads from” field — on a value in seconds that one does set at the source now and then. Measured: an alias put on `1.ON_TIME`, the source set to 30 directly, and the alias showed 30. So `read: false` does not block reading. The read source is now left empty only where a button press is really meant: `native.TYPE: ACTION`, or a role starting with `button`. `OLD_LEVEL` is the case where the role is not enough — it is called `value.dimmer`.\n* **“— no template —”** is now in the template picker. Once the workbench had detected a template it could only be swapped for another one, never dropped: the first entry of the list was a mere heading with an empty value, and the branch bailed out on an empty value. Anyone wanting to create all points of a device without a template’s defaults had no way to get there. The choice now rebuilds the draft without any template — ticked is whatever has a place in the detected pattern — and target, folder, name, room and function stay as they were.\n* The mark on a row whose source only writes read **“reports nothing”**. That sounded like a fault — as if the device were mute. What is meant is different: the value stays where it was written and never reports back by itself. It now reads **“never changes”**, and the same in the “target does not read” check.\n* **“One sub-folder per channel”** — the button next to “create as one device” serves a different purpose, and nothing said so: it **mirrors the folder structure of the source**. A container for the device, one channel each below it, the states below those. **The ticks now decide what appears**: one sub-folder for every channel that contributes at least one ticked row, holding exactly those rows. Before, the path built a fresh draft per channel and ticked whatever that channel’s pattern offered — things appeared that nobody had chosen (on the test device the maintenance channel got three points instead of the two ticked ones), and channels with nothing chosen were created all the same. Edits made by hand on a row — role, type, unit, formula, caption — now travel with it. **Information channels count too**: they used to be dropped, so the button said “3 of them” while six channels stood in the tree next to it — and clicking `general` on its own has long given a draft (“Information ✓ 7/14 filled”) that could be created. **The maintenance channel gets its own folder** instead of being copied into every output: `UNREACH` exists only in channel 0 of the dimmer, so that is where it belongs; whoever wants it with the light takes “create as one device”. The copying had produced nonsense — 206 raw data points of a lawn mower in each of four drafts, the three meter phases of a Shelly SHEM-3 counted as “shared” instead of as channels of their own. **Virtual channels drop out by themselves**: on a HomeMatic dimmer nothing is ticked in the two `VIRTUAL_DIMMER` channels, so nothing is created there. **States directly on the device** stay in the container, which is then created as a channel instead of a folder. **And the hint is right again**: it computed `targetFolder + channel` while writing uses `targetFolder + device + channel` — on the dishwasher it promised `alias.0.Commands` and created `alias.0.Dishwasher.Commands`, on the living-room dimmer it read `alias.0.1`, `alias.0.2`, `alias.0.3`. It now names the id, the number of ticked points and the detected type. The label says so too: “one sub-folder per channel, N of them …” instead of “one device per channel”\n* On a **multi-output device** the draft adopted the ticks of a foreign alias. The workbench asked \"is there already an alias for this device?\" and answered with the one that reads **most often** from it. On Ricardo's power strip that is the consumption alias with six points from `tele.SENSOR` — it beat `RF1000` with two points from `stat.POWER1`. Output 1 then showed ELECTRIC_POWER and CONSUMPTION ticked, SET unticked, and the pattern field reported **\"✕ SET missing\"** on a device with a working SET. The majority rule is right for a single-output device and the wrong question for a multi-output one. The right question is: **does this alias belong to the output currently selected?** That is not guessed from names but asked of the template — which of its paths carry the placeholder? Exactly those tell the outputs apart (`stat.POWER%N%`, `cmnd.POWER%N%`); everything else (`tele.SENSOR`, `tele.LWT`) is shared. This also removes the trap from I31: `tele.INFO2` does carry a two, but no placeholder. For output 1 the bare `cmnd.POWER` counts as well — with Tasmota, POWER without a number is a second name for POWER1, measured at the device: a query to `cmnd/POWER` is answered with `{\"POWER1\":\"ON\"}`, and a topic `stat/POWER` does not exist. **The bug only hit the first glance**: coming through the tree brought the wrong stock, switching the output asked nothing at all and the template defaults won — the same output looked different depending on how you got there. All three paths now ask the same question. Single-output devices never enter the new branch by construction; without the new argument `aliasFuer` behaves line for line as before.\n* **The target line now follows the same alias.** On a multi-output device it always showed the output number — `alias.0.Bastelzimmer.Steckdosenleiste.POWER1`, an ID that does not exist — and reported \"will be created\", while `RF1000` stood right next to it. Clicking would have put a second alias beside the existing ones. The source said: \"the workbench cannot know what the individual output is called.\" That held as long as it could only ask about the device. The target line now points at `…Steckdosenleiste.RF1000` with the badge \"already exists\", and \"update alias\" hits it. Where no alias exists for the output yet — the garden valve island — the proposal from the output number stays, and so does \"will be created\".\n* The **SetOption59** note appeared on every Tasmota device, including where it has no effect. It claimed an alias would show \"the old value for minutes after switching\" — but on the power strip not a single row reads from `tele/STATE`; they all read from `stat.POWERn`, which the device sends immediately on every command (measured: 1.07 s). \"For minutes\" also assumed the Tasmota default of 300 seconds; on that strip it is ten (measured: `tele/STATE` every ten seconds). The block now only appears when a row really reads from `tele/…` **and** writes to `cmnd/…`, names those rows, and reads the interval from `TelePeriod`; if it is not in the telegram the text says \"on the telemetry cycle\" instead of inventing a number. The same applies to the chip in the header. And the check \"feedback is immediate\" no longer reports \"all fine\" where there was nothing to check, but **\"no row affected — all read from stat/…\"** with a grey dot instead of a tick. Card and check ask the same function and can no longer drift apart.",
|
|
8
21
|
"de": "* Die kleinen **Typkästchen im Baum** (DEV, CHA, FOL …) sind jetzt alle gleich breit. Ein Knoten ohne eigenes Objekt trägt dort nur einen Punkt, und sein Kästchen war schmaler — der Name rückte aus der Flucht.\n* **„Verlegen …“ tat an manchen Aliasen gar nichts.** Wer Aliaspunkte von Hand im Admin anlegt, bekommt oft einen Alias ohne eigenes Kanalobjekt — der Knoten steht im Baum, ist aber selbst kein Objekt. Die Werkbank zeigte dort den Knopf „Verlegen …“ an, ein Klick darauf öffnete aber keinen Dialog und sagte auch nichts. Jetzt wird so ein Alias beim Verlegen genauso behandelt wie einer mit Kanal; ein fehlender Kanal wird dabei nicht nachträglich angelegt.\n* **Kein Deutsch mehr in der englischen Oberfläche.** An drei Stellen stand fest verdrahtet Deutsch: die Typmarke in der Detailzeile („Zahl“), das Feld „Datenpunkt“ bei „schreibt auf“ und die Vorlesehilfe der Häkchen („SET anlegen“). Die festen Vorgabetexte in `tab.html` sind jetzt englisch — vorher waren es 44 deutsche Texte, die erst zur Laufzeit übersetzt wurden. Auch die zwei Meldungen in der Browserkonsole sind jetzt englisch.\n* Der **Menüeintrag** des Reiters heißt jetzt in allen elf Admin-Sprachen so wie der Adapter. Bisher gab es ihn nur auf Deutsch und Englisch; bei jeder anderen Sprache stand „Alias Workbench“.\n* **Warum `value.power.consumption`** — vier mitgelieferte Vorlagen geben dem Verbrauch diese Rolle, die in der Rollenliste von ioBroker als veraltet gilt. Das ist Absicht: der type-detector 6.0.x erkennt den Verbrauch nur mit genau dieser Rolle. Der Grund steht jetzt in jeder betroffenen Vorlage (Feld `_rolle`) und im README. Dazu erklärt das README, warum die Werkbank ein Admin-Reiter ist und keine Einstellungsseite.\n* **Die Objektzahl in der Kopfzeile wuchs, je länger der Reiter offen war.** Gezählt werden sollen nur Geräte, Kanäle, Ordner und Datenpunkte — so wird auch geladen. Beim Nachziehen nahm die Werkbank aber jede geänderte Art auf: nach dem Umstellen der Systemsprache stand `system.config` im Vorrat und die Zahl auf 3146 statt 3145, ebenso nach jeder gespeicherten Instanzeinstellung oder einem Adapter-Update. Jetzt gilt beim Nachziehen dieselbe Regel wie beim Laden.\n* **Werte aus einem anderen Knoten liefen an einer Quelle nicht mit.** Wählt man eine Quelle, zu der es schon einen Alias gibt, zeigt die Liste auch dessen Zeilen — und die lesen oft woanders. Am Stromzähler stehen drei Zeilen „aus Solar.Netz“: Bezug, Bezug geglättet und Hausverbrauch. Ihr Wert wurde beim Anklicken einmal geholt und stand danach still, gemessen stundenlang auf 428 W, während das System 22 W meldete. Abonniert war nur der angeklickte Knoten; die Quellen der Zeilen kamen nur im Modus „Alias bearbeiten“ dazu. Jetzt abonniert die Werkbank überall, was sie anzeigt — auch eine Quelle, die man in der Detailzeile von Hand auf einen anderen Knoten stellt. Die Kopfleiste zeigt am Stromzähler entsprechend zwei Abos statt einem.\n* Die Legende über der Liste behauptete **„Das Licht-Muster greift gerade nicht: SET verlangt boolean, eingestellt ist number. Deshalb hat keine Zeile einen Platz.\"** — an einem Gerät, dessen SET-Zeile `switch.light`/`boolean` trägt und völlig in Ordnung ist. Schuld war `0_AES_KEY`: hm-rpc vergibt dafür die Rolle `state` und den Typ `number`, und `state` ist beim Licht-Platz SET zugelassen. Die Prüfung fragt je Zeile „deine Rolle taugt für einen Platz, dein Typ aber nicht\" — sie sieht nicht nach, wer den Platz am Ende bekommen hat, und die Meldung schrieb dann den PLATZ hin statt der Zeile, um die es ging. Der Satz stimmte auch hinten nicht: fünf Zeilen hatten sehr wohl einen Platz. Der Typ-Grund gilt jetzt nur noch, wenn der genannte Platz auch wirklich leer geblieben ist; sonst steht wieder die gewöhnliche Legende da, und alle platzlosen Zeilen sind getönt statt nur einer. Der Fall, für den die Meldung gebaut wurde — SET selbst im falschen Typ, Platz bleibt leer — bleibt unverändert.\n* Zeilen trugen **„weicht von der Vorlage ab\"**, wo gar keine Vorlage in Kraft war — und markierten dabei ausgerechnet den besseren Wert. Verglichen wurde in Wahrheit gegen den Rohentwurf, also gegen die blanke Rolle des Quellpunkts: an einem Schaltaktor stand nach „— keine Vorlage —\" an `SET` die Marke und darunter „Die Vorlage will hier: **switch**\", während im Alias `switch.light` steht, was auf das Muster `light` sogar passt. Dasselbe an `UNREACH`, wo `indicator.maintenance.unreach` als Abweichung galt und `indicator.unreach` als Sollwert. Und es traf nicht nur den abgewählten Fall: an einem Gerät, zu dem **nie** eine Vorlage gefunden wird, erschien dieselbe Marke. Jetzt gilt: ist keine Vorlage in Kraft — abgewählt oder nie gefunden —, entsteht kein Vorlagenwert, und damit fallen Marke, Detailzeile, der `←`-Knopf und der Filterknopf **Vorlage** weg. Die Zeilen behalten, was im Alias steht; das ist die Bestandsregel und hängt nicht an Vorlagen. Mit Vorlage bleibt alles, wie es war — eine echte Abweichung wird weiter angezeigt.\n* Bei **„— keine Vorlage —\"** blieb der **Ausgang**-Kasten stehen, wenn man von der Mehrfachvorlage kam — kam man über eine andere Vorlage, war er weg. Zwei Wege, zwei Antworten am selben Gerät. Schlimmer: wer den stehengebliebenen Kasten benutzte, holte die abgewählte Vorlage **kommentarlos zurück** (gemessen: nach dem Umschalten auf `Licht_Esstisch` stand wieder „Homematic Schaltaktor mit mehreren Ausgängen\" im Feld). Ein Ausgang gehört nicht zum Gerät, sondern zum `mehrfach`-Block der Vorlage — ohne ihn gibt es keinen Platzhalter und damit nichts zu wählen; von 17 mitgelieferten Vorlagen tragen genau zwei so einen Block. Der Rohentwurf erbt ihn jetzt nicht mehr, und die Kanäle laufen über „Unterordner je Kanal\". **Und angehakt ist jetzt alles.** Bisher hakte der Rohentwurf an, was im erkannten Muster einen Platz hat; an zwei **gleichartigen** Kanälen nahm der Detektor einen davon — und zwar den zweiten, so dass `Licht_Esstisch` angehakt dastand und `Licht_Bar` leer. Welcher es wird, ist Zufall, und danach zu raten ist nicht die Aufgabe eines Entwurfs ohne Vorlage: wer sie abwählt, will die Punkte selbst aussuchen.\n* Der Aufklapper im Vorlagenkasten hieß **„Warum diese Vorlage +\"** und wollte immer an den rechten Rand. Bei einem langen Namen und zwei Marken — „Homematic Rollladenaktor\", von Hand gewählt, erzwungen — fand er dort keinen Platz mehr und nahm sich eine **eigene Zeile**; der Kasten wuchs, ohne dass etwas dazugekommen war. Jetzt steht dort ein **Fragezeichen** und der Satz im Tooltip. Was weggelassen wurde, bleibt als kurze Marke sichtbar (`4 OHNE QUELLE`) — dass Punkte fehlen, soll niemand erst suchen müssen —, und der Satz dahinter heißt jetzt herum „4 weggelassen, weil die Quelle fehlt\" statt „Weggelassen, weil die Quelle fehlt: 4\". Die Kopfzeile bricht überhaupt nicht mehr um: Platz macht der Vorlagenname, der gekürzt wird und vollständig im Tooltip steht; die Kennung bleibt stehen, denn `hm-rollladen…` ist keine Kennung mehr. Aufgeklappt ist das Fragezeichen gefüllt.\n* **Ein Taster ist nicht jeder Punkt, der nur schreibt.** Die Werkbank liess die Lesequelle bei jeder Zeile weg, deren Quelle `read: false` trug. Homematic vergibt dieses Merkmal aber für zweierlei, gezählt über alle Geräte im Haus: für den Tastendruck (`PRESS_SHORT` 100 Punkte, `RAMP_STOP` 3, `STOP` 1, `OLD_LEVEL` 3 — alle mit `native.TYPE: ACTION`) **und** für eine Vorgabe, die stehen bleibt (`ON_TIME` 20 Punkte, `RAMP_TIME` 3 — `TYPE: FLOAT`). Am Wohnzimmer-Dimmer stand deshalb an `ON_TIME` „ändert sich nie\" und das Feld „liest aus\" war leer — bei einer Zahl in Sekunden, die man auch mal direkt an der Quelle setzt. Nachgemessen: Alias auf `1.ON_TIME` gelegt, die Quelle direkt auf 30 gesetzt, der Alias zeigte 30. `read: false` sperrt das Lesen also nicht. Die Lesequelle bleibt jetzt nur noch dort leer, wo wirklich ein Tastendruck gemeint ist: `native.TYPE: ACTION` oder eine Rolle, die mit `button` beginnt. `OLD_LEVEL` ist der Fall, an dem die Rolle nicht reicht — sie heißt `value.dimmer`.\n* **„— keine Vorlage —\"** steht jetzt in der Vorlagenwahl. Hatte die Werkbank eine Vorlage erkannt, liess sie sich nur gegen eine andere tauschen, nicht weglassen: der erste Eintrag der Liste war eine blosse Überschrift mit leerem Wert, und der Zweig stieg bei leerem Wert sofort aus. Wer alle Punkte eines Geräts ohne Vorlagenvorgaben anlegen wollte, kam nicht hin. Jetzt baut die Wahl den Entwurf ohne jede Vorlage neu auf — angehakt ist, was im erkannten Muster einen Platz hat — und Ziel, Ordner, Name, Raum und Funktion bleiben stehen.\n* Die Marke an einer Zeile, deren Quelle nur schreibt, hiess **„meldet nichts\"**. Das klang nach einer Störung — als wäre das Gerät stumm. Gemeint ist etwas anderes: der Wert steht da, wo man ihn hingeschrieben hat, und er meldet sich nicht von allein zurück. Sie heißt jetzt **„ändert sich nie\"**, und dasselbe in der Prüfung „Ziel liest nicht\".\n* **„Unterordner je Kanal\"** — der Knopf neben „als ein Gerät erzeugen\" hat einen anderen Zweck als dieses, und das stand nirgends: er **bildet die Ordnerstruktur der Quelle ab**. Ein Behälter für das Gerät, darunter je Kanal einer, darunter die Punkte. **Jetzt bestimmen die Haken, was entsteht**: ein Unterordner für jeden Kanal, aus dem mindestens eine angehakte Zeile stammt, und darin genau diese Zeilen. Vorher baute der Weg je Kanal einen frischen Entwurf und hakte an, was das Muster des Kanals hergab — es entstand, was niemand gewählt hatte (am Testgerät bekam der Wartungskanal drei Punkte statt der zwei angehakten), und Kanäle, aus denen nichts gewählt war, entstanden trotzdem. Handeingaben an einer Zeile — Rolle, Typ, Einheit, Formel, Beschriftung — wandern jetzt mit. **Informationskanäle zählen mit**: bisher fielen sie heraus, und am Geschirrspüler sagte der Knopf „3 Stück\", während im Baum daneben sechs Kanäle standen — wer `general` einzeln anklickte, bekam längst einen Entwurf („Information ✓ 7/14 belegt\") und durfte ihn anlegen. **Der Wartungskanal bekommt einen eigenen Ordner**, statt in jeden Ausgang hineinkopiert zu werden: `UNREACH` gibt es am Dimmer nur in Kanal 0, also gehört es dorthin; wer es beim Licht mit drin haben will, nimmt „als ein Gerät erzeugen\". Das Verteilen hatte Unsinn produziert — 206 Rohdatenpunkte eines Rasenmähers in jedem der vier Entwürfe, die drei Emeter-Phasen eines Shelly SHEM-3 als „gemeinsam\" statt als eigene Kanäle. **Virtuelle Kanäle fallen von selbst weg**: an einem Homematic-Dimmer ist in den beiden `VIRTUAL_DIMMER`-Kanälen nichts angehakt, also entsteht dort nichts. **Punkte direkt am Gerät** bleiben im Behälter, der dann als Kanal statt als Ordner entsteht. **Und der Hinweis stimmt wieder**: er rechnete `zielOrdner + Kanal`, geschrieben wird `zielOrdner + Gerät + Kanal` — am Geschirrspüler versprach er `alias.0.Befehle` und legte `alias.0.Geschirrspüler.Befehle` an, am Wohnzimmer-Dimmer las man `alias.0.1`, `alias.0.2`, `alias.0.3`. Jetzt nennt er Kennung, Zahl der angehakten Punkte und erkannten Typ. Die Beschriftung sagt es auch: „Unterordner je Kanal, N Stück …\" statt „je Kanal ein Gerät\"\n* An einem **Mehrfachgerät** übernahm der Entwurf die Haken eines fremden Alias. Die Werkbank fragte „gibt es für dieses Gerät schon einen Alias?\" und antwortete mit dem, der **am häufigsten** aus dem Gerät liest. An Ricardos Steckdosenleiste ist das der Verbrauchsalias mit sechs Punkten aus `tele.SENSOR` — er schlug `RF1000` mit zwei Punkten aus `stat.POWER1`. Für Ausgang 1 standen danach ELECTRIC_POWER und CONSUMPTION angehakt da, SET nicht, und das Musterfeld meldete **„✕ SET fehlt\"** an einem Gerät mit funktionierendem SET. Die Mehrheitsregel ist an einem Gerät mit einem Ausgang richtig und an einem Mehrfachgerät die falsche Frage. Richtig ist: **gehört dieser Alias zu dem Ausgang, der gerade gewählt ist?** Erkannt wird das nicht an Namen, sondern an der Vorlage — welche ihrer Pfade tragen den Platzhalter? Genau die unterscheiden die Ausgänge (`stat.POWER%N%`, `cmnd.POWER%N%`), alles andere (`tele.SENSOR`, `tele.LWT`) ist allen gemeinsam. Damit fällt auch die Falle aus I31 weg: `tele.INFO2` trägt zwar eine Zwei, aber keinen Platzhalter. Für Ausgang 1 zählt zusätzlich das blanke `cmnd.POWER` — bei Tasmota ist POWER ohne Nummer ein Zweitname für POWER1, am Gerät nachgemessen: eine Abfrage an `cmnd/POWER` wird mit `{\"POWER1\":\"ON\"}` beantwortet, ein Thema `stat/POWER` gibt es nicht. **Der Fehler traf nur den ersten Blick**: Über den Baum kam der falsche Bestand, beim Umschalten des Ausgangs wurde gar nicht erst gefragt und die Vorlagenvorgaben gewannen — derselbe Ausgang sah je nach Weg anders aus. Jetzt stellen alle drei Wege dieselbe Frage. Geräte mit einem Ausgang laufen per Bauart nie in den neuen Zweig; `aliasFuer` verhält sich ohne das neue Argument Zeile für Zeile wie bisher.\n* **Die Zielzeile folgt jetzt demselben Alias.** Sie stand am Mehrfachgerät immer auf der Ausgangsnummer — `alias.0.Bastelzimmer.Steckdosenleiste.POWER1`, eine Kennung, die es gar nicht gibt — und meldete „wird neu angelegt\", während `RF1000` danebenstand. Wer geklickt hätte, hätte einen zweiten Alias neben seinen gesetzt. Im Quelltext stand als Begründung: „Wie der einzelne Ausgang heisst, kann die Werkbank nicht wissen.\" Das galt, solange sie nur nach dem Gerät fragen konnte. Jetzt zeigt die Zielzeile auf `…Steckdosenleiste.RF1000` mit dem Abzeichen „gibt es schon\", und „Alias aktualisieren\" trifft ihn. Gibt es für den Ausgang noch nichts — die Garten-Ventilinsel —, bleibt es beim Vorschlag aus der Ausgangsnummer und bei „wird neu angelegt\".\n* Der Hinweis zu **SetOption59** stand an jedem Tasmota-Gerät, auch wo er folgenlos ist. Er behauptete, ein Alias zeige „nach dem Schalten minutenlang den alten Wert\" — an der Steckdosenleiste liest aber keine einzige Zeile aus `tele/STATE`, alle lesen aus `stat.POWERn`, und das schickt das Gerät bei jedem Befehl sofort (gemessen: 1,07 s). „Minutenlang\" unterstellte obendrein die Tasmota-Vorgabe von 300 Sekunden; an der Leiste sind es zehn (gemessen: `tele/STATE` im Zehnsekundentakt). Der Block erscheint jetzt nur noch, wenn wirklich eine Zeile aus `tele/…` liest **und** nach `cmnd/…` schreibt, nennt diese Zeilen beim Namen und liest den Takt aus `TelePeriod`; steht er nicht im Telegramm, sagt der Text „im Telemetrietakt\" statt einer erfundenen Zahl. Dasselbe gilt für den Chip in der Kopfzeile. Und die Prüfung „Rückmeldung kommt sofort\" meldet nicht länger „alle in Ordnung\", wo es nichts zu prüfen gab, sondern **„betrifft keine Zeile — alle lesen aus stat/…\"** mit grauem Punkt statt Haken. Karte und Prüfung fragen dieselbe Funktion und können nicht mehr auseinanderlaufen.",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Siedem pakietów z przeglądu kodu — 45 poprawek między 0.9.0 a tym wydaniem. Kroki pośrednie od 0.9.1 do 0.9.6 pozostały lokalne i nigdy nie zostały opublikowane; tutaj są zebrane razem.\n\n**Utrata danych i ścieżki błędów**\n* Błąd przy wyliczeniach zatrzymuje teraz przenoszenie. Wcześniej stary alias i tak był usuwany — a potem już go nie było, podczas gdy nowy nie figurował w żadnym wyliczeniu\n* Częściowe niepowodzenie przy usuwaniu nie zamienia już przycisku ponowienia w atrapę: wypisywane jest tylko to, co naprawdę zniknęło\n* Osierocone punkty są usuwane także przy drugim podejściu\n* Błąd wczytywania wyliczeń pozostawia poprzedni stan, zamiast go opróżniać — a dopóki są nieznane, nic nie jest zapisywane. Wcześniej jedno potknięcie mogło wyrzucić alias ze wszystkich pomieszczeń i funkcji\n* Błąd wczytywania własnych szablonów jest zgłaszany, a nie przemilczany; w przeciwnym razie kolejny zapis zastąpiłby istniejący szablon wersją 1\n\n**Połączenie i wyświetlanie**\n* Po zerwaniu połączenia zakładka znowu działa. WebSocket Admina wysyła `connect` tylko raz na czas życia strony, a potem `reconnect` — nikt tego nie słuchał i nie docierały ani zmiany obiektów, ani wartości\n* Tryb szablonów nie przebudowuje się już co sekundę, a wraz z wyborem przenoszą się jego subskrypcje\n* „Różni się od aliasu\" pojawia się teraz także w trybie aliasu — tam, gdzie mówi najwięcej\n* Szybka zmiana źródła nie pobiera już obcej wartości; lista skoków między źródłami nigdy nie pojawia się podwójnie\n* Nazwy obiektów podążają za językiem Admina; dopasowanie funkcji patrzy na wszystkie wersje językowe i nie tworzy już sobowtóra\n\n**Szablony**\n* Zepsuta podpowiedź nazwy nie unieruchamia już całego widoku źródeł — łącznie z zagnieżdżoną postacią `(a+)+`, na której zacina się silnik wyrażeń\n* Formuła źródła zastępczego przeżywa aktualizację, nieznany typ urządzenia nie wyrzuca już błędu\n* Wczytywanie sprawdza więcej niż identyfikator i stany; ręcznie wpisany identyfikator nie zastępuje już cudzego szablonu\n* Wypełniacz `%N%` trafia tylko w numer wyjścia, a nie w każdą końcową cyfrę\n* Roleta dostaje swój STOP: naciśnięcie przycisku nie ma stanu do odczytu, a tego przypadku stosowanie szablonów nie znało — **ani jeden** alias rolety nigdy go nie miał\n* ON_TIME znajduje swoje miejsce (cztery szablony niosły niewłaściwą rolę)\n\n**MQTT i Tasmota**\n* Pusty wpis `custom` już niczego nie unieruchamia, `enabled: false` liczy się jako wyłączone\n* Koniec z fałszywym „nie może wysyłać\" przy ioBroker.mqtt i sonoff — tam zdolność wysyłania jest po prostu nieznana, a nie zaprzeczona\n* „Odpowiedź otrzymana\" tylko przy prawdziwej odpowiedzi; `Vcc` i `Command` nie są poleceniami\n\n**Szybkość, zmierzona na systemie produkcyjnym z 24 786 obiektami**\n* Pole wyszukiwania już nie blokuje: **236 ms na naciśnięcie → 0**, całe drzewo **263 → 67 ms**\n* Przerysowanie nie kosztuje już pół sekundy — wyszukiwanie binarne zamiast przebiegów liniowych: narysowanie źródła **15,8 → 1,6 ms**, aliasu z 50 punktami **51,9 → 14,2 ms**\n* Formuła odczytu nie może już trwale zamrozić zakładki\n* Subskrybowane jest to, co czytane — wcześniej pojedynczy alias potrafił zasubskrybować pół adaptera",
|
|
81
94
|
"uk": "Сім пакетів із код-рев'ю — 45 виправлень між 0.9.0 і цим випуском. Проміжні кроки з 0.9.1 до 0.9.6 лишилися локальними й ніколи не публікувалися; тут вони зібрані разом.\n\n**Втрата даних і шляхи відмов**\n* Помилка в переліках тепер зупиняє перенесення. Раніше старий аліас усе одно видалявся — і після цього його не було, а новий не значився в жодному переліку\n* Часткова невдача під час видалення більше не перетворює кнопку повтору на бутафорію: знімається лише те, що справді зникло\n* Осиротілі точки видаляються й з другої спроби\n* Помилка завантаження переліків лишає попередній стан на місці, замість того щоб його спорожнити, — і поки вони невідомі, нічого не записується. Раніше одна затримка могла викинути аліас з усіх кімнат і функцій\n* Про помилку завантаження власних шаблонів тепер повідомляють, а не замовчують; інакше наступне збереження замінило б наявний шаблон версією 1\n\n**З'єднання та відображення**\n* Після обриву зв'язку вкладка знову працює. WebSocket адмінки видає `connect` лише раз за час життя сторінки, а далі тільки `reconnect` — цього ніхто не слухав, і не надходили ні зміни об'єктів, ні зміни значень\n* Режим шаблонів більше не перебудовується щосекунди, і разом з вибором переїжджають його підписки\n* «Відрізняється від аліаса» показується тепер і в режимі аліаса — там, де ця позначка каже найбільше\n* Швидке перемикання джерел більше не підтягує чуже значення; список переходу між джерелами ніколи не з'являється двічі\n* Імена об'єктів ідуть за мовою адмінки; зіставлення функцій дивиться на всі мовні варіанти й більше не створює двійника\n\n**Шаблони**\n* Зламана підказка імені більше не виводить з ладу весь вигляд джерела — разом із вкладеною формою `(a+)+`, на якій застрягає рушій виразів\n* Формула запасного джерела переживає оновлення, невідомий тип пристрою більше не спричиняє помилку\n* Імпорт перевіряє не лише ідентифікатор і стани; ідентифікатор, введений вручну, більше не заміняє чужий шаблон\n* Підстановка `%N%` влучає лише в номер виходу, а не в будь-яку останню цифру\n* Ролета отримує свій STOP: натискання кнопки не має стану для читання, і цього випадку застосування шаблонів не знало — **жоден** аліас ролети його ніколи не мав\n* ON_TIME знаходить своє місце (чотири шаблони несли хибну роль)\n\n**MQTT і Tasmota**\n* Порожній запис `custom` більше нічого не ламає, `enabled: false` вважається вимкненим\n* Більше жодних хибних «не може надсилати» для ioBroker.mqtt і sonoff — там здатність надсилати просто невідома, а не заперечена\n* «Відповідь отримано» — лише за справжньої відповіді; `Vcc` і `Command` не є командами\n\n**Швидкість, виміряно на робочій системі з 24 786 об'єктами**\n* Поле пошуку більше не блокує: **236 мс на натискання → 0**, усе дерево **263 → 67 мс**\n* Перемальовування більше не коштує пів секунди — двійковий пошук замість лінійних проходів: малювання джерела **15,8 → 1,6 мс**, аліаса з 50 точками **51,9 → 14,2 мс**\n* Формула читання більше не може назавжди заморозити вкладку\n* Підписуємося на те, що читаємо, — раніше один-єдиний аліас міг підписатися на половину адаптера",
|
|
82
95
|
"zh-cn": "一次代码评审带来的七个修复包——0.9.0 到本版本之间共 45 处修正。中间版本 0.9.1 至 0.9.6 只留在本地、从未发布,其内容汇总于此。\n\n**数据丢失与故障路径**\n* 枚举出错时现在会中止迁移。此前旧别名照样被删除——之后它已不存在,而新别名却不属于任何枚举\n* 删除过程中的部分失败不再把「重试」按钮变成摆设:只有真正消失的条目才会被注销\n* 孤立的数据点在第二次尝试时同样会被删除\n* 枚举加载失败时保留原有状态,而不是将其清空——并且在枚举未知期间不写入任何内容。以前一次卡顿就可能让某个别名从所有房间和功能中掉出去\n* 自建模板加载失败会被报告而非吞掉;否则下一次保存就会用版本 1 覆盖已有模板\n\n**连接与显示**\n* 连接中断后选项卡可以继续工作。Admin 的 WebSocket 在每个页面生命周期内只触发一次 `connect`,之后只有 `reconnect`——此前无人监听,对象变更和值变更都收不到\n* 模板模式不再每秒重建一次,选择移到哪里,它的订阅就跟到哪里\n* 「与别名不一致」现在在别名模式下同样显示——那正是这个标记最有意义的地方\n* 快速切换源不再取到别处的值;源跳转列表不会重复出现\n* 对象名称跟随 Admin 语言;功能比对会查看所有语言版本,不再创建重复项\n\n**模板**\n* 损坏的名称提示不再拖垮整个源视图——包括嵌套形式 `(a+)+`,表达式引擎会在它上面卡死\n* 备用源的公式在更新后得以保留,未知设备类型不再抛出异常\n* 导入时检查的不只是 id 和状态;手动输入的 id 不会再覆盖他人的模板\n* 占位符 `%N%` 现在只匹配输出编号,而不是任意末尾数字\n* 卷帘拿到了它的 STOP:按键动作没有可读取的状态,而模板应用此前并不认识这种情况——**没有一个**卷帘别名曾经有过\n* ON_TIME 找到了自己的位置(四个模板带着错误的角色)\n\n**MQTT 与 Tasmota**\n* 空的 `custom` 条目不再拖垮任何东西,`enabled: false` 视为已关闭\n* ioBroker.mqtt 和 sonoff 不再出现错误的「无法发送」——在那里发送能力只是未知,而非被否定\n* 只有收到真正的回复才显示「已收到回复」;`Vcc` 和 `Command` 并不是命令\n\n**速度,在拥有 24 786 个对象的生产系统上实测**\n* 搜索框不再阻塞:**每次按键 236 毫秒 → 0**,整棵树 **263 → 67 毫秒**\n* 重绘不再耗费半秒——以二分查找取代线性扫描:绘制一个源 **15.8 → 1.6 毫秒**,含 50 个数据点的别名 **51.9 → 14.2 毫秒**\n* 读取公式不会再让选项卡永久冻结\n* 订阅的正是要读取的内容——此前单个别名就可能订阅半个适配器"
|
|
83
|
-
},
|
|
84
|
-
"0.9.0": {
|
|
85
|
-
"en": "Several sources behind one alias are now visible: a chip names their count, every row its origin, and the way back leads from each source to the alias. The fields “reads from” and “writes to” show the full id, the pattern names now come from the admin, and values keep running in the alias view. A complete run on the production system brought four findings: the role list was half empty because the detector delivers its slot expressions as text with slashes — 210 roles instead of 232, and BRIGHTNESS without a role in six patterns; and a point the template lists under a different name now keeps its role and its caption at the source.",
|
|
86
|
-
"de": "Mehrere Quellen an einem Alias werden sichtbar: ein Chip nennt ihre Zahl, jede Zeile ihre Herkunft, und der Rückweg führt von jeder Quelle zum Alias. Die Felder „liest aus“ und „schreibt auf“ zeigen die volle Kennung, die Musternamen kommen jetzt aus dem Admin, und am Alias laufen die Werte mit. Der komplette Durchlauf am Produktivsystem brachte vier Befunde: Die Rollenliste war halb leer, weil der Detektor seine Platzausdrücke als Text mit Schrägstrichen liefert — 210 statt 232 Rollen, und BRIGHTNESS ohne Rolle in sechs Mustern; und ein Punkt, den die Vorlage unter anderem Namen führt, behält an der Quelle jetzt seine Rolle und seine Beschriftung.",
|
|
87
|
-
"ru": "Несколько источников одного алиаса теперь видны: чип называет их число, каждая строка — своё происхождение. Поля чтения и записи показывают полный идентификатор, имена шаблонов берутся из админки, а значения обновляются в режиме алиаса. Полный прогон на рабочей системе выявил четыре находки: список ролей был наполовину пуст, потому что детектор выдаёт выражения как текст со слешами — 210 ролей вместо 232; и точка, которую шаблон называет иначе, теперь сохраняет у источника свою роль и подпись.",
|
|
88
|
-
"pt": "Várias fontes de um alias agora são visíveis: um chip indica o seu número e cada linha a sua origem. Os campos de leitura e escrita mostram o identificador completo, os nomes dos padrões vêm agora do admin e os valores acompanham na vista do alias. Uma passagem completa no sistema produtivo trouxe quatro constatações: a lista de funções estava meio vazia porque o detetor entrega as suas expressões como texto com barras — 210 em vez de 232; e um ponto que o modelo designa de outra forma mantém agora a sua função e a sua legenda na fonte.",
|
|
89
|
-
"nl": "Meerdere bronnen achter één alias zijn nu zichtbaar: een chip noemt hun aantal en elke regel zijn herkomst. De velden voor lezen en schrijven tonen de volledige id, de patroonnamen komen nu uit de admin en de waarden lopen mee in de aliasweergave. Een volledige doorloop op het productiesysteem leverde vier bevindingen op: de rollenlijst was half leeg omdat de detector zijn uitdrukkingen als tekst met slashes levert — 210 in plaats van 232; en een punt dat de sjabloon anders noemt behoudt nu zijn rol en zijn bijschrift bij de bron.",
|
|
90
|
-
"fr": "Plusieurs sources derrière un alias sont désormais visibles : une pastille indique leur nombre et chaque ligne son origine. Les champs de lecture et d'écriture affichent l'identifiant complet, les noms de modèles viennent maintenant de l'admin et les valeurs suivent dans la vue alias. Un parcours complet sur le système de production a donné quatre constats : la liste des rôles était à moitié vide car le détecteur livre ses expressions sous forme de texte avec des barres obliques — 210 au lieu de 232 ; et un point que le modèle nomme autrement conserve désormais son rôle et son libellé à la source.",
|
|
91
|
-
"it": "Più sorgenti dietro un alias sono ora visibili: un chip ne indica il numero e ogni riga la propria origine. I campi di lettura e scrittura mostrano l'identificatore completo, i nomi dei modelli provengono ora dall'admin e i valori si aggiornano nella vista alias. Un giro completo sul sistema di produzione ha prodotto quattro riscontri: l'elenco dei ruoli era mezzo vuoto perché il rilevatore consegna le sue espressioni come testo con barre — 210 invece di 232; e un punto che il modello chiama in altro modo mantiene ora il suo ruolo e la sua didascalia alla sorgente.",
|
|
92
|
-
"es": "Varias fuentes detrás de un alias son ahora visibles: un chip indica su número y cada fila su origen. Los campos de lectura y escritura muestran el identificador completo, los nombres de patrones vienen ahora del admin y los valores se actualizan en la vista de alias. Una pasada completa en el sistema productivo dio cuatro hallazgos: la lista de roles estaba medio vacía porque el detector entrega sus expresiones como texto con barras — 210 en lugar de 232; y un punto que la plantilla nombra de otra forma conserva ahora su rol y su etiqueta en la fuente.",
|
|
93
|
-
"pl": "Kilka źródeł jednego aliasu jest teraz widocznych: chip podaje ich liczbę, a każdy wiersz swoje pochodzenie. Pola odczytu i zapisu pokazują pełny identyfikator, nazwy wzorców pochodzą teraz z admina, a wartości aktualizują się w widoku aliasu. Pełny przebieg na systemie produkcyjnym przyniósł cztery ustalenia: lista ról była w połowie pusta, ponieważ detektor dostarcza swoje wyrażenia jako tekst z ukośnikami — 210 zamiast 232; a punkt, który szablon nazywa inaczej, zachowuje teraz swoją rolę i swój podpis przy źródle.",
|
|
94
|
-
"uk": "Кілька джерел одного аліаса тепер видно: чіп називає їх кількість, кожен рядок — своє походження. Поля читання та запису показують повний ідентифікатор, імена шаблонів надходять з адмінки, а значення оновлюються у вигляді аліаса. Повний прогін на робочій системі дав чотири висновки: список ролей був напівпорожній, бо детектор видає свої вирази як текст з косими рисками — 210 замість 232; і точка, яку шаблон називає інакше, тепер зберігає біля джерела свою роль і свій підпис.",
|
|
95
|
-
"zh-cn": "现在可以看到一个别名背后的多个来源:标签显示数量,每一行显示其来源。读取和写入字段显示完整标识符,模式名称现在来自管理界面,别名视图中的数值会持续更新。在生产系统上的一次完整测试带来了四项发现:角色列表只有一半,因为检测器以带斜杠的文本形式提供其表达式——210 个而不是 232 个;模板以其他名称列出的数据点,现在在来源处保留其角色和标签。"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.alias-workbench",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Creates aliases the comfortable way — devices that vis, Alexa and the device adapter understand. Templates do the work: shipped ones for HomeMatic and Tasmota, your own for everything else. Live values while you build, dry run before anything is written.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Ricardo Hipp",
|