实战指南)
Home Assistant 中 Sonarr 磁盘空间查询 Actionsonarr.get_diskspace实战指南【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本指南以 Home Assistant 官方文档库中 source/_actions/sonarr.get_diskspace.markdown 为骨架完整讲解sonarr.get_diskspace动作Action的用途、UI 配置、YAML 调用方式、参数与响应数据结构并结合 Sonarr 集成文档 与动作页生成插件options_yaml.rb给出源码级佐证。读完本文你将能够在自动化或脚本中获取 Sonarr 全部存储位置的磁盘占用信息并通过响应变量实现磁盘空间不足时告警等实战场景。动作概述这个 Action 能做什么sonarr.get_diskspace是 Home Assistant 为 Sonarr 集成提供的一个查询类动作用于检索 Sonarr 中配置的所有存储位置的磁盘空间信息即 Sonarr 实例在Settings Media Management中配置的根目录/下载路径等存储位置。与 Sonarr 集成自带的sensor.sonarr_disk_space默认禁用、仅汇总可用磁盘空间 GB 数不同这个动作返回的是结构化的完整磁盘明细包括每个路径的标签、剩余空间、总空间、使用的单位以及使用率百分比。该动作返回结果存放在响应变量response variable中你可以在同一自动化或脚本的后续步骤中使用这些数据例如当剩余空间低于阈值时给自己发送告警通知。从文档页面的 front matter 可以看到官方将该动作与 sonarr.get_series、sonarr.get_queue 列为相关动作适合在自动化中组合使用。从界面UI调用该动作如果你更习惯可视化配置自动化可以按照 ui_header.md 所描述的流程操作进入Settings Automations scenes。打开一个现有的自动化或脚本或选择Create automation Create new automation。如果是新建自动化在When触发条件部分添加一个触发器脚本不需要触发器脚本在被其他自动化或动作调用时才执行。在Then do执行动作部分选择Add action。在搜索框中搜索并选择Sonarr: Get disk space。选择要查询的Sonarr entrySonarr 配置条目可选设置Space unit空间单位。在Response variable字段中输入一个名称例如disk_data用于保存返回的磁盘空间数据。选择Save保存。需要注意此动作不支持目标targets。在 UI 中你不会被提示选择区域area、设备device、实体entity或标签label——这是合理的因为磁盘空间查询面向的是 Sonarr 服务实例本身而不是某个实体。UI 中的选项说明选项描述是否必填Sonarr entry要查询的 Sonarr 配置条目必填Space unit空间数值使用的单位。使用二进制单位 KiB、MiB、GiB、TiB、PiB基于 1024或十进制单位 KB、MB、GB、TB、PB基于 1000。默认为字节bytes可选在 YAML 中调用该动作如果你直接在 YAML 中编写自动化或想精确了解 Home Assistant 底层做了什么可以使用以下方式。根据 yaml_header.md该小节提供了 YAML 字段名、类型与必填性的技术参考。在 YAML 中将该动作引用为sonarr.get_diskspace并通过response_variable保存结果以便在后续步骤中使用action: sonarr.get_diskspace data: entry_id: 01234567890abcdef1234567890abcde space_unit: GB response_variable: disk_data上面的示例获取磁盘空间信息且数值以千兆字节GB为单位表示。YAML 选项参数详解参数描述类型必填默认值entry_id要查询的 Sonarr 配置条目config entryIDstring是—space_unit空间数值使用的单位。可接受的值bytes、KB、KiB、MB、MiB、GB、GiB、TB、TiB、PB、PiBstring否bytes关于space_unit需要特别注意二进制单位与十进制单位的换算差异二进制单位KiB/MiB/GiB/TiB/PiB基于 1024 进制即 1 GiB 1024 MiB。这是存储行业操作系统、文件系统常用的计量方式数值更贴合实际可用容量。十进制单位KB/MB/GB/TB/PB基于 1000 进制即 1 GB 1000 MB。这是硬盘厂商标称容量常用的计量方式。不指定时默认为bytes字节原始最小单位。选择哪种单位取决于你的告警阈值习惯与展示需求与 Sonarr 界面中的剩余空间数值对齐时通常选择与 Sonarr 自身显示一致的单位便于比对。entry_id是 Sonarr 集成在 Home Assistant 中创建配置条目时生成的唯一标识。如果你配置了多个 Sonarr 实例例如测试环境与生产环境各一个可以通过不同的entry_id分别查询。响应数据结构Response data调用成功后该动作的返回数据包含一个disks键其值为以存储路径path为键的磁盘信息映射。每个磁盘包含以下字段字段说明path存储路径label磁盘标签如果可用free_space所选单位下的剩余空间total_space所选单位下的总空间unit空间数值使用的单位usage_percent磁盘空间使用率百分比一个精简的响应示例使用space_unit: GB时disks: /mnt/media: path: /mnt/media label: Media Storage free_space: 1862.65 total_space: 3725.29 unit: GB usage_percent: 50.0从数据结构可以看出Home Assistant 将每个存储路径作为顶层键便于直接按路径索引查询例如disks[/mnt/media].free_space。这在模板template或后续自动化步骤中非常方便。实战磁盘空间不足自动告警结合原文档在响应变量中使用结果的建议下面给出一个完整的自动化示例每天定时查询磁盘空间当某个存储位置使用率超过 90% 时发送通知。alias: Sonarr 磁盘空间告警 triggers: - trigger: time at: 09:00:00 actions: - action: sonarr.get_diskspace data: entry_id: 01234567890abcdef1234567890abcde space_unit: GB response_variable: disk_data - if: - condition: template value_template: {% for path, disk in disk_data.disks.items() %} {{ true if disk.usage_percent 90 else false }} {% endfor %} then: - action: notify.notify data: title: Sonarr 磁盘空间告警 message: {% for path, disk in disk_data.disks.items() %} {{ path }}: 已用 {{ disk.usage_percent }}%剩余 {{ disk.free_space }} {{ disk.unit }} {% endfor %}关键点说明触发后先调用sonarr.get_diskspace并把结果存入response_variable: disk_data。后续条件判断与通知消息均通过disk_data.disks遍历所有存储路径。由于响应中的数值单位由space_unit统一控制告警消息中可以直接拼接free_space与unit字段无需额外换算。若你只想在 UI 中快速验证该动作可以按照 try_it.md 的建议进入Settings Tools Actions开发者工具搜索该动作、填写字段并点击Perform action无需编写任何 YAML 即可在真实实体上看到返回结果。从源码看该文档的生成机制本文档中的 UI 选项与 YAML 参数表格并非手工维护的静态文本而是由 Jekyll 插件在构建时渲染生成的{% options_ui %}标签由 plugins/options_ui.rb 处理{% options_yaml %}标签由 plugins/options_yaml.rb 处理——从源码可见该插件将 Liquid 块内的 YAML 内容解析为哈希SafeYAML.load并复用统一的render_config_vars渲染逻辑为参数生成带类型、必填/可选徽章和描述的表格{% include actions/ui_header.md %}与{% include actions/yaml_header.md %}分别对应 ui_header.md 与 yaml_header.md 两段通用文案页面底部通过 related.md 自动根据 front matter 中的related_actions列出相关动作sonarr.get_series、sonarr.get_queue。这意味着你在此文档中看到的参数表格与站点上其他动作页的呈现方式完全一致字段描述直接源自文档自身的 YAML 定义保证了文档与实现的一致性。与 Sonarr 集成的整体定位在 Sonarr 集成文档 中Sonarr 属于ha_integration_type: service的服务类集成通过配置流程config flow接入支持calendar日历与sensor传感器两种平台。其自带的传感器中Disk space磁盘空间传感器默认禁用仅提供可用磁盘空间 GB 数的汇总值。当需要比单一传感器更完整的磁盘明细如每个路径的标签、总空间、使用率时就需要使用sonarr.get_diskspace这类动作——这也是该文档存在的核心价值用动作取明细用传感器做概览。如果在使用过程中遇到问题官方建议在社区Discord、社区论坛、Reddit发帖求助时附上你正在调用的动作与期望的行为参见 stuck.md以便社区快速定位问题。小结sonarr.get_diskspace是一个轻量而实用的查询动作必填参数仅entry_id空间单位可选默认 bytes返回结构化的disks映射按路径索引含path、label、free_space、total_space、unit、usage_percent六个字段配合response_variable可在自动化后续步骤中直接消费。无论你是在 UI 中可视化配置还是直接在 YAML 中编写都能快速获得 Sonarr 各存储位置的磁盘健康状况是实现磁盘空间低时自动告警类自动化任务的标准姿势。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考