diff --git a/src/web_server.cpp b/src/web_server.cpp
index e56bd6b..ac4456e 100644
--- a/src/web_server.cpp
+++ b/src/web_server.cpp
@@ -54,7 +54,11 @@ static String render_sender_block(const SenderStatus &status) {
}
s += "" + String(status.last_data.device_id) + "";
if (status.has_data && status.last_data.link_valid) {
- s += " R:" + String(status.last_data.link_rssi_dbm) + " S:" + String(status.last_data.link_snr_db, 1);
+ s += " RSSI:" + String(status.last_data.link_rssi_dbm) + " SNR:" + String(status.last_data.link_snr_db, 1);
+ }
+ if (status.has_data) {
+ s += " err_tx:" + String(status.last_data.err_lora_tx);
+ s += " err_last:" + String(static_cast(status.last_data.last_error));
}
s += format_faults(idx);
s += "
";
@@ -63,7 +67,9 @@ static String render_sender_block(const SenderStatus &status) {
} else {
s += "Energy: " + String(status.last_data.energy_total_kwh, 3) + " kWh
";
s += "Power: " + String(status.last_data.total_power_w, 1) + " W
";
- s += "Battery: " + String(status.last_data.battery_voltage_v, 2) + " V (" + String(status.last_data.battery_percent) + ")";
+ s += "P1/P2/P3: " + String(status.last_data.phase_power_w[0], 1) + " / " + String(status.last_data.phase_power_w[1], 1) +
+ " / " + String(status.last_data.phase_power_w[2], 1) + " W
";
+ s += "Battery: " + String(status.last_data.battery_percent) + "% (" + String(status.last_data.battery_voltage_v, 2) + " V)";
}
s += "";
return s;
@@ -175,10 +181,12 @@ static void handle_manual() {
html += "Energy: total kWh since meter start.";
html += "Power: total active power in W.";
html += "P1/P2/P3: phase power in W.";
- html += "bat_v: battery voltage (V), bat_pct: estimated percent.";
+ html += "Battery: percent with voltage in V.";
html += "RSSI/SNR: LoRa link quality from last packet.";
- html += "err_tx: LoRa TX error count; err_last: last error code.";
- html += "faults m/d/tx: meter read/decode/tx counters.";
+ html += "err_tx: sender-side LoRa TX error counter.";
+ html += "err_last: last error code (0=None, 1=MeterRead, 2=Decode, 3=LoraTx).";
+ html += "faults m/d/tx: receiver-side counters (meter read fails, decode fails, LoRa TX fails).";
+ html += "faults last: last receiver-side error code (same mapping as err_last).";
html += "";
html += html_footer();
server.send(200, "text/html", html);