From 1296432da2466a009a8e7f683b9bd0830787607e Mon Sep 17 00:00:00 2001 From: arendst Date: Mon, 23 Oct 2017 12:18:15 +0200 Subject: [PATCH] v5.8.0n - Add language, device and clock commands 5.8.0n * Fix minimum TelePeriod of 10 seconds set by web page * Shrink information web page by 1k code space * Removed Arduino IDE version too low warning as it interferes with platformio.ini platform = espressif8266_stage * Add commands Color2, Color3, Color4, Width2, Width3, Width4 and SetOption16 to set Ws2812 Clock parameters (#1019) * Add Polish language file (#1044, #1047) * Add support for KMC 70011 Power Monitoring Smart Plug (#1045) * Corrected German language file (#1054) --- README.md | 2 +- platformio.ini | 26 +- sonoff/_releasenotes.ino | 13 +- sonoff/language/de-DE.h | 14 +- sonoff/language/pl-PL.h | 688 +++++++++++++++++++++++++++++++++++++++ sonoff/settings.h | 10 +- sonoff/settings.ino | 27 +- sonoff/sonoff.h | 2 + sonoff/sonoff.ino | 6 +- sonoff/sonoff_template.h | 13 + sonoff/support.ino | 5 +- sonoff/user_config.h | 18 +- sonoff/webserver.ino | 141 ++++---- sonoff/xdrv_snfled.ino | 431 +++++++++++++----------- sonoff/xdrv_ws2812.ino | 42 +-- sonoff/xsns_bmp.ino | 170 +++++----- 16 files changed, 1198 insertions(+), 410 deletions(-) create mode 100644 sonoff/language/pl-PL.h diff --git a/README.md b/README.md index 2214a5906..5d8361776 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Sonoff-Tasmota Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. -Current version is **5.8.0m** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information. +Current version is **5.8.0n** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information. ### ATTENTION All versions diff --git a/platformio.ini b/platformio.ini index c6724bbec..f456a9f07 100644 --- a/platformio.ini +++ b/platformio.ini @@ -14,10 +14,10 @@ src_dir = sonoff ;env_default = sonoff ;env_default = sonoff-NL ;env_default = sonoff-DE +;env_default = sonoff-PL ;env_default = sonoff-minimal ;env_default = sonoff-ds18x20 -; *** Sonoff et al [env:sonoff] platform = espressif8266 framework = arduino @@ -40,7 +40,6 @@ monitor_baud = 115200 ;upload_port = domus1:80/api/upload-arduino.php ;extra_scripts = pio/http-uploader.py -; *** Sonoff et al [env:sonoff-NL] platform = espressif8266 framework = arduino @@ -63,7 +62,6 @@ monitor_baud = 115200 ;upload_port = domus1:80/api/upload-arduino.php ;extra_scripts = pio/http-uploader.py -; *** Sonoff et al [env:sonoff-DE] platform = espressif8266 framework = arduino @@ -86,6 +84,28 @@ monitor_baud = 115200 ;upload_port = domus1:80/api/upload-arduino.php ;extra_scripts = pio/http-uploader.py +[env:sonoff-PL] +platform = espressif8266 +framework = arduino +board = esp01_1m +board_flash_mode = dout +build_flags = -Wl,-Tesp8266.flash.1m0.ld -DMQTT_MAX_PACKET_SIZE=512 -DMY_LANGUAGE=pl-PL +lib_deps = PubSubClient, NeoPixelBus, IRremoteESP8266, ArduinoJSON + +; *** Serial Monitor options +monitor_baud = 115200 + +; *** Upload Serial reset method for Wemos and NodeMCU +;upload_resetmethod = nodemcu + +; *** Upload file to OTA server using SCP +;upload_port = user@host:/path +;extra_scripts = pio/sftp-uploader.py + +; *** Upload file to OTA server using HTTP +;upload_port = domus1:80/api/upload-arduino.php +;extra_scripts = pio/http-uploader.py + ; Sonoff minimal [env:sonoff-minimal] ; Placeholder to be configured platform = espressif8266 diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index 7f14002e0..82a039fe1 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,4 +1,13 @@ -/* 5.8.0m +/* 5.8.0n + * Fix minimum TelePeriod of 10 seconds set by web page + * Shrink information web page by 1k code space + * Removed Arduino IDE version too low warning as it interferes with platformio.ini platform = espressif8266_stage + * Add commands Color2, Color3, Color4, Width2, Width3, Width4 and SetOption16 to set Ws2812 Clock parameters (#1019) + * Add Polish language file (#1044, #1047) + * Add support for KMC 70011 Power Monitoring Smart Plug (#1045) + * Corrected German language file (#1054) + * + * 5.8.0m * Rewrite code (partly) using Google C++ Style Guide (https://google.github.io/styleguide/cppguide.html) * Allow empty MqttHost name by using option 0 * Allow Mqtt server mDNS lookup only when MqttHost name is empty (#1026) @@ -77,7 +86,7 @@ * Fix compile error when DOMOTICZ_UPDATE_TIMER is not defined (#930) * Fix alignment of web page items in some browsers (#935) * Add smoother movement of hour hand in WS2812 led clock (#936) - * Add support for Magic Home RGBW Led controller (#940) + * Add support for Magic Home and Arilux RGBW Led controller (#940) * * 5.8.0b * Fix command FullTopic entry when using serial or console interface diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h index d3f55b60a..feccbf958 100644 --- a/sonoff/language/de-DE.h +++ b/sonoff/language/de-DE.h @@ -100,12 +100,12 @@ #define D_FREE_MEMORY "freier Speicher" #define D_FREEMEMORY "frei" #define D_FROM "von" -#define D_GATEWAY "gateway" +#define D_GATEWAY "Gateway" #define D_GROUP "Gruppe" #define D_HEAPSIZE "Heap-Größe" #define D_HIGH "hoch" #define D_HOST "host" -#define D_HOSTNAME "hostname" +#define D_HOSTNAME "Hostname" #define D_HUMIDITY "Feuchtigkeit" #define D_ILLUMINANCE "Beleuchtungsintensität" #define D_IMMEDIATE "direkt" // Button immediate @@ -187,7 +187,7 @@ #define D_UNKNOWN "unbekannt" #define D_UPGRADE "upgrade" #define D_UPLOAD "upload" -#define D_UPTIME "uptime" +#define D_UPTIME "Laufzeit" #define D_UTC_TIME "UTC" #define D_USER "Benutzer" #define D_VCC "VCC" @@ -273,7 +273,7 @@ #define D_CONFIGURE_MQTT "MQTT konfigurieren" #define D_CONFIGURE_DOMOTICZ "Domoticz konfigurieren" #define D_CONFIGURE_LOGGING "Logging konfigurieren" -#define D_CONFIGURE_OTHER "Andere konfigurieren" +#define D_CONFIGURE_OTHER "Sonstige Konfiguration" #define D_CONFIRM_RESET_CONFIGURATION "Zurücksetzen der Konfiguration bestätigen" #define D_RESET_CONFIGURATION "Konfiguration zurücksetzen" #define D_BACKUP_CONFIGURATION "Konfiguration sichern" @@ -443,9 +443,9 @@ #define D_POWERMONITOR "PowerMonitor" #define D_ENERGYMONITOR "EnergyMonitor" #define D_MAXENERGYREACHED "MaxEnergyReached" -#define D_ENERGY_TODAY "Strom heute" -#define D_ENERGY_YESTERDAY "Strom gestern" -#define D_ENERGY_TOTAL "Stromtotal" +#define D_ENERGY_TODAY "Energie heute" +#define D_ENERGY_YESTERDAY "Energie gestern" +#define D_ENERGY_TOTAL "Energie insgesamt" // xsns_sht1x.ino #define D_SENSOR_DID_NOT_ACK_COMMAND "Sensor hat ACK-Befehl nicht ausgeführt" diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h new file mode 100644 index 000000000..8c2b8ccc7 --- /dev/null +++ b/sonoff/language/pl-PL.h @@ -0,0 +1,688 @@ +/* + pl-PL.h - localization for Polish without fonetick - Poland for Sonoff-Tasmota + + Copyright (C) 2017 Theo Arends (translated by roblad - Robert L.) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _LANGUAGE_PL_PL_H_ +#define _LANGUAGE_PL_PL_H_ + +/*************************** ATTENTION *******************************\ + * + * Due to memory constraints only UTF-8 is supported. + * To save code space keep text as short as possible. + * Time and Date provided by SDK can not be localized (yet). + * Use online command StateText to translate ON, OFF, HOLD and TOGGLE. + * Use online command Prefix to translate cmnd, stat and tele. + * +\*********************************************************************/ + +// "2017-03-07T11:08:02" - ISO8601:2004 +#define D_YEAR_MONTH_SEPARATOR "-" +#define D_MONTH_DAY_SEPARATOR "-" +#define D_DATE_TIME_SEPARATOR "T" +#define D_HOUR_MINUTE_SEPARATOR ":" +#define D_MINUTE_SECOND_SEPARATOR ":" + +#define D_DAY3LIST "PonWtoSroCzwPiaSobNie" +#define D_MONTH3LIST "StyLutMarKwiMajCzeLipSieWrzPazLisGru" + +// Non JSON decimal separator +#define D_DECIMAL_SEPARATOR "," + +// Common +#define D_ABORTED "Anulowany" +#define D_ACTIVE "Aktywny" +#define D_ADDRESS "Adres" +#define D_ADMIN "Admin" +#define D_AIR_QUALITY "Jakosc powietrza" +#define D_AIRQUALITY "JakPowietrza" +#define D_AP "AP" // Access Point +#define D_APMAC_ADDRESS "APMac" +#define D_APPENDED "Dolaczony" +#define D_AS "jak" +#define D_AUTO "AUTO" +#define D_BAUDRATE "Szybkosc transmisji" +#define D_BLINK "Miganie" +#define D_BLINKOFF "MiganieWyl" +#define D_BOOTVERSION "Uruchomienie" +#define D_BOOT_COUNT "Licznik uruchomienia" +#define D_BOOTCOUNT "LiczUruchomienia" +#define D_BRIGHTLIGHT "Jasny" +#define D_BUILDDATETIME "ZbudowanoDataCzas" +#define D_BUTTON "Przycisk" +#define D_CELSIUS "Celsiusza" +#define D_CODE "kod" // Button code +#define D_COLDLIGHT "Zimny" +#define D_COMMAND "Komenda" +#define D_CONNECTED "Polaczony" +#define D_COREVERSION "Wersja" +#define D_COUNT "Licz" +#define D_COUNTER "Licznik" +#define D_CURRENT "Biezacy" // As in Voltage and Current +#define D_DATA "Data" +#define D_DARKLIGHT "Ciemny" +#define D_DEBUG "Debug" +#define D_DISABLED "Zablokowany" +#define D_DNS_SERVER "Server DNS" +#define D_DNSSERVER "ServerDNS" +#define D_DONE "Wykonane" +#define D_DST_TIME "DST" +#define D_EMPTY "Pusty" +#define D_EMULATION "Emulacja" +#define D_ENABLED "Otwarty" +#define D_ENDDST "KoniecDST" // End Daylight Savings Time +#define D_ERASE "Nadpisz" +#define D_ERROR "Blad" +#define D_EVERY "Kazdy" +#define D_FAHRENHEIT "Fahrenheita" +#define D_FAILED "Bledny" +#define D_FALLBACK "Awaryjny" +#define D_FALLBACK_TOPIC "Zastepczy temat" +#define D_FALLBACKTOPIC "ZastepczyTemat" +#define D_FALSE "Falsz" +#define D_FILE "Plik" +#define D_FLASHMODE "FlashMode" +#define D_FLASHSIZE "FlashWielkosc" +#define D_FREE_MEMORY "Wolna pamiec" +#define D_FREEMEMORY "Wolne" +#define D_FROM "z" +#define D_GATEWAY "Brama" +#define D_GROUP "Grupa" +#define D_HEAPSIZE "Stos" +#define D_HIGH "Wysoki" +#define D_HOST "Serwer" +#define D_HOSTNAME "Nazwa serwera" +#define D_HUMIDITY "Wilgotnosc" +#define D_ILLUMINANCE "Oswietlenie" +#define D_IMMEDIATE "Natychmiastowe" // Button immediate +#define D_INDEX "Indeks" +#define D_INFO "Informacja" +#define D_INITIALIZED "Zainicjowany" +#define D_IP_ADDRESS "Adres IP" +#define D_LIGHT "Swiatlo" +#define D_LOCAL_TIME "Lokalny" +#define D_LOW "Niski" +#define D_LWT "LWT" +#define D_MAC "Mac" +#define D_MASK "Maska" +#define D_MODULE "Modul" +#define D_MQTT "MQTT" +#define D_MULTI_PRESS "wielokrotne-nacisniecie" +#define D_NO "Nie" +#define D_NOISE "Halas" +#define D_NONE "Brak" +#define D_OFF "Wylaczony" +#define D_OFFLINE "Nieaktywny" +#define D_OK "Ok" +#define D_ON "Wlaczony" +#define D_ONLINE "Aktywny" +#define D_OR "lub" +#define D_PASSWORD "Haslo" +#define D_PERIOD "Okres" +#define D_PORT "Port" +#define D_POWER_FACTOR "Wspolczynik mocy" +#define D_POWERFACTOR "WspolczynikMocy" +#define D_POWERUSAGE "Moc" +#define D_PRESSURE "Cisnienie" +#define D_PRESSUREATSEALEVEL "Cisnienie na poziomie morza" +#define D_PROGRAM_FLASH_SIZE "Wielkosc programu flash" +#define D_PROGRAMFLASHSIZE "ProgramFlashSize" +#define D_PROGRAM_SIZE "Wielkosc programu" +#define D_PROGRAMSIZE "ProgramSize" +#define D_PROJECT "Projekt" +#define D_RECEIVED "Otrzymany" +#define D_RESTART "Restart" +#define D_RESTARTING "Restartowanie" +#define D_RESTART_REASON "Przyczyna restartu" +#define D_RESTARTREASON "PrzyczynaRestartu" +#define D_RESTORE "Przywracanie" +#define D_RETAINED "Zachowane" +#define D_SAVE "Zapisz" +#define D_SAVEADDRESS "AdresZapisu" +#define D_SAVECOUNT "LicznikZapisu" +#define D_SAVESTATE "StanZapisu" +#define D_SDKVERSION "SDK" +#define D_SELECTED "Wybrany" +#define D_SENSOR "Czujnik" +#define D_SERIAL "Serial" +#define D_BYTES "Bajtow" +#define D_SSID "SSID" +#define D_START "Start" +#define D_STARTED "Uruchomiony" +#define D_STARTDST "StartDST" // Start Daylight Savings Time +#define D_STD_TIME "STD" +#define D_STOP "Stop" +#define D_SUBNET_MASK "Maska podsieci" +#define D_SUBNETMASK "MaskaPodsieci" +#define D_SUBSCRIBE_TO "Subskrybuj do" +#define D_SUCCESSFUL "Powodzenie" +#define D_SWITCH "Przelacznik" +#define D_SYNC "Sync" +#define D_SYS "System " // Sys log +#define D_TEMPERATURE "Temperatura" +#define D_TEMPERATURE_UNIT "JednTemp" +#define D_TIME "Czas" +#define D_TO "do" +#define D_TODAY "Dzisiaj" +#define D_TOGGLE "Przelacz" +#define D_TOPIC "Temat" +#define D_TOTAL "Suma" +#define D_TRANSMIT "Wyslij" +#define D_TRUE "Prawda" +#define D_TYPE "Typ" +#define D_UNKNOWN "Nieznany" +#define D_UPGRADE "Aktualizacji" +#define D_UPLOAD "Wgraj" +#define D_UPTIME "Uptime" +#define D_UTC_TIME "UTC" +#define D_USER "Uzytkownik" +#define D_VCC "VCC" +#define D_VERSION "Wersja" +#define D_VOLTAGE "Napiecie" +#define D_WARMLIGHT "Nagrzanie" +#define D_WEB "Web" // Web log +#define D_WEB_SERVER "Web Server" +#define D_WIFI "Wifi" +#define D_WRONG "Bledny" +#define D_YESTERDAY "Wczoraj" + +// settings.ino +#define D_SAVED_TO_FLASH_AT "Zapisane do pamieci flash w" +#define D_LOADED_FROM_FLASH_AT "Wczytane z pamieci flash z" +#define D_USE_DEFAULTS "Uzyj domyslnych" +#define D_ERASED_SECTOR "Wymazany sektor" + +// sonoff.ino +#define D_LEVEL_10 "poziom 1-0" +#define D_LEVEL_01 "poziom 0-1" +#define D_SERIAL_LOGGING_DISABLED "Wylaczony dziennik na porcie szeregowym" +#define D_SYSLOG_LOGGING_REENABLED "Wznowiono zapis do Syslog" + +#define D_SET_BAUDRATE_TO "Ustaw szybkosc transmisji na" +#define D_RECEIVED_TOPIC "Otrzymany temat" +#define D_DATA_SIZE "Wielkosc danych" +#define D_ANALOG_INPUT0 "Wejscie analogowe-0" + +#define D_FINGERPRINT "Weryfikuj odcisk TLS..." +#define D_TLS_CONNECT_FAILED_TO "Nieudane polaczenie TLS do" +#define D_RETRY_IN "Sprobuj ponownie" +#define D_VERIFIED "Zweryfikowano" +#define D_INSECURE "Nieprawidlowe polaczenie z powodu blednego odcisku TLS" +#define D_CONNECT_FAILED_TO "Nie udalo sie nawiazac polaczenia" + +// support.ino +#define D_OSWATCH "osWatch" +#define D_BLOCKED_LOOP "Petla zablokowana" +#define D_WPS_FAILED_WITH_STATUS "Blad WPSconfig ze statusem" +#define D_ACTIVE_FOR_1_MINUTE "aktywny 1 minute" +#define D_FAILED_TO_START "nie udalo sie uruchomic" +#define D_PATCH_ISSUE_2186 "Blad latki 2186" +#define D_CONNECTING_TO_AP "Laczenie z AP" +#define D_IN_MODE "w trybie" +#define D_CONNECT_FAILED_NO_IP_ADDRESS "Polaczenie nie powiodlo sie, poniewaz nie otrzymano adresu IP" +#define D_CONNECT_FAILED_AP_NOT_REACHED "Polaczenie nie powiodlo sie jako AP nie mozna osiagnac" +#define D_CONNECT_FAILED_WRONG_PASSWORD "Polaczenie nie powiodlo sie z nieprawidlowym haslem dostepu AP" +#define D_CONNECT_FAILED_AP_TIMEOUT "Nie udalo sie nawiazac polaczenia, limit czasu AP przekroczony" +#define D_ATTEMPTING_CONNECTION "Proba polaczenia..." +#define D_CHECKING_CONNECTION "Sprawdzanie polaczenia..." +#define D_QUERY_DONE "Wykonano zapytanie. Znaleziono uslugi MQTT" +#define D_MQTT_SERVICE_FOUND "Usluga MQTT została znaleziona" +#define D_I2CSCAN_DEVICES_FOUND_AT "Znaleziono urządzenie(a) na" +#define D_FOUND_AT "znalezione w" +#define D_I2CSCAN_UNKNOWN_ERROR_AT "Nieznany blad w" +#define D_I2CSCAN_NO_DEVICES_FOUND "Nie znaleziono urzadzen" +#define D_SYSLOG_HOST_NOT_FOUND "Syslog Host nie znaleziony" + +// webserver.ino +#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Oprogramowanie MINIMAL - prosze uaktualnic" +#define D_WEBSERVER_ACTIVE_ON "Aktywny serwer Web" +#define D_WITH_IP_ADDRESS "z adresem IP" +#define D_WEBSERVER_STOPPED "Serwer Web zatrzymany" +#define D_FILE_NOT_FOUND "Plik nie odnaleziony" +#define D_REDIRECTED "Przekierowano do wlasnego portalu" +#define D_WIFIMANAGER_SET_ACCESSPOINT_AND_STATION "Menedzer Wifi ustawia punkt dostepowy i zachowuje stacje" +#define D_WIFIMANAGER_SET_ACCESSPOINT "Menedzer sieci Wi-Fi Access Point" +#define D_TRYING_TO_CONNECT "Probuje polaczyc urzadzenie z siecia" + +#define D_RESTART_IN "Zrestartuj" +#define D_SECONDS "sekund" +#define D_DEVICE_WILL_RESTART "Urzadzenie zrestartuje sie za kilka sekund" +#define D_BUTTON_TOGGLE "Przelacznik" +#define D_CONFIGURATION "Konfiguracja" +#define D_INFORMATION "Informacje" +#define D_FIRMWARE_UPGRADE "Uaktualnienie oprogramowania" +#define D_CONSOLE "Konsola" +#define D_CONFIRM_RESTART "Potwierdz restart" + +#define D_CONFIGURE_MODULE "Konfiguruj modul" +#define D_CONFIGURE_WIFI "Konfiguruj WiFi" +#define D_CONFIGURE_MQTT "Konfiguruj MQTT" +#define D_CONFIGURE_DOMOTICZ "Konfiguruj Domoticz" +#define D_CONFIGURE_LOGGING "Konfiguruj zapis dziennika" +#define D_CONFIGURE_OTHER "Konfiguruj inne" +#define D_CONFIRM_RESET_CONFIGURATION "Potwierdz reset ustawien" +#define D_RESET_CONFIGURATION "Reset ustawien" +#define D_BACKUP_CONFIGURATION "Kopia ustawien" +#define D_RESTORE_CONFIGURATION "Przywrocenie ustawien" +#define D_MAIN_MENU "Menu glowne" + +#define D_MODULE_PARAMETERS "Parametery modulu" +#define D_MODULE_TYPE "Typ modulu" +#define D_GPIO "GPIO" +#define D_SERIAL_IN "Serial In" +#define D_SERIAL_OUT "Serial Out" + +#define D_WIFI_PARAMETERS "Parametry WiFi" +#define D_SCAN_FOR_WIFI_NETWORKS "Skanuj sieci WiFi" +#define D_SCAN_DONE "Skan wykonany" +#define D_NO_NETWORKS_FOUND "Nie znaleziono sieci" +#define D_REFRESH_TO_SCAN_AGAIN "Odswiez aby ponownie zeskanowac" +#define D_DUPLICATE_ACCESSPOINT "Kopiuj AP" +#define D_SKIPPING_LOW_QUALITY "Pominieto z powodu niskiej jakości sygnalu" +#define D_RSSI "RSSI" +#define D_WEP "WEP" +#define D_WPA_PSK "WPA PSK" +#define D_WPA2_PSK "WPA2 PSK" +#define D_AP1_SSID "AP1 SSID" +#define D_AP1_PASSWORD "Haslo AP1" +#define D_AP2_SSID "AP2 SSID" +#define D_AP2_PASSWORD "Haslo AP2" + +#define D_MQTT_PARAMETERS "Parametery MQTT" +#define D_CLIENT "Klient" +#define D_FULL_TOPIC "Pelen temat" + +#define D_LOGGING_PARAMETERS "Opcje dziennika" +#define D_LOG_LEVEL "poziom dziennika" +#define D_MORE_DEBUG "Wiecej informacji debugujacych" +#define D_SYSLOG_HOST "Syslog host" +#define D_SYSLOG_PORT "Syslog port" +#define D_TELEMETRY_PERIOD "Okres telemetrii" + +#define D_OTHER_PARAMETERS "Inne parametery" +#define D_WEB_ADMIN_PASSWORD "Haslo administratora Web" +#define D_MQTT_ENABLE "MQTT aktywne" +#define D_FRIENDLY_NAME "Przyjazna nazwa" +#define D_BELKIN_WEMO "Belkin WeMo" +#define D_HUE_BRIDGE "Hue Bridge" +#define D_SINGLE_DEVICE "single device" +#define D_MULTI_DEVICE "multi device" + +#define D_SAVE_CONFIGURATION "Zapisz ustawienia" +#define D_CONFIGURATION_SAVED "Ustawienia zapisane" +#define D_CONFIGURATION_RESET "Ustawienia zresetowane" + +#define D_PROGRAM_VERSION "Wersja programu" +#define D_BUILD_DATE_AND_TIME "Dzien i godzina kompilacji" +#define D_CORE_AND_SDK_VERSION "Wersja Core/SDK" +#define D_FLASH_WRITE_COUNT "Liczba zapisow do pamieci" +#define D_MAC_ADDRESS "Adres Mac" +#define D_MQTT_HOST "Host MQTT" +#define D_MQTT_PORT "Port MQTT" +#define D_MQTT_CLIENT "Klient MQTT" +#define D_MQTT_USER "Uzytkownik MQTT" +#define D_MQTT_TOPIC "Temat MQTT" +#define D_MQTT_GROUP_TOPIC "Temat grupy MQTT" +#define D_MQTT_FULL_TOPIC "Pelen temat MQTT" +#define D_MDNS_DISCOVERY "Wykrywanie mDNS" +#define D_MDNS_ADVERTISE "Rozglaszanie mDNS" +#define D_ESP_CHIP_ID "ID ukladu ESP" +#define D_FLASH_CHIP_ID "ID ukladu pamieci flash" +#define D_FLASH_CHIP_SIZE "Rozmiar flash" +#define D_FREE_PROGRAM_SPACE "Wolne miejsce programu" + +#define D_UPGRADE_BY_WEBSERVER "Aktualizacja z serwera Web" +#define D_OTA_URL "URL OTA" +#define D_START_UPGRADE "Start aktualizacji" +#define D_UPGRADE_BY_FILE_UPLOAD "Aktualizacja poprzez wgranie pliku" +#define D_UPLOAD_STARTED "Wgrywanie rozpoczete" +#define D_UPGRADE_STARTED "Aktualizacja rozpoczeta" +#define D_UPLOAD_DONE "Wgrywanie zakonczone" +#define D_UPLOAD_ERR_1 "Nie wybrano pliku" +#define D_UPLOAD_ERR_2 "Niewystarczajaca ilosc miejsca" +#define D_UPLOAD_ERR_3 "Magiczny bajt jest inny niz 0xE9" +#define D_UPLOAD_ERR_4 "Rozmiar programu jest wiekszy niz rzeczywisty rozmiar pamieci flash" +#define D_UPLOAD_ERR_5 "Wgrywanie, bufor niezgodnosci stanu porownywanych bitow" +#define D_UPLOAD_ERR_6 "Blad wgrywania. Uruchomiono zapis do dziennika na poziomie 3" +#define D_UPLOAD_ERR_7 "Wgrywanie przerwane" +#define D_UPLOAD_ERR_8 "Bledny plik" +#define D_UPLOAD_ERR_9 "Plik jest za duzy" +#define D_UPLOAD_ERROR_CODE "Blad wgrywania" + +#define D_ENTER_COMMAND "Wprowadz polecenie" +#define D_ENABLE_WEBLOG_FOR_RESPONSE "Wlacz poziom 2 zapisu Weblog, jesli oczekiwana jest odpowiedz" +#define D_NEED_USER_AND_PASSWORD "Wymagany uzytkownik=&haslo=" + +// xdrv_domoticz.ino +#define D_DOMOTICZ_PARAMETERS "Parametry Domoticz" +#define D_DOMOTICZ_IDX "Idx" +#define D_DOMOTICZ_KEY_IDX "Key idx" +#define D_DOMOTICZ_SWITCH_IDX "Przelacznik idx" +#define D_DOMOTICZ_SENSOR_IDX "Sensor idx" + #define DOMOTICZ_SENSORS_MAX_STRING_LENGTH 14 + #define D_DOMOTICZ_TEMP "Temp" + #define D_DOMOTICZ_TEMP_HUM "Temp,Wilg" + #define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Wilg,Cis" + #define D_DOMOTICZ_POWER_ENERGY "Moc,Energia" + #define D_DOMOTICZ_ILLUMINANCE "Oswietl." + #define D_DOMOTICZ_COUNT "Licznik" + #define D_DOMOTICZ_VOLTAGE "Napiecie" + #define D_DOMOTICZ_CURRENT "Prad" +#define D_DOMOTICZ_UPDATE_TIMER "Zaktualizuj czasomierz" + +// xdrv_ir-send.ino +#define D_INVALID_JSON "Invalid JSON" +#define D_PROTOCOL_NOT_SUPPORTED "Protokol nie jest obslugiwany" +#define D_IR_PROTOCOL "PROTOCOL" +#define D_IR_BITS "BITS" +#define D_IR_DATA "DATA" +#define D_IRHVAC_VENDOR "VENDOR" +#define D_IRHVAC_POWER "POWER" +#define D_IRHVAC_MODE "MODE" +#define D_IRHVAC_FANSPEED "FANSPEED" +#define D_IRHVAC_TEMP "TEMP" +#define D_IRRECEIVED "IrReceived" + +// xdrv_snfbridge.ino +#define D_RFRECEIVED "RfReceived" +#define D_START_LEARNING "Zacznij nauke" +#define D_SET_TO_DEFAULT "Ustaw domyslne" +#define D_DEFAULT_SENT "Domyslne wyslane" +#define D_LEARNED_SENT "Wyuczone wyslane" +#define D_LEARNING_ACTIVE "Wyuczone aktywne" +#define D_LEARN_FAILED "Uczenie niepowodzenie" +#define D_LEARNED "Wyuczone" + +// xdrv_wemohue.ino +#define D_MULTICAST_DISABLED "Multicast jest wylaczony" +#define D_MULTICAST_REJOINED "Multicast (re)dolaczony" +#define D_MULTICAST_JOIN_FAILED "Multicast nie powiodlo sie" +#define D_FAILED_TO_SEND_RESPONSE "Nie udalo sie wyslac odpowiedzi" + +#define D_WEMO "WeMo" +#define D_WEMO_BASIC_EVENT "WeMo podstawowe zdarzenie" +#define D_WEMO_EVENT_SERVICE "WeMo zdarzenie service" +#define D_WEMO_SETUP "WeMo setup" +#define D_RESPONSE_SENT "Odpowiedz wyslana" + +#define D_HUE "Hue" +#define D_HUE_BRIDGE_SETUP "Hue setup" +#define D_HUE_API_NOT_IMPLEMENTED "Hue API nie zaimplementowane" +#define D_HUE_API "Hue API" +#define D_HUE_POST_ARGS "Hue POST args" +#define D_3_RESPONSE_PACKETS_SENT "3 pakiety odpowiedzi wysylane" + +// xsns_dht.ino +#define D_TIMEOUT_WAITING_FOR "Trwa oczekiwanie" +#define D_START_SIGNAL_LOW "sygnał startowy niski" +#define D_START_SIGNAL_HIGH "sygnał startowy wysoki" +#define D_PULSE "pulse" +#define D_CHECKSUM_FAILURE "Bledna suma kontrolmna" + +// xsns_ds18b20.ino +#define D_SENSOR_BUSY "Czujnik DS18x20 zajety" +#define D_SENSOR_CRC_ERROR "Czujnik DS18x20 blad CRC" + +// xsns_hlw8012.ino +#define D_MAXPOWERREACHED "MaksMocOsiagnieta" +#define D_MAXPOWERREACHEDRETRY "MaksMocOsiagnietaPonowienie" +#define D_POWERMONITOR "MonitorMocy" +#define D_ENERGYMONITOR "MonitorEnergii" +#define D_MAXENERGYREACHED "MaksEnergiaOsiagnieta" +#define D_ENERGY_TODAY "Energia Dzisiaj" +#define D_ENERGY_YESTERDAY "Energia Wczoraj" +#define D_ENERGY_TOTAL "Energia suma" + +// xsns_sht1x.ino +#define D_SENSOR_DID_NOT_ACK_COMMAND "Czujnik nie otrzymal komendy ACK" +#define D_SHT1X_FOUND "SHT1X znaleziony" + +// sonoff_template.h +// Max string length is 8 characters including suffixes +#define D_SENSOR_NONE "Brak" +#define D_SENSOR_DHT11 "DHT11" +#define D_SENSOR_AM2301 "AM2301" +#define D_SENSOR_DHT22 "DHT22" +#define D_SENSOR_DS18X20 "DS18x20" +#define D_SENSOR_I2C_SCL "I2C SCL" +#define D_SENSOR_I2C_SDA "I2C SDA" +#define D_SENSOR_WS2812 "WS2812" +#define D_SENSOR_IRSEND "IRsend" +#define D_SENSOR_SWITCH "Przela" // Suffix "1" +#define D_SENSOR_BUTTON "Przyci" // Suffix "1" +#define D_SENSOR_RELAY "Przek" // Suffix "1i" +#define D_SENSOR_LED "Led" // Suffix "1i" +#define D_SENSOR_PWM "PWM" // Suffix "1" +#define D_SENSOR_COUNTER "Liczni" // Suffix "1" +#define D_SENSOR_IRRECV "IRrecv" +#define D_SENSOR_SPI_CS "SPI CS" +#define D_SENSOR_SPI_DC "SPI DC" +#define D_SENSOR_BACKLIGHT "BLight" + +// Units +#define D_UNIT_AMPERE "A" +#define D_UNIT_HOUR "Godz" +#define D_UNIT_KILOWATTHOUR "kWh" +#define D_UNIT_LUX "lx" +#define D_UNIT_MICROSECOND "us" +#define D_UNIT_MILLIAMPERE "mA" +#define D_UNIT_MILLISECOND "ms" +#define D_UNIT_MINUTE "Min" +#define D_UNIT_PRESSURE "hPa" +#define D_UNIT_SECOND "sec" +#define D_UNIT_SECTORS "sektory" +#define D_UNIT_VOLT "V" +#define D_UNIT_WATT "W" +#define D_UNIT_WATTHOUR "Wh" + +// Log message prefix +#define D_LOG_APPLICATION "APP: " +#define D_LOG_BRIDGE "BRG: " +#define D_LOG_CONFIG "CFG: " +#define D_LOG_COMMAND "CMD: " +#define D_LOG_DHT "DHT: " +#define D_LOG_DOMOTICZ "DOM: " +#define D_LOG_DSB "DSB: " +#define D_LOG_HTTP "HTP: " +#define D_LOG_I2C "I2C: " +#define D_LOG_IRR "IRR: " +#define D_LOG_LOG "LOG: " +#define D_LOG_MODULE "MOD: " +#define D_LOG_MDNS "DNS: " +#define D_LOG_MQTT "MQT: " +#define D_LOG_OTHER "OTH: " +#define D_LOG_RESULT "RSL: " +#define D_LOG_SERIAL "SER: " +#define D_LOG_SHT1 "SHT: " +#define D_LOG_UPLOAD "UPL: " +#define D_LOG_UPNP "UPP: " +#define D_LOG_WIFI "WIF: " + +// Result +#define D_RSLT_RESULT "REZULTAT" +#define D_RSLT_INFO "INFO" +#define D_RSLT_STATE "STAN" +#define D_RSLT_SENSOR "SENSOR" +#define D_RSLT_UPTIME "UPTIME" +#define D_RSLT_MARGINS "MARGINES" +#define D_RSLT_WARNING "OSTRZEZENIE" +#define D_RSLT_ENERGY "ENERGIA" + +// Commands +#define D_CMND_MQTTHOST "MqttHost" +#define D_CMND_MQTTPORT "MqttPort" +#define D_CMND_MQTTRETRY "MqttRetry" +#define D_CMND_STATETEXT "StateText" +#define D_CMND_MQTTFINGERPRINT "MqttFingerprint" +#define D_CMND_MQTTCLIENT "MqttClient" +#define D_CMND_MQTTUSER "MqttUser" +#define D_CMND_MQTTPASSWORD "MqttPassword" +#define D_CMND_FULLTOPIC "FullTopic" +#define D_CMND_PREFIX "Prefix" + #define PRFX_MAX_STRING_LENGTH 5 + #define D_CMND "cmnd" + #define D_STAT "stat" + #define D_TELE "tele" +#define D_CMND_GROUPTOPIC "GroupTopic" +#define D_CMND_TOPIC "Topic" +#define D_CMND_BUTTONTOPIC "ButtonTopic" +#define D_CMND_SWITCHTOPIC "SwitchTopic" +#define D_CMND_BUTTONRETAIN "ButtonRetain" +#define D_CMND_SWITCHRETAIN "SwitchRetain" +#define D_CMND_POWERRETAIN "PowerRetain" +#define D_CMND_SENSORRETAIN "SensorRetain" +#define D_CMND_BACKLOG "Backlog" +#define D_CMND_DELAY "Delay" +#define D_CMND_STATUS "Status" + #define D_STATUS1_PARAMETER "PRM" + #define D_STATUS2_FIRMWARE "FWR" + #define D_STATUS3_LOGGING "LOG" + #define D_STATUS4_MEMORY "MEM" + #define D_STATUS5_NETWORK "NET" + #define D_STATUS6_MQTT "MQT" + #define D_STATUS7_TIME "TIM" + #define D_STATUS8_POWER "PWR" + #define D_STATUS9_MARGIN "PTH" + #define D_STATUS10_SENSOR "SNS" + #define D_STATUS11_STATUS "STS" +#define D_CMND_POWER "Power" + #define D_RSLT_POWER "POWER" +#define D_CMND_POWERONSTATE "PowerOnState" +#define D_CMND_PULSETIME "PulseTime" +#define D_CMND_BLINKTIME "BlinkTime" +#define D_CMND_BLINKCOUNT "BlinkCount" +#define D_CMND_SAVEDATA "SaveData" +#define D_CMND_SETOPTION "SetOption" +#define D_CMND_TEMPERATURE_RESOLUTION "TempRes" +#define D_CMND_HUMIDITY_RESOLUTION "HumRes" +#define D_CMND_PRESSURE_RESOLUTION "PressRes" +#define D_CMND_POWER_RESOLUTION "WattRes" +#define D_CMND_VOLTAGE_RESOLUTION "VoltRes" +#define D_CMND_ENERGY_RESOLUTION "EnergyRes" +#define D_CMND_MODULE "Module" +#define D_CMND_MODULES "Modules" +#define D_CMND_GPIO "GPIO" + #define D_NOT_SUPPORTED "Not supported" +#define D_CMND_GPIOS "GPIOs" +#define D_CMND_PWM "PWM" +#define D_CMND_PWMFREQUENCY "PWMFrequency" +#define D_CMND_PWMRANGE "PWMRange" +#define D_CMND_COUNTER "Counter" +#define D_CMND_COUNTERTYPE "CounterType" +#define D_CMND_COUNTERDEBOUNCE "CounterDebounce" +#define D_CMND_SLEEP "Sleep" +#define D_CMND_UPLOAD "Upload" +#define D_CMND_UPGRADE "Upgrade" + #define D_ONE_OR_GT "1 or >%s to upgrade" +#define D_CMND_OTAURL "OtaUrl" +#define D_CMND_SERIALLOG "SerialLog" +#define D_CMND_SYSLOG "SysLog" +#define D_CMND_LOGHOST "LogHost" +#define D_CMND_LOGPORT "LogPort" +#define D_CMND_IPADDRESS "IPAddress" +#define D_CMND_NTPSERVER "NtpServer" +#define D_CMND_AP "Ap" +#define D_CMND_SSID "SSID" +#define D_CMND_PASSWORD "Password" +#define D_CMND_HOSTNAME "Hostname" +#define D_CMND_WIFICONFIG "WifiConfig" + #define WCFG_MAX_STRING_LENGTH 12 + #define D_WCFG_0_RESTART "Restart" + #define D_WCFG_1_SMARTCONFIG "SmartConfig" + #define D_WCFG_2_WIFIMANAGER "WifiManager" + #define D_WCFG_3_WPSCONFIG "WPSConfig" + #define D_WCFG_4_RETRY "Retry" + #define D_WCFG_5_WAIT "Wait" +#define D_CMND_FRIENDLYNAME "FriendlyName" +#define D_CMND_SWITCHMODE "SwitchMode" +#define D_CMND_WEBSERVER "Webserver" + #define D_WEBSERVER_MODE "WebServerMode" + #define D_ACTIVE_FOR "Active for" + #define D_ON_DEVICE "on" +#define D_CMND_WEBPASSWORD "WebPassword" +#define D_CMND_WEBLOG "WebLog" +#define D_CMND_EMULATION "Emulation" +#define D_CMND_TELEPERIOD "TelePeriod" +#define D_CMND_RESTART "Restart" + #define D_ONE_TO_RESTART "1 to restart" +#define D_CMND_RESET "Reset" + #define D_RESET_AND_RESTARTING "Reset and Restarting" + #define D_ONE_TO_RESET "1 to reset" +#define D_CMND_TIMEZONE "Timezone" +#define D_CMND_ALTITUDE "Altitude" +#define D_CMND_LEDPOWER "LedPower" +#define D_CMND_LEDSTATE "LedState" +#define D_CMND_CFGDUMP "CfgDump" +#define D_CMND_I2CSCAN "I2CScan" +#define D_CMND_EXCEPTION "Exception" + +// Commands xdrv_domoticz.ino +#define D_CMND_DOMOTICZ "Domoticz" +#define D_CMND_IDX "Idx" +#define D_CMND_KEYIDX "KeyIdx" +#define D_CMND_SWITCHIDX "SwitchIdx" +#define D_CMND_SENSORIDX "SensorIdx" +#define D_CMND_UPDATETIMER "UpdateTimer" + +// Commands xdrv_ir_send.ino +#define D_CMND_IRSEND "IRSend" +#define D_CMND_IRHVAC "IRHVAC" + +// Commands xdrv_snfbridge.ino +#define D_CMND_RFKEY "RfKey" +#define D_CMND_RFDEFAULT "RfDefault" + +// Commands xdrv_snfled.ino +#define D_CMND_COLOR "Color" +#define D_CMND_COLORTEMPERATURE "CT" +#define D_CMND_DIMMER "Dimmer" +#define D_CMND_LEDTABLE "LedTable" +#define D_CMND_FADE "Fade" +#define D_CMND_SPEED "Speed" +#define D_CMND_WAKEUPDURATION "WakeUpDuration" +#define D_CMND_WAKEUP "Wakeup" + +// Commands xdrv_ws2812.ino +#define D_CMND_PIXELS "Pixels" +#define D_CMND_LED "Led" +#define D_CMND_WIDTH "Width" +#define D_CMND_SCHEME "Scheme" + +// Commands xsns_hlw8012.ino +#define D_CMND_POWERLOW "PowerLow" +#define D_CMND_POWERHIGH "PowerHigh" +#define D_CMND_VOLTAGELOW "VoltageLow" +#define D_CMND_VOLTAGEHIGH "VoltageHigh" +#define D_CMND_CURRENTLOW "CurrentLow" +#define D_CMND_CURRENTHIGH "CurrentHigh" +#define D_CMND_ENERGYRESET "EnergyReset" +#define D_CMND_HLWPCAL "HlwPcal" +#define D_CMND_HLWPSET "HlwPset" +#define D_CMND_HLWUCAL "HlwUcal" +#define D_CMND_HLWUSET "HlwUset" +#define D_CMND_HLWICAL "HlwIcal" +#define D_CMND_HLWISET "HlwIset" +#define D_CMND_MAXPOWER "MaxPower" +#define D_CMND_MAXPOWERHOLD "MaxPowerHold" +#define D_CMND_MAXPOWERWINDOW "MaxPowerWindow" +#define D_CMND_SAFEPOWER "SafePower" +#define D_CMND_SAFEPOWERHOLD "SafePowerHold" +#define D_CMND_SAFEPOWERWINDOW "SafePowerWindow" +#define D_CMND_MAXENERGY "MaxEnergy" +#define D_CMND_MAXENERGYSTART "MaxEnergyStart" + +#endif // _LANGUAGE_PL_PL_H_ \ No newline at end of file diff --git a/sonoff/settings.h b/sonoff/settings.h index 2bc4857f4..58b91b319 100644 --- a/sonoff/settings.h +++ b/sonoff/settings.h @@ -41,8 +41,8 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu uint32_t button_single : 1; // bit 13 (v5.4.0) uint32_t interlock : 1; // bit 14 (v5.6.0) uint32_t pwm_control : 1; // bit 15 (v5.8.1) - uint32_t spare16 : 1; - uint32_t spare17 : 1; + uint32_t ws_clock_reverse : 1; // bit 16 (v5.8.1) + uint32_t decimal_text : 1; // bit 17 (v5.8.1) uint32_t spare18 : 1; uint32_t wattage_resolution : 1; uint32_t voltage_resolution : 1; @@ -147,7 +147,7 @@ struct SYSCFG { uint8_t ws_fade; // 3A5 Not used since 5.8.0 uint8_t ws_speed; // 3A6 Not used since 5.8.0 uint8_t ws_scheme; // 3A7 Not used since 5.8.0 - uint8_t ws_width; // 3A8 Not used since 5.8.0 + uint8_t ex_ws_width; // 3A8 Not used since 5.8.0 byte free_3A9[1]; // 3A9 @@ -162,7 +162,8 @@ struct SYSCFG { uint16_t domoticz_sensor_idx[12]; // 45C uint8_t module; // 474 - byte free_475[15]; // 475 + uint8_t ws_color[4][3]; // 475 + uint8_t ws_width[3]; // 481 myio my_gp; // 484 uint16_t led_pixels; // 496 @@ -190,7 +191,6 @@ struct SYSCFG { byte free_531[1]; // 531 uint16_t pulse_timer[MAX_PULSETIMERS]; // 532 - //uint16_t ex_pwm_value[MAX_PWMS]; // 53A byte free_542[2]; // 542 diff --git a/sonoff/settings.ino b/sonoff/settings.ino index b5bbf1c85..680241e64 100644 --- a/sonoff/settings.ino +++ b/sonoff/settings.ino @@ -509,6 +509,9 @@ void SettingsDefaultSet2() // 5.8.0 Settings.led_pixels = WS2812_LEDS; + + // 5.8.1 + SettingsDefaultSet_5_8_1(); } /********************************************************************************************/ @@ -524,7 +527,7 @@ void SettingsDefaultSet_3_2_4() Settings.ws_fade = 0; Settings.ws_speed = 1; Settings.ws_scheme = 0; - Settings.ws_width = 1; + Settings.ex_ws_width = 1; Settings.ws_wakeup = 0; } @@ -601,6 +604,23 @@ void SettingsDefaultSet_5_0_2() Settings.flag.energy_resolution = ENERGY_RESOLUTION; } +void SettingsDefaultSet_5_8_1() +{ +// Settings.flag.ws_clock_reverse = 0; + Settings.ws_width[WS_SECOND] = 1; + Settings.ws_color[WS_SECOND][WS_RED] = 255; + Settings.ws_color[WS_SECOND][WS_GREEN] = 0; + Settings.ws_color[WS_SECOND][WS_BLUE] = 255; + Settings.ws_width[WS_MINUTE] = 3; + Settings.ws_color[WS_MINUTE][WS_RED] = 0; + Settings.ws_color[WS_MINUTE][WS_GREEN] = 255; + Settings.ws_color[WS_MINUTE][WS_BLUE] = 0; + Settings.ws_width[WS_HOUR] = 5; + Settings.ws_color[WS_HOUR][WS_RED] = 255; + Settings.ws_color[WS_HOUR][WS_GREEN] = 0; + Settings.ws_color[WS_HOUR][WS_BLUE] = 0; +} + /********************************************************************************************/ void SettingsDelta() @@ -723,7 +743,7 @@ void SettingsDelta() Settings.led_fade = Settings.ws_fade; Settings.led_speed = Settings.ws_speed; Settings.led_scheme = Settings.ws_scheme; - Settings.led_width = Settings.ws_width; + Settings.led_width = Settings.ex_ws_width; Settings.led_wakeup = Settings.ws_wakeup; } else { Settings.led_pixels = WS2812_LEDS; @@ -749,6 +769,9 @@ void SettingsDelta() Settings.pwm_frequency = PWM_FREQ; Settings.pwm_range = PWM_RANGE; } + if (Settings.version < 0x0508000E) { + SettingsDefaultSet_5_8_1(); + } Settings.version = VERSION; SettingsSave(1); diff --git a/sonoff/sonoff.h b/sonoff/sonoff.h index 72a0782f1..4d0982816 100644 --- a/sonoff/sonoff.h +++ b/sonoff/sonoff.h @@ -105,5 +105,7 @@ enum LedStateOptions {LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQ enum EmulationOptions {EMUL_NONE, EMUL_WEMO, EMUL_HUE, EMUL_MAX}; enum ButtonStates {PRESSED, NOT_PRESSED}; enum SettingsParmaIndex {P_HOLD_TIME, P_MAX_POWER_RETRY, P_MAX_PARAM8}; +enum Ws2812ClockIndex {WS_SECOND, WS_MINUTE, WS_HOUR}; +enum Ws2812Color {WS_RED, WS_GREEN, WS_BLUE}; #endif // _SONOFF_H_ \ No newline at end of file diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index 28765f77e..1caf50d4c 100644 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -25,7 +25,7 @@ - Select IDE Tools - Flash Size: "1M (no SPIFFS)" ====================================================*/ -#define VERSION 0x0508000D // 5.8.0m +#define VERSION 0x0508000E // 5.8.0n // Location specific includes #include "sonoff.h" // Enumaration used in user_config.h @@ -942,7 +942,7 @@ void MqttDataCallback(char* topic, byte* data, unsigned int data_len) } snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_SAVEDATA "\":\"%s\"}"), (Settings.save_data > 1) ? stemp1 : GetStateText(Settings.save_data)); } - else if (!strcasecmp_P(type, PSTR(D_CMND_SETOPTION)) && ((index >= 0) && (index <= 15)) || ((index > 31) && (index <= P_MAX_PARAM8 +31))) { + else if (!strcasecmp_P(type, PSTR(D_CMND_SETOPTION)) && ((index >= 0) && (index <= 17)) || ((index > 31) && (index <= P_MAX_PARAM8 +31))) { if (index <= 31) { ptype = 0; // SetOption0 .. 31 } else { @@ -966,6 +966,8 @@ void MqttDataCallback(char* topic, byte* data, unsigned int data_len) case 12: // stop_flash_rotate case 13: // button_single case 14: // interlock + case 16: // ws_clock_reverse + case 17: // decimal_text bitWrite(Settings.flag.data, index, payload); } if (12 == index) { // stop_flash_rotate diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index f2c3389c9..5a6519cdb 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -192,6 +192,7 @@ enum SupportedModules { YUNSHAN, MAGICHOME, LUANIHVIO, + KMC_70011, MAXMODULE }; /********************************************************************************************/ @@ -242,6 +243,7 @@ const uint8_t kNiceList[MAXMODULE] PROGMEM = { H801, MAGICHOME, HUAFAN_SS, + KMC_70011, AILIGHT, WEMOS, WITTY @@ -714,6 +716,17 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { GPIO_LED1, // GPIO15 Led (1 = On, 0 = Off) 0, GPIO_ADC0 // ADC0 A0 Analog input + }, + { "KMC 70011", // KMC 70011 (https://www.amazon.com/KMC-Timing-Monitoring-Network-125V-240V/dp/B06XRX2GTQ) + GPIO_KEY1, // GPIO00 Button + 0, 0, 0, + GPIO_HLW_CF, // GPIO04 HLW8012 CF + GPIO_HLW_CF1, // GPIO05 HLW8012 CF1 + 0, 0, 0, 0, 0, 0, // Flash connection + GPIO_HLW_SEL, // GPIO12 HLW8012 SEL + GPIO_LED1_INV, // GPIO13 Green Led + GPIO_REL1, // GPIO14 Relay + 0, 0, 0 } }; diff --git a/sonoff/support.ino b/sonoff/support.ino index a74fa4a51..6d8adecda 100644 --- a/sonoff/support.ino +++ b/sonoff/support.ino @@ -673,14 +673,11 @@ void WifiConnect() #ifdef MQTT_HOST_DISCOVERY boolean MdnsDiscoverMqttServer() { -// char ip_str[20]; - int n; - if (!mdns_begun) { return false; } - n = MDNS.queryService("mqtt", "tcp"); // Search for mqtt service + int n = MDNS.queryService("mqtt", "tcp"); // Search for mqtt service snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_MDNS D_QUERY_DONE " %d"), n); AddLog(LOG_LEVEL_INFO); diff --git a/sonoff/user_config.h b/sonoff/user_config.h index 8dce8e782..4510e228f 100644 --- a/sonoff/user_config.h +++ b/sonoff/user_config.h @@ -29,9 +29,10 @@ \*********************************************************************************************/ // -- Localization -------------------------------- -//#define MY_LANGUAGE en-GB // Enabled by Default -//#define MY_LANGUAGE nl-NL -//#define MY_LANGUAGE de-DE +//#define MY_LANGUAGE en-GB // English in Great Britain. Enabled by Default +//#define MY_LANGUAGE nl-NL // Dutch in the Netherlands +//#define MY_LANGUAGE de-DE // German in Germany +//#define MY_LANGUAGE pl-PL // Polish in Poland // -- Project ------------------------------------- #define PROJECT "sonoff" // PROJECT is used as the default topic delimiter and OTA file name @@ -177,13 +178,6 @@ #define USE_WS2812 // WS2812 Led string using library NeoPixelBus (+5k code, +1k mem) - Disable by // #define USE_WS2812_CTYPE 1 // WS2812 Color type (0 - RGB, 1 - GRB) // #define USE_WS2812_DMA // DMA supports only GPIO03 (= Serial RXD) (+1k mem). When USE_WS2812_DMA is enabled expect Exceptions on Pow - #define CLOCK_REVERSE 0 // WS2812 Clock display (0 - Normal, 1 - Reverse) - #define CLOCK_SECOND_WIDTH 1 // WS2812 Clock second hand pixel width - #define CLOCK_MINUTE_WIDTH 3 // WS2812 Clock minute hand pixel width - #define CLOCK_HOUR_WIDTH 5 // WS2812 Clock hour hand pixel width - #define CLOCK_SECOND_COLOR (255, 0, 255) // WS2812 Clock second pixel color - #define CLOCK_MINUTE_COLOR (0, 255, 0) // WS2812 Clock minute pixel color - #define CLOCK_HOUR_COLOR (255, 0,0 ) // WS2812 Clock hour pixel color /*********************************************************************************************\ * Compile a minimal version if upgrade memory gets tight ONLY TO BE USED FOR UPGRADE STEP 1! @@ -202,8 +196,4 @@ #error "Select either USE_MQTT_TLS or USE_WEBSERVER as there is just not enough memory to play with" #endif -#if (ARDUINO < 10610) - #error "This software is supported with Arduino IDE starting from 1.6.10 and ESP8266 Release 2.3.0" -#endif - #endif // _USER_CONFIG_H_ \ No newline at end of file diff --git a/sonoff/webserver.ino b/sonoff/webserver.ino index 6f07ba36f..ff2d915fc 100644 --- a/sonoff/webserver.ino +++ b/sonoff/webserver.ino @@ -140,10 +140,19 @@ const char HTTP_SCRIPT_MODULE1[] PROGMEM = "function sl(){" "var o0=\""; const char HTTP_SCRIPT_MODULE2[] PROGMEM = - "}1'%d'>%02d %s}2"; // "}1" and "}2" means do not use "}" in Module name and Sensor name + "}1'%d'>%02d %s}2"; // "}1" and "}2" means do not use "}x" in Module name and Sensor name const char HTTP_SCRIPT_MODULE3[] PROGMEM = "\";" "os=o0.replace(/}1/g,\"