前言:
最近收到了一些小伙伴关于homeassistant部署使用上的问题,正好5.1回老家对老家做了下轻量的智能化改造(就是装了几个智能开关),在搭建HA的时候正好复现了两个一样的问题,所以本文就针对这两个问题说下解决方案。
问题一:
问题现象:
hacs下载完成后需要到设备与集成中进行添加并激活,等你千辛万苦解决了github网络问题,竟然发现即使github已经登录并授权成功了,hacs激活页面依然一直在转圈圈。
解决方案:
先声明下,这个问题的解决方案是hacs的github库中,有一个issue中的一个老哥:Goran58提供的。这里放上原地址和原文截图。
他的意思就是需要到config_flow.py这个文件中添加progress_task=self.activation_task,这一行。这个文件的位置在HA配置文件目录下的custom_components/hacs中。
将这个文件下载到本地使用记事本打开编辑(OS版本的HA则可以通过file editor这个加载项进行打开编辑。)
在文档中搜索step_id="device",定位到对应的代码块,在原有的代码块基础上加上progress_task=self.activation_task,这一行,注意整个代码块的格式要完全和我保持一致。
return self.async_show_progress(
step_id="device",
progress_action="wait_for_device",
progress_task=self.activation_task,
description_placeholders={
"url": OAUTH_USER_LOGIN,
"code": self._registration.user_code,
},
)
改完后保存,上传替换原文件后到开发者工具菜单点击重新启动。
等待重新启动完成后,再次到集成里进行hacs的添加&激活,这个时候就可以轻松的激活成功了。
问题二:
问题现象:
haier集成添加账号配置的时候不论确认多少遍用户名密码都提示认证失败,这个不是你弄错了,而是海尔改了鉴权方式导致的。
解决方案:
这个对应集成插件的开发大佬banto6已经做了一个1.0的预发布版本,需要我们下载源码到本地。
解压后先删掉nas的custom_components目录下的haier目录后,将最新1.0版本的haier上传到对应目录下。
还是回到开发者工具,点击重新启动。
等待启动完成后,到添加集成中找到haier并打开,可以看到现在需要的clientid和Token两个参数。
这两个参数需要使用抓包工具对haier智家app进行抓包获取,因为可能涉及到安全等问题,本文对抓包过程不进行讲述,大家可以网上自行搜索下(我使用的是proxypin+伏羲虚拟框架+hook,大家可以根据这个去进行搜索),获取到参数后填入并点击提交。
已经可以成功获取到对应海尔的设备了。
总结:
现在各个大厂对第三方接入控制的是越来越严格,想要省心还是得米家产品,不论是接入HA还是直接使用米家都很方便,强烈建议智能家居初学者优先考虑支持接入米家的产品,真能省不少心。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~