news 2026/9/17 3:06:44

Home Assistant ISY994 集成:使用 isy994.get_zwave_parameter 动作读取 Z-Wave 设备参数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Home Assistant ISY994 集成:使用 isy994.get_zwave_parameter 动作读取 Z-Wave 设备参数

Home Assistant ISY994 集成:使用 isy994.get_zwave_parameter 动作读取 Z-Wave 设备参数

【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io

本文围绕 Home Assistant 官方文档中 isy994.get_zwave_parameter 动作文档 展开,完整讲解如何通过 ISY/IoX 控制器向 Z-Wave 设备发起参数读取请求,以及如何理解返回值、配置 UI 与 YAML 两种调用方式、正确选择动作目标(Targets),并结合仓库中 Universal Devices ISY/IoX 集成文档 与其姊妹动作 isy994.set_zwave_parameter 补充底层原理与实战要点。读完本文,你将能独立编写一条"读取 Z-Wave 参数"的自动化或脚本,并能利用返回的ZW#实体属性做进一步判断或联动。

动作概述:通过 ISY 查询 Z-Wave 设备参数

Z-Wave 设备的许多行为(如报告间隔、LED 指示、双击行为等)由编号化的配置参数控制。Home Assistant 的isy994集成本身并不直接暴露这些底层参数,而是将查询任务委托给 ISY/IoX 控制器完成。isy994.get_zwave_parameter动作正是为此设计:

With this action, you can request a Z-Wave device parameter through the ISY. The parameter value is returned as an entity attribute namedZW#, where#is the parameter number.

即:

  • 发起方:Home Assistant(通过动作调用);
  • 执行方:ISY/IoX 控制器(向物理 Z-Wave 节点发送读取指令);
  • 返回值:以目标实体的属性(attribute)ZW#形式呈现,#即所查询的参数编号。例如查询参数 8,结果会出现在实体的ZW8属性中。

该动作属于isy994域,文档中标注的related_actions为 isy994.set_zwave_parameter,二者构成"读取 / 写入"一对完整能力:get负责把设备当前参数读回 Home Assistant,set负责把新值写回设备并同样返回ZW#属性。

适用前提

根据 Universal Devices ISY/IoX 集成文档,isy994是一个ha_integration_type: hub类型的核心集成分(ha_release: 0.28,支持配置流、SSDP 与 DHCP 发现),适用于:

  • 旧款 ISY994 硬件家族;
  • 当前 ISY-on-Anything(IoX)硬件,如 eisy、Polisy;
  • 控制器下接入的 Insteon、X10、Z-Wave 与 Zigbee/Matter 设备。

动作文档明确要求:目标实体必须是 ISY 的 Z-Wave 节点("The entity must be an ISY Z-Wave node.")。也就是说,只有由该集成导入的 Z-Wave 实体(如switch.garage_door)才能作为本动作的查询对象,普通非 Z-Wave 实体(Insteon、Zigbee 等)不适用。参数编号的具体含义由设备厂商定义,需要查阅对应 Z-Wave 设备的参数表(Parameter Table)确认每个编号对应的功能。

在 UI 中创建自动化或脚本

按官方动作文档,在 Home Assistant 界面中配置该动作的步骤如下:

  1. 进入设置(Settings)> 自动化与场景(Automations & scenes)
  2. 打开一个已有的自动化或脚本,或选择创建自动化(Create automation)> 创建新自动化(Create new automation)
  3. 如果是新建自动化,在When(当...时)部分添加一个触发器;脚本不需要触发器,它们由其他东西调用时运行;
  4. Then do(则执行)部分选择添加动作(Add action)
  5. 选择要控制的对象:在By target(按目标,见下文 Targets 部分)下选择要查询的 ISY Z-Wave 实体;
  6. 从该目标可用的动作列表中选择ISY: Get Z-Wave parameter
  7. Parameter(参数)字段中输入要读取的参数编号;
  8. 点击保存(Save)

