通过 RS485、Modbus 和 SunSpec 本地监控太阳能逆变器与储能电池
要点
大多数混合逆变器和许多储能电池都通过 RS485 端口或网络接口以 Modbus 协议提供数据,SunSpec 则为太阳能和储能设备定义了一套免费、开放的寄存器格式。借助数据采集器、RS485 转接器或 pysolarmanv5、Home Assistant 等工具,业主无需厂家云端即可在本地读取发电、电池和电网数据。部分品牌体系对此有所限制:截至 2026 年 10 月,Enphase 网关的本地访问须使用云端签发的令牌,Powerwall 3 在本地提供的数据也少于 Powerwall 2。建议先以只读方式开始,保护参数、电网参数配置和送电限值应保持电力公司批准时的设定。
本地数据的价值
通过厂家云端监控固然方便,但数据从此取决于网络连接、厂家服务器和账户条款。本地访问是指通过家庭网络或串口线直接读取逆变器或电池的数据。网络中断时它照常工作,而这往往正是业主最想查看电池荷电状态(SOC)的时候;它支持以秒计的自动化响应,例如电池 SOC 低于阈值时自动切除负载;它还为业主保留一份永久记录,不会因某项服务停止而消失。
我们的无需云端即可运行的智能家居设备指南列出了哪些消费类产品可在 Home Assistant 中本地运行。本文再深入一层,介绍逆变器和电池实际使用的通信协议,面向熟悉这些技术的业主、安装商和工程师。贯穿全文的原则是:先读取;写入参数则是另一项决定,应由安装商和厂家负责。
RS485 与 Modbus RTU 基础
RS-485 (打开外部网站) 是一种双绞线总线的电气标准,采用差分信号传输,能承受逆变器周边的电气干扰和较长的线缆。总线上最常承载的是 Modbus (打开外部网站) 这一请求-应答协议:由一个主站(如数据采集器或电脑)按地址轮询各从站设备,读取编号寄存器。Modbus RTU 是串行线路上使用的紧凑二进制格式。下表数据出自 Modbus 串行线路规范 (打开外部网站) V1.02;协议规范由 Modbus 组织 (打开外部网站)发布。
| 项目 | 规范要求 | 实际含义 |
|---|---|---|
| 地址 | 一个主站;从站编号 1 至 247 | 总线上的每台逆变器、电池或电表都须有唯一地址 |
| 每段设备数 | 无中继器时始终允许接入 32 台 | 规模较大的系统须加中继器,或使用注明可接更多台数的设备 |
| 信号名称 | D0 和 D1(D1 对应 B/B',D0 对应 A/A') | 各产品标注方式不一,应以各设备手册为准,而非端子上的字母 |
| 线路终端电阻 | 仅装在主干两端,不得装在分支线上,最多两个:150 Ω(0.5 W),或在线路设置偏置时用 120 Ω 串联 1 nF | 终端电阻缺失或多装会造成信号反射和间歇性通信错误 |
| 线路偏置 | 需要时在 D1 上接 5 V 上拉电阻、D0 上接下拉电阻,阻值 450 至 650 Ω,全总线只设一处,一般在主站 | 使空闲总线保持确定状态;多台设备同时偏置可能干扰总线 |
| 速率与格式 | 必须支持 9600 和 19200 bps;默认值须为 19200 bps、偶校验 | 总线上所有设备的速率和校验方式必须一致 |
| 线缆长度 | 9600 bps、AWG26 或更粗线径时约 1,000 m | 住宅中很少受距离限制,接地和走线才是关键 |
协议只规定如何请求寄存器,并不规定寄存器的含义。寄存器表(register map)说明哪个地址存放电池电压或电网功率、按何种比例换算,除非设备实现了 SunSpec 模型,否则各厂家互不相同。掌握寄存器表的业主可用任何 Modbus 客户端读取设备;没有寄存器表,读到的只是一串数字。储能系统的电池管理系统(BMS)与逆变器之间通常还有另一条总线,即 CAN 总线 (打开外部网站)。这条链路传送充放电限值,并非可以随意接入的监控端口。
Modbus TCP 与 SunSpec 模型
Modbus TCP 通过以太网或 Wi-Fi 传送同样的请求,通常使用 TCP 502 端口,因此联网的逆变器或 RS485 转以太网网关可由网络中任何一台电脑读取。Modbus 本身不具备防范未授权指令或数据截取的能力,因此 Modbus TCP 设备应放在独立的网段中,绝不能暴露在互联网上。
SunSpec Modbus 是针对各厂家寄存器表互不相同这一问题的开放方案。SunSpec 联盟 (打开外部网站)发布标准信息模型,即为逆变器、电表和储能设备定义好含义的寄存器块,理解 SunSpec 的客户端可以读取不同厂家的合规设备。SunSpec 表示,其全部规范均可免费下载和使用;SunSpec Modbus 被 IEEE 1547-2018 引用,并可与该标准列出的另外两种通信接口 IEEE 2030.5 和 IEEE 1815(DNP3)互通。Secure SunSpec Modbus 安全规范目前处于测试阶段。设备支持 SunSpec 时,应索取其实施说明,其中会列明所用模型及厂家自定义的扩展内容。
数据采集器、pysolarmanv5 与 Home Assistant
许多混合逆变器随机附带 Wi-Fi 数据采集棒,通过 RS485 读取逆变器数据并上传至云端服务。Solarman(IGEN-Tech)生产的采集器使用专有的 V5 协议封装 Modbus RTU 数据帧。开源的 pysolarmanv5 (打开外部网站) 库采用 MIT 许可证,可通过 TCP 8899 端口直接与这类采集器通信,并提供同步和异步接口。其文档指出,Solis S3-WIFI-ST 采集棒不受支持,部分以太网采集器本身即支持 Modbus TCP,无需使用该库。
大多数业主会把这些数据汇集到开源家居自动化平台 Home Assistant (打开外部网站) 中。同样采用 MIT 许可证的 ha-solarman (打开外部网站) 自定义集成基于异步版 pysolarmanv5,也支持通过 ESP 或 Waveshare 的 RS485 网桥使用 Modbus TCP。SolarAssistant 是一款商业软件:该软件 (打开外部网站)运行在 Raspberry Pi 上,无需网络连接即可工作,支持 EG4、Sol-Ark、Growatt、Deye 和 Victron 等品牌,并通过自动发现将数据接入 Home Assistant,也可经由 MQTT (打开外部网站)、WebSocket 或 REST 发布数据。
采集器在上传云端的同时能否支持本地轮询,取决于采集器型号及其固件,因此我们会针对具体设备进行确认。电池或车辆桥接控制器与逆变器之间使用的,也是同样的 RS485 或 CAN 链路,详见我们的电动车电池接入混合逆变器指南。
先只读,以及哪些参数不应更改
读取寄存器不会改变逆变器的任何状态,写入则不同。许多逆变器开放了可写寄存器,涉及运行模式、充电限值、送电限值、电网参数配置和保护参数;地址或比例写错,会立即生效。我们不公开寄存器写入方法,本文也不作介绍。
保护参数、电网参数配置和送电限值都属于电力公司审批的内容。在纽约州,依据《标准化并网要求》 (打开外部网站)进行的并网以经认证的设备和电力公司指定的参数为基础,更改运行模式须重新提交申请。自行更改这些参数可能违反并网协议,可能影响防孤岛功能以及我们在逆变器快速关断、电弧故障与绝缘检测指南中介绍的安全功能,还可能使保修失效。
- 在寄存器表与逆变器自身显示屏核对无误之前,以只读模式使用 Modbus 客户端,或使用只具备读取功能的集成。
- 将逆变器、采集器和网关放在独立的 VLAN 中,不设置任何来自互联网的端口转发。
- 充电时段等运行调整,应通过厂家公开的接口或由安装商进行。
- 电网参数配置、保护参数和送电设定保持调试验收时的状态;如需更改,须经安装商办理,必要时报电力公司批准。
受限的品牌体系(截至 2026 年 10 月)
一些主要品牌在近期固件中收窄了本地访问。以下事实均按各资料来源的原文陈述,厂家给出理由的一并列明。
| 系统 | 变化内容 | 官方说明的理由 | 资料来源 |
|---|---|---|---|
| Enphase IQ Gateway | 自网关软件 7.0.x 起,本地界面和 API 须使用 Enphase 云端凭 Enphase 账户签发的令牌;系统业主的令牌有效期一年,安装商为 12 小时。自固件 8.2.4225 起,无法再通过本地 API 设置电池模式、电网充电和备用电量。 | Enphase:采用令牌认证以提高安全性;一年有效期是为了确保安全 | Enphase TEB-00060-2.0-EN(2025 年 6 月);Home Assistant 文档 |
| Tesla Powerwall 3 | 本地 HTTP API 比 Powerwall 2 限制更多,不提供离网控制、备用电量和单块电池数据。自固件 25.10.0 起,不再支持经路由访问网关的 192.168.91.1 接口,须直接连接 Powerwall 自身的 Wi-Fi。 | 我们未找到 Tesla 公开发表的说明 | Home Assistant 文档;pypowerwall 项目 |
Enphase 的令牌访问技术简报 (打开外部网站)还指出,自行安装的业主若使用安装商凭证,获得的令牌有效期为 12 小时,除非由 Enphase 客服将账户改为业主凭证。令牌签发后,数据可在本地读取;但令牌的签发和续期都须经过 Enphase 云端。Home Assistant 的 Enphase 集成 (打开外部网站)会自动续期令牌,账户启用多重身份验证时除外。
关于 Powerwall 3,Home Assistant 文档列明了本地可用实体的减少情况 (打开外部网站)。采用 MIT 许可证的开源项目 pypowerwall (打开外部网站) 通过网关 Wi-Fi 上的 Tesla TEDAPI 接口读取更多数据,并介绍了一种使用已注册 RSA 密钥的有线局域网模式。这些都是社区开发的接口,并非 Tesla 正式文档化的本地 API,任何一次固件更新都可能使其改变。Tesla 的官方途径是其云端 Fleet API;据 pypowerwall 介绍,该途径将备用电量上限定为 80%。
对可控的电网资产实施身份认证是合理的,两家公司也都通过自有应用为客户提供支持。真正值得讨论的问题范围更小:认证是否必须依赖厂家的云端账户,还是可以由业主在本地签发和持有。
开放标准要求什么,不要求什么
现行公共规则已经要求逆变器具备通信能力,但对象是电力公司。IEEE 1547-2018 为分布式能源列出了三种本地通信接口:SunSpec Modbus、IEEE 2030.5 和 IEEE 1815。在加州,Rule 21 第二阶段通信要求于 2020 年 6 月 22 日生效;按 SunSpec 的概述 (打开外部网站),在加州安装的任何太阳能逆变器或储能系统,都必须证明具备按通用智能逆变器规范(CSIP)使用 IEEE 2030.5 通信的能力。
这些要求面向电力公司。其目的是让电力公司和聚合商能够监测和管理设备,而不是要求向业主提供本地访问、凭证或寄存器表。一款产品完全可以满足这些要求,却不向业主提供任何公开的本地接口。
支持公开本地接口的理由
我们认为,有公开文档的本地接口对业主和整个行业都有益,并愿意公开表明这一立场。云端服务变更或停止时,业主仍保有自己的数据和自动化功能。安装商可以整合不同厂家的逆变器、电池、电表和充电桩,在现场诊断故障而无需排队等候客服,并在厂家退出市场后继续维护系统。电力公司的项目同样受益:PSEG Long Island 的电池储能奖励计划 (打开外部网站)将参与计划的家用电池作为一个网络运行,在炎热的夏日缓解电网压力,而负责运营的第三方聚合商有赖于与每套系统的可靠通信。家庭和车辆电池作为灵活储能的广泛应用,同样依赖开放的标准接口,我们的电动车电池与混合逆变器指南对此有完整论述。
另一方面的考量也确实存在:开放接口必须做好安全防护;第三方工具出错时,支持成本由厂家承担;影响电网的参数必须受到管控。公开只读寄存器表并由业主在本地签发凭证,同时为业主可合理更改的参数提供公开且经认证的途径,即可兼顾双方。同样的道理也适用于电动车充电桩,详见我们关于 OCPP 与充电网络锁定的指南。
选购要点,以及我们的配置方式
- 逆变器、电池和电表均有公开的 Modbus 寄存器表或 SunSpec 实施说明。
- 本地访问无需云端账户,或使用业主可在本地续期的凭证。
- 具备有线 RS485 或以太网端口,而不仅仅是 Wi-Fi。
- 有附带版本说明的固件政策,本地访问的变更会事先公告。
- 已有本地 IoT 类别的 Home Assistant 集成,或有公开文档的 API。
- 微型逆变器阵列耦合到混合逆变器时(见我们的微型逆变器交流耦合混合逆变器指南),两套系统均可本地访问。
电池数据同样应当开放;我们的退役电动车电池用作家庭储能指南讨论了电池管理系统自身数据的重要作用。在我们的项目中,我们选用具备公开本地接口的设备,安装时将屏蔽双绞线 RS485 和以太网线缆敷设至逆变器位置,把设备放在独立网段中,并在 Home Assistant 或业主指定的平台上配置只读监控。网络与控制系统工程属于我们的弱电工程服务,电路工程由合作的持证电工施工。
常见问题
不用厂家应用程序,可以读取逆变器数据吗?
通常可以。许多混合逆变器支持 RS485 端口上的 Modbus RTU 或网络上的 Modbus TCP,许多 Solarman 类采集器也可用 pysolarmanv5 或 ha-solarman 集成在本地读取。前提是有对应型号的寄存器表,或设备支持 SunSpec。
Modbus RTU 使用什么波特率和终端电阻?
串行线路规范要求支持 9600 和 19200 bps,默认值为 19200 bps、偶校验;由于总线上所有设备必须一致,请以各设备手册确认设定。总线只在两端安装终端电阻,阻值为 150 Ω,或在线路设置偏置时用 120 Ω 串联 1 nF。
为什么 Enphase 系统的本地访问需要令牌?
自 IQ Gateway 软件 7.0.x 起,Enphase 要求本地界面和 API 采用令牌认证,并表示这是为了提高安全性。业主可凭 Enphase 账户从 Enphase 云端获取有效期一年的令牌;安装商令牌的有效期为 12 小时。
加州 Rule 21 是否赋予业主本地访问逆变器的权利?
没有。Rule 21 要求逆变器证明具备使用 IEEE 2030.5 通信的能力,这是面向电力公司的要求,并不要求厂家向业主提供本地访问、凭证或寄存器表。
通过 Modbus 更改逆变器参数安全吗?
读取是安全的,写入则另当别论。保护参数、电网参数配置和送电设定属于电力公司审批的内容,更改可能违反并网协议并使保修失效。运行调整应通过厂家公开的接口或由安装商进行。
参考资料
共 18 项
- MODBUS over Serial Line Specification and Implementation Guide V1.02 (打开外部网站)Modbus-IDA
- Modbus Specifications (打开外部网站)Modbus Organization
- Specifications (打开外部网站)SunSpec Alliance
- California Rule 21 Phase 2 Goes Into Effect This Month (打开外部网站)SunSpec Alliance
- pysolarmanv5 (打开外部网站)GitHub
- Solarman Stick Logger (ha-solarman) (打开外部网站)GitHub
- SolarAssistant (打开外部网站)SolarAssistant
- IQ Gateway local APIs or UI access using token (TEB-00060-2.0-EN) (打开外部网站)Enphase Energy
- Enphase Envoy - Home Assistant (打开外部网站)Home Assistant
- Tesla Powerwall - Home Assistant (打开外部网站)Home Assistant
- pypowerwall (打开外部网站)GitHub
- New York State Standardized Interconnection Requirements Effective October 1, 2026 (打开外部网站)New York State Department of Public Service
- Battery Storage Rewards Program (打开外部网站)PSEG Long Island
- RS-485 (打开外部网站)Wikipedia
- Modbus (打开外部网站)Wikipedia
- CAN bus (打开外部网站)Wikipedia
- Home Assistant (打开外部网站)Wikipedia
- MQTT (打开外部网站)Wikipedia
本指南反映的是我们截至发布或最近更新之日的经验及对相关规定的理解。法规、规范、补贴政策以及主管部门的执行方式经常变化,我们的理解也可能不完整或有误。本指南仅为一般信息,不构成法律、工程、税务或财务意见。在规划、采购或开始任何工程之前,请咨询相关主管部门和持牌专业人士。阅读本指南并不使您成为我们的客户,也不构成任何承包、咨询或顾问关系。Outstanding Construction Inc(卓越建设)对因使用或依赖本内容而产生的任何损失概不负责,仅对依据与我们签署的书面合同所完成的工程承担责任。