HAGenie - 天猫精灵一步接入 HomeAssistant

| 分类 代码  | 标签 智能家居 

一、使用方法

天猫精灵后台配置流程,请参考这篇文章的步骤。直说能用的配置:

  • 账户授权连接:https://g.yonsm.net:8122/authorize.py
  • Client ID:hagenie(或者随便)
  • Client Secret:ga(随便输入即可)
  • Access Token URL:https://g.yonsm.net:8122/access.py
  • 开发者网关地址:https://g.yonsm.net:8122/gate.py
  • 设备管理跳转连接:(空)

以上配置后直接可以把天猫精灵和 HA 驳接起来了,在账户配置页面输入你的 HA UR http://xxx.xxx.xxx:8123 (注意:必须公网能访问的HA URL)和密码(关于密码的建议使用姿势参见最后)。

目前支持除 sensor 和其它设备的打开和关闭,能自动列出设备,基本零配置搞定全部事情,不需要搭建任何服务器。

二、进阶配置

天猫精灵最重要的三个参数:

  1. zone:仅支持特定的区域,如客厅、餐厅等,详细看这里
  2. deviceName:设备名称也只支持特定的,否则可以显示但它听不懂可能不能控制
  3. deviceType:必须从这个文档中候选

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

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

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

建议:把设备分组,分组名来自这里,设备名从这里选择 ,这样剩下的事情会自动搞定,不用配置。

三、自定义服务器

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

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 服务器,推荐的姿势是使用密码(以便自己访问),但在天猫精灵开发者控制台中不要输入正确的密码(这样不会被 hagenie 服务器看到明文密码了),但在 configuration.yaml 中加入以下配置来信任 hagenie.ga 服务器的 IP 地址:

http:
  api_password: *****
  trusted_networks:
    - 127.0.0.1
    - 101.132.66.191
    - 192.168.1.0/24

原帖发布在:https://bbs.hassbian.com/thread-2700-1-1.html


上一篇     下一篇