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

标题: 另辟蹊径,利用小米云服务获取手机 精准 稳定的定位信息 [打印本页]

作者: 吹风机    时间: 2020-8-2 22:29
标题: 另辟蹊径,利用小米云服务获取手机 精准 稳定的定位信息
本帖最后由 吹风机 于 2021-3-28 02:21 编辑

      在论坛搜索了好几天,在安卓端的定位方式有很多,有用Tasker的,有用GPS Logger的。还有官方推出的安卓客户端。但是这些都或多或少有缺陷,在我的小米手机中,将Tasker GPS Logger这些软件的自启打开 后台锁定 省电改为无限制。。但最终还是获取定位不稳定,要不是相隔时间太久,要不是直接罢工。
而官方的客户端可以主动唤醒,但是由于有些bug没有解决,定位信息总是不能及时进行发送。所以是一直困扰我的瓶颈。


直到昨天看到一个ytb上的一个作者 分享了一个iOS定位的方式,是通过iCloud进行定位,效果很好。这让我突然想到国内手机平台也提供了找回手机的功能,并且找回手机功能可以获得稳定的定位情况,所以就考虑直接从厂商云平台拿手机的定位情况。
于是今天就搞了半天,登陆部分参考了论坛另外一位大神写的小爱音箱通过小米API进行TTS的部分,加上小米云服务的爬取,写了一个基于小米云服务的定位插件,只适用于MIUI系统的手机。


项目地址:MiPhone_tracker



可以直接用hacs安装自定义库的方式安装
或者进行手动安装:
在 custom_components/ 文件夹下建立文件夹 MiPhone_tracker/ ,将 init.py manifest.json sensor.py 放入 MiPhone_tracker/ 中

在 /config/configuration.yaml 中添加以下语句
  1. sensor:
  2.   - platform: MiPhone_tracker
  3.     account: '13888888888'
  4.     password: '123456789'
  5.     update_delta: 300
  6.     device_choose: 1
  7.     coordinate_type: original
复制代码

account password为账号密码,
device_choose为设备的选择,默认为第一个
update_delta为获取时间间隔,默认为300秒
coordinate_type为坐标类型,可选 baidu, google, original 三种坐标类型,不同类型的坐标位置与精度不同,无此选项时默认为baidu

填写完保存,重启

[attach]24210[/attach][attach]24213[/attach]
由于才入坑几星期,找了一堆资料不知道怎么创建device_tracker类型的实体,所以暂时只创建为sensor类型
尝试了用template也不行,现在我唯一知道的,可以利用GPS Logger的api,在内网调用创建一个实体,但感觉不够优雅。有木有大佬可以说说怎么搞。


使用插件前先看看在HA所在IP下 自己账号登录小米云服务需不需要验证码,如果有验证码就无解了。

更新记录:

2021/03/28 v0.2.2
修复了小米账号无法登录的问题

2020/08/13 v0.2.1
修复更新时间偏移,以HA系统时区为准

2020/08/03 v0.2.0

增加坐标类型选择,可选 baidu, google, original 三种坐标类型



[attach]24383[/attach]




作者: ccl297520702    时间: 2020-8-2 22:38
学习学习
作者: chzyh    时间: 2020-8-2 23:30
mark 期待楼主的完善
作者: xuyang    时间: 2020-8-3 04:32
功能很强大,感谢
作者: 淘子    时间: 2020-8-3 09:05
这个好啊,还不需要第三方app后台耗电
作者: xuyang    时间: 2020-8-3 09:33
可以通过ha到nodered进入traccar,再接入ha,就可以将sensor转为device_tracker
作者: zmg    时间: 2020-8-3 10:26
这个太实用啦
作者: 囧    时间: 2020-8-3 13:21
device_tracker比sensor貌似更简单些,直接返回坐标就行了,可以看一下其他的device_tracker怎么写的

                               
登录/注册后可看大图

