From 21bb822dec0cd13f8af66a532297cfa70db4ef7a Mon Sep 17 00:00:00 2001 From: Felix Laevsky Date: Sun, 23 Apr 2023 11:51:00 +0300 Subject: [PATCH] Fix for ModuleAddress command (#18490) --- tasmota/tasmota_xnrg_energy/xnrg_05_pzem_ac.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tasmota/tasmota_xnrg_energy/xnrg_05_pzem_ac.ino b/tasmota/tasmota_xnrg_energy/xnrg_05_pzem_ac.ino index 03c0f1e10..a1ca3c610 100644 --- a/tasmota/tasmota_xnrg_energy/xnrg_05_pzem_ac.ino +++ b/tasmota/tasmota_xnrg_energy/xnrg_05_pzem_ac.ino @@ -50,6 +50,7 @@ struct PZEMAC { void PzemAcEverySecond(void) { bool data_ready = PzemAcModbus->ReceiveReady(); + uint16_t addr; if (data_ready) { uint8_t buffer[30]; // At least 5 + (2 * 10) = 25 @@ -95,7 +96,8 @@ void PzemAcEverySecond(void) } PzemAc.send_retry = ENERGY_WATCHDOG; if (ADDR_SEND == PzemAc.address_step) { - PzemAcModbus->Send(0xF8, 0x06, 0x0002, (uint16_t)PzemAc.address); + addr = PzemAc.address; + PzemAcModbus->Send(0xF8, 0x06, 0x0002, 1, (uint16_t *) &addr); PzemAc.address_step--; } else { PzemAcModbus->Send(PZEM_AC_DEVICE_ADDRESS + PzemAc.phase, 0x04, 0, 10);