家庭妇男的智能家居折腾之路9:HA设备自建网关接入天猫精灵(无坑版)
之前写过一篇利用HassBain论坛提供的官方技能把HA设备接入天猫精灵的文章,但是由于服务器受到攻击,加上猫精app的改版,原方法已经失效了。虽然HassBain论坛目前也提供了新的公共接入服务,但是如果你是新人,只允许接入1个设备的限制就有些**。所以,自己动手丰衣足食也未尝不是明智的选择。关于怎么自建网关(Aligenie插件)接入天猫精灵,其实本站已经有相对较完备的教程了,不过我在实践过程中还是发现了几个小问题,也不小心掉了几个坑,所以这篇姑且算是经验总结吧。
HA设备接入天猫精灵的前提是从外网能访问到HA。所以关于如何端口映射,如何内网穿透,如何去ISP要求公网IP在次不做讨论,有兴趣可参考站内许多文章。
从今年初开始,猫精API已经支持非加密的技能接入连接了,所以为HA申请域名,SSL证书都不是必须的。
HA从0.77版开始正式支持OAuth2验证,而自建网关需要用此方法验证。如果你的HA版本尚未支持,请升级HA至最新,这篇文章或许能帮到你。
如果之前用旧的HassBain官方技能接入过HA设备,而没有及时清除(目前似乎无法清除),再用自建网关接入,会因为设备id重复而无法通过猫精控制,绕行方法下详 。
好了,万事俱备,让我们开始吧。
Step1,安装插件
下载Aligenie插件,把aligenie.py文件放到HA的custom_components下。
然后在configuration.yaml中,加入这段:
aligenie:
expire_hours: 65565
expire_hours用来指定重新认证的周期。建议大家和我一样设久一点,过期需要重新到AliGenie开发者平台登陆。
重点来了,如何你之前用旧的HassBain官方技能接入过HA设备而没有清除,请用我改过的插件。原理是在所有设备的id后面自动追加"_gw"后缀作为天猫精灵端的设备id,当收到天猫精灵控制HA设备请求时再去掉后缀。这样就避免了天猫精灵上设备id重复造成的问题。
重启HA,使插件生效。
Setp2,配置AliGenie开发者平台
用天猫精灵关联的淘宝账号登陆平台,选择"添加新技能",技能信息中其他随意,技能类型请选“智能家居”。
服务设置中,把箭头所示处替换为你自己从外部访问HA的url。是否SSL皆可。ClientID必须是url形式,否则HA认证时会报错,Secret实际没有意义,随便写。
在测试验证中,点击“新窗打开”按钮,
在弹出窗口中,点击“账户配置”,登陆HA。成功后会返回设备列表。
Step3,配置HA接入设备。
插件会自动匹配HA设备到天猫精灵,如果有些没有匹配可以手动匹配。在“customize”标记中:
hagenie_deviceType用来描述设备类型。天猫精灵只支持有限的设备类型,支持的类型说明在这里。
hagenie_deviceName是设备的名称,同样也是有限的,取值见天猫精灵列表。
hagenie_zone是区域描述,取值范围。
HA重新载入customize配置后,在天猫精灵app上智能家居页面上拉刷新下就能看到新配置了。
如果嫌弃没有合适的名字,类型或者区域可选,可以参考这篇文章中提到的,用“组合指令”控制。
Step4,Enjoy!……?
天猫精灵,打开卧室的台灯。
555~智能设备暂时使用不了。
OMZ……
欢迎大家收藏、点赞、打赏、评论。







游龙撒加
校验提示文案
姜胖头鱼
校验提示文案
mysm
校验提示文案
值友3116866238
校验提示文案
值友3116866238
校验提示文案
mysm
校验提示文案
姜胖头鱼
校验提示文案
游龙撒加
校验提示文案