From 482c5324eeb8bc540204ac59581d9fe185d6bf72 Mon Sep 17 00:00:00 2001 From: Theo Arends Date: Wed, 16 May 2018 10:56:09 +0200 Subject: [PATCH 1/4] Add KNX communication enhancement 5.14.0a * Add KNX communication enhancement (#2742) --- sonoff/_releasenotes.ino | 1 + sonoff/language/bg-BG.h | 1 + sonoff/language/cs-CZ.h | 1 + sonoff/language/de-DE.h | 1 + sonoff/language/el-GR.h | 1 + sonoff/language/en-GB.h | 3 ++- sonoff/language/es-AR.h | 3 ++- sonoff/language/fr-FR.h | 1 + sonoff/language/hu-HU.h | 1 + sonoff/language/it-IT.h | 1 + sonoff/language/nl-NL.h | 3 ++- sonoff/language/pl-PL.h | 1 + sonoff/language/pt-BR.h | 1 + sonoff/language/pt-PT.h | 1 + sonoff/language/ru-RU.h | 1 + sonoff/language/zh-CN.h | 1 + sonoff/language/zh-TW.h | 1 + sonoff/settings.h | 2 +- sonoff/xdrv_11_knx.ino | 50 ++++++++++++++++++++++++++++++++++++---- 19 files changed, 67 insertions(+), 8 deletions(-) diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index c8a76e970..7c3159de2 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,5 +1,6 @@ /* 5.14.0a * Add Eastron SDM630 energy meter (#2735) + * Add KNX communication enhancement (#2742) * * 5.14.0 20180515 * Update language files diff --git a/sonoff/language/bg-BG.h b/sonoff/language/bg-BG.h index 5aef7c4a1..d4856eb19 100644 --- a/sonoff/language/bg-BG.h +++ b/sonoff/language/bg-BG.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Друго" #define D_SENT_TO "изпратен до" #define D_KNX_WARNING "Груповият адрес ( 0 / 0 / 0 ) е резервиран и не може да бъде използван." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Използвана енергия днес" diff --git a/sonoff/language/cs-CZ.h b/sonoff/language/cs-CZ.h index 13935c6eb..bdaef9b36 100644 --- a/sonoff/language/cs-CZ.h +++ b/sonoff/language/cs-CZ.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Jiné" #define D_SENT_TO "pošli" #define D_KNX_WARNING "Skupinová adresa ( 0 / 0 / 0 ) je rezervována a nemůže být použita." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Spotřeba Dnes" diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h index 1dcdce025..e1b925ac6 100644 --- a/sonoff/language/de-DE.h +++ b/sonoff/language/de-DE.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energie heute" diff --git a/sonoff/language/el-GR.h b/sonoff/language/el-GR.h index b3d3f50a8..fa38c7c97 100644 --- a/sonoff/language/el-GR.h +++ b/sonoff/language/el-GR.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Αλλο" #define D_SENT_TO "αποστολή σε" #define D_KNX_WARNING "Η Ομάδα Διευθύνσεων ( 0 / 0 / 0 ) είναι δεσμευμένη και δεν μπορεί να χρησιμοποιηθεί." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energy Σήμερα" diff --git a/sonoff/language/en-GB.h b/sonoff/language/en-GB.h index 4cdb117f3..3e5b0a0c0 100644 --- a/sonoff/language/en-GB.h +++ b/sonoff/language/en-GB.h @@ -28,7 +28,7 @@ * Use online command StateText to translate ON, OFF, HOLD and TOGGLE. * Use online command Prefix to translate cmnd, stat and tele. * - * Updated until v5.14.0 + * Updated until v5.14.0a \*********************************************************************/ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energy Today" diff --git a/sonoff/language/es-AR.h b/sonoff/language/es-AR.h index a05cd7e03..d9c37fa0e 100644 --- a/sonoff/language/es-AR.h +++ b/sonoff/language/es-AR.h @@ -28,7 +28,7 @@ * Use online command StateText to translate ON, OFF, HOLD and TOGGLE. * Use online command Prefix to translate cmnd, stat and tele. * - * Updated until v5.14.0 + * Updated until v5.14.0a \*********************************************************************/ #define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Otro" #define D_SENT_TO "enviada a" #define D_KNX_WARNING "La dirección de grupo ( 0 / 0 / 0 ) está reservada y no puede ser utilizada." +#define D_KNX_ENHANCEMENT "Mejora de Comunicación" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energía Hoy" diff --git a/sonoff/language/fr-FR.h b/sonoff/language/fr-FR.h index d37647912..843f4ef51 100644 --- a/sonoff/language/fr-FR.h +++ b/sonoff/language/fr-FR.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Autre" #define D_SENT_TO "envoyé à" #define D_KNX_WARNING "L'Adresse de Groupe ( 0 / 0 / 0 ) est réservée et ne peut être utilisée." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xsns_03_energy.ino #define D_ENERGY_TODAY "Énergie aujourd'hui" diff --git a/sonoff/language/hu-HU.h b/sonoff/language/hu-HU.h index 46f2ca82a..a5f373146 100644 --- a/sonoff/language/hu-HU.h +++ b/sonoff/language/hu-HU.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Mai Energia" diff --git a/sonoff/language/it-IT.h b/sonoff/language/it-IT.h index 3fde551ec..ceb1faa16 100644 --- a/sonoff/language/it-IT.h +++ b/sonoff/language/it-IT.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Altro" #define D_SENT_TO "invia a" #define D_KNX_WARNING "L'indirizzo del gruppo ( 0 / 0 / 0 ) è riservato e non può essere usato." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energia Oggi" diff --git a/sonoff/language/nl-NL.h b/sonoff/language/nl-NL.h index 47f682006..df970798f 100644 --- a/sonoff/language/nl-NL.h +++ b/sonoff/language/nl-NL.h @@ -28,7 +28,7 @@ * Use online command StateText to translate ON, OFF, HOLD and TOGGLE. * Use online command Prefix to translate cmnd, stat and tele. * - * Updated until v5.14.0 + * Updated until v5.14.0a \*********************************************************************/ //#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English) @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Overige" #define D_SENT_TO "verzend naar" #define D_KNX_WARNING "Groep adres (0/0/0) is gereserveerd en mag niet worden gebruikt." +#define D_KNX_ENHANCEMENT "Verbeter verbinding" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Verbruik vandaag" diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h index f63eb88b6..2b96e5195 100644 --- a/sonoff/language/pl-PL.h +++ b/sonoff/language/pl-PL.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Energia Dzisiaj" diff --git a/sonoff/language/pt-BR.h b/sonoff/language/pt-BR.h index e6a93c8f1..1740abbdd 100644 --- a/sonoff/language/pt-BR.h +++ b/sonoff/language/pt-BR.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Outros" #define D_SENT_TO "Enviar para" #define D_KNX_WARNING "O endereço ( 0 / 0 / 0 ) é reservado e não pode ser usado." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Consumo energético de hoje" diff --git a/sonoff/language/pt-PT.h b/sonoff/language/pt-PT.h index df93d370e..c8d8944af 100644 --- a/sonoff/language/pt-PT.h +++ b/sonoff/language/pt-PT.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Consumo energético de hoje" diff --git a/sonoff/language/ru-RU.h b/sonoff/language/ru-RU.h index 980875891..bd1440d28 100644 --- a/sonoff/language/ru-RU.h +++ b/sonoff/language/ru-RU.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "Энергия Сегодня" diff --git a/sonoff/language/zh-CN.h b/sonoff/language/zh-CN.h index f452f1fe9..113c470b9 100644 --- a/sonoff/language/zh-CN.h +++ b/sonoff/language/zh-CN.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "今日用电量" diff --git a/sonoff/language/zh-TW.h b/sonoff/language/zh-TW.h index 4120b6f54..14e9cad00 100644 --- a/sonoff/language/zh-TW.h +++ b/sonoff/language/zh-TW.h @@ -400,6 +400,7 @@ #define D_KNX_COMMAND_OTHER "Other" #define D_SENT_TO "sent to" #define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used." +#define D_KNX_ENHANCEMENT "Communication Enhancement" // xdrv_03_energy.ino #define D_ENERGY_TODAY "今日用電量" diff --git a/sonoff/settings.h b/sonoff/settings.h index ec156c85a..6f67c3843 100644 --- a/sonoff/settings.h +++ b/sonoff/settings.h @@ -52,7 +52,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu uint32_t rules_once : 1; // bit 24 (v5.12.0k) uint32_t knx_enabled : 1; // bit 25 (v5.12.0l) KNX uint32_t device_index_enable : 1; // bit 26 (v5.13.1a) - uint32_t spare27 : 1; + uint32_t knx_enable_enhancement : 1; // bit 27 (v5.14.0a) KNX uint32_t spare28 : 1; uint32_t spare29 : 1; uint32_t spare30 : 1; diff --git a/sonoff/xdrv_11_knx.ino b/sonoff/xdrv_11_knx.ino index 89959d269..b5eef6989 100644 --- a/sonoff/xdrv_11_knx.ino +++ b/sonoff/xdrv_11_knx.ino @@ -60,9 +60,11 @@ address_t KNX_addr; // KNX Address converter variable #define KNX_TEMPERATURE 17 #define KNX_HUMIDITY 18 #define KNX_MAX_device_param 18 +#define TOGGLE_INHIBIT_TIME 10 // 10*50mseg = 500mseg float last_temp; float last_hum; +byte toggle_inhibit; typedef struct __device_parameters { @@ -461,21 +463,38 @@ void KNX_CB_Action(message_t const &msg, void *arg) } else if (chan->type < 17) // Toggle Relays { - ExecuteCommandPower((chan->type) -8, 2); + if (!toggle_inhibit) { + ExecuteCommandPower((chan->type) -8, 2); + if (Settings.flag.knx_enable_enhancement) { + toggle_inhibit = TOGGLE_INHIBIT_TIME; + } + } } break; case KNX_CT_READ: if (chan->type < 9) // reply Relays status { knx.answer_1bit(msg.received_on, chan->last_state); + if (Settings.flag.knx_enable_enhancement) { + knx.answer_1bit(msg.received_on, chan->last_state); + knx.answer_1bit(msg.received_on, chan->last_state); + } } else if (chan->type = KNX_TEMPERATURE) // Reply Temperature { knx.answer_2byte_float(msg.received_on, last_temp); + if (Settings.flag.knx_enable_enhancement) { + knx.answer_2byte_float(msg.received_on, last_temp); + knx.answer_2byte_float(msg.received_on, last_temp); + } } else if (chan->type = KNX_HUMIDITY) // Reply Humidity { knx.answer_2byte_float(msg.received_on, last_hum); + if (Settings.flag.knx_enable_enhancement) { + knx.answer_2byte_float(msg.received_on, last_hum); + knx.answer_2byte_float(msg.received_on, last_hum); + } } break; } @@ -493,6 +512,10 @@ void KnxUpdatePowerState(byte device, power_t state) while ( i != KNX_Empty ) { KNX_addr.value = Settings.knx_GA_addr[i]; knx.write_1bit(KNX_addr, device_param[device -1].last_state); + if (Settings.flag.knx_enable_enhancement) { + knx.write_1bit(KNX_addr, device_param[device -1].last_state); + knx.write_1bit(KNX_addr, device_param[device -1].last_state); + } snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "%s = %d " D_SENT_TO " %d.%d.%d"), device_param_ga[device -1], device_param[device -1].last_state, @@ -522,6 +545,10 @@ void KnxSendButtonPower(byte key, byte device, byte state) while ( i != KNX_Empty ) { KNX_addr.value = Settings.knx_GA_addr[i]; knx.write_1bit(KNX_addr, !(state == 0)); + if (Settings.flag.knx_enable_enhancement) { + knx.write_1bit(KNX_addr, !(state == 0)); + 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 + 7], !(state == 0), @@ -550,6 +577,10 @@ void KnxSensor(byte sensor_type, float value) while ( i != KNX_Empty ) { KNX_addr.value = Settings.knx_GA_addr[i]; knx.write_2byte_float(KNX_addr, value); + if (Settings.flag.knx_enable_enhancement) { + knx.write_2byte_float(KNX_addr, value); + knx.write_2byte_float(KNX_addr, value); + } snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "%s " D_SENT_TO " %d.%d.%d "), device_param_ga[sensor_type -1], @@ -578,8 +609,11 @@ const char HTTP_FORM_KNX[] PROGMEM = "

" D_KNX_PHYSICAL_ADDRESS_NOTE "

" "" D_KNX_ENABLE " " D_KNX_ENABLE "

" + ">" D_KNX_ENHANCEMENT "

" "
" "" D_KNX_GROUP_ADDRESS_TO_WRITE "
" @@ -696,6 +730,8 @@ void HandleKNXConfiguration() page.replace(F("{knl"), String(KNX_physs_addr.pa.line)); page.replace(F("{knm"), String(KNX_physs_addr.pa.member)); if ( Settings.flag.knx_enabled ) { page += F(" checked"); } + page += FPSTR(HTTP_FORM_KNX1); + if ( Settings.flag.knx_enable_enhancement ) { page += F(" checked"); } page += FPSTR(HTTP_FORM_KNX2); for (byte i = 0; i < KNX_MAX_device_param ; i++) @@ -822,8 +858,9 @@ void KNX_Save_Settings() address_t KNX_addr; Settings.flag.knx_enabled = WebServer->hasArg("b1"); - snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX D_ENABLED ": %d "), - Settings.flag.knx_enabled); + Settings.flag.knx_enable_enhancement = WebServer->hasArg("b2"); + snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX D_ENABLED ": %d, " D_KNX_ENHANCEMENT ": %d"), + Settings.flag.knx_enabled, Settings.flag.knx_enable_enhancement ); AddLog(LOG_LEVEL_DEBUG); stmp = WebServer->arg("area"); @@ -883,6 +920,11 @@ boolean Xdrv11(byte function) case FUNC_LOOP: knx.loop(); // Process knx events break; + case FUNC_EVERY_50_MSECOND: + if (toggle_inhibit) { + toggle_inhibit--; + } + break; // case FUNC_COMMAND: // result = KNXCommand(); // break; From bace5a2f578185b2cc9df47689e0a97be3107f2d Mon Sep 17 00:00:00 2001 From: Theo Arends Date: Wed, 16 May 2018 11:01:18 +0200 Subject: [PATCH 2/4] Fix pio compile errors Fix pio compile errors caused by changed parameters and trict parameter checking --- platformio.ini | 54 +++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/platformio.ini b/platformio.ini index 233f36553..1ec4d689d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -33,11 +33,15 @@ env_default = sonoff ;env_default = sonoff-TW [common] ; ************************************************************ -; *** Esp8266 core for Arduino version -platform = espressif8266@1.5.0 ; v2.3.0 -;platform = espressif8266@1.6.0 ; v2.4.0 -;platform = espressif8266@1.7.0 ; v2.4.1 + ; *** Esp8266 core for Arduino version 2.3.0 +platform = espressif8266@1.5.0 + ; *** Esp8266 core for Arduino version 2.4.0 +;platform = espressif8266@1.6.0 + ; *** Esp8266 core for Arduino version 2.4.1 +;platform = espressif8266@1.7.0 + ; *** Esp8266 core for Arduino version latest beta ;platform = https://github.com/platformio/platform-espressif8266.git#feature/stage + ; *** Esp8266 core for Arduino current version ;platform = espressif8266 framework = arduino @@ -57,7 +61,7 @@ build_flags = extra_scripts = pio/strip-floats.py ; *** Serial Monitor options -monitor_baud = 115200 +monitor_speed = 115200 ; *** Upload Serial reset method for Wemos and NodeMCU ;upload_speed = 115200 @@ -82,7 +86,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_resetmethod = ${common.upload_resetmethod} upload_port = ${common.upload_port} @@ -95,7 +99,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DBE_MINIMAL -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -107,7 +111,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DUSE_CLASSIC -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -119,7 +123,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DUSE_KNX_NO_EMULATION -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -131,7 +135,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DUSE_ALL_SENSORS -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -143,7 +147,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=bg-BG -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -155,7 +159,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=pt-BR -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -167,7 +171,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=zh-CN -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -179,7 +183,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=cs-CZ -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -191,7 +195,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=de-DE -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -203,7 +207,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=es-AR -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -215,7 +219,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=fr-FR -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -227,7 +231,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=el-GR -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -239,7 +243,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=hu-HU -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -251,7 +255,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=it-IT -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -263,7 +267,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=nl-NL -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -275,7 +279,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=pl-PL -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -287,7 +291,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=pt-PT -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -299,7 +303,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=ru-RU -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} @@ -311,7 +315,7 @@ board = ${common.board} board_flash_mode = ${common.board_flash_mode} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} -DMY_LANGUAGE=zh-TW -monitor_baud = ${common.monitor_baud} +monitor_speed = ${common.monitor_speed} upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} extra_scripts = ${common.extra_scripts} From b67a1291e9eb1f3a066bef2878bbb67882515c3f Mon Sep 17 00:00:00 2001 From: Theo Arends Date: Wed, 16 May 2018 11:23:40 +0200 Subject: [PATCH 3/4] Fix pio compile errors --- platformio.ini | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/platformio.ini b/platformio.ini index 1ec4d689d..323951289 100644 --- a/platformio.ini +++ b/platformio.ini @@ -33,15 +33,15 @@ env_default = sonoff ;env_default = sonoff-TW [common] ; ************************************************************ - ; *** Esp8266 core for Arduino version 2.3.0 +; *** Esp8266 core for Arduino version 2.3.0 platform = espressif8266@1.5.0 - ; *** Esp8266 core for Arduino version 2.4.0 +; *** Esp8266 core for Arduino version 2.4.0 ;platform = espressif8266@1.6.0 - ; *** Esp8266 core for Arduino version 2.4.1 +; *** Esp8266 core for Arduino version 2.4.1 ;platform = espressif8266@1.7.0 - ; *** Esp8266 core for Arduino version latest beta +; *** Esp8266 core for Arduino version latest beta ;platform = https://github.com/platformio/platform-espressif8266.git#feature/stage - ; *** Esp8266 core for Arduino current version +; *** Esp8266 core for Arduino current version ;platform = espressif8266 framework = arduino From 25ba74cfb4267d076f42afe41d3688cc08d14053 Mon Sep 17 00:00:00 2001 From: Theo Arends Date: Wed, 16 May 2018 17:17:31 +0200 Subject: [PATCH 4/4] Fix timer re-trigger after restart 5.14.0a * Fix timer re-trigger within one minute after restart (#2744) --- sonoff/_releasenotes.ino | 1 + sonoff/xdrv_09_timers.ino | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index 7c3159de2..02ea82c75 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,6 +1,7 @@ /* 5.14.0a * Add Eastron SDM630 energy meter (#2735) * Add KNX communication enhancement (#2742) + * Fix timer re-trigger within one minute after restart (#2744) * * 5.14.0 20180515 * Update language files diff --git a/sonoff/xdrv_09_timers.ino b/sonoff/xdrv_09_timers.ino index 889a92937..7528dcfad 100644 --- a/sonoff/xdrv_09_timers.ino +++ b/sonoff/xdrv_09_timers.ino @@ -262,7 +262,7 @@ void TimerEverySecond() { if (RtcTime.valid) { if (!RtcTime.hour && !RtcTime.minute && !RtcTime.second) { TimerSetRandomWindows(); } // Midnight - if (RtcTime.minute != timer_last_minute) { // Execute every minute only once + if ((uptime > 60) && (RtcTime.minute != timer_last_minute)) { // Execute from one minute after restart every minute only once timer_last_minute = RtcTime.minute; int16_t time = (RtcTime.hour *60) + RtcTime.minute; uint8_t days = 1 << (RtcTime.day_of_week -1);