From 0cd97d3890a26c849fbe91b5843467163c8c3579 Mon Sep 17 00:00:00 2001 From: Norbert Richter Date: Thu, 17 Nov 2022 15:14:28 +0100 Subject: [PATCH] Fix generic modbus single phase register output --- tasmota/tasmota_xnrg_energy/xnrg_29_modbus.ino | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tasmota/tasmota_xnrg_energy/xnrg_29_modbus.ino b/tasmota/tasmota_xnrg_energy/xnrg_29_modbus.ino index 6f78aa48a..06e643632 100644 --- a/tasmota/tasmota_xnrg_energy/xnrg_29_modbus.ino +++ b/tasmota/tasmota_xnrg_energy/xnrg_29_modbus.ino @@ -750,18 +750,19 @@ void EnergyModbusShow(bool json) { values[j] = NrgMbsUser[i].data[j]; } uint32_t resolution = EnergyModbusResolution(NrgMbsUser[i].resolution); + uint32_t single = (!isnan(NrgMbsUser[i].data[1]) && !isnan(NrgMbsUser[i].data[2])) ? 0 : 1; #ifdef ENERGY_MODBUS_DEBUG_SHOW AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: resolution %d -> %d"), NrgMbsUser[i].resolution, resolution); #endif if (json) { - ResponseAppend_P(PSTR(",\"%s\":%s"), NrgMbsUser[i].json_name, EnergyFormat(value_chr, values, resolution)); + ResponseAppend_P(PSTR(",\"%s\":%s"), NrgMbsUser[i].json_name, EnergyFormat(value_chr, values, resolution, single)); #ifdef USE_WEBSERVER } else { WSContentSend_PD(PSTR("{s}%s{m}%s %s{e}"), NrgMbsUser[i].gui_name, - WebEnergyFormat(value_chr, values, resolution), + WebEnergyFormat(value_chr, values, resolution, single), NrgMbsUser[i].gui_unit); #endif // USE_WEBSERVER }