Bluetooth Commands
Teslemetry Bluetooth Commands is a separate Home Assistant integration that adds command entities that only use Bluetooth. If the vehicle can't be reached over Bluetooth, the command fails with an error. It is never sent to the cloud.
Why it exists
When a vehicle is paired over Bluetooth, the Teslemetry integration sends each command over Bluetooth first and falls back to the cloud automatically when Bluetooth fails. That is the right default for most people, because the command still gets through.
Some people want certain commands to stay local and never be routed through the cloud. A single "Bluetooth only" setting in the Teslemetry integration would apply to every command, so you couldn't keep some commands local and still let the others use the cloud. Instead, this integration adds its own Bluetooth-only entities next to the existing ones. Use them where a command must stay local, and keep using the Teslemetry entities everywhere else.
Your existing Teslemetry entities don't change, and all vehicle data still comes from the Teslemetry integration.
Requirements
- Home Assistant 2026.10.0 or newer.
- The Teslemetry integration, set up and loaded, with the vehicle paired over Bluetooth. In the Teslemetry integration, select Add local vehicle and follow the steps to add Home Assistant's key to the car.
- A Bluetooth adapter or ESPHome Bluetooth proxy in range of the vehicle.
This integration doesn't pair the vehicle, create a key or open a Bluetooth connection of its own. It reuses the Teslemetry integration's pairing, key and Bluetooth connection. If the Teslemetry integration can't start, this integration adds no entities until it does.
Installation
The integration is installed with HACS. Until it is listed in the HACS default store, add it as a custom repository (category: Integration):
Install with HACS- Download Teslemetry Bluetooth Commands in HACS, then restart Home Assistant.
- Go to Settings > Devices & services > Add integration and add Teslemetry Bluetooth Commands.
One entry covers every Teslemetry account and every vehicle paired over Bluetooth.
Entities
The entities are added to each Bluetooth-paired vehicle's existing Teslemetry device. Only the first five are enabled by default. Enable the others in the entity settings.
Many entities are added only where the Teslemetry integration has its own entity for the same command, so the list you see depends on your car.
Enabled by default
| Entity | Type |
|---|---|
| Wake (Bluetooth) | Button |
| Start charging (Bluetooth) | Button |
| Stop charging (Bluetooth) | Button |
| Charge limit (Bluetooth) | Number, 50-100 % |
| Charging amps (Bluetooth) | Number, 0 A to the car's maximum |
Disabled by default
| Group | Entities | Type |
|---|---|---|
| Locks | Lock, Unlock | Buttons |
| Media | Play/pause, Next track, Previous track | Buttons |
| Media | Volume | Number |
| Vehicle | Flash lights, Honk horn, Play fart, Homelink, Keyless driving, Install update | Buttons |
| Windows | Vent windows, Close windows | Buttons |
| Trunks | Open frunk, Open/close trunk | Buttons |
| Charge port | Open charge port door, Close charge port door | Buttons |
| Sunroof | Vent sunroof, Close sunroof | Buttons |
| Tonneau | Open tonneau, Close tonneau, Stop tonneau | Buttons |
| Modes | Sentry mode, Valet mode, Guest mode, each with an on and an off button | Buttons |
| Climate | Climate on, Climate off | Buttons |
| Climate | Bioweapon defense on, Bioweapon defense off | Buttons |
| Climate | Defrost, Auto seat climate left, Auto seat climate right, Auto steering wheel heater, each with an on and an off button | Buttons |
| Climate | Target temperature, 15-28 °C in 0.5 steps | Number |
| Climate | Climate keeper mode: Off, Keep, Dog, Camp | Select |
| Climate | Cabin overheat protection: Off, On, Fan only | Select |
| Climate | Cabin overheat protection temperature: Low, Medium, High | Select |
| Seats | Seat heater front left, front right, rear left, rear center, rear right, third row left, third row right: Off, Low, Medium, High | Selects |
| Seats | Seat cooler front left, front right: Off, Low, Medium, High | Selects |
| Steering wheel | Steering wheel heater: Off, Low, High | Select |
All entity names end with "(Bluetooth)".
Some groups are limited to cars that support them:
- Sunroof entities need a Teslemetry sunroof cover. Tonneau entities need a Teslemetry tonneau cover.
- Guest mode entities are added only for vehicles Teslemetry streams.
- Bioweapon defense entities are added only for cars whose climate Teslemetry polls.
- Cabin overheat protection temperature is added only for cars that support it.
- Rear and third-row seat heaters and the seat coolers are added only on cars that have them.
Two commands are only partly available over Bluetooth:
- Sunroof: there is no Stop button, because the car doesn't accept that command over Bluetooth. Use Vent or Close.
- Tonneau: it has its own Open, Close and Stop buttons rather than a cover entity.
Behavior
- The entities are available only while the vehicle is in Bluetooth range. Range is checked every 10 seconds and again before each command.
- The entities only send commands and show no vehicle state. The numbers and selects always show
unknown; the current value, charging state and lock state stay on the Teslemetry entities. Switches become separate on and off buttons for the same reason. - The maximum of the charge limit and charging amps numbers follows the car's own maximum from the Teslemetry integration's data. Until that value is known, the maximum is 100 % and 48 A. Target temperature follows the car's available range the same way.
- Wake sends only the Bluetooth wake signal and never wakes the car through the cloud. The car can take a few more seconds to answer other commands after it wakes.
- Setting a seat heater, seat cooler or steering wheel heater above Off first turns climate on if Teslemetry's data shows it is off, as Teslemetry's own selects do.
- Lock and Unlock are buttons rather than a lock entity, so voice assistants won't ask for a confirmation or code. Only enable them if you accept that.
Failures
A Bluetooth-only command never falls back to the cloud. Instead it fails with one of these errors, which will stop an automation unless you add continue_on_error: true or handle it:
- Not in Bluetooth range: the car isn't reachable over Bluetooth, so the command isn't sent.
- Bluetooth failure: for example the car is busy, no Bluetooth proxy connection slot is free, or the connection times out. The command may have reached the car before the failure, so check the car's state in Teslemetry before trying again.
- Command refused: the car received the command and refused it, for example because no charging cable is connected.
If you'd rather a command always get through, use the Teslemetry integration's own entities, which fall back to the cloud.
The source code and issue tracker are on GitHub.