一个模版 = 模版主体(template)+ 一个或多个策略(strategyList);每个策略 = 一组月份 × 日类型 + 覆盖一整天的时段列表(detailVoList)。云端字段有拼写问题(derSchdule、eletic*、ccociate*、mookRunCount),以原样字段名读写。
mcp__gateway__fwh__tou_template_list → mcp__gateway__fwh__tou_template_get,env=prod(生产服,默认)或 env=test(测试服)。Software/ScriptingForSchedulingConfiguration.md,只作参考。template(模板主体 · FwhTestTouTemplateInfo)| 字段 | 类型 | 含义 / 取值 |
|---|---|---|
countryId |
number | 国家 ID |
provinceId |
number | 州/省 ID |
derSchdule |
string | DER 调度配置 |
eleCompanyFullName |
string | 电力公司全称 |
electricCompany |
string | 电力公司(简称) |
gridType |
string | 电网类型 / 套餐类型 |
electricityType |
number | 电价类型:1分时电价 2阶梯电价 3固定电价 4分时&阶梯电价 5BB套餐 6Peak Demand |
name |
string | 模板/策略表名称 |
mookRunCount |
number | 模式执行次数(loop):0不限次数 1执行一次 |
priority |
number | 模式优先级,默认0;0 最低,数字越大优先级越高 |
env |
number(位域) | 模式使用条件,默认0;bit0~1 光伏;bit2~3 馈网;bit4~5 电网充电 |
templateId |
number | 模板 ID。新增时省略,更新时必填 |
sourceType |
number(必填) | 模板类型。必填,当前仅允许 0系统模板(1API模板 2用户推荐 暂不支持写入) |
strategyList[](策略 · FwhTestTouTemplateStrategy)一个策略 = 一组「季节/日类型」+ 覆盖一整天的时段列表。
| 字段 | 类型 | 含义 / 取值 |
|---|---|---|
ccociateType |
number | 关联类型:1每天 2工作日 3周末/节假日(与 dayType/dayName 配套,见下方「日类型配套逻辑」) |
ccociateSn |
string | 关联序号:每天为"";工作日与其配对的周末/节假日共用同一序号(从 "0" 递增) |
detailVoList |
array | 时段明细表,所有时段必须覆盖一整天(见下表) |
seasonName |
string | 季节名,用于标识策略范围,可自定义,如summer、All months |
month |
string | 逗号分隔的月份,如1,2,3,4,5,6,7,8,9,10,11,12 |
dayName |
string | 日类型可读名:每天=Every day 工作日=Weekdays 周末/节假日=Weekends,Holidays(与 dayType 对应) |
dayType |
number | 日类型编码:1工作日 2周末/节假日 3每天(可读名见 dayName) |
ccociateType / ccociateSn / dayType / dayName)这四个字段必须成套填写,用于表示策略的「日类型」及工作日与周末/节假日的配对关系:
| 日类型 | ccociateType |
ccociateSn |
dayType |
dayName |
|---|---|---|---|---|
| 每天 | 1 |
"" |
3 |
Every day |
| 工作日 | 2 |
序号(从 "0" 递增) |
1 |
Weekdays |
| 周末或节假日 | 3 |
同组工作日的序号 | 2 |
Weekends,Holidays |
ccociateSn 恒为空串 ""。ccociateSn 关联为同一组。ccociateSn 是从 "0" 开始的序号字符串:第一对「工作日+周末/节假日」用 "0",第二对用 "1",以此类推(每新增一对 +1)。type=2、一条 type=3,共用同一 ccociateSn)。策略级电价字段(可选):以下字段描述该策略各时段的电价,类型为数值(number);未设置时直接省略该 key(不要传 "" 或 null)。
| 字段 | 类型 | 含义 |
|---|---|---|
eleticRatePeak |
number | 峰时购电电价 |
eleticRateShoulder |
number | 平时购电电价 |
eleticRateValley |
number | 谷时购电电价 |
eleticRateSharp |
number | 尖峰购电电价 |
eleticRateSuperOffPeak |
number | 超低谷购电电价 |
eleticRateGridFee |
number | 电网附加费 |
eleticSellPeak |
number | 峰时卖电(上网)电价 |
eleticSellShoulder |
number | 平时卖电(上网)电价 |
eleticSellValley |
number | 谷时卖电(上网)电价 |
eleticSellSharp |
number | 尖峰卖电(上网)电价 |
eleticSellSuperOffPeak |
number | 超低谷卖电(上网)电价 |
detailVoList[](时段明细 · FwhTestTouTemplateDetailVo)同一策略内的所有时段必须铺满一整天:每个 endHourTime 等于下一段的 startHourTime,第一段是 00:00,最后一段是 24:00。数值字段传数字(waveType、solarCutoff 每段必填;功率/SOC/使能等为可选);可选数值字段未设置时直接省略该 key(不要传 "" 或 null)。字符串字段(时间、名称、优先级、powerOffApower)传字符串。
| 字段 | 类型 | 含义 / 取值 |
|---|---|---|
startHourTime |
string | 开始时间,格式HH:mm,如 06:30 |
endHourTime |
string | 结束时间,格式HH:mm;需与下一段 startHourTime 衔接,所有时段覆盖一整天 |
waveType |
number(flag,必填) | 峰平谷定义:0谷/off-peak 1平/mid-peak 2峰/on-peak 3尖峰/super-on-peak 4低谷/super-off-peak |
name |
string | 时段名,一般为supper-off-peak、off-peak、mid-peak、on-peak、supper-on-peak 等 |
briefDescribe |
string | 时段描述,如Self-consumption |
solarPriority |
string | 光伏供电优先级,格式 "市电,负载,FHP",如 "1,3,2";优先级 0/1/2/3,可相同(表示按比例/功率分配),0=不涉及,数字越大优先级越高 |
loadPriority |
string | 负载取电优先级,格式 "市电,光伏,FHP",如 "1,3,2";优先级 0/1/2/3,可相同(按比例/功率分配),0=不使用此源,数字越大优先级越高 |
gridDischargeMax |
number(kW,0.1,可选) | 电池最大允许馈网功率;可选,默认0 不能馈网;0不可馈网,-1不限制 |
gridChargeMax |
number(kW,0.1,可选) | 电网允许最大充电功率;可选,默认0 不允许;0不允许,-1不限制 |
chargePower |
number(kW,0.1,可选) | 固定电池充电功率,按单台功率计算;可选,默认-1 未设置 |
dischargePower |
number(kW,0.1,可选) | 固定电池放电功率,按单台功率计算;可选,默认-1 未设置 |
chargeMax |
number(kW,0.1,可选) | 电池最大允许充电功率,按单台功率计算;-1无限制,默认 -1 |
dischargeMax |
number(kW,0.1,可选) | 电池最大允许放电功率,按单台功率计算;-1无限制,默认 -1 |
gcaoMax |
number(kW,0.1,可选) | GCAO(grid charge after an outage):停电后补电至预留 SOC 的单台市电取电功率;可选;0不允许,-1不限制;默认未设置(-3);使能后未设值则为 5kw*N(用 -2 标识) |
gridFeedMax |
number(kW,0.1,可选) | 电网允许最大馈网功率;可选,默认-2;0不允许,-1不限制,-2未设置 |
gridMax |
number(kW,0.1,可选) | 电网允许最大取电功率;可选,默认-1 不限制;0不允许,-1不限制 |
minDischargeSoc |
number(%,整数,可选) | 放电截止 SOC;达到此 SOC 后电池不放电,可选,默认0%;若 reserved_soc 大于此值则以 reserved_soc 为准 |
maxChargeSoc |
number(%,整数,可选) | 充电截止 SOC;可选,默认100% |
heatEnable |
number(可选) | 充电加热使能:0未设置(默认) 1不使能 2使能 |
powerOffApower |
string | 主动关闭 APower;可选,0不控制(默认) 1关机 2开机(预留) |
rampTime |
number(秒,可选) | 爬坡时间,0~300;默认 0,BB套餐默认 300 |
offGrid |
number(可选) | 主动断开市电继电器:0不控制(默认) 1断开 2闭合(预留) |
solarCutoff |
number(必填) | 主动断开光伏继电器:0不控制(默认) 1断开 2闭合(预留) |
要点:
solarPriority / loadPriority 是 3 值字符串,顺序 [市电, 负载或光伏, FHP/aPower];0=不参与,数字越大优先级越高,相同非 0 值=按比例分配。gridChargeMax、gridDischargeMax、gridFeedMax、gridMax、chargePower、dischargePower、chargeMax、dischargeMax、gcaoMax。常见哨兵值:-1不限制、0不允许/不可、-2未设置(仅 gridFeedMax/gcaoMax)、-3未设置(仅 gcaoMax)。未设置的可选功率/SOC 字段直接省略(下例只保留有值字段):
{
"startHourTime": "00:00",
"endHourTime": "11:00",
"waveType": 1,
"name": "mid-peak",
"briefDescribe": "Self-consumption",
"solarPriority": "1,3,2",
"loadPriority": "1,3,2",
"solarCutoff": 0,
"powerOffApower": ""
}
带部分功率设置的示例段(有值传数字,其余省略):
{
"startHourTime": "18:00",
"endHourTime": "21:00",
"waveType": 2,
"name": "on-peak",
"briefDescribe": "Zero Import",
"solarPriority": "9,9,9",
"loadPriority": "9,9,9",
"gridDischargeMax": 0.1,
"gridFeedMax": 0.1,
"dischargePower": 10,
"gridMax": 0,
"gcaoMax": 0,
"heatEnable": 1,
"solarCutoff": 0,
"powerOffApower": ""
}
优先级顺序:光伏 [市电, 负载, aPower],负载 [市电, 光伏, aPower]。
| 模式 | 名称 | 光伏优先级 | 负载优先级 | 语义 |
|---|---|---|---|---|
| A | Excess solar export to grid(光伏余电馈网) | 1,2,0 |
1,3,2 |
光伏优先供载,剩余馈网;不足由 aPower 补,再不足由市电补;aPower 不充电 |
| B | aPower standby(电池待机) | 1,2,0 |
1,2,0 |
光伏优先供载,剩余馈网;不足由市电补;aPower 不充不放 |
| C | Excess solar charge aPower(光伏余电充电) | 1,3,2 |
1,2,0 |
光伏优先供载,剩余给 aPower 充电,再剩余馈网;不足由市电补;aPower 不放电 |
| D | Self-consumption(自发自用) | 1,3,2 |
1,3,2 |
光伏优先供载,剩余充电,再剩余馈网;不足由 aPower 补,再不足由市电补 |
| E/G | aPower charge from solar / grid(优先充电) | 1,2,3 |
1,2,0 |
光伏优先给 aPower 充电,剩余供载,再剩余馈网;不足由市电补;aPower 不放电。用户在 PCS 设置中使能电网充电时表现为 G |
| F/H | aPower supply home / export to grid(优先供载) | 1,2,0 |
1,2,3 |
aPower 优先供载,光伏馈网;不足由光伏补,再不足由市电补;aPower 不充电。用户在 PCS 设置中使能电池馈网时表现为 H |
| — | 未设置优先级 | "" |
"" |
两个优先级同时为空字符串 |
| 强制充电 | aPower charge from grid / Backup only(强制充电 / 仅备电) | "" |
"" |
电网不限充电,aPower 以固定功率充电并保持满电 |
| 强制放电 | aPower forced discharge(强制放电) | "" |
"" |
不限 aPower 馈网,aPower 以固定功率放电至预留 SOC |
| Zero Import | Zero Import(零取电,特殊模式) | 9,9,9 |
9,9,9 |
时段内尽量不从电网取电,由 aPower 放电供载,馈网限制在极小值;按原始值精确匹配,不归一化 |
写入时使用表中的数值。E/G、F/H 各是一个模式:E 变 G、F 变 H 取决于模版之外用户的 PCS 设置(电网充电使能、电池馈网使能),模版中统一称 E/G、F/H。
补充信息(仅用于理解 Zero Import,不作为需求):Zero Import 来自澳洲 GloBird 的 ZEROHERO 套餐(参考模版 4477)。套餐条款:晚高峰(当地时间 18:00–21:00,每天)每小时从电网取电少于 0.03 kWh 即视为“Zero”;另有 ZEROCHARGE 功能,按 28 天账单周期每天限 50 kWh(属于套餐规则,由普通时段参数实现,不是调度模式)。
使用扩展模式时按下表设置:“固定”参数取表中的值不可改;“必填”参数必须有值(可调整数值);“初始值”参数可调整或省略。
| 模式 | 参数(单位 kW,按单台 aPower) | 来源 |
|---|---|---|
| 强制充电 | 固定:优先级 ""/"";必填:chargePower=8(单台最大充电功率)、gridChargeMax=-1(默认不限) |
wiki《常规调度配置·仅备电》(原文 8000 W)、tou-template.md |
| 强制放电 | 固定:优先级 ""/"";必填:dischargePower=10(单台最大放电功率)、gridDischargeMax=-1(默认不限) |
wiki《常规调度配置·强制aPower放电》(原文 10000 W) |
| Zero Import | 固定:优先级 9,9,9/9,9,9、gridDischargeMax=0.1、gridFeedMax=0.1;必填:dischargePower=10;初始值:gridMax=0、gcaoMax=0、heatEnable=1 |
云端 dispatchId=9 |
识别顺序(解析时):
9,9,9/9,9,9);chargePower → 强制充电;只设置了 dischargePower → 强制放电;两者都没设置 → 未设置优先级;两者都设置了 → 自定义并标出异常;“设置了”指字段有值且不为 -1(未设置的哨兵值)。Zero Import 只按优先级识别;如果已有数据的固定参数与定义不一致(如 gridFeedMax 不是 0.1),仍识别为 Zero Import,但标出不一致,且在用户未改动该时段时原样保留。识别结果只看优先级和上述字段,A~H 时段上额外设置的功率参数作为高级参数显示,不改变模式。
HH:mm。ccociateSn 相同;每天类型 ccociateSn 为 ""。"" 或 null。功率单位 kW(精度 0.1),按单台 aPower 计;SOC 0~100;rampTime 0~300。9,9,9)在用户没有要求修改该时段时原样保留。template.sourceType 只能为 0(系统模版);template.templateId 新增时省略、更新时必填。tou_template_get(env=test)回读核对。