飞牛fnOS集成是一个非官方提供支持的 Home Assistant 的集成组件,它可以让您在 Home Assistant 中将飞牛fnOS视为智能设备。
Home Assistant 版本要求:
- Core
$\geq$ 2024.4.4- Operating System
$\geq$ 13.0Python 版本要求:$\geq$ 3.12.0
pyfnOS 依赖要求:
fnos>=0.13.0原因:Home Assistant Core 2024.4.4 要求 Python >= 3.12.0(参见 pyproject.toml 中的
requires-python配置项)。
cd config
git clone https://github.com/Timandes/fnos-home-assistant.git
cd fnos-home-assistant
./install.sh /config推荐使用此方法安装这个集成组件,可以及时同步最新的功能。
方法 2: HACS
一键从 HACS 安装集成:
或者,HACS > 在搜索框中输入 fnos > 点击 飞牛fnOS ,进入集成详情页 > DOWNLOAD
下载并将 custom_components/fnos 文件夹复制到 Home Assistant 的 config/custom_components 文件夹下。
设置 > 设备与服务 > 添加集成 > 搜索“fnOS” > 下一步 > 请点击此处进行登录 > 使用飞牛fnOS帐号登录(注意:这里是飞牛fnOS系统管理员帐号,不是FN Connect帐号)
从集成依赖 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 配置目录,不要公开分享该文件或调试包。
用一个载有飞牛fnOS的NAS中的管理员帐号登录并配置完成后,您可以在 fnOS Integration 页面中继续添加其他NAS的帐号。
方法:设置 > 设备与服务 > 已配置 > fnOS > 添加中枢 > 下一步 > 请点击此处进行登录 > 使用飞牛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 字段。如果 passed 为 true,显示 "Healty",表示硬盘健康状态正常;如果 passed 为 false,显示 "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。 |