Skip to content

Timandes/fnos-home-assistant

Repository files navigation

飞牛fnOS HomeAssistant组件

飞牛fnOS集成是一个非官方提供支持的 Home Assistant 的集成组件,它可以让您在 Home Assistant 中将飞牛fnOS视为智能设备。

安装

Home Assistant 版本要求:

  • Core $\geq$ 2024.4.4
  • Operating System $\geq$ 13.0

Python 版本要求:$\geq$ 3.12.0

pyfnOS 依赖要求:fnos>=0.13.0

原因:Home Assistant Core 2024.4.4 要求 Python >= 3.12.0(参见 pyproject.toml 中的 requires-python 配置项)。

方法 1:使用 git clone 命令从 GitHub 下载

cd config
git clone https://github.com/Timandes/fnos-home-assistant.git
cd fnos-home-assistant
./install.sh /config

推荐使用此方法安装这个集成组件,可以及时同步最新的功能。

方法 2: HACS

一键从 HACS 安装集成:

打开您的 Home Assistant 实例并打开 Home Assistant 社区商店内的飞牛fnOS集成。

或者,HACS > 在搜索框中输入 fnos > 点击 飞牛fnOS ,进入集成详情页 > DOWNLOAD

方法 3:通过 SambaFTPS 手动安装

下载并将 custom_components/fnos 文件夹复制到 Home Assistant 的 config/custom_components 文件夹下。

配置

登录

设置 > 设备与服务 > 添加集成 > 搜索“fnOS” > 下一步 > 请点击此处进行登录 > 使用飞牛fnOS帐号登录(注意:这里是飞牛fnOS系统管理员帐号,不是FN Connect帐号)

打开您的 Home Assistant 实例并开始配置一个新的飞牛fnOS集成实例。

双重验证(2FA)

从集成依赖 fnos>=0.13.0 开始,配置流程支持已绑定双重验证的 fnOS 账号。输入用户名和密码后,如果 fnOS 要求双重验证,Home Assistant 会继续提示输入身份验证器应用中的 6 位验证码。

提交验证码时,集成会请求 fnOS 信任当前 Home Assistant 设备,以减少后续验证码要求。是否后续免验证码由 fnOS 服务端决定。

如果 fnOS 提示该账号被要求启用双重验证但尚未绑定验证器,请先在 fnOS Web 端完成双重验证设置,再回到 Home Assistant 添加集成。

重新认证

配置完成后,集成会保存 fnOS 返回的 token、long token 和 decrypted secret,用于 Home Assistant 重启、token 刷新和断线重连时恢复会话。

如果 fnOS token 过期、失效或不可用,Home Assistant 会在集成页面提示“重新配置”。点击后按向导输入当前 6 位双重验证码即可重新认证。重新认证成功后,集成会更新保存的认证信息并重新加载 fnOS 集成。

安全提示:上述认证信息与账号密码一样属于敏感数据,会随 Home Assistant 配置项存储在 .storage/core.config_entries 中。请妥善保护 Home Assistant 配置目录,不要公开分享该文件或调试包。

多NAS登录

用一个载有飞牛fnOS的NAS中的管理员帐号登录并配置完成后,您可以在 fnOS Integration 页面中继续添加其他NAS的帐号。

方法:设置 > 设备与服务 > 已配置 > fnOS > 添加中枢 > 下一步 > 请点击此处进行登录 > 使用飞牛fnOS帐号登录

打开您的 Home Assistant 实例并显示飞牛fnOS集成。

轮询间隔配置

集成安装后,可在集成配置页面调整轮询间隔:

设置 > 设备与服务 > 已配置 > fnOS > 点击集成卡片上的"配置"按钮

配置项 说明 默认值 推荐范围
系统轮询间隔 CPU、内存、网络、运行时间 30 秒 10-300 秒
磁盘轮询间隔 存储卷、S.M.A.R.T. 健康状态 3600 秒(1小时) 300-86400 秒

提示:磁盘轮询会触发物理磁盘读取,可能唤醒休眠中的硬盘。如果希望硬盘保持休眠状态,建议将磁盘轮询间隔设置为较长值(如 1 小时或更长)。

文档

硬盘健康监测算法说明

本组件提供以下四个硬盘健康监测指标:

指标名称 算法逻辑
Status (S.M.A.R.T) 定义硬盘的总体健康状况。直接显示 S.M.A.R.T. 的 smart_status.passed 字段。如果 passedtrue,显示 "Healty",表示硬盘健康状态正常;如果 passedfalse,显示 "Unhealty",表示硬盘健康状态异常;如果无法获取S.M.A.R.T.信息,显示 "Unknown"
Below min remaining life 着重检查硬盘的损耗是否还在可控范围内。根据硬盘类型及日常运维经验采用不同算法:
普通 HDD:检查 S.M.A.R.T. 属性 ID=5(重映射扇区计数)的 raw.value 是否大于0。如果 raw.value > 0,则触发告警。
NVMe SSD:检查 percentage_used(已用寿命百分比)是否高于50。如果 percentage_used >= 50,则触发告警。
SAS HDD:检查 smart.scsi_grown_defect_list 是否大于0。如果 smart.scsi_grown_defect_list > 0,则触发告警。
Exceeded max bad sectors 根据硬盘类型采用不同算法:
普通 HDD:检查 S.M.A.R.T. 属性 ID=5(重映射扇区计数)的 value 是否低于 thresh(阈值)。如果 value < thresh,则触发告警。
NVMe SSD:检查 available_spare(可用备用空间)是否低于 available_spare_threshold(可用备用空间阈值)。如果 available_spare < available_spare_threshold,则触发告警。
SAS HDD:检查 smart.scsi_grown_defect_list 是否大于0。如果 smart.scsi_grown_defect_list > 0,则触发告警(此行为存疑,待确认)。
Reallocated sector/Retired block/Grown Defect count 提取 S.M.A.R.T. 属性 ID=5(重映射扇区计数)的 raw.value 字段,显示硬盘的重映射扇区数量(对于 SSD 则为已退役块数量)。该数值越大,表示硬盘健康状况越差。如果硬盘不支持或没有此属性(例如某些 NVMe SSD),则返回 -1

Releases

Packages

Contributors

Languages