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

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

 找回密码
 立即注册
查看: 5729|回复: 187

[进阶教程] 天猫精灵网关, oAuth2认证, 无需额外搭建服务器

  [复制链接]

4

主题

72

帖子

435

积分

论坛技术达人

积分
435
金钱
353
HASS币
40
发表于 2018-9-4 22:16:02 | 显示全部楼层 |阅读模式
本帖最后由 feversky 于 2018-10-7 17:02 编辑

首先感谢Yonsm分享的gate代码  

基本原理如下:

HA已经自带oAuth2,所以只需要实现一个网关就好了。  

使用自带的oAuth2进行认证,认证时会自动转到个人服务器的登录页面,用户登录后即授权成功。在custom_component里面创建gate后会自动向HA注册一个gate网址;gate会验证post过来的token,并响应来自服务器的命令  

步骤:

, AliGenie开发者平台创建技能,配置见下方的图片,前提是要启用HTTPS.
enter image description here
, 将下面的代码放到/config/custom_components目录下面:
https://github.com/feversky/aligenie/blob/master/aligenie.py
,同时在configuration.yaml里面加入下面的内容:  

aligenie:  
  expire_hours: 30  

expire_hours意思是多少个小时后需要重新进行授权。  

是不是很简单?
注意需要更新到最新的软件版本,注意备份config  

从用户登录页面跳转到返回设备列表页面如果正常,说明认证部分是通过的。

关于Configuration里面的配置,一定要读

关于HA里面设备的配置,请参考下面链接里面的“二、进阶配置”,否则会识别不出来https://bbs.hassbian.com/forum.php?mod=viewthread&tid=2700  例子如下, 在customize.yaml里面:  

  switch.light:  
    friendly_name: 主卧灯  
    hagenie_deviceName: 灯  
    hagenie_deviceType: light  
    hagenie_zone: 主卧  

常见的问题

提问的时候请描述清楚,越具体越好

  1. 发现不了设备:
    • 重新读一遍帖子,仔细看
    • 确定认证部分没有报错,确认是按照上节的链接里正确配置的
    • 在configuration里面打开logger, 配置如下:
      logger:
      default: info

      在日志中可以看到发现设备的请求:
      [custom_components.aligenie] recevied data: xxxx
      [custom_components.aligenie] respnose: xxxx
      检查下response是否正确

关于HTTPS

以下是我的步骤:  

  1. 阿里云1块钱注册域名,并在阿里云申请免费的SSL证书,下载证书后,将xxxxx.key, public.pem, chain.pem合并在一起,结果如下:
    -----BEGIN RSA PRIVATE KEY-----
    XXXX
    -----END RSA PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    XXXX
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    XXXX
    -----END CERTIFICATE-----  
  2. 在configuration.yaml里面配置ssl_certificate: /path/to/your/cert, ssl_key就不用配置了  
  3. 需要在你的路由器做端口映射,只需映射HA的端口  

感谢老婆的支持  !

再次感谢Yonsm的分享!







capture.jpg

评分

参与人数 3金钱 +43 收起 理由
neroxps + 16 膜拜大神!
maybeloveu + 7 膜拜大神!
Jones + 20 大神的节奏,技术达人走起!

查看全部评分

回复

使用道具 举报

33

主题

381

帖子

1597

积分

金牌会员

Rank: 6Rank: 6

积分
1597
金钱
1211
HASS币
20
发表于 2018-9-4 22:32:21 | 显示全部楼层
建议把“configuration.yaml 的 aligenie: 做成密码”,在
[AppleScript] 纯文本查看 复制代码
aligenie: 
  client secret:XXXXXXXXXXXXX
   
回复

使用道具 举报

4

主题

72

帖子

435

积分

论坛技术达人

积分
435
金钱
353
HASS币
40
 楼主| 发表于 2018-9-4 22:33:44 来自手机 | 显示全部楼层
czweb 发表于 2018-9-4 22:32
建议把“configuration.yaml 的 aligenie: 做成密码”,在
[mw_shl_code=applescript,true]
aligenie:

不用密码,在authorize的时候由用户自己输入用户名和密码进行授权
回复

使用道具 举报

7

主题

252

帖子

1122

积分

金牌会员

Rank: 6Rank: 6

积分
1122
金钱
870
HASS币
0
发表于 2018-9-4 22:55:19 | 显示全部楼层
感谢大神分享,这样就太方便了。
回复

使用道具 举报

7

主题

252

帖子

1122

积分

金牌会员

Rank: 6Rank: 6

积分
1122
金钱
870
HASS币
0
发表于 2018-9-4 23:37:14 | 显示全部楼层
用不了啊,不知怎么配置。我的是https的网址。
回复

使用道具 举报

7

主题

252

帖子

1122

积分

金牌会员

Rank: 6Rank: 6

积分
1122
金钱
870
HASS币
0
发表于 2018-9-4 23:38:17 | 显示全部楼层
https://www.*****home.cn/auth/token返回405: Method Not Allowed
回复

使用道具 举报

104

主题

1277

帖子

2629

积分

金牌会员

我就是六神

Rank: 6Rank: 6

积分
2629
金钱
1352
HASS币
10

活跃会员灌水之王

QQ
发表于 2018-9-5 02:45:39 | 显示全部楼层
这意思 不用本地搭建 环境了吗?? 直接精灵后台开启 然后一个插件放进去  就OK了?
回复

使用道具 举报

4

主题

72

帖子

435

积分

论坛技术达人

积分
435
金钱
353
HASS币
40
 楼主| 发表于 2018-9-5 07:17:48 | 显示全部楼层
maybeloveu 发表于 2018-9-4 23:38
https://www.*****home.cn/auth/token返回405: Method Not Allowed

只能响应post,是自己测试返回的结果?另外请更新到新版本的HA
枸杞加咖啡,我只要喝一杯~~~
回复

使用道具 举报

4

主题

72

帖子

435

积分

论坛技术达人

积分
435
金钱
353
HASS币
40
 楼主| 发表于 2018-9-5 07:19:05 | 显示全部楼层
jyz_0501 发表于 2018-9-5 02:45
这意思 不用本地搭建 环境了吗?? 直接精灵后台开启 然后一个插件放进去  就OK了? ...

是的,就是这么简单粗暴
枸杞加咖啡,我只要喝一杯~~~
回复

使用道具 举报

2

主题

78

帖子

308

积分

中级会员

Rank: 3Rank: 3

积分
308
金钱
230
HASS币
0
发表于 2018-9-5 07:22:59 来自手机 | 显示全部楼层
谢谢分享,,,
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2018-12-15 10:05 , Processed in 0.236577 second(s), 42 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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