mirror of https://github.com/arendst/Tasmota.git
Merge branch 'arendst/development' into development
This commit is contained in:
commit
9abf79b193
|
@ -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.12.0j** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information.
|
||||
Current version is **5.12.0k** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information.
|
||||
|
||||
### Quick install
|
||||
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
/* 5.12.0j
|
||||
/* 5.12.0k
|
||||
* Prepare for simple rules by enlarging Settings area to now 2048 bytes
|
||||
* Fix freeing more code space when emulation is disabled (#1592)
|
||||
* Fix compile error when not defined USE_TIMERS (#2400)
|
||||
*
|
||||
* 5.12.0j
|
||||
* Add optional Sunrise and Sunset timers with commands Latitide and Longitude to be enabled with define USE_SUNRISE in user_config.h (#2317)
|
||||
*
|
||||
* 5.12.0i
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
#define D_HOUR_MINUTE_SEPARATOR ":"
|
||||
#define D_MINUTE_SECOND_SEPARATOR ":"
|
||||
|
||||
#define D_DAY3LIST "PonÚteStřČtvPátSobNed"
|
||||
#define D_MONTH3LIST "LedÚnoBřeDubKvěČerČevSrpZářŘíjLisPro"
|
||||
#define D_DAY3LIST "Po Út St Čt Pá So Ne "
|
||||
#define D_MONTH3LIST "LedÚnoBřeDubKvěČvnČvcSrpZářŘíjLisPro"
|
||||
|
||||
// Non JSON decimal separator
|
||||
#define D_DECIMAL_SEPARATOR ","
|
||||
|
@ -56,19 +56,19 @@
|
|||
#define D_AUTO "AUTO"
|
||||
#define D_BLINK "Blikání"
|
||||
#define D_BLINKOFF "BlikáníVyp"
|
||||
#define D_BOOT_COUNT "Počítadlo spuštění"
|
||||
#define D_BOOT_COUNT "Počitadlo spuštění"
|
||||
#define D_BRIGHTLIGHT "Světlý"
|
||||
#define D_BUTTON "Tlačítko"
|
||||
#define D_BY "by" // Written by me
|
||||
#define D_BYTES "Bytu"
|
||||
#define D_CELSIUS "Celsia"
|
||||
#define D_CO2 "Kysličníku uhličitého"
|
||||
#define D_BYTES "Bytů"
|
||||
#define D_CELSIUS "°C"
|
||||
#define D_CO2 "CO2"
|
||||
#define D_CODE "kód" // Button code
|
||||
#define D_COLDLIGHT "Studený"
|
||||
#define D_COLDLIGHT "Studené světlo"
|
||||
#define D_COMMAND "Příkaz"
|
||||
#define D_CONNECTED "...připojeno"
|
||||
#define D_COUNT "Počítej"
|
||||
#define D_COUNTER "Počítadlo"
|
||||
#define D_COUNTER "Počitadlo"
|
||||
#define D_CURRENT "Proud" // As in Voltage and Current
|
||||
#define D_DATA "Data"
|
||||
#define D_DARKLIGHT "Tmavý"
|
||||
|
@ -89,14 +89,14 @@
|
|||
#define D_FALSE "Nepravda"
|
||||
#define D_FILE "Soubor"
|
||||
#define D_FREE_MEMORY "Volná paměť"
|
||||
#define D_GAS "Gas"
|
||||
#define D_GAS "Plyn"
|
||||
#define D_GATEWAY "Výchozí brána"
|
||||
#define D_GROUP "Skupina"
|
||||
#define D_HOST "Server"
|
||||
#define D_HOSTNAME "Název serveru"
|
||||
#define D_HUMIDITY "Vlhkost"
|
||||
#define D_ILLUMINANCE "Osvětlení"
|
||||
#define D_IMMEDIATE "Mžikové" // Button immediate
|
||||
#define D_IMMEDIATE "Okamžité" // Button immediate
|
||||
#define D_INDEX "Index"
|
||||
#define D_INFO "Informace"
|
||||
#define D_INITIALIZED "Inicializovaný"
|
||||
|
@ -107,11 +107,11 @@
|
|||
#define D_MQTT "MQTT"
|
||||
#define D_MULTI_PRESS "několikeré-stisknutí"
|
||||
#define D_NOISE "Hluk"
|
||||
#define D_NONE "Není"
|
||||
#define D_OFF "Vypnutý"
|
||||
#define D_NONE "Žádný"
|
||||
#define D_OFF "Vyp."
|
||||
#define D_OFFLINE "Neaktivní"
|
||||
#define D_OK "OK"
|
||||
#define D_ON "Sepnutý"
|
||||
#define D_ON "Zap."
|
||||
#define D_ONLINE "Aktivní"
|
||||
#define D_PASSWORD "Heslo"
|
||||
#define D_PORT "Port"
|
||||
|
@ -119,15 +119,15 @@
|
|||
#define D_POWERUSAGE "Příkon"
|
||||
#define D_PRESSURE "Tlak"
|
||||
#define D_PRESSUREATSEALEVEL "Tlak na úrovni hladiny moře"
|
||||
#define D_PROGRAM_FLASH_SIZE "Velikost flash programu"
|
||||
#define D_PROGRAM_FLASH_SIZE "Velikost paměti flash"
|
||||
#define D_PROGRAM_SIZE "Velikost programu"
|
||||
#define D_PROJECT "Projekt"
|
||||
#define D_RECEIVED "Obdržený"
|
||||
#define D_RECEIVED "Přijatý"
|
||||
#define D_RESTART "Restart"
|
||||
#define D_RESTARTING "Restartování"
|
||||
#define D_RESTART_REASON "Příčina restartu"
|
||||
#define D_RESTORE "Načtený"
|
||||
#define D_RETAINED "Uloženo"
|
||||
#define D_RESTORE "Obnovit"
|
||||
#define D_RETAINED "Zachováno"
|
||||
#define D_SAVE "Ulož"
|
||||
#define D_SENSOR "Sensor"
|
||||
#define D_SSID "SSID"
|
||||
|
@ -137,8 +137,8 @@
|
|||
#define D_SUBNET_MASK "Maska podsítě"
|
||||
#define D_SUBSCRIBE_TO "Přihlaš se do"
|
||||
#define D_SUCCESSFUL "úspěšné."
|
||||
#define D_SUNRISE "Sunrise"
|
||||
#define D_SUNSET "Sunset"
|
||||
#define D_SUNRISE "Svítání"
|
||||
#define D_SUNSET "Soumrak"
|
||||
#define D_TEMPERATURE "Teplota"
|
||||
#define D_TO "do"
|
||||
#define D_TOGGLE "Přepni"
|
||||
|
@ -154,18 +154,18 @@
|
|||
#define D_UV_LEVEL "úroveň UV"
|
||||
#define D_VERSION "Verze"
|
||||
#define D_VOLTAGE "Napětí"
|
||||
#define D_WARMLIGHT "Ohřev"
|
||||
#define D_WARMLIGHT "Teplé světlo"
|
||||
#define D_WEB_SERVER "Web Server"
|
||||
|
||||
// sonoff.ino
|
||||
#define D_WARNING_MINIMAL_VERSION "WARNING Tato verze nepodporuje trvalé nastavení"
|
||||
#define D_WARNING_MINIMAL_VERSION "UPOZORNĚNÍ Tato verze nepodporuje trvalé nastavení"
|
||||
#define D_LEVEL_10 "úroveň 1-0"
|
||||
#define D_LEVEL_01 "úroveň 0-1"
|
||||
#define D_SERIAL_LOGGING_DISABLED "Logování na sériovém portu ukončeno"
|
||||
#define D_SYSLOG_LOGGING_REENABLED "Obnoven zápis do Syslog"
|
||||
|
||||
#define D_SET_BAUDRATE_TO "Nastavení rychlosti přenosu na"
|
||||
#define D_RECEIVED_TOPIC "Obdržený topic"
|
||||
#define D_RECEIVED_TOPIC "Přijatý topic"
|
||||
#define D_DATA_SIZE "Velikost dat"
|
||||
#define D_ANALOG_INPUT "Analogový vstup"
|
||||
|
||||
|
@ -228,13 +228,13 @@
|
|||
#define D_RESTORE_CONFIGURATION "Obnovení nastavení"
|
||||
#define D_MAIN_MENU "Hlavní menu"
|
||||
|
||||
#define D_MODULE_PARAMETERS "Parametry modulu"
|
||||
#define D_MODULE_PARAMETERS "Nastavení 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_WIFI_PARAMETERS "Nastavení WiFi"
|
||||
#define D_SCAN_FOR_WIFI_NETWORKS "Scan sítí WiFi"
|
||||
#define D_SCAN_DONE "Scan dokončen"
|
||||
#define D_NO_NETWORKS_FOUND "Síť nebyla nalezena"
|
||||
|
@ -250,11 +250,11 @@
|
|||
#define D_AP2_SSID "AP2 SSID"
|
||||
#define D_AP2_PASSWORD "Heslo AP2"
|
||||
|
||||
#define D_MQTT_PARAMETERS "Parametry MQTT"
|
||||
#define D_MQTT_PARAMETERS "Nastavení MQTT"
|
||||
#define D_CLIENT "Klient"
|
||||
#define D_FULL_TOPIC "Celý topic"
|
||||
|
||||
#define D_LOGGING_PARAMETERS "Volby logování"
|
||||
#define D_LOGGING_PARAMETERS "Volba logování"
|
||||
#define D_SERIAL_LOG_LEVEL "Seriová úroveň logu"
|
||||
#define D_WEB_LOG_LEVEL "Webová úroveň logu"
|
||||
#define D_SYS_LOG_LEVEL "Systemová úroveň logu"
|
||||
|
@ -263,7 +263,7 @@
|
|||
#define D_SYSLOG_PORT "Syslog port"
|
||||
#define D_TELEMETRY_PERIOD "Interval telemetrie"
|
||||
|
||||
#define D_OTHER_PARAMETERS "Jiné parametry"
|
||||
#define D_OTHER_PARAMETERS "Další nastavení"
|
||||
#define D_WEB_ADMIN_PASSWORD "Heslo Web administrátora"
|
||||
#define D_MQTT_ENABLE "MQTT aktivní"
|
||||
#define D_FRIENDLY_NAME "Friendly Name"
|
||||
|
@ -346,7 +346,7 @@
|
|||
#define D_3_RESPONSE_PACKETS_SENT "3 pakety odpovědi odeslány"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Parametry Domoticz"
|
||||
#define D_DOMOTICZ_PARAMETERS "Nastavení Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
#define D_DOMOTICZ_SWITCH_IDX "Spinac idx"
|
||||
|
@ -363,19 +363,19 @@
|
|||
#define D_DOMOTICZ_UPDATE_TIMER "Aktualizace stopek"
|
||||
|
||||
// xdrv_09_timers.ino
|
||||
#define D_CONFIGURE_TIMER "Configure Timer"
|
||||
#define D_TIMER_PARAMETERS "Timer parameters"
|
||||
#define D_TIMER_ARM "Arm"
|
||||
#define D_TIMER_TIME "Time"
|
||||
#define D_TIMER_DAYS "Days"
|
||||
#define D_TIMER_REPEAT "Repeat"
|
||||
#define D_TIMER_OUTPUT "Output"
|
||||
#define D_TIMER_POWER "Power"
|
||||
#define D_CONFIGURE_TIMER "Nastavení Časovače"
|
||||
#define D_TIMER_PARAMETERS "Časovač"
|
||||
#define D_TIMER_ARM "Zajistit"
|
||||
#define D_TIMER_TIME "Čas"
|
||||
#define D_TIMER_DAYS "Dny"
|
||||
#define D_TIMER_REPEAT "Opakovat"
|
||||
#define D_TIMER_OUTPUT "Výstup"
|
||||
#define D_TIMER_POWER "Napájení"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energie Dnes"
|
||||
#define D_ENERGY_YESTERDAY "Energie Včera"
|
||||
#define D_ENERGY_TOTAL "Energie Součet"
|
||||
#define D_ENERGY_TODAY "Spotřeba Dnes"
|
||||
#define D_ENERGY_YESTERDAY "Spotřeba Včera"
|
||||
#define D_ENERGY_TOTAL "Celková spotřeba"
|
||||
|
||||
// xsns_05_ds18b20.ino
|
||||
#define D_SENSOR_BUSY "Sensor DS18x20 obsazen"
|
||||
|
@ -384,19 +384,19 @@
|
|||
|
||||
// xsns_06_dht.ino
|
||||
#define D_TIMEOUT_WAITING_FOR "Čekání na"
|
||||
#define D_START_SIGNAL_LOW "signál, startovní nízký"
|
||||
#define D_START_SIGNAL_HIGH "signál, startovní vysoký"
|
||||
#define D_PULSE "puls"
|
||||
#define D_START_SIGNAL_LOW "nízký startovní signál"
|
||||
#define D_START_SIGNAL_HIGH "vysoký startovní signál"
|
||||
#define D_PULSE "impuls"
|
||||
#define D_CHECKSUM_FAILURE "Chybný kontrolní součet"
|
||||
|
||||
// xsns_07_sht1x.ino
|
||||
#define D_SENSOR_DID_NOT_ACK_COMMAND "Sensor neobdržel pžíkaz ACK"
|
||||
#define D_SENSOR_DID_NOT_ACK_COMMAND "Sensor neobdržel příkaz ACK"
|
||||
#define D_SHT1X_FOUND "SHT1X nalezen"
|
||||
|
||||
// xsns_18_pms5003.ino
|
||||
#define D_STANDARD_CONCENTRATION "CF-1 PM" // Standard Particle CF-1 Particle Matter
|
||||
#define D_ENVIRONMENTAL_CONCENTRATION "PM" // Environmetal Particle Matter
|
||||
#define D_PARTICALS_BEYOND "Particals"
|
||||
#define D_PARTICALS_BEYOND "částic"
|
||||
|
||||
// sonoff_template.h
|
||||
#define D_SENSOR_NONE "Není"
|
||||
|
@ -409,11 +409,11 @@
|
|||
#define D_SENSOR_WS2812 "WS2812"
|
||||
#define D_SENSOR_IRSEND "IRsend"
|
||||
#define D_SENSOR_SWITCH "Spínač" // Suffix "1"
|
||||
#define D_SENSOR_BUTTON "Tlačít" // Suffix "1"
|
||||
#define D_SENSOR_BUTTON "Tlačítko" // Suffix "1"
|
||||
#define D_SENSOR_RELAY "Relé" // Suffix "1i"
|
||||
#define D_SENSOR_LED "Led" // Suffix "1i"
|
||||
#define D_SENSOR_PWM "PWM" // Suffix "1",
|
||||
#define D_SENSOR_COUNTER "Počíta" // Suffix "1"
|
||||
#define D_SENSOR_COUNTER "Počitadlo" // Suffix "1"
|
||||
#define D_SENSOR_IRRECV "IRrecv"
|
||||
#define D_SENSOR_MHZ_RX "MHZ Rx"
|
||||
#define D_SENSOR_MHZ_TX "MHZ Tx"
|
||||
|
@ -431,7 +431,7 @@
|
|||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
#define D_UNIT_HOUR "Hod"
|
||||
#define D_UNIT_HOUR "hod"
|
||||
#define D_UNIT_KILOOHM "kOhm"
|
||||
#define D_UNIT_KILOWATTHOUR "kWh"
|
||||
#define D_UNIT_LUX "lx"
|
||||
|
@ -440,7 +440,7 @@
|
|||
#define D_UNIT_MICROSECOND "us"
|
||||
#define D_UNIT_MILLIAMPERE "mA"
|
||||
#define D_UNIT_MILLISECOND "ms"
|
||||
#define D_UNIT_MINUTE "Min"
|
||||
#define D_UNIT_MINUTE "min"
|
||||
#define D_UNIT_PARTS_PER_BILLION "ppb"
|
||||
#define D_UNIT_PARTS_PER_DECILITER "ppd"
|
||||
#define D_UNIT_PARTS_PER_MILLION "ppm"
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
#define D_HOUR_MINUTE_SEPARATOR ":"
|
||||
#define D_MINUTE_SECOND_SEPARATOR ":"
|
||||
|
||||
#define D_DAY3LIST "SonMonDieMitDonFriSam"
|
||||
#define D_MONTH3LIST "JanFebMaeAprMaiJunJulAugSepOktNovDez"
|
||||
#define D_DAY3LIST "So Mo Di Mi Do Fr Sa "
|
||||
#define D_MONTH3LIST "JanFebMärAprMaiJunJulAugSepOktNovDez"
|
||||
|
||||
// Non JSON decimal separator
|
||||
#define D_DECIMAL_SEPARATOR "."
|
||||
|
@ -74,7 +74,7 @@
|
|||
#define D_DARKLIGHT "dunkel"
|
||||
#define D_DEBUG "debug"
|
||||
#define D_DISABLED "deaktiviert"
|
||||
#define D_DNS_SERVER "DNS Server"
|
||||
#define D_DNS_SERVER "DNS-Server"
|
||||
#define D_DONE "erledigt"
|
||||
#define D_DST_TIME "DST"
|
||||
#define D_ECO2 "eCO2"
|
||||
|
@ -85,7 +85,7 @@
|
|||
#define D_FAHRENHEIT "Fahrenheit"
|
||||
#define D_FAILED "fehlgeschlagen"
|
||||
#define D_FALLBACK "Fallback"
|
||||
#define D_FALLBACK_TOPIC "Fallback topic"
|
||||
#define D_FALLBACK_TOPIC "Fallback-Topic"
|
||||
#define D_FALSE "falsch"
|
||||
#define D_FILE "Datei"
|
||||
#define D_FREE_MEMORY "Freier Arbeitsspeicher"
|
||||
|
@ -100,7 +100,7 @@
|
|||
#define D_INDEX "Index"
|
||||
#define D_INFO "Info"
|
||||
#define D_INITIALIZED "initialisiert"
|
||||
#define D_IP_ADDRESS "IP-Addresse"
|
||||
#define D_IP_ADDRESS "IP-Adresse"
|
||||
#define D_LIGHT "Licht"
|
||||
#define D_LWT "LWT"
|
||||
#define D_MODULE "Modul"
|
||||
|
@ -117,8 +117,8 @@
|
|||
#define D_PORT "Port"
|
||||
#define D_POWER_FACTOR "Leistungsfaktor"
|
||||
#define D_POWERUSAGE "Leistung"
|
||||
#define D_PRESSURE "Druck"
|
||||
#define D_PRESSUREATSEALEVEL "MeeresDruck"
|
||||
#define D_PRESSURE "Luftdruck"
|
||||
#define D_PRESSUREATSEALEVEL "Luftdruck auf Meereshöhe"
|
||||
#define D_PROGRAM_FLASH_SIZE "Ges. Flash Speicher"
|
||||
#define D_PROGRAM_SIZE "Ben. Flash Speicher"
|
||||
#define D_PROJECT "Projekt"
|
||||
|
@ -135,10 +135,10 @@
|
|||
#define D_STD_TIME "STD"
|
||||
#define D_STOP "Stop"
|
||||
#define D_SUBNET_MASK "Subnetzmaske"
|
||||
#define D_SUBSCRIBE_TO "subscribe to"
|
||||
#define D_SUBSCRIBE_TO "abonniere"
|
||||
#define D_SUCCESSFUL "erfolgreich"
|
||||
#define D_SUNRISE "Sunrise"
|
||||
#define D_SUNSET "Sunset"
|
||||
#define D_SUNRISE "Sonnenaufgang"
|
||||
#define D_SUNSET "Sonnenuntergang"
|
||||
#define D_TEMPERATURE "Temperatur"
|
||||
#define D_TO "zu"
|
||||
#define D_TOGGLE "An/Aus"
|
||||
|
@ -151,43 +151,43 @@
|
|||
#define D_UPTIME "Laufzeit"
|
||||
#define D_USER "Benutzer"
|
||||
#define D_UTC_TIME "UTC"
|
||||
#define D_UV_LEVEL "UV Level"
|
||||
#define D_UV_LEVEL "UV-Level"
|
||||
#define D_VERSION "Version"
|
||||
#define D_VOLTAGE "Spannung"
|
||||
#define D_WARMLIGHT "warm"
|
||||
#define D_WEB_SERVER "Web-Server"
|
||||
|
||||
// sonoff.ino
|
||||
#define D_WARNING_MINIMAL_VERSION "WARNING This version does not support persistent settings"
|
||||
#define D_WARNING_MINIMAL_VERSION "ACHTUNG: Diese Version unterstützt keine persistenten Einstellungen"
|
||||
#define D_LEVEL_10 "level 1-0"
|
||||
#define D_LEVEL_01 "level 0-1"
|
||||
#define D_SERIAL_LOGGING_DISABLED "Serielles logging deaktiviert"
|
||||
#define D_SYSLOG_LOGGING_REENABLED "Syslog logging reaktiviert"
|
||||
#define D_SERIAL_LOGGING_DISABLED "Serielles Logging deaktiviert"
|
||||
#define D_SYSLOG_LOGGING_REENABLED "Syslog-Logging aktiviert"
|
||||
|
||||
#define D_SET_BAUDRATE_TO "Baudrate eingestellt auf"
|
||||
#define D_SET_BAUDRATE_TO "Setze Baudrate auf"
|
||||
#define D_RECEIVED_TOPIC "empfangenes topic"
|
||||
#define D_DATA_SIZE "Datengröße"
|
||||
#define D_ANALOG_INPUT "Analog"
|
||||
|
||||
// support.ino
|
||||
#define D_OSWATCH "osWatch"
|
||||
#define D_BLOCKED_LOOP "Blocked Loop"
|
||||
#define D_BLOCKED_LOOP "Schleife blockiert."
|
||||
#define D_WPS_FAILED_WITH_STATUS "WPS fehlgeschlagen mit Status"
|
||||
#define D_ACTIVE_FOR_3_MINUTES "aktiv für 3 Minuten"
|
||||
#define D_FAILED_TO_START "Starten fehlgeschlagen"
|
||||
#define D_PATCH_ISSUE_2186 "Patch-Problem 2186"
|
||||
#define D_PATCH_ISSUE_2186 "Repariere Problem #2186"
|
||||
#define D_CONNECTING_TO_AP "verbinden mit AP"
|
||||
#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 mit AP weil das Passwort falsch ist"
|
||||
#define D_CONNECT_FAILED_AP_TIMEOUT "Verbindung fehlgeschlagen da der AP nicht antwortet (timeout)"
|
||||
#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_AP_TIMEOUT "Verbindung fehlgeschlagen, da der AP nicht antwortet (timeout)"
|
||||
#define D_ATTEMPTING_CONNECTION "Verbindungsversuch..."
|
||||
#define D_CHECKING_CONNECTION "Prüfe Verbindung..."
|
||||
#define D_QUERY_DONE "Suchanfrage abgeschlossen. MQTT-Services gefunden"
|
||||
#define D_MQTT_SERVICE_FOUND "MQTT-Service gefunden bei"
|
||||
#define D_FOUND_AT "gefunden bei"
|
||||
#define D_SYSLOG_HOST_NOT_FOUND "Syslog Host nicht gefunden"
|
||||
#define D_SYSLOG_HOST_NOT_FOUND "Syslog-Host nicht gefunden"
|
||||
|
||||
// settings.ino
|
||||
#define D_SAVED_TO_FLASH_AT "in Flash gespeichert am"
|
||||
|
@ -228,40 +228,40 @@
|
|||
#define D_RESTORE_CONFIGURATION "Konfiguration wiederherstellen"
|
||||
#define D_MAIN_MENU "Hauptmenü"
|
||||
|
||||
#define D_MODULE_PARAMETERS "Geräte Einstellungen"
|
||||
#define D_MODULE_TYPE "Geräte Typ"
|
||||
#define D_MODULE_PARAMETERS "Geräte-Einstellungen"
|
||||
#define D_MODULE_TYPE "Gerätetyp"
|
||||
#define D_GPIO "GPIO"
|
||||
#define D_SERIAL_IN "serieller Eingang [serial in]"
|
||||
#define D_SERIAL_OUT "serieller Ausgang [serial out]"
|
||||
|
||||
#define D_WIFI_PARAMETERS "WLAN Einstellungen"
|
||||
#define D_WIFI_PARAMETERS "WLAN-Einstellungen"
|
||||
#define D_SCAN_FOR_WIFI_NETWORKS "WLAN-Netzwerk suchen und auswählen"
|
||||
#define D_SCAN_DONE "Suche abgeschlossen"
|
||||
#define D_NO_NETWORKS_FOUND "Keine Netzwerke gefunden"
|
||||
#define D_REFRESH_TO_SCAN_AGAIN "Aktualisieren um erneut zu suchen"
|
||||
#define D_REFRESH_TO_SCAN_AGAIN "Aktualisieren, um erneut zu suchen"
|
||||
#define D_DUPLICATE_ACCESSPOINT "AccessPoint duplizieren"
|
||||
#define D_SKIPPING_LOW_QUALITY "überspringe wegen niedriger Qualität"
|
||||
#define D_RSSI "RSSI"
|
||||
#define D_WEP "WEP"
|
||||
#define D_WPA_PSK "WPA PSK"
|
||||
#define D_WPA2_PSK "WPA2 PSK"
|
||||
#define D_WPA_PSK "WPA-PSK"
|
||||
#define D_WPA2_PSK "WPA2-PSK"
|
||||
#define D_AP1_SSID "WLAN 1 - SSID"
|
||||
#define D_AP1_PASSWORD "WLAN 1 - Passwort"
|
||||
#define D_AP2_SSID "WLAN 2 - SSID"
|
||||
#define D_AP2_PASSWORD "WLAN 2 - Passwort"
|
||||
|
||||
#define D_MQTT_PARAMETERS "MQTT Einstellungen"
|
||||
#define D_MQTT_PARAMETERS "MQTT-Einstellungen"
|
||||
#define D_CLIENT "client"
|
||||
#define D_FULL_TOPIC "full topic"
|
||||
|
||||
#define D_LOGGING_PARAMETERS "Logging Einstellungen"
|
||||
#define D_SERIAL_LOG_LEVEL "Seriell Log level"
|
||||
#define D_WEB_LOG_LEVEL "Web Log level"
|
||||
#define D_SYS_LOG_LEVEL "Sys Log level"
|
||||
#define D_LOGGING_PARAMETERS "Logging-Einstellungen"
|
||||
#define D_SERIAL_LOG_LEVEL "Seriell-Log Level"
|
||||
#define D_WEB_LOG_LEVEL "Web-Log Level"
|
||||
#define D_SYS_LOG_LEVEL "Sys-Log Level"
|
||||
#define D_MORE_DEBUG "More debug"
|
||||
#define D_SYSLOG_HOST "Sys Log Host"
|
||||
#define D_SYSLOG_PORT "Sys Log Port"
|
||||
#define D_TELEMETRY_PERIOD "Telemetry period"
|
||||
#define D_SYSLOG_HOST "Sys-Log Host"
|
||||
#define D_SYSLOG_PORT "Sys-Log Port"
|
||||
#define D_TELEMETRY_PERIOD "Telemetrieperiode"
|
||||
|
||||
#define D_OTHER_PARAMETERS "Sonstige Einstellungen"
|
||||
#define D_WEB_ADMIN_PASSWORD "Passwort für Web Oberfläche"
|
||||
|
@ -298,7 +298,7 @@
|
|||
#define D_UPGRADE_BY_WEBSERVER "Update über Web-Server"
|
||||
#define D_OTA_URL "OTA-URL"
|
||||
#define D_START_UPGRADE "Update starten"
|
||||
#define D_UPGRADE_BY_FILE_UPLOAD "Update Datei hochladen"
|
||||
#define D_UPGRADE_BY_FILE_UPLOAD "Update-Datei hochladen"
|
||||
#define D_UPLOAD_STARTED "Upload gestartet"
|
||||
#define D_UPGRADE_STARTED "Update gestartet"
|
||||
#define D_UPLOAD_DONE "Upload abgeschlossen"
|
||||
|
@ -315,7 +315,7 @@
|
|||
|
||||
#define D_ENTER_COMMAND "Befehl eingeben"
|
||||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Aktivere Web Log Level 2 falls Reaktion erwartet"
|
||||
#define D_NEED_USER_AND_PASSWORD "Benutzer benötigt=<Benutzername>&password=<Passwort>"
|
||||
#define D_NEED_USER_AND_PASSWORD "Benötige user=<Benutzername>&password=<Passwort>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
#define D_FINGERPRINT "TLS-Fingerabdruck wird verifiziert..."
|
||||
|
@ -340,13 +340,13 @@
|
|||
|
||||
#define D_HUE "Hue"
|
||||
#define D_HUE_BRIDGE_SETUP "Hue-Setup"
|
||||
#define D_HUE_API_NOT_IMPLEMENTED "Hue API nicht implementiert"
|
||||
#define D_HUE_API "Hue API"
|
||||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_HUE_API_NOT_IMPLEMENTED "Hue-API nicht implementiert"
|
||||
#define D_HUE_API "Hue-API"
|
||||
#define D_HUE_POST_ARGS "Hue POST-Argumente"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 Antwortpakete gesendet"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz parameters"
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz-Parameter"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
#define D_DOMOTICZ_SWITCH_IDX "Switch idx"
|
||||
|
@ -364,7 +364,7 @@
|
|||
|
||||
// xdrv_09_timers.ino
|
||||
#define D_CONFIGURE_TIMER "Zeitplan konfigurieren"
|
||||
#define D_TIMER_PARAMETERS "Zeitplan Einstellungen"
|
||||
#define D_TIMER_PARAMETERS "Zeitplan-Einstellungen"
|
||||
#define D_TIMER_ARM "Aktiv"
|
||||
#define D_TIMER_TIME "Uhrzeit"
|
||||
#define D_TIMER_DAYS "Wochentage"
|
||||
|
@ -383,7 +383,7 @@
|
|||
#define D_SENSORS_FOUND "Sensor gefunden"
|
||||
|
||||
// xsns_06_dht.ino
|
||||
#define D_TIMEOUT_WAITING_FOR "Timeout wartet auf"
|
||||
#define D_TIMEOUT_WAITING_FOR "Timeout während Warten auf"
|
||||
#define D_START_SIGNAL_LOW "Startausschlag niedrig"
|
||||
#define D_START_SIGNAL_HIGH "Startausschlag hoch"
|
||||
#define D_PULSE "pulse"
|
||||
|
|
|
@ -137,8 +137,8 @@
|
|||
#define D_SUBNET_MASK "Máscara Subred"
|
||||
#define D_SUBSCRIBE_TO "Suscribir a"
|
||||
#define D_SUCCESSFUL "Exitosa"
|
||||
#define D_SUNRISE "Sunrise"
|
||||
#define D_SUNSET "Sunset"
|
||||
#define D_SUNRISE "Salida del Sol"
|
||||
#define D_SUNSET "Puesta del Sol"
|
||||
#define D_TEMPERATURE "Temperatura"
|
||||
#define D_TO "a"
|
||||
#define D_TOGGLE "Conmutar"
|
||||
|
|
|
@ -48,7 +48,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
|||
uint32_t not_power_linked : 1; // bit 20 (v5.11.1f)
|
||||
uint32_t no_power_on_check : 1; // bit 21 (v5.11.1i)
|
||||
uint32_t mqtt_serial : 1; // bit 22 (v5.12.0f)
|
||||
uint32_t spare23 : 1;
|
||||
uint32_t rules_enabled : 1; // bit 23 (v5.12.0j)
|
||||
uint32_t spare24 : 1;
|
||||
uint32_t spare25 : 1;
|
||||
uint32_t spare26 : 1;
|
||||
|
@ -255,7 +255,12 @@ struct SYSCFG {
|
|||
Timer timer[MAX_TIMERS]; // 670
|
||||
int latitude; // 6B0
|
||||
int longitude; // 6B4
|
||||
// 6B8 - FFF free locations
|
||||
|
||||
byte free_6b8[72]; // 6B8
|
||||
|
||||
char rules[MAX_RULE_SIZE]; // 700
|
||||
|
||||
// 800 - FFF free locations
|
||||
} Settings;
|
||||
|
||||
struct RTCMEM {
|
||||
|
|
|
@ -927,6 +927,10 @@ void SettingsDelta()
|
|||
Settings.latitude = (int)((double)LATITUDE * 1000000);
|
||||
Settings.longitude = (int)((double)LONGITUDE * 1000000);
|
||||
}
|
||||
if (Settings.version < 0x050C000B) {
|
||||
memset(&Settings.free_6b8, 0x00, sizeof(Settings.free_6b8));
|
||||
memset(&Settings.rules, 0x00, sizeof(Settings.rules));
|
||||
}
|
||||
|
||||
Settings.version = VERSION;
|
||||
SettingsSave(1);
|
||||
|
|
|
@ -48,6 +48,7 @@ typedef unsigned long power_t; // Power (Relay) type
|
|||
#define MAX_FRIENDLYNAMES 4 // Max number of Friendly names
|
||||
#define MAX_DOMOTICZ_IDX 4 // Max number of Domoticz device, key and switch indices
|
||||
#define MAX_DOMOTICZ_SNS_IDX 12 // Max number of Domoticz sensors indices
|
||||
#define MAX_RULE_SIZE 256 // Max number of characters in rules
|
||||
|
||||
#define MODULE SONOFF_BASIC // [Module] Select default model
|
||||
|
||||
|
@ -163,7 +164,9 @@ enum LichtSubtypes {LST_NONE, LST_SINGLE, LST_COLDWARM, LST_RGB, LST_RGBW, LST_R
|
|||
enum LichtSchemes {LS_POWER, LS_WAKEUP, LS_CYCLEUP, LS_CYCLEDN, LS_RANDOM, LS_MAX};
|
||||
|
||||
enum XsnsFunctions {FUNC_INIT, FUNC_LOOP, FUNC_EVERY_50_MSECOND, FUNC_EVERY_SECOND, FUNC_PREP_BEFORE_TELEPERIOD, FUNC_JSON_APPEND, FUNC_WEB_APPEND, FUNC_SAVE_BEFORE_RESTART,
|
||||
FUNC_COMMAND, FUNC_MQTT_SUBSCRIBE, FUNC_MQTT_INIT, FUNC_MQTT_DATA, FUNC_SET_POWER, FUNC_SHOW_SENSOR};
|
||||
FUNC_COMMAND, FUNC_NTP_INIT, FUNC_NTP_SET,
|
||||
FUNC_MQTT_SUBSCRIBE, FUNC_MQTT_INIT, FUNC_MQTT_DATA, FUNC_MQTT_DISCONNECTED, FUNC_MQTT_CONNECTED,
|
||||
FUNC_SET_POWER, FUNC_SHOW_SENSOR};
|
||||
|
||||
const uint8_t kDefaultRfCode[9] PROGMEM = { 0x21, 0x16, 0x01, 0x0E, 0x03, 0x48, 0x2E, 0x1A, 0x00 };
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
- Select IDE Tools - Flash Size: "1M (no SPIFFS)"
|
||||
====================================================*/
|
||||
|
||||
#define VERSION 0x050C000A // 5.12.0j
|
||||
#define VERSION 0x050C000B // 5.12.0k
|
||||
|
||||
// Location specific includes
|
||||
#include <core_version.h> // Arduino_Esp8266 version information (ARDUINO_ESP8266_RELEASE and ARDUINO_ESP8266_RELEASE_2_3_0)
|
||||
|
@ -588,6 +588,8 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
|||
case 19: // hass_discovery
|
||||
case 20: // not_power_linked
|
||||
case 21: // no_power_on_check
|
||||
// case 22: // mqtt_serial - use commands SerialSend and SerialLog
|
||||
// case 23: // rules_enabled - use command Rule
|
||||
bitWrite(Settings.flag.data, index, payload);
|
||||
}
|
||||
if (12 == index) { // stop_flash_rotate
|
||||
|
@ -1257,7 +1259,7 @@ void PublishStatus(uint8_t payload)
|
|||
if (!energy_flg && (9 == payload)) payload = 99;
|
||||
|
||||
if ((0 == payload) || (99 == payload)) {
|
||||
uint8_t maxfn = (devices_present > MAX_FRIENDLYNAMES) ? MAX_FRIENDLYNAMES : devices_present;
|
||||
uint8_t maxfn = (devices_present > MAX_FRIENDLYNAMES) ? MAX_FRIENDLYNAMES : (!devices_present) ? 1 : devices_present;
|
||||
stemp[0] = '\0';
|
||||
for (byte i = 0; i < maxfn; i++) {
|
||||
snprintf_P(stemp, sizeof(stemp), PSTR("%s%s\"%s\"" ), stemp, (i > 0 ? "," : ""), Settings.friendlyname[i]);
|
||||
|
@ -1305,13 +1307,13 @@ void PublishStatus(uint8_t payload)
|
|||
}
|
||||
|
||||
if ((0 == payload) || (7 == payload)) {
|
||||
#ifdef USE_SUNRISE
|
||||
#if defined(USE_TIMERS) && defined(USE_SUNRISE)
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS7_TIME "\":{\"" D_JSON_UTC_TIME "\":\"%s\",\"" D_JSON_LOCAL_TIME "\":\"%s\",\"" D_JSON_STARTDST "\":\"%s\",\"" D_JSON_ENDDST "\":\"%s\",\"" D_CMND_TIMEZONE "\":%d,\"" D_JSON_SUNRISE "\":\"%s\",\"" D_JSON_SUNSET "\":\"%s\"}}"),
|
||||
GetTime(0).c_str(), GetTime(1).c_str(), GetTime(2).c_str(), GetTime(3).c_str(), Settings.timezone, GetSun(0).c_str(), GetSun(1).c_str());
|
||||
#else
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS7_TIME "\":{\"" D_JSON_UTC_TIME "\":\"%s\",\"" D_JSON_LOCAL_TIME "\":\"%s\",\"" D_JSON_STARTDST "\":\"%s\",\"" D_JSON_ENDDST "\":\"%s\",\"" D_CMND_TIMEZONE "\":%d}}"),
|
||||
GetTime(0).c_str(), GetTime(1).c_str(), GetTime(2).c_str(), GetTime(3).c_str(), Settings.timezone);
|
||||
#endif // USE_SUNRISE
|
||||
#endif // USE_TIMERS and USE_SUNRISE
|
||||
MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "7"));
|
||||
}
|
||||
|
||||
|
@ -2423,11 +2425,10 @@ void loop()
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
PollDnsWebserver();
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
#ifdef USE_EMULATION
|
||||
if (Settings.flag2.emulation) PollUdp();
|
||||
#endif // USE_EMULATION
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
if (millis() >= state_loop_timer) StateLoop();
|
||||
|
||||
|
|
|
@ -617,7 +617,7 @@ void WifiConfig(uint8_t type)
|
|||
if (type >= WIFI_RETRY) { // WIFI_RETRY and WIFI_WAIT
|
||||
return;
|
||||
}
|
||||
#ifdef USE_EMULATION
|
||||
#if defined(USE_WEBSERVER) && defined(USE_EMULATION)
|
||||
UdpDisconnect();
|
||||
#endif // USE_EMULATION
|
||||
WiFi.disconnect(); // Solve possible Wifi hangs
|
||||
|
@ -653,7 +653,7 @@ void WifiBegin(uint8_t flag)
|
|||
{
|
||||
const char kWifiPhyMode[] = " BGN";
|
||||
|
||||
#ifdef USE_EMULATION
|
||||
#if defined(USE_WEBSERVER) && defined(USE_EMULATION)
|
||||
UdpDisconnect();
|
||||
#endif // USE_EMULATION
|
||||
|
||||
|
@ -840,7 +840,7 @@ void WifiCheck(uint8_t param)
|
|||
#endif // USE_EMULATION
|
||||
#endif // USE_WEBSERVER
|
||||
} else {
|
||||
#ifdef USE_EMULATION
|
||||
#if defined(USE_WEBSERVER) && defined(USE_EMULATION)
|
||||
UdpDisconnect();
|
||||
#endif // USE_EMULATION
|
||||
mdns_begun = false;
|
||||
|
@ -1376,6 +1376,12 @@ void RtcSecond()
|
|||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_APPLICATION "(" D_UTC_TIME ") %s, (" D_DST_TIME ") %s, (" D_STD_TIME ") %s"),
|
||||
GetTime(0).c_str(), GetTime(2).c_str(), GetTime(3).c_str());
|
||||
AddLog(LOG_LEVEL_DEBUG);
|
||||
|
||||
if (local_time < 1451602800) {
|
||||
XdrvCall(FUNC_NTP_SET);
|
||||
} else {
|
||||
XdrvCall(FUNC_NTP_SET);
|
||||
}
|
||||
} else {
|
||||
ntp_sync_minute++; // Try again in next minute
|
||||
}
|
||||
|
|
|
@ -68,9 +68,9 @@
|
|||
// -- Syslog --------------------------------------
|
||||
#define SYS_LOG_HOST "" // [LogHost] (Linux) syslog host
|
||||
#define SYS_LOG_PORT 514 // [LogPort] default syslog UDP port
|
||||
#define SYS_LOG_LEVEL LOG_LEVEL_NONE // [SysLog]
|
||||
#define SERIAL_LOG_LEVEL LOG_LEVEL_INFO // [SerialLog]
|
||||
#define WEB_LOG_LEVEL LOG_LEVEL_INFO // [WebLog]
|
||||
#define SYS_LOG_LEVEL LOG_LEVEL_NONE // [SysLog] LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE
|
||||
#define SERIAL_LOG_LEVEL LOG_LEVEL_INFO // [SerialLog] LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE
|
||||
#define WEB_LOG_LEVEL LOG_LEVEL_INFO // [WebLog] LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE
|
||||
|
||||
// -- Ota -----------------------------------------
|
||||
#define OTA_URL "http://sonoff.maddox.co.uk/tasmota/sonoff.ino.bin" // [OtaUrl]
|
||||
|
|
|
@ -183,12 +183,10 @@ const char HTTP_BTN_RSTRT[] PROGMEM =
|
|||
"<br/><form action='rb' method='get' onsubmit='return confirm(\"" D_CONFIRM_RESTART "\");'><button>" D_RESTART "</button></form>";
|
||||
const char HTTP_BTN_MENU_MODULE[] PROGMEM =
|
||||
"<br/><form action='md' method='get'><button>" D_CONFIGURE_MODULE "</button></form>";
|
||||
#ifdef USE_TIMERS
|
||||
#ifdef USE_TIMERS_WEB
|
||||
#if defined(USE_TIMERS) && defined(USE_TIMERS_WEB)
|
||||
const char HTTP_BTN_MENU_TIMER[] PROGMEM =
|
||||
"<br/><form action='tm' method='get'><button>" D_CONFIGURE_TIMER "</button></form>";
|
||||
#endif // USE_TIMERS_WEB
|
||||
#endif // USE_TIMERS
|
||||
#endif // USE_TIMERS and USE_TIMERS_WEB
|
||||
const char HTTP_BTN_MENU_WIFI[] PROGMEM =
|
||||
"<br/><form action='w0' method='get'><button>" D_CONFIGURE_WIFI "</button></form>";
|
||||
const char HTTP_BTN_MENU_MQTT[] PROGMEM =
|
||||
|
@ -340,11 +338,9 @@ void StartWebserver(int type, IPAddress ipweb)
|
|||
WebServer->on("/", HandleRoot);
|
||||
WebServer->on("/cn", HandleConfiguration);
|
||||
WebServer->on("/md", HandleModuleConfiguration);
|
||||
#ifdef USE_TIMERS
|
||||
#ifdef USE_TIMERS_WEB
|
||||
#if defined(USE_TIMERS) && defined(USE_TIMERS_WEB)
|
||||
WebServer->on("/tm", HandleTimerConfiguration);
|
||||
#endif // USE_TIMERS_WEB
|
||||
#endif // USE_TIMERS
|
||||
#endif // USE_TIMERS and USE_TIMERS_WEB
|
||||
WebServer->on("/w1", HandleWifiConfigurationWithScan);
|
||||
WebServer->on("/w0", HandleWifiConfiguration);
|
||||
if (Settings.flag.mqtt_enabled) {
|
||||
|
@ -632,11 +628,9 @@ void HandleConfiguration()
|
|||
page.replace(F("{v}"), FPSTR(S_CONFIGURATION));
|
||||
page += FPSTR(HTTP_HEAD_STYLE);
|
||||
page += FPSTR(HTTP_BTN_MENU_MODULE);
|
||||
#ifdef USE_TIMERS
|
||||
#ifdef USE_TIMERS_WEB
|
||||
#if defined(USE_TIMERS) && defined(USE_TIMERS_WEB)
|
||||
if (devices_present) page += FPSTR(HTTP_BTN_MENU_TIMER);
|
||||
#endif // USE_TIMERS_WEB
|
||||
#endif // USE_TIMERS
|
||||
#endif // USE_TIMERS and USE_TIMERS_WEB
|
||||
page += FPSTR(HTTP_BTN_MENU_WIFI);
|
||||
if (Settings.flag.mqtt_enabled) page += FPSTR(HTTP_BTN_MENU_MQTT);
|
||||
page += FPSTR(HTTP_BTN_MENU4);
|
||||
|
@ -1103,13 +1097,11 @@ void HandleSaveSettings()
|
|||
Settings.seriallog_level, Settings.weblog_level, Settings.syslog_level, Settings.syslog_host, Settings.syslog_port, Settings.tele_period);
|
||||
AddLog(LOG_LEVEL_INFO);
|
||||
break;
|
||||
#ifdef USE_TIMERS
|
||||
#ifdef USE_TIMERS_WEB
|
||||
#if defined(USE_TIMERS) && defined(USE_TIMERS_WEB)
|
||||
case 7:
|
||||
TimerSaveSettings();
|
||||
break;
|
||||
#endif // USE_TIMERS_WEB
|
||||
#endif // USE_TIMERS
|
||||
#endif // USE_TIMERS and USE_TIMERS_WEB
|
||||
#ifdef USE_DOMOTICZ
|
||||
case 4:
|
||||
DomoticzSaveSettings();
|
||||
|
|
|
@ -316,6 +316,8 @@ void MqttDisconnected(int state)
|
|||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_MQTT D_CONNECT_FAILED_TO " %s:%d, rc %d. " D_RETRY_IN " %d " D_UNIT_SECOND),
|
||||
Settings.mqtt_host, Settings.mqtt_port, state, mqtt_retry_counter);
|
||||
AddLog(LOG_LEVEL_INFO);
|
||||
|
||||
XdrvCall(FUNC_MQTT_DISCONNECTED);
|
||||
}
|
||||
|
||||
void MqttConnected()
|
||||
|
@ -371,6 +373,8 @@ void MqttConnected()
|
|||
XdrvCall(FUNC_MQTT_INIT);
|
||||
}
|
||||
mqtt_initial_connection_state = 0;
|
||||
|
||||
XdrvCall(FUNC_MQTT_CONNECTED);
|
||||
}
|
||||
|
||||
#ifdef USE_MQTT_TLS
|
||||
|
@ -418,7 +422,7 @@ void MqttReconnect()
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef USE_EMULATION
|
||||
#if defined(USE_WEBSERVER) && defined(USE_EMULATION)
|
||||
UdpDisconnect();
|
||||
#endif // USE_EMULATION
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef USE_EMULATION
|
||||
#if defined(USE_WEBSERVER) && defined(USE_EMULATION)
|
||||
/*********************************************************************************************\
|
||||
* Belkin WeMo and Philips Hue bridge emulation
|
||||
\*********************************************************************************************/
|
||||
|
@ -266,7 +266,6 @@ void PollUdp()
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
/*********************************************************************************************\
|
||||
* Wemo web server additions
|
||||
\*********************************************************************************************/
|
||||
|
@ -814,6 +813,4 @@ void HandleHueApi(String *path)
|
|||
else if (path->endsWith("/rules")) HueNotImplemented(path);
|
||||
else HueGlobalConfig(path);
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
#endif // USE_EMULATION
|
||||
|
||||
#endif // USE_WEBSERVER && USE_EMULATION
|
||||
|
|
|
@ -105,7 +105,7 @@ void CounterShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_JSON_COUNTER "%d\":%s"), mqtt_data, i +1, counter);
|
||||
#ifdef USE_DOMOTICZ
|
||||
if (1 == dsxflg) {
|
||||
if ((0 == tele_period) && (1 == dsxflg)) {
|
||||
DomoticzSensor(DZ_COUNT, RtcSettings.pulse_counter[i]);
|
||||
dsxflg++;
|
||||
}
|
||||
|
|
|
@ -123,10 +123,12 @@ void SonoffScShow(boolean json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SonoffSC\":{\"" D_JSON_TEMPERATURE "\":%s,\"" D_JSON_HUMIDITY "\":%s,\"" D_JSON_LIGHT "\":%d,\"" D_JSON_NOISE "\":%d,\"" D_JSON_AIRQUALITY "\":%d}"),
|
||||
mqtt_data, temperature, humidity, sc_value[2], sc_value[3], sc_value[4]);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzTempHumSensor(temperature, humidity);
|
||||
DomoticzSensor(DZ_ILLUMINANCE, sc_value[2]);
|
||||
DomoticzSensor(DZ_COUNT, sc_value[3]);
|
||||
DomoticzSensor(DZ_AIRQUALITY, 500 + ((100 - sc_value[4]) * 20));
|
||||
if (0 == tele_period) {
|
||||
DomoticzTempHumSensor(temperature, humidity);
|
||||
DomoticzSensor(DZ_ILLUMINANCE, sc_value[2]);
|
||||
DomoticzSensor(DZ_COUNT, sc_value[3]);
|
||||
DomoticzSensor(DZ_AIRQUALITY, 500 + ((100 - sc_value[4]) * 20));
|
||||
}
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -197,7 +197,7 @@ void Ds18b20Show(boolean json)
|
|||
if(json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"DS18B20\":{\"" D_JSON_TEMPERATURE "\":%s}"), mqtt_data, temperature);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_TEMP, temperature);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_TEMP, temperature);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -380,7 +380,7 @@ void Ds18x20Show(boolean json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"%s\":{\"" D_JSON_ID "\":\"%s\",\"" D_JSON_TEMPERATURE "\":%s}"), mqtt_data, stemp, address, temperature);
|
||||
}
|
||||
#ifdef USE_DOMOTICZ
|
||||
if (domoticz_flag) {
|
||||
if ((0 == tele_period) && domoticz_flag) {
|
||||
DomoticzSensor(DZ_TEMP, temperature);
|
||||
domoticz_flag = false;
|
||||
}
|
||||
|
|
|
@ -188,7 +188,7 @@ void Ds18x20Show(boolean json)
|
|||
mqtt_data, stemp, i +1, ds18x20_types, Ds18x20Addresses(i).c_str(), temperature);
|
||||
strcpy(stemp, ",");
|
||||
#ifdef USE_DOMOTICZ
|
||||
if (1 == dsxflg) {
|
||||
if ((0 == tele_period) && (1 == dsxflg)) {
|
||||
DomoticzSensor(DZ_TEMP, temperature);
|
||||
}
|
||||
#endif // USE_DOMOTICZ
|
||||
|
|
|
@ -226,7 +226,7 @@ void DhtShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), JSON_SNS_TEMPHUM, mqtt_data, Dht[i].stype, temperature, humidity);
|
||||
#ifdef USE_DOMOTICZ
|
||||
if (!dsxflg) {
|
||||
if ((0 == tele_period) && !dsxflg) {
|
||||
DomoticzTempHumSensor(temperature, humidity);
|
||||
dsxflg++;
|
||||
}
|
||||
|
|
|
@ -199,7 +199,7 @@ void ShtShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), JSON_SNS_TEMPHUM, mqtt_data, "SHT1X", temperature, humidity);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzTempHumSensor(temperature, humidity);
|
||||
if (0 == tele_period) DomoticzTempHumSensor(temperature, humidity);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -262,7 +262,7 @@ void HtuShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), JSON_SNS_TEMPHUM, mqtt_data, htu_types, temperature, humidity);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzTempHumSensor(temperature, humidity);
|
||||
if (0 == tele_period) DomoticzTempHumSensor(temperature, humidity);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -465,7 +465,7 @@ void BmpShow(boolean json)
|
|||
mqtt_data, bmp_name, temperature, (bmp_model >= 2) ? json_humidity : "", pressure, (Settings.altitude != 0) ? json_sealevel : "");
|
||||
#endif // USE_BME680
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzTempHumPressureSensor(temperature, humidity, pressure);
|
||||
if (0 == tele_period) DomoticzTempHumPressureSensor(temperature, humidity, pressure);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -77,7 +77,7 @@ void Bh1750Show(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"BH1750\":{\"" D_JSON_ILLUMINANCE "\":%d}"), mqtt_data, illuminance);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_ILLUMINANCE, illuminance);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_ILLUMINANCE, illuminance);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -82,7 +82,7 @@ void Veml6070Show(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"VEML6070\":{\"" D_JSON_UV_LEVEL "\":%d}"), mqtt_data, uvlevel);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_ILLUMINANCE, uvlevel);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_ILLUMINANCE, uvlevel);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -216,8 +216,10 @@ void Ina219Show(boolean json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"INA219\":{\"" D_JSON_VOLTAGE "\":%s,\"" D_JSON_CURRENT "\":%s,\"" D_JSON_POWERUSAGE "\":%s}"),
|
||||
mqtt_data, voltage, current, power);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_VOLTAGE, voltage);
|
||||
DomoticzSensor(DZ_CURRENT, current);
|
||||
if (0 == tele_period) {
|
||||
DomoticzSensor(DZ_VOLTAGE, voltage);
|
||||
DomoticzSensor(DZ_CURRENT, current);
|
||||
}
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -107,7 +107,7 @@ void Sht3xShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), JSON_SNS_TEMPHUM, mqtt_data, types, temperature, humidity);
|
||||
#ifdef USE_DOMOTICZ
|
||||
if (0 == i) { // We want the same first sensor to report to Domoticz in case a read is missed
|
||||
if ((0 == tele_period) && (0 == i)) { // We want the same first sensor to report to Domoticz in case a read is missed
|
||||
DomoticzTempHumSensor(temperature, humidity);
|
||||
}
|
||||
#endif // USE_DOMOTICZ
|
||||
|
|
|
@ -265,7 +265,7 @@ void MhzShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"%s\":{\"" D_JSON_CO2 "\":%d,\"" D_JSON_TEMPERATURE "\":%s}"), mqtt_data, mhz_types, mhz_last_ppm, temperature);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_AIRQUALITY, mhz_last_ppm);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_AIRQUALITY, mhz_last_ppm);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -71,7 +71,7 @@ void Tsl2561Show(boolean json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"TSL2561\":{\"" D_JSON_ILLUMINANCE "\":%u.%03u}"),
|
||||
mqtt_data, milliLux/1000, milliLux%1000);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_ILLUMINANCE, (milliLux+500)/1000);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_ILLUMINANCE, (milliLux+500)/1000);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -213,7 +213,7 @@ void SenseairShow(boolean json)
|
|||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s}"), mqtt_data);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_AIRQUALITY, senseair_co2);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_AIRQUALITY, senseair_co2);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -131,9 +131,11 @@ void PmsShow(boolean json)
|
|||
pms_data.pm10_env, pms_data.pm25_env, pms_data.pm100_env,
|
||||
pms_data.particles_03um, pms_data.particles_05um, pms_data.particles_10um, pms_data.particles_25um, pms_data.particles_50um, pms_data.particles_100um);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_COUNT, pms_data.pm10_env); // PM1
|
||||
DomoticzSensor(DZ_VOLTAGE, pms_data.pm25_env); // PM2.5
|
||||
DomoticzSensor(DZ_CURRENT, pms_data.pm100_env); // PM10
|
||||
if (0 == tele_period) {
|
||||
DomoticzSensor(DZ_COUNT, pms_data.pm10_env); // PM1
|
||||
DomoticzSensor(DZ_VOLTAGE, pms_data.pm25_env); // PM2.5
|
||||
DomoticzSensor(DZ_CURRENT, pms_data.pm100_env); // PM10
|
||||
}
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -108,8 +108,10 @@ void NovaSdsShow(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SDS0X1\":{\"PM2.5\":%s,\"PM10\":%s}"), mqtt_data, pm2_5, pm10);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_VOLTAGE, pm2_5); // PM2.5
|
||||
DomoticzSensor(DZ_CURRENT, pm10); // PM10
|
||||
if (0 == tele_period) {
|
||||
DomoticzSensor(DZ_VOLTAGE, pm2_5); // PM2.5
|
||||
DomoticzSensor(DZ_CURRENT, pm10); // PM10
|
||||
}
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
|
|
|
@ -74,7 +74,7 @@ void Sgp30Show(boolean json)
|
|||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SGP30\":{\"" D_JSON_ECO2 "\":%d,\"" D_JSON_TVOC "\":%d}"), mqtt_data, sgp.eCO2, sgp.TVOC);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzSensor(DZ_AIRQUALITY, sgp.eCO2);
|
||||
if (0 == tele_period) DomoticzSensor(DZ_AIRQUALITY, sgp.eCO2);
|
||||
#endif // USE_DOMOTICZ
|
||||
} else {
|
||||
#ifdef USE_WEBSERVER
|
||||
|
|
Loading…
Reference in New Issue