找回密码
 立即注册
搜索
楼主: dscao

[插件集成] 云平台GPS集成[2025.6.13]

 火.. [复制链接]

5

主题

100

回帖

2205

积分

论坛DIY达人

积分
2205
金钱
2100
HASS币
0
发表于 2025-6-9 14:33:00 | 显示全部楼层
楼主,我用的是车连星的设备,不知道能不能也接入hass呢,APP名字是车连星,这个是后台http://www.39gps.com/login
回复

使用道具 举报

1

主题

23

回帖

525

积分

高级会员

积分
525
金钱
501
HASS币
0
发表于 2025-6-10 10:31:48 | 显示全部楼层
macless-haystack配置好后显示没有设备或实体,调试日志如下,请dscao大佬过目
2025-06-10 10:23:36.424 DEBUG (MainThread) [custom_components.cloud_gps] ['1234567']
2025-06-10 10:23:36.424 DEBUG (MainThread) [custom_components.cloud_gps] Data macless_haystack , ['1234567'] will be update every 0:10:00
2025-06-10 10:23:36.424 DEBUG (MainThread) [custom_components.cloud_gps.macless_haystack_data_fetcher] ['1234567'] Loaded persisted data: {}
2025-06-10 10:23:36.425 DEBUG (SyncWorker_2) [custom_components.cloud_gps.macless_haystack_data_fetcher] XXXXXX_devices.json: {'accessoryId': 1234567, 'ids': None, 'days': 1}
2025-06-10 10:23:36.432 WARNING (MainThread) [custom_components.cloud_gps.macless_haystack_data_fetcher] ['1234567'] No new data available, using persisted data
2025-06-10 10:23:36.432 ERROR (MainThread) [custom_components.cloud_gps] [['1234567']]Unexpected error updating data: 'trackerdata'
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 974, in json
    return complexjson.loads(self.text, **kwargs)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/simplejson/__init__.py", line 514, in loads
    return _default_decoder.decode(s)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^
  File "/usr/local/lib/python3.13/site-packages/simplejson/decoder.py", line 386, in decode
    obj, end = self.raw_decode(s)
               ~~~~~~~~~~~~~~~^^^
  File "/usr/local/lib/python3.13/site-packages/simplejson/decoder.py", line 416, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cloud_gps/macless_haystack_data_fetcher.py", line 384, in get_data
    devicesinfodata = await self.hass.async_add_executor_job(self._get_devices_info)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/cloud_gps/macless_haystack_data_fetcher.py", line 99, in _get_devices_info
    resp = requests.post(url, headers=headers, json=p_data).json()
  File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 978, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/cloud_gps/__init__.py", line 246, in _async_update_data
    data = await self._fetcher.get_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cloud_gps/macless_haystack_data_fetcher.py", line 391, in get_data
    self.trackerdata[imei] = self._persisted_data["trackerdata"][imei] or {}
                             ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'trackerdata'
2025-06-10 10:23:36.436 DEBUG (MainThread) [custom_components.cloud_gps] Finished fetching cloud_gps data in 0.012 seconds (success: True)
2025-06-10 10:23:36.437 DEBUG (MainThread) [custom_components.cloud_gps.sensor] coordinator sensors: {}
2025-06-10 10:23:36.437 DEBUG (MainThread) [custom_components.cloud_gps.sensor] enabled_sensors: ['lastseen', 'address', 'status', 'battery_status']
2025-06-10 10:23:36.438 DEBUG (MainThread) [custom_components.cloud_gps.switch] coordinator switchs: {}
2025-06-10 10:23:36.438 DEBUG (MainThread) [custom_components.cloud_gps.switch] enabled_switchs: []
2025-06-10 10:23:36.438 DEBUG (MainThread) [custom_components.cloud_gps.button] coordinator buttons: {}
2025-06-10 10:23:36.438 DEBUG (MainThread) [custom_components.cloud_gps.button] enabled_buttons: []
回复

使用道具 举报

79

主题

1375

回帖

2万

积分

元老级技术达人

积分
28509
金钱
27015
HASS币
290
 楼主| 发表于 2025-6-10 10:35:17 | 显示全部楼层