UI 中的选项

UI 中本动作只暴露一个字段:

字段说明
Parameter要从设备读取的参数编号(The parameter number to retrieve from the device)

界面上没有可选填的参数值或大小字段——因为"读取"只需告诉设备"读几号参数",无需像 set 动作 那样额外提供value(要写入的值)与size(参数大小,1、2 或 4 字节)。

在 YAML 中使用动作

在 YAML 配置(自动化actions或脚本sequence)中,动作以isy994.get_zwave_parameter引用。官方文档给出的基础示例如下:

action: isy994.get_zwave_parameter target: entity_id: switch.garage_door data: parameter: 8

该示例向switch.garage_door这个 Z-Wave 设备请求参数 8。

放在完整自动化中的形态如下(组合触发器与后续动作,便于理解实际调用场景):

automation: - alias: "Read Z-Wave parameter 8 on garage door at startup" triggers: - trigger: homeassistant event: start actions: - action: isy994.get_zwave_parameter target: entity_id: switch.garage_door data: parameter: 8

YAML 选项参数表

依据 isy994.get_zwave_parameter 动作文档 中的options_yaml定义:

参数必填类型说明
parameterinteger(整数)要从设备读取的参数编号

该表与 UI 字段完全对应:唯一的必填参数就是parameter,类型为整数。与写入侧的差异值得注意——isy994.set_zwave_parameter 需要三个必填参数(parametervaluesize),其中size只能是 1、2 或 4(字节);读取侧只需parameter,因为返回值的字节宽度由设备决定,动作会自动以ZW#属性回传。

理解返回值:ZW#实体属性

动作文档的核心语义是:参数值以名为ZW#的实体属性返回#为参数编号。例如请求参数 8 后,目标实体switch.garage_door上会出现属性ZW8,其值即设备返回的参数 8 的当前值。

在自动化中可以利用该属性做条件判断或状态展示,例如用模板读取:

action: notify.mobile_app_phone data: message: >- 车库门设备参数 8 当前值为 {{ state_attr('switch.garage_door', 'ZW8') }}

需要说明的是:ZW#属性是异步由设备回报更新的,属性出现的时机取决于 ISY 返回查询结果的速度;在动作执行后立即读取模板可能拿到旧值,实践中常配合延时、事件或状态变更触发器使用。这是从动作"请求—返回"语义与属性命名规则推断出的使用要点,具体时序以你的 ISY 与设备表现为准。

