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);