本帖最后由 dscao 于 2025-6-10 10:44 编辑
lihao 发表于 2025-6-10 10:31
macless-haystack配置好后显示没有设备或实体,调试日志如下,请dscao大佬过目
...

这个情况说明,这个json对应的设备没有最新1天内的定位信息,而且第一次使用系统中没有历史记录,导致这种错误。看来还要给这种情况加一个兼容性及提示才好了。

加入集成前最好先在"http://lovelyelfpop.atomgit.net/macless_haystack_pages/"上测试一下json文件是否能正常获取到定位信息,成功无误后再操作。
回复

使用道具 举报

79

主题

1375

回帖

2万

积分

元老级技术达人

积分
28509
金钱
27015
HASS币
290
 楼主| 发表于 2025-6-10 10:43:44 | 显示全部楼层
kittyme 发表于 2025-6-9 14:33
楼主,我用的是车连星的设备,不知道能不能也接入hass呢,APP名字是车连星,这个是后台http://www.39gps.co ...

应该是可以,目前没有计划。
回复

使用道具 举报

1

主题

23

回帖

525

积分

高级会员

积分
525
金钱
501
HASS币
0
发表于 2025-6-10 10:44:48 | 显示全部楼层
dscao 发表于 2025-6-10 10:35
这个情况说明,这个json对应的设备没有最新1天内的定位信息,而且第一次使用系统中没有历史记录,导致这种 ...

我生成的json里的id都是纯数字,name是随机字母加数字,如下:
{"id": 965892,"colorComponents": [    0,    1,    0,    1],"name": "S2KQWL","privateKey":

日志里没看到name,只看到id了,配置里的“启用的设备唯一编号”显示的也是7位的数字id号
回复

使用道具 举报

1

主题

23

回帖

525

积分

高级会员

积分
525
金钱
501
HASS币
0
发表于 2025-6-10 15:19:29 | 显示全部楼层
是一键工具生成密钥的问题,生成的json文件和generate_keys.py生成出来的不一致,在web和app上没问题,ha上就用不起来了
回复

使用道具 举报

2

主题

494

回帖

3062

积分

论坛元老

积分
3062
金钱
2566
HASS币
0
QQ
发表于 2025-6-11 08:26:27 | 显示全部楼层
感谢分享
回复

使用道具 举报

79

主题

1375

回帖

2万

积分

元老级技术达人

积分
28509
金钱
27015
HASS币
290
 楼主| 发表于 2025-6-11 13:31:39 | 显示全部楼层
lihao 发表于 2025-6-10 15:19
是一键工具生成密钥的问题,生成的json文件和generate_keys.py生成出来的不一致,在web和app上没问题,ha上 ...

有空试一下最新版2025.6.11 对于“一键airtag.exe”生成的json文件是否正常。
回复

使用道具 举报

6

主题

268

回帖

3146

积分

论坛元老

积分
3146
金钱
2872
HASS币
0
发表于 2025-6-11 21:29:26 | 显示全部楼层
正需要呢。
回复

使用道具 举报

1

主题

23

回帖

525

积分

高级会员

积分
525
金钱
501
HASS币
0
发表于 2025-6-12 11:39:40 | 显示全部楼层
本帖最后由 lihao 于 2025-6-12 16:13 编辑
dscao 发表于 2025-6-11 13:31
有空试一下最新版2025.6.11 对于“一键airtag.exe”生成的json文件是否正常。

可能还有个小问题,一键工具生成的id与name值不一样,是随机数字,无法获得位置信息,应该使用name的键值获取信标位置

测试后还是不行,一键工具的json中只有additionalKeys,缺少additionalHashedAdvKeys键值,web端可以使用additionalKeys(.keys文件中的Private key)获取位置,而集成中只能使用additionalHashedAdvKeys(.keys文件中的Hashed adv key)获取位置,是不是获取位置的方法不太一样。

我手动修改了json文件是可以使用的,修改了三处,一是修改id键值为name键值;二是增加hashedAdvKey,值是.keys文件内容最后一个Hashed adv key,三是增加additionalHashedAdvKeys值是.keys文件里除了最后一个所有的Hashed adv key

以上供参考
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-6-22 14:01 , Processed in 0.181410 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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