iobroker.bmw 4.0.5 → 4.1.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.
- package/README.md +35 -6
- package/admin/i18n/de.json +1 -0
- package/admin/i18n/en.json +1 -0
- package/admin/i18n/es.json +1 -0
- package/admin/i18n/fr.json +1 -0
- package/admin/i18n/it.json +1 -0
- package/admin/i18n/nl.json +1 -0
- package/admin/i18n/pl.json +1 -0
- package/admin/i18n/pt.json +1 -0
- package/admin/i18n/ru.json +1 -0
- package/admin/i18n/uk.json +1 -0
- package/admin/i18n/zh-cn.json +1 -0
- package/admin/jsonConfig.json +41 -221
- package/io-package.json +35 -40
- package/lib/tools.js +1 -0
- package/main.js +769 -155
- package/package.json +3 -2
- package/telematic.json +3236 -0
package/README.md
CHANGED
|
@@ -38,13 +38,15 @@ This adapter integrates BMW vehicles into ioBroker using the new BMW CarData API
|
|
|
38
38
|

|
|
39
39
|
|
|
40
40
|
3. Click on **"CarData Client erstellen"** (Create CarData Client) button
|
|
41
|
-
4.
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
4. Copy the client_id
|
|
42
|
+
5. Wait 30 seconds
|
|
43
|
+
6. Click on CarData API
|
|
44
|
+
7. Wait 30 seconds
|
|
45
|
+
8. Click CarData Streaming
|
|
44
46
|
|
|
45
47
|