作者: jhgzs    时间: 2020-8-3 14:07
牛  支持大佬
作者: binghun9806    时间: 2020-8-4 09:10
是不是华为也可以同等操作?
作者: hanwei0708    时间: 2020-8-4 10:06
真太实用了了,全家小米,
用第三方软件,一杀后台就结束了
官方的老抽风
这个好
作者: wshc1216    时间: 2020-8-4 11:08
这能说,这个牛逼,这方案会不会成为以后定位方式的主流?
作者: gtyun    时间: 2020-8-4 16:14
谢谢分享,感觉这个定位比较好用
作者: lucien    时间: 2020-8-4 20:14
期待楼主更新
作者: froggyfly    时间: 2020-8-4 20:15
可以修改成oppo 华为的嘛?
作者: hassnn123    时间: 2020-8-4 22:14
感觉很有用,可以开发一下,ios的地理围栏很好用,安卓这边就缺一个比较靠谱的
作者: 吹风机    时间: 2020-8-7 11:49
froggyfly 发表于 2020-8-4 20:15
可以修改成oppo 华为的嘛?

理论上只要有找回手机的功能,都可以实现这个功能,欢迎其他厂商pr
作者: unison    时间: 2020-8-7 11:56
赞赞赞赞赞
作者: Hermit    时间: 2020-8-7 16:05
这个功能一定要顶到发烫为止!!!
作者: ilongjiang    时间: 2020-8-7 17:10
能不能直接接入node-red。要坐标就行。
作者: bjy2005    时间: 2020-8-9 20:58
装了一下插件真的可以识别到,就经纬度都有[attach]24314[/attach]

作者: sigal8075    时间: 2020-8-9 22:12
不错,我可以试试
作者: zmqo1234    时间: 2020-8-11 09:15
你好大神使用这个插件效果非常好,就是这个定位的面积比较大能不能改小一点。
作者: sigal8075    时间: 2020-8-11 10:28
这个是个好东东
作者: ybcswz    时间: 2020-8-12 02:38
GPS logger后台运行经常抽风好,还占资源,这个好
作者: mars.z    时间: 2020-8-13 18:57
本帖最后由 mars.z 于 2020-8-13 20:01 编辑

搞定了,但是不知道为什么这个时间不太对啊,更新时间显示比北京时间快了8个小时,ha的系统时间是正常的
作者: 吹风机    时间: 2020-8-13 21:25
mars.z 发表于 2020-8-13 18:57
搞定了,但是不知道为什么这个时间不太对啊,更新时间显示比北京时间快了8个小时,ha的系统时间是正常的 ...

已修复,下载0.2.1版本即可
作者: Planet    时间: 2020-8-13 21:40
要是能直接显示在地图上就好了。
作者: mars.z    时间: 2020-8-13 22:27
吹风机 发表于 2020-8-13 21:25
已修复,下载0.2.1版本即可

哇,神速修复,感谢
作者: 散步d小螃蟹    时间: 2020-8-14 08:42
请问这个怎么和用户绑定啊?用这个显示用户的位置该怎么搞?
作者: hhyhxc13    时间: 2020-8-14 12:00
大佬666,用上了,定位有些偏。。。
作者: 吹风机    时间: 2020-8-14 16:08
hhyhxc13 发表于 2020-8-14 12:00
大佬666,用上了,定位有些偏。。。

可以试试original类型
作者: 白云纷飞    时间: 2020-8-15 11:41
牛!马上试试看。官方的ha安卓客户端一直不更新位置,不知道啥问题,试试这个,还省电!伸手党感谢大佬分享

作者: 九天    时间: 2020-8-16 00:06
期待 华为的 类似功能
作者: xtjsp    时间: 2020-8-18 12:21
感谢分享
作者: wangyiyuan    时间: 2020-8-21 12:04
谢谢 我去试一下
作者: wangrenlu2003    时间: 2020-8-23 10:36
感谢大佬分享,赶紧试试去。
作者: HHHhhhH    时间: 2020-8-23 16:14
感谢楼主分享
作者: yinghu183    时间: 2020-9-10 11:42
不错  可以配合lovelace版本的高德地图使用。还可以在地图上显示路径。
作者: yinghu183    时间: 2020-9-10 12:43
可是为啥我的不显示update time和battery level呢?是因为我用的是小米3搞的么。。。。
[attach]24817[/attach]


作者: 729621470    时间: 2020-9-27 19:38
用hacs安装完,设置完configura文件之后在ha的集成里找不到,怎么办
作者: 729621470    时间: 2020-9-27 20:07
我发现我的手机能添加卡片,但是家人的不行,是手机要有homeassistant客户端吗
作者: 吹风机    时间: 2020-9-27 22:50
729621470 发表于 2020-9-27 20:07
我发现我的手机能添加卡片,但是家人的不行,是手机要有homeassistant客户端吗 ...

