matter-kit
matter-kit 自 @ray-js/panel-sdk@1.15.0 开始加入,当前仅支持照明品类设备。
轻量的 Matter 设备面板 DP 功能点处理工具库,内置 Matter 协议与标准 DP 协议之间的双向转换,自动处理设备信息、DP 状态上报与下发。
各 API 的详细说明见下文 API 索引 中的子文档链接。
接入指南
根据业务场景生成 matter-kit
src/devices/index.ts
使用标准 DP 功能点
接入 matter-kit 后,您可以直接使用标准的 DP 功能点进行开发,matter-kit 会自动处理 Matter 协议与标准协议之间的转换。
DP 功能点映射关系
matter-kit 会自动处理以下 Matter 协议与标准协议之间的转换:
转换说明
开关控制
- 上报:
switch→switch_led - 下发:
switch_led→switch
亮度控制
- 上报:
brightness_control(1-254) →bright_value(10-1000) - 下发:
bright_value(10-1000) →brightness_control(1-254)
转换公式使用线性映射,确保数值范围的正确转换。
色温控制
- 上报:
color_temp_control(卡尔文) →temp_value(0-1000) - 下发:
temp_value(0-1000) →color_temp_control(卡尔文)
转换基于色温的卡尔文值进行非线性映射,确保色温滑动条的显示效果。
注意:由于色温转换会丢失精度,matter-kit 会保留原始的
color_temp_control值。如需获取原始值用于 UI 展示,请使用 useOriginMatterTemp。
颜色控制
- 上报:
hs_color_set(色相+饱和度) +brightness_control(亮度) →colour_data(HSV 格式) - 下发:
colour_data(HSV 格式) →hs_color_set(色相+饱和度) +brightness_control(亮度)
颜色转换会将 Matter 的色相饱和度与亮度合并为标准协议的 HSV 格式。
使用示例
基础
路数
结合 schema 判断路数、白光能力等,完整说明见 getMatterRoad。
颜色(useColourData)
Matter 面板下颜色的 value 会由 matter-kit 对齐为 bright_value。推荐直接使用 SDK 的 useColourData,详见 resolveColorData。
更多示例(手动 resolveColorData、shouldConvert / debug 等)见 resolveColorData、useOriginMatterTemp、createMatterKit。
与 dp-kit 配合使用
matter-kit 可以与 dp-kit 配合使用,实现更强大的功能:
注意:拦截器的顺序很重要。在配合使用时,建议将 dp-kit 的
publishDps拦截器放在 matter-kit 之前,这样 dp-kit 会先处理标准协议的数据,然后 matter-kit 再将其转换为 Matter 协议。
注意事项
-
转换精度:色温转换会丢失精度,如需获取原始值,请使用 useOriginMatterTemp。
-
拦截器顺序:与 dp-kit 配合使用时,注意拦截器的顺序,建议 dp-kit 在前,matter-kit 在后。
-
Schema 转换:matter-kit 会自动在 schema 中新增标准 DP 功能点(如
switch_led、bright_value等),同时保留原始的 Matter DP 功能点(如switch、brightness_control等),用于路数判断等功能。 -
颜色数据:Matter 协议的颜色数据由
hs_color_set(色相+饱和度)和brightness_control(亮度)组成,matter-kit 会自动将其合并为标准协议的colour_data(HSV 格式)。 -
调试模式:在生产环境中建议关闭调试模式,避免控制台输出过多日志。参见 createMatterKit。