Tesla特斯拉车辆|TeslaMate接入Homeassistant,米家
一、准备
本文主要介绍将中国区的特斯拉车辆接入到Homeassistant,实现一些自动化的功能,比如车子回到公司就自动开办公室空调,出门前自动将车辆的空调打开。
1.需提前安装好Docker(楼主版本:27.3.1),网上教程很多,自己搜
2.Docker里面提前安装好TeslaMate(楼主版本:官方英文原版4.0.1),同样参考网上教程,Docker install | TeslaMate (官网教程)
需要注意的是官网教程中mosquitto设置中把端口加了#的注释,所以要删除下图中的两个#符号,这样便于后期在再HomeAssistant中添加特斯拉的MQTT

3.Docker里面提前安装好HomeAssistant (楼主版本:2026.7.1),自行网上搜教程吧。
二、TeslaMate加入HomeAssistant
虽然github上(alandtse/tesla: Tesla custom integration for Home Assistant. This requires a refresh token be generated by third-party apps to login.)特斯拉有插件能直接加入HA,但是这个特斯拉的插件拉取车辆信息的时间间隔比较慢,大概70秒,而TeslaMate拉取车辆位置,以及其他状态的时间间隔很短,只有大概3秒钟,所以能实时获取的特斯拉的位置,这样在智能家居联动中反馈很及时。
1、安装好TeslaMate后,在HomeAssistant集成中搜索MQTT,然后选择里面第1个MQTT

在代理设置填写安装TeslaMate服务的IP地址,端口就是前面说的删除#字符时设置的1883端口,账号,密码不用填,最后提交,此时只是把TeslaMate的数据库加入到HA中,还不能显示具体的参数和实体。

2、根据官网(Home Assistant Integration | TeslaMate)的指示找到HA在Docker中的安装目录里面的configuration.yaml文件


编辑configuration.yaml文件,参照官网介绍中的,但是我只添加了下面这部分分内容,没有添加automation和proximity部分,因为我不需要官网举例的这些自动化,后续自己再设置。
tesla:
username: !secret tesla_username
password: !secret tesla_password
scan_interval: 3600
mqtt: !include mqtt_sensors.yaml
3、然后按照官网的指示,在上述configuration.yaml同文件目录下新建一个mqtt_sensors.yaml的文件,里面把官网的内容全部复制进去,这是HA通过MQTT获取特斯拉数据后,再用直观方式显示的脚本。
文件里面< teslamate url >, < your tesla model > , < your tesla name >, 这3个地方要替换成自己的信息,连< >这个括号都要替换掉,比如< teslamate url >替换成http://192.168.1.1:4000,这个地址就是TeslaMate安装后它的服务地址,特斯拉型号< your tesla model > 替换成Model 3,特斯拉名字 < your tesla name > 替换成Tesla Model 3。具体内容根据自己情况写。
mqtt_sensors.yaml官网文件部分内容4、在上述同文件目录中找到secrets.yaml文件,里面添加两行,指定用户名和密码,这个随便填。
tesla_username: xxxx
tesla_password: xxxx
5、官网指示后续还有automation.yaml,script.yaml等文件,这些都是些官网建议的自动化,通知之类的脚本,我用不到,所以后续这些文件可以都不用管。
6、把这些.yaml文件都弄好之后,重启HA,此时就能在MQTT中看到自己的车辆了

HA中显示特斯拉实时信息需要注意的是刚添加进来时,可能很多参数,比如胎压,温度等都是未知的状态,因为此时车辆可能休眠了,等下次开车,或者手机APP激活下车辆,就能获取到绝大部分数据了。
另外在地图中也能看到自己车辆的实时定位了。

7、此时就可以设置根据车辆位置执行自动化了,比如我的快回到公司,还距离1km时提前自动开办公室空调把房间凉好。
首先在HA中地点创建家庭,公司等地址。
然后在集成中搜索接近,增加一个接近公司的集成。
区域选择设置好的公司位置,设备选择车辆名字的Location,在自动化设置中填加一个关联这个接近公司集成的自动化,选择其中的最近距离或者Location距离都可以,然后实体选择123 数值状态。

判断数值低于1000,意思车辆距离公司位置小于1000m时,就执行自动化,我还关联了办公室的温度传感器,意思还要办公室的室温还要高于一定温度才会打开空调。

这个开接近公司开空调的只是示例之一,还可以接近开电脑,烧水,煮咖啡等等只要联网就可以进行的操作。
三、Tesla加入HomeAssistant
第二条的TeslaMate只能快速获取车辆的状态,但是目前还不能操作车辆的空调,车窗,锁门,开灯等操作,要自动化控制操作车辆功能的话得在github网站找alandtse/tesla 的插件,

下载该插件后,将解压插件的tesla_custom文件夹放入custom_components文件夹内,然后重启HA.

重启HA后,在集成里搜索Tesla,选择Tesla Custom 这个插件,

填入自己特斯拉账号的邮箱,和Refresh Token,这里特别注意网址原来是tesla.com,要把.com改成.cn,不然登录不了。

这个Token的获取方法可以参考这个插件在github上介绍中对应不同系统用的软件。

添加完成后,就可以在集成中看到自己的车辆所有的控制功能了。

四、Tesla功能接入米家
要实现小米手机的米家或者小爱同学语音控制车辆的空调等功能的话,需要用到巴法云。
我用到的github是skddyj/bemfa: 将 Home Assistant 实体同步至巴法云,并使用小爱同学/天猫精灵/小度音箱控制。这个插件。同样下载后导入插件的文件夹到custom_components文件夹内,重启HA。集成搜索bemfa,

秘钥填入巴法云官网(https://cloud.bemfa.com)注册登录后的秘钥


提交后就可以在集成bemfa插件中将HA中的设备加入到巴法云,

我为了控制方便,把特斯拉的空调功能集成到了一个虚拟的开关里面,这个开关的状态我写的no,意思是这个开关系统一直认为开关是关闭的,任何时候说打开都会执行打开空调操作。开关里面有多个动作,包括设定的温度,空调的模式等。

然后把这个虚拟开关取名为特斯拉空调,在把这个开关加入到巴法云,

之后米家APP中连接三方平台的巴法,点击同步设备,就能在米家看到命名的特斯拉空调这个开关,不过只能用小爱同学语音或者小爱同学在米家APP设置自动化来控制这个开关。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
