From 05af60074f4bd6f5cfed3ca38bf837ff363b4e3f Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 7 Apr 2020 12:19:54 +0200 Subject: [PATCH 1/8] Add quick wifi connect using saved AP parameters Add quick wifi connect using saved AP parameters when ``SetOption56 0`` (#3189) --- RELEASENOTES.md | 1 + tasmota/CHANGELOG.md | 1 + tasmota/settings.h | 4 +++- tasmota/support_wifi.ino | 10 +++++++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index ec242c079..fc64bb536 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -72,3 +72,4 @@ The following binary downloads have been compiled with ESP8266/Arduino library c - Add support for up to four MQTT GroupTopics using the same optional Device Group names (#8014) - Add console command history (#7483, #8015) - Add support for longer template names +- Add quick wifi connect using saved AP parameters when ``SetOption56 0`` (#3189) diff --git a/tasmota/CHANGELOG.md b/tasmota/CHANGELOG.md index b88102593..7e30dc269 100644 --- a/tasmota/CHANGELOG.md +++ b/tasmota/CHANGELOG.md @@ -12,6 +12,7 @@ - Add command ``Sensor10 0/1/2`` to control BH1750 resolution - 0 = High (default), 1 = High2, 2 = Low (#8016) - Add command ``Sensor10 31..254`` to control BH1750 measurement time which defaults to 69 (#8016) - Add command ``SetOption91 1`` to enable fading at startup / power on +- Add quick wifi connect using saved AP parameters when ``SetOption56 0`` (#3189) ### 8.2.0.2 20200328 diff --git a/tasmota/settings.h b/tasmota/settings.h index 54958754c..5002382b0 100644 --- a/tasmota/settings.h +++ b/tasmota/settings.h @@ -470,8 +470,10 @@ struct SYSCFG { uint8_t bri_preset_low; // F06 uint8_t bri_preset_high; // F07 int8_t hum_comp; // F08 + uint8_t channel; // F09 + uint8_t bssid[6]; // F0A - uint8_t free_f09[175]; // F09 + uint8_t free_f10[168]; // F10 uint16_t pulse_counter_debounce_low; // FB8 uint16_t pulse_counter_debounce_high; // FBA diff --git a/tasmota/support_wifi.ino b/tasmota/support_wifi.ino index efc0f9a26..7e6ed05d2 100644 --- a/tasmota/support_wifi.ino +++ b/tasmota/support_wifi.ino @@ -401,6 +401,11 @@ void WifiCheckIp(void) Settings.ip_address[1] = (uint32_t)WiFi.gatewayIP(); Settings.ip_address[2] = (uint32_t)WiFi.subnetMask(); Settings.ip_address[3] = (uint32_t)WiFi.dnsIP(); + + // Save current AP parameters for quick reconnect + Settings.channel = WiFi.channel(); + uint8_t *bssid = WiFi.BSSID(); + memcpy((void*) &Settings.bssid, (void*) bssid, sizeof(Settings.bssid)); } Wifi.status = WL_CONNECTED; #ifdef USE_DISCOVERY @@ -423,6 +428,7 @@ void WifiCheckIp(void) break; case WL_NO_SSID_AVAIL: AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_AP_NOT_REACHED)); + Settings.channel = 0; // Disable stored AP if (WIFI_WAIT == Settings.sta_config) { Wifi.retry = Wifi.retry_init; } else { @@ -462,7 +468,7 @@ void WifiCheckIp(void) } } else { if (Wifi.retry_init == Wifi.retry) { - WifiBegin(3, 0); // Select default SSID + WifiBegin(3, Settings.channel); // Select default SSID } if ((Settings.sta_config != WIFI_WAIT) && ((Wifi.retry_init / 2) == Wifi.retry)) { WifiBegin(2, 0); // Select alternate SSID @@ -650,6 +656,8 @@ void WifiConnect(void) Wifi.retry = Wifi.retry_init; Wifi.counter = 1; + memcpy((void*) &Wifi.bssid, (void*) Settings.bssid, sizeof(Wifi.bssid)); + #ifdef WIFI_RF_PRE_INIT if (rf_pre_init_flag) { AddLog_P2(LOG_LEVEL_DEBUG, PSTR(D_LOG_WIFI "Pre-init done")); From 7a6628d9030b2f1ac4ee87d417dbebafb9ca5194 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 7 Apr 2020 14:07:00 +0200 Subject: [PATCH 2/8] Add command ``SetOption41 `` to force sending gratuitous ARP every seconds --- tasmota/CHANGELOG.md | 1 + tasmota/settings.ino | 4 ++-- tasmota/support_tasmota.ino | 3 +++ tasmota/support_wifi.ino | 48 +++++++++++++++++++++++++++++++++++++ tasmota/tasmota.h | 2 +- 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/tasmota/CHANGELOG.md b/tasmota/CHANGELOG.md index 7e30dc269..f25414319 100644 --- a/tasmota/CHANGELOG.md +++ b/tasmota/CHANGELOG.md @@ -13,6 +13,7 @@ - Add command ``Sensor10 31..254`` to control BH1750 measurement time which defaults to 69 (#8016) - Add command ``SetOption91 1`` to enable fading at startup / power on - Add quick wifi connect using saved AP parameters when ``SetOption56 0`` (#3189) +- Add command ``SetOption41 `` to force sending gratuitous ARP every seconds ### 8.2.0.2 20200328 diff --git a/tasmota/settings.ino b/tasmota/settings.ino index 3bb58ff43..caa87eb05 100644 --- a/tasmota/settings.ino +++ b/tasmota/settings.ino @@ -1298,8 +1298,8 @@ void SettingsDelta(void) Settings.tuya_fnid_map[tuyaindex].dpid = 1; tuyaindex++; } - if (Settings.param[P_ex_TUYA_RELAYS] > 0) { - for (uint8_t i = 0 ; i < Settings.param[P_ex_TUYA_RELAYS]; i++) { // ex SetOption41 + if (Settings.param[P_ARP_GRATUITOUS] > 0) { // Was P_ex_TUYA_RELAYS + for (uint8_t i = 0 ; i < Settings.param[P_ARP_GRATUITOUS]; i++) { // ex SetOption41 Settings.tuya_fnid_map[tuyaindex].fnid = 12 + i; // TUYA_MCU_FUNC_REL2 - Create FnID for Switches Settings.tuya_fnid_map[tuyaindex].dpid = i + 2; tuyaindex++; diff --git a/tasmota/support_tasmota.ino b/tasmota/support_tasmota.ino index ed0355a88..a0a3bacaf 100644 --- a/tasmota/support_tasmota.ino +++ b/tasmota/support_tasmota.ino @@ -814,6 +814,9 @@ void PerformEverySecond(void) } } } + + // Wifi keep alive to send Gratuitous ARP + wifiKeepAlive(); } /*-------------------------------------------------------------------------------------------*\ diff --git a/tasmota/support_wifi.ino b/tasmota/support_wifi.ino index 7e6ed05d2..389a7f8a1 100644 --- a/tasmota/support_wifi.ino +++ b/tasmota/support_wifi.ino @@ -708,3 +708,51 @@ void EspRestart(void) // ESP.restart(); // This results in exception 3 on restarts on core 2.3.0 ESP.reset(); } + +// +// Gratuitous ARP, backported from https://github.com/esp8266/Arduino/pull/6889 +// +extern "C" { +#if LWIP_VERSION_MAJOR == 1 +#include "netif/wlan_lwip_if.h" // eagle_lwip_getif() +#include "netif/etharp.h" // gratuitous arp +#else +#include "lwip/etharp.h" // gratuitous arp +#endif +} + +unsigned long wifiTimer = 0; + +void stationKeepAliveNow(void) { + AddLog_P2(LOG_LEVEL_DEBUG, PSTR(D_LOG_WIFI "Sending Gratuitous ARP")); + for (netif* interface = netif_list; interface != nullptr; interface = interface->next) + if ( + (interface->flags & NETIF_FLAG_LINK_UP) + && (interface->flags & NETIF_FLAG_UP) +#if LWIP_VERSION_MAJOR == 1 + && interface == eagle_lwip_getif(STATION_IF) /* lwip1 does not set if->num properly */ + && (!ip_addr_isany(&interface->ip_addr)) +#else + && interface->num == STATION_IF + && (!ip4_addr_isany_val(*netif_ip4_addr(interface))) +#endif + ) + { + etharp_gratuitous(interface); + break; + } +} + +void wifiKeepAlive(void) { + uint32_t wifiTimerSec = Settings.param[P_ARP_GRATUITOUS]; // 8-bits number of seconds, or minutes if > 100 + + if ((WL_CONNECTED != Wifi.status) || (0 == wifiTimerSec)) { return; } // quick exit if wifi not connected or feature disabled + + if (wifiTimerSec > 100) { + wifiTimerSec = (wifiTimerSec - 100) * 60; // convert >100 as minutes, ex: 105 = 5 minutes, 110 = 10 minutes + } + if (TimeReached(wifiTimer)) { + stationKeepAliveNow(); + SetNextTimeInterval(wifiTimer, wifiTimerSec * 1000); + } +} diff --git a/tasmota/tasmota.h b/tasmota/tasmota.h index 431a116ec..1fa8d89af 100644 --- a/tasmota/tasmota.h +++ b/tasmota/tasmota.h @@ -256,7 +256,7 @@ enum ButtonStates { PRESSED, NOT_PRESSED }; enum Shortcuts { SC_CLEAR, SC_DEFAULT, SC_USER }; enum SettingsParamIndex { P_HOLD_TIME, P_MAX_POWER_RETRY, P_BACKLOG_DELAY, P_MDNS_DELAYED_START, P_BOOT_LOOP_OFFSET, P_RGB_REMAP, P_IR_UNKNOW_THRESHOLD, // SetOption32 .. SetOption38 - P_CSE7766_INVALID_POWER, P_HOLD_IGNORE, P_ex_TUYA_RELAYS, P_OVER_TEMP, // SetOption39 .. SetOption42 + P_CSE7766_INVALID_POWER, P_HOLD_IGNORE, P_ARP_GRATUITOUS, P_OVER_TEMP, // SetOption39 .. SetOption42 P_ex_DIMMER_MAX, P_ex_TUYA_VOLTAGE_ID, P_ex_TUYA_CURRENT_ID, P_ex_TUYA_POWER_ID, // SetOption43 .. SetOption46 P_ex_ENERGY_TARIFF1, P_ex_ENERGY_TARIFF2, // SetOption47 .. SetOption48 P_MAX_PARAM8 }; // Max is PARAM8_SIZE (18) - SetOption32 until SetOption49 From 6219c0fee2d87cd1aa89b7dcd5ac049e6d8d7d54 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 7 Apr 2020 14:21:17 +0200 Subject: [PATCH 3/8] Moving test inside timer condition --- tasmota/support_wifi.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tasmota/support_wifi.ino b/tasmota/support_wifi.ino index 389a7f8a1..7134ae85b 100644 --- a/tasmota/support_wifi.ino +++ b/tasmota/support_wifi.ino @@ -748,11 +748,11 @@ void wifiKeepAlive(void) { if ((WL_CONNECTED != Wifi.status) || (0 == wifiTimerSec)) { return; } // quick exit if wifi not connected or feature disabled - if (wifiTimerSec > 100) { - wifiTimerSec = (wifiTimerSec - 100) * 60; // convert >100 as minutes, ex: 105 = 5 minutes, 110 = 10 minutes - } if (TimeReached(wifiTimer)) { stationKeepAliveNow(); + if (wifiTimerSec > 100) { + wifiTimerSec = (wifiTimerSec - 100) * 60; // convert >100 as minutes, ex: 105 = 5 minutes, 110 = 10 minutes + } SetNextTimeInterval(wifiTimer, wifiTimerSec * 1000); } } From 253c947d7bfdf2b40a4a47e3a594a6c826cdc7eb Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 7 Apr 2020 16:02:51 +0200 Subject: [PATCH 4/8] Add more fall back from quick connect Add more fall back from quick connect --- tasmota/support_wifi.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tasmota/support_wifi.ino b/tasmota/support_wifi.ino index 7134ae85b..bcf967f82 100644 --- a/tasmota/support_wifi.ino +++ b/tasmota/support_wifi.ino @@ -442,6 +442,7 @@ void WifiCheckIp(void) break; case WL_CONNECT_FAILED: AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_WRONG_PASSWORD)); + Settings.channel = 0; // Disable stored AP if (Wifi.retry > (Wifi.retry_init / 2)) { Wifi.retry = Wifi.retry_init / 2; } @@ -450,6 +451,7 @@ void WifiCheckIp(void) } break; default: // WL_IDLE_STATUS and WL_DISCONNECTED + Settings.channel = 0; // Disable stored AP if (!Wifi.retry || ((Wifi.retry_init / 2) == Wifi.retry)) { AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_AP_TIMEOUT)); } else { @@ -724,7 +726,7 @@ extern "C" { unsigned long wifiTimer = 0; void stationKeepAliveNow(void) { - AddLog_P2(LOG_LEVEL_DEBUG, PSTR(D_LOG_WIFI "Sending Gratuitous ARP")); + AddLog_P2(LOG_LEVEL_DEBUG_MORE, PSTR(D_LOG_WIFI "Sending Gratuitous ARP")); for (netif* interface = netif_list; interface != nullptr; interface = interface->next) if ( (interface->flags & NETIF_FLAG_LINK_UP) From 7e162e6caf2b021b478721036b5ac0305b2cca68 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 7 Apr 2020 16:31:22 +0200 Subject: [PATCH 5/8] Update Wifi connection error message Update Wifi connection error message --- tasmota/language/bg-BG.h | 2 +- tasmota/language/cs-CZ.h | 2 +- tasmota/language/de-DE.h | 2 +- tasmota/language/el-GR.h | 2 +- tasmota/language/en-GB.h | 2 +- tasmota/language/es-ES.h | 2 +- tasmota/language/fr-FR.h | 2 +- tasmota/language/he-HE.h | 2 +- tasmota/language/hu-HU.h | 2 +- tasmota/language/it-IT.h | 2 +- tasmota/language/ko-KO.h | 2 +- tasmota/language/nl-NL.h | 2 +- tasmota/language/pl-PL.h | 2 +- tasmota/language/pt-BR.h | 2 +- tasmota/language/pt-PT.h | 2 +- tasmota/language/ro-RO.h | 2 +- tasmota/language/ru-RU.h | 2 +- tasmota/language/sk-SK.h | 2 +- tasmota/language/sv-SE.h | 2 +- tasmota/language/uk-UA.h | 2 +- tasmota/language/zh-CN.h | 2 +- tasmota/language/zh-TW.h | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/tasmota/language/bg-BG.h b/tasmota/language/bg-BG.h index f7760f302..d4cb21b90 100644 --- a/tasmota/language/bg-BG.h +++ b/tasmota/language/bg-BG.h @@ -210,7 +210,7 @@ #define D_IN_MODE "в режим" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Грешка при свързването, не е получен IP адрес" #define D_CONNECT_FAILED_AP_NOT_REACHED "Грешка при свързването, точката за достъп е недостижима" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Грешка при свързването, грешна парола към точката за достъп" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Грешка при свързването" #define D_CONNECT_FAILED_AP_TIMEOUT "Грешка при свързването, превишено време за изчакване" #define D_ATTEMPTING_CONNECTION "Опитва свързване..." #define D_CHECKING_CONNECTION "Проверка на свързването..." diff --git a/tasmota/language/cs-CZ.h b/tasmota/language/cs-CZ.h index 72bb6c275..fb625af7b 100644 --- a/tasmota/language/cs-CZ.h +++ b/tasmota/language/cs-CZ.h @@ -210,7 +210,7 @@ #define D_IN_MODE "v módu" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Chyba připojení, nebyla obdržena IP adresa" #define D_CONNECT_FAILED_AP_NOT_REACHED "Chyba připojení, nedostupný AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Chyba připojení, nesprávné heslo pro AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Chyba připojení" #define D_CONNECT_FAILED_AP_TIMEOUT "Chyba připojení, uplynul AP timeout" #define D_ATTEMPTING_CONNECTION "Připojování..." #define D_CHECKING_CONNECTION "Zkouška spojení..." diff --git a/tasmota/language/de-DE.h b/tasmota/language/de-DE.h index 12cb30769..a698297de 100644 --- a/tasmota/language/de-DE.h +++ b/tasmota/language/de-DE.h @@ -210,7 +210,7 @@ #define D_IN_MODE "in Modus" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Verbindung fehlgeschlagen, da keine IP-Adresse zugeteilt wurde" #define D_CONNECT_FAILED_AP_NOT_REACHED "Verbindung fehlgeschlagen, da AP nicht erreicht werden konnte" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Verbindung fehlgeschlagen, da das Passwort falsch ist" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Verbindung fehlgeschlagen" #define D_CONNECT_FAILED_AP_TIMEOUT "Verbindung fehlgeschlagen, da der AP nicht antwortet (timeout)" #define D_ATTEMPTING_CONNECTION "Verbindungsversuch..." #define D_CHECKING_CONNECTION "Prüfe Verbindung..." diff --git a/tasmota/language/el-GR.h b/tasmota/language/el-GR.h index 8a8160956..6e65f2dce 100644 --- a/tasmota/language/el-GR.h +++ b/tasmota/language/el-GR.h @@ -210,7 +210,7 @@ #define D_IN_MODE "σε mode" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Αποτυχία σύνδεσης, δεν απονεμήθηκε διεύθυνση IP" #define D_CONNECT_FAILED_AP_NOT_REACHED "Αποτυχία σύνδεσης, δεν ανταποκρίνεται το AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Αποτυχία σύνδεσης, λάθος κωδικός για το AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Αποτυχία σύνδεσης" #define D_CONNECT_FAILED_AP_TIMEOUT "Αποτυχία σύνδεσης, λήξη ορίου απόκρισης από το AP" #define D_ATTEMPTING_CONNECTION "Προσπάθεια για σύνδεση..." #define D_CHECKING_CONNECTION "Έλεγχος σύνδεσης..." diff --git a/tasmota/language/en-GB.h b/tasmota/language/en-GB.h index 09b43c1be..322757d17 100644 --- a/tasmota/language/en-GB.h +++ b/tasmota/language/en-GB.h @@ -210,7 +210,7 @@ #define D_IN_MODE "in mode" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Connect failed as no IP address received" #define D_CONNECT_FAILED_AP_NOT_REACHED "Connect failed as AP cannot be reached" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Connect failed with AP incorrect password" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Connect failed" #define D_CONNECT_FAILED_AP_TIMEOUT "Connect failed with AP timeout" #define D_ATTEMPTING_CONNECTION "Attempting connection..." #define D_CHECKING_CONNECTION "Checking connection..." diff --git a/tasmota/language/es-ES.h b/tasmota/language/es-ES.h index f70940a38..39f18f29d 100644 --- a/tasmota/language/es-ES.h +++ b/tasmota/language/es-ES.h @@ -210,7 +210,7 @@ #define D_IN_MODE "en modo" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Falló Conexión, Dirección IP no recibida" #define D_CONNECT_FAILED_AP_NOT_REACHED "Falló Conexión, AP no pudo ser contactado" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Falló Conexión, clave de AP incorrecta" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Falló Conexión" #define D_CONNECT_FAILED_AP_TIMEOUT "Falló Conexión, timeout de AP" #define D_ATTEMPTING_CONNECTION "Intentando conectar..." #define D_CHECKING_CONNECTION "Probando conexión..." diff --git a/tasmota/language/fr-FR.h b/tasmota/language/fr-FR.h index 488386aea..beb6e6b38 100644 --- a/tasmota/language/fr-FR.h +++ b/tasmota/language/fr-FR.h @@ -210,7 +210,7 @@ #define D_IN_MODE "en mode" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Échec de connexion car aucune adresse IP n'a été reçue" #define D_CONNECT_FAILED_AP_NOT_REACHED "Échec de connexion car l'AP ne peut-être contacté" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Échec de connexion car le mot de passe de l'AP est incorrect" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Échec de connexion" #define D_CONNECT_FAILED_AP_TIMEOUT "Échec de connexion avec l'AP, expiré" #define D_ATTEMPTING_CONNECTION "Tentative de connexion..." #define D_CHECKING_CONNECTION "Vérification connexion..." diff --git a/tasmota/language/he-HE.h b/tasmota/language/he-HE.h index 70d474e8f..99e15b7fd 100644 --- a/tasmota/language/he-HE.h +++ b/tasmota/language/he-HE.h @@ -210,7 +210,7 @@ #define D_IN_MODE "במצב" #define D_CONNECT_FAILED_NO_IP_ADDRESS "IP החיבור נכשל מכיוון שלא התקבלה כתובת" #define D_CONNECT_FAILED_AP_NOT_REACHED "זמין AP החיבור נכשל כיוון שאין" -#define D_CONNECT_FAILED_WRONG_PASSWORD "סיסמא שגויה , AP חיבור נכשל ל" +#define D_CONNECT_FAILED_WRONG_PASSWORD "AP חיבור נכשל ל" #define D_CONNECT_FAILED_AP_TIMEOUT "פג זמן המתנה , AP חיבור נכשל ל" #define D_ATTEMPTING_CONNECTION "...מנסה להתחבר" #define D_CHECKING_CONNECTION "...בודק חיבור" diff --git a/tasmota/language/hu-HU.h b/tasmota/language/hu-HU.h index cc47f6a5d..34ea7e8a6 100644 --- a/tasmota/language/hu-HU.h +++ b/tasmota/language/hu-HU.h @@ -210,7 +210,7 @@ #define D_IN_MODE "mód:" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Sikertelen csatlakozás, nincs kiosztott IP cím" #define D_CONNECT_FAILED_AP_NOT_REACHED "Sikertelen csatlakozás, AP nem elérhető" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Sikertelen csatlakozás, hibás AP jelszó" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Sikertelen csatlakozás" #define D_CONNECT_FAILED_AP_TIMEOUT "Sikertelen csatlakozás AP időtúllépés miatt" #define D_ATTEMPTING_CONNECTION "Csatlakozás..." #define D_CHECKING_CONNECTION "Kapcsolat ellenőrzése..." diff --git a/tasmota/language/it-IT.h b/tasmota/language/it-IT.h index 12b730bbc..151bda319 100644 --- a/tasmota/language/it-IT.h +++ b/tasmota/language/it-IT.h @@ -210,7 +210,7 @@ #define D_IN_MODE "In modalità" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Connessione fallita - indirizzo IP non ricevuto" #define D_CONNECT_FAILED_AP_NOT_REACHED "Connessione fallita - AP non raggiungibile" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Connessione fallita - password AP non corretta" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Connessione fallita" #define D_CONNECT_FAILED_AP_TIMEOUT "Connessione fallita - timeout AP" #define D_ATTEMPTING_CONNECTION "Tentativo di connessione..." #define D_CHECKING_CONNECTION "Controllo connessione..." diff --git a/tasmota/language/ko-KO.h b/tasmota/language/ko-KO.h index 1767366db..434ae07e5 100644 --- a/tasmota/language/ko-KO.h +++ b/tasmota/language/ko-KO.h @@ -210,7 +210,7 @@ #define D_IN_MODE "in mode" #define D_CONNECT_FAILED_NO_IP_ADDRESS "IP 주소가 수신되지 않아 연결이 실패했습니다" #define D_CONNECT_FAILED_AP_NOT_REACHED "연결이 닿지 않아 AP에 연결할 수 없습니다" -#define D_CONNECT_FAILED_WRONG_PASSWORD "비밀번호가 틀려 AP에 연결할 수 없습니다" +#define D_CONNECT_FAILED_WRONG_PASSWORD "연결할 수 없습니다" #define D_CONNECT_FAILED_AP_TIMEOUT "시간초과로 AP에 연결할 수 없습니다" #define D_ATTEMPTING_CONNECTION "연결 시도 중..." #define D_CHECKING_CONNECTION "연결 체크 중..." diff --git a/tasmota/language/nl-NL.h b/tasmota/language/nl-NL.h index 246066035..a129c764e 100644 --- a/tasmota/language/nl-NL.h +++ b/tasmota/language/nl-NL.h @@ -210,7 +210,7 @@ #define D_IN_MODE "in stand" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Verbinding mislukt omdat geen IP adres werd ontvangen" #define D_CONNECT_FAILED_AP_NOT_REACHED "Verbinding mislukt omdat AP onbereikbaar is" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Verbinding mislukt door fout wachtwoord" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Verbinding mislukt" #define D_CONNECT_FAILED_AP_TIMEOUT "Verbinding mislukt door AP time-out" #define D_ATTEMPTING_CONNECTION "Verbinden..." #define D_CHECKING_CONNECTION "Controleer verbinding..." diff --git a/tasmota/language/pl-PL.h b/tasmota/language/pl-PL.h index 6f945183a..4c9da5559 100644 --- a/tasmota/language/pl-PL.h +++ b/tasmota/language/pl-PL.h @@ -210,7 +210,7 @@ #define D_IN_MODE "w trybie" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Połączenie nie powiodło się, ponieważ nie otrzymano adresu IP" #define D_CONNECT_FAILED_AP_NOT_REACHED "Połączenie nie powiodło się, AP nie osiągalny" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Połączenie nie powiodło się, nieprawidlowe hasło" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Połączenie nie powiodło się" #define D_CONNECT_FAILED_AP_TIMEOUT "Nie udało się nawiązac połączenia, limit czasu przekroczony" #define D_ATTEMPTING_CONNECTION "Próba połączenia..." #define D_CHECKING_CONNECTION "Sprawdzanie połączenia..." diff --git a/tasmota/language/pt-BR.h b/tasmota/language/pt-BR.h index 236652de2..6ce132cb1 100644 --- a/tasmota/language/pt-BR.h +++ b/tasmota/language/pt-BR.h @@ -210,7 +210,7 @@ #define D_IN_MODE "em modo" #define D_CONNECT_FAILED_NO_IP_ADDRESS "A ligação falhou porque nenhum endereço IP foi recebido" #define D_CONNECT_FAILED_AP_NOT_REACHED "A ligação falhou porque o PA não pôde ser alcançado" -#define D_CONNECT_FAILED_WRONG_PASSWORD "A ligação falhou porque a senha está incorreta" +#define D_CONNECT_FAILED_WRONG_PASSWORD "A ligação falhou" #define D_CONNECT_FAILED_AP_TIMEOUT "A ligação falhou porque o tempo foi excedido" #define D_ATTEMPTING_CONNECTION "Ligando..." #define D_CHECKING_CONNECTION "Verificando ligação..." diff --git a/tasmota/language/pt-PT.h b/tasmota/language/pt-PT.h index 507e7fe8b..f87c0db4c 100644 --- a/tasmota/language/pt-PT.h +++ b/tasmota/language/pt-PT.h @@ -210,7 +210,7 @@ #define D_IN_MODE "em modo" #define D_CONNECT_FAILED_NO_IP_ADDRESS "A ligação falhou porque nenhum endereço IP foi recebido" #define D_CONNECT_FAILED_AP_NOT_REACHED "A ligação falhou porque o AP não pode ser alcançado" -#define D_CONNECT_FAILED_WRONG_PASSWORD "A ligação falhou porque a palavra chave está incorreta" +#define D_CONNECT_FAILED_WRONG_PASSWORD "A ligação falhou" #define D_CONNECT_FAILED_AP_TIMEOUT "A ligação falhou porque o tempo excedeu" #define D_ATTEMPTING_CONNECTION "A ligar..." #define D_CHECKING_CONNECTION "A verificar ligação..." diff --git a/tasmota/language/ro-RO.h b/tasmota/language/ro-RO.h index c3efc5758..ce9a152e9 100644 --- a/tasmota/language/ro-RO.h +++ b/tasmota/language/ro-RO.h @@ -210,7 +210,7 @@ #define D_IN_MODE "in mode" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Conexiune eșuată, lipsă primire adresă IP" #define D_CONNECT_FAILED_AP_NOT_REACHED "Conexiune eșuată, nu s-a găsit AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Conexiune eșuată, parolă greșită AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Conexiune eșuată" #define D_CONNECT_FAILED_AP_TIMEOUT "Conexiune eșuată, expirare timp AP" #define D_ATTEMPTING_CONNECTION "Conectare in curs ..." #define D_CHECKING_CONNECTION "Verificare conexiune..." diff --git a/tasmota/language/ru-RU.h b/tasmota/language/ru-RU.h index a104dca55..d2d0c153f 100644 --- a/tasmota/language/ru-RU.h +++ b/tasmota/language/ru-RU.h @@ -210,7 +210,7 @@ #define D_IN_MODE "в режиме" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Ошибка подключения, IP-адрес не получен" #define D_CONNECT_FAILED_AP_NOT_REACHED "Ошибка соединения, AP не может быть достигнута" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Ошибка соединения, неверный пароль к AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Ошибка соединения" #define D_CONNECT_FAILED_AP_TIMEOUT "Ошибка соединения с AP по тайм-ауту" #define D_ATTEMPTING_CONNECTION "Попытка подключения..." #define D_CHECKING_CONNECTION "Проверка соединения..." diff --git a/tasmota/language/sk-SK.h b/tasmota/language/sk-SK.h index 706432e5b..d925da9c6 100644 --- a/tasmota/language/sk-SK.h +++ b/tasmota/language/sk-SK.h @@ -210,7 +210,7 @@ #define D_IN_MODE "v režime" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Chyba pripojenia, nebola obdržaná IP adresa" #define D_CONNECT_FAILED_AP_NOT_REACHED "Chyba pripojenia, nedostupný AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Chyba pripojenia, nesprávne heslo pre AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Chyba pripojenia" #define D_CONNECT_FAILED_AP_TIMEOUT "Chyba pripojenia, uplynul AP timeout" #define D_ATTEMPTING_CONNECTION "Pripájanie..." #define D_CHECKING_CONNECTION "Skúška spojenia..." diff --git a/tasmota/language/sv-SE.h b/tasmota/language/sv-SE.h index df64cf2e3..d6be6cf9b 100644 --- a/tasmota/language/sv-SE.h +++ b/tasmota/language/sv-SE.h @@ -210,7 +210,7 @@ #define D_IN_MODE "i läge" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Anslutning misslyckades mottog ingen IP-adress" #define D_CONNECT_FAILED_AP_NOT_REACHED "Anslutning misslyckades, kunde inte nå AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Anslutning misslyckades, fel lösenord för AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Anslutning misslyckades" #define D_CONNECT_FAILED_AP_TIMEOUT "Anslutning misslyckadess med AP, timeout" #define D_ATTEMPTING_CONNECTION "Försöker ansluta..." #define D_CHECKING_CONNECTION "Kontrollerar anslutning..." diff --git a/tasmota/language/uk-UA.h b/tasmota/language/uk-UA.h index 2e3c4c077..4a62825e8 100644 --- a/tasmota/language/uk-UA.h +++ b/tasmota/language/uk-UA.h @@ -210,7 +210,7 @@ #define D_IN_MODE "в режимі" #define D_CONNECT_FAILED_NO_IP_ADDRESS "Помилка підключення, IP-адреса не отримана" #define D_CONNECT_FAILED_AP_NOT_REACHED "Помилка з'єднання, AP не знайдено" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Помилка з'єднання, невірне гасло до AP" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Помилка з'єднання" #define D_CONNECT_FAILED_AP_TIMEOUT "Помилка з'єднання з AP по тайм-ауту" #define D_ATTEMPTING_CONNECTION "Спроба підключення..." #define D_CHECKING_CONNECTION "Перевірка з'єднання..." diff --git a/tasmota/language/zh-CN.h b/tasmota/language/zh-CN.h index c59cb7a57..cb4221e75 100644 --- a/tasmota/language/zh-CN.h +++ b/tasmota/language/zh-CN.h @@ -210,7 +210,7 @@ #define D_IN_MODE "模式:" #define D_CONNECT_FAILED_NO_IP_ADDRESS "连接失败,因为没有获取到 IP 地址" #define D_CONNECT_FAILED_AP_NOT_REACHED "连接失败,无法连接 AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "连接失败,AP 密码不正确" +#define D_CONNECT_FAILED_WRONG_PASSWORD "连接失败" #define D_CONNECT_FAILED_AP_TIMEOUT "连接失败,AP 超时" #define D_ATTEMPTING_CONNECTION "尝试连接..." #define D_CHECKING_CONNECTION "检查连接..." diff --git a/tasmota/language/zh-TW.h b/tasmota/language/zh-TW.h index 6ef104bec..6738d4208 100644 --- a/tasmota/language/zh-TW.h +++ b/tasmota/language/zh-TW.h @@ -210,7 +210,7 @@ #define D_IN_MODE "模式:" #define D_CONNECT_FAILED_NO_IP_ADDRESS "連接失敗,因為沒有獲取到IP地址" #define D_CONNECT_FAILED_AP_NOT_REACHED "連接失敗,無法連接AP" -#define D_CONNECT_FAILED_WRONG_PASSWORD "連接失敗,AP密碼不正確" +#define D_CONNECT_FAILED_WRONG_PASSWORD "連接失敗" #define D_CONNECT_FAILED_AP_TIMEOUT "連接失敗,AP超時" #define D_ATTEMPTING_CONNECTION "嘗試連接..." #define D_CHECKING_CONNECTION "檢查連接..." From 53717df2e96f40252f250e4f4dc24d08ab9275e2 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 7 Apr 2020 16:39:04 +0200 Subject: [PATCH 6/8] Fix wifi quick connect Fix wifi quick connect --- tasmota/support_wifi.ino | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasmota/support_wifi.ino b/tasmota/support_wifi.ino index bcf967f82..c7ac57106 100644 --- a/tasmota/support_wifi.ino +++ b/tasmota/support_wifi.ino @@ -451,11 +451,12 @@ void WifiCheckIp(void) } break; default: // WL_IDLE_STATUS and WL_DISCONNECTED - Settings.channel = 0; // Disable stored AP if (!Wifi.retry || ((Wifi.retry_init / 2) == Wifi.retry)) { AddLog_P(LOG_LEVEL_INFO, S_LOG_WIFI, PSTR(D_CONNECT_FAILED_AP_TIMEOUT)); + Settings.channel = 0; // Disable stored AP } else { if (!strlen(SettingsText(SET_STASSID1)) && !strlen(SettingsText(SET_STASSID2))) { + Settings.channel = 0; // Disable stored AP wifi_config_tool = WIFI_MANAGER; // Skip empty SSIDs and start Wifi config tool Wifi.retry = 0; } else { From e964cbca6b1c0e5f332fcbd5c5440d1150fd17da Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 7 Apr 2020 16:45:01 +0200 Subject: [PATCH 7/8] Update tr-TR.h --- tasmota/language/tr-TR.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasmota/language/tr-TR.h b/tasmota/language/tr-TR.h index 1366b9996..09ca53017 100644 --- a/tasmota/language/tr-TR.h +++ b/tasmota/language/tr-TR.h @@ -210,7 +210,7 @@ #define D_IN_MODE "modunda" #define D_CONNECT_FAILED_NO_IP_ADDRESS "IP adresi alınamadığı için bağlantı kurulamadı" #define D_CONNECT_FAILED_AP_NOT_REACHED "Ap'ye ulaşılamadı" -#define D_CONNECT_FAILED_WRONG_PASSWORD "Girilen parolayı AP kabul etmedi" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Bağlantı sağlanamadı" #define D_CONNECT_FAILED_AP_TIMEOUT "AP'ye bağlanılırken süre aşımı oluştu" #define D_ATTEMPTING_CONNECTION "Yeniden bağlanılıyor..." #define D_CHECKING_CONNECTION "Bağlantı kontrol ediliyor..." From 8b7aca39f23003498d1c95c1cafe59be40f286d9 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 7 Apr 2020 17:25:37 +0200 Subject: [PATCH 8/8] Update changelog and release notes --- RELEASENOTES.md | 4 +++- tasmota/CHANGELOG.md | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fc64bb536..449d545aa 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -64,7 +64,9 @@ The following binary downloads have been compiled with ESP8266/Arduino library c - Add Zigbee command ``ZbUnbind`` - Add Zigbee command ``ZbBindState`` and ``manuf``attribute - Add commands ``CounterDebounceLow`` and ``CounterDebounceHigh`` to control debouncing (#8021) +- Add command ``SetOption41 `` to force sending gratuitous ARP every seconds - Add command ``SetOption90 1`` to disable non-json MQTT messages (#8044) +- Add command ``SetOption91 1`` to enable fading at startup / power on - Add command ``Sensor10 0/1/2`` to control BH1750 resolution - 0 = High (default), 1 = High2, 2 = Low (#8016) - Add command ``Sensor10 31..254`` to control BH1750 measurement time which defaults to 69 (#8016) - Add support for unreachable (unplugged) Zigbee devices in Philips Hue emulation and Alexa @@ -72,4 +74,4 @@ The following binary downloads have been compiled with ESP8266/Arduino library c - Add support for up to four MQTT GroupTopics using the same optional Device Group names (#8014) - Add console command history (#7483, #8015) - Add support for longer template names -- Add quick wifi connect using saved AP parameters when ``SetOption56 0`` (#3189) +- Add quick wifi reconnect using saved AP parameters when ``SetOption56 0`` (#3189) diff --git a/tasmota/CHANGELOG.md b/tasmota/CHANGELOG.md index f25414319..d22c9a4c9 100644 --- a/tasmota/CHANGELOG.md +++ b/tasmota/CHANGELOG.md @@ -12,8 +12,8 @@ - Add command ``Sensor10 0/1/2`` to control BH1750 resolution - 0 = High (default), 1 = High2, 2 = Low (#8016) - Add command ``Sensor10 31..254`` to control BH1750 measurement time which defaults to 69 (#8016) - Add command ``SetOption91 1`` to enable fading at startup / power on -- Add quick wifi connect using saved AP parameters when ``SetOption56 0`` (#3189) - Add command ``SetOption41 `` to force sending gratuitous ARP every seconds +- Add quick wifi reconnect using saved AP parameters when ``SetOption56 0`` (#3189) ### 8.2.0.2 20200328