From 200c952138d338b84c55c61e60e26cdb0f872485 Mon Sep 17 00:00:00 2001 From: Theo Arends Date: Sat, 5 May 2018 09:51:46 +0200 Subject: [PATCH] Fix KNX config error 5.13.1a * Fix KNX config error (#2628) --- sonoff/_releasenotes.ino | 1 + sonoff/xdrv_11_knx.ino | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index f534c9bbf..86387a041 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -2,6 +2,7 @@ * Change user_config.h otaurl to http://sonoff.maddox.co.uk/tasmota/sonoff.bin (#2588, #2602) * Fix compile error when ADC is enabled and Rules are disabled (#2608) * Fix several timer data input and output errors (#2597, #2620) + * Fix KNX config error (#2628) * Add Portuguese in Brazil language file * Updated Italian language file (#2618) * diff --git a/sonoff/xdrv_11_knx.ino b/sonoff/xdrv_11_knx.ino index 3853284a2..4c3c8b19f 100644 --- a/sonoff/xdrv_11_knx.ino +++ b/sonoff/xdrv_11_knx.ino @@ -347,7 +347,7 @@ void KNX_DEL_CB( byte CBnum ) bool KNX_CONFIG_NOT_MATCH() { - for (int i = 0; i < KNX_MAX_device_param; ++i) + for (byte i = 0; i < KNX_MAX_device_param; ++i) { if ( !device_param[i].show ) { // device has this parameter ? // if not, search for all registered group address to this parameter for deletion @@ -355,7 +355,7 @@ bool KNX_CONFIG_NOT_MATCH() if ( (i < 8) || (i > 15) ) // check relays and sensors (i from 8 to 16 are toggle relays parameters) { if ( KNX_CB_Search(i+1) != KNX_Empty ) { return true; } - if ( KNX_CB_Search(i+8) != KNX_Empty ) { return true; } + if ( KNX_CB_Search(i+9) != KNX_Empty ) { return true; } } } } @@ -520,7 +520,7 @@ void KnxSendButtonPower(byte key, byte device, byte state) knx.write_1bit(KNX_addr, !(state == 0)); snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "%s = %d " D_SENT_TO " %d.%d.%d"), - device_param_ga[device + 8], !(state == 0), + device_param_ga[device + 7], !(state == 0), KNX_addr.ga.area, KNX_addr.ga.line, KNX_addr.ga.member); AddLog(LOG_LEVEL_INFO); @@ -732,6 +732,7 @@ void HandleKNXConfiguration() page.replace(F("GAfdef"), String(KNX_addr.ga.member)); } } + page += FPSTR(HTTP_FORM_KNX3); page += FPSTR(HTTP_FORM_KNX_GA); page.replace(F("GAfnum"), F("CB_FNUM")); @@ -765,6 +766,7 @@ void HandleKNXConfiguration() page.replace(F("btndis"), F("disabled")); } page.replace(F("fncbtnadd"), F("CBwarning")); + for (byte i = 0; i < Settings.knx_CB_registered ; ++i) { if ( Settings.knx_CB_param[i] ) @@ -812,7 +814,6 @@ void KNX_Save_Settings() { String stmp; address_t KNX_addr; - byte i; Settings.flag.knx_enabled = WebServer->hasArg("b1"); snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX D_ENABLED ": %d "), @@ -834,7 +835,7 @@ void KNX_Save_Settings() snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "GA: %d"), Settings.knx_GA_registered ); AddLog(LOG_LEVEL_DEBUG); - for (i = 0; i < Settings.knx_GA_registered ; ++i) + for (byte i = 0; i < Settings.knx_GA_registered ; ++i) { KNX_addr.value = Settings.knx_GA_addr[i]; snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "GA #%d: %s " D_TO " %d/%d/%d"), @@ -846,7 +847,7 @@ void KNX_Save_Settings() snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "CB: %d"), Settings.knx_CB_registered ); AddLog(LOG_LEVEL_DEBUG); - for (i = 0; i < Settings.knx_CB_registered ; ++i) + for (byte i = 0; i < Settings.knx_CB_registered ; ++i) { KNX_addr.value = Settings.knx_CB_addr[i]; snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "CB #%d: %d/%d/%d " D_TO " %s"),