From 83a07895f969cc3a9b959466b035f4596206bd9a Mon Sep 17 00:00:00 2001 From: Barbudor Date: Mon, 7 Nov 2022 23:27:16 +0100 Subject: [PATCH] take care of Relay1 is not 1st power --- .../tasmota_xdrv_driver/xdrv_90_dingtian_relay.ino | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tasmota/tasmota_xdrv_driver/xdrv_90_dingtian_relay.ino b/tasmota/tasmota_xdrv_driver/xdrv_90_dingtian_relay.ino index d198f2cc5..4013e9540 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_90_dingtian_relay.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_90_dingtian_relay.ino @@ -99,7 +99,10 @@ void DingtianInit(void) { Dingtian->first = TasmotaGlobal.devices_present; TasmotaGlobal.devices_present += Dingtian->count; - AddLog(LOG_LEVEL_DEBUG, PSTR("DNGT: Dingtian relays: POWER%d to POWER%d"), Dingtian->first + 1, Dingtian->first + Dingtian->count); + if (TasGlobal.devices_present > POWER_SIZE) { + TasGlobal.devices_present = POWER_SIZE; + } + AddLog(LOG_LEVEL_DEBUG, PSTR("DNGT: Dingtian relays: POWER%d to POWER%d"), Dingtian->first + 1, TasGlobal.devices_present); } } } @@ -135,9 +138,9 @@ void DingtianLoop() void DingtianSetPower(void) { // store relay status in structure - Dingtian->outputs = (XdrvMailbox.index >> Dingtian->first) & ~(0xFFFF << Dingtian->count); + Dingtian->outputs = (XdrvMailbox.index >> Dingtian->first) & ~(0xFFFFFFFF << Dingtian->count); //AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("DNGT: outputs=0x%08X"), Dingtian->outputs); - //DingtianLoop(); + DingtianLoop(); } /******************************************************************************************************** @@ -186,8 +189,8 @@ bool Xdrv90(uint8_t function) { case FUNC_SET_POWER: DingtianSetPower(); break; - //case FUNC_EVERY_50_MSECOND: - case FUNC_EVERY_250_MSECOND: + case FUNC_EVERY_50_MSECOND: + //case FUNC_EVERY_250_MSECOND: DingtianLoop(); break; case FUNC_JSON_APPEND: @@ -198,7 +201,6 @@ bool Xdrv90(uint8_t function) { DingtianShow(0); break; #endif // USE_WEBSERVER - } } return result;