[Modul] Tesla

Hallo Kai, vielen Dank nochmal, grundsätzlich funktioniert alles sehr gut. Ich habe allerdings immer noch in Abständen Fehler im Log (siehe Screenshot). Kannst du wahrscheinlich besser beurteilen, ob du da noch was abfangen/korrigieren kannst oder ich sie einfach ignoriere.
(Sag gerne Bescheid, wenn du zu einem Eintrag den kompleten Stacktrace brauchst, so fand ich es gerade übersichtlicher)

Viele Grüße
Philip

@paresy, kommt das vom Tesla Proxy oder von Tesla selbst?

Grüße,
Kai

Hallo, ich versuche jetzt seit Stunden die GPS Daten vom Fahrzeug mit dem neuen Modul zubekommen. Gemäß Dokumentation von der neuen öffentlichen Tesla Fleet API können bei GET vehicle_data diverse Blöcke an Informationen abgefragt werden.

https://developer.tesla.com/docs/fleet-api#vehicle_data

Das IPS Tesla Modul ruft die Funktion ohne spezifische Endpunkte auf, daher kommen auch keine Lokations-Daten zurück. Soweit, so klar.

Aber ist völlig egal, was ich an gewünschten Endpunkten in dem GET Aufruf verpacke - es kommt immer die gleiche VOLLSTÄNDIGE Antwort zurück, wie auch ohne den Endpunkt Parameter gekommen wäre. Ich habe noch ein ein paar zusätzliche Debugs eingebaut, um die komplette Abfrage zu sehnen.

TeslaVehicleConnector - mddule.php, Zeile 42:
‚Endpoint‘ => ‚/api/1/vehicles/‘ . $this->ReadPropertyString(‚VIN‘) . ‚/vehicle_data?endpoints=charge_state‘,

oder auch
‚Endpoint‘ => ‚/api/1/vehicles/‘ . $this->ReadPropertyString(‚VIN‘) . ‚/vehicle_data?endpoints=charge_state%3Bclimate_state%3Bclosures_state%3Bdrive_state%3Bgui_settings%3Blocation_state%3Blocation_data%3Bvehicle_config%3Bvehicle_state%3Bvehicle_data_combo‘

Es macht keinen Unterschied, was retour kommt.

Ich habe mir im Modul TeslaCloud → module.php auch noch etwas Debug in der Funktion GetData($url) eingebaut:

    $context = stream_context_create($opts);

    $this->SendDebug('GetData', $url, 0);

    $result = file_get_contents($url, false, $context);

    $this->SendDebug('GotData', $result, 0);

Da kommt folgendes raus:

14.07.2024, 14:40:03 | GetData | https://oauth.ipmagic.de/proxy/tesla/api/1/vehicles/LRW3E7FS8PC662298/vehicle_data?endpoints=charge_state

