V1.5: 新增实时功率上报(power字段,与energy同一条报文,策略同步)
This commit is contained in:
parent
e6f25bfa0b
commit
7e427fbfc4
|
|
@ -356,17 +356,17 @@ int NET_publish_power(int on)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 上报累计电量: energy 字段,单位 kWh,两位小数 */
|
/* 上报累计电量: energy 字段,单位 kWh,两位小数 */
|
||||||
void NET_publish_energy(float kwh)
|
void NET_publish_energy(float kwh, float power_w)
|
||||||
{
|
{
|
||||||
if (g_net_tx_busy) { log_info("> NET: energy 上报被丢弃 (发送忙)"); return; }
|
if (g_net_tx_busy) { log_info("> NET: energy 上报被丢弃 (发送忙)"); return; }
|
||||||
if (net_at_trylock() != 0) { log_info("> NET: energy 上报被丢弃 (AT 忙)"); return; }
|
if (net_at_trylock() != 0) { log_info("> NET: energy 上报被丢弃 (AT 忙)"); return; }
|
||||||
if (s_backend == NET_BACKEND_4G) {
|
if (s_backend == NET_BACKEND_4G) {
|
||||||
CAT1_printf("AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22iot.prop.post\\22,\\22body\\22:{\\22energy\\22:%.2f}}\"",
|
CAT1_printf("AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22iot.prop.post\\22,\\22body\\22:{\\22energy\\22:%.2f,\\22power\\22:%.1f}}\"",
|
||||||
MqttInfoStr.ClientID, kwh);
|
MqttInfoStr.ClientID, kwh, power_w);
|
||||||
} else {
|
} else {
|
||||||
char json[96];
|
char json[128];
|
||||||
snprintf(json, sizeof(json),
|
snprintf(json, sizeof(json),
|
||||||
"{\"header\":\"iot.prop.post\",\"body\":{\"energy\":%.2f}}", kwh);
|
"{\"header\":\"iot.prop.post\",\"body\":{\"energy\":%.2f,\"power\":%.1f}}", kwh, power_w);
|
||||||
net_wifi_publish_up(json);
|
net_wifi_publish_up(json);
|
||||||
}
|
}
|
||||||
log_debug("> NET: energy 已发布 %.2f", (double)kwh);
|
log_debug("> NET: energy 已发布 %.2f", (double)kwh);
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ int NET_publish_status(int sw1, int feeding, int sw2, int sw3, int sw4,
|
||||||
void NET_publish_response(const char *cmd_id, int ok, const char *msg);
|
void NET_publish_response(const char *cmd_id, int ok, const char *msg);
|
||||||
int NET_publish_power(int on);
|
int NET_publish_power(int on);
|
||||||
void NET_publish_version(const char *ver); /* 上报代码版本字符串(FIRMWARE_VERSION_STR) */ /* 返回 0=已发出,-1=通道忙被丢弃 */
|
void NET_publish_version(const char *ver); /* 上报代码版本字符串(FIRMWARE_VERSION_STR) */ /* 返回 0=已发出,-1=通道忙被丢弃 */
|
||||||
void NET_publish_energy(float kwh); /* 上报累计电量,标识符 energy,单位 kWh */
|
void NET_publish_energy(float kwh, float power_w); /* 上报累计电量,标识符 energy,单位 kWh */
|
||||||
int NET_mqtt_report(const char *header, const char *ota_id, int val); /* 返回 0=送达 */
|
int NET_mqtt_report(const char *header, const char *ota_id, int val); /* 返回 0=送达 */
|
||||||
int NET_ota_confirm(void); /* 0=确认通知已送达 1=无挂起 -1=未送达(需重试) */
|
int NET_ota_confirm(void); /* 0=确认通知已送达 1=无挂起 -1=未送达(需重试) */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -394,7 +394,7 @@ static void sys_task(void *arg)
|
||||||
}
|
}
|
||||||
if (report) {
|
if (report) {
|
||||||
energy_report_tick = HAL_GetTick();
|
energy_report_tick = HAL_GetTick();
|
||||||
NET_publish_energy(kwh);
|
NET_publish_energy(kwh, pw);
|
||||||
}
|
}
|
||||||
log_info(FMT_ENERGY, (double)kwh,
|
log_info(FMT_ENERGY, (double)kwh,
|
||||||
(double)hlw8032_get_voltage_v(),
|
(double)hlw8032_get_voltage_v(),
|
||||||
|
|
|
||||||
|
|
@ -346,6 +346,7 @@ W25Q64 外部 Flash(8MB):
|
||||||
| `sw2~sw4` | 备用继电器状态 | 0/1 |
|
| `sw2~sw4` | 备用继电器状态 | 0/1 |
|
||||||
| `pow` | 电量状态 | 1=正常,0=低电量 |
|
| `pow` | 电量状态 | 1=正常,0=低电量 |
|
||||||
| `energy` | 累计消耗电量 | HLW8032 计量,单位 kWh,两位小数(>10W 每 30s,否则首次+开关切换) |
|
| `energy` | 累计消耗电量 | HLW8032 计量,单位 kWh,两位小数(>10W 每 30s,否则首次+开关切换) |
|
||||||
|
| `power` | 实时功率 | HLW8032 计量,单位 W,一位小数,与 energy 同一条报文上报(策略同 energy) |
|
||||||
| `iccid` | SIM 卡号 | 仅 4G 通道,MQTT 连上后随 pow 上报一次,用于物联网卡套餐查询缴费 |
|
| `iccid` | SIM 卡号 | 仅 4G 通道,MQTT 连上后随 pow 上报一次,用于物联网卡套餐查询缴费 |
|
||||||
| `fwver` | 代码版本字符串 | 格式 `FIRMWARE_VERSION_STR`+`:`+EEPROM 版本序号(如 "1.5.0:15"),字符串类型,每次重启联网后上报一次(与状态大报文中的整数 `ver` OTA 版本号区分开) |
|
| `fwver` | 代码版本字符串 | 格式 `FIRMWARE_VERSION_STR`+`:`+EEPROM 版本序号(如 "1.5.0:15"),字符串类型,每次重启联网后上报一次(与状态大报文中的整数 `ver` OTA 版本号区分开) |
|
||||||
| `GPS` | 定位坐标 | 仅 4G 通道(Air780EG),GCJ-02 高德坐标系,格式 `"经度,纬度"`,每 5 分钟上报 |
|
| `GPS` | 定位坐标 | 仅 4G 通道(Air780EG),GCJ-02 高德坐标系,格式 `"经度,纬度"`,每 5 分钟上报 |
|
||||||
|
|
|
||||||
|
|
@ -168,3 +168,5 @@
|
||||||
(原先要等踢线/重启/拨开关触发上报才更新)
|
(原先要等踢线/重启/拨开关触发上报才更新)
|
||||||
- 修复重启后磅秤重量平台一直为 0:首次重量上报被 AT 忙丢弃后不重试,
|
- 修复重启后磅秤重量平台一直为 0:首次重量上报被 AT 忙丢弃后不重试,
|
||||||
改为发布成功才置标志,失败下轮查询继续重试
|
改为发布成功才置标志,失败下轮查询继续重试
|
||||||
|
- 新增实时功率上报:标识符 power(单位 W,一位小数),与 energy 合并同一条报文
|
||||||
|
(>10W 每 30s,否则首次+开关切换),平台物模型加 float 即可
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue