[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

@KaiS
Kannst du etwas mit diesem Befehl anfangen. Das soll angeblich die GPS Daten liefern.

https://fleet-api.prd.eu.vn.cloud.tesla.com/api/1/vehicles//vehicle_data?endpoints=location_data

Hier der Link zu dem Beitrag im Tff
https://tff-forum.de/t/neue-tesla-fahrzeug-api/307668/291

Das haben wir schon probiert.
Ich kann es aber gerne nochmal testen.

Grüße,
Kai

Wenn ich unterstützen kann, gerne melden.

Tesla hat mich gerade informiert, dass wir 1) ein neues Scope benötigen für die Anfrage der Location Data. (Dies habe ich hinzugefügt)

Und es gibt ab dem 1.1. die folgende Preisliste. Ich kann gerade nicht hochrechnen wie viele Anfrage pro Monat durchgehen, aber es kann sein, dass wir bald einen Plan B brauchen:

Das Problem werden definitiv die „Wake“ Kommandos sein. Wie viele nutzt ihr dort aktuell pro Tag?

paresy

Hallo Paresy,

danke für die Info, wakeup benutze ich kaum bis garnicht, ich kann das Fahrzeug auch über App wecken oder wenn ich nach Hause komme und an die wallbox geht, ist es eh wach. Im wachen Zustand und an wallbox angesteckt frage ich alle 1min ab. Im Sommer bei viel PV Überschuss ca. 300 commands für Laderegelung.
Ansonsten hole ich mir nur morgens und abends einmal die kompletten Werte oder das Fahrzeug ist zwischendurch mal wach.

Grüße Torsten

Hallo Paresy,

benutze wakeup fast gar nicht. Sehr selten den Befehl zur Einstellung des Ladestroms.
Ansonsten frage ich den Status alle 5 Min. ab, wenn das Fahrzeug wach ist. Wenn es nicht wach ist alle 15 Min. um herauszufinden, ob zwischenzeitlich geweckt wurde (durch Benutzung oder APP).
Wenn bei der 15 Min. Abfrage das Auto schläft, bekomme ich vom Modul/splitter die Meldung

`03.12.2024, 15:00:03 | TeslaVehicleControl  | offline`

Ob dies auf die Anzahl der Abfragen Auswirkung hat, weiss ich nicht.

Grüße, Peter

Moin, ich nutze Wake ca. 5 mal pro Woche.
Nach nicht mehr, da wenn der Wächter an ist man nicht wecken muss.

Auto wecken zum Klima aktiveren, wenn Temperatur unter 5 Grad ist und ich mit dem Auto fahren will.

Hallo Michael,

Ich wecke das Fahrzeug nur auf, wenn ein Ladestart ansteht, weil z.B. die PV genügend Strom liefert und beim öffnen der Garage um den Ladeport zu entriegeln. Es ist schwierig zu sagen we viele Male es pro Tag vorkommt aber es könnten schon an die 10 Wakeups pro Tag sein.

LG,
Hugo

Hallo Paresy,

Wakes habe ich nicht viele. 10 € gibt es ja pro Monat und Account kostenlos bei der Fleep API.

Die Frage ist - wer wird hier nun belastet? Eure OAuth Schnittstelle oder das anmeldende Tesla Konto?

Was die Standortdaten angeht, hab ich gestern von TeslaFi erstmals eine neue Datenfreigabeanfrage gesehen, wo Location Data explizit anzukreuzen ist - vermutlich kommen daher keine GPS Daten mehr dem letzten Update.

Lg,
Lothar

Aber was anderes, ich möchte ein zusätzliches Fahrzeug hinzufügen, jetzt ist aber die Liste im Tesla Konfigurator leer.

Im Debug sehe ich aber, dass er sich die VINs schon abholen kann.

Ideen?

Danke,
Lothar

Hi Jungs,

wie ihr vielleicht schon mitbekommen habt, wird die Tesla API ab Februar Geld kosten. Das bedeutet wir werden bis dahin eine Alternative/Lösung finden müssen, wie wir die API weiterhin anbieten können. Wir als Symcon können die Kosten leider nicht kompensieren (siehe Screenshot) da das Modul ja in dem Sinne kostenlos ist und wir keine monatlichen Gebühren dafür nehmen (und auch nicht nehmen wollen).

Aktuell scheint der beste Weg zu sein, dass wir unsere API so umbauen, dass jeder von euch seinen eigenen Developer Account erstellt und diesen dann über Symcon Connect alleine verknüpft und bei Tesla freischalten lässt. Dadurch habt ihr pro Monat 10€ Guthaben und könnt ggf. mit eurer eigenen Kreditkarte die Mehrkosten bei Bedarf abdecken.

Dort werde ich noch zeitnah mit Kai sprechen, wie wir dies realisieren können.

Eine andere Option könnte sein, dass Tesla erlaubt, dass ihr quasi die Kosten alleine über eure Kreditkarte zahlt und wir trotzdem die simple Authentifizierung nutzen können. Dazu habe ich bei Tesla vorhin einen Support Case eröffnet.

Insgesamt wird es außerdem notwendig/sinnvoll die neue Streaming API einzubinden, über die Tesla direkt Daten pushen kann. Dann brauchen wir viel weniger von den teuren Abfragen :slight_smile:

Ich wünsche euch trotzdem noch tolle Weihnachtstage :christmas_tree:


i

6 „Gefällt mir“