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

 找回密码
 立即注册
查看: 21142|回复: 10

[求助] asuswrt和devicetracker无法使用了

[复制链接]

106

主题

551

帖子

2789

积分

金牌会员

Rank: 6Rank: 6

积分
2789
金钱
2238
HASS币
20
发表于 2020-2-26 01:26:27 | 显示全部楼层 |阅读模式
本帖最后由 comeon_000 于 2020-2-26 22:18 编辑

今天想换坛友提供的一个非官方asuswrt插件,更换后配置检查正常,重启后就报错,说是asuswrt插件和devicetracker平台都无法安装
把插件从customer_component里删除恢复配置,重启后还是报下面的错误,实际配置检查没有错误



The following integrations and platforms could not be set up:
Please check your config.

日志有下面的错误信息,求大神帮忙看看有没有解决办法


Error during setup of component asuswrt
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 170, in _async_setup_component
    hass, processed_config
  File "/config/custom_components/asuswrt/__init__.py", line 80, in async_setup
    await api.connection.async_connect()
  File "/usr/local/lib/python3.7/site-packages/aioasuswrt/connection.py", line 72, in async_connect
    self._client = await asyncssh.connect(self._host, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/asyncssh/connection.py", line 5644, in connect
    conn_factory, 'Opening SSH connection to')
  File "/usr/local/lib/python3.7/site-packages/asyncssh/connection.py", line 170, in _connect
    await conn.wait_established()
  File "/usr/local/lib/python3.7/site-packages/asyncssh/connection.py", line 1882, in wait_established
    await self._waiter
asyncssh.misc.PermissionDenied: Permission denied
重装了HA还是不行,不过看组件安装终于切换到官网了
看日志里的错误和之前不同了,难道是官网的组件出问题了,汗!!

Error during setup of component asuswrt
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 170, in _async_setup_component
    hass, processed_config
  File "/usr/src/homeassistant/homeassistant/components/asuswrt/__init__.py", line 58, in async_setup
    conf = config[DOMAIN]
KeyError: 'asuswrt'

看之前从官网下载的组件代码,报错的代码行应该对应65行,貌似也没啥错误,DOMAIN在上面定义的是asuswrt也没错啊
"""Support for ASUSWRT devices."""
import logging

from aioasuswrt.asuswrt import AsusWrt
import voluptuous as vol

from homeassistant.const import (
    CONF_HOST,
    CONF_MODE,
    CONF_PASSWORD,
    CONF_PORT,
    CONF_PROTOCOL,
    CONF_USERNAME,
)
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.discovery import async_load_platform

_LOGGER = logging.getLogger(__name__)

CONF_DNSMASQ = "dnsmasq"
CONF_INTERFACE = "interface"
CONF_PUB_KEY = "pub_key"
CONF_REQUIRE_IP = "require_ip"
CONF_SENSORS = "sensors"
CONF_SSH_KEY = "ssh_key"

DOMAIN = "asuswrt"
DATA_ASUSWRT = DOMAIN

DEFAULT_SSH_PORT = 22
DEFAULT_INTERFACE = "eth0"
DEFAULT_DNSMASQ = "/var/lib/misc"

SECRET_GROUP = "Password or SSH Key"
SENSOR_TYPES = ["upload_speed", "download_speed", "download", "upload"]

CONFIG_SCHEMA = vol.Schema(
    {
        DOMAIN: vol.Schema(
            {
                vol.Required(CONF_HOST): cv.string,
                vol.Required(CONF_USERNAME): cv.string,
                vol.Optional(CONF_PROTOCOL, default="ssh"): vol.In(["ssh", "telnet"]),
                vol.Optional(CONF_MODE, default="router"): vol.In(["router", "ap"]),
                vol.Optional(CONF_PORT, default=DEFAULT_SSH_PORT): cv.port,
                vol.Optional(CONF_REQUIRE_IP, default=True): cv.boolean,
                vol.Exclusive(CONF_PASSWORD, SECRET_GROUP): cv.string,
                vol.Exclusive(CONF_SSH_KEY, SECRET_GROUP): cv.isfile,
                vol.Exclusive(CONF_PUB_KEY, SECRET_GROUP): cv.isfile,
                vol.Optional(CONF_SENSORS): vol.All(
                    cv.ensure_list, [vol.In(SENSOR_TYPES)]
                ),
                vol.Optional(CONF_INTERFACE, default=DEFAULT_INTERFACE): cv.string,
                vol.Optional(CONF_DNSMASQ, default=DEFAULT_DNSMASQ): cv.isdir,
            }
        )
    },
    extra=vol.ALLOW_EXTRA,
)


async def async_setup(hass, config):
    """Set up the asuswrt component."""

 conf = config[DOMAIN]

    api = AsusWrt(
        conf[CONF_HOST],
        conf[CONF_PORT],
        conf[CONF_PROTOCOL] == "telnet",
        conf[CONF_USERNAME],
        conf.get(CONF_PASSWORD, ""),
        conf.get("ssh_key", conf.get("pub_key", "")),
        conf[CONF_MODE],
        conf[CONF_REQUIRE_IP],
        conf[CONF_INTERFACE],
        conf[CONF_DNSMASQ],
    )

    await api.connection.async_connect()
    if not api.is_connected:
        _LOGGER.error("Unable to setup component")
        return False

    hass.data[DATA_ASUSWRT] = api

    hass.async_create_task(
        async_load_platform(
            hass, "sensor", DOMAIN, config[DOMAIN].get(CONF_SENSORS), config
        )
    )
    hass.async_create_task(
        async_load_platform(hass, "device_tracker", DOMAIN, {}, config)
    )

    return True


