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

 找回密码
 立即注册
查看: 4144|回复: 8

[插件集成] TP-Link XDR Series device_tracker 集成(利用路由管理界面)

[复制链接]

2

主题

10

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
62
HASS币
0
发表于 2021-12-4 07:29:15 | 显示全部楼层 |阅读模式
自从官方的 tplink 集成被移除后,它被当作自定义组件维护了一段时间。但是对目前中国大陆较多的 XDR 易展路由器并没有类似的解决方案。在研究了其中的代码之后,我将 XDR-1850 的方案合并到其中,并添加了显示设备名称的功能。详情可以去我 fork 的 repo 查看。
把文件解压缩后放到 custom_components 里,按如下配置 configuration.yaml 就可以食用了

tplink_router.zip

7.38 KB, 下载次数: 68

custom_components/

回复

使用道具 举报

2

主题

10

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
62
HASS币
0
 楼主| 发表于 2021-12-4 07:30:57 | 显示全部楼层
不知道为啥配置和注意事项被吞了,在这里重新发一下。

configuration.yaml

device_tracker:
  - platform: tplink_router
    host: YOUR_ROUTER_IP
    username: YOUR_ADMIN_USERNAME
    password: !secret tplink_router_password

对于 XDR 系列,密码加密算法仍然未知,因此必须使用加密密码:

转到路由器的登录页面。 (默认:192.168.0.1)
在密码字段中输入您用于登录的密码。
打开浏览器的网络监视器(通常按 F12,然后单击“网络”)。
按“确认”前清屏
成功登录后,右键单击第一个并选择“复制为 cURL”
将内容粘贴到其他地方并复制最后一行中不带引号的密码值(例如:--data-binary '{"method":"do","login":{"password":"SoMeEnCrYpTeDtExT" }}')
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2021-12-19 18:13:51 | 显示全部楼层
先感谢楼主的辛勤成果!
试了下,好用!
发现个问题:
   定义的带汉字的设备名称都显示为url编码后的类似 %AA%BB等内容,楼主可以改下么?
回复

使用道具 举报

2

主题

10

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
62
HASS币
0
 楼主| 发表于 2022-2-3 18:26:05 来自手机 | 显示全部楼层
netsnake 发表于 2021-12-19 18:13
先感谢楼主的辛勤成果!
试了下,好用!
发现个问题:

这应该是 device tracker 本身的限制,所有非 ascii 字符都会变成编码。我的设备中有一个 ø 都被替换了。解决方案目前估计只有重设备注名了
回复

使用道具 举报

0

主题

10

帖子

86

积分

注册会员

Rank: 2

积分
86
金钱
76
HASS币
0
发表于 2022-3-9 18:21:22 | 显示全部楼层
HACS里面装了,显示有tplink_router,但是集成里面怎么也搜不到tplink_router。
回复

使用道具 举报

22

主题

656

帖子

4578

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4578
金钱
3907
HASS币
40
发表于 2022-5-30 19:30:24 | 显示全部楼层
现在HACS中搜不到了
回复

使用道具 举报

3

主题

48

帖子

601

积分

高级会员

Rank: 4

积分
601
金钱
553
HASS币
0
发表于 2022-5-30 19:54:34 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

18

帖子

820

积分

高级会员

Rank: 4

积分
820
金钱
802
HASS币
0
发表于 2023-4-5 22:26:07 | 显示全部楼层
感謝分享
不過我的TL-XDR3050不能用
我把class XDRSeriesTplinkDeviceScanner(TplinkDeviceScanner):
裡面的headers={REFERER: referer}
改成headers={"REFERER": referer}
就可以了

順便把%%也改了
在程式碼的第一個def前再加上以下
def url_parse(url):
    l = len(url)
    data = bytearray()
    i = 0
    while i < l:
        if url[i] != '%':
            d = ord(url[i])
            i += 1
        else:
            d = int(url[i+1:i+3], 16)
            i += 3
        data.append(d)
    return data.decode('utf8')


再把
device['mac'].replace('-', ':'): device['hostname']
改成
device['mac'].replace('-', ':'): url_parse(device['hostname'])
中文就不會亂碼了
回复

使用道具 举报

0

主题

10

帖子

87

积分

注册会员

Rank: 2

积分
87
金钱
77
HASS币
0
发表于 2024-2-14 14:49:17 | 显示全部楼层
我想问下 username是啥呀,tplink里面貌似没有用户名
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 20:24 , Processed in 0.059746 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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