不需要homeAssistant客户端,只需要手机登录小米账号开启找回手机功能
作者: 729621470    时间: 2020-9-27 23:27
弄了一晚上,我2台红米,k30u一次性设置好,另一台k20pro一晚上都不显示位置,都开好了云服务
作者: 吹风机    时间: 2020-10-2 17:47
729621470 发表于 2020-9-27 23:27
弄了一晚上,我2台红米,k30u一次性设置好,另一台k20pro一晚上都不显示位置,都开好了云服务 ...

哈哈,没测试多台的情况
作者: ny3933    时间: 2020-10-14 17:19
我这两个月发现手机套餐每个月都多几块钱,查了一下是联通营业厅,是每个人发短信给106903291198这个号码,我百度搜了这个号码,也有几个遇到这个问题的,也是小米手机,有的人说是小米云服务激活会主动发短信给这种1069开头的号码,每条短信0.1元,而且还不走套餐里的免费短信额度,很郁闷,打了客服电话也没找到具体什么原因,想到8月份按照楼主方法添加了这个定位功能,扣费也是8月份开始扣的,推测可能是这个原因,想问一下楼上的老哥们有没有遇到相同问题的。
[attach]25231[/attach]


作者: wang8874    时间: 2020-10-14 18:26
这个看起来有点复杂啊
作者: 吹风机    时间: 2020-10-28 20:15
ny3933 发表于 2020-10-14 17:19
我这两个月发现手机套餐每个月都多几块钱,查了一下是联通营业厅,是每个人发短信给106903291198这个号码, ...

理论上短信激活小米云服务只有在手机更换手机卡的时候才会发送,你可以检查一下手机的小米云服务状态是否为开启状态
作者: xlsj519    时间: 2020-11-26 15:24
希望能加入个高德的坐标系
作者: xlsj519    时间: 2020-11-27 17:18
利用nodered实现小米手机实时定位追踪并在墨澜地图中显示
利用nodered和MQTT实现创建device_tracker实体,并在墨澜地图中显示

作者: yinghu183    时间: 2020-11-27 19:26
米兔电话手表可以用这个办法么?
作者: hnsxqs1    时间: 2020-12-6 08:36
感觉不错哦,期待楼主更新
作者: hnsxqs1    时间: 2020-12-6 10:14

mark 买一部小米手机试试
作者: scream2658    时间: 2020-12-6 22:01
华为手机可以吗?
作者: zraxx    时间: 2020-12-9 12:41
本帖最后由 zraxx 于 2020-12-9 13:08 编辑

出现错误(已解决,手机账号写错!):
2020-12-09 12:37:07 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up MiPhone_tracker platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 207, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 316, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 455, in _async_add_entity
    suggested_object_id or entity.name or DEVICE_DEFAULT_NAME
  File "/config/custom_components/MiPhone_tracker/sensor.py", line 92, in name
    return "Mi Cloud-" + self.device_name
TypeError: can only concatenate str (not "NoneType") to str
作者: zraxx    时间: 2020-12-9 13:29
请问支持2台手机定位?
作者: 快刀青衣    时间: 2020-12-10 23:52
本帖最后由 快刀青衣 于 2020-12-11 17:00 编辑

请问用过的筒子,这个耗电怎么样?fineemb的“小米云服务”试了感觉耗电略有点多……

已确认,耗电程度有增无减


