请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居第一站

 找回密码
 立即注册
查看: 3354|回复: 39

[智能音箱] HAGenie - 天猫精灵一步接入 HomeAssistant

[复制链接]

7

主题

83

帖子

710

积分

论坛技术达人

积分
710
HASS币
0

教程狂人

发表于 2018-2-4 17:13:15 | 显示全部楼层 |阅读模式
本帖最后由 Yonsm 于 2018-3-10 11:13 编辑

一、使用方法

天猫精灵后台配置流程,请参考之前文章的步骤。直说能用的配置:
账户授权连接:https://hagenie.ga:8122/authorize.py
Client ID:https:xxx.xxx.xx:8123(注意不要//)
Client Secret:password(如果没有密码随便输入即可,关于密码的建议使用姿势参见最后)

Access Token URL:https://hagenie.ga:8122/access.py

开发者网关地址:https://hagenie.ga:8122/gate.py
设备管理跳转连接:(空)

以上配置后直接可以把天猫精灵和 HA 驳接起来了,不需要搭建任何服务器。目前支持除 sensor 外的其它设备的打开和关闭,能自动列出设备,基本零配置搞定全部事情。

二、进阶配置

天猫精灵最重要的三个参数:
1. zone:仅支持特定的区域,如客厅、餐厅等,详细看这里:https://open.bot.tmall.com/oauth/api/placelist
2. deviceName:设备名称也只支持特定的,否则可以显示但它听不懂可能不能控制,https://open.bot.tmall.com/oauth/api/aliaslist
3. deviceType:必须从文档中候选:http://doc-bot.tmall.com/docs/doc.htm?treeId=393&articleId=108271&docType=1

在 gate.py 中会尝试自动从 HA 的配置信息中,根据一些规则尝试自动识别。但有时候可能识别不了,可以在 customize.yaml 中为设备设定天猫精灵能认出来的区域和名称:

hagenie_zone: 客厅
hagenie_deviceName: 吸顶灯
hagenie_deviceType: outlet

以上 hagenie_zone 即可以在HA device entity设备中配置,也可以HA group entity下面给组内所有设备配置。

建议:把设备分组,分组名来自https://open.bot.tmall.com/oauth/api/placelist,设备名从这里选择 https://open.bot.tmall.com/oauth/api/aliaslist,自动搞定,不用配置。

三、自定义服务器

注意:以上配置理把所有密码发往我的服务器,虽然我肯定谨守不存、不看、不用三不政策(老社区信用口碑网友:),如果简单测试可以这么玩玩,如果要长期用建议自己搭建服务器,所有代码在这里,持续更新完善中:

https://github.com/Yonsm/HAExtra/tree/master/hagenie

1. 服务器环境:其中三个 py 文件即可以在 apache 的 cgi-bin 下跑;也可以用 hagenie.py 作为服务器运行(需要完整的 server.pem,记住是需要 chain.pem cert.pem privkey.pem 合一,我被天猫精灵SSL检查这个坑了好久——如果看不明白,建议用前面的简单方式吧),hagenie.py可以在树莓派上跑,但响应比较慢会被天猫精灵服务器直接超时放弃,多试几次可能就好了,但控制起来了比较慢也不爽。

2. Python 需求:以上支持 python2 或 python3,自动适应;如果 HA 是 https 的需要安装 requests,否则自动使用 urllib 或 urllib2。

3. 后话:我直接用 python 做了个伪 oauth2,并且把 oauth流程中流转的数据字段充分利用起来,用来传递 HA URL 地址和密码了…玩玩可以的,不要批评我的 “Oh ... Alternative User Token Handover...to...”,哈哈


如果你直接使用 hagenie.ga 服务器,推荐的姿势是使用密码(以便自己访问),但在天猫精灵开发 e控制台中不要输入 正确的密码(这样不会被 hagenie 服务器看到明文密码了),但在 configuration.yaml 中加入以下配置来信任 hagenie.ga 服务器的 IP 地址:
http:
  api_password: *****
  trusted_networks:
    - 127.0.0.1
    - 101.132.66.191
    - 192.168.1.0/24

评分

参与人数 6金钱 +70 收起 理由
倾微qiwe + 7 又如滚滚黄河之水,一发不可收拾…….
uavana + 8 宇宙杰出青年!
lidicn + 20 膜拜大神!
neroxps + 10 加分再说
killadm + 5 宇宙杰出青年!
Jones + 20 膜拜大神!

查看全部评分

回复

使用道具 举报

8

主题

463

帖子

1264

积分

金牌会员

Rank: 6Rank: 6

积分
1264
HASS币
0
发表于 2018-2-4 17:35:26 | 显示全部楼层
作者牛逼,支持了再说,谢谢分享,虽然不用,哈哈。
回复

使用道具 举报

0

主题

190

帖子

722

积分

高级会员

Rank: 4

积分
722
HASS币
0
发表于 2018-2-4 17:39:18 | 显示全部楼层
给大佬点赞,昨天囧帅的habridge接入讲缘份
回复

使用道具 举报

23

主题

655

帖子

2088

积分

超级版主

Rank: 8Rank: 8

积分
2088
HASS币
0

教程狂人论坛风云人物

发表于 2018-2-4 17:46:29 | 显示全部楼层
膜拜大佬!
回复

使用道具 举报

1

主题

129

帖子

449

积分

中级会员

Rank: 3Rank: 3

积分
449
HASS币
0
发表于 2018-2-4 18:39:33 | 显示全部楼层
膜拜大神,刚才参照你的教程把斐讯M1接入了很简单
回复

使用道具 举报

0

主题

34

帖子

113

积分

注册会员

Rank: 2

积分
113
HASS币
0
发表于 2018-2-4 18:40:27 | 显示全部楼层
膜拜大佬!
回复

使用道具 举报

71

主题

1994

帖子

6237

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
6237
HASS币
34
发表于 2018-2-4 19:09:50 | 显示全部楼层
膜拜大神!这样就太方便了,只是天猫这接入形式,不得不要ha的密码,也是没有办法
回复

使用道具 举报

0

主题

245

帖子

816

积分

高级会员

Rank: 4

积分
816
HASS币
0
发表于 2018-2-4 19:58:51 | 显示全部楼层
樓主讓小弟深深佩服
回复

使用道具 举报

5

主题

190

帖子

549

积分

高级会员

Rank: 4

积分
549
HASS币
0
发表于 2018-2-4 21:19:33 | 显示全部楼层
在树莓派上跑,但响应比较慢会被天猫精灵服务器直接超时放弃

太可惜了。
回复

使用道具 举报

12

主题

473

帖子

1821

积分

论坛技术达人

积分
1821
HASS币
0
发表于 2018-2-4 23:16:51 | 显示全部楼层
顶一个!在局域网不完善和公开api前,小白用这个方案还是比较完美的
https://weibo.com/u/1147593092
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2018-5-23 09:03 , Processed in 0.240042 second(s), 42 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表