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

 找回密码
 立即注册
查看: 102220|回复: 81

[插件集成] 另辟蹊径,利用小米云服务获取手机 精准 稳定的定位信息

  [复制链接]

3

主题

21

帖子

694

积分

论坛技术达人

积分
694
金钱
658
HASS币
60
发表于 2020-8-2 22:29:38 | 显示全部楼层 |阅读模式
本帖最后由 吹风机 于 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 中添加以下语句
sensor:
  - platform: MiPhone_tracker
    account: '13888888888'
    password: '123456789'
    update_delta: 300
    device_choose: 1
    coordinate_type: original

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

填写完保存,重启

批注 2020-08-02 222149.png 批注 2020-08-02 222149.png
由于才入坑几星期,找了一堆资料不知道怎么创建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 三种坐标类型



MiPhone_tracker_v0.2.2.zip (4.93 KB, 下载次数: 268)



评分

参与人数 10金钱 +96 HASS币 +20 收起 理由
lqf1206 + 5 纳尼,还有这种操作?
coregeek + 2 大神666!
hundajdx + 1 厉害了word楼主!
hanwei0708 + 5 膜拜大神!
mars.z + 10 这个很给力啊,不用第三方后台耗电了.
windgo + 16 大神666!
jyz_0501 + 20 虽然没有小米手机,但这个必须大大的赞!.
+ 20 + 20 纳尼,还有这种操作?
zmg + 5
咸味土豆 + 12 大神666!

查看全部评分

回复

使用道具 举报

0

主题

11

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
19
HASS币
0
发表于 2020-8-2 22:38:22 | 显示全部楼层
学习学习
回复

使用道具 举报

6

主题

226

帖子

3357

积分

论坛元老

Rank: 8Rank: 8

积分
3357
金钱
3131
HASS币
0
发表于 2020-8-2 23:30:11 | 显示全部楼层
mark 期待楼主的完善
回复

使用道具 举报

71

主题

1146

帖子

6319

积分

论坛元老

Rank: 8Rank: 8

积分
6319
金钱
5168
HASS币
30
发表于 2020-8-3 04:32:08 | 显示全部楼层
功能很强大,感谢
回复

使用道具 举报

7

主题

359

帖子

1294

积分

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
935
HASS币
0
发表于 2020-8-3 09:05:16 | 显示全部楼层
这个好啊,还不需要第三方app后台耗电
回复

使用道具 举报

71

主题

1146

帖子

6319

积分

论坛元老

Rank: 8Rank: 8

积分
6319
金钱
5168
HASS币
30
发表于 2020-8-3 09:33:27 | 显示全部楼层
可以通过ha到nodered进入traccar,再接入ha,就可以将sensor转为device_tracker
回复

使用道具 举报

3

主题

150

帖子

3580

积分

论坛元老

Rank: 8Rank: 8

积分
3580
金钱
3425
HASS币
30
发表于 2020-8-3 10:26:26 | 显示全部楼层
这个太实用啦
回复

使用道具 举报

123

主题

4626

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16013
金钱
11302
HASS币
45
发表于 2020-8-3 13:21:08 | 显示全部楼层
device_tracker比sensor貌似更简单些,直接返回坐标就行了,可以看一下其他的device_tracker怎么写的

                               
登录/注册后可看大图
回复

使用道具 举报

1

主题

85

帖子

1168

积分

金牌会员

Rank: 6Rank: 6

积分
1168
金钱
1083
HASS币
0
发表于 2020-8-3 14:07:53 | 显示全部楼层
牛  支持大佬
回复

使用道具 举报

2

主题

91

帖子

1402

积分

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1311
HASS币
0
发表于 2020-8-4 09:10:04 | 显示全部楼层
是不是华为也可以同等操作?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 05:59 , Processed in 0.113973 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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