iobroker.autodarts 0.6.2 → 0.6.3
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 +5 -0
- package/admin/i18n/de.json +5 -3
- package/admin/i18n/en.json +7 -5
- package/admin/i18n/es.json +6 -4
- package/admin/i18n/fr.json +6 -4
- package/admin/i18n/it.json +6 -4
- package/admin/i18n/nl.json +6 -4
- package/admin/i18n/pl.json +6 -4
- package/admin/i18n/pt.json +6 -4
- package/admin/i18n/ru.json +6 -4
- package/admin/i18n/uk.json +6 -4
- package/admin/i18n/zh-cn.json +6 -4
- package/io-package.json +14 -14
- package/main.js +64 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -116,6 +116,11 @@ In **HELP & FAQ** you will find general information and help about the adapter a
|
|
|
116
116
|
<!--
|
|
117
117
|
### **WORK IN PROGRESS**
|
|
118
118
|
-->
|
|
119
|
+
### 0.6.3 (2025-12-30)
|
|
120
|
+
- (skvarel) Improved: Connection handling now uses `info.connection` and clearly marks the adapter as offline when the Autodarts Board Manager is not reachable (including better timeout/ECONNRESET handling).
|
|
121
|
+
- (skvarel) Changed: Reduced log noise when the board is offline – only one warning is logged when the connection is lost, subsequent timeouts are written as debug messages.
|
|
122
|
+
- (skvarel) Improved: Minor tweaks to the HELP & FAQ tab texts and configuration descriptions.
|
|
123
|
+
|
|
119
124
|
### 0.6.2 (2025-12-29)
|
|
120
125
|
- (skvarel) Improved: Settings page reworked to use three tabs (`OPTIONS`, `MAPPINGS` and `HELP & FAQ`) for better clarity.
|
|
121
126
|
|
package/admin/i18n/de.json
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
"host_port": "Autodarts (Boardmanager) Port",
|
|
6
6
|
"host_port_help": "Portnummer des lokalen Autodarts Boardmanagers.",
|
|
7
7
|
"intro_txt": "Hilfe & FAQ",
|
|
8
|
-
"light_target": "LED-Ring Datenpunkt",
|
|
8
|
+
"light_target": "LED-Ring-POWER Datenpunkt",
|
|
9
|
+
"light_target_brightness": "LED-Ring-Dimmer Datenpunkt",
|
|
10
|
+
"light_target_color": "LED-Ring-Farb Datenpunkt",
|
|
9
11
|
"light_target_help": "Datenpunkt des LED-Ring zur Steuerung innerhalb des Autodarts-Adapters. Lasse das Feld leer, um die Lichtsteuerung zu deaktivieren.",
|
|
10
|
-
"light_txt": "Zuweisungen der Lichtsteuerung",
|
|
12
|
+
"light_txt": "Zuweisungen der Lichtsteuerung (optional)",
|
|
11
13
|
"light_txt_desc": "Verknüpfe deine Beleuchtung-Datenpunkte in die Autodarts-Objekte.",
|
|
12
14
|
"mappings": "Zuweisungen",
|
|
13
15
|
"options": "Optionen",
|
|
@@ -17,7 +19,7 @@
|
|
|
17
19
|
"polling_help": "Abfrageintervall in Sekunden zum Abrufen von Daten vom Autodarts Boardmanager.",
|
|
18
20
|
"power_target": "Power-Datenpunkt",
|
|
19
21
|
"power_target_help": "Datenpunkt der Server- oder Bildschirm-Steckdose zur Steuerung innerhalb des Autodarts-Adapters. Lasse das Feld leer, um die Leistungssteuerung zu deaktivieren.",
|
|
20
|
-
"power_txt": "Zuweisungen der Leistungssteuerung",
|
|
22
|
+
"power_txt": "Zuweisungen der Leistungssteuerung (optional)",
|
|
21
23
|
"power_txt_desc": "Verknüpfe deine Power-Datenpunkte in die Autodarts-Objekte.",
|
|
22
24
|
"reset": "Trigger-Reset (s)",
|
|
23
25
|
"reset_help": "Setzt den Triple-, Doppel-, Bullseye und Miss-Trigger nach x Sekunden zurück (0 = kein Reset).",
|
package/admin/i18n/en.json
CHANGED
|
@@ -13,18 +13,20 @@
|
|
|
13
13
|
"reset": "Trigger-Reset (s)",
|
|
14
14
|
"reset_help": "Reset the triple, double, bullseye and miss trigger after x seconds (0 = no reset).",
|
|
15
15
|
"light_target": "Light Target ID",
|
|
16
|
-
"light_target_help": "ID of the light target to control lights via Autodarts (e.g., 'light.
|
|
17
|
-
"power_target": "Power
|
|
16
|
+
"light_target_help": "ID of the light target to control lights via Autodarts (e.g., 'light.dartring'). Leave empty to disable light control.",
|
|
17
|
+
"power_target": "LED-Target Power ID",
|
|
18
18
|
"power_target_help": "ID of the power target to control power via Autodarts (e.g., 'switch.darts_socket'). Leave empty to disable power control.",
|
|
19
19
|
"options": "Options",
|
|
20
20
|
"mappings":"Mappings",
|
|
21
21
|
"options_connection": "Connection Options",
|
|
22
22
|
"options_logic": "Logic Options",
|
|
23
23
|
"txt_one": "This adapter connects your local Autodarts Board Manager to ioBroker.\n\n1) Configure the connection under OPTIONS (host, port, polling, triple range).\n2) Map light and power targets under MAPPINGS.\n3) Use the created states (throws, traffic light, hardware) in your visualizations, scripts and scenes.",
|
|
24
|
-
"light_txt": "Light Control Mapping",
|
|
24
|
+
"light_txt": "Light Control Mapping (optional)",
|
|
25
25
|
"light_txt_desc": "Get your lighting data points into the adapter objects.",
|
|
26
|
-
"power_txt": "Power Control Mapping",
|
|
26
|
+
"power_txt": "Power Control Mapping (optional)",
|
|
27
27
|
"power_txt_desc": "Get your power data points into the adapter objects.",
|
|
28
28
|
"helps": "Help & FAQ",
|
|
29
|
-
"txt_two": "... more information coming soon!"
|
|
29
|
+
"txt_two": "... more information coming soon!",
|
|
30
|
+
"light_target_brightness": "LED-Target Brightness ID",
|
|
31
|
+
"light_target_color": "LED-Target Color ID"
|
|
30
32
|
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Número de puerto del administrador local de Autodarts Boardmanager.",
|
|
7
7
|
"intro_txt": "Ayuda y preguntas frecuentes.",
|
|
8
8
|
"light_target": "ID de objetivo ligero",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "ID de brillo del objetivo LED",
|
|
10
|
+
"light_target_color": "ID de color de objetivo LED",
|
|
11
|
+
"light_target_help": "ID del objetivo de luz para controlar las luces a través de Autodarts (por ejemplo, 'light.dartring'). Déjelo vacío para desactivar el control de luces.",
|
|
12
|
+
"light_txt": "Mapeo de control de iluminación (opcional)",
|
|
11
13
|
"light_txt_desc": "Introduzca sus puntos de datos de iluminación en los objetos del adaptador.",
|
|
12
14
|
"mappings": "Mapeos",
|
|
13
15
|
"options": "Opciones",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Opciones lógicas",
|
|
16
18
|
"polling": "Intervalo(s) de sondeo",
|
|
17
19
|
"polling_help": "Intervalo de sondeo en segundos para recuperar datos del Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "ID de objetivo
|
|
20
|
+
"power_target": "ID de alimentación del objetivo LED",
|
|
19
21
|
"power_target_help": "ID del objetivo de energía para controlar la energía a través de Autodarts (por ejemplo, 'switch.darts_socket'). Déjelo vacío para desactivar el control de energía.",
|
|
20
|
-
"power_txt": "Mapeo de control de energía",
|
|
22
|
+
"power_txt": "Mapeo de control de energía (opcional)",
|
|
21
23
|
"power_txt_desc": "Introduzca sus puntos de datos de energía en los objetos del adaptador.",
|
|
22
24
|
"reset": "Restablecimiento de disparador (s)",
|
|
23
25
|
"reset_help": "Restablezca el disparador triple, doble, diana y fallido después de x segundos (0 = sin reinicio).",
|
package/admin/i18n/fr.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Numéro de port du Boardmanager Autodarts local.",
|
|
7
7
|
"intro_txt": "Aide et FAQ.",
|
|
8
8
|
"light_target": "ID de cible lumineuse",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "ID de luminosité cible LED",
|
|
10
|
+
"light_target_color": "ID de couleur cible LED",
|
|
11
|
+
"light_target_help": "ID de la cible lumineuse pour contrôler les lumières via Autodarts (par exemple, « light.dartring »). Laissez vide pour désactiver le contrôle de la lumière.",
|
|
12
|
+
"light_txt": "Cartographie du contrôle de la lumière (facultatif)",
|
|
11
13
|
"light_txt_desc": "Obtenez vos points de données d'éclairage dans les objets adaptateur.",
|
|
12
14
|
"mappings": "Mappages",
|
|
13
15
|
"options": "Possibilités",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Options logiques",
|
|
16
18
|
"polling": "Intervalle(s) d'interrogation",
|
|
17
19
|
"polling_help": "Intervalle d'interrogation en secondes pour récupérer les données de l'Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "ID de cible
|
|
20
|
+
"power_target": "ID de puissance cible LED",
|
|
19
21
|
"power_target_help": "ID de la cible d'alimentation pour contrôler l'alimentation via Autodarts (par exemple, « switch.darts_socket »). Laissez vide pour désactiver le contrôle de l’alimentation.",
|
|
20
|
-
"power_txt": "Cartographie du contrôle de puissance",
|
|
22
|
+
"power_txt": "Cartographie du contrôle de puissance (facultatif)",
|
|
21
23
|
"power_txt_desc": "Obtenez vos points de données d'alimentation dans les objets adaptateur.",
|
|
22
24
|
"reset": "Déclencheur-Réinitialisation(s)",
|
|
23
25
|
"reset_help": "Réinitialisez les déclencheurs triple, double, bullseye et miss après x secondes (0 = pas de réinitialisation).",
|
package/admin/i18n/it.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Numero di porta del Boardmanager Autodarts locale.",
|
|
7
7
|
"intro_txt": "Aiuto e domande frequenti.",
|
|
8
8
|
"light_target": "ID del bersaglio luminoso",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "ID luminosità target LED",
|
|
10
|
+
"light_target_color": "ID colore target LED",
|
|
11
|
+
"light_target_help": "ID del bersaglio luminoso per controllare le luci tramite Autodarts (ad esempio, \"light.dartring\"). Lasciare vuoto per disabilitare il controllo della luce.",
|
|
12
|
+
"light_txt": "Mappatura del controllo della luce (opzionale)",
|
|
11
13
|
"light_txt_desc": "Inserisci i tuoi punti dati di illuminazione negli oggetti adattatore.",
|
|
12
14
|
"mappings": "Mappature",
|
|
13
15
|
"options": "Opzioni",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Opzioni logiche",
|
|
16
18
|
"polling": "Intervallo di polling (s)",
|
|
17
19
|
"polling_help": "Intervallo di polling in secondi per recuperare i dati da Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "ID
|
|
20
|
+
"power_target": "ID alimentazione target LED",
|
|
19
21
|
"power_target_help": "ID del target di potenza per controllare l'energia tramite Autodarts (ad esempio, \"switch.darts_socket\"). Lasciare vuoto per disabilitare il controllo dell'alimentazione.",
|
|
20
|
-
"power_txt": "Mappatura del controllo della potenza",
|
|
22
|
+
"power_txt": "Mappatura del controllo della potenza (opzionale)",
|
|
21
23
|
"power_txt_desc": "Inserisci i tuoi punti dati di alimentazione negli oggetti adattatore.",
|
|
22
24
|
"reset": "Trigger-Reset(s)",
|
|
23
25
|
"reset_help": "Resetta il trigger triplo, doppio, bullseye e mancato dopo x secondi (0 = nessun reset).",
|
package/admin/i18n/nl.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Poortnummer van de lokale Autodarts Boardmanager.",
|
|
7
7
|
"intro_txt": "Hulp en veelgestelde vragen.",
|
|
8
8
|
"light_target": "Lichtdoel-ID",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "LED-doelhelderheid ID",
|
|
10
|
+
"light_target_color": "LED-doelkleur-ID",
|
|
11
|
+
"light_target_help": "ID van het lichtdoel om lichten via Autodarts te besturen (bijvoorbeeld 'light.dartring'). Laat dit leeg om de lichtregeling uit te schakelen.",
|
|
12
|
+
"light_txt": "Lichtregelingtoewijzing (optioneel)",
|
|
11
13
|
"light_txt_desc": "Haal uw verlichtingsgegevenspunten op in de adapterobjecten.",
|
|
12
14
|
"mappings": "Toewijzingen",
|
|
13
15
|
"options": "Opties",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Logische opties",
|
|
16
18
|
"polling": "Polling-interval (s)",
|
|
17
19
|
"polling_help": "Polling-interval in seconden om gegevens uit de Autodarts Boardmanager op te halen.",
|
|
18
|
-
"power_target": "
|
|
20
|
+
"power_target": "LED-doelvoedings-ID",
|
|
19
21
|
"power_target_help": "ID van het powertarget om de power te regelen via Autodarts (bijvoorbeeld 'switch.darts_socket'). Laat dit leeg om de stroomregeling uit te schakelen.",
|
|
20
|
-
"power_txt": "
|
|
22
|
+
"power_txt": "Power Control Mapping (optioneel)",
|
|
21
23
|
"power_txt_desc": "Haal uw stroomgegevenspunten op in de adapterobjecten.",
|
|
22
24
|
"reset": "Trigger-reset (s)",
|
|
23
25
|
"reset_help": "Reset de drievoudige, dubbele, bullseye- en miss-trigger na x seconden (0 = geen reset).",
|
package/admin/i18n/pl.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Numer portu lokalnego zarządcy Autodarts.",
|
|
7
7
|
"intro_txt": "Pomoc i często zadawane pytania.",
|
|
8
8
|
"light_target": "Identyfikator lekkiego celu",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "Identyfikator docelowej jasności LED",
|
|
10
|
+
"light_target_color": "Identyfikator koloru docelowego LED",
|
|
11
|
+
"light_target_help": "Identyfikator celu świetlnego do sterowania światłami za pomocą Autodarts (np. „light.dartring”). Pozostaw puste, aby wyłączyć kontrolę oświetlenia.",
|
|
12
|
+
"light_txt": "Mapowanie kontroli oświetlenia (opcjonalnie)",
|
|
11
13
|
"light_txt_desc": "Umieść punkty danych oświetlenia w obiektach adaptera.",
|
|
12
14
|
"mappings": "Mapowania",
|
|
13
15
|
"options": "Opcje",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Opcje logiczne",
|
|
16
18
|
"polling": "Interwał odpytywania (s)",
|
|
17
19
|
"polling_help": "Interwał odpytywania w sekundach w celu pobrania danych z menedżera Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "Identyfikator
|
|
20
|
+
"power_target": "Identyfikator mocy docelowej LED",
|
|
19
21
|
"power_target_help": "Identyfikator celu mocy do kontrolowania mocy za pomocą Autodarts (np. „switch.darts_socket”). Pozostaw puste, aby wyłączyć kontrolę mocy.",
|
|
20
|
-
"power_txt": "Mapowanie
|
|
22
|
+
"power_txt": "Mapowanie sterowania mocą (opcjonalnie)",
|
|
21
23
|
"power_txt_desc": "Umieść punkty danych mocy w obiektach adaptera.",
|
|
22
24
|
"reset": "Reset wyzwalacza (s)",
|
|
23
25
|
"reset_help": "Zresetuj wyzwalacz potrójny, podwójny, strzał w dziesiątkę i spudłowanie po x sekundach (0 = brak resetu).",
|
package/admin/i18n/pt.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Número da porta do Autodarts Boardmanager local.",
|
|
7
7
|
"intro_txt": "Ajuda e perguntas frequentes.",
|
|
8
8
|
"light_target": "ID do alvo claro",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "ID de brilho do alvo do LED",
|
|
10
|
+
"light_target_color": "ID da cor do alvo do LED",
|
|
11
|
+
"light_target_help": "ID do alvo de luz para controlar luzes via Autodarts (por exemplo, 'light.dartring'). Deixe em branco para desativar o controle de luz.",
|
|
12
|
+
"light_txt": "Mapeamento de controle de luz (opcional)",
|
|
11
13
|
"light_txt_desc": "Coloque seus pontos de dados de iluminação nos objetos do adaptador.",
|
|
12
14
|
"mappings": "Mapeamentos",
|
|
13
15
|
"options": "Opções",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Opções lógicas",
|
|
16
18
|
"polling": "Intervalo(s) de pesquisa",
|
|
17
19
|
"polling_help": "Intervalo de pesquisa em segundos para recuperar dados do Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "ID do alvo
|
|
20
|
+
"power_target": "ID de energia do alvo LED",
|
|
19
21
|
"power_target_help": "ID do alvo de potência para controlar a potência por meio de Autodarts (por exemplo, 'switch.darts_socket'). Deixe em branco para desativar o controle de energia.",
|
|
20
|
-
"power_txt": "Mapeamento de controle de energia",
|
|
22
|
+
"power_txt": "Mapeamento de controle de energia (opcional)",
|
|
21
23
|
"power_txt_desc": "Coloque seus pontos de dados de energia nos objetos do adaptador.",
|
|
22
24
|
"reset": "Redefinição(ões) de gatilho",
|
|
23
25
|
"reset_help": "Redefina o disparo triplo, duplo, alvo e erro após x segundos (0 = sem reinicialização).",
|
package/admin/i18n/ru.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Номер порта местного Autodarts Boardmanager.",
|
|
7
7
|
"intro_txt": "Помощь и часто задаваемые вопросы.",
|
|
8
8
|
"light_target": "Идентификатор легкой цели",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "Идентификатор яркости светодиодной цели",
|
|
10
|
+
"light_target_color": "Идентификатор цвета светодиодной мишени",
|
|
11
|
+
"light_target_help": "Идентификатор световой цели для управления огнями через Autodarts (например, «light.dartring»). Оставьте пустым, чтобы отключить управление освещением.",
|
|
12
|
+
"light_txt": "Отображение управления освещением (опционально)",
|
|
11
13
|
"light_txt_desc": "Перенесите точки данных освещения в объекты адаптера.",
|
|
12
14
|
"mappings": "Сопоставления",
|
|
13
15
|
"options": "Параметры",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Логические параметры",
|
|
16
18
|
"polling": "Интервал опроса (с)",
|
|
17
19
|
"polling_help": "Интервал опроса в секундах для получения данных из Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "Идентификатор
|
|
20
|
+
"power_target": "Идентификатор мощности светодиодной мишени",
|
|
19
21
|
"power_target_help": "Идентификатор цели мощности для управления мощностью через Autodarts (например, «switch.darts_socket»). Оставьте пустым, чтобы отключить управление питанием.",
|
|
20
|
-
"power_txt": "Сопоставление управления питанием",
|
|
22
|
+
"power_txt": "Сопоставление управления питанием (дополнительно)",
|
|
21
23
|
"power_txt_desc": "Перенесите точки данных о мощности в объекты адаптера.",
|
|
22
24
|
"reset": "Триггер-Сброс (ы)",
|
|
23
25
|
"reset_help": "Сбросьте триггер тройного, двойного, яблочко и промаха через x секунд (0 = сброса нет).",
|
package/admin/i18n/uk.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "Номер порту місцевого менеджера Autodarts Board.",
|
|
7
7
|
"intro_txt": "Довідка та поширені запитання.",
|
|
8
8
|
"light_target": "Ідентифікатор легкої цілі",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "LED-Target Brightness ID",
|
|
10
|
+
"light_target_color": "LED-Target Color ID",
|
|
11
|
+
"light_target_help": "Ідентифікатор світлової цілі для керування вогнями через Autodarts (наприклад, \"light.dartring\"). Залиште пустим, щоб вимкнути керування світлом.",
|
|
12
|
+
"light_txt": "Відображення керування світлом (опціонально)",
|
|
11
13
|
"light_txt_desc": "Перемістіть свої точки даних освітлення в об’єкти адаптера.",
|
|
12
14
|
"mappings": "Відображення",
|
|
13
15
|
"options": "Опції",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "Параметри логіки",
|
|
16
18
|
"polling": "Інтервал опитування (с)",
|
|
17
19
|
"polling_help": "Інтервал опитування в секундах для отримання даних із Autodarts Boardmanager.",
|
|
18
|
-
"power_target": "Power
|
|
20
|
+
"power_target": "LED-Target Power ID",
|
|
19
21
|
"power_target_help": "Ідентифікатор цільової потужності для керування живленням через Autodarts (наприклад, 'switch.darts_socket'). Залиште пустим, щоб вимкнути керування живленням.",
|
|
20
|
-
"power_txt": "Відображення
|
|
22
|
+
"power_txt": "Відображення керування живленням (опціонально)",
|
|
21
23
|
"power_txt_desc": "Перемістіть свої точки даних про потужність в об’єкти адаптера.",
|
|
22
24
|
"reset": "Тригер-Скидання (s)",
|
|
23
25
|
"reset_help": "Скинути потрійний, подвійний, яблучний і промах через x секунд (0 = без скидання).",
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
"host_port_help": "本地 Autodarts Boardmanager 的端口号。",
|
|
7
7
|
"intro_txt": "帮助和常见问题解答。",
|
|
8
8
|
"light_target": "光目标ID",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"light_target_brightness": "LED-目标亮度 ID",
|
|
10
|
+
"light_target_color": "LED 目标颜色 ID",
|
|
11
|
+
"light_target_help": "通过 Autodarts 控制灯光的灯光目标的 ID(例如“light.dartring”)。留空以禁用灯光控制。",
|
|
12
|
+
"light_txt": "灯光控制映射(可选)",
|
|
11
13
|
"light_txt_desc": "将照明数据点放入适配器对象中。",
|
|
12
14
|
"mappings": "映射",
|
|
13
15
|
"options": "选项",
|
|
@@ -15,9 +17,9 @@
|
|
|
15
17
|
"options_logic": "逻辑选项",
|
|
16
18
|
"polling": "轮询间隔(秒)",
|
|
17
19
|
"polling_help": "从 Autodarts Boardmanager 检索数据的轮询间隔(以秒为单位)。",
|
|
18
|
-
"power_target": "
|
|
20
|
+
"power_target": "LED-目标功率 ID",
|
|
19
21
|
"power_target_help": "通过 Autodarts 控制电源的电源目标的 ID(例如“switch.darts_socket”)。留空以禁用电源控制。",
|
|
20
|
-
"power_txt": "
|
|
22
|
+
"power_txt": "功率控制映射(可选)",
|
|
21
23
|
"power_txt_desc": "将电源数据点放入适配器对象中。",
|
|
22
24
|
"reset": "触发-复位",
|
|
23
25
|
"reset_help": "x 秒后重置三重、双重、靶心和错过触发(0 = 不重置)。",
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "autodarts",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.3",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.6.3": {
|
|
7
|
+
"en": "Improved: Connection handling now uses `info.connection` and clearly marks the adapter as offline when the Autodarts Board Manager is not reachable (including better timeout/ECONNRESET handling).\nChanged: Reduced log noise when the board is offline – only one warning is logged when the connection is lost, subsequent timeouts are written as debug messages.\nImproved: Minor tweaks to the HELP & FAQ tab texts and configuration descriptions.",
|
|
8
|
+
"de": "Verbessert: Die Verbindungshandhabung nutzt jetzt `info.connection` und markiert den Adapter als offline, wenn der Autodarts Board Manager nicht erreichbar ist (einschließlich besserer Timeout/ECONNRESET Handling).\nGeändert: Reduziertes Log-Rausch, wenn das Board offline ist – nur eine Warnung wird eingeloggt, wenn die Verbindung verloren ist, werden nachfolgende Timeouts als Debug-Nachrichten geschrieben.\nVerbessert: Minor tweaks auf die Registerkarte HELP & FAQ Texte und Konfigurationsbeschreibungen.",
|
|
9
|
+
"ru": "Улучшенная: обработка соединения теперь использует «info.connection» и четко обозначает адаптер как автономный, когда до менеджера совета директоров Autodarts не достижимо (включая лучшую обработку тайм-аута / ECONNRESET).\nИзменилось: Сниженный лог-шум при отключении платы — регистрируется только одно предупреждение при потере соединения, последующие тайм-ауты записываются как сообщения отладки.\nУлучшение: Незначительные изменения в текстах вкладок HELP & FAQ и описаниях конфигурации.",
|
|
10
|
+
"pt": "Melhorado: O manuseio da conexão agora usa `info.connection` e marca claramente o adaptador como offline quando o Autodarts Board Manager não é acessível (incluindo melhor timeout/ECONNRESET).\nAlterado: Ruído de log reduzido quando o tabuleiro está offline – apenas um aviso é registrado quando a conexão é perdida, os prazos subsequentes são escritos como mensagens de depuração.\nMelhorado: Pequenos ajustes nos textos da aba Ajuda & FAQ e descrições de configuração.",
|
|
11
|
+
"nl": "Verbeterd: Verbindingsafhandeling maakt nu gebruik van .\nGewijzigd: Minder logruis wanneer het bord offline is .\nBeter: Kleine aanpassingen aan het HELP & FAQ-tabblad teksten en configuratiebeschrijvingen.",
|
|
12
|
+
"fr": "Amélioration : La gestion de la connexion utilise désormais `info.connection` et marque clairement l'adaptateur comme hors ligne lorsque le gestionnaire de conseil d'administration Autodarts n'est pas accessible (y compris une meilleure gestion timeout/ECONNESET).\nChangement : Diminution du bruit de log lorsque la carte est hors ligne – un seul avertissement est enregistré lorsque la connexion est perdue, les timeouts ultérieurs sont écrits comme des messages de débogage.\nAmélioration : Modifications mineures aux textes de l'onglet HELP & FAQ et aux descriptions de configuration.",
|
|
13
|
+
"it": "Migliorata: la gestione della connessione utilizza ora `info.connection` e contrassegna chiaramente l'adattatore come offline quando il Manager di bordo di Autodarts non è raggiungibile (compreso il timeout migliore / ECONNRESET di gestione).\nCambiato: Riduzione del rumore di registro quando la scheda è offline – solo un avviso viene registrato quando la connessione viene persa, i timeout successivi vengono scritti come messaggi di debug.\nMigliorato: Tagli minori ai testi della scheda HELP & FAQ e descrizioni delle configurazioni.",
|
|
14
|
+
"es": "Mejorado: el manejo de conexión ahora utiliza 'info.connection' y claramente marca el adaptador como offline cuando el Administrador de la Junta de Autodarts no es accesible (incluyendo un mejor tiempo / manejo de ECNNRESET).\nCambio: El ruido de registro reducido cuando el tablero está fuera de línea – sólo una advertencia se registra cuando la conexión se pierde, los plazos posteriores se escriben como mensajes de depuración.\nMejorado: Ajustes menores a los textos de pestañas HELP & FAQ y descripciones de configuración.",
|
|
15
|
+
"pl": "Ulepszone: Obsługa połączeń używa teraz 'info.connection' i wyraźnie oznacza, że adapter jest offline, gdy menedżer Zarządu Autodarts nie jest osiągalny (w tym lepszy czas / obsługa ECONNRESET).\nZmieniono: Zmniejszony hałas logowania, gdy deska jest offline - tylko jedno ostrzeżenie jest logowane, gdy połączenie jest utracone, kolejne timeout są zapisywane jako wiadomości debugowania.\nPoprawa: Drobne poprawki do tekstów zakładek HELP & FAQ i opisów konfiguracji.",
|
|
16
|
+
"uk": "Удосконалено: З'єднання, що працює зараз, використовує `info.connection` і чітко позначається перехідник в автономному режимі, коли Менеджер по роботі з клієнтами Autodarts не досягається (включаючи кращий час / ECONNRESET).\nЗмінено: Зменшення шуму логіну, коли плата відсутня – тільки одна попередження ввійде, коли з'єднання втрачено, подальші часові маршрути письмові як дебвугові повідомлення.\nПокращений: Ми можемо самі зателефонувати одержувачу і узгодити зручний час.",
|
|
17
|
+
"zh-cn": "改进:连接处理现在使用“info.connection”,并在自动调试板管理员无法到达时(包括更好的超时/ECONRESET处理)将适配器明确标记为离线.\n已更改 : 当棋盘下线时减少日志噪声——当连接丢失时只记录一个警告,随后的超时被写成调试消息.\n改进: 微调到 Help & FAQ 标签文本和配置描述 ."
|
|
18
|
+
},
|
|
6
19
|
"0.6.2": {
|
|
7
20
|
"en": "Improved: Settings page reworked to use three tabs (`OPTIONS`, `MAPPINGS` and `HELP & FAQ`) for better clarity.",
|
|
8
21
|
"de": "Verbessert: Einstellungen Seite neu bearbeitet, um drei Registerkarten (`OPTIONS`, `MAPPINGS` und `HELP & FAQ`) für bessere Klarheit zu verwenden.",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Zmienione: Przekształcone informacje systemowe na dedykowane kanały \"system.hardware\", \"system.software\" i \"system.cams\".\nDodano: nowe stany informatyczne oprogramowania ('desktopVersion', 'boardVersion', 'platform', 'os') oraz stany informacyjne sprzętu ('kernelArch', 'cpuModel', 'hostname').\nDodano: Konfiguracja kamery stanowi system.cams.cam0 / 1 / 2 'zawierający JSON o szerokości, wysokości i fps.\nZmieniona: Konfiguracja adaptera dla interwałów wyborczych i potrójnych progów wyzwalających jest teraz w pełni napędzana przez jsonConfig (zrzuty i pola liczbowe).\nUsunięty: Experimental light / power alias mapowanie z wewnętrznej logiki (nie została wydana żadna widoczna funkcja użytkownika).",
|
|
81
94
|
"uk": "Змінено: Реструктуризація інформації про систему у виділених `system.hardware`, `system.software` та `system.cams`.\nДодано: Нові інформаційні стани програмного забезпечення (`desktopVersion`, `boardVersion`, `platform`, `os`) та апаратні засоби (`kernelArch`, `cpuModel`, `hostname`).\nДодано: Налаштування камери стани `system.cams.cam0/1/2`, що містять JSON з шириною, висотою і fps.\nЗмінено: Налаштування адаптера для інтервалу опитування та потрійних порогів тригера тепер повністю керована за допомогою jsonConfig (розгортання та кількість полів).\nВидалено: Експериментальні джерела світла/power alias з внутрішньої логіки (без функції користувача).",
|
|
82
95
|
"zh-cn": "更改:将系统信息结构改为专用的`系统.硬件'、`系统.软件'和`系统.摄像头'频道.\n添加:新的软件信息状态(`台式计算机Version'、`boardVersion'、`平台'、`os')和硬件信息状态(`内核Arch'、`cpuModel'、`hostname').\n添加:相机配置为`system.cams.cam0/1/2',内含JSON,宽度,高度和fps.\n更改:用于投票间隔和三重触发阈值的适配器配置现在通过jsonConfig(滴落和数字字段)完全驱动.\n删除:实验光/功率别名从内部逻辑映射(没有发布用户可见特性)."
|
|
83
|
-
},
|
|
84
|
-
"0.3.3": {
|
|
85
|
-
"en": "Changed: Configuration fields interval and triggerReset now use seconds instead of milliseconds in the admin UI.",
|
|
86
|
-
"de": "Geändert: Konfiguration Felder Intervall und TriggerReset verwenden jetzt Sekunden statt Millisekunden im Admin UI.",
|
|
87
|
-
"ru": "Изменение: интервалы полей конфигурации и триггер сброс теперь используют секунды вместо миллисекунд в пользовательском интерфейсе администратора.",
|
|
88
|
-
"pt": "Modificado: Intervalo de campos de configuração e gatilhoReset agora use segundos em vez de milissegundos na interface de administração.",
|
|
89
|
-
"nl": "Gewijzigd: Configuratievelden interval en triggerReset gebruikt nu seconden in plaats van milliseconden in de admin UI.",
|
|
90
|
-
"fr": "Changed: Champs de configuration intervalle et triggerReset maintenant utiliser secondes au lieu de millisecondes dans l'interface utilisateur admin.",
|
|
91
|
-
"it": "Modificato: intervallo di campi di configurazione e triggerReset ora utilizzare secondi invece di millisecondi nell'interfaccia utente di amministrazione.",
|
|
92
|
-
"es": "Cambio: intervalo de campos de configuración y gatilloReset ahora use segundos en lugar de milisegundos en la interfaz de administración.",
|
|
93
|
-
"pl": "Zmieniony: Przedział pól konfiguracyjnych i tryggerReset używają teraz sekund zamiast milisekund w interfejsu administratora.",
|
|
94
|
-
"uk": "Змінено: інтервал конфігураційних полів і тригерЗмінити зараз за допомогою секунд замість мілісекундів в адмін UI.",
|
|
95
|
-
"zh-cn": "已更改: 配置字段间隔和触发 Reset 现在在管理员UI中使用秒而不是毫秒 ."
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/main.js
CHANGED
|
@@ -14,11 +14,15 @@ class Autodarts extends utils.Adapter {
|
|
|
14
14
|
name: "autodarts",
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
+
this.isConnected = false;
|
|
18
|
+
this.pollTimer = null;
|
|
19
|
+
this.onlineIntervalMs = 1000; // Platzhalter, wird in onReady gesetzt
|
|
20
|
+
this.offlineIntervalMs = 60000; // z.B. 60 s
|
|
21
|
+
|
|
17
22
|
this.on("ready", this.onReady.bind(this));
|
|
18
23
|
this.on("stateChange", this.onStateChange.bind(this));
|
|
19
24
|
this.on("unload", this.onUnload.bind(this));
|
|
20
25
|
|
|
21
|
-
this.pollTimer = null;
|
|
22
26
|
this.lastThrowsCount = 0; // Anzahl Darts im aktuellen Visit
|
|
23
27
|
this.lastSignature = ""; // Verhindert doppelte Verarbeitung gleicher Würfe
|
|
24
28
|
this.offline = false;
|
|
@@ -35,6 +39,20 @@ class Autodarts extends utils.Adapter {
|
|
|
35
39
|
async onReady() {
|
|
36
40
|
this.log.info("Autodarts adapter started");
|
|
37
41
|
|
|
42
|
+
// Initial connection state
|
|
43
|
+
await this.extendObjectAsync("info.connection", {
|
|
44
|
+
type: "state",
|
|
45
|
+
common: {
|
|
46
|
+
name: "Connected to Autodarts Board Manager",
|
|
47
|
+
type: "boolean",
|
|
48
|
+
role: "indicator.connected",
|
|
49
|
+
read: true,
|
|
50
|
+
write: false,
|
|
51
|
+
},
|
|
52
|
+
native: {},
|
|
53
|
+
});
|
|
54
|
+
await this.setStateAsync("info.connection", false, true);
|
|
55
|
+
|
|
38
56
|
// Defaults aus io-package.json absichern
|
|
39
57
|
this.config.host ??= "127.0.0.1";
|
|
40
58
|
this.config.port ??= 3180;
|
|
@@ -42,6 +60,8 @@ class Autodarts extends utils.Adapter {
|
|
|
42
60
|
this.config.tripleMinScore ??= 1;
|
|
43
61
|
this.config.tripleMaxScore ??= 20;
|
|
44
62
|
this.config.triggerResetSec ??= 0; // 0 = kein Auto-Reset
|
|
63
|
+
// Polling-Intervall aus Sekunden in Millisekunden berechnen
|
|
64
|
+
this.onlineIntervalMs = (Number(this.config.intervalSec) || 1) * 1000;
|
|
45
65
|
|
|
46
66
|
// Visit-Struktur anlegen (ausgelagert)
|
|
47
67
|
await visit.init(this);
|
|
@@ -440,12 +460,8 @@ class Autodarts extends utils.Adapter {
|
|
|
440
460
|
this.lastThrowsCount = 0;
|
|
441
461
|
this.lastSignature = "";
|
|
442
462
|
|
|
443
|
-
// Polling-Intervall aus Sekunden in Millisekunden umrechnen
|
|
444
|
-
const pollIntervalMs = (Number(this.config.intervalSec) || 1) * 1000;
|
|
445
|
-
|
|
446
463
|
// Polling starten
|
|
447
|
-
this.
|
|
448
|
-
this.fetchState();
|
|
464
|
+
this.pollLoop();
|
|
449
465
|
|
|
450
466
|
// Host-Informationen und Kameras abfragen und alle 5 Minuten aktualisieren
|
|
451
467
|
this.fetchHost();
|
|
@@ -553,11 +569,14 @@ class Autodarts extends utils.Adapter {
|
|
|
553
569
|
const data = await httpHelper.makeRequest(this, "/api/state");
|
|
554
570
|
|
|
555
571
|
// Log wenn Verbindung wiederhergestellt wurde
|
|
556
|
-
if (this.offline) {
|
|
572
|
+
if (this.offline || !this.isConnected) {
|
|
557
573
|
this.log.info("Autodarts connection restored");
|
|
558
574
|
}
|
|
559
575
|
this.offline = false;
|
|
560
|
-
|
|
576
|
+
this.isConnected = true;
|
|
577
|
+
|
|
578
|
+
await this.setStateAsync("online", true, true); // eigener Online-State
|
|
579
|
+
await this.setStateAsync("info.connection", true, true); // Admin-Status
|
|
561
580
|
|
|
562
581
|
try {
|
|
563
582
|
const state = JSON.parse(data);
|
|
@@ -601,15 +620,46 @@ class Autodarts extends utils.Adapter {
|
|
|
601
620
|
await this.setStateAsync("online", true, true);
|
|
602
621
|
}
|
|
603
622
|
} catch (error) {
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
623
|
+
const msg = error?.message || String(error);
|
|
624
|
+
const code = error?.code;
|
|
625
|
+
|
|
626
|
+
const isNetErr =
|
|
627
|
+
code === "ECONNREFUSED" ||
|
|
628
|
+
code === "ETIMEDOUT" ||
|
|
629
|
+
code === "EHOSTUNREACH" ||
|
|
630
|
+
msg.includes("timeout") ||
|
|
631
|
+
msg.includes("ECONNRESET");
|
|
632
|
+
|
|
633
|
+
if (isNetErr) {
|
|
634
|
+
if (!this.offline) {
|
|
635
|
+
this.log.warn(`Autodarts not reachable (Board Manager offline or wrong IP): ${msg}`);
|
|
636
|
+
this.offline = true;
|
|
637
|
+
} else {
|
|
638
|
+
this.log.debug(`Autodarts still offline: ${msg}`);
|
|
639
|
+
}
|
|
640
|
+
} else {
|
|
641
|
+
this.log.error(`Autodarts request failed: ${msg}`);
|
|
607
642
|
}
|
|
608
|
-
|
|
609
|
-
|
|
643
|
+
|
|
644
|
+
this.isConnected = false;
|
|
645
|
+
await trafficLight.setStatus(this, "red");
|
|
646
|
+
await this.setStateAsync("online", false, true);
|
|
647
|
+
await this.setStateAsync("info.connection", false, true);
|
|
610
648
|
}
|
|
611
649
|
}
|
|
612
650
|
|
|
651
|
+
scheduleNextPoll() {
|
|
652
|
+
const delay = this.isConnected ? this.onlineIntervalMs : this.offlineIntervalMs;
|
|
653
|
+
this.pollTimer = this.setTimeout(() => this.pollLoop(), delay);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
async pollLoop() {
|
|
657
|
+
await this.fetchState().catch(() => {
|
|
658
|
+
// Fehler werden in fetchState geloggt
|
|
659
|
+
});
|
|
660
|
+
this.scheduleNextPoll();
|
|
661
|
+
}
|
|
662
|
+
|
|
613
663
|
/**
|
|
614
664
|
* Board-Konfiguration abfragen (Kameras)
|
|
615
665
|
*/
|
|
@@ -701,7 +751,7 @@ class Autodarts extends utils.Adapter {
|
|
|
701
751
|
onUnload(callback) {
|
|
702
752
|
try {
|
|
703
753
|
if (this.pollTimer) {
|
|
704
|
-
|
|
754
|
+
clearTimeout(this.pollTimer);
|
|
705
755
|
}
|
|
706
756
|
if (this.versionTimer) {
|
|
707
757
|
clearInterval(this.versionTimer);
|