homeassistant 接入天猫精灵填坑版 | 您所在的位置:网站首页 › redline手链官网 › homeassistant 接入天猫精灵填坑版 |
home assistant 接入天猫精灵填坑版
背景
网上关于homeassistant 接入天猫精灵的文章很多,也有论坛接入版本,考虑到隐私和网络链接速度问题,最终还是选择自建技能和配置插件来实现天猫精灵接入。 使用的homeassistant版本103 本文写于2020/04/24 参考主要是参考 cnk700i 大大文章,使用大大的插件实现接入功能 https://ljr.im/articles/plugin-smart-speaker-access-home-assistant-integration-plusplus/ 接入步骤参考 https://bbs.hassbian.com/thread-6291-1-1.html oAuth2 认证参考 feversky 大大的文章 https://bbs.hassbian.com/thread-4758-1-1.html 步骤 1.首先下载插件https://github.com/cnk700i/havcs 插件有三种模式: 模式一 音箱组件http网关:通过自建测试技能接入,适合家庭宽带有公网ip或实现内网穿透场景下使用。 模式二 mqtt中转+音箱组件http网关:通过自建测试技能接入,适合家庭宽带无公网ip场景下使用。 模式三 mqtt中转+音箱组件直接处理:通过官方音箱APP技能接入,适合普遍场景(无需公网ip)使用。 本文采用 模式一 插件安装很简单,把插件放置到HA自定义插件目录,最终路径结构为{HA配置目录}/custom_components/havcs 其中havcs就是你下载的那个插件文件夹 2.实现homeassitant 公网https访问 我是开启的全局https访问,虽然囧大大也说了这种不是特别好,受限制比较多,但是我只是天猫精灵控制家电,自动化直接用的脚本,如果用node-red,获取有其他需求还是用其他方式实现比较好。 具体实现方式参考下文 https://bbs.hassbian.com/thread-9506-1-1.html 3.配置天猫精灵自建技能 在 https://www.aligenie.com/ 网站登陆,就用淘宝账号,天猫精灵也用淘宝账号登陆。这样自建技能不需要发布也可以在本地使用。 在内容和&IOT技能新建技能,关键在于服务设置页面 里面需要设置以下内容 账户授权连接 Client ID Client Secret Access Token URL 开发者网关地址根据 cnk700i 大大文章说明有两种方式实现oAuth2 认证 方案一使用HA自带的授权页面 (这里大大的授权地址教程路径写错了,注意更改为下面内容) #账户授权连接 https://{你的域名:端口}/auth/authorize #Client ID,填回调地址域名那一串即可(HA要求格式) 天猫:https://open.bot.tmall.com #Client Secret 随便填写,不做校验 #Access Token URL (v3版) https://{你的域名:端口}/auth/token #开发者网关地址 (v3版) https://{你的域名:端口}/havcs/service 方案二我没测试成功,有没有大大可以测试一下 (v3 2020.04.05后版本增加) #账户授权连接 https://{你的域名及端口}/havcs/auth/authorize #Client Id,在插件配置文件定义 与插件(配置文件)所设置的一致 #Client Secret,在插件配置文件定义 与插件(配置文件)所设置的一致 #Access Token URL https://{你的域名及端口}/havcs/auth/token #开发者网关地址 https://{你的域名及端口}/havcs/service参考截图 我采用的是步骤3中的方案一 因此只需要配置如下 havcs: platform: # 音箱平台服务网关,至少启用一个 - aligenie # 天猫精灵 http: clients: aligenie123456: adofadfadfpadofa # 官方认证随便写 ha_url: http://localhost:8123 # 配置了base_url需要这样写 device_config: ui #开启图像界面 很好用墙裂推荐 配置好了重启HA就可以了,重启后你会在HA侧栏发现插件HAVCS设备,然后就可以通过图像界面关联你需要同步到天猫精灵的设备,图形化操作很强大 添加设备的时候需要设置以下参数 device_id : 必须为指定格式,如havcs.sxxxx,havcs不能变,后面随便取名字 entity_id : 必须是HA中已发现的实体,在开发者工具-状态中能找到该实体ID 其他参数自己选就行了,没关系 配置所有设备以后,建议同步一下,可以用服务havcs.reload也可以点HAVCS设备同步按钮,或者重启HA。 5返回天猫精灵技能 点击自建技能中的测试验证 按照步骤做下来就能在天猫精灵技能内获取到HA的设备,在天猫精灵app中也能看见相应设备 问题处理 1、使用HA自带的认证模式存在授权过期问题处理方法: 更换为步骤3中方案二 插件版的授权方式,可以设置授权超时。 本来我一直都没有验证成功,在大大LJR的指导下终于发现问题,原来我配置了插件的集成环境,当时自动配置了client ID 和 Client Secret 使用上述参数配置进去就可以了。 在 HAVCS设备管理页面工具栏,最后可以看见配置 |
CopyRight 2018-2019 实验室设备网 版权所有 |