tasmota-esp-web-tools 8.2.1 → 8.3.1

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.
@@ -0,0 +1,291 @@
1
+ # Baud Rate Configuration
2
+
3
+ ## Übersicht
4
+
5
+ Die Baud-Rate für das Flashen ist jetzt **konfigurierbar** über das HTML-Attribut `baud-rate`.
6
+
7
+ **Standard**: 115.200 Baud (keine Änderung) - maximale Kompatibilität mit allen Systemen
8
+
9
+ ## HTML-Verwendung
10
+
11
+ ### Standard (115200 - maximale Kompatibilität)
12
+ ```html
13
+ <esp-web-install-button manifest="manifest.json">
14
+ <button slot="activate">Install</button>
15
+ </esp-web-install-button>
16
+ ```
17
+ Keine Baud-Rate-Änderung, funktioniert mit allen Chips.
18
+
19
+ ### Schnelles Flashen (2 Mbps - empfohlen)
20
+ ```html
21
+ <esp-web-install-button
22
+ manifest="manifest.json"
23
+ baud-rate="2000000">
24
+ <button slot="activate">Install</button>
25
+ </esp-web-install-button>
26
+ ```
27
+ ~17x schneller, funktioniert mit modernen USB-Serial-Chips.
28
+
29
+ ### Für ältere Chips (921600)
30
+ ```html
31
+ <esp-web-install-button
32
+ manifest="manifest.json"
33
+ baud-rate="921600">
34
+ <button slot="activate">Install</button>
35
+ </esp-web-install-button>
36
+ ```
37
+ ~8x schneller, kompatibel mit älteren Chips.
38
+
39
+ ## Verfügbare Baud-Raten
40
+
41
+ | Baud Rate | Geschwindigkeit | Flash-Zeit (3 MB) | Empfehlung |
42
+ |-----------|----------------|-------------------|------------|
43
+ | 115200 | ~11 KB/s | ~4,5 Minuten | Nur für Debugging |
44
+ | 230400 | ~22 KB/s | ~2,3 Minuten | Sehr kompatibel |
45
+ | 460800 | ~44 KB/s | ~70 Sekunden | Hohe Kompatibilität |
46
+ | 921600 | ~88 KB/s | ~35 Sekunden | Sicher für ältere Chips |
47
+ | 1500000 | ~143 KB/s | ~21 Sekunden | Moderne Chips |
48
+ | 2000000 | ~200 KB/s | ~15 Sekunden | Empfohlen für Geschwindigkeit |
49
+
50
+ ## Anwendungsfälle
51
+
52
+ ### 1. Standard-Verwendung (maximale Kompatibilität)
53
+ ```html
54
+ <esp-web-install-button manifest="manifest.json">
55
+ <button slot="activate">Install Firmware</button>
56
+ </esp-web-install-button>
57
+ ```
58
+ - ✅ Funktioniert mit allen Chips und USB-Serial-Adaptern
59
+ - ✅ Keine Konfiguration nötig
60
+ - ✅ Maximale Zuverlässigkeit
61
+
62
+ ### 2. Schnelles Flashen (empfohlen für Geschwindigkeit)
63
+ ```html
64
+ <esp-web-install-button
65
+ manifest="manifest.json"
66
+ baud-rate="2000000">
67
+ <button slot="activate">Install Firmware</button>
68
+ </esp-web-install-button>
69
+ ```
70
+ - ✅ ~17x schneller als Standard
71
+ - ✅ Funktioniert mit modernen USB-Serial-Chips
72
+ - ✅ Spart viel Zeit bei großen Firmware-Dateien
73
+
74
+ ### 3. Für ältere USB-Serial-Chips
75
+ ```html
76
+ <esp-web-install-button
77
+ manifest="manifest.json"
78
+ baud-rate="921600">
79
+ <button slot="activate">Install Firmware</button>
80
+ </esp-web-install-button>
81
+ ```
82
+ - ✅ Kompatibel mit älteren CP2102 (nicht CP2102N)
83
+ - ✅ Immer noch 8x schneller als 115200
84
+ - ✅ Sehr zuverlässig
85
+
86
+ ### 4. Gute Balance
87
+ ```html
88
+ <esp-web-install-button
89
+ manifest="manifest.json"
90
+ baud-rate="460800">
91
+ <button slot="activate">Install Firmware</button>
92
+ </esp-web-install-button>
93
+ ```
94
+ - ✅ Funktioniert mit fast allen USB-Serial-Chips
95
+ - ✅ Gute Balance zwischen Geschwindigkeit und Kompatibilität
96
+ - ✅ 4x schneller als 115200
97
+
98
+
99
+
100
+ ## Programmatische Verwendung
101
+
102
+ ### JavaScript
103
+ ```javascript
104
+ const button = document.querySelector('esp-web-install-button');
105
+ button.baudRate = 921600;
106
+ ```
107
+
108
+ ### Dynamische Anpassung
109
+ ```javascript
110
+ // Erkenne USB-Serial-Chip und setze optimale Baud-Rate
111
+ const button = document.querySelector('esp-web-install-button');
112
+
113
+ // Beispiel: Basierend auf User-Auswahl
114
+ document.getElementById('speed-select').addEventListener('change', (e) => {
115
+ button.baudRate = parseInt(e.target.value);
116
+ });
117
+ ```
118
+
119
+ ## USB-Serial-Chip Kompatibilität
120
+
121
+ ### 2 Mbps (2000000) - Empfohlen für Geschwindigkeit
122
+ ✅ **Unterstützt von:**
123
+ - CP2102N (neuere Version)
124
+ - CP2104
125
+ - CH340C/G/E (neuere Versionen)
126
+ - FT232H
127
+ - Native USB (ESP32-C3, ESP32-S3, ESP32-C6)
128
+
129
+ ### 921600 - Sicher für ältere Chips
130
+ ✅ **Unterstützt von:**
131
+ - Alle oben genannten
132
+ - CP2102 (ältere Version)
133
+ - CH340G (ältere Versionen)
134
+ - Die meisten USB-Serial-Chips
135
+
136
+ ### 460800 - Maximale Kompatibilität
137
+ ✅ **Unterstützt von:**
138
+ - Praktisch alle USB-Serial-Chips
139
+ - Auch sehr alte Chips
140
+
141
+ ## Fehlerbehandlung
142
+
143
+ Wenn die Baud-Rate-Änderung fehlschlägt:
144
+ 1. ✅ Fehler wird automatisch abgefangen
145
+ 2. ✅ Warnung wird im Log ausgegeben
146
+ 3. ✅ Flashen läuft mit 115200 Baud weiter
147
+ 4. ✅ Keine Unterbrechung des Vorgangs
148
+
149
+ **Log-Beispiel bei Fehler:**
150
+ ```
151
+ Uploading stub...
152
+ Running stub...
153
+ Stub is now running...
154
+ Could not change baud rate to 2000000: [Fehlergrund]
155
+ Detecting Flash Size
156
+ [Flashen läuft mit 115200 Baud weiter]
157
+ ```
158
+
159
+ ## Empfehlungen
160
+
161
+ ### Für Endbenutzer-Websites (empfohlen: schnell)
162
+ ```html
163
+ <!-- Schnelles Flashen für moderne Hardware -->
164
+ <esp-web-install-button
165
+ manifest="manifest.json"
166
+ baud-rate="2000000">
167
+ <button slot="activate">Install</button>
168
+ </esp-web-install-button>
169
+ ```
170
+
171
+ ### Für maximale Kompatibilität
172
+ ```html
173
+ <!-- Standard: Funktioniert mit allen Chips -->
174
+ <esp-web-install-button manifest="manifest.json">
175
+ <button slot="activate">Install</button>
176
+ </esp-web-install-button>
177
+ ```
178
+
179
+ ### Für Entwickler / Power-User
180
+ ```html
181
+ <!-- Biete Auswahl an -->
182
+ <select id="baud-rate-select">
183
+ <option value="2000000" selected>Fast (2 Mbps)</option>
184
+ <option value="921600">Safe (921600)</option>
185
+ <option value="460800">Compatible (460800)</option>
186
+ <option value="115200">Slow (115200)</option>
187
+ </select>
188
+
189
+ <esp-web-install-button
190
+ id="install-button"
191
+ manifest="manifest.json">
192
+ <button slot="activate">Install</button>
193
+ </esp-web-install-button>
194
+
195
+ <script>
196
+ document.getElementById('baud-rate-select').addEventListener('change', (e) => {
197
+ document.getElementById('install-button').baudRate = parseInt(e.target.value);
198
+ });
199
+ </script>
200
+ ```
201
+
202
+ ### Für Support-Seiten
203
+ ```html
204
+ <!-- Niedrigere Baud-Rate für problematische Fälle -->
205
+ <esp-web-install-button
206
+ manifest="manifest.json"
207
+ baud-rate="460800">
208
+ <button slot="activate">Install (Safe Mode)</button>
209
+ </esp-web-install-button>
210
+ ```
211
+
212
+ ## Real-World Beispiel (Tasmota-Style)
213
+
214
+ ```html
215
+ <!DOCTYPE html>
216
+ <html>
217
+ <head>
218
+ <script type="module" src="https://unpkg.com/esp-web-tools@latest/dist/web/install-button.js?module"></script>
219
+ </head>
220
+ <body>
221
+ <h1>Install Firmware</h1>
222
+
223
+ <!-- Standard: Schnell -->
224
+ <esp-web-install-button manifest="firmware/manifest.json">
225
+ <button slot="activate">Install (Fast)</button>
226
+ </esp-web-install-button>
227
+
228
+ <!-- Für ältere Hardware -->
229
+ <esp-web-install-button
230
+ manifest="firmware/manifest.json"
231
+ baud-rate="921600">
232
+ <button slot="activate">Install (Compatible)</button>
233
+ </esp-web-install-button>
234
+ </body>
235
+ </html>
236
+ ```
237
+
238
+ ## Migration von hart-codiert zu konfigurierbar
239
+
240
+ ### Vorher (hart-codiert):
241
+ ```typescript
242
+ // In flash.ts
243
+ await espStub.setBaudrate(2000000); // Immer 2 Mbps
244
+ ```
245
+
246
+ ### Nachher (konfigurierbar):
247
+ ```typescript
248
+ // In flash.ts
249
+ const targetBaudRate = baudRate !== undefined ? baudRate : 2000000;
250
+ if (targetBaudRate > 115200) {
251
+ await espStub.setBaudrate(targetBaudRate);
252
+ }
253
+ ```
254
+
255
+ ```html
256
+ <!-- Im HTML -->
257
+ <esp-web-install-button
258
+ manifest="manifest.json"
259
+ baud-rate="921600"> <!-- Konfigurierbar! -->
260
+ <button slot="activate">Install</button>
261
+ </esp-web-install-button>
262
+ ```
263
+
264
+ ## Vorteile der Konfigurierbarkeit
265
+
266
+ 1. ✅ **Flexibilität**: Jede Website kann die optimale Baud-Rate wählen
267
+ 2. ✅ **Kompatibilität**: Unterstützung für ältere Hardware möglich
268
+ 3. ✅ **User-Auswahl**: Benutzer können selbst wählen
269
+ 4. ✅ **Debugging**: Niedrigere Raten für Fehlersuche
270
+ 5. ✅ **Abwärtskompatibel**: Standard bleibt 2 Mbps
271
+ 6. ✅ **Keine Breaking Changes**: Bestehender Code funktioniert weiter
272
+
273
+ ## Testing
274
+
275
+ Testen Sie verschiedene Baud-Raten mit Ihrer Hardware:
276
+
277
+ ```html
278
+ <esp-web-install-button manifest="test.json" baud-rate="2000000">
279
+ <button slot="activate">Test 2 Mbps</button>
280
+ </esp-web-install-button>
281
+
282
+ <esp-web-install-button manifest="test.json" baud-rate="921600">
283
+ <button slot="activate">Test 921600</button>
284
+ </esp-web-install-button>
285
+
286
+ <esp-web-install-button manifest="test.json" baud-rate="115200">
287
+ <button slot="activate">Test 115200</button>
288
+ </esp-web-install-button>
289
+ ```
290
+
291
+ Messen Sie die Flash-Zeit und wählen Sie die beste Balance zwischen Geschwindigkeit und Zuverlässigkeit für Ihre Zielgruppe.
@@ -0,0 +1,195 @@
1
+ # Baud Rate Configuration für schnelleres Flashen
2
+
3
+ ## Änderung
4
+
5
+ esp-web-tools unterstützt jetzt die Konfiguration der Baud-Rate über das HTML-Attribut `baud-rate`.
6
+
7
+ **Standard**: 115.200 Baud (keine Änderung - maximale Kompatibilität)
8
+ **Empfohlen für schnelles Flashen**: 2.000.000 Baud (2 Mbps) via `baud-rate="2000000"`
9
+
10
+ ## Implementierung
11
+
12
+ ### Code:
13
+ ```typescript
14
+ const espStub = await esploader.runStub();
15
+
16
+ // Baud-Rate wird nur geändert, wenn explizit angegeben
17
+ if (baudRate !== undefined && baudRate > 115200) {
18
+ try {
19
+ await espStub.setBaudrate(baudRate);
20
+ } catch (err: any) {
21
+ logger.log(`Could not change baud rate to ${baudRate}: ${err.message}`);
22
+ }
23
+ }
24
+ ```
25
+
26
+ ### Standard-Verhalten (ohne baud-rate Attribut):
27
+ **Flash-Geschwindigkeit**: ~11-12 KB/s (115.200 Baud)
28
+
29
+ ### Mit baud-rate="2000000":
30
+ **Flash-Geschwindigkeit**: ~200 KB/s (ca. **17x schneller!**)
31
+
32
+ ## Performance-Verbesserung
33
+
34
+ ### Beispiel: 3 MB Firmware
35
+
36
+ | Baud Rate | Geschwindigkeit | Flash-Zeit |
37
+ |-----------|----------------|------------|
38
+ | 115.200 | ~11 KB/s | ~4,5 Minuten |
39
+ | 2.000.000 | ~200 KB/s | ~15 Sekunden |
40
+
41
+ **Zeitersparnis: ~4 Minuten pro Flash-Vorgang!**
42
+
43
+ ## Kompatibilität
44
+
45
+ ### Unterstützte Chips:
46
+ - ✅ ESP32 (alle Varianten)
47
+ - ✅ ESP32-S2
48
+ - ✅ ESP32-S3
49
+ - ✅ ESP32-C2
50
+ - ✅ ESP32-C3
51
+ - ✅ ESP32-C5
52
+ - ✅ ESP32-C6
53
+ - ✅ ESP32-C61
54
+ - ✅ ESP32-H2
55
+ - ✅ ESP32-P4
56
+ - ❌ ESP8266 (unterstützt keine Baud-Rate-Änderung)
57
+
58
+ ### USB-Serial-Chips:
59
+ Die meisten modernen USB-Serial-Chips unterstützen 2 Mbps:
60
+ - ✅ CP2102N
61
+ - ✅ CP2104
62
+ - ✅ CH340C/G/E
63
+ - ✅ FT232H
64
+ - ✅ Native USB (ESP32-C3, ESP32-S3)
65
+ - ⚠️ Ältere CP2102 (nicht CP2102N) - max. 921.600 Baud
66
+
67
+ ## Fehlerbehandlung
68
+
69
+ Wenn die Baud-Rate-Änderung fehlschlägt:
70
+ - ✅ Fehler wird abgefangen
71
+ - ✅ Warnung wird geloggt
72
+ - ✅ Flashen läuft mit 115.200 Baud weiter
73
+ - ✅ Keine Unterbrechung des Flash-Vorgangs
74
+
75
+ ## Erwartetes Log
76
+
77
+ ### Erfolgreiche Baud-Rate-Änderung:
78
+ ```
79
+ Uploading stub...
80
+ Running stub...
81
+ Stub is now running...
82
+ Attempting to change baud rate to 2000000...
83
+ Changed baud rate to 2000000
84
+ Detecting Flash Size
85
+ Writing data with filesize: 3045696
86
+ ```
87
+
88
+ ### Fallback bei Fehler:
89
+ ```
90
+ Uploading stub...
91
+ Running stub...
92
+ Stub is now running...
93
+ Could not change baud rate: [Fehlergrund]
94
+ Detecting Flash Size
95
+ Writing data with filesize: 3045696
96
+ ```
97
+
98
+ ## Technische Details
99
+
100
+ ### Warum 2 Mbps?
101
+
102
+ 1. **Maximale Kompatibilität**: Die meisten USB-Serial-Chips unterstützen 2 Mbps
103
+ 2. **Stabile Übertragung**: Höhere Raten (z.B. 3 Mbps) sind weniger zuverlässig
104
+ 3. **Optimales Verhältnis**: Beste Balance zwischen Geschwindigkeit und Stabilität
105
+
106
+ ### Verfügbare Baud-Raten:
107
+ ```typescript
108
+ export const baudRates = [
109
+ 115200, // Standard (Stub-Default)
110
+ 128000,
111
+ 153600,
112
+ 230400,
113
+ 460800,
114
+ 921600,
115
+ 1500000,
116
+ 2000000, // Empfohlen für Flashen
117
+ ];
118
+ ```
119
+
120
+ ## HTML-Verwendung
121
+
122
+ ### Standard (115200 - maximale Kompatibilität):
123
+ ```html
124
+ <esp-web-install-button manifest="manifest.json">
125
+ <button slot="activate">Install</button>
126
+ </esp-web-install-button>
127
+ ```
128
+ Keine Baud-Rate-Änderung, funktioniert mit allen Chips.
129
+
130
+ ### Schnelles Flashen (2 Mbps - empfohlen):
131
+ ```html
132
+ <esp-web-install-button
133
+ manifest="manifest.json"
134
+ baud-rate="2000000">
135
+ <button slot="activate">Install</button>
136
+ </esp-web-install-button>
137
+ ```
138
+ ~17x schneller, funktioniert mit modernen USB-Serial-Chips.
139
+
140
+ ### Für ältere USB-Serial-Chips:
141
+ ```html
142
+ <esp-web-install-button
143
+ manifest="manifest.json"
144
+ baud-rate="921600">
145
+ <button slot="activate">Install</button>
146
+ </esp-web-install-button>
147
+ ```
148
+ ~8x schneller, kompatibel mit älteren Chips wie CP2102.
149
+
150
+ ### Verfügbare Baud-Raten:
151
+ - Kein Attribut - Standard (115200, keine Änderung)
152
+ - `230400` - 2x schneller
153
+ - `460800` - 4x schneller
154
+ - `921600` - 8x schneller (sicher für ältere Chips)
155
+ - `1500000` - 13x schneller
156
+ - `2000000` - 17x schneller (empfohlen für Geschwindigkeit)
157
+
158
+ ### Programmatische Verwendung:
159
+ ```javascript
160
+ const button = document.querySelector('esp-web-install-button');
161
+ button.baudRate = 921600;
162
+ ```
163
+
164
+ ## Testing
165
+
166
+ ### Getestet mit:
167
+ - [ ] ESP32
168
+ - [ ] ESP32-S2
169
+ - [ ] ESP32-S3
170
+ - [ ] ESP32-C2
171
+ - [ ] ESP32-C3
172
+ - [ ] ESP32-C5
173
+ - [ ] ESP32-C6
174
+ - [ ] ESP32-C61
175
+ - [ ] ESP32-H2
176
+ - [ ] ESP32-P4
177
+
178
+ ### Erwartetes Ergebnis:
179
+ - Flash-Zeit sollte deutlich reduziert sein
180
+ - Keine Fehler während des Flashens
181
+ - Erfolgreiche Firmware-Installation
182
+
183
+ ## Vorteile
184
+
185
+ 1. **Schnelleres Flashen**: ~17x schneller als vorher
186
+ 2. **Bessere User Experience**: Kürzere Wartezeiten
187
+ 3. **Produktivität**: Mehr Flash-Zyklen in kürzerer Zeit
188
+ 4. **Robust**: Automatischer Fallback bei Problemen
189
+ 5. **Transparent**: Keine Änderungen am Manifest nötig
190
+
191
+ ## Zusammenfassung
192
+
193
+ Diese Änderung verbessert die Flash-Geschwindigkeit erheblich, ohne die Kompatibilität oder Zuverlässigkeit zu beeinträchtigen. Die automatische Fehlerbehandlung stellt sicher, dass das Flashen auch bei älteren USB-Serial-Chips funktioniert.
194
+
195
+ **Empfehlung**: Diese Änderung sollte in die nächste Version von esp-web-tools aufgenommen werden.