欢迎光临 Victron Energy 能源集团!
全国咨询热线:198-5307-5821
您的位置:首页 > 新闻中心 > 行业资讯

从 Victron 工作站到 MCP 服务器:我如何大幅缩短太阳能监控的设置时间

时间:2026-11-11 13:14:42 点击:次

它始于一个研讨会

我最近参加了一个Victron Energy的研讨会。在GX设备(Cerbo、Ekrano、Venus GX)上构建适当监控的常规流程如下:

  1. 在 Venus OS 上启用 MQTT / Modbus TCP。
  2. 启动Node-RED - 构建流程,连接主题,调试心跳。
  3. 将数据管道传输到InfluxDB(或其他时间序列数据库)。
  4. 在 Grafana 中构建仪表板 - 查询、面板、警报。
  5. 然后让整个过程继续运行。

对于每天做这件事的集成商来说,这是例行公事。对于光伏所有者、船长,或者只是想在周一早上问问“我昨天产生了多少电,在天气变坏前能把电量充满吗?”——这就是仅仅为了设置而要花一个周末的时间。这甚至还没等你真正去看看系统到底在做什么。

我从车间开车回家时心想:一定有更好的方法。

MCP 作为数据快捷方式

我已经对模型上下文协议进行了一些黑客操作——这是 Anthropic 的开放标准,允许 AI 助手(Claude、Cursor、Windsurf 等)读取数据并调用工具。与其构建经典的 Node-RED → MQTT → InfluxDB → Grafana 堆栈,我问了自己:

如果仪表盘是一场对话会呢?如果不是用面板,而是直接提问呢?

结果是 victron-tcp - 一个 MCP 服务器,可将任何支持 MCP 的 AI 助手直接连接到您的 Victron GX 设备,通过局域网进行通信。无需云端、无需数据库、无需 Grafana。也不需要花费数小时进行设置。

按数字

  • 32种工具用于读取系统、电池、光伏、电网、逆变器、储罐、GPS、EVCS等
  • 24个现成提示 - 从 hourly-snapshot 到 storm-prep 到 commissioning 供安装人员使用
  • 900+ 个寄存器 跨越 33 个设备类别 - 基于 Victron 已发布的 CCGX Modbus TCP 寄存器参考(Rev 3.71),可离线访问
  • 两种传输方式:Modbus TCP(默认)和 MQTT(Venus OS 代理)
  • TypeScript, Node.js 18+,MIT 许可证,通过一行命令安装npx victron-tcp

实际情况如何

只需一分钟的设置

旧方法:找到 GX IP,在“设置”→“服务”中启用正确服务,构建 Node-RED 流程,验证主题,连接数据库……

使用 victron-tcp,你只需告诉助手:

Find my Victron GX on the network and set it up.

Claude 调用 victron_network_scan,扫描子网,探测 502 和 1883 端口,通过读取系统寄存器验证每个候选者,并 吐出一个可直接粘贴的配置,适用于 Claude Desktop / Cursor / Claude Code。只需一分钟的设置——而不是一个周末。

一个像对话一样的仪表盘

而不是一个 Grafana 面板,你只需问:

显示当前系统状态 - 电池、光伏、电网。

AI 调用victron_system_overview并返回 SOC、PV 电力、电网进出、ESS 状态。完成。

想要每周分解?

给我一份每周回顾——产量、电池健康度、负载模式。

该weekly-review提示会遍历相关的寄存器并返回一份报告,其中包含关于如何调整调度策略的建议。

需要检查风暴前的准备情况吗?

风暴准备 - 停电即将到来。

该storm-prep提示检查SOC、逆变器状态、ESS模式、储罐(发电机燃料)、继电器,并告诉你需要锁定什么。

安装程序

最让我惊讶的是,当向他们展示这个时,安装人员有多么兴奋。这个commissioning提示会生成一份新安装清单:设备清单、布线验证、配置、通过/失败报告。site-audit会走一遍现有安装流程——通信、警报、测量、性能——并生成一份可直接交付给客户的报告。这比花一个小时在 VictronConnect 和 VRM 中点击操作要快得多。

它是一个助手,不能替代认证调试、电网代码合规性检查或专业判断。

为什么是 MCP,而不是又一个应用?

