Angeregt durch die Idee des Überschussladens brauche ich erstmal die Informationen des Teslas im HomeAssistent, um dann mit den Werten zu arbeiten.
1. Ansatz direkte Tesla-Integration
Von der Webseite des Überschussladens ging es Richtung Tesla Intergration in Home Assistant, die wurde aber rausgenommen, daher gab es im HACS eine Tesla_Custom Integration.
Die funktioniert aber auch nicht, weil Tesla seine API geändert hat und schwerer zugänglich ist. Zudem würde man mit jedem Zugriff das Auto aus seinem Sleep-Modus wecken und die Batterie belasten und dabei sinnlos Traffic erzeugen, wenn der Wagen rumsteht, was er meistens tut.
2. Ansatz TeslaFi-API
Ich überwache/sammle die Daten via TeslaFi. Über die ist der Zugriff, auch steuernd, auf das Auto möglich. Gleichzeitig bieten Sie eine API an. => https://teslafi.com/api.php
Dort kann man sich einen Access Token holen und auf die aktuellen und letzten gültigen Daten zugreifen.https://www.teslafi.com/feed.php?token=<MY TOKEN>&command=lastGood
Wir man den Zugriff in Home-Assistant integriert ist wie immer tricky und gleichzeitg ganz einfach.
Vollständig beschrieben ist es hier:
https://dancwilliams.com/monitoring-teslafi-in-home-assistant/
Als erstes installiert man sich das AddOn FileEditor, da hätte ich auch früher drauf kommen können, dann kann man ganz einfach configuration.yaml bearbeiten. Da kommt das folgende in die Template-Section template:
# TeslaFi - platform: rest name: TeslaFi Report resource: "https://www.teslafi.com/feed.php" scan_interval: 180 params: token: YOUR TESLAFI API TOKEN HERE command: lastGood value_template: "{{ value_json.display_name }}" json_attributes: - api_version - autopark_state - autopark_state_v2 - autopark_style - battery_current - battery_heater - battery_heater_on - battery_level - battery_range - calendar_enabled - calendar_supported - car_type - car_version - carState - center_display_state - charge_current_request - charge_current_request_max - charge_enable_request - charge_energy_added - charge_limit_soc - charge_limit_soc_max - charge_limit_soc_min - charge_limit_soc_std - charge_miles_added_ideal - charge_miles_added_rated - charge_port_cold_weather_mode - charge_port_door_open - charge_port_latch - charge_port_led_color - charge_rate - charge_to_max_range - chargeNumber - charger_actual_current - charger_phases - charger_pilot_current - charger_power - charger_voltage - charging_state - climate_keeper_mode - color - conn_charge_cable - currency - data_id - Date - defrost_mode - df - display_name - dr - driveNumber - driver_temp_setting - driver_temp_settingF - elevation - est_battery_range - eu_vehicle - exterior_color - fan_status - fast_charger_brand - fast_charger_present - fast_charger_type - fd_window - fp_window - ft - gps_as_of - gui_24_hour_time - gui_charge_rate_units - gui_distance_units - gui_range_display - gui_temperature_units - heading - homelink_nearby - id - id_s - ideal_battery_range - idleNumber - idleTime - in_service - inside_temp - inside_tempF - is_auto_conditioning_on - is_climate_on - is_front_defroster_on - is_preconditioning - is_rear_defroster_on - is_user_present - last_autopark_error - latitude - left_temp_direction - location - locked - longitude - managed_charging_active - managed_charging_start_time - managed_charging_user_canceled - max_avail_temp - max_range_charge_counter - maxRange - measure - min_avail_temp - motorized_charge_port - newVersion - newVersionStatus - not_enough_power_to_heat - Notes - notifications_enabled - notifications_supported - odometer - odometerF - option_codes - outside_temp - outside_tempF - parsed_calendar_supported - passenger_temp_setting - perf_config - pf - polling - power - pr - rangeDisplay - rd_window - rear_seat_heaters - remote_start - remote_start_enabled - remote_start_supported - rhd - right_temp_direction - roof_color - rp_window - rt - scheduled_charging_pending - scheduled_charging_start_time - seat_heater_left - seat_heater_rear_center - seat_heater_rear_left - seat_heater_rear_left_back - seat_heater_rear_right - seat_heater_rear_right_back - seat_heater_right - seat_type - sentry_mode - shift_state - side_mirror_heaters - sleepNumber - smart_preconditioning - speed - spoiler_type - state - steering_wheel_heater - sun_roof_installed - sun_roof_percent_open - sun_roof_state - temperature - third_row_seats - time_to_full_charge - timestamp - trip_charging - usable_battery_level - user_charge_enable_request - valet_mode - valet_pin_needed - vehicle_id - vehicle_name - vin - wheel_type - wiper_blade_heater
Wenn man alles richtig macht findet man unter Einstellungen -> Geräte -> Entitäten
einen sensor.tesla_fi
, der alle Daten in seinen Attributen enthällt.
Bei den Werten werden amerikanische Eeinheiten geliefert, also Meilen und Fahrenheit.
Will man nun zweitens vereinfacht, auf einen Wert zugreifen, zum Beispiel den Batteriestand, geht es über Einstellungen -> Geräte ->Helper
und dann ein neues Template anlegen. Allerdings muss da nicht der ganze Code aus obiger Webseite rein, sondern nur die Berechnungsvorschrift, also :
Nun hat man Zugriff auf die Entität sensor.model3.battery
und kann diese anzeigen oder in Automatisierungen verwenden.