|
|
46
48
|
|
|
47
|
-
# **CRITICAL**: Click one service and wait
|
|
49
|
+
# **CRITICAL**: Click one service and wait 30 seconds if you see an error message, then click again. Don't press on "Gerät Authentifizieren/Devict authentication" Enter the client_id in iobroker settings.
|
|
48
50
|
|
|
49
51
|
### 2. CarData Streaming Configuration
|
|
50
52
|
|
|
@@ -61,7 +63,8 @@ After creating your Client ID, configure streaming:
|
|
|
61
63
|
4. Click **"Datenauswahl ändern"** (Change Data Selection) button
|
|
62
64
|
5. **Select ALL categories** (Vehicle Status, Charging, Trip Data, etc.)
|
|
63
65
|
6. **Manually check ALL 244 individual data points**
|
|
64
|
-
7.
|
|
66
|
+
7. Or enter this in Google Developer Console `document.querySelectorAll('label.chakra-checkbox:not([data-checked])').forEach(l => l.click());`
|
|
67
|
+
8. Save your configuration by clicking **"Stream löschen"** if needed to reset, then reconfigure
|
|
65
68
|
|
|
66
69
|
**Without selecting all data points, MQTT streaming will not provide complete data!**
|
|
67
70
|
|
|
@@ -136,7 +139,29 @@ The adapter receives real-time updates via MQTT streaming when:
|
|
|
136
139
|
|
|
137
140
|
## Remote Commands
|
|
138
141
|
|
|
139
|
-
|
|
142
|
+
**Available Remote Controls:**
|
|
143
|
+
|
|
144
|
+
The BMW CarData API is read-only, so this adapter does not provide vehicle command functionality. For remote control capabilities, use:
|
|
145
|
+
|
|
146
|
+
**Official BMW Solutions:**
|
|
147
|
+
|
|
148
|
+
- **MyBMW Mobile App** - Full remote control functionality
|
|
149
|
+
- **BMW ConnectedDrive Portal** - Web-based vehicle management
|
|
150
|
+
- **BMW Alexa Skill** - Voice control integration with Amazon Alexa for commands like:
|
|
151
|
+
- "Alexa, ask BMW to lock my car"
|
|
152
|
+
- "Alexa, ask BMW to start climate control"
|
|
153
|
+
- "Alexa, ask BMW to flash my lights"
|
|
154
|
+
|
|
155
|
+
**Remote Controls Available in This Adapter:**
|
|
156
|
+
|
|
157
|
+
- `fetchViaAPI` - Fetch latest telematic data via container API
|
|
158
|
+
- `basicData` - Refresh vehicle basic information (model, brand, series)
|
|
159
|
+
- `chargingHistory` - Fetch charging sessions from last 30 days
|
|
160
|
+
- `image` - Retrieve current vehicle image
|
|
161
|
+
- `locationBasedChargingSettings` - Get location-based charging preferences
|
|
162
|
+
- `smartMaintenanceTyreDiagnosis` - Fetch tyre diagnosis data
|
|
163
|
+
|
|
164
|
+
_Note: These are data retrieval commands only - no vehicle control commands are supported by the BMW CarData API._
|
|
140
165
|
|
|
141
166
|
## Troubleshooting
|
|
142
167
|
|
|
@@ -189,6 +214,10 @@ This adapter is available at: [https://github.com/TA2k/ioBroker.bmw](https://git
|
|
|
189
214
|
|
|
190
215
|
## Changelog
|
|
191
216
|
|
|
217
|
+
### 4.1.1 (2025-10-03)
|
|
218
|
+
|
|
219
|
+
- Add API fetching via Container and move other apis to manually fetching
|
|
220
|
+
|
|
192
221
|
### 4.0.5 (2025-10-01)
|
|
193
222
|
|
|
194
223
|
- **BREAKING:** Complete migration to BMW CarData API with OAuth2 Device Flow authentication
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -161,30 +161,30 @@
|
|
|
161
161
|
"interval": {
|
|
162
162
|
"type": "number",
|
|
163
163
|
"label": {
|
|
164
|
-
"en": "Update interval for
|
|
165
|
-
"de": "Aktualisierungsintervall für
|
|
166
|
-
"ru": "Интервал обновления для
|
|
167
|
-
"pt": "Intervalo de atualização para dados
|
|
168
|
-
"nl": "Update-interval voor
|
|
169
|
-
"fr": "Intervalle de mise à jour pour les données
|
|
170
|
-
"it": "Intervallo di aggiornamento per dati
|
|
171
|
-
"es": "Intervalo de actualización para datos
|
|
172
|
-
"pl": "Interwał aktualizacji dla danych
|
|
173
|
-
"zh-cn": "
|
|
164
|
+
"en": "Update interval for telematic data (in minutes)",
|
|
165
|
+
"de": "Aktualisierungsintervall für Telematikdaten (in Minuten)",
|
|
166
|
+
"ru": "Интервал обновления для телематических данных (в минутах)",
|
|
167
|
+
"pt": "Intervalo de atualização para dados telemáticos (em minutos)",
|
|
168
|
+
"nl": "Update-interval voor telematicagegevens (in minuten)",
|
|
169
|
+
"fr": "Intervalle de mise à jour pour les données télématiques (en minutes)",
|
|
170
|
+
"it": "Intervallo di aggiornamento per dati telematici (in minuti)",
|
|
171
|
+
"es": "Intervalo de actualización para datos telemáticos (en minutos)",
|
|
172
|
+
"pl": "Interwał aktualizacji dla danych telematycznych (w minutach)",
|
|
173
|
+
"zh-cn": "远程信息处理数据更新间隔(分钟)"
|
|
174
174
|
},
|
|
175
175
|
"help": {
|
|
176
|
-
"en": "
|
|
177
|
-
"de": "
|
|
178
|
-
"ru": "Интервал
|
|
179
|
-
"pt": "Intervalo de
|
|
180
|
-
"nl": "
|
|
181
|
-
"fr": "Intervalle de
|
|
182
|
-
"it": "Intervallo di
|
|
183
|
-
"es": "Intervalo de
|
|
184
|
-
"pl": "Interwał
|
|
185
|
-
"zh-cn": "
|
|
176
|
+
"en": "Automatic telematic data fetching interval. Set to 0 to disable automatic updates. Minimum 10 minutes due to quota limits (50 calls per 24h). Other API endpoints can be triggered manually via bmw.0.VIN.remote.",
|
|
177
|
+
"de": "Automatisches Abrufintervall für Telematikdaten. Auf 0 setzen um automatische Updates zu deaktivieren. Minimum 10 Minuten aufgrund Quota-Limits (50 Aufrufe pro 24h). Andere API-Endpunkte können manuell über bmw.0.VIN.remote. ausgelöst werden.",
|
|
178
|
+
"ru": "Интервал автоматического получения телематических данных. Установите 0 для отключения автоматических обновлений. Минимум 10 минут из-за лимитов квот (50 вызовов за 24ч). Другие конечные точки API можно запускать вручную через bmw.0.VIN.remote.",
|
|
179
|
+
"pt": "Intervalo de busca automática de dados telemáticos. Defina como 0 para desabilitar atualizações automáticas. Mínimo 10 minutos devido aos limites de quota (50 chamadas por 24h). Outros endpoints da API podem ser acionados manualmente via bmw.0.VIN.remote.",
|
|
180
|
+
"nl": "Automatisch ophaalinterval voor telematicagegevens. Stel in op 0 om automatische updates uit te schakelen. Minimum 10 minuten vanwege quota limieten (50 oproepen per 24u). Andere API endpoints kunnen handmatig worden geactiveerd via bmw.0.VIN.remote.",
|
|
181
|
+
"fr": "Intervalle de récupération automatique des données télématiques. Définir à 0 pour désactiver les mises à jour automatiques. Minimum 10 minutes à cause des limites de quota (50 appels par 24h). D'autres endpoints API peuvent être déclenchés manuellement via bmw.0.VIN.remote.",
|
|
182
|
+
"it": "Intervallo di recupero automatico dei dati telematici. Impostare a 0 per disabilitare gli aggiornamenti automatici. Minimo 10 minuti a causa dei limiti di quota (50 chiamate per 24h). Altri endpoint API possono essere attivati manualmente tramite bmw.0.VIN.remote.",
|
|
183
|
+
"es": "Intervalo de obtención automática de datos telemáticos. Establecer en 0 para deshabilitar actualizaciones automáticas. Mínimo 10 minutos debido a límites de cuota (50 llamadas por 24h). Otros endpoints de API pueden activarse manualmente via bmw.0.VIN.remote.",
|
|
184
|
+
"pl": "Interwał automatycznego pobierania danych telematycznych. Ustaw na 0 aby wyłączyć automatyczne aktualizacje. Minimum 10 minut z powodu limitów kwot (50 wywołań na 24h). Inne punkty końcowe API można wyzwalać ręcznie za pomocą bmw.0.VIN.remote.",
|
|
185
|
+
"zh-cn": "自动获取远程信息处理数据的间隔。设置为0以禁用自动更新。由于配额限制(24小时50次调用),最少10分钟。其他API端点可以通过bmw.0.VIN.remote.手动触发。"
|
|
186
186
|
},
|
|
187
|
-
"min":
|
|
187
|
+
"min": 0,
|
|
188
188
|
"max": 1440,
|
|
189
189
|
"default": 60,
|
|
190
190
|
"newLine": true,
|
|
@@ -223,32 +223,32 @@
|
|
|
223
223
|
"_api_endpoints": {
|
|
224
224
|
"type": "header",
|
|
225
225
|
"text": {
|
|
226
|
-
"en": "
|
|
227
|
-
"de": "
|
|
228
|
-
"ru": "
|
|
229
|
-
"pt": "
|
|
230
|
-
"nl": "
|
|
231
|
-
"fr": "
|
|
232
|
-
"it": "
|
|
233
|
-
"es": "
|
|
234
|
-
"pl": "
|
|
235
|
-
"zh-cn": "
|
|
226
|
+
"en": "Remote Control Information",
|
|
227
|
+
"de": "Fernbedienung Information",
|
|
228
|
+
"ru": "Информация о дистанционном управлении",
|
|
229
|
+
"pt": "Informações de Controle Remoto",
|
|
230
|
+
"nl": "Afstandsbediening Informatie",
|
|
231
|
+
"fr": "Informations de Contrôle à Distance",
|
|
232
|
+
"it": "Informazioni Controllo Remoto",
|
|
233
|
+
"es": "Información de Control Remoto",
|
|
234
|
+
"pl": "Informacje o Zdalnym Sterowaniu",
|
|
235
|
+
"zh-cn": "远程控制信息"
|
|
236
236
|
},
|
|
237
237
|
"size": 4
|
|
238
238
|
},
|
|
239
239
|
"_api_note": {
|
|
240
240
|
"type": "staticText",
|
|
241
241
|
"text": {
|
|
242
|
-
"en": "
|
|
243
|
-
"de": "
|
|
244
|
-
"ru": "
|
|
245
|
-
"pt": "
|
|
246
|
-
"nl": "
|
|
247
|
-
"fr": "
|
|
248
|
-
"it": "
|
|
249
|
-
"es": "
|
|
250
|
-
"pl": "
|
|
251
|
-
"zh-cn": "
|
|
242
|
+
"en": "Telematic data is fetched automatically based on the interval above. Other API endpoints (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) can be triggered manually via bmw.0.VIN.remote. in each vehicle. BasicData is fetched once after login.",
|
|
243
|
+
"de": "Telematikdaten werden automatisch basierend auf dem obigen Intervall abgerufen. Andere API-Endpunkte (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) können manuell über bmw.0.VIN.remote. in jedem Fahrzeug ausgelöst werden. BasicData wird einmal nach dem Login abgerufen.",
|
|
244
|
+
"ru": "Телематические данные получаются автоматически на основе интервала выше. Другие конечные точки API (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) можно запускать вручную через bmw.0.VIN.remote. в каждом транспортном средстве. BasicData получается один раз после входа в систему.",
|
|
245
|
+
"pt": "Dados telemáticos são buscados automaticamente com base no intervalo acima. Outros endpoints da API (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) podem ser acionados manualmente via bmw.0.VIN.remote. em cada veículo. BasicData é buscado uma vez após o login.",
|
|
246
|
+
"nl": "Telematicagegevens worden automatisch opgehaald op basis van het bovenstaande interval. Andere API endpoints (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) kunnen handmatig worden geactiveerd via bmw.0.VIN.remote. in elk voertuig. BasicData wordt eenmaal opgehaald na login.",
|
|
247
|
+
"fr": "Les données télématiques sont récupérées automatiquement selon l'intervalle ci-dessus. D'autres endpoints API (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) peuvent être déclenchés manuellement via bmw.0.VIN.remote. dans chaque véhicule. BasicData est récupéré une fois après la connexion.",
|
|
248
|
+
"it": "I dati telematici vengono recuperati automaticamente in base all'intervallo sopra. Altri endpoint API (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) possono essere attivati manualmente tramite bmw.0.VIN.remote. in ogni veicolo. BasicData viene recuperato una volta dopo il login.",
|
|
249
|
+
"es": "Los datos telemáticos se obtienen automáticamente basándose en el intervalo anterior. Otros endpoints de API (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) pueden activarse manualmente via bmw.0.VIN.remote. en cada vehículo. BasicData se obtiene una vez después del login.",
|
|
250
|
+
"pl": "Dane telematyczne są pobierane automatycznie na podstawie powyższego interwału. Inne punkty końcowe API (basicData, chargingHistory, image, locationBasedChargingSettings, smartMaintenanceTyreDiagnosis) można wyzwalać ręcznie za pomocą bmw.0.VIN.remote. w każdym pojeździe. BasicData jest pobierane raz po zalogowaniu.",
|
|
251
|
+
"zh-cn": "远程信息处理数据根据上述间隔自动获取。其他API端点(basicData、chargingHistory、image、locationBasedChargingSettings、smartMaintenanceTyreDiagnosis)可以通过bmw.0.VIN.remote.在每个车辆中手动触发。BasicData在登录后获取一次。"
|
|
252
252
|
},
|
|
253
253
|
"style": {
|
|
254
254
|
"fontSize": "smaller",
|
|
@@ -256,186 +256,6 @@
|
|
|
256
256
|
"color": "#666"
|
|
257
257
|
},
|
|
258
258
|
"newLine": true
|
|
259
|
-
},
|
|
260
|
-
"fetchBasicData": {
|
|
261
|
-
"type": "checkbox",
|
|
262
|
-
"label": {
|
|
263
|
-
"en": "Fetch Basic Data",
|
|
264
|
-
"de": "Grunddaten abrufen",
|
|
265
|
-
"ru": "Получать базовые данные",
|
|
266
|
-
"pt": "Buscar dados básicos",
|
|
267
|
-
"nl": "Basisgegevens ophalen",
|
|
268
|
-
"fr": "Récupérer les données de base",
|
|
269
|
-
"it": "Recupera dati di base",
|
|
270
|
-
"es": "Obtener datos básicos",
|
|
271
|
-
"pl": "Pobierz dane podstawowe",
|
|
272
|
-
"zh-cn": "获取基本数据"
|
|
273
|
-
},
|
|
274
|
-
"help": {
|
|
275
|
-
"en": "Vehicle information, model, brand, series, VIN details",
|
|
276
|
-
"de": "Fahrzeuginformationen, Modell, Marke, Serie, VIN-Details",
|
|
277
|
-
"ru": "Информация о транспортном средстве, модель, бренд, серия, детали VIN",
|
|
278
|
-
"pt": "Informações do veículo, modelo, marca, série, detalhes VIN",
|
|
279
|
-
"nl": "Voertuiginformatie, model, merk, serie, VIN details",
|
|
280
|
-
"fr": "Informations sur le véhicule, modèle, marque, série, détails VIN",
|
|
281
|
-
"it": "Informazioni veicolo, modello, marca, serie, dettagli VIN",
|
|
282
|
-
"es": "Información del vehículo, modelo, marca, serie, detalles VIN",
|
|
283
|
-
"pl": "Informacje o pojeździe, model, marka, seria, szczegóły VIN",
|
|
284
|
-
"zh-cn": "车辆信息、型号、品牌、系列、VIN详细信息"
|
|
285
|
-
},
|
|
286
|
-
"default": true,
|
|
287
|
-
"newLine": true,
|
|
288
|
-
"sm": 4
|
|
289
|
-
},
|
|
290
|
-
"fetchChargingHistory": {
|
|
291
|
-
"type": "checkbox",
|
|
292
|
-
"label": {
|
|
293
|
-
"en": "Fetch Charging History",
|
|
294
|
-
"de": "Ladehistorie abrufen",
|
|
295
|
-
"ru": "Получать историю зарядки",
|
|
296
|
-
"pt": "Buscar histórico de carregamento",
|
|
297
|
-
"nl": "Laadgeschiedenis ophalen",
|
|
298
|
-
"fr": "Récupérer l'historique de charge",
|
|
299
|
-
"it": "Recupera cronologia ricarica",
|
|
300
|
-
"es": "Obtener historial de carga",
|
|
301
|
-
"pl": "Pobierz historię ładowania",
|
|
302
|
-
"zh-cn": "获取充电历史"
|
|
303
|
-
},
|
|
304
|
-
"help": {
|
|
305
|
-
"en": "Charging sessions and history data",
|
|
306
|
-
"de": "Ladesitzungen und Verlaufsdaten",
|
|
307
|
-
"ru": "Сессии зарядки и исторические данные",
|
|
308
|
-
"pt": "Sessões de carregamento e dados históricos",
|
|
309
|
-
"nl": "Laadsessies en historische gegevens",
|
|
310
|
-
"fr": "Sessions de charge et données historiques",
|
|
311
|
-
"it": "Sessioni di ricarica e dati storici",
|
|
312
|
-
"es": "Sesiones de carga y datos históricos",
|
|
313
|
-
"pl": "Sesje ładowania i dane historyczne",
|
|
314
|
-
"zh-cn": "充电会话和历史数据"
|
|
315
|
-
},
|
|
316
|
-
"default": true,
|
|
317
|
-
"newLine": false,
|
|
318
|
-
"sm": 4
|
|
319
|
-
},
|
|
320
|
-
"fetchImage": {
|
|
321
|
-
"type": "checkbox",
|
|
322
|
-
"label": {
|
|
323
|
-
"en": "Fetch Vehicle Image",
|
|
324
|
-
"de": "Fahrzeugbild abrufen",
|
|
325
|
-
"ru": "Получать изображение автомобиля",
|
|
326
|
-
"pt": "Buscar imagem do veículo",
|
|
327
|
-
"nl": "Voertuigafbeelding ophalen",
|
|
328
|
-
"fr": "Récupérer l'image du véhicule",
|
|
329
|
-
"it": "Recupera immagine veicolo",
|
|
330
|
-
"es": "Obtener imagen del vehículo",
|
|
331
|
-
"pl": "Pobierz obraz pojazdu",
|
|
332
|
-
"zh-cn": "获取车辆图像"
|
|
333
|
-
},
|
|
334
|
-
"help": {
|
|
335
|
-
"en": "Vehicle image for display purposes",
|
|
336
|
-
"de": "Fahrzeugbild für Anzeigezwecke",
|
|
337
|
-
"ru": "Изображение автомобиля для отображения",
|
|
338
|
-
"pt": "Imagem do veículo para fins de exibição",
|
|
339
|
-
"nl": "Voertuigafbeelding voor weergavedoeleinden",
|
|
340
|
-
"fr": "Image du véhicule à des fins d'affichage",
|
|
341
|
-
"it": "Immagine del veicolo per scopi di visualizzazione",
|
|
342
|
-
"es": "Imagen del vehículo para fines de visualización",
|
|
343
|
-
"pl": "Obraz pojazdu do celów wyświetlania",
|
|
344
|
-
"zh-cn": "用于显示目的的车辆图像"
|
|
345
|
-
},
|
|
346
|
-
"default": false,
|
|
347
|
-
"newLine": false,
|
|
348
|
-
"sm": 4
|
|
349
|
-
},
|
|
350
|
-
"fetchLocationBasedChargingSettings": {
|
|
351
|
-
"type": "checkbox",
|
|
352
|
-
"label": {
|
|
353
|
-
"en": "Fetch Location Based Charging Settings",
|
|
354
|
-
"de": "Standortbasierte Ladeeinstellungen abrufen",
|
|
355
|
-
"ru": "Получать настройки зарядки на основе местоположения",
|
|
356
|
-
"pt": "Buscar configurações de carregamento baseadas em localização",
|
|
357
|
-
"nl": "Locatiegebaseerde laadinstellingen ophalen",
|
|
358
|
-
"fr": "Récupérer les paramètres de charge basés sur l'emplacement",
|
|
359
|
-
"it": "Recupera impostazioni ricarica basate sulla posizione",
|
|
360
|
-
"es": "Obtener configuraciones de carga basadas en ubicación",
|
|
361
|
-
"pl": "Pobierz ustawienia ładowania oparte na lokalizacji",
|
|
362
|
-
"zh-cn": "获取基于位置的充电设置"
|
|
363
|
-
},
|
|
364
|
-
"help": {
|
|
365
|
-
"en": "Location-specific charging preferences and settings",
|
|
366
|
-
"de": "Standortspezifische Ladepräferenzen und -einstellungen",
|
|
367
|
-
"ru": "Предпочтения и настройки зарядки для конкретных местоположений",
|
|
368
|
-
"pt": "Preferências e configurações de carregamento específicas do local",
|
|
369
|
-
"nl": "Locatiespecifieke laadvoorkeuren en -instellingen",
|
|
370
|
-
"fr": "Préférences et paramètres de charge spécifiques à l'emplacement",
|
|
371
|
-
"it": "Preferenze e impostazioni di ricarica specifiche per la posizione",
|
|
372
|
-
"es": "Preferencias y configuraciones de carga específicas de ubicación",
|
|
373
|
-
"pl": "Preferencje i ustawienia ładowania specyficzne dla lokalizacji",
|
|
374
|
-
"zh-cn": "特定位置的充电偏好和设置"
|
|
375
|
-
},
|
|
376
|
-
"default": false,
|
|
377
|
-
"newLine": true,
|
|
378
|
-
"sm": 4
|
|
379
|
-
},
|
|
380
|
-
"fetchSmartMaintenanceTyreDiagnosis": {
|
|
381
|
-
"type": "checkbox",
|
|
382
|
-
"label": {
|
|
383
|
-
"en": "Fetch Smart Maintenance Tyre Diagnosis",
|
|
384
|
-
"de": "Smart Maintenance Reifendiagnose abrufen",
|
|
385
|
-
"ru": "Получать диагностику шин Smart Maintenance",
|
|
386
|
-
"pt": "Buscar diagnóstico de pneus Smart Maintenance",
|
|
387
|
-
"nl": "Smart Maintenance bandendiagnose ophalen",
|
|
388
|
-
"fr": "Récupérer le diagnostic des pneus Smart Maintenance",
|
|
389
|
-
"it": "Recupera diagnosi pneumatici Smart Maintenance",
|
|
390
|
-
"es": "Obtener diagnóstico de neumáticos Smart Maintenance",
|
|
391
|
-
"pl": "Pobierz diagnozę opon Smart Maintenance",
|
|
392
|
-
"zh-cn": "获取智能维护轮胎诊断"
|
|
393
|
-
},
|
|
394
|
-
"help": {
|
|
395
|
-
"en": "Smart maintenance system tyre condition and diagnosis data",
|
|
396
|
-
"de": "Smart Maintenance System Reifenzustand und Diagnosedaten",
|
|
397
|
-
"ru": "Данные состояния и диагностики шин системы Smart Maintenance",
|
|
398
|
-
"pt": "Dados de condição e diagnóstico de pneus do sistema Smart Maintenance",
|
|
399
|
-
"nl": "Smart Maintenance systeem bandentoestand en diagnosegegevens",
|
|
400
|
-
"fr": "Données de condition et de diagnostic des pneus du système Smart Maintenance",
|
|
401
|
-
"it": "Dati di condizione e diagnosi pneumatici del sistema Smart Maintenance",
|
|
402
|
-
"es": "Datos de condición y diagnóstico de neumáticos del sistema Smart Maintenance",
|
|
403
|
-
"pl": "Dane stanu i diagnozy opon systemu Smart Maintenance",
|
|
404
|
-
"zh-cn": "智能维护系统轮胎状况和诊断数据"
|
|
405
|
-
},
|
|
406
|
-
"default": false,
|
|
407
|
-
"newLine": false,
|
|
408
|
-
"sm": 4
|
|
409
|
-
},
|
|
410
|
-
"fetchTelematicData": {
|
|
411
|
-
"type": "checkbox",
|
|
412
|
-
"label": {
|
|
413
|
-
"en": "Fetch Telematic Data",
|
|
414
|
-
"de": "Telematikdaten abrufen",
|
|
415
|
-
"ru": "Получать телематические данные",
|
|
416
|
-
"pt": "Buscar dados telemáticos",
|
|
417
|
-
"nl": "Telematicagegevens ophalen",
|
|
418
|
-
"fr": "Récupérer les données télématiques",
|
|
419
|
-
"it": "Recupera dati telematici",
|
|
420
|
-
"es": "Obtener datos telemáticos",
|
|
421
|
-
"pl": "Pobierz dane telematyczne",
|
|
422
|
-
"zh-cn": "获取远程信息处理数据"
|
|
423
|
-
},
|
|
424
|
-
"help": {
|
|
425
|
-
"en": "Vehicle telematic data including trip information and driving behavior",
|
|
426
|
-
"de": "Fahrzeugtelematikdaten einschließlich Reiseinformationen und Fahrverhalten",
|
|
427
|
-
"ru": "Телематические данные автомобиля, включая информацию о поездках и поведении при вождении",
|
|
428
|
-
"pt": "Dados telemáticos do veículo incluindo informações de viagem e comportamento de direção",
|
|
429
|
-
"nl": "Voertuigtelematicagegevens inclusief reisinformatie en rijgedrag",
|
|
430
|
-
"fr": "Données télématiques du véhicule incluant les informations de voyage et le comportement de conduite",
|
|
431
|
-
"it": "Dati telematici del veicolo incluse informazioni di viaggio e comportamento di guida",
|
|
432
|
-
"es": "Datos telemáticos del vehículo incluyendo información de viaje y comportamiento de conducción",
|
|
433
|
-
"pl": "Dane telematyczne pojazdu obejmujące informacje o podróży i zachowanie podczas jazdy",
|
|
434
|
-
"zh-cn": "车辆远程信息处理数据,包括行程信息和驾驶行为"
|
|
435
|
-
},
|
|
436
|
-
"default": false,
|
|
437
|
-
"newLine": false,
|
|
438
|
-
"sm": 4
|
|
439
259
|
}
|
|
440
260
|
}
|
|
441
261
|
}
|
package/io-package.json
CHANGED
|
@@ -1,24 +1,46 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "bmw",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.1.1",
|
|
5
5
|
"news": {
|
|
6
|
+
"4.1.1": {
|
|
7
|
+
"en": "Add API fetching via Container and move other apis to manually fetching",
|
|
8
|
+
"de": "Fügen Sie API-Fetching über Container hinzu und verschieben Sie andere Apis, um manuelles Abholen",
|
|
9
|
+
"ru": "Добавьте извлечение API через контейнер и переместите другие apis для ручного извлечения",
|
|
10
|
+
"pt": "Adicionar a obtenção da API via Container e mover outros apis para obter manualmente",
|
|
11
|
+
"nl": "API-ophalen toevoegen via Container en andere apis verplaatsen naar handmatig ophalen",
|
|
12
|
+
"fr": "Ajouter l'API récupérer via Container et déplacer d'autres apis pour récupérer manuellement",
|
|
13
|
+
"it": "Aggiungere API fetching tramite Container e spostare altri apis per recuperare manualmente",
|
|
14
|
+
"es": "Añadir API buscar a través de Container y mover otros apis para buscar manualmente",
|
|
15
|
+
"pl": "Dodaj API pobieranie przez kontener i przenieś inne apis do ręcznego pobierania",
|
|
16
|
+
"uk": "Додати API fetching через контейнер і перемістити інші apis для вручну fetching",
|
|
17
|
+
"zh-cn": "通过容器添加 API 获取并移动其他 API 手动获取"
|
|
18
|
+
},
|
|
6
19
|
"4.0.5": {
|
|
7
20
|
"en": "BREAKING: Complete migration to BMW CarData API\nBREAKING: OAuth2 device flow authentication (no more username/password)\nBREAKING: Remote controls removed (CarData API is read-only)\nNEW: Real-time MQTT streaming for instant updates\nNEW: 50 API calls per 24h quota management\nNEW: Comprehensive data collection from all CarData endpoints",
|
|
8
|
-
"de": "BREAKING: Vollständige Migration zur BMW CarData API\nBREAKING: OAuth2 Device Flow Authentifizierung (keine Benutzername/Passwort mehr)\nBREAKING: Fernbedienungen entfernt (CarData API ist nur lesend)\nNEU: Echtzeit MQTT Streaming für sofortige Updates\nNEU: 50 API Aufrufe pro 24h Quota Management\nNEU: Umfassende Datensammlung von allen CarData Endpunkten"
|
|
21
|
+
"de": "BREAKING: Vollständige Migration zur BMW CarData API\nBREAKING: OAuth2 Device Flow Authentifizierung (keine Benutzername/Passwort mehr)\nBREAKING: Fernbedienungen entfernt (CarData API ist nur lesend)\nNEU: Echtzeit MQTT Streaming für sofortige Updates\nNEU: 50 API Aufrufe pro 24h Quota Management\nNEU: Umfassende Datensammlung von allen CarData Endpunkten",
|
|
22
|
+
"ru": "BREAKING: Полная миграция на BMW CarData API\nBREAKING: Аутентификация через OAuth2 device flow (без имени пользователя/пароля)\nBREAKING: Удалено дистанционное управление (CarData API только для чтения)\nNEW: Потоковая передача MQTT в реальном времени для мгновенных обновлений\nNEW: Управление квотой 50 API вызовов за 24 часа\nNEW: Полный сбор данных со всех конечных точек CarData",
|
|
23
|
+
"pt": "BREAKING: Migração completa para a BMW CarData API\nBREAKING: Autenticação OAuth2 device flow (sem mais utilizador/senha)\nBREAKING: Controles remotos removidos (CarData API é apenas leitura)\nNEW: Streaming MQTT em tempo real para atualizações instantâneas\nNEW: Gestão de quota de 50 chamadas API por 24h\nNEW: Coleta abrangente de dados de todos os endpoints CarData",
|
|
24
|
+
"nl": "BREAKING: Volledige migratie naar de BMW CarData API\nBREAKING: OAuth2 device flow authenticatie (geen gebruikersnaam/wachtwoord meer)\nBREAKING: Afstandsbedieningen verwijderd (CarData API is alleen-lezen)\nNEW: Real-time MQTT streaming voor directe updates\nNEW: Quota van 50 API-aanroepen per 24u\nNEW: Uitgebreide gegevensverzameling van alle CarData endpoints",
|
|
25
|
+
"fr": "BREAKING : Migration complète vers l’API BMW CarData\nBREAKING : Authentification par OAuth2 device flow (plus de nom d’utilisateur/mot de passe)\nBREAKING : Commandes à distance supprimées (CarData API est en lecture seule)\nNEW : Streaming MQTT en temps réel pour des mises à jour instantanées\nNEW : Gestion du quota de 50 appels API par 24h\nNEW : Collecte complète des données de tous les endpoints CarData",
|
|
26
|
+
"it": "BREAKING: Migrazione completa alla BMW CarData API\nBREAKING: Autenticazione OAuth2 device flow (niente più nome utente/password)\nBREAKING: Controlli remoti rimossi (CarData API è solo in lettura)\nNEW: Streaming MQTT in tempo reale per aggiornamenti istantanei\nNEW: Gestione quota di 50 chiamate API per 24h\nNEW: Raccolta completa dei dati da tutti gli endpoint CarData",
|
|
27
|
+
"es": "BREAKING: Migración completa a la BMW CarData API\nBREAKING: Autenticación OAuth2 device flow (sin más usuario/contraseña)\nBREAKING: Controles remotos eliminados (CarData API es solo lectura)\nNEW: Streaming MQTT en tiempo real para actualizaciones instantáneas\nNEW: Gestión de cuota de 50 llamadas API por 24h\nNEW: Recolección completa de datos de todos los endpoints CarData",
|
|
28
|
+
"pl": "BREAKING: Pełna migracja do BMW CarData API\nBREAKING: Uwierzytelnianie OAuth2 device flow (bez nazwy użytkownika/hasła)\nBREAKING: Usunięto zdalne sterowanie (CarData API tylko do odczytu)\nNEW: Strumieniowanie MQTT w czasie rzeczywistym dla natychmiastowych aktualizacji\nNEW: Zarządzanie limitem 50 wywołań API na 24h\nNEW: Kompleksowe zbieranie danych ze wszystkich endpointów CarData",
|
|
29
|
+
"uk": "BREAKING: Повна міграція на BMW CarData API\nBREAKING: Автентифікація через OAuth2 device flow (без імені користувача/пароля)\nBREAKING: Видалено дистанційне керування (CarData API лише для читання)\nNEW: Потокове MQTT у реальному часі для миттєвих оновлень\nNEW: Керування квотою 50 викликів API на 24 години\nNEW: Повний збір даних з усіх кінцевих точок CarData",
|
|
30
|
+
"zh-cn": "BREAKING:完全迁移到 BMW CarData API\nBREAKING:OAuth2 device flow 身份验证(不再需要用户名/密码)\nBREAKING:远程控制已移除(CarData API 仅支持读取)\nNEW:实时 MQTT 流式传输,立即更新\nNEW:24 小时内 50 次 API 调用配额管理\nNEW:从所有 CarData 端点全面收集数据"
|
|
9
31
|
},
|
|
10
32
|
"3.0.1": {
|
|
11
33
|
"en": "change to recommended stable admin 7.6.17 (#159)\nmigrate to iobroker/eslint-config (#146)\nfix form-data vulnerability\ncode cleanups\nupdate axios\nbump adapter-core\nfix issues detected by repository checker (#170)\nbump dependencies",
|
|
12
|
-
"de": "
|
|
13
|
-
"ru": "
|
|
14
|
-
"pt": "
|
|
15
|
-
"nl": "
|
|
16
|
-
"fr": "
|
|
17
|
-
"it": "
|
|
18
|
-
"es": "
|
|
19
|
-
"pl": "
|
|
20
|
-
"uk": "
|
|
21
|
-
"zh-cn": "
|
|
34
|
+
"de": "Wechsel auf empfohlenen stabilen Admin 7.6.17 (#159)\nMigration zu iobroker/eslint-config (#146)\nBehebung der Sicherheitslücke in form-data\nCode-Bereinigung\nUpdate von axios\nUpdate von adapter-core\nBehebung von Problemen, die durch den Repository Checker erkannt wurden (#170)\nAktualisierung von Abhängigkeiten",
|
|
35
|
+
"ru": "Переход на рекомендованную стабильную версию admin 7.6.17 (#159)\nМиграция на iobroker/eslint-config (#146)\nИсправление уязвимости form-data\nОчистка кода\nОбновление axios\nОбновление adapter-core\nИсправление проблем, обнаруженных проверкой репозитория (#170)\nОбновление зависимостей",
|
|
36
|
+
"pt": "Alteração para o administrador estável recomendado 7.6.17 (#159)\nMigração para iobroker/eslint-config (#146)\nCorreção da vulnerabilidade form-data\nLimpeza de código\nAtualização do axios\nAtualização do adapter-core\nCorreção de problemas detectados pelo verificador de repositório (#170)\nAtualização de dependências",
|
|
37
|
+
"nl": "Wijziging naar aanbevolen stabiele admin 7.6.17 (#159)\nMigratie naar iobroker/eslint-config (#146)\nKwetsbaarheid in form-data opgelost\nCode opgeschoond\nAxios bijgewerkt\nAdapter-core bijgewerkt\nProblemen opgelost die door de repository checker zijn gevonden (#170)\nAfhankelijkheden bijgewerkt",
|
|
38
|
+
"fr": "Passage à l’administration stable recommandée 7.6.17 (#159)\nMigration vers iobroker/eslint-config (#146)\nCorrection de la vulnérabilité form-data\nNettoyage du code\nMise à jour d’axios\nMise à jour d’adapter-core\nCorrection des problèmes détectés par le contrôleur de dépôt (#170)\nMise à jour des dépendances",
|
|
39
|
+
"it": "Passaggio all’admin stabile raccomandato 7.6.17 (#159)\nMigrazione a iobroker/eslint-config (#146)\nCorrezione della vulnerabilità form-data\nPulizia del codice\nAggiornamento di axios\nAggiornamento di adapter-core\nRisoluzione dei problemi rilevati dal repository checker (#170)\nAggiornamento delle dipendenze",
|
|
40
|
+
"es": "Cambio al administrador estable recomendado 7.6.17 (#159)\nMigración a iobroker/eslint-config (#146)\nCorrección de la vulnerabilidad form-data\nLimpieza de código\nActualización de axios\nActualización de adapter-core\nCorrección de problemas detectados por el comprobador de repositorios (#170)\nActualización de dependencias",
|
|
41
|
+
"pl": "Zmiana na zalecaną stabilną wersję admin 7.6.17 (#159)\nMigracja do iobroker/eslint-config (#146)\nNaprawa podatności w form-data\nCzyszczenie kodu\nAktualizacja axios\nAktualizacja adapter-core\nNaprawa problemów wykrytych przez sprawdzacz repozytorium (#170)\nAktualizacja zależności",
|
|
42
|
+
"uk": "Перехід на рекомендовану стабільну версію admin 7.6.17 (#159)\nМіграція на iobroker/eslint-config (#146)\nВиправлення вразливості form-data\nОчищення коду\nОновлення axios\nОновлення adapter-core\nВиправлення проблем, виявлених перевіркою репозиторію (#170)\nОновлення залежностей",
|
|
43
|
+
"zh-cn": "切换到推荐的稳定版 admin 7.6.17 (#159)\n迁移到 iobroker/eslint-config (#146)\n修复 form-data 漏洞\n代码清理\n更新 axios\n更新 adapter-core\n修复仓库检查器检测到的问题 (#170)\n更新依赖项"
|
|
22
44
|
},
|
|
23
45
|
"3.0.0": {
|
|
24
46
|
"en": "BREAKING: Dropped support for Node.js 18 (#88)\nBREAKING: Dropped support for js-controller 5 (#111)\nBREAKING: change to admin 7.4.10 as recommended by ioBroker (#111)\nencrypt and protect second user password - has to be reentered (#111)\nbump dependencies",
|
|
@@ -71,32 +93,6 @@
|
|
|
71
93
|
"pl": "naprawić zdalne sterowanie\ndodaj Mitbenutzer Login do zdalnego sterowania",
|
|
72
94
|
"uk": "виправити дистанційні керування\nдодати Mitbenutzer Увійти для дистанційного керування",
|
|
73
95
|
"zh-cn": "修复远程控制\n添加远程控制的 Mitbenutzer 登录"
|
|
74
|
-
},
|
|
75
|
-
"2.9.0": {
|
|
76
|
-
"en": "added new remotes as switch and updated values\nadded retry logic for remotes",
|
|
77
|
-
"de": "neue remotes als switch und mit aktualisierten Werte hinzugefügt\nzusätzliche retry-logik für remotes hinzufgefügt",
|
|
78
|
-
"ru": "добавлены новые пульты в качестве переключателя и обновленных значений\nдобавленная ретри-логика для пультов",
|
|
79
|
-
"pt": "adicionado novos controles remotos como interruptor e valores atualizados\nadicionado lógica de retração para remotos",
|
|
80
|
-
"nl": "nieuwe remotes toegevoegd als switch en bijgewerkte waarden\ntoegevoegd retry logica voor remotes",
|
|
81
|
-
"fr": "ajout de nouvelles télécommandes comme valeurs de commutation et de mise à jour\nretry logique ajoutée pour les télécommandes",
|
|
82
|
-
"it": "aggiunto nuovi remoti come switch e valori aggiornati\naggiunto retry logica per i remoti",
|
|
83
|
-
"es": "nuevos mandos como conmutación y valores actualizados\nlógica de retry añadido para los remotos",
|
|
84
|
-
"pl": "dodano nowe piloty jako przełącznik i zaktualizowane wartości\ndodano logikę retry dla pilotów",
|
|
85
|
-
"uk": "додано нові пульти як перемикач і оновлені значення\nдодана логіка для пультів",
|
|
86
|
-
"zh-cn": "作为切换和更新值添加新远程\n为远程添加重试逻辑"
|
|
87
|
-
},
|
|
88
|
-
"2.8.4": {
|
|
89
|
-
"en": "improved charging sessios parsing\nadded remote to fetch charging session from a specific month\nadd raw JSON of charging session for export",
|
|
90
|
-
"de": "verbesserte charging sessios Import\nRemote hinzugefügt, um charging sessios aus einem bestimmten Monat abzurufen\nRohes JSON der charging sessios für den Export hinzugefügt",
|
|
91
|
-
"ru": "улучшенный сеанс зарядки\nдобавить удаленное к сеансу зарядки с определенного месяца\nдобавить сырой JSON зарядной сессии для экспорта",
|
|
92
|
-
"pt": "análise de sessão de carregamento melhorada\nadicionar remoto para buscar sessão de carregamento de um mês específico\nadicionar JSON cru da sessão de carregamento para exportação",
|
|
93
|
-
"nl": "verbeterde laadsessie ontleden\nremote toevoegen aan opladen van een bepaalde maand\nrauw JSON toevoegen van laadsessie voor export",
|
|
94
|
-
"fr": "amélioration de l'analyse des sessions de chargement\najouter distant pour récupérer la session de chargement à partir d'un mois spécifique\najouter JSON brut de la session de tarification pour l'exportation",
|
|
95
|
-
"it": "migliore sessione di ricarica\naggiungere la sessione di ricarica remota a fetch da un mese specifico\naggiungere grezzo JSON di sessione di ricarica per l'esportazione",
|
|
96
|
-
"es": "mejora de la sesión de carga\nañadir remoto para buscar sesión de carga de un mes específico\nañadir JSON crudo de la sesión de carga para la exportación",
|
|
97
|
-
"pl": "ulepszona sesja pobierania opłat\ndodaj zdalny do pobierania sesji ładowania z określonego miesiąca\ndodać surowy JSON sesji pobierania opłat za eksport",
|
|
98
|
-
"uk": "поліпшення зарядки сеансу\nдодати дистанційне сеанс зарядки fetch з конкретного місяця\nдодати сиру JSON на зарядку для експорту",
|
|
99
|
-
"zh-cn": "改进充值会话解析\n添加远程以获取特定月的充电会话\n添加用于导出的充电会话的原始 JSON"
|
|
100
96
|
}
|
|
101
97
|
},
|
|
102
98
|
"titleLang": {
|
|
@@ -160,8 +156,7 @@
|
|
|
160
156
|
{
|
|
161
157
|
"admin": ">=7.6.17"
|
|
162
158
|
}
|
|
163
|
-
]
|
|
164
|
-
"installedFrom": "TA2k/ioBroker.bmw"
|
|
159
|
+
]
|
|
165
160
|
},
|
|
166
161
|
"encryptedNative": [],
|
|
167
162
|
"protectedNative": [],
|
package/lib/tools.js
CHANGED