diff --git a/.github/workflows/CI_github_ESP32.yml b/.github/workflows/CI_github_ESP32.yml index aeeb0e9ce..9e8312b51 100644 --- a/.github/workflows/CI_github_ESP32.yml +++ b/.github/workflows/CI_github_ESP32.yml @@ -20,3 +20,480 @@ jobs: cp platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32 + + tasmota32-minimal: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-minimal + + tasmota32-lite: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-lite + + tasmota32-knx: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-knx + + tasmota32-sensors: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-sensors + + tasmota32-display: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-display + + tasmota32-ir: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-ir + + tasmota32-BG: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-BG + + tasmota32-BR: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-BR + + tasmota32-CN: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-CN + + tasmota32-CZ: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-CZ + + tasmota32-DE: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-DE + + tasmota32-ES: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-ES + + + tasmota32-FR: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-FR + + tasmota32-GR: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-GR + + tasmota32-HE: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-HE + + tasmota32-HU: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-HU + + tasmota32-IT: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-IT + + tasmota32-KO: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-KO + + tasmota32-NL: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-NL + + tasmota32-PL: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-PL + + tasmota32-PT: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-PT + + tasmota32-RO: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-RO + + tasmota32-RU: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-RU + + tasmota32-SE: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-SE + + tasmota32-SK: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-SK + + tasmota32-TR: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-TR + + tasmota32-TW: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-TW + + tasmota32-UK: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + cp platformio_override_sample.ini platformio_override.ini + platformio run -e tasmota32-UK diff --git a/BUILDS.md b/BUILDS.md index 36a0bb48a..9173dbc41 100644 --- a/BUILDS.md +++ b/BUILDS.md @@ -2,7 +2,7 @@ | Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks |-----------------------|---------|-------|--------|-----|---------|----|---------|-------- -| MY_LANGUAGE en-GB | x | x | x | x | x | x | x | +| MY_LANGUAGE en_GB | x | x | x | x | x | x | x | | USE_ARDUINO_OTA | - | - | - | - | - | - | - | | USE_DOMOTICZ | - | - | x | x | x | x | - | | USE_HOME_ASSISTANT | - | - | x | x | x | x | - | diff --git a/README.md b/README.md index fc58416f6..148f00818 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ In addition to the [release webpage](https://github.com/arendst/Tasmota/releases [![Dev Version](https://img.shields.io/badge/development%20version-v8.2.x.x-blue.svg)](https://github.com/arendst/Tasmota) [![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://thehackbox.org/tasmota/) -![Tasmota CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20CI/badge.svg) -![Tasmota ESP32 CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20ESP32%20CI/badge.svg) +[![Tasmota CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+CI%22) +[![Tasmota ESP32 CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20ESP32%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+ESP32+CI%22) See [tasmota/CHANGELOG.md](tasmota/CHANGELOG.md) for detailed change information. @@ -145,7 +145,7 @@ People helping to keep the show on the road: - Stefan Bode for his Shutter and Deep sleep drivers - Jacek Ziółkowski for his [TDM](https://github.com/jziolkowski/tdm) management tool and [Tasmotizer](https://github.com/tasmota/tasmotizer) flashing tool - Christian Staars for NRF24L01 and HM-10 Bluetooth sensor support -- Pail Diem for UDP Group communication support +- Paul Diem for UDP Group communication support - Jörg Schüler-Maroldt for his initial ESP32 port - Many more providing Tips, Wips, Pocs, PRs and Donations diff --git a/pio/override_copy.py b/pio/override_copy.py new file mode 100644 index 000000000..1cb6c991b --- /dev/null +++ b/pio/override_copy.py @@ -0,0 +1,9 @@ +Import('env') +import os +import shutil + +# copy tasmota/user_config_override_sample.h to tasmota/user_config_override.h +if os.path.isfile("tasmota/user_config_override.h"): + print ("*** use provided user_config_override.h as planned ***") +else: + shutil.copy("tasmota/user_config_override_sample.h", "tasmota/user_config_override.h") diff --git a/platformio.ini b/platformio.ini index 5074ee432..23ebbaa12 100755 --- a/platformio.ini +++ b/platformio.ini @@ -8,8 +8,10 @@ ; http://docs.platformio.org/en/stable/projectconf.html [platformio] +description = Provide ESP8266 based devices with Web, MQTT and OTA firmware src_dir = tasmota build_dir = .pioenvs +workspace_dir = .pioenvs build_cache_dir = .cache extra_configs = platformio_tasmota_env.ini platformio_override.ini @@ -64,11 +66,8 @@ platform_packages = ${core_active.platform_packages} build_flags = ${core_active.build_flags} ; ********************************************************************* -; *** Uncomment, by deleting ";" in line below, to use custom settings from file user_config_override.h -; -DUSE_CONFIG_OVERRIDE -; -; *** alternatively can be done in: platformio_override.ini -; *** See example: platformio_override_sample.ini +; *** Use custom settings from file user_config_override.h + -DUSE_CONFIG_OVERRIDE ; ********************************************************************* ; *** Fix espressif8266@1.7.0 induced undesired all warnings @@ -86,6 +85,7 @@ extra_scripts = ${scripts_defaults.extra_scripts} extra_scripts = pio/strip-floats.py pio/name-firmware.py pio/gzip-firmware.py + pio/override_copy.py [esp_defaults] build_flags = -D_IR_ENABLE_DEFAULT_=false @@ -99,7 +99,8 @@ build_flags = ${esp_defaults.build_flags} -D NDEBUG -mtarget-align -DFP_IN_IROM - + ; the following removes the 4-bytes alignment for PSTR(), waiting for a cleaner flag from Arduino Core + -DPSTR\(s\)=\(__extension__\(\{static\ const\ char\ __c\[\]\ __attribute__\(\(__aligned__\(1\)\)\)\ __attribute__\(\(section\(\ \"\\\\\".irom0.pstr.\"\ __FILE__\ \".\"\ __STRINGIZE\(__LINE__\)\ \".\"\ \ __STRINGIZE\(__COUNTER__\)\ \"\\\\\"\,\ \\\\\"aSM\\\\\"\,\ \@progbits\,\ 1\ \#\"\)\)\)\ =\ \(s\)\;\ \&__c\[0\]\;\}\)\) [irremoteesp_full] build_flags = -DUSE_IR_REMOTE_FULL @@ -113,7 +114,7 @@ build_flags = ${tasmota_core.build_flags} [tasmota_core] ; *** Esp8266 Arduino core 2.7.0 -platform = espressif8266@2.4.0 +platform = espressif8266@2.5.0 platform_packages = framework-arduinoespressif8266 @ https://github.com/tasmota/Arduino/releases/download/2.7.0/esp8266-2.7.0.zip build_flags = ${esp82xx_defaults.build_flags} -DBEARSSL_SSL_BASIC diff --git a/platformio_override_sample.ini b/platformio_override_sample.ini index afd1e6a4b..22bd8cf70 100644 --- a/platformio_override_sample.ini +++ b/platformio_override_sample.ini @@ -83,7 +83,7 @@ extra_scripts = ${scripts_defaults.extra_scripts} [tasmota_stage] ; *** Esp8266 core for Arduino version Tasmota stage -platform = espressif8266@2.4.0 +platform = espressif8266@2.5.0 platform_packages = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#36e047e908cfa6eafaaf824988070b49f2c2ff2a build_flags = ${esp82xx_defaults.build_flags} -DBEARSSL_SSL_BASIC @@ -127,7 +127,7 @@ build_flags = ${esp82xx_defaults.build_flags} [core_stage] ; *** Esp8266 core for Arduino version latest development version -platform = espressif8266@2.4.0 +platform = espressif8266@2.5.0 platform_packages = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git build_flags = ${esp82xx_defaults.build_flags} -DBEARSSL_SSL_BASIC diff --git a/platformio_tasmota_env.ini b/platformio_tasmota_env.ini index f122eae1b..dbf79d288 100644 --- a/platformio_tasmota_env.ini +++ b/platformio_tasmota_env.ini @@ -38,67 +38,67 @@ build_flags = ${common.build_flags} ${irremoteesp_full.build_flags} -DFIRMWARE_I build_flags = ${common.build_flags} ${irremoteesp_full.build_flags} [env:tasmota-BG] -build_flags = ${common.build_flags} -DMY_LANGUAGE=bg-BG +build_flags = ${common.build_flags} -DMY_LANGUAGE=bg_BG [env:tasmota-BR] -build_flags = ${common.build_flags} -DMY_LANGUAGE=pt-BR +build_flags = ${common.build_flags} -DMY_LANGUAGE=pt_BR [env:tasmota-CN] -build_flags = ${common.build_flags} -DMY_LANGUAGE=zh-CN +build_flags = ${common.build_flags} -DMY_LANGUAGE=zh_CN [env:tasmota-CZ] -build_flags = ${common.build_flags} -DMY_LANGUAGE=cs-CZ +build_flags = ${common.build_flags} -DMY_LANGUAGE=cs_CZ [env:tasmota-DE] -build_flags = ${common.build_flags} -DMY_LANGUAGE=de-DE +build_flags = ${common.build_flags} -DMY_LANGUAGE=de_DE [env:tasmota-ES] -build_flags = ${common.build_flags} -DMY_LANGUAGE=es-ES +build_flags = ${common.build_flags} -DMY_LANGUAGE=es_ES [env:tasmota-FR] -build_flags = ${common.build_flags} -DMY_LANGUAGE=fr-FR +build_flags = ${common.build_flags} -DMY_LANGUAGE=fr_FR [env:tasmota-GR] -build_flags = ${common.build_flags} -DMY_LANGUAGE=el-GR +build_flags = ${common.build_flags} -DMY_LANGUAGE=el_GR [env:tasmota-HE] -build_flags = ${common.build_flags} -DMY_LANGUAGE=he-HE +build_flags = ${common.build_flags} -DMY_LANGUAGE=he_HE [env:tasmota-HU] -build_flags = ${common.build_flags} -DMY_LANGUAGE=hu-HU +build_flags = ${common.build_flags} -DMY_LANGUAGE=hu_HU [env:tasmota-IT] -build_flags = ${common.build_flags} -DMY_LANGUAGE=it-IT +build_flags = ${common.build_flags} -DMY_LANGUAGE=it_IT [env:tasmota-KO] -build_flags = ${common.build_flags} -DMY_LANGUAGE=ko-KO +build_flags = ${common.build_flags} -DMY_LANGUAGE=ko_KO [env:tasmota-NL] -build_flags = ${common.build_flags} -DMY_LANGUAGE=nl-NL +build_flags = ${common.build_flags} -DMY_LANGUAGE=nl_NL [env:tasmota-PL] -build_flags = ${common.build_flags} -DMY_LANGUAGE=pl-PL +build_flags = ${common.build_flags} -DMY_LANGUAGE=pl_PL [env:tasmota-PT] -build_flags = ${common.build_flags} -DMY_LANGUAGE=pt-PT +build_flags = ${common.build_flags} -DMY_LANGUAGE=pt_PT [env:tasmota-RO] -build_flags = ${common.build_flags} -DMY_LANGUAGE=ro-RO +build_flags = ${common.build_flags} -DMY_LANGUAGE=ro_RO [env:tasmota-RU] -build_flags = ${common.build_flags} -DMY_LANGUAGE=ru-RU +build_flags = ${common.build_flags} -DMY_LANGUAGE=ru_RU [env:tasmota-SE] -build_flags = ${common.build_flags} -DMY_LANGUAGE=sv-SE +build_flags = ${common.build_flags} -DMY_LANGUAGE=sv_SE [env:tasmota-SK] -build_flags = ${common.build_flags} -DMY_LANGUAGE=sk-SK +build_flags = ${common.build_flags} -DMY_LANGUAGE=sk_SK [env:tasmota-TR] -build_flags = ${common.build_flags} -DMY_LANGUAGE=tr-TR +build_flags = ${common.build_flags} -DMY_LANGUAGE=tr_TR [env:tasmota-TW] -build_flags = ${common.build_flags} -DMY_LANGUAGE=zh-TW +build_flags = ${common.build_flags} -DMY_LANGUAGE=zh_TW [env:tasmota-UK] -build_flags = ${common.build_flags} -DMY_LANGUAGE=uk-UA +build_flags = ${common.build_flags} -DMY_LANGUAGE=uk_UA diff --git a/platformio_tasmota_env32.ini b/platformio_tasmota_env32.ini index 378922285..0c2e40fe3 100644 --- a/platformio_tasmota_env32.ini +++ b/platformio_tasmota_env32.ini @@ -47,88 +47,88 @@ build_flags = ${common32.build_flags} ${irremoteesp_full.build_flags [env:tasmota32-BG] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=bg-BG +build_flags = ${common32.build_flags} -DMY_LANGUAGE=bg_BG [env:tasmota32-BR] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=pt-BR +build_flags = ${common32.build_flags} -DMY_LANGUAGE=pt_BR [env:tasmota32-CN] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=zh-CN +build_flags = ${common32.build_flags} -DMY_LANGUAGE=zh_CN [env:tasmota32-CZ] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=cs-CZ +build_flags = ${common32.build_flags} -DMY_LANGUAGE=cs_CZ [env:tasmota32-DE] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=de-DE +build_flags = ${common32.build_flags} -DMY_LANGUAGE=de_DE [env:tasmota32-ES] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=es-ES +build_flags = ${common32.build_flags} -DMY_LANGUAGE=es_ES [env:tasmota32-FR] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=fr-FR +build_flags = ${common32.build_flags} -DMY_LANGUAGE=fr_FR [env:tasmota32-GR] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=el-GR +build_flags = ${common32.build_flags} -DMY_LANGUAGE=el_GR [env:tasmota32-HE] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=he-HE +build_flags = ${common32.build_flags} -DMY_LANGUAGE=he_HE [env:tasmota32-HU] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=hu-HU +build_flags = ${common32.build_flags} -DMY_LANGUAGE=hu_HU [env:tasmota32-IT] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=it-IT +build_flags = ${common32.build_flags} -DMY_LANGUAGE=it_IT [env:tasmota32-KO] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=ko-KO +build_flags = ${common32.build_flags} -DMY_LANGUAGE=ko_KO [env:tasmota32-NL] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=nl-NL +build_flags = ${common32.build_flags} -DMY_LANGUAGE=nl_NL [env:tasmota32-PL] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=pl-PL +build_flags = ${common32.build_flags} -DMY_LANGUAGE=pl_PL [env:tasmota32-PT] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=pt-PT +build_flags = ${common32.build_flags} -DMY_LANGUAGE=pt_PT [env:tasmota32-RO] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=ro-RO +build_flags = ${common32.build_flags} -DMY_LANGUAGE=ro_RO [env:tasmota32-RU] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=ru-RU +build_flags = ${common32.build_flags} -DMY_LANGUAGE=ru_RU [env:tasmota32-SE] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=sv-SE +build_flags = ${common32.build_flags} -DMY_LANGUAGE=sv_SE [env:tasmota32-SK] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=sk-SK +build_flags = ${common32.build_flags} -DMY_LANGUAGE=sk_SK [env:tasmota32-TR] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=tr-TR +build_flags = ${common32.build_flags} -DMY_LANGUAGE=tr_TR [env:tasmota32-TW] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=zh-TW +build_flags = ${common32.build_flags} -DMY_LANGUAGE=zh_TW [env:tasmota32-UK] extends = env:tasmota32 -build_flags = ${common32.build_flags} -DMY_LANGUAGE=uk-UA +build_flags = ${common32.build_flags} -DMY_LANGUAGE=uk_UA diff --git a/tasmota/i18n.h b/tasmota/i18n.h index 9989238fa..ab064f630 100644 --- a/tasmota/i18n.h +++ b/tasmota/i18n.h @@ -617,7 +617,7 @@ #define D_ASTERISK_PWD "****" #ifndef MY_LANGUAGE - #include "language/en-GB.h" + #include "language/en_GB.h" #else #define QUOTEME(x) QUOTEME_1(x) #define QUOTEME_1(x) #x @@ -625,7 +625,7 @@ #include INCLUDE_FILE(MY_LANGUAGE) #endif #ifndef LANGUAGE_LCID - #define LANGUAGE_LCID 2057 // en-GB + #define LANGUAGE_LCID 2057 // en_GB #endif // Common diff --git a/tasmota/language/bg-BG.h b/tasmota/language/bg_BG.h similarity index 97% rename from tasmota/language/bg-BG.h rename to tasmota/language/bg_BG.h index ec4fea1ae..4919563f9 100644 --- a/tasmota/language/bg-BG.h +++ b/tasmota/language/bg_BG.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/cs-CZ.h b/tasmota/language/cs_CZ.h similarity index 97% rename from tasmota/language/cs-CZ.h rename to tasmota/language/cs_CZ.h index e6c0221c4..8f2005276 100644 --- a/tasmota/language/cs-CZ.h +++ b/tasmota/language/cs_CZ.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/de-DE.h b/tasmota/language/de_DE.h similarity index 97% rename from tasmota/language/de-DE.h rename to tasmota/language/de_DE.h index 7c4d9459f..dbe0797fe 100644 --- a/tasmota/language/de-DE.h +++ b/tasmota/language/de_DE.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/el-GR.h b/tasmota/language/el_GR.h similarity index 97% rename from tasmota/language/el-GR.h rename to tasmota/language/el_GR.h index 586cc623d..e4d6508e5 100644 --- a/tasmota/language/el-GR.h +++ b/tasmota/language/el_GR.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/en-GB.h b/tasmota/language/en_GB.h similarity index 96% rename from tasmota/language/en-GB.h rename to tasmota/language/en_GB.h index 84134483d..c76446a09 100644 --- a/tasmota/language/en-GB.h +++ b/tasmota/language/en_GB.h @@ -652,9 +652,9 @@ #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" #define D_SENSOR_EXS_ENABLE "EXS Enable" -#define D_SENSOR_SLAVE_TX "Slave TX" -#define D_SENSOR_SLAVE_RX "Slave RX" -#define D_SENSOR_SLAVE_RESET "Slave RST" +#define D_SENSOR_SLAVE_TX "Slave TX" +#define D_SENSOR_SLAVE_RX "Slave RX" +#define D_SENSOR_SLAVE_RESET "Slave RST" #define D_SENSOR_GPS_RX "GPS RX" #define D_SENSOR_GPS_TX "GPS TX" #define D_SENSOR_HM10_RX "HM10 RX" @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/es-ES.h b/tasmota/language/es_ES.h similarity index 97% rename from tasmota/language/es-ES.h rename to tasmota/language/es_ES.h index 1edcf1a9c..512f360cd 100644 --- a/tasmota/language/es-ES.h +++ b/tasmota/language/es_ES.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/fr-FR.h b/tasmota/language/fr_FR.h similarity index 97% rename from tasmota/language/fr-FR.h rename to tasmota/language/fr_FR.h index bb1374ffd..ea36e45af 100644 --- a/tasmota/language/fr-FR.h +++ b/tasmota/language/fr_FR.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/he-HE.h b/tasmota/language/he_HE.h similarity index 97% rename from tasmota/language/he-HE.h rename to tasmota/language/he_HE.h index f98f18108..e66b1ca3d 100644 --- a/tasmota/language/he-HE.h +++ b/tasmota/language/he_HE.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/hu-HU.h b/tasmota/language/hu_HU.h similarity index 97% rename from tasmota/language/hu-HU.h rename to tasmota/language/hu_HU.h index d83e44fb2..4e6398c6d 100644 --- a/tasmota/language/hu-HU.h +++ b/tasmota/language/hu_HU.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/it-IT.h b/tasmota/language/it_IT.h similarity index 94% rename from tasmota/language/it-IT.h rename to tasmota/language/it_IT.h index 3c2aae8c0..151d0f1bb 100644 --- a/tasmota/language/it-IT.h +++ b/tasmota/language/it_IT.h @@ -62,7 +62,7 @@ #define D_BRIGHTLIGHT "Luminoso" #define D_BSSID "BSSId" #define D_BUTTON "Pulsante" -#define D_BY "da" // Written by me +#define D_BY "di" // Written by me #define D_BYTES "Byte" #define D_CELSIUS "Celsius" #define D_CHANNEL "Canale" @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 - GDO2" #define D_SENSOR_HRXL_RX "HRXL - RX" #define D_SENSOR_ELECTRIQ_MOODL "MOODL - TX" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" @@ -773,26 +764,26 @@ #define D_SCRIPT_UPLOAD_FILES "Upload file" //xsns_67_as3935.ino -#define D_AS3935_GAIN "gain:" -#define D_AS3935_ENERGY "energy:" -#define D_AS3935_DISTANCE "distance:" -#define D_AS3935_DISTURBER "disturber:" +#define D_AS3935_GAIN "guadagno:" +#define D_AS3935_ENERGY "energia:" +#define D_AS3935_DISTANCE "distanza:" +#define D_AS3935_DISTURBER "disturbatore:" #define D_AS3935_VRMS "µVrms:" -#define D_AS3935_APRX "aprx.:" -#define D_AS3935_AWAY "away" -#define D_AS3935_LIGHT "lightning" -#define D_AS3935_OUT "lightning out of range" -#define D_AS3935_NOT "distance not determined" -#define D_AS3935_ABOVE "lightning overhead" -#define D_AS3935_NOISE "noise detected" -#define D_AS3935_DISTDET "disturber detected" -#define D_AS3935_INTNOEV "Interrupt with no Event!" -#define D_AS3935_NOMESS "listening..." -#define D_AS3935_ON "On" -#define D_AS3935_OFF "Off" -#define D_AS3935_INDOORS "Indoors" -#define D_AS3935_OUTDOORS "Outdoors" -#define D_AS3935_CAL_FAIL "calibration failed" -#define D_AS3935_CAL_OK "calibration set to:" +#define D_AS3935_APRX "apross.:" +#define D_AS3935_AWAY "lontano" +#define D_AS3935_LIGHT "illuminazione" +#define D_AS3935_OUT "illuminazione fuori intervallo" +#define D_AS3935_NOT "distanza non determinata" +#define D_AS3935_ABOVE "illuminazione ambientale" +#define D_AS3935_NOISE "rilevato rumore" +#define D_AS3935_DISTDET "rilevato disturbatore" +#define D_AS3935_INTNOEV "Interrupt senza evento!" +#define D_AS3935_NOMESS "in ascolto..." +#define D_AS3935_ON "ON" +#define D_AS3935_OFF "OFF" +#define D_AS3935_INDOORS "Interno" +#define D_AS3935_OUTDOORS "Esterno" +#define D_AS3935_CAL_FAIL "calibrazione fallita" +#define D_AS3935_CAL_OK "calibrazione impostata a:" #endif // _LANGUAGE_IT_IT_H_ diff --git a/tasmota/language/ko-KO.h b/tasmota/language/ko_KO.h similarity index 97% rename from tasmota/language/ko-KO.h rename to tasmota/language/ko_KO.h index 812809f82..90d7d06ee 100644 --- a/tasmota/language/ko-KO.h +++ b/tasmota/language/ko_KO.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/nl-NL.h b/tasmota/language/nl_NL.h similarity index 97% rename from tasmota/language/nl-NL.h rename to tasmota/language/nl_NL.h index 04664f8f9..0e3f20e36 100644 --- a/tasmota/language/nl-NL.h +++ b/tasmota/language/nl_NL.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/pl-PL.h b/tasmota/language/pl_PL.h similarity index 97% rename from tasmota/language/pl-PL.h rename to tasmota/language/pl_PL.h index 5fe5211fd..5af9128a7 100644 --- a/tasmota/language/pl-PL.h +++ b/tasmota/language/pl_PL.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/pt-BR.h b/tasmota/language/pt_BR.h similarity index 97% rename from tasmota/language/pt-BR.h rename to tasmota/language/pt_BR.h index 99afd9d10..cb10bd035 100644 --- a/tasmota/language/pt-BR.h +++ b/tasmota/language/pt_BR.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/pt-PT.h b/tasmota/language/pt_PT.h similarity index 97% rename from tasmota/language/pt-PT.h rename to tasmota/language/pt_PT.h index 7c7207523..9545d0d1e 100644 --- a/tasmota/language/pt-PT.h +++ b/tasmota/language/pt_PT.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/ro-RO.h b/tasmota/language/ro_RO.h similarity index 97% rename from tasmota/language/ro-RO.h rename to tasmota/language/ro_RO.h index 155fbcd71..0c14cceae 100644 --- a/tasmota/language/ro-RO.h +++ b/tasmota/language/ro_RO.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/ru-RU.h b/tasmota/language/ru_RU.h similarity index 97% rename from tasmota/language/ru-RU.h rename to tasmota/language/ru_RU.h index 8c3a71667..fe698888d 100644 --- a/tasmota/language/ru-RU.h +++ b/tasmota/language/ru_RU.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "А" diff --git a/tasmota/language/sk-SK.h b/tasmota/language/sk_SK.h similarity index 97% rename from tasmota/language/sk-SK.h rename to tasmota/language/sk_SK.h index 174ceae2c..9e915b1b4 100644 --- a/tasmota/language/sk-SK.h +++ b/tasmota/language/sk_SK.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/sv-SE.h b/tasmota/language/sv_SE.h similarity index 97% rename from tasmota/language/sv-SE.h rename to tasmota/language/sv_SE.h index c655bc524..02a965e5a 100644 --- a/tasmota/language/sv-SE.h +++ b/tasmota/language/sv_SE.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/tr-TR.h b/tasmota/language/tr_TR.h similarity index 97% rename from tasmota/language/tr-TR.h rename to tasmota/language/tr_TR.h index 477342e7b..675b67a05 100644 --- a/tasmota/language/tr-TR.h +++ b/tasmota/language/tr_TR.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/uk-UA.h b/tasmota/language/uk_UA.h similarity index 97% rename from tasmota/language/uk-UA.h rename to tasmota/language/uk_UA.h index 9708db534..334eb4b1d 100644 --- a/tasmota/language/uk-UA.h +++ b/tasmota/language/uk_UA.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "А" diff --git a/tasmota/language/zh-CN.h b/tasmota/language/zh_CN.h similarity index 97% rename from tasmota/language/zh-CN.h rename to tasmota/language/zh_CN.h index d821ce292..3fb418a27 100644 --- a/tasmota/language/zh-CN.h +++ b/tasmota/language/zh_CN.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "安" diff --git a/tasmota/language/zh-TW.h b/tasmota/language/zh_TW.h similarity index 97% rename from tasmota/language/zh-TW.h rename to tasmota/language/zh_TW.h index 273b51279..555e93283 100644 --- a/tasmota/language/zh-TW.h +++ b/tasmota/language/zh_TW.h @@ -665,29 +665,20 @@ #define D_SENSOR_CC1101_GDO2 "CC1101 GDO2" #define D_SENSOR_HRXL_RX "HRXL Rx" #define D_SENSOR_ELECTRIQ_MOODL "MOODL Tx" -#define D_SENSOR_AS3935 "AS3935" -#define D_SENSOR_WINDMETER_SPEED "WindMeter Speed" -#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" -#define D_GPIO_WEBCAM_RESET "CAM_RESET" -#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" -#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" -#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" -#define D_GPIO_WEBCAM_Y9 "CAM_Y9" -#define D_GPIO_WEBCAM_Y8 "CAM_Y8" -#define D_GPIO_WEBCAM_Y7 "CAM_Y7" -#define D_GPIO_WEBCAM_Y6 "CAM_Y6" -#define D_GPIO_WEBCAM_Y5 "CAM_Y5" -#define D_GPIO_WEBCAM_Y4 "CAM_Y4" -#define D_GPIO_WEBCAM_Y3 "CAM_Y3" -#define D_GPIO_WEBCAM_Y2 "CAM_Y2" -#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" -#define D_GPIO_WEBCAM_HREF "CAM_HREF" -#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" -#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" -#define D_GPIO_WEBCAM_HSD1 "CAM_HSD1" -#define D_GPIO_WEBCAM_HSD2 "CAM_HSD2" -#define D_GPIO_WEBCAM_HSD3 "CAM_HSD3" -#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" +#define D_SENSOR_AS3935 "AS3935" +#define D_SENSOR_WINDMETER_SPEED "WindMeter Spd" +#define D_GPIO_WEBCAM_PWDN "CAM_PWDN" +#define D_GPIO_WEBCAM_RESET "CAM_RESET" +#define D_GPIO_WEBCAM_XCLK "CAM_XCLK" +#define D_GPIO_WEBCAM_SIOD "CAM_SIOD" +#define D_GPIO_WEBCAM_SIOC "CAM_SIOC" +#define D_GPIO_WEBCAM_DATA "CAM_DATA" +#define D_GPIO_WEBCAM_VSYNC "CAM_VSYNC" +#define D_GPIO_WEBCAM_HREF "CAM_HREF" +#define D_GPIO_WEBCAM_PCLK "CAM_PCLK" +#define D_GPIO_WEBCAM_PSCLK "CAM_PSCLK" +#define D_GPIO_WEBCAM_HSD "CAM_HSD" +#define D_GPIO_WEBCAM_PSRCS "CAM_PSRCS" // Units #define D_UNIT_AMPERE "安" diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index 37446b22e..42b9fb6a2 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -313,29 +313,29 @@ // -- Localization -------------------------------- // If non selected the default en-GB will be used -//#define MY_LANGUAGE bg-BG // Bulgarian in Bulgaria -//#define MY_LANGUAGE cs-CZ // Czech in Czech -//#define MY_LANGUAGE de-DE // German in Germany -//#define MY_LANGUAGE el-GR // Greek in Greece -//#define MY_LANGUAGE en-GB // English in Great Britain. Enabled by Default -//#define MY_LANGUAGE es-ES // Spanish in Spain -//#define MY_LANGUAGE fr-FR // French in France -//#define MY_LANGUAGE he-HE // Hebrew in Israel -//#define MY_LANGUAGE hu-HU // Hungarian in Hungary -//#define MY_LANGUAGE it-IT // Italian in Italy -//#define MY_LANGUAGE ko-KO // Korean in Korea -//#define MY_LANGUAGE nl-NL // Dutch in the Netherlands -//#define MY_LANGUAGE pl-PL // Polish in Poland -//#define MY_LANGUAGE pt-BR // Portuguese in Brazil -//#define MY_LANGUAGE pt-PT // Portuguese in Portugal -//#define MY_LANGUAGE ro-RO // Romanian in Romania -//#define MY_LANGUAGE ru-RU // Russian in Russia -//#define MY_LANGUAGE sk-SK // Slovak in Slovakia -//#define MY_LANGUAGE sv-SE // Swedish in Sweden -//#define MY_LANGUAGE tr-TR // Turkish in Turkey -//#define MY_LANGUAGE uk-UA // Ukrainian in Ukraine -//#define MY_LANGUAGE zh-CN // Chinese (Simplified) in China -//#define MY_LANGUAGE zh-TW // Chinese (Traditional) in Taiwan +//#define MY_LANGUAGE bg_BG // Bulgarian in Bulgaria +//#define MY_LANGUAGE cs_CZ // Czech in Czech +//#define MY_LANGUAGE de_DE // German in Germany +//#define MY_LANGUAGE el_GR // Greek in Greece +//#define MY_LANGUAGE en_GB // English in Great Britain. Enabled by Default +//#define MY_LANGUAGE es_ES // Spanish in Spain +//#define MY_LANGUAGE fr_FR // French in France +//#define MY_LANGUAGE he_HE // Hebrew in Israel +//#define MY_LANGUAGE hu_HU // Hungarian in Hungary +//#define MY_LANGUAGE it_IT // Italian in Italy +//#define MY_LANGUAGE ko_KO // Korean in Korea +//#define MY_LANGUAGE nl_NL // Dutch in the Netherlands +//#define MY_LANGUAGE pl_PL // Polish in Poland +//#define MY_LANGUAGE pt_BR // Portuguese in Brazil +//#define MY_LANGUAGE pt_PT // Portuguese in Portugal +//#define MY_LANGUAGE ro_RO // Romanian in Romania +//#define MY_LANGUAGE ru_RU // Russian in Russia +//#define MY_LANGUAGE sk_SK // Slovak in Slovakia +//#define MY_LANGUAGE sv_SE // Swedish in Sweden +//#define MY_LANGUAGE tr_TR // Turkish in Turkey +//#define MY_LANGUAGE uk_UA // Ukrainian in Ukraine +//#define MY_LANGUAGE zh_CN // Chinese (Simplified) in China +//#define MY_LANGUAGE zh_TW // Chinese (Traditional) in Taiwan // -- Wifi Config tools --------------------------- #define WIFI_SOFT_AP_CHANNEL 1 // Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI diff --git a/tasmota/settings.h b/tasmota/settings.h index c36267de2..273bb4c35 100644 --- a/tasmota/settings.h +++ b/tasmota/settings.h @@ -481,6 +481,9 @@ struct { uint8_t shutter_position[MAX_SHUTTERS]; // E80 uint8_t shutter_startrelay[MAX_SHUTTERS]; // E84 uint8_t pcf8574_config[MAX_PCF8574]; // E88 + + uint8_t free_e8c[4]; // E8C + uint16_t dimmer_hw_min; // E90 uint16_t dimmer_hw_max; // E92 uint32_t deepsleep; // E94 diff --git a/tasmota/settings.ino b/tasmota/settings.ino index 911c69c2d..83527ea6f 100644 --- a/tasmota/settings.ino +++ b/tasmota/settings.ino @@ -715,6 +715,12 @@ void SettingsDefaultSet2(void) { memset((char*)&Settings +16, 0x00, sizeof(Settings) -16); + // this little trick allows GCC to optimize the assignment by grouping values and doing only ORs + SysBitfield flag = { 0 }; + SysBitfield2 flag2 = { 0 }; + SysBitfield3 flag3 = { 0 }; + SysBitfield4 flag4 = { 0 }; + #ifdef ESP8266 // Settings.config_version = 0; // ESP8266 (Has been 0 for long time) #endif // ESP8266 @@ -722,13 +728,13 @@ void SettingsDefaultSet2(void) Settings.config_version = 1; // ESP32 #endif // ESP32 - Settings.flag.stop_flash_rotate = APP_FLASH_CYCLE; - Settings.flag.global_state = APP_ENABLE_LEDLINK; - Settings.flag3.sleep_normal = APP_NORMAL_SLEEP; - Settings.flag3.no_power_feedback = APP_NO_RELAY_SCAN; - Settings.flag3.fast_power_cycle_disable = APP_DISABLE_POWERCYCLE; - Settings.flag3.bootcount_update = DEEPSLEEP_BOOTCOUNT; - Settings.flag3.compatibility_check = OTA_COMPATIBILITY; + flag.stop_flash_rotate |= APP_FLASH_CYCLE; + flag.global_state |= APP_ENABLE_LEDLINK; + flag3.sleep_normal |= APP_NORMAL_SLEEP; + flag3.no_power_feedback |= APP_NO_RELAY_SCAN; + flag3.fast_power_cycle_disable |= APP_DISABLE_POWERCYCLE; + flag3.bootcount_update |= DEEPSLEEP_BOOTCOUNT; + flag3.compatibility_check |= OTA_COMPATIBILITY; Settings.save_data = SAVE_DATA; Settings.param[P_BACKLOG_DELAY] = MIN_BACKLOG_DELAY; Settings.param[P_BOOT_LOOP_OFFSET] = BOOT_LOOP_OFFSET; // SetOption36 @@ -739,7 +745,7 @@ void SettingsDefaultSet2(void) } // Module -// Settings.flag.interlock = 0; +// flag.interlock |= 0; Settings.interlock[0] = 0xFF; // Legacy support using all relays in one interlock group Settings.module = MODULE; ModuleDefault(WEMOS); @@ -751,7 +757,7 @@ void SettingsDefaultSet2(void) SettingsUpdateText(SET_OTAURL, PSTR(OTA_URL)); // Power - Settings.flag.save_state = SAVE_STATE; + flag.save_state |= SAVE_STATE; Settings.power = APP_POWER; Settings.poweronstate = APP_POWERON_STATE; Settings.blinktime = APP_BLINKTIME; @@ -769,8 +775,8 @@ void SettingsDefaultSet2(void) Settings.seriallog_level = SERIAL_LOG_LEVEL; // Wifi - Settings.flag3.use_wifi_scan = WIFI_SCAN_AT_RESTART; - Settings.flag3.use_wifi_rescan = WIFI_SCAN_REGULARLY; + flag3.use_wifi_scan |= WIFI_SCAN_AT_RESTART; + flag3.use_wifi_rescan |= WIFI_SCAN_REGULARLY; Settings.wifi_output_power = 170; Settings.param[P_ARP_GRATUITOUS] = WIFI_ARP_INTERVAL; ParseIp(&Settings.ip_address[0], WIFI_IP_ADDRESS); @@ -791,38 +797,38 @@ void SettingsDefaultSet2(void) Settings.syslog_level = SYS_LOG_LEVEL; // Webserver - Settings.flag2.emulation = EMULATION; - Settings.flag3.gui_hostname_ip = GUI_SHOW_HOSTNAME; - Settings.flag3.mdns_enabled = MDNS_ENABLED; + flag2.emulation |= EMULATION; + flag3.gui_hostname_ip |= GUI_SHOW_HOSTNAME; + flag3.mdns_enabled |= MDNS_ENABLED; Settings.webserver = WEB_SERVER; Settings.weblog_level = WEB_LOG_LEVEL; SettingsUpdateText(SET_WEBPWD, PSTR(WEB_PASSWORD)); SettingsUpdateText(SET_CORS, PSTR(CORS_DOMAIN)); // Button - Settings.flag.button_restrict = KEY_DISABLE_MULTIPRESS; - Settings.flag.button_swap = KEY_SWAP_DOUBLE_PRESS; - Settings.flag.button_single = KEY_ONLY_SINGLE_PRESS; + flag.button_restrict |= KEY_DISABLE_MULTIPRESS; + flag.button_swap |= KEY_SWAP_DOUBLE_PRESS; + flag.button_single |= KEY_ONLY_SINGLE_PRESS; Settings.param[P_HOLD_TIME] = KEY_HOLD_TIME; // Default 4 seconds hold time // Switch for (uint32_t i = 0; i < MAX_SWITCHES; i++) { Settings.switchmode[i] = SWITCH_MODE; } // MQTT - Settings.flag.mqtt_enabled = MQTT_USE; - Settings.flag.mqtt_response = MQTT_RESULT_COMMAND; - Settings.flag.mqtt_offline = MQTT_LWT_MESSAGE; - Settings.flag.mqtt_power_retain = MQTT_POWER_RETAIN; - Settings.flag.mqtt_button_retain = MQTT_BUTTON_RETAIN; - Settings.flag.mqtt_switch_retain = MQTT_SWITCH_RETAIN; - Settings.flag.mqtt_sensor_retain = MQTT_SENSOR_RETAIN; -// Settings.flag.mqtt_serial = 0; - Settings.flag.device_index_enable = MQTT_POWER_FORMAT; - Settings.flag3.time_append_timezone = MQTT_APPEND_TIMEZONE; - Settings.flag3.button_switch_force_local = MQTT_BUTTON_SWITCH_FORCE_LOCAL; - Settings.flag3.no_hold_retain = MQTT_NO_HOLD_RETAIN; - Settings.flag3.use_underscore = MQTT_INDEX_SEPARATOR; - Settings.flag3.grouptopic_mode = MQTT_GROUPTOPIC_FORMAT; + flag.mqtt_enabled |= MQTT_USE; + flag.mqtt_response |= MQTT_RESULT_COMMAND; + flag.mqtt_offline |= MQTT_LWT_MESSAGE; + flag.mqtt_power_retain |= MQTT_POWER_RETAIN; + flag.mqtt_button_retain |= MQTT_BUTTON_RETAIN; + flag.mqtt_switch_retain |= MQTT_SWITCH_RETAIN; + flag.mqtt_sensor_retain |= MQTT_SENSOR_RETAIN; +// flag.mqtt_serial |= 0; + flag.device_index_enable |= MQTT_POWER_FORMAT; + flag3.time_append_timezone |= MQTT_APPEND_TIMEZONE; + flag3.button_switch_force_local |= MQTT_BUTTON_SWITCH_FORCE_LOCAL; + flag3.no_hold_retain |= MQTT_NO_HOLD_RETAIN; + flag3.use_underscore |= MQTT_INDEX_SEPARATOR; + flag3.grouptopic_mode |= MQTT_GROUPTOPIC_FORMAT; SettingsUpdateText(SET_MQTT_HOST, MQTT_HOST); Settings.mqtt_port = MQTT_PORT; SettingsUpdateText(SET_MQTT_CLIENT, MQTT_CLIENT_ID); @@ -856,13 +862,13 @@ void SettingsDefaultSet2(void) Settings.mqttlog_level = MQTT_LOG_LEVEL; // Energy - Settings.flag.no_power_on_check = ENERGY_VOLTAGE_ALWAYS; - Settings.flag2.current_resolution = 3; -// Settings.flag2.voltage_resolution = 0; -// Settings.flag2.wattage_resolution = 0; - Settings.flag2.energy_resolution = ENERGY_RESOLUTION; - Settings.flag3.dds2382_model = ENERGY_DDS2382_MODE; - Settings.flag3.hardware_energy_total = ENERGY_HARDWARE_TOTALS; + flag.no_power_on_check |= ENERGY_VOLTAGE_ALWAYS; + flag2.current_resolution |= 3; +// flag2.voltage_resolution |= 0; +// flag2.wattage_resolution |= 0; + flag2.energy_resolution |= ENERGY_RESOLUTION; + flag3.dds2382_model |= ENERGY_DDS2382_MODE; + flag3.hardware_energy_total |= ENERGY_HARDWARE_TOTALS; Settings.param[P_MAX_POWER_RETRY] = MAX_POWER_RETRY; // Settings.energy_power_delta = 0; Settings.energy_power_calibration = HLW_PREF_PULSE; @@ -892,12 +898,12 @@ void SettingsDefaultSet2(void) Settings.param[P_OVER_TEMP] = ENERGY_OVERTEMP; // IRRemote - Settings.flag.ir_receive_decimal = IR_DATA_RADIX; - Settings.flag3.receive_raw = IR_ADD_RAW_DATA; + flag.ir_receive_decimal |= IR_DATA_RADIX; + flag3.receive_raw |= IR_ADD_RAW_DATA; Settings.param[P_IR_UNKNOW_THRESHOLD] = IR_RCV_MIN_UNKNOWN_SIZE; // RF Bridge - Settings.flag.rf_receive_decimal = RF_DATA_RADIX; + flag.rf_receive_decimal |= RF_DATA_RADIX; // for (uint32_t i = 0; i < 17; i++) { Settings.rf_code[i][0] = 0; } memcpy_P(Settings.rf_code[0], kDefaultRfCode, 9); @@ -913,43 +919,43 @@ void SettingsDefaultSet2(void) // } // Sensor - Settings.flag.temperature_conversion = TEMP_CONVERSION; - Settings.flag.pressure_conversion = PRESSURE_CONVERSION; - Settings.flag2.pressure_resolution = PRESSURE_RESOLUTION; - Settings.flag2.humidity_resolution = HUMIDITY_RESOLUTION; - Settings.flag2.temperature_resolution = TEMP_RESOLUTION; - Settings.flag3.ds18x20_internal_pullup = DS18X20_PULL_UP; - Settings.flag3.counter_reset_on_tele = COUNTER_RESET; + flag.temperature_conversion |= TEMP_CONVERSION; + flag.pressure_conversion |= PRESSURE_CONVERSION; + flag2.pressure_resolution |= PRESSURE_RESOLUTION; + flag2.humidity_resolution |= HUMIDITY_RESOLUTION; + flag2.temperature_resolution |= TEMP_RESOLUTION; + flag3.ds18x20_internal_pullup |= DS18X20_PULL_UP; + flag3.counter_reset_on_tele |= COUNTER_RESET; // Settings.altitude = 0; // Rules // Settings.rule_enabled = 0; // Settings.rule_once = 0; // for (uint32_t i = 1; i < MAX_RULE_SETS; i++) { Settings.rules[i][0] = '\0'; } - Settings.flag2.calc_resolution = CALC_RESOLUTION; + flag2.calc_resolution |= CALC_RESOLUTION; // Timer - Settings.flag3.timers_enable = TIMERS_ENABLED; + flag3.timers_enable |= TIMERS_ENABLED; // Home Assistant - Settings.flag.hass_light = HASS_AS_LIGHT; - Settings.flag.hass_discovery = HOME_ASSISTANT_DISCOVERY_ENABLE; - Settings.flag3.hass_tele_on_power = TELE_ON_POWER; + flag.hass_light |= HASS_AS_LIGHT; + flag.hass_discovery |= HOME_ASSISTANT_DISCOVERY_ENABLE; + flag3.hass_tele_on_power |= TELE_ON_POWER; // Knx - Settings.flag.knx_enabled = KNX_ENABLED; - Settings.flag.knx_enable_enhancement = KNX_ENHANCED; + flag.knx_enabled |= KNX_ENABLED; + flag.knx_enable_enhancement |= KNX_ENHANCED; // Light - Settings.flag.pwm_control = LIGHT_MODE; - Settings.flag.ws_clock_reverse = LIGHT_CLOCK_DIRECTION; - Settings.flag.light_signal = LIGHT_PAIRS_CO2; - Settings.flag.not_power_linked = LIGHT_POWER_CONTROL; - Settings.flag.decimal_text = LIGHT_COLOR_RADIX; - Settings.flag3.pwm_multi_channels = LIGHT_CHANNEL_MODE; - Settings.flag3.slider_dimmer_stay_on = LIGHT_SLIDER_POWER; - Settings.flag4.alexa_ct_range = LIGHT_ALEXA_CT_RANGE; - Settings.flag4.pwm_ct_mode = LIGHT_PWM_CT_MODE; + flag.pwm_control |= LIGHT_MODE; + flag.ws_clock_reverse |= LIGHT_CLOCK_DIRECTION; + flag.light_signal |= LIGHT_PAIRS_CO2; + flag.not_power_linked |= LIGHT_POWER_CONTROL; + flag.decimal_text |= LIGHT_COLOR_RADIX; + flag3.pwm_multi_channels |= LIGHT_CHANNEL_MODE; + flag3.slider_dimmer_stay_on |= LIGHT_SLIDER_POWER; + flag4.alexa_ct_range |= LIGHT_ALEXA_CT_RANGE; + flag4.pwm_ct_mode |= LIGHT_PWM_CT_MODE; Settings.pwm_frequency = PWM_FREQ; Settings.pwm_range = PWM_RANGE; @@ -1036,13 +1042,18 @@ void SettingsDefaultSet2(void) SettingsEnableAllI2cDrivers(); // Tuya - Settings.flag3.tuya_apply_o20 = TUYA_SETOPTION_20; - Settings.flag3.tuya_serial_mqtt_publish = MQTT_TUYA_RECEIVED; + flag3.tuya_apply_o20 |= TUYA_SETOPTION_20; + flag3.tuya_serial_mqtt_publish |= MQTT_TUYA_RECEIVED; - Settings.flag3.buzzer_enable = BUZZER_ENABLE; - Settings.flag3.shutter_mode = SHUTTER_SUPPORT; - Settings.flag3.pcf8574_ports_inverted = PCF8574_INVERT_PORTS; - Settings.flag4.zigbee_use_names = ZIGBEE_FRIENDLY_NAMES; + flag3.buzzer_enable |= BUZZER_ENABLE; + flag3.shutter_mode |= SHUTTER_SUPPORT; + flag3.pcf8574_ports_inverted |= PCF8574_INVERT_PORTS; + flag4.zigbee_use_names |= ZIGBEE_FRIENDLY_NAMES; + + Settings.flag = flag; + Settings.flag2 = flag2; + Settings.flag3 = flag3; + Settings.flag4 = flag4; } /********************************************************************************************/ diff --git a/tasmota/support_command.ino b/tasmota/support_command.ino index 269fcfe3c..d4b4337c9 100644 --- a/tasmota/support_command.ino +++ b/tasmota/support_command.ino @@ -87,10 +87,7 @@ void ResponseCmndIdxNumber(int value) void ResponseCmndChar_P(const char* value) { - size_t buf_size = strlen_P(value); - char buf[buf_size + 1]; - strcpy_P(buf, value); - Response_P(S_JSON_COMMAND_SVALUE, XdrvMailbox.command, buf); + Response_P(S_JSON_COMMAND_SVALUE, XdrvMailbox.command, value); } void ResponseCmndChar(const char* value) diff --git a/tasmota/tasmota.h b/tasmota/tasmota.h index a1a3cb473..fe4e41b01 100644 --- a/tasmota/tasmota.h +++ b/tasmota/tasmota.h @@ -68,7 +68,7 @@ const uint8_t MAX_XDRV_DRIVERS = 96; // Max number of allowed driver driv const uint8_t MAX_XSNS_DRIVERS = 96; // Max number of allowed sensor drivers const uint8_t MAX_I2C_DRIVERS = 96; // Max number of allowed i2c drivers const uint8_t MAX_SHUTTERS = 4; // Max number of shutters -const uint8_t MAX_PCF8574 = 8; // Max number of PCF8574 devices +const uint8_t MAX_PCF8574 = 4; // Max number of PCF8574 devices const uint8_t MAX_RULE_SETS = 3; // Max number of rule sets of size 512 characters const uint16_t MAX_RULE_SIZE = 512; // Max number of characters in rules diff --git a/tasmota/tasmota_template_ESP32.h b/tasmota/tasmota_template_ESP32.h index e743e59e6..4aaa39ae3 100644 --- a/tasmota/tasmota_template_ESP32.h +++ b/tasmota/tasmota_template_ESP32.h @@ -118,11 +118,13 @@ enum UserSelectablePins { ADC0_BUTTON, ADC0_BUTTON_INV, // Analog Button ADC0_RANGE, // Analog Range ADC0_CT_POWER, // ANalog Current - GPIO_WEBCAM_PWDN, GPIO_WEBCAM_RESET, GPIO_WEBCAM_XCLK, GPIO_WEBCAM_SIOD, GPIO_WEBCAM_SIOC, // Webcam - GPIO_WEBCAM_Y9, GPIO_WEBCAM_Y8, GPIO_WEBCAM_Y7, GPIO_WEBCAM_Y6, - GPIO_WEBCAM_Y5, GPIO_WEBCAM_Y4, GPIO_WEBCAM_Y3, GPIO_WEBCAM_Y2, - GPIO_WEBCAM_VSYNC, GPIO_WEBCAM_HREF, GPIO_WEBCAM_PCLK, GPIO_WEBCAM_PSCLK, - GPIO_WEBCAM_HSD1, GPIO_WEBCAM_HSD2, GPIO_WEBCAM_HSD3, GPIO_WEBCAM_PSRCS, + GPIO_WEBCAM_PWDN, GPIO_WEBCAM_RESET, GPIO_WEBCAM_XCLK, // Webcam + GPIO_WEBCAM_SIOD, GPIO_WEBCAM_SIOC, // Webcam I2C + GPIO_WEBCAM_DATA, + GPIO_WEBCAM_VSYNC, GPIO_WEBCAM_HREF, GPIO_WEBCAM_PCLK, + GPIO_WEBCAM_PSCLK, + GPIO_WEBCAM_HSD, + GPIO_WEBCAM_PSRCS, GPIO_SENSOR_END }; enum ProgramSelectablePins { @@ -203,16 +205,21 @@ const char kSensorNames[] PROGMEM = D_SENSOR_BUTTON "|" D_SENSOR_BUTTON "i|" D_RANGE "|" D_CT_POWER "|" - D_GPIO_WEBCAM_PWDN "|" D_GPIO_WEBCAM_RESET "|" D_GPIO_WEBCAM_XCLK "|" D_GPIO_WEBCAM_SIOD "|" D_GPIO_WEBCAM_SIOC "|" - D_GPIO_WEBCAM_Y9 "|" D_GPIO_WEBCAM_Y8 "|" D_GPIO_WEBCAM_Y7 "|" D_GPIO_WEBCAM_Y6 "|" - D_GPIO_WEBCAM_Y5 "|" D_GPIO_WEBCAM_Y4 "|" D_GPIO_WEBCAM_Y3 "|" D_GPIO_WEBCAM_Y2 "|" - D_GPIO_WEBCAM_VSYNC "|" D_GPIO_WEBCAM_HREF "|" D_GPIO_WEBCAM_PCLK "|" D_GPIO_WEBCAM_PSCLK "|" - D_GPIO_WEBCAM_HSD1 "|" D_GPIO_WEBCAM_HSD2 "|" D_GPIO_WEBCAM_HSD3 "|" D_GPIO_WEBCAM_PSRCS + D_GPIO_WEBCAM_PWDN "|" D_GPIO_WEBCAM_RESET "|" D_GPIO_WEBCAM_XCLK "|" + D_GPIO_WEBCAM_SIOD "|" D_GPIO_WEBCAM_SIOC "|" + D_GPIO_WEBCAM_DATA "|" + D_GPIO_WEBCAM_VSYNC "|" D_GPIO_WEBCAM_HREF "|" D_GPIO_WEBCAM_PCLK "|" + D_GPIO_WEBCAM_PSCLK "|" + D_GPIO_WEBCAM_HSD "|" + D_GPIO_WEBCAM_PSRCS ; const char kSensorNamesFixed[] PROGMEM = D_SENSOR_USER; +#define MAX_WEBCAM_DATA 8 +#define MAX_WEBCAM_HSD 3 + const uint16_t kGpioNiceList[] PROGMEM = { GPIO_NONE, // Not used AGPIO(GPIO_KEY1) + MAX_KEYS, // Buttons @@ -516,21 +523,29 @@ const uint16_t kGpioNiceList[] PROGMEM = { AGPIO(GPIO_WEBCAM_XCLK), AGPIO(GPIO_WEBCAM_SIOD), AGPIO(GPIO_WEBCAM_SIOC), - AGPIO(GPIO_WEBCAM_Y9), - AGPIO(GPIO_WEBCAM_Y8), - AGPIO(GPIO_WEBCAM_Y7), - AGPIO(GPIO_WEBCAM_Y6), - AGPIO(GPIO_WEBCAM_Y5), - AGPIO(GPIO_WEBCAM_Y4), - AGPIO(GPIO_WEBCAM_Y3), - AGPIO(GPIO_WEBCAM_Y2), + +// AGPIO(GPIO_WEBCAM_Y9), +// AGPIO(GPIO_WEBCAM_Y8), +// AGPIO(GPIO_WEBCAM_Y7), +// AGPIO(GPIO_WEBCAM_Y6), +// AGPIO(GPIO_WEBCAM_Y5), +// AGPIO(GPIO_WEBCAM_Y4), +// AGPIO(GPIO_WEBCAM_Y3), +// AGPIO(GPIO_WEBCAM_Y2), + + AGPIO(GPIO_WEBCAM_DATA) + MAX_WEBCAM_DATA, + AGPIO(GPIO_WEBCAM_VSYNC), AGPIO(GPIO_WEBCAM_HREF), AGPIO(GPIO_WEBCAM_PCLK), AGPIO(GPIO_WEBCAM_PSCLK), - AGPIO(GPIO_WEBCAM_HSD1), - AGPIO(GPIO_WEBCAM_HSD2), - AGPIO(GPIO_WEBCAM_HSD3), + +// AGPIO(GPIO_WEBCAM_HSD1), +// AGPIO(GPIO_WEBCAM_HSD2), +// AGPIO(GPIO_WEBCAM_HSD3), + + AGPIO(GPIO_WEBCAM_HSD) + MAX_WEBCAM_HSD, + AGPIO(GPIO_WEBCAM_PSRCS), #endif }; diff --git a/tasmota/xdrv_01_webserver.ino b/tasmota/xdrv_01_webserver.ino index 6246377be..e74096465 100644 --- a/tasmota/xdrv_01_webserver.ino +++ b/tasmota/xdrv_01_webserver.ino @@ -246,13 +246,15 @@ const char HTTP_SCRIPT_MODULE_TEMPLATE[] PROGMEM = "q.appendChild(o);" "}" "function ot(g,s){" // g = id and name, s = value - "var p,l,t=qs('#h'+g),u=s&0x001f;" + "var a=s&0xffe0,b=0,c,p,l,t=qs('#h'+g),u=s&0x001f;" "l=t.options.length;" // Remove current options "for(i=l;i;i--){p=t.options[i-1].parentNode;p.removeChild(t.options[i-1]);}" + "l=hs.length;" // Find max indexes for s + "for(i=0;i>=5;" // Add options - "for(i=1;i<=hs[s];i++){ce((i<10)?(' '+i):i,t);}" + "for(i=1;i<=b;i++){ce((i<10)?(' '+i):i,t);}" "eb('h'+g).value=u+1;" // Set selected value - "t.style.visibility=(hs[s]>0)?'':'hidden';" + "t.style.visibility=(b>0)?'':'hidden';" "}" "function sk(s,g){" // s = value, g = id and name "var o=os.replace(/}2/g,\"