14.07.2024, 14:40:04 | GotData | {„response“:{„id“:929651520829077,„user_id“:157024856450,„vehicle_id“:1689207285869972,„vin“:„LRW3E7FS8PC662298“,„color“:null,„access_type“:„DRIVER“,„granular_access“:{„hide_private“:false},„tokens“:null,„state“:„online“,„in_service“:false,„id_s“:„929651520829077“,„calendar_enabled“:true,„api_version“:76,„backseat_token“:null,„backseat_token_updated_at“:null,„ble_autopair_enrolled“:false,„charge_state“:{„battery_heater_on“:false,„battery_level“:75,„battery_range“:194.49,„charge_amps“:16,„charge_current_request“:16,„charge_current_request_max“:16,„charge_enable_request“:false,„charge_energy_added“:39.54,„charge_limit_soc“:80,„charge_limit_soc_max“:100,„charge_limit_soc_min“:50,„charge_limit_soc_std“:80,„charge_miles_added_ideal“:178.5,„charge_miles_added_rated“:178.5,„charge_port_cold_weather_mode“:false,„charge_port_color“:„\u003cinvalid\u003e“,„charge_port_door_open“:false,„charge_port_latch“:„Engaged“,„charge_rate“:0.0,„charger_actual_current“:0,„charger_phases“:null,„charger_pilot_current“:16,„charger_power“:0,„charger_voltage“:2,„charging_state“:„Disconnected“,„conn_charge_cable“:„\u003cinvalid\u003e“,„est_battery_range“:216.22,„fast_charger_brand“:„\u003cinvalid\u003e“,„fast_charger_present“:false,„fast_charger_type“:„\u003cinvalid\u003e“,„ideal_battery_range“:194.49,„max_range_charge_counter“:0,„minutes_to_full_charge“:0,„not_enough_power_to_heat“:null,„off_peak_charging_enabled“:true,„off_peak_charging_times“:„all_week“,„off_peak_hours_end_time“:390,„preconditioning_enabled“:false,„preconditioning_times“:„all_week“,„scheduled_charging_mode“:„DepartBy“,„scheduled_charging_pending“:false,„scheduled_charging_start_time“:null,„scheduled_charging_start_time_app“:60,„scheduled_departure_time“:1721016900,„scheduled_departure_time_minutes“:375,„supercharger_session_trip_planner“:false,„time_to_full_charge“:0.0,„timestamp“:1720960804438,„trip_charging“:false,„usable_battery_level“:75,„user_charge_enable_request“:null},„climate_state“:{„allow_cabin_overheat_protection“:false,„auto_seat_climate_left“:true,„auto_seat_climate_right“:true,„auto_steering_wheel_heat“:true,„battery_heater“:false,„battery_heater_no_power“:null,„cabin_overheat_protection“:„On“,„cabin_overheat_protection_actively_cooling“:false,„climate_keeper_mode“:„off“,„cop_activation_temperature“:„High“,„defrost_mode“:0,„driver_temp_setting“:22.0,„fan_status“:0,„hvac_auto_request“:„On“,„inside_temp“:49.0,„is_auto_conditioning_on“:false,„is_climate_on“:false,„is_front_defroster_on“:false,„is_preconditioning“:false,„is_rear_defroster_on“:false,„left_temp_direction“:0,„max_avail_temp“:28.0,„min_avail_temp“:15.0,„outside_temp“:26.5,„passenger_temp_setting“:22.0,„remote_heater_control_enabled“:false,„right_temp_direction“:0,„seat_heater_left“:0,„seat_heater_rear_center“:0,„seat_heater_rear_left“:0,„seat_heater_rear_right“:0,„seat_heater_right“:0,„side_mirror_heaters“:false,„steering_wheel_heat_level“:0,„steering_wheel_heater“:false,„supports_fan_only_cabin_overheat_protection“:true,„timestamp“:1720960804438,„wiper_blade_heater“:false},„drive_state“:{„power“:0,„shift_state“:null,„speed“:null,„timestamp“:1720960804438},„gui_settings“:{„gui_24_hour_time“:true,„gui_charge_rate_units“:„kW“,„gui_distance_units“:„km/hr“,„gui_range_display“:„Rated“,„gui_temperature_units“:„C“,„gui_tirepressure_units“:„Bar“,„show_range_units“:false,„timestamp“:1720960804438},„parked_accessory“:{„aux_park_lamps“:„None“,„badge_version“:1,„can_accept_navigation_requests“:true,„can_actuate_trunks“:true,„car_special_type“:„base“,„car_type“:„model3“,„charge_port_type“:„CCS“,„cop_user_set_temp_supported“:false,„dashcam_clip_save_supported“:true,„default_charge_to_max“:true,„driver_assist“:„TeslaAP3“,„ece_restrictions“:true,„efficiency_package“:„M3SRPlus2021Q3GFSH“,„eu_vehicle“:true,„exterior_color“:„PearlWhite“,„exterior_trim“:„Black“,„exterior_trim_override“:„“,„has_air_suspension“:false,„has_ludicrous_mode“:false,„has_seat_cooling“:false,„headlamp_type“:„Global“,„interior_trim_type“:„Black2“,„key_version“:2,„motorized_charge_port“:true,„paint_color_override“:„“,„performance_package“:„Base“,„plg“:true,„pws“:true,„rear_drive_unit“:„PM216MOSFET“,„rear_seat_heaters“:1,„rear_seat_type“:0,„rhd“:false,„roof_color“:„RoofColorGlass“,„seat_type“:null,„sentry_preview_supported“:false,„spoiler_type“:„None“,„sun_roof_installed“:null,„supports_qr_pairing“:false,„third_row_seats“:„None“,„timestamp“:1720960804438,„trim_badging“:„50“,„use_range_badging“:true,„utc_offset“:7200,„webcam_selfie_supported“:true,„webcam_supported“:true,„wheel_type“:„PinwheelRefresh18“},„vehicle_config“:{„aux_park_lamps“:„None“,„badge_version“:1,„can_accept_navigation_requests“:true,„can_actuate_trunks“:true,„car_special_type“:„base“,„car_type“:„model3“,„charge_port_type“:„CCS“,„cop_user_set_temp_supported“:false,„dashcam_clip_save_supported“:true,„default_charge_to_max“:true,„driver_assist“:„TeslaAP3“,„ece_restrictions“:true,„efficiency_package“:„M3SRPlus2021Q3GFSH“,„eu_vehicle“:true,„exterior_color“:„PearlWhite“,„exterior_trim“:„Black“,„exterior_trim_override“:„“,„has_air_suspension“:false,„has_ludicrous_mode“:false,„has_seat_cooling“:false,„headlamp_type“:„Global“,„interior_trim_type“:„Black2“,„key_version“:2,„motorized_charge_port“:true,„paint_color_override“:„“,„performance_package“:„Base“,„plg“:true,„pws“:true,„rear_drive_unit“:„PM216MOSFET“,„rear_seat_heaters“:1,„rear_seat_type“:0,„rhd“:false,„roof_color“:„RoofColorGlass“,„seat_type“:null,„sentry_preview_supported“:false,„spoiler_type“:„None“,„sun_roof_installed“:null,„supports_qr_pairing“:false,„third_row_seats“:„None“,„timestamp“:1720960804438,„trim_badging“:„50“,„use_range_badging“:true,„utc_offset“:7200,„webcam_selfie_supported“:true,„webcam_supported“:true,„wheel_type“:„PinwheelRefresh18“},„vehicle_state“:{„api_version“:76,„autopark_state_v2“:„unavailable“,„calendar_supported“:true,„car_version“:„2024.20.7 dc8f9fa8b4ea“,„center_display_state“:0,„dashcam_clip_save_available“:true,„dashcam_state“:„Recording“,„df“:0,„dr“:0,„fd_window“:0,„feature_bitmask“:„fbdffbff,24cbc7f“,„fp_window“:0,„ft“:0,„is_user_present“:false,„locked“:true,„media_info“:{„audio_volume“:2.6667,„audio_volume_increment“:0.333333,„audio_volume_max“:10.333333,„media_playback_status“:„Playing“,„now_playing_album“:„“,„now_playing_artist“:„“,„now_playing_duration“:181000,„now_playing_elapsed“:174000,„now_playing_source“:„Spotify“,„now_playing_station“:„“,„now_playing_title“:„“},„media_state“:{„remote_control_enabled“:true},„notifications_supported“:true,„odometer“:18323.947149,„parsed_calendar_supported“:true,„pf“:0,„pr“:0,„rd_window“:0,„remote_start“:false,„remote_start_enabled“:true,„remote_start_supported“:true,„rp_window“:0,„rt“:0,„santa_mode“:0,„sentry_mode“:false,„sentry_mode_available“:true,„service_mode“:false,„service_mode_plus“:false,„software_update“:{„download_perc“:0,„expected_duration_sec“:2700,„install_perc“:1,„status“:„“,„version“:" "},„speed_limit_mode“:{„active“:false,„current_limit_mph“:85.0,„max_limit_mph“:120,„min_limit_mph“:50.0,„pin_code_set“:false},„timestamp“:1720960804438,„tpms_hard_warning_fl“:false,„tpms_hard_warning_fr“:false,„tpms_hard_warning_rl“:false,„tpms_hard_warning_rr“:false,„tpms_last_seen_pressure_time_fl“:1720875726,„tpms_last_seen_pressure_time_fr“:1720875727,„tpms_last_seen_pressure_time_rl“:1720875726,„tpms_last_seen_pressure_time_rr“:1720875727,„tpms_pressure_fl“:3.075,„tpms_pressure_fr“:3.2,„tpms_pressure_rl“:3.0,„tpms_pressure_rr“:3.05,„tpms_rcp_front_value“:2.9,„tpms_rcp_rear_value“:2.9,„tpms_soft_warning_fl“:false,„tpms_soft_warning_fr“:false,„tpms_soft_warning_rl“:false,„tpms_soft_warning_rr“:false,„valet_mode“:false,„valet_pin_needed“:true,„vehicle_name“:„Rocket RWD L-EFIT4“,„vehicle_self_test_progress“:0,„vehicle_self_test_requested“:false,„webcam_available“:true}}}

