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 +13 -0
- package/build/lib/teslafiAPICaller.js +260 -117
- package/build/lib/teslafiAPICaller.js.map +1 -1
- package/io-package.json +27 -1
- package/package.json +3 -3
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
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":"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"}
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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",
|