回复

使用道具 举报

40

主题

2176

帖子

8288

积分

元老级技术达人

积分
8288
金钱
6097
HASS币
110
发表于 2020-2-26 08:49:12 | 显示全部楼层
我现在用官方的 好像也可以,各种版本的asuswrt都出现过一段时间所有设备都离线的情况
之前发的那个好像需要依赖,我打包发出来 aioasuswrt.zip (11.77 KB, 下载次数: 39)
回复

使用道具 举报

106

主题

551

帖子

2789

积分

金牌会员

Rank: 6Rank: 6

积分
2789
金钱
2238
HASS币
20
 楼主| 发表于 2020-2-26 09:34:08 | 显示全部楼层
ghostist 发表于 2020-2-26 08:49
我现在用官方的 好像也可以,各种版本的asuswrt都出现过一段时间所有设备都离线的情况
之前发的那个好像需 ...

好的,我晚上回去试试,另外为啥我回退之前官方的配置还会报错呢,感觉更换本地同名组件后,系统就不会再加载官方的组件了
回复

使用道具 举报

40

主题

2176

帖子

8288

积分

元老级技术达人

积分
8288
金钱
6097
HASS币
110
发表于 2020-2-26 10:14:30 | 显示全部楼层
comeon_000 发表于 2020-2-26 09:34
好的,我晚上回去试试,另外为啥我回退之前官方的配置还会报错呢,感觉更换本地同名组件后,系统就不会再 ...

custom component里有同名的话,系统就不加载默认的了,你把这个删掉 系统就加载原来的
回复

使用道具 举报

106

主题

551

帖子

2789

积分

金牌会员

Rank: 6Rank: 6

积分
2789
金钱
2238
HASS币
20
 楼主| 发表于 2020-2-26 10:21:20 来自手机 | 显示全部楼层
ghostist 发表于 2020-2-26 10:14
custom component里有同名的话,系统就不加载默认的了,你把这个删掉 系统就加载原来的 ...

我恢复的时候把custom下的已经删除了,可是还是会报错,这是让我比较疑惑的地方,感觉像是系统bug
回复

使用道具 举报

106

主题

551

帖子

2789

积分

金牌会员

Rank: 6Rank: 6

积分
2789
金钱
2238
HASS币
20
 楼主| 发表于 2020-2-26 19:36:22 | 显示全部楼层
ghostist 发表于 2020-2-26 10:14
custom component里有同名的话,系统就不加载默认的了,你把这个删掉 系统就加载原来的 ...

还是不行,关键是恢复官方组件也恢复不了,没办法只好重装HA了,这个追踪功能还挺重要
回复

使用道具 举报

106

主题

551

帖子

2789

积分

金牌会员

Rank: 6Rank: 6

积分
2789
金钱
2238
HASS币
20
 楼主| 发表于 2020-2-26 21:08:09 | 显示全部楼层
本帖最后由 comeon_000 于 2020-2-26 21:12 编辑

重装HA也不行,把几个关键配置文件恢复后,还是有这个上面的错误,要奔溃了

配置很简单,应该没啥错,custom_components里也没有asuswrt的第三方插件了向大神求救~!
看错误描述貌似说的是ssh登录被拒绝,但是我用其他终端登录路由器也没啥问题
asuswrt: 
  host: 192.168.*.*
  protocol: ssh
  mode: ap
  username: ***
  password: ***
    - upload
    - download
    - upload_speed
    - download_speed
device_tracker: 
  - platform: asuswrt
    interval_seconds: 3  #这里是检测间隔,越短反应越快,但不建议设为3s以下
    consider_home: 10  #这是断线后,仍认为设备为home状态的延时,建议10s为佳
    track_new_devices: yes

回复

使用道具 举报

106

主题

551

帖子

2789

积分

金牌会员

Rank: 6Rank: 6

积分
2789
金钱
2238
HASS币
20
 楼主| 发表于 2020-2-26 22:32:39 | 显示全部楼层
把配置重新写了一遍,莫名其妙的好了……………………
咋能这么不稳定呢
回复

使用道具 举报

40

主题

2176

帖子

8288

积分

元老级技术达人

积分
8288
金钱
6097
HASS币
110
发表于 2020-2-26 22:34:12 | 显示全部楼层
comeon_000 发表于 2020-2-26 21:08
重装HA也不行,把几个关键配置文件恢复后,还是有这个上面的错误,要奔溃了

配置很简单,应该没啥错,cu ...

官方只保留了asuswrt:吧
device_tracker: 这部分整体都删除 这个好像都弃用了
回复

使用道具 举报

9

主题

360

帖子

1192

积分

金牌会员

Rank: 6Rank: 6

积分
1192
金钱
832
HASS币
0
发表于 2021-3-13 19:49:50 | 显示全部楼层
 今天升级了也遇到一样的问题!初步怀疑是新的集成检测dnsmasq.leases而我没用路由器的dns用的是另外一台上面的adguard导致的
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 09:46 , Processed in 0.067628 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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