Das macht für mich keinen Sinn. Entweder funktionieren die Enpoints in der Fleet API vehicle_data Funktion nicht, oder der der IPS OAuth Proxy http://oauth.ipmagic.de/proxy schneidet was ab? Ich begreife es nicht.

Hat es inzwischen schon jemand mit den Positionsdaten zum Laufen gebracht?

Danke,
Lothar

Ich glaube die API von Tesla hat da einen Fehler.
Oder der Proxy, aber der kommt auch von Tesla selbst.

Grüße,
Kai

1 „Gefällt mir“

Danke, das kann ich mir irgendwie schwer vorstellen. Ich habe nun die ganze Logik umgebaut um festzustellen, auf welcher Wallbox das Fahrzeug angeschlossen ist. Meine Idee: Abgleich der Zeitdaten wann das Kabel verbunden wurde zwischen Wallbox und Fahrzeug. Das klappt jetzt.
Jetzt muss ich noch den privaten Schlüssel für die API Verbindung reinbekommen, damit die Aktionen wieder funktionieren… aber das wohl schon wer geschafft.

Lg,
Lothar

Ich habe das mit den GPS Daten auch schon so oft versucht und bin immer wieder bei dem Ergebnis gelandet, welches du auch hattest, es kommt immer dasselbe zurück, egal was man als Parameter angibt.

Deswegen glaube ich, dass die API da fehlerhaft ist.

Grüße,
Kai

Ich habe noch TeslaMate am laufen. Von hier hole ich mir die GPS Daten über ein PHP Skript welches auf der Webseite von TeslaMate guckt. Funktioniert ganz gut, macht aber auch nur sinn von man TeslaMate nutzt

TeslaMate geht doch auch über die API oder nicht?

Ich weiß aber nicht, ob die noch über die alte iwie gehen.
Wir hatten damals schon so viel versucht, es hat aber nichts funktioniert.

Grüße,
Kai