用途
LoxBerry Integrator 用于生成、审查或加固可发布到 GitHub 的 LoxBerry 插件项目,这些插件把外部设备、服务、API 或协议桥接到 Loxone Miniserver。它把用户请求视为一份插件产品需求书,而不仅仅是代码生成提示。
主要能力
- 在信息足够时生成完整、可安装的插件仓库。
- 根据设备或协议选择集成模式:mqtt-bridge、modbus-tcp、udp-relay、rest-gateway、command-bridge。新集成默认优先使用 mqtt-bridge,除非协议要求更适合 UDP、直接 REST 或 Modbus TCP。
- 生成标准仓库结构,包括 plugin.cfg、release.cfg、prerelease.cfg、README.md、LICENSE、bin/、config/、daemon/、webfrontend/、templates/、docs/ 等。
- 遵循 LoxBerry 命名规则:插件标识统一为小写 ASCII 加连字符,PLUGIN.NAME 与 PLUGIN.FOLDER 使用同一不可变值,PLUGIN.TITLE 使用清晰的人类可读标题,并在 [PLUGIN] 中包含 INTERFACE=2.0。
- MQTT 主题采用 {plugin}/{device_id}/{datapoint} 形式;单设备插件默认使用 main 作为 device_id,除非设备有稳定序列号或用户提供的标识符。
- 遵循 LoxBerry 运行时规则:使用 LBPCONFIGDIR、LBPLOGDIR、LBPBINDIR、LBPTEMPLATEDIR、LBPHTMLAUTHDIR 等环境变量;除明确标记的本地开发回退外,不硬编码 /opt/loxberry;凭据只存放在 config/default.json 或用户提供的密钥存储中;日志中脱敏;使用有界重试与指数退避;优雅处理 SIGTERM 和 SIGINT;显式设置网络超时;记录插件监听的每个端口。
- 输出响应契约:说明生成或修改了什么、所选集成模式及原因、使用的假设与默认值、执行的验证与剩余人工检查、用户后续步骤。
- 交付前验证:检查 plugin.cfg 包含 [AUTHOR]、[PLUGIN]、[AUTOUPDATE]、[SYSTEM];VERSION、NAME、FOLDER、TITLE、INTERFACE 存在;NAME 和 FOLDER 匹配小写 ^[a-z0-9][a-z0-9-]*$;ZIP 结构正确;release.cfg 和 prerelease.cfg 指向合理的 GitHub 归档 URL 或明确标记为占位符;daemon 代码处理关闭且不硬编码生产路径;文档映射每个生成的 MQTT 主题或命令端点;README 说明安装、配置、日志、故障排除和许可证。
- 若本地存在生成的插件路径,运行 python scripts/validate_plugin.py <generated-plugin-path>。
使用方式
技能需要收集或推断以下输入:设备或服务名称(必需)、协议(默认 MQTT)、方向(默认 inbound)、数据点(必需)、轮询或事件驱动(默认 polling)、认证(默认 none)、首选语言(默认 Python,LoxBerry Web UI 首选 Perl)、GitHub owner/repo(默认占位符)。如果数据点描述不充分,会生成一个小的命名起始映射,并在文档中标记为用户可编辑。
生成或修改插件仓库后,技能会按输出响应契约给出总结。最终必须执行强制步骤:将插件打包为正确结构的 .zip;创建 GitHub 仓库并发布;在 Docker 化 LoxBerry 沙箱中安装测试;发布 release 并附加安装 ZIP。
适用场景
适用于需要把外部设备、服务、API 或协议接入 Loxone Miniserver 的 LoxBerry 插件开发,包括云 API、本地 REST API、常规传感器轮询、能源电表、逆变器、热泵、工业设备、发出 UDP 或高频数据报的旧设备、具有简单 HTTP JSON API 的局域网设备,以及由 Loxone 控制外部设备或服务的命令桥接场景。
限制
- 插件必须以 ZIP 打包才能安装;LoxBerry 插件安装器只接受 .zip 归档,原始文件夹、.tar.gz 或带分支/标签后缀文件夹名的 GitHub “Source code (zip)” 会被拒绝或安装到错误文件夹名。
- 必须在真实 LoxBerry 沙箱中测试后才能声明完成;静态验证通过仍可能在安装时失败。支持的沙箱是 Docker 化 LoxBerry,VirtualBox 路径已弃用。
- 插件 Web UI 必须位于 LoxBerry 外壳内,index.cgi 必须调用 LoxBerry::Web::lbheader 和 lbfooter,模板只能使用标准 HTML::Template 标签。
- CGI 子 shell 不得向 STDOUT 打印内容,否则会破坏 HTTP 响应头。
- Python 插件依赖应放在 dpkg/apt 中,requirements.txt 在安装时被忽略。
- daemon hook 会在不同上下文中被调用两次,需要正确处理参数、路径、用户切换和 PID 文件。
- 凭据输入在保存和加载时都要去除空白;LoxBerry 插件安装器每次安装/升级都会覆盖 config/*,需要采用模板重填或分离只读默认与用户配置的模式,并将保存的凭据文件设为 0600 loxberry:loxberry。
- 用户可控 URL 必须在保存和加载时对照允许列表验证,防止凭据外泄。
- 错误日志中也要脱敏,不只是信息日志。
- 私有仓库的 release 资产 URL 匿名访问返回 404,LoxBerry 安装器无法获取,用户需手动下载 ZIP 并通过文件上传安装。
暂未提供
资料未提供该技能的收费、价格、平台支持范围、具体效果指标或独立安装命令。