iobroker.teslafi 0.1.5 → 0.2.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 CHANGED
@@ -45,6 +45,19 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
45
45
 
46
46
  ## Changelog
47
47
 
48
+ ### 0.2.1 (2024-11-08)
49
+
50
+ - (hombach) change 'time_to_full_charge' type to number (#38)
51
+ - (hombach) total rework of vehicle data parser
52
+ - (hombach) set speed to 0 if null in API data (#39)
53
+
54
+ ### 0.2.0 (2024-11-07)
55
+
56
+ - (hombach) implement raw data state (#26)
57
+ - (hombach) implement charger_phases (#28)
58
+ - (hombach) implement driver_temp_setting (#31)
59
+ - (hombach) implement seat and steeringwheel heater states (#30)
60
+
48
61
  ### 0.1.5 (2024-11-06)
49
62
 
50
63
  - (hombach) harmonize project tools
@@ -6,119 +6,74 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TeslaFiAPICaller = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const projectUtils_1 = require("./projectUtils");
9
- function resolveAfterXSeconds(x) {
10
- return new Promise((resolve) => {
11
- setTimeout(() => {
12
- resolve(x);
13
- }, x * 1000);
14
- });
15
- }
16
- class TeslaFiAPICaller extends projectUtils_1.ProjectUtils {
17
- queryUrl = "";
18
- constructor(adapter) {
19
- super(adapter);
20
- this.queryUrl = "https://www.teslafi.com/feed.php?token=";
21
- }
22
- /****************************************************************************************
23
- * ReadTeslaFi **************************************************************************/
24
- async ReadTeslaFi() {
25
- await axios_1.default
26
- .get(`${this.queryUrl}${this.adapter.config.TeslaFiAPIToken}&command=`, { transformResponse: (r) => r })
27
- .then((response) => {
28
- if (!response.data) {
29
- throw new Error(`Empty answer from TeslaFi.`);
30
- }
31
- // this.adapter.log.debug(`TeslaFI data read - response data: ${response.data}`);
32
- const result = JSON.parse(response.data);
33
- // Check if the response indicates an unauthorized access {"response":{"reason":"","result":"unauthorized"}}
34
- if (result.response?.result === "unauthorized") {
35
- this.adapter.log.warn(`TeslaFI data read - unauthorized access detected - please verify your API Token`);
36
- return false;
37
- }
38
- else {
39
- // Iterate over each key-value pair in the result object and log non-null values
40
- for (const [key, value] of Object.entries(result)) {
41
- if (value !== null) {
42
- switch (key) {
43
- case "Date": //"2024-10-25 20:43:33"
44
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Last connection to your Tesla`);
45
- break;
46
- case "display_name": //"Red Elephant"
47
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Name of your Tesla`);
48
- break;
49
- case "vin": //"LRWYGCEKXNC44xxxx"
50
- this.checkAndSetValue(`vehicle-data.${key}`, value, `VIN of your Tesla`);
51
- break;
52
- case "state": //"online"
53
- this.checkAndSetValue(`vehicle-data.${key}`, value, `State of your Tesla`);
54
- break;
55
- case "time_to_full_charge": //"0.0"
56
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Time to full charge`);
57
- break;
58
- case "charge_current_request": //"16"
59
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `requested charge current by your car`, "A");
60
- break;
61
- case "charger_power": //"0"
62
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `current charge power`, "kW");
63
- break;
64
- case "charge_limit_soc": //"80"
65
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `charge limit defined in your Tesla`, "%");
66
- break;
67
- case "usable_battery_level": //"75"
68
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `usable battery SoC at this temperature conditions`, "%");
69
- break;
70
- case "battery_level": //"76"
71
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `battery SoC of your Tesla`, "%");
72
- break;
73
- case "est_battery_range": //"208.25"
74
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `estimated battery range`, "mi");
75
- this.checkAndSetValueNumber(`vehicle-data.${key}_km`, Math.round(value * 160.934) / 100, `estimated battery range`, "km");
76
- break;
77
- case "inside_temp": //"15.8"
78
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `inside temperature in your Tesla`, "°C");
79
- break;
80
- case "longitude": //"9.899749"
81
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Current position longitude of your Tesla`);
82
- break;
83
- case "latitude": //"49.873095"
84
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Current position latitude of your Tesla`);
85
- break;
86
- case "speed": //null
87
- this.checkAndSetValueNumber(`vehicle-data.${key}`, Math.round(value * 100) / 100, `current speed of your Tesla`, "km/h");
88
- break;
89
- case "outside_temp": //"14.0"
90
- this.checkAndSetValueNumber(`vehicle-data.${key}`, parseFloat(value), `outside temperature near your Tesla`, "°C");
91
- break;
92
- case "odometer": // "16434.079511"
93
- this.checkAndSetValueNumber(`vehicle-data.${key}`, Math.round(value * 100) / 100, `current odometer level of your Tesla`, "mi");
94
- this.checkAndSetValueNumber(`vehicle-data.${key}_km`, Math.round(value * 160.934) / 100, `current odometer level of your Tesla`, "km");
95
- break;
96
- case "car_version": //"2024.32.7 3f0d0fff88"
97
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Current software version`);
98
- break;
99
- case "carState": //"Idling"
100
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Sleep-state of your Tesla`);
101
- break;
102
- case "location": //"Home"
103
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Location of your Tesla`);
104
- break;
105
- case "newVersion": //" "
106
- this.checkAndSetValue(`vehicle-data.${key}`, value, `Next software version if available`);
107
- break;
108
- default:
109
- // this.adapter.log.debug(`Unhandled field with data - ${key}: ${value}`);
110
- break;
111
- }
112
- }
113
- }
114
- }
115
- })
116
- .catch((error) => {
117
- this.HandleConnectionError(error, `TeslaFi API call`, `FI0`);
118
- return false;
119
- });
120
- //#region *** DEMO DATA ***
121
- /*
9
+ // structure of vehicle data
10
+ const stVD = {
11
+ Date: { key: `Date`, desc: `Last connection to your Tesla`, value: null },
12
+ // calendar_enabled: null, remote_start_enabled: "1"
13
+ display_name: { key: `display_name`, desc: `Name of your Tesla`, value: null },
14
+ // color: "1 FanOnly ", fast_charger_brand: "", notifications_enabled: null
15
+ vin: { key: `vin`, desc: `VIN of your Tesla`, value: null },
16
+ // conn_charge_cable: "IEC", id: "NULL", charge_port_cold_weather_mode: "0", id_s: ""
17
+ state: { key: `state`, desc: `State of your Tesla`, value: null },
18
+ // option_codes: null, user_charge_enable_request: null
19
+ time_to_full_charge: { key: `time_to_full_charge`, desc: `Time to full charge`, value: null },
20
+ charge_current_request: { key: `charge_current_request`, desc: `requested charge current by your car`, value: null },
21
+ // charge_enable_request: "1", charge_to_max_range: ""
22
+ charger_phases: { key: `charger_phases`, desc: `current number of charge phases`, value: null },
23
+ // battery_heater_on: "0", managed_charging_start_time: "", battery_range: "237.17"
24
+ charger_power: { key: `charger_power`, desc: `current charge power`, value: null },
25
+ charge_limit_soc: { key: `charge_limit_soc`, desc: `charge limit defined in your Tesla`, value: null },
26
+ // charger_pilot_current: "16", charge_port_latch: "Engaged", battery_current: "", charger_actual_current: "0", scheduled_charging_pending: "0", fast_charger_type: ""
27
+ usable_battery_level: { key: `usable_battery_level`, desc: `usable battery SoC at this temperature conditions`, value: null },
28
+ // motorized_charge_port: null, charge_limit_soc_std: null, not_enough_power_to_heat: null
29
+ battery_level: { key: `battery_level`, desc: `battery SoC of your Tesla`, value: null },
30
+ // charge_energy_added: "0.0", charge_port_door_open: "1", max_range_charge_counter: null, charge_limit_soc_max: null, ideal_battery_range: "237.17"
31
+ // managed_charging_active: ""
32
+ charging_state: { key: `charging_state`, desc: `charging state of the car`, value: null },
33
+ // fast_charger_present: "0", trip_charging: "1", managed_charging_user_canceled: null, scheduled_charging_start_time: null
34
+ est_battery_range: { key: `est_battery_range`, desc: `estimated battery range`, value: null },
35
+ // charge_rate: "0.0", charger_voltage: "1", charge_current_request_max: "16", eu_vehicle: "1", charge_miles_added_ideal: "0.0", charge_limit_soc_min: null, charge_miles_added_rated: "0.0"
36
+ inside_temp: { key: `inside_temp`, desc: `inside temperature in your Tesla`, value: null },
37
+ longitude: { key: `longitude`, desc: `Current position longitude of your Tesla`, value: null },
38
+ // heading: "", gps_as_of: null
39
+ latitude: { key: `latitude`, desc: `Current position latitude of your Tesla`, value: null },
40
+ speed: { key: `speed`, desc: `current driving speed`, value: null },
41
+ // shift_state: null
42
+ seat_heater_rear_right: { key: `seat_heater_rear_right`, desc: `level of the right second row seat heater`, value: null },
43
+ seat_heater_rear_left_back: { key: `seat_heater_rear_left_back`, desc: `level of the left third row seat heater`, value: null },
44
+ seat_heater_left: { key: `seat_heater_left`, desc: `level of the left first row seat heater`, value: null },
45
+ // passenger_temp_setting: "20.5", is_auto_conditioning_on: "0"
46
+ driver_temp_setting: { key: `driver_temp_setting`, desc: `inside temperature setting of your Tesla`, value: null },
47
+ outside_temp: { key: `outside_temp`, desc: `outside temperature near your Tesla`, value: null },
48
+ seat_heater_rear_center: { key: `seat_heater_rear_center`, desc: `level of the second row center seat heater`, value: null },
49
+ // is_rear_defroster_on: "0"
50
+ seat_heater_rear_right_back: { key: `seat_heater_rear_right_back`, desc: `level of the right third row seat heater`, value: null },
51
+ // smart_preconditioning: ""
52
+ seat_heater_right: { key: `seat_heater_right`, desc: `level of the right seat heater`, value: null },
53
+ // fan_status: "0", is_front_defroster_on: "0"
54
+ seat_heater_rear_left: { key: `seat_heater_rear_left`, desc: `level of the left second row seat heater`, value: null },
55
+ // gui_charge_rate_units: null, gui_24_hour_time: null, gui_temperature_units: null, gui_range_display: null, gui_distance_units: null, sun_roof_installed: null,
56
+ // rhd: "0", remote_start_supported: null, homelink_nearby: "0", parsed_calendar_supported: null, spoiler_type: null, ft: "0"
57
+ odometer: { key: `odometer`, desc: `current odometer level`, value: null },
58
+ // remote_start: null, pr: "0", climate_keeper_mode: "off", roof_color: null, perf_config: null, valet_mode: "0", calendar_supported: null, pf: "0", sun_roof_percent_open: null,
59
+ // third_row_seats: null
60
+ // seat_type: null, api_version: null, rear_seat_heaters: null, rt: "0", exterior_color: null, df: "0", autopark_state: "NULL", sun_roof_state: null, notifications_supported: null, vehicle_name: null,
61
+ // dr: "0", autopark_style: null, car_type: null, wheel_type: "Apollo19MetallicShad", locked: "1", center_display_state: null, last_autopark_error: null
62
+ car_version: { key: `car_version`, desc: `Current software version`, value: null },
63
+ // defrost_mode: "0", autopark_state_v2: null, is_preconditioning: "0", inside_tempF: "60", driver_temp_settingF: "", outside_tempF: "57", battery_heater: "0", Notes: "", odometerF: "", idleNumber: 14780,
64
+ // sleepNumber: 0, driveNumber: 0, chargeNumber: 0, polling: "", idleTime: 1, maxRange: "314.14", left_temp_direction: null, max_avail_temp: null, is_climate_on: "0", right_temp_direction: null,
65
+ // min_avail_temp: null, is_user_present: "0", in_service: "0", valet_pin_needed: null, charge_port_led_color: null, timestamp: null, power: "0", side_mirror_heaters: "0", wiper_blade_heater: "0",
66
+ steering_wheel_heater: { key: `steering_wheel_heater`, desc: `level of the steering wheel heater`, value: null },
67
+ // elevation: "", sentry_mode: "0", fd_window: "0", fp_window: "0", rd_window: "0", rp_window: "0", measure: "metric", temperature: "C", currency: "€"
68
+ carState: { key: `carState`, desc: `Sleep-state of your Tesla`, value: null },
69
+ location: { key: `location`, desc: `Location of your Tesla`, value: null },
70
+ // rangeDisplay: "rated",
71
+ newVersion: { key: `newVersion`, desc: `Next software version if available`, value: null },
72
+ // newVersionStatus: "", allow_cabin_overheat_protection: "1", cabin_overheat_protection: "FanOnly", cabin_overheat_protection_actively_cooling: "", cop_activation_temperature: null, pressure: null,
73
+ // tpms_front_left: "41.7", tpms_front_right: "41.0", tpms_rear_left: "41.7", tpms_rear_right: "41.0"
74
+ };
75
+ //#region *** DEMO DATA ***
76
+ /*
122
77
  DemoERGTeslaFiSLEEP = {
123
78
  data_id: 2307428,
124
79
  Date: "2024-10-25 12:20:33",
@@ -471,10 +426,198 @@ class TeslaFiAPICaller extends projectUtils_1.ProjectUtils {
471
426
  tpms_rear_right: "41.0",
472
427
  };
473
428
  */
474
- //#endregion
475
- await resolveAfterXSeconds(2);
476
- return true;
477
- } // END ReadTeslaFi
429
+ //#endregion
430
+ /*
431
+ function resolveAfterXSeconds(x: number) {
432
+ return new Promise((resolve) => {
433
+ setTimeout(() => {
434
+ resolve(x);
435
+ }, x * 1000);
436
+ });
437
+ }
438
+ */
439
+ class TeslaFiAPICaller extends projectUtils_1.ProjectUtils {
440
+ queryUrl = "";
441
+ constructor(adapter) {
442
+ super(adapter);
443
+ this.queryUrl = "https://www.teslafi.com/feed.php?token=";
444
+ }
445
+ /****************************************************************************************
446
+ * ReadTeslaFi **************************************************************************/
447
+ async ReadTeslaFi() {
448
+ try {
449
+ const response = await axios_1.default.get(`${this.queryUrl}${this.adapter.config.TeslaFiAPIToken}&command=`, {
450
+ transformResponse: (r) => r,
451
+ });
452
+ if (!response.data) {
453
+ throw new Error(`Empty answer from TeslaFi.`);
454
+ }
455
+ const result = JSON.parse(response.data);
456
+ // Unauthorized check
457
+ if (result.response?.result === "unauthorized") {
458
+ this.adapter.log.warn(`TeslaFI data read - unauthorized access detected - please verify your API Token`);
459
+ return false;
460
+ }
461
+ // save raw JSON
462
+ this.checkAndSetValue(`vehicle-data.rawJSON`, response.data, `JSON raw data from TeslaFi`);
463
+ // fill values into predefined structur
464
+ for (const [key, value] of Object.entries(result)) {
465
+ if (key in stVD) {
466
+ stVD[key].value = value; // Wert direkt in die Struktur einfügen
467
+ }
468
+ }
469
+ // process structure
470
+ if (stVD.Date.value !== null) {
471
+ //"2024-10-25 20:43:33"
472
+ this.checkAndSetValue(`vehicle-data.${stVD.Date.key}`, stVD.Date.value, stVD.Date.desc);
473
+ }
474
+ if (stVD.display_name.value !== null) {
475
+ //"Red Elephant"
476
+ this.checkAndSetValue(`vehicle-data.${stVD.display_name.key}`, stVD.display_name.value, stVD.display_name.desc);
477
+ }
478
+ if (stVD.vin.value !== null) {
479
+ //"LRWYGCEKXNC44xxxx"
480
+ this.checkAndSetValue(`vehicle-data.${stVD.vin.key}`, stVD.vin.value, stVD.vin.desc);
481
+ }
482
+ if (stVD.state.value !== null) {
483
+ //"online"
484
+ this.checkAndSetValue(`vehicle-data.${stVD.state.key}`, stVD.state.value, stVD.state.desc);
485
+ }
486
+ if (stVD.time_to_full_charge.value !== null) {
487
+ //"0.0"
488
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.time_to_full_charge.key}`, parseFloat(stVD.time_to_full_charge.value), stVD.time_to_full_charge.desc);
489
+ }
490
+ else {
491
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.time_to_full_charge.key}`, 0, stVD.time_to_full_charge.desc);
492
+ }
493
+ if (stVD.charge_current_request.value !== null) {
494
+ //"16"
495
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charge_current_request.key}`, parseFloat(stVD.charge_current_request.value), stVD.charge_current_request.desc, "A");
496
+ }
497
+ else {
498
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charge_current_request.key}`, 0, stVD.charge_current_request.desc, "A");
499
+ }
500
+ if (stVD.charger_phases.value !== null) {
501
+ //"3"
502
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charger_phases.key}`, parseFloat(stVD.charger_phases.value), stVD.charger_phases.desc);
503
+ }
504
+ else {
505
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charger_phases.key}`, 0, stVD.charger_phases.desc);
506
+ }
507
+ if (stVD.charger_power.value !== null) {
508
+ //"0"
509
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charger_power.key}`, parseFloat(stVD.charger_power.value), stVD.charger_power.desc, "kW");
510
+ }
511
+ else {
512
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charger_power.key}`, 0, stVD.charger_power.desc, "kW");
513
+ }
514
+ if (stVD.charge_limit_soc.value !== null) {
515
+ //"80"
516
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.charge_limit_soc.key}`, parseFloat(stVD.charge_limit_soc.value), stVD.charge_limit_soc.desc, "%");
517
+ }
518
+ if (stVD.usable_battery_level.value !== null) {
519
+ //"75"
520
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.usable_battery_level.key}`, parseFloat(stVD.usable_battery_level.value), stVD.usable_battery_level.desc, "%");
521
+ }
522
+ if (stVD.battery_level.value !== null) {
523
+ //"76"
524
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.battery_level.key}`, parseFloat(stVD.battery_level.value), stVD.battery_level.desc, "%");
525
+ }
526
+ if (stVD.est_battery_range.value !== null) {
527
+ //"208.25"
528
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.est_battery_range.key}`, parseFloat(stVD.est_battery_range.value), stVD.est_battery_range.desc, "mi");
529
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.est_battery_range.key}_km`, Math.round(parseFloat(stVD.est_battery_range.value) * 160.934) / 100, stVD.est_battery_range.desc, "km");
530
+ }
531
+ if (stVD.inside_temp.value !== null) {
532
+ //"15.8"
533
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.inside_temp.key}`, parseFloat(stVD.inside_temp.value), stVD.inside_temp.desc, "°C");
534
+ }
535
+ if (stVD.longitude.value !== null) {
536
+ //"9.899749"
537
+ this.checkAndSetValue(`vehicle-data.${stVD.longitude.key}`, stVD.longitude.value, stVD.longitude.desc);
538
+ }
539
+ if (stVD.latitude.value !== null) {
540
+ //"49.873095"
541
+ this.checkAndSetValue(`vehicle-data.${stVD.latitude.key}`, stVD.latitude.value, stVD.latitude.desc);
542
+ }
543
+ if (stVD.speed.value !== null) {
544
+ //"28"
545
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.speed.key}`, Math.round(parseFloat(stVD.speed.value) * 100) / 100, stVD.speed.desc, "km/h");
546
+ }
547
+ else {
548
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.speed.key}`, 0, stVD.speed.desc, "km/h");
549
+ }
550
+ if (stVD.seat_heater_left.value !== null) {
551
+ //"2"
552
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_left.key}`, parseFloat(stVD.seat_heater_left.value), stVD.seat_heater_left.desc);
553
+ }
554
+ if (stVD.seat_heater_right.value !== null) {
555
+ //"0"
556
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_right.key}`, parseFloat(stVD.seat_heater_right.value), stVD.seat_heater_right.desc);
557
+ }
558
+ if (stVD.seat_heater_rear_left.value !== null) {
559
+ //"2"
560
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_rear_left.key}`, parseFloat(stVD.seat_heater_rear_left.value), stVD.seat_heater_rear_left.desc);
561
+ }
562
+ if (stVD.seat_heater_rear_center.value !== null) {
563
+ //"0"
564
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_rear_center.key}`, parseFloat(stVD.seat_heater_rear_center.value), stVD.seat_heater_rear_center.desc);
565
+ }
566
+ if (stVD.seat_heater_rear_right.value !== null) {
567
+ //"3"
568
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_rear_right.key}`, parseFloat(stVD.seat_heater_rear_right.value), stVD.seat_heater_rear_right.desc);
569
+ }
570
+ if (stVD.seat_heater_rear_left_back.value !== null) {
571
+ //"3"
572
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_rear_left_back.key}`, parseFloat(stVD.seat_heater_rear_left_back.value), stVD.seat_heater_rear_left_back.desc);
573
+ }
574
+ if (stVD.seat_heater_rear_right_back.value !== null) {
575
+ //"2"
576
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.seat_heater_rear_right_back.key}`, parseFloat(stVD.seat_heater_rear_right_back.value), stVD.seat_heater_rear_right_back.desc);
577
+ }
578
+ if (stVD.steering_wheel_heater.value !== null) {
579
+ //"0"
580
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.steering_wheel_heater.key}`, parseFloat(stVD.steering_wheel_heater.value), stVD.steering_wheel_heater.desc);
581
+ }
582
+ if (stVD.driver_temp_setting.value !== null) {
583
+ //"20.5"
584
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.driver_temp_setting.key}`, parseFloat(stVD.driver_temp_setting.value), stVD.driver_temp_setting.desc, "°C");
585
+ }
586
+ if (stVD.outside_temp.value !== null) {
587
+ //"14.0"
588
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.outside_temp.key}`, parseFloat(stVD.outside_temp.value), stVD.outside_temp.desc, "°C");
589
+ }
590
+ if (stVD.odometer.value !== null) {
591
+ //"16434.079511"
592
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.odometer.key}`, Math.round(parseFloat(stVD.odometer.value) * 100) / 100, stVD.odometer.desc, "mi");
593
+ this.checkAndSetValueNumber(`vehicle-data.${stVD.odometer.key}_km`, Math.round(parseFloat(stVD.odometer.value) * 160.934) / 100, stVD.odometer.desc, "km");
594
+ }
595
+ if (stVD.car_version.value !== null) {
596
+ //"2024.32.7 3f0d0fff88"
597
+ this.checkAndSetValue(`vehicle-data.${stVD.car_version.key}`, stVD.car_version.value, stVD.car_version.desc);
598
+ }
599
+ if (stVD.carState.value !== null) {
600
+ //"Idling"
601
+ this.checkAndSetValue(`vehicle-data.${stVD.carState.key}`, stVD.carState.value, stVD.carState.desc);
602
+ }
603
+ if (stVD.location.value !== null) {
604
+ //"Home"
605
+ this.checkAndSetValue(`vehicle-data.${stVD.location.key}`, stVD.location.value, stVD.location.desc);
606
+ }
607
+ if (stVD.newVersion.value !== null) {
608
+ //" "
609
+ this.checkAndSetValue(`vehicle-data.${stVD.newVersion.key}`, stVD.newVersion.value, stVD.newVersion.desc);
610
+ }
611
+ else {
612
+ this.checkAndSetValue(`vehicle-data.${stVD.newVersion.key}`, ``, stVD.newVersion.desc);
613
+ }
614
+ return true;
615
+ }
616
+ catch (error) {
617
+ this.adapter.log.error(`Error reading TeslaFi data: ${error.message}`);
618
+ return false;
619
+ }
620
+ }
478
621
  /*****************************************************************************************/
479
622
  async HandleConnectionError(stError, sOccasion, sErrorOccInt) {
480
623
  if (stError.response) {
@@ -1 +1 @@
1
- {"version":3,"file":"teslafiAPICaller.js","sourceRoot":"","sources":["../../src/lib/teslafiAPICaller.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0C;AAC1C,iDAA8C;AAE9C,SAAS,oBAAoB,CAAC,CAAS;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,UAAU,CAAC,GAAG,EAAE;YACf,OAAO,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAa,gBAAiB,SAAQ,2BAAY;IACjD,QAAQ,GAAG,EAAE,CAAC;IACd,YAAY,OAA8B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,yCAAyC,CAAC;IAC3D,CAAC;IAED;8FAC0F;IAC1F,KAAK,CAAC,WAAW;QAChB,MAAM,eAAK;aACT,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,WAAW,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;aACvG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC/C,CAAC;YACD,iFAAiF;YACjF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEzC,6GAA6G;YAC7G,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;gBACzG,OAAO,KAAK,CAAC;YACd,CAAC;iBAAM,CAAC;gBACP,gFAAgF;gBAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACpB,QAAQ,GAAG,EAAE,CAAC;4BACb,KAAK,MAAM,EAAE,uBAAuB;gCACnC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,+BAA+B,CAAC,CAAC;gCAC/F,MAAM;4BACP,KAAK,cAAc,EAAE,gBAAgB;gCACpC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,oBAAoB,CAAC,CAAC;gCACpF,MAAM;4BACP,KAAK,KAAK,EAAE,qBAAqB;gCAChC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,mBAAmB,CAAC,CAAC;gCACnF,MAAM;4BACP,KAAK,OAAO,EAAE,UAAU;gCACvB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,qBAAqB,CAAC,CAAC;gCACrF,MAAM;4BACP,KAAK,qBAAqB,EAAE,OAAO;gCAClC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,qBAAqB,CAAC,CAAC;gCACrF,MAAM;4BACP,KAAK,wBAAwB,EAAE,MAAM;gCACpC,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,EAAE,EACrB,UAAU,CAAC,KAAe,CAAC,EAC3B,sCAAsC,EACtC,GAAG,CACH,CAAC;gCACF,MAAM;4BACP,KAAK,eAAe,EAAE,KAAK;gCAC1B,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,EAAE,EAAE,UAAU,CAAC,KAAe,CAAC,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;gCAC9G,MAAM;4BACP,KAAK,kBAAkB,EAAE,MAAM;gCAC9B,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,EAAE,EAAE,UAAU,CAAC,KAAe,CAAC,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;gCAC3H,MAAM;4BACP,KAAK,sBAAsB,EAAE,MAAM;gCAClC,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,EAAE,EACrB,UAAU,CAAC,KAAe,CAAC,EAC3B,mDAAmD,EACnD,GAAG,CACH,CAAC;gCACF,MAAM;4BACP,KAAK,eAAe,EAAE,MAAM;gCAC3B,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,EAAE,EAAE,UAAU,CAAC,KAAe,CAAC,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC;gCAClH,MAAM;4BACP,KAAK,mBAAmB,EAAE,UAAU;gCACnC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,EAAE,EAAE,UAAU,CAAC,KAAe,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;gCACjH,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,KAAK,EACxB,IAAI,CAAC,KAAK,CAAE,KAAgB,GAAG,OAAO,CAAC,GAAG,GAAG,EAC7C,yBAAyB,EACzB,IAAI,CACJ,CAAC;gCACF,MAAM;4BACP,KAAK,aAAa,EAAE,QAAQ;gCAC3B,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,EAAE,EAAE,UAAU,CAAC,KAAe,CAAC,EAAE,kCAAkC,EAAE,IAAI,CAAC,CAAC;gCAC1H,MAAM;4BACP,KAAK,WAAW,EAAE,YAAY;gCAC7B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,0CAA0C,CAAC,CAAC;gCAC1G,MAAM;4BACP,KAAK,UAAU,EAAE,aAAa;gCAC7B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,yCAAyC,CAAC,CAAC;gCACzG,MAAM;4BACP,KAAK,OAAO,EAAE,MAAM;gCACnB,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,EAAE,EACrB,IAAI,CAAC,KAAK,CAAE,KAAgB,GAAG,GAAG,CAAC,GAAG,GAAG,EACzC,6BAA6B,EAC7B,MAAM,CACN,CAAC;gCACF,MAAM;4BACP,KAAK,cAAc,EAAE,QAAQ;gCAC5B,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,EAAE,EACrB,UAAU,CAAC,KAAe,CAAC,EAC3B,qCAAqC,EACrC,IAAI,CACJ,CAAC;gCACF,MAAM;4BACP,KAAK,UAAU,EAAE,iBAAiB;gCACjC,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,EAAE,EACrB,IAAI,CAAC,KAAK,CAAE,KAAgB,GAAG,GAAG,CAAC,GAAG,GAAG,EACzC,sCAAsC,EACtC,IAAI,CACJ,CAAC;gCACF,IAAI,CAAC,sBAAsB,CAC1B,gBAAgB,GAAG,KAAK,EACxB,IAAI,CAAC,KAAK,CAAE,KAAgB,GAAG,OAAO,CAAC,GAAG,GAAG,EAC7C,sCAAsC,EACtC,IAAI,CACJ,CAAC;gCACF,MAAM;4BACP,KAAK,aAAa,EAAE,wBAAwB;gCAC3C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,0BAA0B,CAAC,CAAC;gCAC1F,MAAM;4BACP,KAAK,UAAU,EAAE,UAAU;gCAC1B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,2BAA2B,CAAC,CAAC;gCAC3F,MAAM;4BACP,KAAK,UAAU,EAAE,QAAQ;gCACxB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,wBAAwB,CAAC,CAAC;gCACxF,MAAM;4BACP,KAAK,YAAY,EAAE,KAAK;gCACvB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,EAAE,KAAe,EAAE,oCAAoC,CAAC,CAAC;gCACpG,MAAM;4BACP;gCACC,0EAA0E;gCAC1E,MAAM;wBACR,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEJ,2BAA2B;QAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAgWE;QACF,YAAY;QAEZ,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,kBAAkB;IAEpB,2FAA2F;IACnF,KAAK,CAAC,qBAAqB,CAAC,OAAmB,EAAE,SAAiB,EAAE,YAAoB;QAC/F,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,qBAAqB;YACrB,QAAQ,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACjC,KAAK,GAAG;oBACP,wCAAwC;oBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;oBAC5H,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,SAAS,QAAQ,YAAY,KAAK,CAAC,CAAC;oBAC1F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBACnD,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBACvB,MAAM;gBACP;oBACC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,QAAQ,CAAC,MAAM,iBAAiB,SAAS,QAAQ,YAAY,KAAK,CAAC,CAAC;YACnH,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACzB,gBAAgB;YAChB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,KAAK,WAAW;oBACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;oBAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,8DAA8D,YAAY,KAAK,CAAC,CAAC;oBACvG,MAAM;gBACP,KAAK,cAAc;oBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,YAAY,KAAK,CAAC,CAAC;oBACtF,MAAM;gBACP,KAAK,aAAa;oBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,SAAS,EAAE,CAAC,CAAC;oBACxF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,YAAY,KAAK,CAAC,CAAC;oBACtF,MAAM;YACR,CAAC;YACD,iGAAiG;QAClG,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,SAAS,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,YAAY,KAAK,CAAC,CAAC;YAExG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7E,oBAAoB;gBACpB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,cAAc,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;oBAC3E,IAAI,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACtC,eAAe;wBACf,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;wBAChD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBACxB,oEAAoE;wBACpE,MAAM;4BACL,MAAM,CAAC,SAAS,CAAC,CAAC,KAAkG,EAAE,EAAE;gCACvH,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCACvB,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gCAC/C,MAAM,CAAC,cAAc,CAAC,kBAAkB,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;4BACpE,CAAC,CAAC,CAAC;wBACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD;AA/iBD,4CA+iBC"}
1
+ {"version":3,"file":"teslafiAPICaller.js","sourceRoot":"","sources":["../../src/lib/teslafiAPICaller.ts"],"names":[],"mappings":"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"}
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "teslafi",
4
- "version": "0.1.5",
4
+ "version": "0.2.1",
5
5
  "news": {
6
+ "0.2.1": {
7
+ "en": "Change 'time_to_full_charge' type to number (#38)\nTotal rework of vehicle data parser\nSet speed to 0 if null in API data (#39)",
8
+ "de": "Ändere den Typ von 'time_to_full_charge' auf Zahl (#38)\nKomplette Überarbeitung des Fahrzeugdatenparsers\nSetze Geschwindigkeit auf 0, wenn in den API-Daten null (#39)",
9
+ "ru": "Изменить тип 'time_to_full_charge' на число (#38)\nПолная переработка парсера данных транспортного средства\nУстановить скорость 0, если в API данных null (#39)",
10
+ "pt": "Alterar tipo de 'time_to_full_charge' para número (#38)\nReformulação total do analisador de dados do veículo\nDefinir velocidade como 0 se nulo nos dados da API (#39)",
11
+ "nl": "Wijzig 'time_to_full_charge'-type naar nummer (#38)\nVolledige herwerking van voertuiggegevensparser\nStel snelheid in op 0 als null in API-gegevens (#39)",
12
+ "fr": "Changer le type de 'time_to_full_charge' en nombre (#38)\nRefonte totale de l'analyseur de données du véhicule\nRégler la vitesse sur 0 si null dans les données API (#39)",
13
+ "it": "Cambia il tipo di 'time_to_full_charge' in numero (#38)\nRifacimento totale del parser dei dati del veicolo\nImposta la velocità a 0 se nulla nei dati API (#39)",
14
+ "es": "Cambiar el tipo de 'time_to_full_charge' a número (#38)\nRevisión total del analizador de datos del vehículo\nEstablecer la velocidad en 0 si es null en los datos de la API (#39)",
15
+ "pl": "Zmień typ 'time_to_full_charge' na liczbę (#38)\nCałkowita przebudowa parsera danych pojazdu\nUstaw prędkość na 0, jeśli w danych API jest null (#39)",
16
+ "uk": "Змінити тип 'time_to_full_charge' на число (#38)\nПовна переробка парсера даних транспортного засобу\nВстановити швидкість 0, якщо null в даних API (#39)",
17
+ "zh-cn": "将 'time_to_full_charge' 类型更改为数字 (#38)\n车辆数据解析器的全面重做\n如果 API 数据中为空,则将速度设置为 0 (#39)"
18
+ },
19
+ "0.2.0": {
20
+ "en": "Implement raw data state (#26)\nImplement charger phases (#28)\nImplement driver temperature setting (#31)\nImplement seat and steering wheel heater states (#30)",
21
+ "de": "Rohdatensatz implementieren (#26)\nLadephasen implementieren (#28)\nFahrertemperatureinstellung implementieren (#31)\nSitz- und Lenkradheizung implementieren (#30)",
22
+ "ru": "Реализовать состояние необработанных данных (#26)\nРеализовать фазы зарядки (#28)\nРеализовать настройку температуры водителя (#31)\nРеализовать состояния обогрева сидений и руля (#30)",
23
+ "pt": "Implementar estado de dados brutos (#26)\nImplementar fases de carregamento (#28)\nImplementar configuração de temperatura do motorista (#31)\nImplementar estados do aquecedor de assento e volante (#30)",
24
+ "nl": "Implementeren ruwe datastatus (#26)\nImplementeer laadfasen (#28)\nImplementeer de temperatuurinstelling van de bestuurder (#31)\nImplementeer stoel- en stuurverwarmingsstatus (#30)",
25
+ "fr": "Implémenter l'état des données brutes (#26)\nImplémenter les phases de chargeur (#28)\nImplémenter le réglage de température du conducteur (#31)\nImplémenter les états de chauffage des sièges et du volant (#30)",
26
+ "it": "Implementare stato dei dati grezzi (#26)\nImplementare le fasi di ricarica (#28)\nImplementare la regolazione della temperatura del conducente (#31)\nImplementare stati del riscaldamento del sedile e del volante (#30)",
27
+ "es": "Implementar estado de datos en bruto (#26)\nImplementar fases de carga (#28)\nImplementar ajuste de temperatura del conductor (#31)\nImplementar estados del calentador del asiento y volante (#30)",
28
+ "pl": "Zaimplementuj stan surowych danych (#26)\nZaimplementuj fazy ładowarki (#28)\nZaimplementuj ustawienie temperatury kierowcy (#31)\nZaimplementuj stany podgrzewania siedzeń i kierownicy (#30)",
29
+ "uk": "Реалізувати стан сирих даних (#26)\nРеалізувати фази зарядного пристрою (#28)\nРеалізувати налаштування температури водія (#31)\nРеалізувати стани підігріву сидіння та керма (#30)",
30
+ "zh-cn": "实现原始数据状态 (#26)\n实现充电器阶段 (#28)\n实现驾驶员温度设置 (#31)\n实现座椅和方向盘加热状态 (#30)"
31
+ },
6
32
  "0.1.5": {
7
33
  "en": "Harmonize project tools\nRemoved duplicated texts in state names",
8
34
  "de": "Projektwerkzeuge harmonisieren\nDoppelte Texte in Zustandsnamen entfernt",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.teslafi",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "Adapter to poll TeslaFi data of your car",
5
5
  "author": {
6
6
  "name": "Hombach",
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "@iobroker/adapter-core": "^3.2.2",
27
27
  "axios": "^1.7.7",
28
- "cron": "^3.1.8"
28
+ "cron": "^3.1.9"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@alcalzone/pak": "^0.11.0",
@@ -38,7 +38,7 @@
38
38
  "@types/eslint__eslintrc": "^2.1.2",
39
39
  "@types/eslint__js": "^8.42.3",
40
40
  "@types/mocha": "^10.0.9",
41
- "@types/node": "^22.8.7",
41
+ "@types/node": "^22.9.0",
42
42
  "@types/proxyquire": "^1.3.31",
43
43
  "@types/sinon": "^17.0.3",
44
44
  "@types/sinon-chai": "^3.2.12",