我被锁定了!

以下部分处理无法登录的情况或需要恢复数据的情况。

忘记用户名

症状:我是拥有者,但我忘记了我的用户名

您是 Home Assistant 服务器的 拥有者,由于忘记了用户名而无法登录。

补救措施

  1. 检查是否满足以下条件:
    • 您正在使用 Home Assistant Operating SystemHome Assistant OS,即 Home Assistant 操作系统,是一个嵌入式、简约的操作系统,旨在运行 Home Assistant 生态系统。它是大多数用户推荐的安装方法。 [Learn more]
    • 您可以访问 Home Assistant 服务器。
  2. 打开与 Home Assistant 的终端连接:
    • 如果您使用的是 Home Assistant Green,请按照这些步骤 访问控制台
    • 如果您使用的是 Home Assistant Yellow,请按照以下步骤:
    • 如果您使用的是其他系统,请连接键盘和显示器。程序可能与 Green 相似。
    • 如果您使用的是 Home Assistant OVA(虚拟化映像):
      • 通过您的虚拟化平台的界面打开终端以访问系统控制台(例如,Proxmox、VMware、VirtualBox)。
      • 按照特定平台的步骤与虚拟机的控制台进行交互。
  3. 在终端中输入 auth list 命令。
    • 此命令列出您 Home Assistant 上注册的所有用户。

忘记密码

症状:我是拥有者,但我忘记了我的密码

您是 Home Assistant 的拥有者或管理员,并忘记了密码。

补救措施:重置拥有者的密码

如果您是拥有者或有管理员权限,可以根据您的情况选择不同的方法重置密码:

在仍然登录时重置密码(包括监督模式)

重置密码的方法取决于您的用户权限:

  • 如果您是没有管理员权限的普通用户,请请求拥有者 给您一个新密码
  • 如果您是拥有者,请选择以下程序之一来重置您的密码。
    • 您无法从 Home Assistant 内部恢复拥有者密码。
    • 每个系统只有一个拥有者。您无法添加新的拥有者。
  • 如果您是管理员,请添加一个新用户作为管理员,并给新用户一个您能记住的密码。
    1. 然后登出,并使用这个新用户登录。
    2. 通过这个新的管理员帐户重置您的密码(然后 删除这个新帐户)。
      • 您的配置将保持不变,您无须进行新的入门流程。

通过控制台重置拥有者的密码

仅在满足以下条件时使用此程序:

  • 您知道用户名。
  • 您可以 在设备本身 访问 Home Assistant 控制台(而不是通过附加组件的 SSH 终端)。
  1. 如果您使用的是 Home Assistant Yellow 或 Green,请参考它们的文档。
  2. 如果您不使用 Yellow 或 Green:连接到 Home Assistant 服务器的控制台:
    • 如果您使用虚拟机,请连接到您的虚拟机控制台。
    • 如果您使用其他主板,请连接键盘和显示器到您的设备并访问终端。该程序可能与 Home Assistant Green 的描述非常相似。
  3. 打开 Home Assistant 命令行后,输入以下命令:
    • 注意:existing_user 是占位符。用您的用户名替换它。
    • 注意:new_password 是占位符。用您的新密码替换它。
    • 命令auth reset --username 'existing_user' --password 'new_password' 演示如何输入 ha auth reset 命令的录像
    • 故障排除:如果您看到消息 zsh: command not found: auth,则可能是您没有在连接到设备本身的串行控制台中输入命令,而是在 Home Assistant 内部的终端中输入的。
  4. 现在您可以使用这个新密码登录 Home Assistant。

通过容器命令行重置用户的密码

如果您在容器中运行 Home Assistant,可以使用容器中的命令行与 hass 命令更改密码。以下步骤适用于名为 homeassistant 的 Docker 中的 Home Assistant Container。请注意,在容器中工作时,命令会花费一些时间来执行。

  1. docker exec -it homeassistant bash 打开容器命令行
  2. hass 创建一个默认用户,如果这是您第一次使用该工具
  3. hass --script auth --config /config change_password existing_user new_password 更改密码
  4. exit 退出容器命令行
  5. docker restart homeassistant 重启容器。

作为拥有者通过网页界面重置用户的密码

只有拥有者可以更改其他用户的密码。

  1. 在左下角,选择您的用户以进入 个人资料 页面,并确保 高级模式 已激活。
  2. 转到 设置 > 人员 并选择您要更改密码的人员。
  3. 在对话框底部,选择 更改密码
    • 注意:这是作为拥有者可用的,而不是管理员。
  4. 输入新密码,然后选择 确定
  5. 再次输入新密码以确认,并再次选择 确定
  6. 将显示一个确认框,文本为 密码修改成功

准备系统启动新的入门流程

如果您丢失与拥有者帐户相关的密码,并且以上步骤无法重置密码,那么解决此问题的唯一方法是启动新的入门流程。

  • 如果您拥有一个外部备份,且有其管理员帐户的登录凭据,您可以恢复该备份。

  • 如果您没有备份,重置设备将清除所有数据。

  • 如果您有 Home Assistant Green,请 重置 Green

  • 如果您有 Home Assistant Yellow,请 重置 Yellow

为 Home Assistant 恢复数据(包括监督模式)

除非您的 SD 卡/数据已损坏,否则您仍然可以访问您的文件或进一步进行故障排除。 有几条途径:

  • 直接将 USB 键盘和 HDMI 显示器连接到 Raspberry Pi。
  • 拆下 SD 并从另一台计算机(最好是运行 Linux 的计算机)访问文件。

直接连接

如果您使用的是 Raspberry Pi,您很可能必须在启动时断电以使显示器被识别。断电有损坏 SD 卡的风险,但您可能没有其他选项。大多数标准 USB 键盘应该容易被识别。

连接后,您会看到正在运行的 dmesg 日志。按下回车键以中断日志。 以 “root” 用户登录。没有密码。

然后您将进入 Home Assistant CLI,可以运行自定义命令。这些与您在使用 SSH 附加组件时使用的命令相同,但前面不需要使用 ha。例如:

  • core logs 以获取 Home Assistant Core 日志
  • supervisor logs 以获取管理员日志
  • host reboot 以重启主机
  • dns logs 用于检查 DNS
  • 等等(输入 help 将显示更多信息)

从 SD/HDD 访问文件

拆下 SD 并从另一台计算机访问文件

文件位于 EXT4 分区(hassos-data),路径为 /mnt/data/supervisor。 这些文件可以很容易地通过另一台支持 EXT 的 Linux 计算机访问。

对于 Windows 或 macOS,您将需要第三方软件。以下是一些选项。

删除用户

您需要是拥有者或具有管理员权限才能删除用户。

  1. 转到 设置 > 人员 并选择您要删除的人。
    • 注意:您不能删除拥有者。
  2. 在对话框底部,选择 删除
    • 将显示一个确认对话框。
  3. 要确认,请选择 确定