作者: yangmanman    时间: 2020-12-17 08:49
*:..゙((ε(*´・ω・)っ†*゚¨゚゚・*:..☆
作者: fay000fay    时间: 2020-12-17 12:36
楼上,我有个问题,我小米手机上直接把home assistant卸载后。就追踪不到了,显示sensor离线 了。。然后我现在重新安装ha,也还是离线 ,头疼了。。。
作者: fay000fay    时间: 2020-12-17 13:02
fay000fay 发表于 2020-12-17 12:36
楼上,我有个问题,我小米手机上直接把home assistant卸载后。就追踪不到了,显示sensor离线 了。。然后我 ...

我研究发现,并不是卸载的问题。因为我另一台安卓卸载后,还是在线的。不知道是不是两台设备导致的问题。没搞明白。
作者: bdaedxmtdh    时间: 2021-2-5 19:19
风机大神   能让位置显示在地图里吗
作者: bdaedxmtdh    时间: 2021-2-6 23:05
使用平台MiPhone_tracker为域传感器添加实体时出错
下午11:02:46 – 传感器 (ERROR) - 消息首次出现在 下午11:02:46,显示了 2 次
get_sign失败
下午11:02:45 – MiPhone_tracker (WARNING)
Set-Cookie
下午11:02:45 – MiPhone_tracker (WARNING)
由于出现异常而无法连接到MQTT服务器:[Errno 111]连接被拒绝
下午11:02:45 – MQTT (ERROR)
删除未知面板面板
下午11:02:43 – Home Assistant Frontend (WARNING)
您正在使用尚未通过Home Assistant测试的MiPhone_tracker的自定义集成。该组件可能会导致稳定性问题,如果您在使用Home Assistant时遇到问题,请确保将其禁用。
下午11:02:42 – loader.py (WARNING) - 消息首次出现在 下午11:02:42,显示了 2 次


作者: bdaedxmtdh    时间: 2021-2-6 23:06
这是怎么了 大神

作者: zxyny1989    时间: 2021-2-9 20:54
谢谢分享,学习学习。
作者: zxyny1989    时间: 2021-2-24 16:10
没使用起来,现在用了官改的app,有位置的地理编码。
作者: jfmm    时间: 2021-7-19 12:52
zxyny1989 发表于 2021-2-24 16:10
没使用起来,现在用了官改的app,有位置的地理编码。

能请教下,官改app是哪个吗?
作者: zxyny1989    时间: 2021-7-19 15:13
jfmm 发表于 2021-7-19 12:52
能请教下,官改app是哪个吗?

这个帖子
作者: jfmm    时间: 2021-7-19 16:38
zxyny1989 发表于 2021-7-19 15:13
这个帖子。

谢谢大佬
作者: hanley    时间: 2021-9-12 22:32
大神,dockers  core-2021.9.5 安装后配置无效
作者: dotlife    时间: 2021-9-12 23:37
还有个xiaomi_cloud也无效了。。。
作者: coregeek    时间: 2021-10-24 12:10

牛的牛的

作者: wangzhenchao    时间: 2021-11-2 13:03
Platform error sensor.MiPhone_tracker - Integration 'MiPhone_tracker' not found.
平台误差传感器。没有找到集成的“MiPhone_tracker”。
我吧代码添加到configuration.yaml 里  就报错了   
作者: shadowba    时间: 2021-11-2 19:08
wangzhenchao 发表于 2021-11-2 13:03
Platform error sensor.MiPhone_tracker - Integration 'MiPhone_tracker' not found.
平台误差传感器。没 ...

同样报错的路过
作者: dongfang168    时间: 2021-11-23 16:06
本帖最后由 dongfang168 于 2021-11-23 16:08 编辑

我一样,平台误差传感器。 MiPhone_tracker -集成'MiPhone_tracker'没有发现。  

[传感器]配置无效:不提供所需密钥@ data['platform']。 没有


作者: dongfang168    时间: 2021-11-23 16:09
wangzhenchao 发表于 2021-11-2 13:03
Platform error sensor.MiPhone_tracker - Integration 'MiPhone_tracker' not found.
平台误差传感器。没 ...

你找到解决办法了吗?

作者: sunbabys    时间: 2022-2-9 23:58
哈哈,有意思
作者: hyq    时间: 2022-3-16 12:00
要验证码
作者: poplee    时间: 2022-3-20 21:00
我也是小米手机,学习一下
作者: Yangyoujia    时间: 2022-4-27 15:39
楼主真乃神人也
作者: hbxgzhc2    时间: 2022-7-11 22:37
这个太好了,只是新版本失效,楼主能否更新一波呢?
作者: sweetstzw    时间: 2022-7-29 22:29
发现一个新的,各位大佬验验货https://bbs.hassbian.com/forum.p ... =%E5%AE%9A%E4%BD%8D
作者: th11998844    时间: 2022-7-30 12:59
sweetstzw 发表于 2022-7-29 22:29
发现一个新的,各位大佬验验货https://bbs.hassbian.com/forum.php?mod=viewthread&tid=17191&highlight=%E ...

厉害了第一时间跳转
作者: gsw99    时间: 2024-6-3 22:41
管用!!
作者: jmkl1028    时间: 2024-12-29 20:31
起点就很高
作者: simplety    时间: 2025-1-24 10:10
https://github.com/lyj0309/xiaomi-cloud
自定义集成添加(不要用商店的),直接拉,实测可用




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5