/tesla

Tesla custom integration for Home Assistant. This requires a refresh token be generated by third-party apps to login.

Primary LanguagePythonApache License 2.0Apache-2.0

Tesla Custom Integration

GitHub Release GitHub all releases GitHub release (latest by SemVer) GitHub Activity

License

hacs Project Maintenance BuyMeCoffee

Discord Community Forum

A fork of the official Tesla integration in Home Assistant.

This is the successor to the core app which was removed due to Tesla login issues. Do not report issues to Home Assistant.

To use the component, you will need an application to generate a Tesla refresh token:

Installation

  1. Use HACS, in HACS > Integrations > Explore & Add Repositories search for "Tesla". After adding this https://github.com/alandtse/tesla as a custom repository. Skip to 7.
  2. If no HACS, use the tool of choice to open the directory (folder) for your HA configuration (where you find configuration.yaml).
  3. If you do not have a custom_components directory (folder) there, you need to create it.
  4. In the custom_components directory (folder) create a new folder called tesla_custom.
  5. Download all the files from the custom_components/tesla_custom/ directory (folder) in this repository.
  6. Place the files you downloaded in the new directory (folder) you created.
  7. Restart Home Assistant.
  8. Add Integration or in the HA UI go to "Configuration" -> "Integrations" click "+" and search for "Tesla Custom Integration".

Usage

The Tesla integration offers integration with the Tesla cloud service and provides presence detection as well as sensors such as charger state and temperature.

This integration provides the following platforms:

  • Binary sensors - such as update available, parking, and charger connection.
  • Sensors - such as Battery level, Inside/Outside temperature, odometer, estimated range, and charging rate.
  • Device tracker - to track location of your car
  • Locks - Door lock, rear trunk lock, front trunk (frunk) lock and charger door lock. Enables you to control Tesla's door, trunks and charger door lock.
  • Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system. Also enables preset modes to enable or disable max defrost mode defrost or normal operation mode.
  • Switches - Charger and max range switch allow you to start/stop charging and set max range charging. Polling switch allows you to disable polling of vehicles to conserve battery. Sentry mode switch enables or disable Sentry mode.
  • Buttons - Horn and Flash lights

Options

Tesla options are set via Configuration -> Integrations -> Tesla -> Options.

  • Seconds between polling - referred to below as the polling_interval.

  • Wake cars on start - Whether to wake sleeping cars on Home Assistant startup. This allows a user to choose whether cars should continue to sleep (and not update information) or to wake up the cars potentially interrupting long term hibernation and increasing vampire drain.

Potential Battery impacts

Here are some things to consider and understand when implementing the Tesla component and its potential effect on your car's battery.

  • The polling_interval determines when to check if the car is awake and new information is available, but the Tesla integration will not wake up a sleeping car during this polling. By default, the polling will occur every 660 seconds. Polling a car too frequently can keep the car awake and drain the battery. Different firmware versions and measurements of Tesla cars can take from 11 to 15 minutes for sleep mode to occur. There is no official information on sleep mode timings so your mileage may vary and you should experiment with different polling times for an optimal experience.
  • The car will, however, be woken up when a command is actively sent to the car, such as door unlock or turning on the HVAC. It will then also fetch updated information while the car is awake based on the polling_interval.
  • The car can intentionally be woken up to fetch recent information by sending a harmless command, for example, a lock command. This can be used in an automation to, for example, ensure that updated information is available every morning. (Note that the command must be valid for that specific car model. So locking the frunk of a Model 3 will not wake up that car).
  • You can also toggle the polling switch on/off to disable polling of the vehicle completely via automations or the Lovelace UI.

Contributions are welcome!

If you want to contribute to this please read the Contribution guidelines

Component built with integration_blueprint.