KNX HVAC 模式值 3 是什么:怎样让 DPT20 子类型参与枚举解释

2026-10-24

在DPT20.102 HVAC运行模式中,3表示economy,4表示building protection。它们不是整个DPT20主类通用的枚举表;相同一字节值在另一个20.xxx子型里可能有不同含义,完整子类型是解释数据不可缺少的输入。

适用版本与输入范围

依据 XKNX 维护者仓库固定标签 3.6.0 的下列源码,只实现本文明示的数据点或组值解析子集。它不是 KNX 规范全文,也不是设备互通认证;组地址与DPT应由项目点表明确提供。 本文所有输入均为原创合成数据,未接真实设备。

完整编号决定查哪张表

附件的正例显式传dpt=20.102,再把raw=3映射为economy。维护者源码还有20.105等其他控制模式枚举,不能只看20这个主编号或一字节长度就共用映射。负例传20.105和原始3,本程序拒绝子型不受支持,不将它误译成节能。工程点表最好存编号字符串和原始值,避免表格把20.102作为浮点数字处理后又丢掉编号格式。

名称和原始值同时输出

报告dpt、raw、known、name四项并存,支持0自动、1舒适、2待机、3节能、4建筑保护这一明确子集。中文界面可以另加本地化文案,但不要改掉原始枚举码,也不要根据厂家按钮文字随便合并模式。比如待机和节能在系统策略里可能有不同设定点,名字相近不代表可互换。协议解析只负责标识枚举,实际温控行为仍受设备参数与工程配置控制。

未知值保留是采集层的明确策略

raw=9在此表中未知,程序返回known=false和name=null,同时保留9,而不猜成自动或关闭。维护者枚举转换可能对未知值报转换错误,本附件为了离线审计选择保留原值,这属于交付策略,不冒称库本身一定这样返回。上层显示应明确未知,不能把null用默认模式补齐后继续当成已知状态;若后续新增有依据的枚举映射,也能用原始值重放核验。

未知与非法宽度分开

9仍是合法一字节内容,只是语义未支持;256则连一字节都放不下,应当作为范围错误。两类输入的处理意图不同,前者保留证据,后者拒绝错误结构。脚本没有连接空调、写设定或切换模式,也不证明某个HVAC设备支持20.102全部枚举。实际接入时应核对设备通信对象、模式方向与状态反馈,再约定未知模式是否报警,不能由一张通用映射表代替现场联调。

下载与复跑

将输入 fixture.json与独立程序 verify.py放在同一目录,用 Python 3.12 执行 python verify.py,无需安装第三方包。程序从自身目录读取输入并写入 report.json,不要求当前终端恰好位于下载目录。也可查看本次实跑报告和复跑说明。

本次实际运行通过 4 条输入断言,包括标有“显式负例”的记录;负例以JSON字段承载,不会把下载文件本身做成损坏编码。known=false保留原码而不猜模式;未知值保留是本采集示例策略,不宣称库枚举转换行为相同。 修改输入后应同时审查期望结果,不能只改断言数字让测试变绿。

对象或字段的基础关系可回到KNX 组地址与DPT入门核对,更多接口入口在设备协议库。若需要把已确认的数据点接入展项编排,可了解SoftControl 展厅中控;具体接入能力以项目确认和实际测试为准。

一级依据

来源核对日期:2026-10-24。离线结果只证明给定输入的解析或计算行为;现场兼容性、响应时间、硬件准确度和具体产品支持均未测量。

需要展厅软硬件方案或定制开发?

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。问软件授权、报价,或者现场遇到问题,也可以直接聊。

去留微信

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。