iobroker.esphome 0.6.3 → 0.7.0-beta.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023-2025 DutchmanNL <rdrozda86@gmail.com>
3
+ Copyright (c) 2023-2026 DutchmanNL <rdrozda86@gmail.com>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -30,7 +30,7 @@ Native integration of ESPHome managed device (Including Dashboard) by its native
30
30
  - 📱 [Device Management](#device-management)
31
31
  - 🔧 [Configuration Examples](#example-config)
32
32
 
33
- This adapter uses the [esphome-native-api](https://github.com/Nafaya/esphome-native-api#readme) with all credits to @Nafaya to interact with [ESPHome API](https://esphome.io/components/api.html?highlight=api)!
33
+ This adapter uses the [esphome-native-api](https://github.com/twocolors/esphome-native-api#readme) with all credits to @twocolors to interact with [ESPHome API](https://esphome.io/components/api.html?highlight=api)!
34
34
 
35
35
  ## Frequently Asked Questions (FAQ)
36
36
 
@@ -57,14 +57,16 @@ The Dashboard IP setting in the adapter configuration serves different purposes:
57
57
 
58
58
  **For Integrated Dashboard Tab in ioBroker Admin:**
59
59
  1. Enter the IP address and port where your ESPHome Dashboard is running
60
- 2. **Built-in Dashboard:** Use `127.0.0.1:6052` (default for integrated dashboard)
61
- 3. **External Dashboard:** Use the IP:port of your external ESPHome installation (e.g., Docker container)
60
+ 2. **Built-in Dashboard:** Use the IP address of your ioBroker host (e.g., `192.168.1.10:6052`)
61
+ - **Important:** Do NOT use `127.0.0.1:6052` if you access ioBroker from other devices - the embedded iframe will try to reach 127.0.0.1 from the client's browser, not the ioBroker server
62
+ - Only use `127.0.0.1:6052` if you ONLY access ioBroker admin from the same machine where ioBroker is running
63
+ 3. **External Dashboard:** Use the IP:port of your external ESPHome installation (e.g., `192.168.1.100:6052`)
62
64
  4. **HTTPS Setup:** For HTTPS environments, see the detailed HTTPS configuration section below
63
65
 
64
66
  **Dashboard IP Examples:**
65
- - Built-in: `127.0.0.1:6052`
66
- - External Docker: `192.168.1.100:6052`
67
- - External Host: `esphome.local:6052`
67
+ - Built-in (accessed from network): `192.168.1.10:6052` (replace with your ioBroker host IP)
68
+ - Built-in (local only): `127.0.0.1:6052` (only if admin accessed on same machine)
69
+ - External Host: `esphome.local:6052` or `192.168.1.100:6052`
68
70
  - HTTPS Proxy: `https://192.168.1.50:8082/proxy.0/esphome/`
69
71
 
70
72
  ![ESPHome Dashboard IP Configuration](admin/img/ESPhomeDashboardIP.png)
@@ -86,10 +88,43 @@ The adapter works independently and only requires devices with ESPHome API enabl
86
88
  1. **Ensure ESPHome API is enabled** in your device's YAML configuration (see Prerequisites section)
87
89
  2. **Open the adapter's device tab** in ioBroker Admin (adapter must be running)
88
90
  3. **Add devices manually:** Enter device IP address and authentication credentials
89
- 4. **Automatic discovery:** Currently disabled (see issue #175)
91
+ 4. **Automatic discovery:** Use the autodiscovery feature if enabled in adapter settings
90
92
 
91
93
  The adapter will establish a connection and create all necessary ioBroker objects for device control.
92
94
 
95
+ ### I configured a device in the ESPHome Dashboard, but it doesn't show up in the adapter
96
+
97
+ **Important:** The adapter and dashboard are completely separate components with no automatic integration. The adapter can optionally install (and start) the dashboard for you, just for convenience. Again, this does not mean there is any integration between them.
98
+
99
+ - **Dashboard:** Used for creating/editing YAML configs, compiling firmware, and flashing devices
100
+ - **Adapter:** Used for controlling devices and synchronizing their state with ioBroker
101
+
102
+ **To make a dashboard-configured device work with the adapter:**
103
+ 1. Flash the device with the configuration from the dashboard (ensure ESPHome API is enabled in YAML)
104
+ 2. Manually add the device in the adapter settings (device tab). Enter IP/hostname and encryption key (recommended) or password (legacy)
105
+ 3. The adapter will then connect to the device via ESPHome's native API
106
+
107
+ **Note:** Future tighter integration between dashboard and adapter may be implemented (see issue #228), but currently they operate independently.
108
+
109
+ ### I configured a device in the adapter, but it doesn't show up in the dashboard
110
+
111
+ **This is expected behavior** - the adapter and dashboard do not automatically sync device configurations.
112
+
113
+ - The **adapter** connects to devices via ESPHome's native API for control/monitoring
114
+ - The **dashboard** manages YAML configurations and firmware compilation
115
+
116
+ **If you want the device in the dashboard:**
117
+
118
+ **Option 1:**
119
+ 1. The ESPHome Dashboard can discover devices in the same network automatically
120
+ 2. In the dashboard, discovered devices will show with an "ADOPT" button
121
+ 3. Click "ADOPT" to add them to your dashboard for configuration management
122
+
123
+ **Option 2:**
124
+ - Create a new device in the dashboard and copy your existing yaml into there.
125
+
126
+ **Note:** You don't need devices in the dashboard if you only want to control them via ioBroker. The dashboard is only needed for creating/modifying device configurations.
127
+
93
128
  <!--
94
129
  ## [Documentation](https://DrozmotiX.github.io/languages/en/Adapter/ESPHome/)
95
130
 
@@ -216,6 +251,41 @@ During this process, states not part anymore of YAML configuration will be autom
216
251
 
217
252
  ![DevicesOK](admin/img/deviceTree.png)
218
253
 
254
+ ### YAML File Management
255
+
256
+ The adapter provides a convenient interface for managing YAML configuration files directly from the admin UI. This feature allows you to upload, download, and manage YAML files that are stored in the ESPHome directory and can be used by the ESPHome Dashboard.
257
+
258
+ #### Features
259
+
260
+ - **Upload YAML Files**: Paste your YAML configuration content directly into the admin interface and upload it to the ESPHome directory
261
+ - **View File List**: See all YAML files currently stored in the ESPHome directory with file size and modification date
262
+ - **Download Files**: Retrieve the content of any YAML file for editing or backup
263
+ - **Delete Files**: Remove YAML files that are no longer needed
264
+
265
+ #### How to Use
266
+
267
+ 1. **Navigate to the "YAML Files" tab** in the adapter configuration
268
+ 2. **Upload a new file**:
269
+ - Enter a filename (must end with .yaml or .yml)
270
+ - Paste your YAML configuration content
271
+ - Click "Upload File"
272
+ 3. **Refresh the file list** to see all available YAML files
273
+ 4. **Download or delete files**:
274
+ - Enter the filename in the "Select file" field
275
+ - Click "Download File" to view the content or "Delete File" to remove it
276
+
277
+ > [!NOTE]
278
+ > Files are stored in the ESPHome directory: `/opt/iobroker/iobroker-data/esphome.<instance>/`
279
+ >
280
+ > This is the same directory used by the ESPHome Dashboard, so files uploaded through the adapter
281
+ > are immediately available in the Dashboard and vice versa.
282
+
283
+ > [!TIP]
284
+ > This feature is particularly useful when:
285
+ > - You want to quickly edit configurations without accessing the server file system
286
+ > - You need to backup or share device configurations
287
+ > - You want to manage YAML files without running the full ESPHome Dashboard
288
+
219
289
  ### Example config
220
290
  Example config, for more examples see [The DrozmotiX Docu Page](https://DrozmotiX.github.io) or [ESPHome Documentation](https://esphome.io/index.html)
221
291
 
@@ -284,6 +354,16 @@ If you like my work, please consider a personal donation
284
354
  ### __WORK IN PROGRESS__
285
355
  * (DutchmanNL)
286
356
  -->
357
+ ### 0.7.0-beta.0 (2026-02-15) - Improve Dashboard & allow file upload
358
+ * (@copilot) **FIXED**: Invalid jsonConfig schema - removed unsupported `doNotSave` property from table elements
359
+ * (@copilot) **NEW**: YAML file management interface in admin UI for upload/download/delete operations (#369)
360
+ * (@SimonFischer04) improve logging for #201
361
+ * (@SimonFischer04) automatic migration from versions prior to ESPHomeDashboardUrl introduction (pre v0.6.1)
362
+ * (@SimonFischer04) update pillow
363
+ * (@SimonFischer04) fix readme link to lib
364
+ * (@SimonFischer04) fix connection status #311
365
+ * (@SimonFischer04) remove unneeded node-fetch dependency
366
+
287
367
  ### 0.6.3 (2025-09-16)
288
368
  * (@DutchmanNL) Fixed an admin error related to `jsonConfig` validation. #287
289
369
  * (@DutchmanNL) Various general fixes and dependency updates to improve stability.
@@ -308,13 +388,10 @@ If you like my work, please consider a personal donation
308
388
  * (DutchmanNL) Ensures a compatible pillow version is used (10.0.1)
309
389
  * (SimonFischer04) Add pillow python package by default, resolves #188
310
390
 
311
- ### 0.5.0-beta.4 (2023-11-15)
312
- * (DutchmanNL) Refactor memory caching of device data, resolves #189
313
-
314
391
  ## License
315
392
  MIT License
316
393
 
317
- Copyright (c) 2023-2025 DutchmanNL <rdrozda86@gmail.com>
394
+ Copyright (c) 2023-2026 DutchmanNL <rdrozda86@gmail.com>
318
395
 
319
396
  Permission is hereby granted, free of charge, to any person obtaining a copy
320
397
  of this software and associated documentation files (the "Software"), to deal
package/admin/admin.d.ts CHANGED
@@ -1,93 +1,96 @@
1
1
  declare let systemDictionary: Record<string, Record<string, string>>;
2
2
 
3
- declare let load: (settings: Record<string, unknown>, onChange: (hasChanges: boolean) => void) => void;
4
- declare let save: (callback: (settings: Record<string, unknown>) => void) => void;
3
+ declare let load: (
4
+ settings: Record<string, unknown>,
5
+ onChange: (hasChanges: boolean) => void,
6
+ ) => void;
7
+ declare let save: (
8
+ callback: (settings: Record<string, unknown>) => void,
9
+ ) => void;
5
10
 
6
11
  // make load and save exist on the window object
7
12
  interface Window {
8
- load: typeof load;
9
- save: typeof save;
13
+ load: typeof load;
14
+ save: typeof save;
10
15
  }
11
16
 
12
17
  declare const instance: number;
13
18
  declare const adapter: string;
14
- /** Translates text */
19
+ /**
20
+ * Translates text
21
+ *
22
+ * @param text - The text to translate
23
+ */
15
24
  declare function _(text: string): string;
16
25
  declare const socket: ioBrokerSocket;
17
26
  declare function sendTo(
18
- instance: any | null,
19
- command: string,
20
- message: any,
21
- callback: (result: SendToResult) => void | Promise<void>,
27
+ instance: null,
28
+ command: string,
29
+ message: any,
30
+ callback: (result: SendToResult) => void | Promise<void>,
22
31
  ): void;
23
32
 
24
33
  interface SendToResult {
25
- error?: string | Error;
26
- result?: any;
34
+ error?: string | Error;
35
+ result?: any;
27
36
  }
28
37
 
29
38
  // tslint:disable-next-line:class-name
30
39
  interface ioBrokerSocket {
31
- emit(
32
- command: 'subscribeObjects',
33
- pattern: string,
34
- callback?: (err?: string) => void | Promise<void>,
35
- ): void;
36
- emit(
37
- command: 'subscribeStates',
38
- pattern: string,
39
- callback?: (err?: string) => void | Promise<void>,
40
- ): void;
41
- emit(
42
- command: 'unsubscribeObjects',
43
- pattern: string,
44
- callback?: (err?: string) => void | Promise<void>,
45
- ): void;
46
- emit(
47
- command: 'unsubscribeStates',
48
- pattern: string,
49
- callback?: (err?: string) => void | Promise<void>,
50
- ): void;
40
+ emit(
41
+ command: "subscribeObjects",
42
+ pattern: string,
43
+ callback?: (err?: string) => void | Promise<void>,
44
+ ): void;
45
+ emit(
46
+ command: "subscribeStates",
47
+ pattern: string,
48
+ callback?: (err?: string) => void | Promise<void>,
49
+ ): void;
50
+ emit(
51
+ command: "unsubscribeObjects",
52
+ pattern: string,
53
+ callback?: (err?: string) => void | Promise<void>,
54
+ ): void;
55
+ emit(
56
+ command: "unsubscribeStates",
57
+ pattern: string,
58
+ callback?: (err?: string) => void | Promise<void>,
59
+ ): void;
51
60
 
52
- emit(
53
- event: 'getObjectView',
54
- view: 'system',
55
- type: 'device',
56
- options: ioBroker.GetObjectViewParams,
57
- callback: (
58
- err: string | undefined,
59
- result?: any,
60
- ) => void | Promise<void>,
61
- ): void;
62
- emit(
63
- event: 'getStates',
64
- callback: (
65
- err: string | undefined,
66
- result?: Record<string, any>,
67
- ) => void,
68
- ): void;
69
- emit(
70
- event: 'getState',
71
- id: string,
72
- callback: (err: string | undefined, result?: ioBroker.State) => void,
73
- ): void;
74
- emit(
75
- event: 'setState',
76
- id: string,
77
- state: unknown,
78
- callback: (err: string | undefined, result?: any) => void,
79
- ): void;
61
+ emit(
62
+ event: "getObjectView",
63
+ view: "system",
64
+ type: "device",
65
+ options: ioBroker.GetObjectViewParams,
66
+ callback: (err: string | undefined, result?: any) => void | Promise<void>,
67
+ ): void;
68
+ emit(
69
+ event: "getStates",
70
+ callback: (err: string | undefined, result?: Record<string, any>) => void,
71
+ ): void;
72
+ emit(
73
+ event: "getState",
74
+ id: string,
75
+ callback: (err: string | undefined, result?: ioBroker.State) => void,
76
+ ): void;
77
+ emit(
78
+ event: "setState",
79
+ id: string,
80
+ state: unknown,
81
+ callback: (err: string | undefined, result?: any) => void,
82
+ ): void;
80
83
 
81
- on(event: 'objectChange', handler: ioBroker.ObjectChangeHandler): void;
82
- on(event: 'stateChange', handler: ioBroker.StateChangeHandler): void;
83
- removeEventHandler(
84
- event: 'objectChange',
85
- handler: ioBroker.ObjectChangeHandler,
86
- ): void;
87
- removeEventHandler(
88
- event: 'stateChange',
89
- handler: ioBroker.StateChangeHandler,
90
- ): void;
84
+ on(event: "objectChange", handler: ioBroker.ObjectChangeHandler): void;
85
+ on(event: "stateChange", handler: ioBroker.StateChangeHandler): void;
86
+ removeEventHandler(
87
+ event: "objectChange",
88
+ handler: ioBroker.ObjectChangeHandler,
89
+ ): void;
90
+ removeEventHandler(
91
+ event: "stateChange",
92
+ handler: ioBroker.StateChangeHandler,
93
+ ): void;
91
94
 
92
- // TODO: other events
95
+ // TODO: other events
93
96
  }
@@ -1,18 +1,23 @@
1
1
  {
2
- "ESPHomeCommunityLink": "Weitere Informationen zu ESPHome, Beispielkonfigurationen und Links zu Communities finden Sie unter:",
3
- "chkEnableESPHome": "Aktivieren Sie das ESPHome-Dashboard",
2
+ "ESPHomeCommunityLink": "Weitere Informationen zu ESPHome, Beispielkonfigurationen und Links zu Communities sind hier zu finden:",
3
+ "chkEnableESPHome": "ESPHome-Dashboard aktivieren",
4
+ "cnfDeleteYamlCancel": "Cancel",
5
+ "cnfDeleteYamlOk": "Delete",
6
+ "cnfDeleteYamlText": "Are you sure you want to delete this file?",
7
+ "cnfDeleteYamlTitle": "Confirm file deletion",
4
8
  "existDevicesHeader": "Alle von diesem Adapter verwalteten Geräte und deren Verbindungsstatus",
5
- "hlpDiscoveryListeningAddress": "Erkennen Sie nur Geräte auf dieser Schnittstelle",
6
- "hlpESPHomeDashboardVersion": "Wählen Sie aus, welche Version von ESPHome Dashboard verwendet werden soll",
9
+ "hlpDiscoveryListeningAddress": "Nur Geräte auf dieser Schnittstelle erkennen",
10
+ "hlpESPHomeDashboardVersion": "Auswählen welche Version von ESPHome Dashboard verwendet werden soll",
7
11
  "hlpInputApiPassword": "API-Passwort (alt, bitte Verschlüsselungsschlüssel verwenden!)",
8
- "hlpInputDeviceIP": "Wählen Sie ein vorhandenes Gerät aus oder geben Sie die IP des neuen Geräts ein",
9
- "hlpInputEncryptionKey": "Geben Sie einen gerätespezifischen Verschlüsselungsschlüssel an (bevorzugt)",
10
- "introLine-1": "Mit ioBroker ESPHome können Sie ESPHome-fähige Geräte verwalten und steuern. Sie müssen diese Binärdateien selbst erstellen und hochladen!",
12
+ "hlpInputDeviceIP": "Ein vorhandenes Gerät auswählen oder die IP des neuen Geräts eingeben",
13
+ "hlpInputEncryptionKey": "Einen gerätespezifischen Verschlüsselungsschlüssel angeben (bevorzugt)",
14
+ "hlpSelectedFilename": "Enter the filename from the table above to download or delete it",
15
+ "introLine-1": "Mit ioBroker ESPHome kann man ESPHome-fähige Geräte verwalten und steuern. Diese Binärdateien müssen selbst erstellt und hochgeladen werden!",
11
16
  "introLine-2": "Zum Erstellen dieser Binärdateien ist ESPHome Dashboard erforderlich.",
12
17
  "lblApiPass": "API-Passwort (Legacy)",
13
18
  "lblAutoDiscovery": "Geräteerkennung aktiviert",
14
19
  "lblConnectDetails-Line-1": "Die native ESPHome-API wird für die direkte Kommunikation mit Clients über ein hochoptimiertes Netzwerkprotokoll verwendet.",
15
- "lblConnectDetails-Line-2": "Nachdem Sie Ihrer ESPHome-Konfiguration eine api:-Zeile hinzugefügt haben, können Sie zu dieser Seite gehen und warten, bis das ESPHome-Gerät im Abschnitt „Erkannte Geräte“ angezeigt wird (kann bis zu 5 Minuten dauern) oder das Gerät manuell hinzufügen, indem Sie „Gerät hinzufügen“ wählen.",
20
+ "lblConnectDetails-Line-2": "Nachdem der ESPHome-Konfiguration eine api:-Zeile hinzugefügt wurde, kann man zu dieser Seite gehen und warten, bis das ESPHome-Gerät im Abschnitt „Erkannte Geräte“ angezeigt wird (kann bis zu 5 Minuten dauern) oder das Gerät manuell hinzugefügt werden, indem man „Gerät hinzufügen“ wählt.",
16
21
  "lblConnectDetails-Line-3": "Die native API von ESPHome basiert auf einem benutzerdefinierten TCP-Protokoll unter Verwendung von Protokollpuffern.",
17
22
  "lblConnectIobroker": "ioBroker kommuniziert direkt über die native API statt über MQTT, um Ihnen das bestmögliche Erlebnis und die Unterstützung von Verschlüsselungsschlüsseln (empfohlen) anstelle von API/MQTT-Passwörtern zu bieten",
18
23
  "lblDashboardLink": "Um das ESPHome-Dashboard auf der Admin-Registerkarte von ioBroker anzuzeigen, müssen Sie die IP-Adresse angeben, auf der die Installation ausgeführt wird",
@@ -20,21 +25,36 @@
20
25
  "lblDefaultCredentials-Line-1": "Jedes Gerät sollte über einen eigenen eindeutigen Verschlüsselungsschlüssel (empfohlen) oder ein API-Passwort verfügen. Die Geräteerkennung (sofern aktiviert) erkennt alle Geräte und versucht, eine Verbindung mit den unten aufgeführten Anmeldeinformationen herzustellen",
21
26
  "lblDefaultCredentials-Line-2": "Wenn Sie einen eindeutigen Verschlüsselungsschlüssel (empfohlen) oder ein API-Passwort zuweisen, werden neue Geräte auf der Registerkarte „Erkannte Geräte“ angezeigt (oder müssen hinzugefügt werden) und Sie müssen die eindeutigen Anmeldeinformationen manuell eingeben",
22
27
  "lblDelDevice": "Gerät löschen",
28
+ "lblDeleteYamlButton": "Delete File",
23
29
  "lblDevicesTable": "Alle aktuellen (bekannten) Geräte und deren Verbindungsstatus",
24
30
  "lblDiscoveryListeningAddress": "Anhörungsadresse",
31
+ "lblDownloadYamlButton": "Download File",
25
32
  "lblESPHomeDashboardVersion": "ESPHome Dashboard-Version",
26
33
  "lblESPHomeIP": "IP-Adresse, unter der ESPHome Dashboard zur Integration in ioBroker Admin ausgeführt wird",
27
34
  "lblESPHomePort": "Port des ESPHome-Dashboards",
28
35
  "lblEnableESPHome": "Sie können ESPHome Dashboard entweder separat ausführen oder die Option unten aktivieren, um es nativ in ioBroker auszuführen",
29
36
  "lblEncryptionKey": "Standardverschlüsselungsschlüssel",
37
+ "lblFileActionsHeader": "File Actions",
30
38
  "lblHeaderConnect": "So verbinden Sie ein ESPHome-fähiges Gerät mit ioBroker",
31
39
  "lblHeaderMainPage": "ESPHome Dashboard-Integration",
40
+ "lblHeaderYamlManagement": "YAML File Management",
32
41
  "lblIgnoreList": "IP-Adressen, die von der Geräteerkennung ausgeschlossen werden sollen",
33
42
  "lblInputApiPassword": "API-Passwort",
34
43
  "lblInputDeviceIP-content": "Geräte-IP-Adresse",
35
44
  "lblInputEncryptionKey": "Verschlüsselungsschlüssel",
36
45
  "lblLoadDevices": "Geräteübersicht aktualisieren",
46
+ "lblRefreshYamlFiles": "Refresh File List",
47
+ "lblSelectedFilename": "Select file for download/delete",
37
48
  "lblTxtNoButtonsIfNotActive": "Gerätetabelle und Schaltfläche HINZUFÜGEN/Löschen nur verfügbar, wenn der Adapter ausgeführt wird",
49
+ "lblUploadContent": "YAML Content",
50
+ "lblUploadFilename": "Filename (e.g., my-device.yaml)",
51
+ "lblUploadYamlButton": "Upload File",
52
+ "lblUploadYamlHeader": "Upload YAML File",
53
+ "lblUploadYamlInfo": "Paste the content of your YAML file below and provide a filename to upload it to the ESPHome directory.",
54
+ "lblYamlFileUpload": "Upload YAML File",
55
+ "lblYamlFilesHeader": "Available YAML Files",
56
+ "lblYamlFilesTable": "YAML files in ESPHome directory",
57
+ "lblYamlManagementInfo": "Upload, download, and manage YAML configuration files for your ESPHome devices. Files are stored in the ESPHome directory and can be used by the ESPHome Dashboard.",
38
58
  "lbl_addUpdateDevice": "Geräte hinzufügen/ändern",
39
59
  "maxRetry": "Maximale Verbindungswiederholung, bevor das Gerät als offline betrachtet wird",
40
60
  "newDevicesHeader": "Neu entdeckte Geräte, bitte Anmeldedaten angeben!",
@@ -15,7 +15,7 @@
15
15
  "lblConnectDetails-Line-2": "After adding an api: line to your ESPHome configuration you can go to this page and and wait for the ESPHome device to show up under the discovered devices section (can take up to 5 minutes) or add the device manually by choosing “add Device” from the devices overview and entering “<NODE_NAME>.local” or the IP address of the unit in the “Host” field.",
16
16
  "lblConnectDetails-Line-3": "The ESPHome native API is based on a custom TCP protocol using protocol buffers. You can find the protocol data structure definitions here:",
17
17
  "lblConnectIobroker": "ioBroker communicates directly by Native API instead of MQTT to provide you the best possible experience and support of encryption keys (recommend) instead of API/MQTT passwords",
18
- "lblDashboardLink": "To show ESPHome dashboard in ioBroker admin tab, its required to provide the IP-Ares on which installation its running. Https is currently not supported",
18
+ "lblDashboardLink": "To show ESPHome dashboard in ioBroker admin tab, its required to provide the IP address on which installation its running. Https is currently not supported",
19
19
  "lblDefaultCredentials": "Default API / Encryption keys settings devices (not recommended)",
20
20
  "lblDefaultCredentials-Line-1": "Each devices should have its own unique encryption Key (recommended) or API password, device discovery (when enabled) detects all devices and tries to connect with credentials below",
21
21
  "lblDefaultCredentials-Line-2": "If you assign an unique encryption key (recommended) or API password, new devices will show up on Discovered Devices tab (or must be added) and you must provide the unique credentials manually",
@@ -38,5 +38,25 @@
38
38
  "lbl_addUpdateDevice": "ADD / Modify devices",
39
39
  "maxRetry": "Maximum connection retry before considering device as offline",
40
40
  "newDevicesHeader": "Newly discovered devices, please provide credentials!",
41
- "reConInterval": "Setting between ioBroker try's to reconnect this device"
41
+ "reConInterval": "Setting between ioBroker tries to reconnect this device",
42
+ "lblHeaderYamlManagement": "YAML File Management",
43
+ "lblYamlManagementInfo": "Upload, download, and manage YAML configuration files for your ESPHome devices. Files are stored in the ESPHome directory and can be used by the ESPHome Dashboard.",
44
+ "lblUploadYamlHeader": "Upload YAML File",
45
+ "lblUploadYamlInfo": "Paste the content of your YAML file below and provide a filename to upload it to the ESPHome directory.",
46
+ "lblUploadFilename": "Filename (e.g., my-device.yaml)",
47
+ "lblUploadContent": "YAML Content",
48
+ "lblUploadYamlButton": "Upload File",
49
+ "lblYamlFileUpload": "Upload YAML File",
50
+ "lblRefreshYamlFiles": "Refresh File List",
51
+ "lblYamlFilesHeader": "Available YAML Files",
52
+ "lblYamlFilesTable": "YAML files in ESPHome directory",
53
+ "lblFileActionsHeader": "File Actions",
54
+ "lblSelectedFilename": "Select file for download/delete",
55
+ "hlpSelectedFilename": "Enter the filename from the table above to download or delete it",
56
+ "lblDownloadYamlButton": "Download File",
57
+ "lblDeleteYamlButton": "Delete File",
58
+ "cnfDeleteYamlText": "Are you sure you want to delete this file?",
59
+ "cnfDeleteYamlTitle": "Confirm file deletion",
60
+ "cnfDeleteYamlOk": "Delete",
61
+ "cnfDeleteYamlCancel": "Cancel"
42
62
  }
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "ESPHomeCommunityLink": "Para obtener más información sobre ESPHome, configuración de ejemplo y enlaces a comunidades, visite:",
3
3
  "chkEnableESPHome": "Habilitar el panel ESPHome",
4
+ "cnfDeleteYamlCancel": "Cancel",
5
+ "cnfDeleteYamlOk": "Delete",
6
+ "cnfDeleteYamlText": "Are you sure you want to delete this file?",
7
+ "cnfDeleteYamlTitle": "Confirm file deletion",
4
8
  "existDevicesHeader": "Todos los dispositivos gestionados por este adaptador y su estado de conexión.",
5
9
  "hlpDiscoveryListeningAddress": "Descubrir solo dispositivos en esta interfaz",
6
10
  "hlpESPHomeDashboardVersion": "Elija qué versión de ESPHome Dashboard debe usarse",
7
11
  "hlpInputApiPassword": "Contraseña de API (heredada, ¡use una clave de cifrado!)",
8
12
  "hlpInputDeviceIP": "Seleccione el dispositivo existente o ingrese la IP del nuevo dispositivo",
9
13
  "hlpInputEncryptionKey": "Proporcionar clave de cifrado específica del dispositivo (preferido)",
14
+ "hlpSelectedFilename": "Enter the filename from the table above to download or delete it",
10
15
  "introLine-1": "ioBroker ESPHome permite administrar y controlar dispositivos compatibles con ESPHome. ¡Debe crear y cargar estos archivos binarios usted mismo!",
11
16
  "introLine-2": "Se requiere ESPHome Dashboard para crear estos archivos binarios. ",
12
17
  "lblApiPass": "Contraseña API nativa predeterminada (heredada)",
@@ -20,21 +25,36 @@
20
25
  "lblDefaultCredentials-Line-1": "Cada dispositivo debe tener su propia clave de cifrado única (recomendada) o contraseña API; la detección de dispositivos (cuando está habilitada) detecta todos los dispositivos e intenta conectarse con las siguientes credenciales",
21
26
  "lblDefaultCredentials-Line-2": "Si asigna una clave de cifrado única (recomendada) o una contraseña API, los nuevos dispositivos aparecerán en la pestaña Dispositivos descubiertos (o deberán agregarse) y deberá proporcionar las credenciales únicas manualmente.",
22
27
  "lblDelDevice": "Eliminar dispositivo",
28
+ "lblDeleteYamlButton": "Delete File",
23
29
  "lblDevicesTable": "Todos los dispositivos actuales (conocidos) y su estado de conexión",
24
30
  "lblDiscoveryListeningAddress": "dirección de escucha",
31
+ "lblDownloadYamlButton": "Download File",
25
32
  "lblESPHomeDashboardVersion": "Versión del panel ESPHome",
26
33
  "lblESPHomeIP": "Dirección IP donde se ejecuta ESPHome Dashboard para integrarse en ioBroker Admin",
27
34
  "lblESPHomePort": "Puerto de ESPHome Dashboard",
28
35
  "lblEnableESPHome": "Puede ejecutar ESPHome Dashboard por separado o activar la siguiente opción para ejecutarlo de forma nativa en ioBroker.",
29
36
  "lblEncryptionKey": "Clave de cifrado predeterminada",
37
+ "lblFileActionsHeader": "File Actions",
30
38
  "lblHeaderConnect": "Cómo conectar un dispositivo compatible con ESPHome a ioBroker",
31
39
  "lblHeaderMainPage": "Integración del panel ESPHome",
40
+ "lblHeaderYamlManagement": "YAML File Management",
32
41
  "lblIgnoreList": "Direcciones IP que se excluirán mediante el descubrimiento de dispositivos",
33
42
  "lblInputApiPassword": "Contraseña API",
34
43
  "lblInputDeviceIP-content": "Dirección IP del dispositivo",
35
44
  "lblInputEncryptionKey": "Clave de encriptación",
36
45
  "lblLoadDevices": "Actualizar descripción general del dispositivo",
46
+ "lblRefreshYamlFiles": "Refresh File List",
47
+ "lblSelectedFilename": "Select file for download/delete",
37
48
  "lblTxtNoButtonsIfNotActive": "La tabla de dispositivos y el botón AGREGAR/Eliminar solo están disponibles si el adaptador está en ejecución",
49
+ "lblUploadContent": "YAML Content",
50
+ "lblUploadFilename": "Filename (e.g., my-device.yaml)",
51
+ "lblUploadYamlButton": "Upload File",
52
+ "lblUploadYamlHeader": "Upload YAML File",
53
+ "lblUploadYamlInfo": "Paste the content of your YAML file below and provide a filename to upload it to the ESPHome directory.",
54
+ "lblYamlFileUpload": "Upload YAML File",
55
+ "lblYamlFilesHeader": "Available YAML Files",
56
+ "lblYamlFilesTable": "YAML files in ESPHome directory",
57
+ "lblYamlManagementInfo": "Upload, download, and manage YAML configuration files for your ESPHome devices. Files are stored in the ESPHome directory and can be used by the ESPHome Dashboard.",
38
58
  "lbl_addUpdateDevice": "AGREGAR / Modificar dispositivos",
39
59
  "maxRetry": "Reintento máximo de conexión antes de considerar el dispositivo como fuera de línea",
40
60
  "newDevicesHeader": "Dispositivos recién descubiertos, proporcione credenciales.",
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "ESPHomeCommunityLink": "Pour plus d'informations sur ESPHome, des exemples de configuration et des liens vers les communautés, veuillez visiter :",
3
3
  "chkEnableESPHome": "Activer le tableau de bord ESPHome",
4
+ "cnfDeleteYamlCancel": "Cancel",
5
+ "cnfDeleteYamlOk": "Delete",
6
+ "cnfDeleteYamlText": "Are you sure you want to delete this file?",
7
+ "cnfDeleteYamlTitle": "Confirm file deletion",
4
8
  "existDevicesHeader": "Tous les appareils gérés par cet adaptateur et leur état de connexion",
5
9
  "hlpDiscoveryListeningAddress": "Découvrez uniquement les appareils sur cette interface",
6
10
  "hlpESPHomeDashboardVersion": "Choisissez quelle version d'ESPHome Dashboard doit être utilisée",
7
11
  "hlpInputApiPassword": "Mot de passe API (ancien, veuillez utiliser la clé de cryptage !)",
8
12
  "hlpInputDeviceIP": "Sélectionnez l'appareil existant ou entrez l'adresse IP du nouvel appareil",
9
13
  "hlpInputEncryptionKey": "Fournir une clé de cryptage spécifique à l'appareil (de préférence)",
14
+ "hlpSelectedFilename": "Enter the filename from the table above to download or delete it",
10
15
  "introLine-1": "ioBroker ESPHome permet de gérer et de contrôler les appareils compatibles ESPHome, vous devez créer et télécharger ces binaires par vous-même !",
11
16
  "introLine-2": "ESPHome Dashboard est requis pour créer ces binaires. ",
12
17
  "lblApiPass": "Mot de passe de l'API native par défaut (ancien)",
@@ -20,21 +25,36 @@
20
25
  "lblDefaultCredentials-Line-1": "Chaque appareil doit avoir sa propre clé de cryptage unique (recommandée) ou son propre mot de passe API, la découverte des appareils (lorsqu'elle est activée) détecte tous les appareils et tente de se connecter avec les informations d'identification ci-dessous.",
21
26
  "lblDefaultCredentials-Line-2": "Si vous attribuez une clé de cryptage unique (recommandé) ou un mot de passe API, les nouveaux appareils apparaîtront dans l'onglet Appareils découverts (ou doivent être ajoutés) et vous devez fournir les informations d'identification uniques manuellement.",
22
27
  "lblDelDevice": "Supprimer l'appareil",
28
+ "lblDeleteYamlButton": "Delete File",
23
29
  "lblDevicesTable": "Tous les appareils actuels (connus) et leur état de connexion",
24
30
  "lblDiscoveryListeningAddress": "Adresse d'écoute",
31
+ "lblDownloadYamlButton": "Download File",
25
32
  "lblESPHomeDashboardVersion": "Version du tableau de bord ESPHome",
26
33
  "lblESPHomeIP": "Adresse IP sur laquelle ESPHome Dashboard est exécuté pour s'intégrer dans ioBroker Admin",
27
34
  "lblESPHomePort": "Port du tableau de bord ESPHome",
28
35
  "lblEnableESPHome": "Vous pouvez soit exécuter ESPHome Dashboard séparément, soit activer l'option ci-dessous pour l'exécuter nativement dans ioBroker",
29
36
  "lblEncryptionKey": "Clé de cryptage par défaut",
37
+ "lblFileActionsHeader": "File Actions",
30
38
  "lblHeaderConnect": "Comment connecter un appareil compatible ESPHome à ioBroker",
31
39
  "lblHeaderMainPage": "Intégration du tableau de bord ESPHome",
40
+ "lblHeaderYamlManagement": "YAML File Management",
32
41
  "lblIgnoreList": "Adresses IP à exclure par la découverte de périphériques",
33
42
  "lblInputApiPassword": "Mot de passe API",
34
43
  "lblInputDeviceIP-content": "Adresse IP de l'appareil",
35
44
  "lblInputEncryptionKey": "Clé de cryptage",
36
45
  "lblLoadDevices": "Actualiser la présentation des appareils",
46
+ "lblRefreshYamlFiles": "Refresh File List",
47
+ "lblSelectedFilename": "Select file for download/delete",
37
48
  "lblTxtNoButtonsIfNotActive": "Tableau des appareils et bouton AJOUTER/Supprimer disponibles uniquement si l'adaptateur est en cours d'exécution",
49
+ "lblUploadContent": "YAML Content",
50
+ "lblUploadFilename": "Filename (e.g., my-device.yaml)",
51
+ "lblUploadYamlButton": "Upload File",
52
+ "lblUploadYamlHeader": "Upload YAML File",
53
+ "lblUploadYamlInfo": "Paste the content of your YAML file below and provide a filename to upload it to the ESPHome directory.",
54
+ "lblYamlFileUpload": "Upload YAML File",
55
+ "lblYamlFilesHeader": "Available YAML Files",
56
+ "lblYamlFilesTable": "YAML files in ESPHome directory",
57
+ "lblYamlManagementInfo": "Upload, download, and manage YAML configuration files for your ESPHome devices. Files are stored in the ESPHome directory and can be used by the ESPHome Dashboard.",
38
58
  "lbl_addUpdateDevice": "AJOUTER/Modifier des appareils",
39
59
  "maxRetry": "Nombre maximal de tentatives de connexion avant de considérer l'appareil comme hors ligne",
40
60
  "newDevicesHeader": "Appareils récemment découverts, veuillez fournir vos informations d'identification !",
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "ESPHomeCommunityLink": "Per ulteriori informazioni su ESPHome, esempi di configurazione e collegamenti alle comunità, visitare:",
3
3
  "chkEnableESPHome": "Abilita la dashboard ESPHome",
4
+ "cnfDeleteYamlCancel": "Cancel",
5
+ "cnfDeleteYamlOk": "Delete",
6
+ "cnfDeleteYamlText": "Are you sure you want to delete this file?",
7
+ "cnfDeleteYamlTitle": "Confirm file deletion",
4
8
  "existDevicesHeader": "Tutti i dispositivi gestiti da questo adattatore e il relativo stato di connessione",
5
9
  "hlpDiscoveryListeningAddress": "Rileva solo i dispositivi su questa interfaccia",
6
10
  "hlpESPHomeDashboardVersion": "Scegli quale versione di ESPHome Dashboard deve essere utilizzata",
7
11
  "hlpInputApiPassword": "Password API (legacy, utilizza la chiave di crittografia!)",
8
12
  "hlpInputDeviceIP": "Seleziona il dispositivo esistente o inserisci l'IP del nuovo dispositivo",
9
13
  "hlpInputEncryptionKey": "Fornire una chiave di crittografia specifica per il dispositivo (preferibile)",
14
+ "hlpSelectedFilename": "Enter the filename from the table above to download or delete it",
10
15
  "introLine-1": "ioBroker ESPHome consente di gestire e controllare i dispositivi compatibili con ESPHome, devi creare e caricare questi binari da solo!",
11
16
  "introLine-2": "Per creare questi file binari è necessario ESPHome Dashboard. ",
12
17
  "lblApiPass": "Password API nativa predefinita (legacy)",
@@ -20,21 +25,36 @@
20
25
  "lblDefaultCredentials-Line-1": "Ogni dispositivo deve avere la propria chiave di crittografia univoca (consigliata) o password API, il rilevamento dei dispositivi (se abilitato) rileva tutti i dispositivi e tenta di connettersi con le credenziali riportate di seguito",
21
26
  "lblDefaultCredentials-Line-2": "Se assegni una chiave di crittografia univoca (consigliata) o una password API, i nuovi dispositivi verranno visualizzati nella scheda Dispositivi rilevati (o dovranno essere aggiunti) e dovrai fornire manualmente le credenziali univoche",
22
27
  "lblDelDevice": "Elimina dispositivo",
28
+ "lblDeleteYamlButton": "Delete File",
23
29
  "lblDevicesTable": "Tutti i dispositivi attuali (conosciuti) e il relativo stato di connessione",
24
30
  "lblDiscoveryListeningAddress": "Indirizzo d'ascolto",
31
+ "lblDownloadYamlButton": "Download File",
25
32
  "lblESPHomeDashboardVersion": "Versione ESPHome Dashboard",
26
33
  "lblESPHomeIP": "Indirizzo IP su cui è in esecuzione ESPHome Dashboard per l'integrazione in ioBroker Admin",
27
34
  "lblESPHomePort": "Porta della dashboard ESPHome",
28
35
  "lblEnableESPHome": "Puoi eseguire ESPHome Dashboard separatamente o attivare l'opzione seguente per eseguirlo nativo in ioBroker",
29
36
  "lblEncryptionKey": "Chiave di crittografia predefinita",
37
+ "lblFileActionsHeader": "File Actions",
30
38
  "lblHeaderConnect": "Come connettere un dispositivo compatibile con ESPHome a ioBroker",
31
39
  "lblHeaderMainPage": "Integrazione della dashboard ESPHome",
40
+ "lblHeaderYamlManagement": "YAML File Management",
32
41
  "lblIgnoreList": "Indirizzi IP da escludere dal rilevamento del dispositivo",
33
42
  "lblInputApiPassword": "Password dell'API",
34
43
  "lblInputDeviceIP-content": "Indirizzo IP del dispositivo",
35
44
  "lblInputEncryptionKey": "Chiave crittografica",
36
45
  "lblLoadDevices": "Aggiorna la panoramica del dispositivo",
46
+ "lblRefreshYamlFiles": "Refresh File List",
47
+ "lblSelectedFilename": "Select file for download/delete",
37
48
  "lblTxtNoButtonsIfNotActive": "La tabella dei dispositivi e il pulsante AGGIUNGI/Elimina sono disponibili solo se l'adattatore è in esecuzione",
49
+ "lblUploadContent": "YAML Content",
50
+ "lblUploadFilename": "Filename (e.g., my-device.yaml)",
51
+ "lblUploadYamlButton": "Upload File",
52
+ "lblUploadYamlHeader": "Upload YAML File",
53
+ "lblUploadYamlInfo": "Paste the content of your YAML file below and provide a filename to upload it to the ESPHome directory.",
54
+ "lblYamlFileUpload": "Upload YAML File",
55
+ "lblYamlFilesHeader": "Available YAML Files",
56
+ "lblYamlFilesTable": "YAML files in ESPHome directory",
57
+ "lblYamlManagementInfo": "Upload, download, and manage YAML configuration files for your ESPHome devices. Files are stored in the ESPHome directory and can be used by the ESPHome Dashboard.",
38
58
  "lbl_addUpdateDevice": "AGGIUNGI/MODIFICA DISPOSITIVI",
39
59
  "maxRetry": "Numero massimo di tentativi di connessione prima di considerare il dispositivo offline",
40
60
  "newDevicesHeader": "Dispositivi appena scoperti, fornisci le credenziali!",