iobroker.esphome 0.6.2 → 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
@@ -23,8 +23,107 @@ Native integration of ESPHome managed device (Including Dashboard) by its native
23
23
 
24
24
  ![Logo](admin/img/dashboard.png)
25
25
 
26
- 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)!
26
+ **Quick Links:**
27
+ - 📋 [FAQ - Common Questions](#frequently-asked-questions-faq)
28
+ - ⚙️ [Prerequisites & Setup](#prerequisites)
29
+ - 🎛️ [Dashboard Integration](#esphome-dashboard-integration-optional)
30
+ - 📱 [Device Management](#device-management)
31
+ - 🔧 [Configuration Examples](#example-config)
27
32
 
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
+
35
+ ## Frequently Asked Questions (FAQ)
36
+
37
+ ### What's the difference between the ioBroker ESPHome Adapter and ESPHome Dashboard?
38
+
39
+ **ioBroker ESPHome Adapter:**
40
+ - Integrates your ESPHome devices into ioBroker for home automation control
41
+ - Communicates directly with ESP devices via ESPHome's native API
42
+ - Creates ioBroker states/objects for device control and monitoring
43
+ - Handles real-time device status updates (no polling required)
44
+ - Manages device configuration within ioBroker
45
+
46
+ **ESPHome Dashboard:**
47
+ - A web interface for creating, editing, and managing ESPHome device configurations
48
+ - Used for writing YAML configs, compiling firmware, and flashing devices
49
+ - Can be integrated into ioBroker's admin interface as an optional feature
50
+ - Can be run either integrated with this adapter or as an external installation (Docker, standalone)
51
+
52
+ **In Summary:** The adapter controls your devices within ioBroker, while the dashboard manages device configurations and firmware.
53
+
54
+ ### How do I configure the Dashboard IP selector?
55
+
56
+ The Dashboard IP setting in the adapter configuration serves different purposes:
57
+
58
+ **For Integrated Dashboard Tab in ioBroker Admin:**
59
+ 1. Enter the IP address and port where your ESPHome Dashboard is running
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`)
64
+ 4. **HTTPS Setup:** For HTTPS environments, see the detailed HTTPS configuration section below
65
+
66
+ **Dashboard IP Examples:**
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`
70
+ - HTTPS Proxy: `https://192.168.1.50:8082/proxy.0/esphome/`
71
+
72
+ ![ESPHome Dashboard IP Configuration](admin/img/ESPhomeDashboardIP.png)
73
+
74
+ **Note:** You can use this adapter to control ESPHome devices without configuring the Dashboard IP. The Dashboard IP is only needed if you want to integrate the ESPHome Dashboard interface into ioBroker's admin panel.
75
+
76
+ ### Do I need the ESPHome Dashboard to use this adapter?
77
+
78
+ **No, the Dashboard is optional.** You can use this adapter in several ways:
79
+
80
+ 1. **Adapter Only:** Control pre-configured ESPHome devices without any dashboard integration
81
+ 2. **Adapter + External Dashboard:** Use your existing ESPHome installation (Docker, standalone) and optionally integrate it into ioBroker's interface
82
+ 3. **Adapter + Built-in Dashboard:** Enable the integrated ESPHome Dashboard feature for a complete solution
83
+
84
+ The adapter works independently and only requires devices with ESPHome API enabled in their configuration.
85
+
86
+ ### How do I add devices to the adapter?
87
+
88
+ 1. **Ensure ESPHome API is enabled** in your device's YAML configuration (see Prerequisites section)
89
+ 2. **Open the adapter's device tab** in ioBroker Admin (adapter must be running)
90
+ 3. **Add devices manually:** Enter device IP address and authentication credentials
91
+ 4. **Automatic discovery:** Use the autodiscovery feature if enabled in adapter settings
92
+
93
+ The adapter will establish a connection and create all necessary ioBroker objects for device control.
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.
28
127
 
29
128
  <!--
30
129
  ## [Documentation](https://DrozmotiX.github.io/languages/en/Adapter/ESPHome/)
@@ -39,11 +138,29 @@ All our adapter documentation can be found at [The DrozmotiX Docu Page](https://
39
138
  * For admin tabs (optional)
40
139
  * ESPHome Dashboard IP is provided in instance settings
41
140
 
42
- ## Using the built-in ESPHome Dashboard
43
- You can either use an external installation of ESPHome (like docker) or activate the ESPHome Dashboard process included in this adapter.
44
- In any case, it is possible to integrate the dashboard into ioBroker Admin interface, for this purpose you must specify the ip where the Dashboard is running
141
+ ## ESPHome Dashboard Integration (Optional)
142
+
143
+ This adapter can optionally integrate the ESPHome Dashboard into ioBroker's admin interface. You have several options:
45
144
 
46
- ![Logo](admin/img/ESPhomeDashboardIP.png)
145
+ **Option 1: Built-in Dashboard (Recommended for beginners)**
146
+ - Enable "Native Integration of ESPHome Dashboard" in adapter settings
147
+ - Uses integrated Python environment (no external setup required)
148
+ - Dashboard runs on port 6052 by default
149
+ - Set Dashboard IP to `127.0.0.1:6052` for admin integration
150
+
151
+ **Option 2: External Dashboard**
152
+ - Use existing ESPHome installation (Docker, standalone, etc.)
153
+ - Enter the external dashboard's IP:port in adapter settings
154
+ - Example: `192.168.1.100:6052` for Docker container
155
+
156
+ **Option 3: No Dashboard Integration**
157
+ - Skip dashboard configuration entirely
158
+ - Use external ESPHome tools for device configuration
159
+ - Adapter still controls devices normally
160
+
161
+ ![Dashboard IP Configuration](admin/img/ESPhomeDashboardIP.png)
162
+
163
+ > **💡 See FAQ above** for detailed explanations about Dashboard IP configuration and adapter vs. dashboard differences.
47
164
 
48
165
  ### Using HTTPS
49
166
 
@@ -89,6 +206,8 @@ api:
89
206
  password: 'MyPassword'
90
207
  ```
91
208
 
209
+ ## Device Management
210
+
92
211
  ### Add / Modify / Remove ESPHome devices to ioBroker
93
212
  > [!IMPORTANT]
94
213
  > This adapter integrates communication with ESPHome capable devices and
@@ -97,6 +216,8 @@ api:
97
216
  > either by using the integrated Dashboard or an external alternative
98
217
  > (like Docker) before they can be integrated to ioBroker
99
218
 
219
+ > **💡 See FAQ above** for step-by-step guidance on adding devices to the adapter.
220
+
100
221
  The device Tab will show all current known devices; you can either wait for Devices to be autodetect
101
222
  (currently disabled, see #175) or add them manually by providing their IP-Address and credentials
102
223
 
@@ -130,6 +251,41 @@ During this process, states not part anymore of YAML configuration will be autom
130
251
 
131
252
  ![DevicesOK](admin/img/deviceTree.png)
132
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
+
133
289
  ### Example config
134
290
  Example config, for more examples see [The DrozmotiX Docu Page](https://DrozmotiX.github.io) or [ESPHome Documentation](https://esphome.io/index.html)
135
291
 
@@ -198,6 +354,24 @@ If you like my work, please consider a personal donation
198
354
  ### __WORK IN PROGRESS__
199
355
  * (DutchmanNL)
200
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
+
367
+ ### 0.6.3 (2025-09-16)
368
+ * (@DutchmanNL) Fixed an admin error related to `jsonConfig` validation. #287
369
+ * (@DutchmanNL) Various general fixes and dependency updates to improve stability.
370
+ * (@DutchmanNL) Improved responsive design for better usability across devices. #284
371
+ * (@DutchmanNL) Introduced GitHub Actions to automatically verify the ESPHome Dashboard. #290
372
+ * (@DutchmanNL) Added a comprehensive FAQ section to the README to help users with common questions. #286
373
+ * (@DutchmanNL) Updated the `esphome-native-api` library to V1.3.3, which may resolve connection issues. #201
374
+
201
375
  ### 0.6.2 (2025-08-08)
202
376
  * (@SimonFischer04) add support for text device type #141, displays #103
203
377
  * (@SimonFischer04) fix cover device type #156
@@ -214,16 +388,10 @@ If you like my work, please consider a personal donation
214
388
  * (DutchmanNL) Ensures a compatible pillow version is used (10.0.1)
215
389
  * (SimonFischer04) Add pillow python package by default, resolves #188
216
390
 
217
- ### 0.5.0-beta.4 (2023-11-15)
218
- * (DutchmanNL) Refactor memory caching of device data, resolves #189
219
-
220
- ### 0.5.0-beta.1 (2023-11-12)
221
- * (DutchmanNL) Only show error messages once for unreachable devices
222
-
223
391
  ## License
224
392
  MIT License
225
393
 
226
- Copyright (c) 2023-2025 DutchmanNL <rdrozda86@gmail.com>
394
+ Copyright (c) 2023-2026 DutchmanNL <rdrozda86@gmail.com>
227
395
 
228
396
  Permission is hereby granted, free of charge, to any person obtaining a copy
229
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"
42
- }
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"
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,23 +25,38 @@
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.",
41
61
  "reConInterval": "Configuración entre intentos de ioBroker para volver a conectar este dispositivo"
42
- }
62
+ }