『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 5938|回复: 29

[插件集成] 【icloud888】icloud, 你看我还有机会吗?

[复制链接]

18

主题

587

帖子

4285

积分

元老级技术达人

积分
4285
金钱
3663
HASS币
182
发表于 2022-11-25 11:26:59 | 显示全部楼层 |阅读模式
本帖最后由 louis_lee 于 2022-11-28 23:08 编辑

icloud 出了啥问题?

最近突然发现icloud集成不好用了,登陆提示各种错误。于是,我就在论坛翻了翻,看看有没有大佬遇到过这种问题。发现还不少:

homeassistant 添加Apple icloud 无法输入验证码问题
设置icloud集成出现Unknown error occurred
apple icloud集成无法使用的问题

原来问题居然是苹果将中国区icloud域名由icloud.com换为了icloud.com.cn,而icloud集成的依赖pyicloud没有做针对性修改。我翻了翻pyicloud github repo,看到了有一个PR修改了国区icloud域名:Move endpoints of Chinese iCloud account to icloud.com.cn by WestXu · Pull Request #383 · picklepete/pyicloud,但一直没merge。我估计merge概率不大,因为就国区跟别人不一样,搞特殊

然而问题还是得解决啊,因为icloud集成对我来说还挺重要的。倒不是用icloud device_tracker(HA IOS APP可以很好解决这个问题),而是用icloud:play sound服务,也就是用来找手机的。由于我在家里会把手机乱丢乱放而且还开静音,只能一个一个屋到处翻,很浪费时间。通过小爱同学调用HA icloud:play sound服务,iphone就会发出提醒声,大幅降低了找手机时间~

最开始的解决思路

活人不能被尿憋死~于是我就按照论坛的方法开搞,也就是将pyicloud/base.py文件里的域名,修改为icloud.com.cn。不过由于我是用HAOS的方式部署的homeassistant,也就是说icloud运行在HA容器里,而pyicloud所在目录不能持久化,会随着HA升级而被覆盖,改动也无效了。针对这种情况,最开始我搞了一个HA自动化,每次HA启动后执行一个shell脚本:如果/config/.HA_VERSION(意味着HA升级了)发生变化且pyicloud包没有升版本,那么就将预先改好(将icloud域名换为icloud.com.cn)的pyicloud/base.py文件copy到指定位置。

运行一段时间后,整体还不错,但还是有个小问题。由于HA在所有集成都加载后才执行自动化,这意味着每次升级后先加载icloud集成,再复制文件,icloud还是会报错。这时候,只能再重启一遍HA,icloud集成才能恢复正常。这还是很麻烦,不仅增加了额外操作,而且还要浪费1分钟的宝贵时间,强迫症简直不能忍~

那么还有什么的别的方案嘛?

想了想,还可以搞一个DNS解析,在路由器hosts文件针对icloud.com加一个cname icloud.com.cn。但转念一想,就算可以成功解析到icloud中国的服务器,估计Nginx(或其他web server)也会check域名,请求大概率不会通过。

解决方案 pro max:icloud888

只能换个思路了~诶,自定义集成不随HA版本而变动,不就可以持久化了吗?于是我就将icloud集成与pyicloud打包在一起,把pyicloud中icloud domain改好,并调整了icloud集成的pyicloud依赖。这样一来,就封装成了中国大区特供icloud集成:icloud888(听名字就知道是国区特供啦)

有朋友可能问了,你这个集成与友商(原icloud集成)有啥区别?

除了domain换了以外,其他一点区别都没有,也就是说包括entity/device name, unique_id在内都完全一样,所以在使用icloud888时,请不要配置icloud集成已使用的appleid

使用方法也很简单,直接从GitHub上clone下来重启即可。可以在webUI配置-》设备与服务-》添加集成中找到icloud888,配置与使用方法与原icloud一样。

cd /config/custom_components
git clone https://github.com/louisslee/icloud888.git

这样问题就解决了,终于能痛痛快快用上icloud集成啦!有需要的朋友,可以用起来~

另注:请使用2022.08.x以上的HA




评分

参与人数 3金钱 +27 HASS币 +10 收起 理由
jeelinbear + 5 大神666!
rotent + 2 高手,这是高手!
+ 20 + 10 高手,这是高手!

查看全部评分

回复

使用道具 举报

0

主题

608

帖子

2516

积分

金牌会员

Rank: 6Rank: 6

积分
2516
金钱
1908
HASS币
0
发表于 2022-11-25 11:49:24 | 显示全部楼层
一直没法用苹果定位,用了其他的都很耗电,这个是能行了吗
回复

使用道具 举报

18

主题

587

帖子

4285

积分

元老级技术达人

积分
4285
金钱
3663
HASS币
182
 楼主| 发表于 2022-11-25 11:53:11 | 显示全部楼层
Ari 发表于 2022-11-25 11:49
一直没法用苹果定位,用了其他的都很耗电,这个是能行了吗

没问题,我看行
回复

使用道具 举报

40

主题

2176

帖子

8286

积分

元老级技术达人

积分
8286
金钱
6095
HASS币
110
发表于 2022-11-25 13:27:48 | 显示全部楼层
以前用过  感觉是带来一些好点的  后台在频繁的定位
回复

使用道具 举报

0

主题

608

帖子

2516

积分

金牌会员

Rank: 6Rank: 6

积分
2516
金钱
1908
HASS币
0
发表于 2022-11-25 13:36:27 | 显示全部楼层

这个是用ha 的SSH & Web Terminal 安装?
回复

使用道具 举报

1

主题

64

帖子

1124

积分

金牌会员

Rank: 6Rank: 6

积分
1124
金钱
1060
HASS币
0
发表于 2022-11-25 14:25:28 | 显示全部楼层
解决了一大痛点。
回复

使用道具 举报

18

主题

587

帖子

4285

积分

元老级技术达人

积分
4285
金钱
3663
HASS币
182
 楼主| 发表于 2022-11-25 14:52:51 | 显示全部楼层
Ari 发表于 2022-11-25 13:36
这个是用ha 的SSH & Web Terminal 安装?

嗯嗯,可以啊
回复

使用道具 举报

18

主题

587

帖子

4285

积分

元老级技术达人

积分
4285
金钱
3663
HASS币
182
 楼主| 发表于 2022-11-25 14:57:38 | 显示全部楼层
ghostist 发表于 2022-11-25 13:27
以前用过  感觉是带来一些好点的  后台在频繁的定位

定位我觉得HA app就挺好用的。不过icloud毕竟是苹果官方应用,权限较高,估计是后台常驻。
回复

使用道具 举报

46

主题

640

帖子

3827

积分

论坛元老

Rank: 8Rank: 8

积分
3827
金钱
3187
HASS币
0
发表于 2022-11-25 23:14:27 | 显示全部楼层
官方的错误可以通过修改文件方法,现在我已可以用,不过有个问题就是不定期验证登录账号密码,需要重新输下,这个怎么解决
回复

使用道具 举报

18

主题

587

帖子

4285

积分

元老级技术达人

积分
4285
金钱
3663
HASS币
182
 楼主| 发表于 2022-11-26 09:04:34 | 显示全部楼层
wangmucha 发表于 2022-11-25 23:14
官方的错误可以通过修改文件方法,现在我已可以用,不过有个问题就是不定期验证登录账号密码,需要重新输下 ...

直接修改文件可以解决,你是以core的方式安装的嘛?否则升级后还得反复修改。
不定期验证码没法解决,因为苹果的2fa安全措施使然,不过查找手机功能似乎在登陆过期后还能用,所以对我没影响
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 18:46 , Processed in 0.142210 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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