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

 找回密码
 立即注册
查看: 9340|回复: 15

[经验分享] 有用MikroTik路由器的吗?开启device_tracker出错【用SNMP搞定】

[复制链接]

12

主题

114

帖子

1412

积分

金牌会员

Rank: 6Rank: 6

积分
1412
金钱
1298
HASS币
0
发表于 2019-1-15 20:51:15 | 显示全部楼层 |阅读模式
本帖最后由 xiguaboy 于 2019-1-16 23:37 编辑

听大神意见,用SNMP搞定了,哈哈:

device_tracker:
  - platform: snmp
    host: 192.168.1.1
    community: public
    baseoid: 1.3.6.1.2.1.4.22.1.2


旧问题:
开启device_tracker后,
device_tracker:
  - platform: mikrotik
    host: 192.168.1.1
    username: admin
    password: xxxxxxx


日志显示:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/__init__.py", line 176, in async_setup_platform
    platform.get_scanner, hass, {DOMAIN: p_config})
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/mikrotik.py", line 38, in get_scanner
    scanner = MikrotikScanner(config[DOMAIN])
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/mikrotik.py", line 70, in __init__
    self._update_info()
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/mikrotik.py", line 184, in _update_info
    cmd='/caps-man/registration-table/getall')
  File "/config/deps/lib/python3.6/site-packages/librouteros/api.py", line 80, in __call__
    return self._readResponse()
  File "/config/deps/lib/python3.6/site-packages/librouteros/api.py", line 103, in _readResponse
    reply_word, words = self._readSentence()
  File "/config/deps/lib/python3.6/site-packages/librouteros/api.py", line 88, in _readSentence
    reply_word, words = self.protocol.readSentence()
  File "/config/deps/lib/python3.6/site-packages/librouteros/connections.py", line 147, in readSentence
    sentence = tuple(word for word in iter(self.readWord, b'\x00'))
  File "/config/deps/lib/python3.6/site-packages/librouteros/connections.py", line 147, in
    sentence = tuple(word for word in iter(self.readWord, b'\x00'))
  File "/config/deps/lib/python3.6/site-packages/librouteros/connections.py", line 164, in readWord
    return self.transport.read(length).decode(encoding=self.encoding, errors='strict')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 11: invalid start byte



请问大神,问题出在哪里了?



回复

使用道具 举报

14

主题

660

帖子

3959

积分

论坛元老

Rank: 8Rank: 8

积分
3959
金钱
3294
HASS币
10
发表于 2019-1-15 22:43:54 | 显示全部楼层
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 11: invalid start byte  尝试将路由器语言设置为英语试试  我也不懂 瞎猜的
回复

使用道具 举报

14

主题

660

帖子

3959

积分

论坛元老

Rank: 8Rank: 8

积分
3959
金钱
3294
HASS币
10
发表于 2019-1-15 22:44:56 | 显示全部楼层
或者设备名有中文
回复

使用道具 举报

12

主题

114

帖子

1412

积分

金牌会员

Rank: 6Rank: 6

积分
1412
金钱
1298
HASS币
0
 楼主| 发表于 2019-1-15 23:37:33 | 显示全部楼层
余歌唱晚 发表于 2019-1-15 22:43
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 11: invalid start byte  尝试将 ...

路由器本来没有中文,系统也是英文的设置
回复

使用道具 举报

73

主题

1165

帖子

6645

积分

论坛元老

Rank: 8Rank: 8

积分
6645
金钱
5475
HASS币
30
发表于 2019-1-16 09:48:01 | 显示全部楼层
我的ros一直使用的snmp,device_tracker用的非常完美。
回复

使用道具 举报

12

主题

114

帖子

1412

积分

金牌会员

Rank: 6Rank: 6

积分
1412
金钱
1298
HASS币
0
 楼主| 发表于 2019-1-16 23:36:21 | 显示全部楼层
xuyang 发表于 2019-1-16 09:48
我的ros一直使用的snmp,device_tracker用的非常完美。

用SNMP搞定了,换个思路海阔天空啊,哈哈
回复

使用道具 举报

0

主题

150

帖子

914

积分

高级会员

Rank: 4

积分
914
金钱
764
HASS币
0
发表于 2019-6-12 00:42:38 | 显示全部楼层
本帖最后由 charles0568 于 2019-6-12 16:57 编辑

請問下~ baseoid: 1.3.6.1.2.1.4.22.1.2 這串數字哪來的????能解惑嗎? 感激不進~~己解決~謝謝~~~
回复

使用道具 举报

2

主题

21

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
61
HASS币
0
发表于 2020-1-10 14:06:30 | 显示全部楼层
请问这两个个参数怎么找?
community: public
baseoid: 1.3.6.1.2.1.4.22.1.2
回复

使用道具 举报

2

主题

21

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
61
HASS币
0
发表于 2020-1-10 15:50:11 | 显示全部楼层
看了下普通家用路由器很少支持SNMP协议的
回复

使用道具 举报

0

主题

59

帖子

344

积分

论坛积极会员

积分
344
金钱
285
HASS币
0
发表于 2020-1-10 23:34:15 | 显示全部楼层
mikrotik:
  - host: 192.168.1.253
    username: !secret mikrotik_user
    password: !secret mikrotik_password
    login_method: token
    ssl: false
    method: dhcp
    track_devices: true

ros版本在6.43之前的login_method要用token,之后的用plain
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 02:38 , Processed in 0.063803 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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