由于该集成还提供了写入侧动作,读取与写入常组合成"先读后写、读回校验"的工作流:先用get_zwave_parameter确认当前值,再用set_zwave_parameter写入新值(新值同样会回写到ZW#属性),从而在 Home Assistant 中形成可观测、可审计的参数管理闭环。

动作目标(Targets)详解

isy994.get_zwave_parameter要求必须指定目标(target),目标即动作的作用对象。你可以把动作指向单个实体、设备、区域、楼层或标签,Home Assistant 会对目标背后每一个匹配的 ISY 实体执行动作。官方文档列出了五种目标类型:

  • 实体(Entity):一个具体的 ISY Z-Wave 实体,如switch.garage_door
  • 设备(Device):属于某台设备的所有 ISY Z-Wave 实体;
  • 区域(Area):某个房间/区域内的所有 ISY Z-Wave 实体;
  • 楼层(Floor):某个楼层上的所有 ISY Z-Wave 实体;
  • 标签(Label):共享某个标签的所有 ISY Z-Wave 实体。

你还可以在同一个动作中混用不同类型的目标,例如同时添加一个具体实体和一个区域,让动作一次性对两者执行:

action: isy994.get_zwave_parameter target: entity_id: switch.garage_door area_id: garage data: parameter: 8

注意:无论目标如何扩展,其背后的每个实体都必须是 ISY 的 Z-Wave 节点。若目标范围包含非 Z-Wave 的 ISY 实体,动作可能无法对其正确执行,请在选定目标时确认实体来源。

补充:isy994 域的其他相关动作

围绕 Z-Wave 参数管理与节点控制,source/_actions/目录下与isy994域相关的动作文档还包括:

  • isy994.set_zwave_parameter:写入 Z-Wave 设备参数(parametervaluesize三个必填参数,size取值 1/2/4),新值回写为ZW#属性;
  • isy994.set_zwave_lock_user_code 与isy994.delete_zwave_lock_user_code:管理 Z-Wave 门锁的用户码槽位;
  • isy994.send_node_command:向节点发送预定义命令(beepbrightendimfast_onquery等);
  • isy994.send_raw_node_command:向节点发送原始 ISY REST 命令(如DON/DOF),用于尚未被 Home Assistant 完整支持的设备。

这些动作共享同一目标(Targets)语义,均要求目标是 ISY 实体,可交叉参考以构建更完整的 ISY 设备控制方案。

总结

isy994.get_zwave_parameter是 Home Assistant 与 Universal Devices ISY/IoX 控制器协同管理 Z-Wave 设备配置的关键桥接动作。其要点可概括为:

  1. 作用:委托 ISY 向 Z-Wave 节点发起参数读取,结果以ZW#实体属性返回;
  2. 唯一必填参数parameter(整数),即设备参数表中的参数编号;
  3. 目标约束:必须指定目标,且目标背后的实体须为 ISY Z-Wave 节点;
  4. 两种配置方式:UI(设置 > 自动化与场景)与 YAML(action: isy994.get_zwave_parameter)均可,参数语义一致;
  5. 配套能力:与set_zwave_parameter成对使用可实现参数的读取、写入与回读校验。

掌握该动作后,你可以把 Z-Wave 设备的深层配置(如上报频率、灵敏度、LED 行为等)纳入 Home Assistant 的自动化逻辑与状态观测中,不必再依赖 ISY Admin Console 手工查询。

【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 3:05:07

STM32读取MAX6675热电偶测温:SPI例程解析与移植要点

简介:基于MAX6675与STM32的测温例程,为嵌入式开发者提供一套可直接学习与移植的K型热电偶温度采集实现方案。程序涵盖SPI通信初始化、MAX6675驱动配置、温度数据读取与换算等关键环节,适合正在学习STM32外设驱动或需要快速完成热电偶测温功能…

作者头像 李华
网站建设 2026/9/17 3:04:08

SiC/IGBT双脉冲动态测试仪技术解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 3:02:11

Delphi ERP源码实战:编译、数据库连接与系统对接全解析

简介:这是一份Delphi开发的大型企业ERP管理系统完整源码包,面向需要学习传统客户端/服务器架构开发的程序员、用于毕业设计的学生以及正在搭建小型企业信息化系统的小团队。资源包共2906个文件,大小约18.07MB,核心代码以432个pas单…

作者头像 李华
网站建设 2026/9/17 3:02:10

桌面端CRM实战:DeskcommCRM从架构设计到MVP落地全解析

1. 项目缘起:为什么会有 DeskcommCRM 这个项目1.1 先聊聊我对这类系统的真实感受做销售和客户服务的人应该都有这种感觉:客户资料、跟进记录、通话内容、报价单一堆东西散落在 Excel、聊天软件、邮箱和脑子里,真正需要找一条半年前的沟通线索…

作者头像 李华
网站建设 2026/9/17 3:01:49

MySQL vs DuckDB:10亿行数据下OLAP查询性能实测与选型指南

1. 对比的起点:一次真实业务慢查询引发的选型思考大概半年前,我手里一条业务线的用户行为分析报表开始频繁超时。单表记录数刚过 6 亿,每天凌晨的定时任务要跑将近四十分钟,业务方早上八点打开后台,看到的数据经常还是…

作者头像 李华