From 1147304781c63c9001176cde4b56cffc0257ddc3 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Wed, 1 Feb 2023 12:09:55 +0100 Subject: [PATCH] Fix second voltage channel if SO150 set --- tasmota/tasmota_xnrg_energy/xnrg_14_bl09xx.ino | 2 ++ tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tasmota/tasmota_xnrg_energy/xnrg_14_bl09xx.ino b/tasmota/tasmota_xnrg_energy/xnrg_14_bl09xx.ino index a1dc34e32..2e3a15cda 100644 --- a/tasmota/tasmota_xnrg_energy/xnrg_14_bl09xx.ino +++ b/tasmota/tasmota_xnrg_energy/xnrg_14_bl09xx.ino @@ -189,6 +189,7 @@ bool Bl09XXDecode42(void) { void Bl09XXUpdateEnergy() { if (Energy->power_on) { // Powered on Energy->voltage[0] = (float)Bl09XX.voltage / EnergyGetCalibration(ENERGY_VOLTAGE_CALIBRATION); + Energy->voltage[1] = Energy->voltage[0]; #ifdef DEBUG_BL09XX AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("BL9: U %2_f, T %2_f"), &Energy->voltage[0], &Bl09XX.temperature); #endif @@ -208,6 +209,7 @@ void Bl09XXUpdateEnergy() { } } else { // Powered off Energy->voltage[0] = 0; + Energy->voltage[1] = 0; Energy->active_power[0] = Energy->active_power[1] = 0; Energy->current[0] = Energy->current[1] = 0; } diff --git a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino index 17ad3ad7f..b176065df 100644 --- a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino +++ b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino @@ -462,8 +462,10 @@ void Cse7761GetData(void) { // Voltage = RmsU * RmsUC * 10 / 0x400000 // Energy->voltage[0] = (float)(((uint64_t)CSE7761Data.voltage_rms * CSE7761Data.coefficient[RmsUC] * 10) >> 22) / 1000; // V Energy->voltage[0] = ((float)CSE7761Data.voltage_rms / EnergyGetCalibration(ENERGY_VOLTAGE_CALIBRATION)); // V + Energy->voltage[1] = Energy->voltage[0]; #ifdef CSE7761_FREQUENCY Energy->frequency[0] = (CSE7761Data.frequency) ? ((float)EnergyGetCalibration(ENERGY_FREQUENCY_CALIBRATION) / 8 / CSE7761Data.frequency) : 0; // Hz + Energy->frequency[1] = Energy->frequency[0]; #endif for (uint32_t channel = 0; channel < 2; channel++) {