Home Assistant 购物清单批量重置:shopping_list.incomplete_all 动作完整实战指南
📅 2026/9/17 21:29:30✍️ 爱科研究院👁 阅读 3,247
Home Assistant 购物清单批量重置shopping_list.incomplete_all 动作完整实战指南【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io导读shopping_list.incomplete_all是 Home Assistant 购物清单Shopping list集成提供的动作action用于将清单中的全部条目一次性标记为未完成。在 shopping_list 集成文档 中它归属于 To-do list待办清单能力范畴最常见的应用场景是每周自动重置常购清单——例如周日晚上把整张周度采购清单恢复为全部待购状态让所有条目重新激活。读完本文你将掌握该动作在 UI 可视化编辑与 YAML 自动化两种模式下的完整用法、它与其他购物清单动作complete_all、incomplete_item、clear_completed_items的配合方式以及它触发shopping_list_updated事件时的底层行为细节。动作概览一条命令重置整张清单shopping_list.incomplete_all的官方定义是将购物清单中的所有条目标记为未完成Marks all items as incomplete in the shopping list。它的核心特征有三点作用于整张清单与shopping_list.incomplete_item仅将名称匹配的首个条目改回未完成不同它不做任何匹配一次性覆盖全部条目只改状态、不删条目被重置的条目仍然保留在清单上仅将complete标记改为false后续仍可通过shopping_list.clear_completed_items单独清理已完成项无任何参数该动作在 UI 与 YAML 两种模式下均不接收任何选项是最零配置的购物清单动作之一动作文档 中明确注明This action has no options。注意Home Assistant 的购物清单集成维护的是唯一一张清单单例结构add_item 动作文档 也确认了这一点——所有动作操作的都是该集成提供的同一张列表因此incomplete_all的全部即指这张全局清单的全部条目。在 UI 中创建动作可视化配置流程如果你习惯用可视化方式搭建自动化或脚本Home Assistant 会引导你逐步完成该动作的配置全程无需手写 YAML参见 actions/ui_header.md 的说明。官方文档给出了标准操作路径进入Settings设置 Automations scenes自动化与场景打开一个已有的自动化或脚本如果是新建选择Create automation创建自动化 Create new automation创建新自动化若在搭建新自动化需在When触发条件部分添加一个触发器脚本script不需要触发器——它们在被其他自动化调用时才运行在Then do执行动作部分选择Add action添加动作搜索并选择Incomplete all shopping list items点击Save保存完成配置。由于该动作没有可选参数UI 中的配置面板非常简洁——选中动作后无需填写任何字段即可直接保存。在 YAML 中使用动作零参数调用如果你直接编写 YAML 自动化/脚本或想精确了解 Home Assistant 的底层行为参见 actions/yaml_header.md 的说明调用方式如下action: shopping_list.incomplete_all该动作没有可选参数因此不需要data字段。一个最小可用的自动化示例如下alias: Reset weekly shopping list every Sunday triggers: - trigger: time at: 21:00:00 # 建议配合 weekday 条件限定在周日 conditions: - condition: time weekday: sun actions: - action: shopping_list.incomplete_all在 YAML 模式中该动作的字段表为空无必填项required: none、无字符串参数type 均不适用唯一的合法写法就是上面这种不带data的裸调用。典型场景基于时间或状态的自动重置官方文档给出的核心使用场景是重置周期性清单例如周度杂货清单——当所有条目被重置为未完成时整张清单恢复待采购状态随时可以再次使用。结合其他动作可以构建完整的采购闭环场景一每周定时重置alias: Weekly grocery list reset triggers: - trigger: time at: 06:00:00 conditions: - condition: time weekday: mon actions: - action: shopping_list.incomplete_all每周一清晨自动把上一轮采购后已勾选的条目全部重置为待购无需人工干预。场景二采购完成 → 清空 → 等待下轮重置将incomplete_all与它的互补动作组合使用可以实现完整的清单生命周期管理阶段动作效果采购中勾选shopping_list.complete_item逐项标记为已完成采购结束shopping_list.clear_completed_items移除所有已完成条目未勾选条目保留下一轮开始shopping_list.incomplete_all将所有条目重置为未完成重新激活其中shopping_list.complete_all动作文档是incomplete_all的直接对应动作counterpart前者把全部条目标记为已完成但不移除后者把全部条目标记为未完成。官方文档在Good to know一节明确指出了这层对应关系。场景三语音/会话触发重置购物清单集成支持通过 conversation 集成用语音操作例如 Add eggs to my shopping list同理你也可在自动化中配合conversation.process或语音助手流程调用shopping_list.incomplete_all实现重置我的购物清单这样的口语化控制。底层原理incomplete_all 触发的事件与载荷理解该动作的底层行为关键在于 shopping_list 集成文档 中描述的shopping_list_updated事件。当清单条目被修改时集成会触发该事件并携带如下数据载荷数据载荷属性说明action对条目执行的动作类型取值见下文item被更新条目的详情字典item.id该条目的唯一 IDitem.name条目文本例如Milkitem.complete布尔值表示条目是否已标记为完成其中action的取值分为两组逐条操作add新增条目、update更新条目但经shopping_list.complete_item或整表动作触发时除外、complete仅通过shopping_list.complete_item完成勾选、remove移除条目整表操作clear清空已完成项、sorted按名称排序、reorder条目重排、update_list全部条目被更新例如通过shopping_list.complete_all或shopping_list.incomplete_all动作触发。关键实现事实当调用shopping_list.incomplete_all时事件载荷中的action值恒为update_list且事件不返回具体的 list itemIn these cases, the event does not return a list item——因为整表重置无法归属到单一条目上。这也意味着如果你的自动化依赖shopping_list_updated事件做精细化处理需要特别区分逐条操作与整表操作两种事件形态。实战监听整表重置事件以下自动化演示了如何监听update_list事件即incomplete_all/complete_all触发的整表更新并在重置完成后发送通知alias: Notify when shopping list is bulk reset triggers: - trigger: event event_type: shopping_list_updated event_data: action: update_list actions: - action: notify.notify data: message: Your shopping list has been reset to incomplete.集成文档中的示例还展示了逐条操作事件的典型用法——当有人通过语音或自动化添加条目action: add时发送推送通知并附带clickAction/url跳转到/shopping-list页面alias: Notify on new shopping list item triggers: - trigger: event event_type: shopping_list_updated event_data: action: add actions: - action: notify.notify data: message: {{ trigger.event.data.item.name }} has been added to the shopping list data: clickAction: /shopping-list url: /shopping-list与其他购物清单动作的协作矩阵shopping_list.incomplete_all所在的动作家族完整定义了清单的状态流转。官方文档通过related_actions字段将该动作与以下动作关联动作作用范围与 incomplete_all 的关系shopping_list.add_item单条新增条目是清单内容的来源shopping_list.complete_item单条将首个名称匹配条目标记为完成shopping_list.incomplete_item单条将首个名称匹配条目标记为未完成动作文档shopping_list.complete_all整表全部标记为已完成是incomplete_all的直接对应动作shopping_list.clear_completed_items整表移除所有已完成条目仅保留未勾选项动作文档shopping_list.remove_item单条从清单移除条目shopping_list.sort整表按名称排序条目从事件角度归纳单条操作会返回携带item载荷的逐条事件add/update/complete/remove而incomplete_all、complete_all这类整表操作统一发出不含条目详情的update_list事件。选择动作时判断依据很明确——只处理单个条目用incomplete_item需传name参数批量重置整张清单用incomplete_all零参数。总结与使用要点shopping_list.incomplete_all用于将整张购物清单的所有条目一次性标记为未完成不删除条目、无任何参数UI 路径为Settings Automations scenes在Then do中搜索 Incomplete all shopping list items 即可添加YAML 中直接写action: shopping_list.incomplete_all无需data典型场景是周期性清单重置如每周杂货清单可结合time/weekday条件或 zone 事件如离开超市自动触发底层会触发shopping_list_updated事件action值为update_list且不携带 list item——设计依赖该事件的自动化时需注意区分整表操作与逐条操作与shopping_list.complete_all、shopping_list.clear_completed_items组合可构建勾选 → 清理 → 重置的完整采购清单生命周期闭环。相关参考shopping_list 集成完整文档、complete_all 动作文档、incomplete_item 动作文档、clear_completed_items 动作文档。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考