显而易见的路径会是另一个 Web 应用或 Home Assistant 集成。但是:

  • 上下文会延续。 AI 会记住我们昨天调试的内容,并将其与今天的数据关联起来。
  • 免费推理。您无需手动调整警报规则——只需询问“这看起来对吗?”,即可获得一个结合了室外温度、季节、历史数据和固件版本的可靠答案。
  • 无锁定。 MCP 是一种开放标准。今天的 Claude,明天任何 MCP 兼容的系统。
  • 本地优先。数据永不离开您的网络。没有云端,没有中继服务器。

内部

  • TypeScript + MCP SDK (@modelcontextprotocol/sdk), modbus-serial 用于 Modbus TCP,mqtt 用于 Venus OS 代理。
  • 统一传输抽象 - 无论您使用 Modbus 还是 MQTT,工具都会接收到完全相同的 RegisterReadResult数据。您选择已启用的任何协议即可;工具并不关心。
  • 离线寄存器数据库 - Victron 以 Excel 文件形式发送寄存器列表。一个 convert-excel.ts 脚本将其转换为服务器携带的 JSON 格式,以便 AI 即使在离线状态下也能解释任何寄存器。
  • MQTT 自动发现 - 通过通配符订阅自动检测门户 ID,因此无需手动查找。
  • 无状态 - 每次工具调用都会打开连接、读取并关闭。没有长期会话,没有内存泄漏。

只读 - 目前

当前版本(1.2.0)是只读的。对设备没有写入操作,ESS模式或电网设定值不会发生改变。这是故意的——在将控制权交给AI之前,我需要建立一个完善的安全模型。

撰写支持已列入路线图:ESS模式更改、电网设定点、充电电流限制、继电器控制——这些功能将受操作员批准的白名单限制,并保持在电网连接协议允许的范围内。随之而来的是一套完整的安全检查层(幂等性、确认流程以及明确允许的操作范围)。

要点

Victron 是一个开放系统——Modbus、MQTT、VRM API,这些功能已经全部具备。围绕它的生态系统(Node-RED、Grafana、Home Assistant)非常出色。但是,在“数据存在”和“用户理解它”之间,仍然存在过多的中间层。

MCP 将这一差距压缩成一场对话。 不再需要数小时的设置,只需支付一分钟的安装费用。不再需要仪表盘,您只需进行聊天。不再需要自己编写告警规则,只需询问“这看起来对吗?”当出现故障时,AI 会通过 troubleshoot 提示(prompt)引导您解决问题——包括对照离线文档查找错误代码。

Grafana 和 Node-RED 并没有错。它们只是不是每个人都想要的。至于其他人,这是一个合理的捷径。

试试看

要求: Node.js 18+、本地网络中的 Victron GX 设备,以及 MQTT(Venus OS 默认启用)或 Modbus TCP(设置 → 服务 → Modbus TCP)。无需 API 密钥、云账户或 VRM 令牌。

Claude Code - 一行代码:

claude mcp add-json victron-tcp '{"type":"stdio","command":"npx","args":["-y","victron-tcp"]}'

Claude 桌面版 / Cursor / Windsurf - 直接插入您的 MCP 配置:

{
  "mcpServers": {
    "victron-tcp": {
      "command": "npx",
      "args": ["-y", "victron-tcp"],
      "env": {
        "VICTRON_HOST": "192.168.1.50",
        "VICTRON_TRANSPORT": "mqtt",
        "VICTRON_PORTAL_ID": "your-portal-id"
      }
    }
  }
}

不知道您的 GX IP 或门户 ID?跳过env此步骤,直接询问:“在网络中查找我的 Victron。”服务器将扫描、探测并生成可直接粘贴的配置。


许可证:MIT - 欢迎提交 PR 和问题。

运行 Victron 系统并试用这款产品?给我发封邮件,告诉我哪些功能正常,哪些出了问题——来自实际安装的反馈将推动 victron-tcp 发展得更远。

免责声明:独立社区项目。未与 Victron Energy B.V. 合作、认可或赞助。 “Victron”、“Cerbo GX”、“Ekrano GX”、“Venus OS”、“VictronConnect” 和 “VRM” 是其各自所有者的商标。人工智能输出可能存在错误——在采取任何行动前,请务必根据设备和官方文档核实任何涉及安全的关键信息。