mirror of https://github.com/arendst/Tasmota.git
Merge branch 'arendst/development' into development
This commit is contained in:
commit
e5811c4e9c
|
@ -15,7 +15,7 @@ If you like **Sonoff-Tasmota**, give it a star, or fork it and contribute!
|
|||
|
||||
Current version is **5.14.0b** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_releasenotes.ino) for change information.
|
||||
|
||||
### Quick install
|
||||
### Quick Install
|
||||
Download one of the released binaries from https://github.com/arendst/Sonoff-Tasmota/releases and flash it to your hardware as documented in the wiki.
|
||||
|
||||
### Important User Compilation Information
|
||||
|
@ -68,7 +68,7 @@ The following devices are supported:
|
|||
- [Luani HVIO board](https://luani.de/projekte/esp8266-hvio/)
|
||||
- Wemos D1 mini, NodeMcu and Ledunia
|
||||
|
||||
### Firmware release information
|
||||
### Firmware Release Information
|
||||
Different firmware images are released based on Features and Sensors selection guided by code and memory usage.
|
||||
|
||||
- The Minimal version allows intermediate OTA uploads to support larger versions and does NOT change any persistent parameter.
|
||||
|
@ -129,7 +129,7 @@ Different firmware images are released based on Features and Sensors selection g
|
|||
| USE_ARILUX_RF | x | x | - | x | x |
|
||||
| USE_SR04 | x | - | - | x | x |
|
||||
|
||||
#### Typical file size
|
||||
#### Typical File Size
|
||||
|
||||
| ESP/Arduino library version | sonoff | classic | minimal | knx | allsensors |
|
||||
|-----------------------------|--------|---------|---------|------|------------|
|
||||
|
@ -147,7 +147,7 @@ You can contribute to Sonoff-Tasmota by
|
|||
|
||||
### Credits
|
||||
|
||||
#### Libraries used
|
||||
#### Libraries Used
|
||||
Libraries used with Sonoff-Tasmota are:
|
||||
- [ESP8266 core for Arduino](https://github.com/esp8266/Arduino)
|
||||
- [Adafruit BME680](https://github.com/adafruit/Adafruit_BME680)
|
||||
|
|
|
@ -30,6 +30,7 @@ env_default = sonoff
|
|||
;env_default = sonoff-PL
|
||||
;env_default = sonoff-PT
|
||||
;env_default = sonoff-RU
|
||||
;env_default = sonoff-UK
|
||||
;env_default = sonoff-TW
|
||||
|
||||
[common] ; ************************************************************
|
||||
|
@ -46,7 +47,7 @@ platform = espressif8266@1.5.0
|
|||
|
||||
framework = arduino
|
||||
board = esp01_1m
|
||||
board_flash_mode = dout
|
||||
board_build.flash_mode = dout
|
||||
|
||||
; *** Fix espressif8266@1.7.0 induced undesired all warnings
|
||||
build_unflags = -Wall
|
||||
|
@ -82,7 +83,7 @@ extra_scripts = pio/strip-floats.py
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags}
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -95,7 +96,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DBE_MINIMAL
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -107,7 +108,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DUSE_CLASSIC
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -119,7 +120,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DUSE_KNX_NO_EMULATION
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -131,7 +132,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DUSE_ALL_SENSORS
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -143,7 +144,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=bg-BG
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -155,7 +156,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=pt-BR
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -167,7 +168,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=zh-CN
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -179,7 +180,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=cs-CZ
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -191,7 +192,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=de-DE
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -203,7 +204,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=es-AR
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -215,7 +216,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=fr-FR
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -227,7 +228,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=el-GR
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -239,7 +240,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=hu-HU
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -251,7 +252,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=it-IT
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -263,7 +264,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=nl-NL
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -275,7 +276,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=pl-PL
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -287,7 +288,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=pt-PT
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -299,7 +300,7 @@ extra_scripts = ${common.extra_scripts}
|
|||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=ru-RU
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
@ -307,11 +308,23 @@ upload_speed = ${common.upload_speed}
|
|||
upload_port = ${common.upload_port}
|
||||
extra_scripts = ${common.extra_scripts}
|
||||
|
||||
[env:sonoff-UK]
|
||||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=uk-UK
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
upload_speed = ${common.upload_speed}
|
||||
upload_port = ${common.upload_port}
|
||||
extra_scripts = ${common.extra_scripts}
|
||||
|
||||
[env:sonoff-TW]
|
||||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = ${common.board}
|
||||
board_flash_mode = ${common.board_flash_mode}
|
||||
board_build.flash_mode = ${common.board_build.flash_mode}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} -DMY_LANGUAGE=zh-TW
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
|
|
@ -1,6 +1,29 @@
|
|||
/* 5.14.0b
|
||||
* Added Console Commands to send KNX Commands
|
||||
usage: KnxTx_Cmnd[slot] command
|
||||
where [slot] is any of the 5 slots on the KNX Menu and command is 0 or 1
|
||||
example: KnxTx_Cmnd1 0
|
||||
* Added Console Commands to send KNX Values
|
||||
usage: KnxTx_Val[slot] value
|
||||
where [slot] is any of the 5 slots on the KNX Menu and value is a number
|
||||
example: KnxTx_Val1 35
|
||||
* Added Slots on the KNX Web Menu to select Group Addess to send data from console commands
|
||||
* Added Events to trigger rules when received data from KNX
|
||||
usage on rules as: event#KnxRx_Val[slot]
|
||||
where [slot] is any of the 5 slots on the KNX Menu
|
||||
example: rule on event#KnxRx_Val1 do VAR1 %value% endon
|
||||
* Added Events to trigger rules when received read requests from KNX
|
||||
usage on rules as: event#KnxRx_Req[slot]
|
||||
where [slot] is any of the 5 slots on the KNX Menu
|
||||
example: rule on event#KnxRx_Req1 do KnxTx_Val1 35 endon
|
||||
* Added Slots on the KNX Web Menu to select Group Addess to receive data to trigger rules
|
||||
* Add two rule sets of 511 characters using commands rule1, rule2 and rule3
|
||||
* Add Ukranian language file
|
||||
* Add rule support for IrReceive and RfReceive (#2758)
|
||||
* Add command WebSend [<host>(:<port>,<user>:<password>)] <command> (#2821)
|
||||
* Add source information to command execution to be shown with logging option 3 (#2843)
|
||||
* Fix some Pow R2 and S31 checksum errors (#1907)
|
||||
* Fix Hardware Watchdog restart when using event command (#2853)
|
||||
*
|
||||
* 5.14.0a
|
||||
* Add feature information to Status 4
|
||||
|
|
114
sonoff/i18n.h
114
sonoff/i18n.h
|
@ -42,6 +42,7 @@
|
|||
#define D_JSON_BUILDDATETIME "BuildDateTime"
|
||||
#define D_JSON_CO2 "CarbonDioxide"
|
||||
#define D_JSON_COMMAND "Command"
|
||||
#define D_JSON_CONNECT_FAILED "Connect failed"
|
||||
#define D_JSON_COREVERSION "Core"
|
||||
#define D_JSON_COUNTER "Counter"
|
||||
#define D_JSON_CURRENT "Current" // As in Voltage and Current
|
||||
|
@ -67,6 +68,7 @@
|
|||
#define D_JSON_GATEWAY "Gateway"
|
||||
#define D_JSON_HEAPSIZE "Heap"
|
||||
#define D_JSON_HIGH "High"
|
||||
#define D_JSON_HOST_NOT_FOUND "Host not found"
|
||||
#define D_JSON_HSBCOLOR "HSBColor"
|
||||
#define D_JSON_HUMIDITY "Humidity"
|
||||
#define D_JSON_I2CSCAN_DEVICES_FOUND_AT "Device(s) found at"
|
||||
|
@ -133,6 +135,7 @@
|
|||
#define D_JSON_VOLTAGE "Voltage"
|
||||
#define D_JSON_WIFI "Wifi"
|
||||
#define D_JSON_WRONG "Wrong"
|
||||
#define D_JSON_WRONG_PARAMETERS "Wrong parameters"
|
||||
#define D_JSON_YESTERDAY "Yesterday"
|
||||
#define D_JSON_ZERO_POINT_CALIBRATION "Zero Point Calibration"
|
||||
|
||||
|
@ -213,14 +216,6 @@
|
|||
#define D_WCFG_5_WAIT "Wait"
|
||||
#define D_CMND_FRIENDLYNAME "FriendlyName"
|
||||
#define D_CMND_SWITCHMODE "SwitchMode"
|
||||
#define D_CMND_WEBSERVER "Webserver"
|
||||
#define D_JSON_WEBSERVER_MODE "WebServerMode"
|
||||
#define D_JSON_ACTIVE_FOR "Active for"
|
||||
#define D_JSON_ON_DEVICE "on"
|
||||
#define D_JSON_WITH_IP_ADDRESS "with IP address"
|
||||
#define D_CMND_WEBPASSWORD "WebPassword"
|
||||
#define D_CMND_WEBLOG "WebLog"
|
||||
#define D_CMND_EMULATION "Emulation"
|
||||
#define D_CMND_TELEPERIOD "TelePeriod"
|
||||
#define D_CMND_RESTART "Restart"
|
||||
#define D_JSON_ONE_TO_RESTART "1 to restart"
|
||||
|
@ -238,7 +233,7 @@
|
|||
#define D_CMND_SERIALDELIMITER "SerialDelimiter"
|
||||
#define D_CMND_BAUDRATE "Baudrate"
|
||||
|
||||
// Commands xdrv_00_mqtt.ino
|
||||
// Commands xdrv_01_mqtt.ino
|
||||
#define D_CMND_MQTTHOST "MqttHost"
|
||||
#define D_CMND_MQTTPORT "MqttPort"
|
||||
#define D_CMND_MQTTRETRY "MqttRetry"
|
||||
|
@ -263,37 +258,16 @@
|
|||
#define D_CMND_SENSORRETAIN "SensorRetain"
|
||||
#define D_CMND_PUBLISH "Publish"
|
||||
|
||||
// Commands xdrv_01_light.ino
|
||||
#define D_CMND_CHANNEL "Channel"
|
||||
#define D_CMND_COLOR "Color"
|
||||
#define D_CMND_COLORTEMPERATURE "CT"
|
||||
#define D_CMND_DIMMER "Dimmer"
|
||||
#define D_CMND_HSBCOLOR "HSBColor"
|
||||
#define D_CMND_LED "Led"
|
||||
#define D_CMND_LEDTABLE "LedTable"
|
||||
#define D_CMND_FADE "Fade"
|
||||
#define D_CMND_PIXELS "Pixels"
|
||||
#define D_CMND_ROTATION "Rotation"
|
||||
#define D_CMND_SCHEME "Scheme"
|
||||
#define D_CMND_SPEED "Speed"
|
||||
#define D_CMND_WAKEUP "Wakeup"
|
||||
#define D_CMND_WAKEUPDURATION "WakeUpDuration"
|
||||
#define D_CMND_WIDTH "Width"
|
||||
|
||||
// Commands xdrv_02_irremote.ino
|
||||
#define D_CMND_IRSEND "IRSend"
|
||||
#define D_JSON_INVALID_JSON "Invalid JSON"
|
||||
#define D_JSON_PROTOCOL_NOT_SUPPORTED "Protocol not supported"
|
||||
#define D_JSON_IR_PROTOCOL "Protocol"
|
||||
#define D_JSON_IR_BITS "Bits"
|
||||
#define D_JSON_IR_DATA "Data"
|
||||
#define D_CMND_IRHVAC "IRHVAC"
|
||||
#define D_JSON_IRHVAC_VENDOR "VENDOR"
|
||||
#define D_JSON_IRHVAC_POWER "POWER"
|
||||
#define D_JSON_IRHVAC_MODE "MODE"
|
||||
#define D_JSON_IRHVAC_FANSPEED "FANSPEED"
|
||||
#define D_JSON_IRHVAC_TEMP "TEMP"
|
||||
#define D_JSON_IRRECEIVED "IrReceived"
|
||||
// Commands xdrv_02_webserver.ino
|
||||
#define D_CMND_WEBSERVER "Webserver"
|
||||
#define D_JSON_WEBSERVER_MODE "WebServerMode"
|
||||
#define D_JSON_ACTIVE_FOR "Active for"
|
||||
#define D_JSON_ON_DEVICE "on"
|
||||
#define D_JSON_WITH_IP_ADDRESS "with IP address"
|
||||
#define D_CMND_WEBPASSWORD "WebPassword"
|
||||
#define D_CMND_WEBLOG "WebLog"
|
||||
#define D_CMND_WEBSEND "WebSend"
|
||||
#define D_CMND_EMULATION "Emulation"
|
||||
|
||||
// Commands xdrv_03_energy.ino
|
||||
#define D_CMND_POWERLOW "PowerLow"
|
||||
|
@ -324,7 +298,39 @@
|
|||
#define D_JSON_ENERGYMONITOR "EnergyMonitor"
|
||||
#define D_JSON_MAXENERGYREACHED "MaxEnergyReached"
|
||||
|
||||
// Commands xdrv_04_snfbridge.ino
|
||||
// Commands xdrv_04_light.ino
|
||||
#define D_CMND_CHANNEL "Channel"
|
||||
#define D_CMND_COLOR "Color"
|
||||
#define D_CMND_COLORTEMPERATURE "CT"
|
||||
#define D_CMND_DIMMER "Dimmer"
|
||||
#define D_CMND_HSBCOLOR "HSBColor"
|
||||
#define D_CMND_LED "Led"
|
||||
#define D_CMND_LEDTABLE "LedTable"
|
||||
#define D_CMND_FADE "Fade"
|
||||
#define D_CMND_PIXELS "Pixels"
|
||||
#define D_CMND_ROTATION "Rotation"
|
||||
#define D_CMND_SCHEME "Scheme"
|
||||
#define D_CMND_SPEED "Speed"
|
||||
#define D_CMND_WAKEUP "Wakeup"
|
||||
#define D_CMND_WAKEUPDURATION "WakeUpDuration"
|
||||
#define D_CMND_WIDTH "Width"
|
||||
|
||||
// Commands xdrv_05_irremote.ino
|
||||
#define D_CMND_IRSEND "IRSend"
|
||||
#define D_JSON_INVALID_JSON "Invalid JSON"
|
||||
#define D_JSON_PROTOCOL_NOT_SUPPORTED "Protocol not supported"
|
||||
#define D_JSON_IR_PROTOCOL "Protocol"
|
||||
#define D_JSON_IR_BITS "Bits"
|
||||
#define D_JSON_IR_DATA "Data"
|
||||
#define D_CMND_IRHVAC "IRHVAC"
|
||||
#define D_JSON_IRHVAC_VENDOR "VENDOR"
|
||||
#define D_JSON_IRHVAC_POWER "POWER"
|
||||
#define D_JSON_IRHVAC_MODE "MODE"
|
||||
#define D_JSON_IRHVAC_FANSPEED "FANSPEED"
|
||||
#define D_JSON_IRHVAC_TEMP "TEMP"
|
||||
#define D_JSON_IRRECEIVED "IrReceived"
|
||||
|
||||
// Commands xdrv_06_snfbridge.ino
|
||||
#define D_CMND_RFCODE "RfCode"
|
||||
#define D_CMND_RFHIGH "RfHigh"
|
||||
#define D_CMND_RFHOST "RfHost"
|
||||
|
@ -340,7 +346,7 @@
|
|||
#define D_CMND_RFSYNC "RfSync"
|
||||
#define D_JSON_RFRECEIVED "RfReceived"
|
||||
|
||||
// Commands xdrv_05_domoticz.ino
|
||||
// Commands xdrv_07_domoticz.ino
|
||||
#define D_CMND_DOMOTICZ "Domoticz"
|
||||
#define D_CMND_IDX "Idx"
|
||||
#define D_CMND_KEYIDX "KeyIdx"
|
||||
|
@ -348,18 +354,6 @@
|
|||
#define D_CMND_SENSORIDX "SensorIdx"
|
||||
#define D_CMND_UPDATETIMER "UpdateTimer"
|
||||
|
||||
// Commands xdrv_06_display.ino
|
||||
#define D_CMND_DISPLAY "Display"
|
||||
#define D_CMND_DISP_ADDRESS "Address"
|
||||
#define D_CMND_DISP_COLS "Cols"
|
||||
#define D_CMND_DISP_DIMMER "Dimmer"
|
||||
#define D_CMND_DISP_MODE "Mode"
|
||||
#define D_CMND_DISP_MODEL "Model"
|
||||
#define D_CMND_DISP_REFRESH "Refresh"
|
||||
#define D_CMND_DISP_ROWS "Rows"
|
||||
#define D_CMND_DISP_SIZE "Size"
|
||||
#define D_CMND_DISP_TEXT "Text"
|
||||
|
||||
// Commands xdrv_08_serial_bridge.ino
|
||||
#define D_CMND_SSERIALSEND "SSerialSend"
|
||||
#define D_CMND_SBAUDRATE "SBaudrate"
|
||||
|
@ -380,6 +374,18 @@
|
|||
#define D_CMND_LATITUDE "Latitude"
|
||||
#define D_CMND_LONGITUDE "Longitude"
|
||||
|
||||
// Commands xdrv_98_display.ino
|
||||
#define D_CMND_DISPLAY "Display"
|
||||
#define D_CMND_DISP_ADDRESS "Address"
|
||||
#define D_CMND_DISP_COLS "Cols"
|
||||
#define D_CMND_DISP_DIMMER "Dimmer"
|
||||
#define D_CMND_DISP_MODE "Mode"
|
||||
#define D_CMND_DISP_MODEL "Model"
|
||||
#define D_CMND_DISP_REFRESH "Refresh"
|
||||
#define D_CMND_DISP_ROWS "Rows"
|
||||
#define D_CMND_DISP_SIZE "Size"
|
||||
#define D_CMND_DISP_TEXT "Text"
|
||||
|
||||
/********************************************************************************************/
|
||||
|
||||
#define D_ASTERIX "********"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Използване на параметри по подразбиране"
|
||||
#define D_ERASED_SECTOR "Изтрит сектор"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Минимаен фърмуеър - моля надградете го"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Уеб сървърът е активен на"
|
||||
#define D_WITH_IP_ADDRESS "с IP адрес"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Включете ниво 2 на лога, ако очаквате отговор"
|
||||
#define D_NEED_USER_AND_PASSWORD "Очаква user=<username>&password=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Проверка на TLS отпечатък..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Неуспешно TLS свързване към"
|
||||
#define D_RETRY_IN "Повторно след"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Нешифрована връзка, недействителен отпечатък"
|
||||
#define D_CONNECT_FAILED_TO "Грешка при свързването към"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast е изключен"
|
||||
#define D_MULTICAST_REJOINED "Multicast е повторно съединен"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast грешка при присъединяването"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST аргументи"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "Изпратени са 3 пакета за отговор"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz параметри"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "изпратен до"
|
||||
#define D_KNX_WARNING "Груповият адрес ( 0 / 0 / 0 ) е резервиран и не може да бъде използван."
|
||||
#define D_KNX_ENHANCEMENT "Подобрена комуникация"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Използвана енергия днес"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Použij defaultní hodnoty"
|
||||
#define D_ERASED_SECTOR "Smazaný sektor"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Firmware MINIMÁLNÍ - prosím zaktualizujte"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Aktivní Web server"
|
||||
#define D_WITH_IP_ADDRESS "na IP adrese"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Zapni úroveň 2 zápisu Weblog, pokud je očekávána odpověď"
|
||||
#define D_NEED_USER_AND_PASSWORD "Vyžadován uživatel=<username>&heslo=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Verifikuj otisk TLS..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Nepřipojeno TLS do"
|
||||
#define D_RETRY_IN "Zopakuji za"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Nesprávné připojení z důvodu chybného otisku TLS"
|
||||
#define D_CONNECT_FAILED_TO "Spojení se nepodařilo navázat"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast je vypnutý"
|
||||
#define D_MULTICAST_REJOINED "Multicast opět připojený"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast neúspěšný"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 pakety odpovědi odeslány"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Nastavení Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "pošli"
|
||||
#define D_KNX_WARNING "Skupinová adresa ( 0 / 0 / 0 ) je rezervována a nemůže být použita."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Spotřeba Dnes"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Standard verwenden"
|
||||
#define D_ERASED_SECTOR "gelöschter Sektor"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMUM-Firmware - bitte upgraden"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web-Server aktiv bei"
|
||||
#define D_WITH_IP_ADDRESS "mit IP-Adresse"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Aktivere Web Log Level 2 falls Reaktion erwartet"
|
||||
#define D_NEED_USER_AND_PASSWORD "Benötige user=<Benutzername>&password=<Passwort>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "TLS-Fingerabdruck wird verifiziert..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS-Verbindung fehlgeschlagen an"
|
||||
#define D_RETRY_IN "Wiederversuch in"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "unsichere Verbindung aufgrund ungültigen Fingerabdrucks"
|
||||
#define D_CONNECT_FAILED_TO "Verbindung fehlgeschlagen aufgrund von"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast deaktiviert"
|
||||
#define D_MULTICAST_REJOINED "Multicast (wieder-)verbunden"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast Verbindung fehlgeschlagen"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST-Argumente"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 Antwortpakete gesendet"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz-Parameter"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energie heute"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Χρήση προεπιλογών"
|
||||
#define D_ERASED_SECTOR "Διαγραμμένος τομέας"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMAL firmware - παρακαλώ αναβαθμήστε"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web διακομιστής ενεργός"
|
||||
#define D_WITH_IP_ADDRESS "με διεύθυνση IP"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Ενεργοποιήστε το weblog 2 αν περιμένετε απάντηση"
|
||||
#define D_NEED_USER_AND_PASSWORD "Χρειάζεστε user=<όνομα χρήστη>&password=<κωδικό χρήστη>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Επαλήθευση TLS fingerprint..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Αποτυχία TLS σύνδεσης"
|
||||
#define D_RETRY_IN "Επανάληψη σε"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Μη ασφαλής σύνδεση λόγο ακατάλληλου Fingerprint"
|
||||
#define D_CONNECT_FAILED_TO "Αποτυχία σύνδεσης στο"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast απενεργοποιημένο"
|
||||
#define D_MULTICAST_REJOINED "Multicast επανασύνδεση"
|
||||
#define D_MULTICAST_JOIN_FAILED "Αποτυχία σύνδεσης Multicast"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3πλο πακέτο απάντησεης στάλθηκε"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz παράμετροι"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "αποστολή σε"
|
||||
#define D_KNX_WARNING "Η Ομάδα Διευθύνσεων ( 0 / 0 / 0 ) είναι δεσμευμένη και δεν μπορεί να χρησιμοποιηθεί."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energy Σήμερα"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Use online command StateText to translate ON, OFF, HOLD and TOGGLE.
|
||||
* Use online command Prefix to translate cmnd, stat and tele.
|
||||
*
|
||||
* Updated until v5.14.0a
|
||||
* Updated until v5.14.0b
|
||||
\*********************************************************************/
|
||||
|
||||
//#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
|
||||
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Use defaults"
|
||||
#define D_ERASED_SECTOR "Erased sector"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMAL firmware - please upgrade"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web server active on"
|
||||
#define D_WITH_IP_ADDRESS "with IP address"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Enable weblog 2 if response expected"
|
||||
#define D_NEED_USER_AND_PASSWORD "Need user=<username>&password=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Verify TLS fingerprint..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS Connect failed to"
|
||||
#define D_RETRY_IN "Retry in"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Insecure connection due to invalid Fingerprint"
|
||||
#define D_CONNECT_FAILED_TO "Connect failed to"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast disabled"
|
||||
#define D_MULTICAST_REJOINED "Multicast (re)joined"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast join failed"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 response packets sent"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz parameters"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energy Today"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Use online command StateText to translate ON, OFF, HOLD and TOGGLE.
|
||||
* Use online command Prefix to translate cmnd, stat and tele.
|
||||
*
|
||||
* Updated until v5.14.0a
|
||||
* Updated until v5.14.0b
|
||||
\*********************************************************************/
|
||||
|
||||
#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
|
||||
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Usar valores por defecto"
|
||||
#define D_ERASED_SECTOR "Sector borrado"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Firmware MÍNIMO - actualice por favor"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Servidor web activo en"
|
||||
#define D_WITH_IP_ADDRESS "con dirección IP"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Habilitar weblog 2 si desea respuesta"
|
||||
#define D_NEED_USER_AND_PASSWORD "Se necesita user=<username>&password=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Verificar TLS fingerprint..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Falló Conección TLS a"
|
||||
#define D_RETRY_IN "Reintentando"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Conección insegura por Fingerprint no válido"
|
||||
#define D_CONNECT_FAILED_TO "Falló Conección a"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast deshabilitado"
|
||||
#define D_MULTICAST_REJOINED "Multicast (re)conectado"
|
||||
#define D_MULTICAST_JOIN_FAILED "Conección Multicast fallida"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 paquetes de respuesta enviados"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Parámetros Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "enviada a"
|
||||
#define D_KNX_WARNING "La dirección de grupo ( 0 / 0 / 0 ) está reservada y no puede ser utilizada."
|
||||
#define D_KNX_ENHANCEMENT "Mejora de Comunicación"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energía Hoy"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Utiliser par défaut"
|
||||
#define D_ERASED_SECTOR "Secteur effacé"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Firmware MINIMAL - merci de mettre à jour"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Serveur web actif sur"
|
||||
#define D_WITH_IP_ADDRESS "avec l'adresse IP"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Activer Weblog 2 si une réponse est attendue"
|
||||
#define D_NEED_USER_AND_PASSWORD "Nécessite utilisateur=<username>&password=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Vérification d'empreinte TLS ..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Échec de connexion TLS à"
|
||||
#define D_RETRY_IN "Nouvelle tentative dans"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Connexion non sécurisée car empreinte non vérifiée"
|
||||
#define D_CONNECT_FAILED_TO "Échec de connexion à"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast désactivé"
|
||||
#define D_MULTICAST_REJOINED "Multicast (re)joint"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast échec abonnement"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 paquets de réponse envoyés"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Paramètres Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "envoyé à"
|
||||
#define D_KNX_WARNING "L'Adresse de Groupe ( 0 / 0 / 0 ) est réservée et ne peut être utilisée."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xsns_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Énergie aujourd'hui"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Alapértelmezett beáll. használata"
|
||||
#define D_ERASED_SECTOR "Szektor törlése"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMAL firmware - frissítsd!"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web szerver aktív a"
|
||||
#define D_WITH_IP_ADDRESS "IP címe:"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Engedélyezz 2-es weblogolást több információért"
|
||||
#define D_NEED_USER_AND_PASSWORD "Kell felhasználó=<felhasználónév>&jelszó=<jelszó>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "TLS fingerprint hitelesítése..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS Csatlakozás sikertelen a"
|
||||
#define D_RETRY_IN "Újrapróbálás"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Nem biztonságos kapcsolat érvénytelen Fingerprint miatt"
|
||||
#define D_CONNECT_FAILED_TO "Sikertelen csatlakozás a"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast kikapcsolva"
|
||||
#define D_MULTICAST_REJOINED "Multicast (újra)csatlakozás"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast csatlakozás sikertelen"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 válaszcsomagok elküldve"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz paraméterek"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Mai Energia"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Utilizzo valori default"
|
||||
#define D_ERASED_SECTOR "Settore cancellato"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMAL firmware - effettuare aggiornamento"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web server attivo su"
|
||||
#define D_WITH_IP_ADDRESS "con indirizzo IP"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Abilitare weblog 2 se è attesa una risposta"
|
||||
#define D_NEED_USER_AND_PASSWORD "Richiesto user=<username>&password=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Verifica TLS fingerprint..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Connessione TLS fallita a"
|
||||
#define D_RETRY_IN "Nuovo tentativo in"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Connessione insicura a causa di Fingerprint non valido"
|
||||
#define D_CONNECT_FAILED_TO "Connessione Fallita a"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast disabilitato"
|
||||
#define D_MULTICAST_REJOINED "Multicast (ri)associato"
|
||||
#define D_MULTICAST_JOIN_FAILED "Associazione Multicast fallita"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST argomenti"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 pacchetti di risposta inviati"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Parametri Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "invia a"
|
||||
#define D_KNX_WARNING "L'indirizzo del gruppo ( 0 / 0 / 0 ) è riservato e non può essere usato."
|
||||
#define D_KNX_ENHANCEMENT "Miglioramento Comunicazione"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energia Oggi"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Gebruik standaardwaarden"
|
||||
#define D_ERASED_SECTOR "Wis sector"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMAL firmware - opwaarderen"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Webserver actief op"
|
||||
#define D_WITH_IP_ADDRESS "met IP adres"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Schakel weblog 2 in indien antwoord verwacht"
|
||||
#define D_NEED_USER_AND_PASSWORD "Benodig user=<gebruiker>&password=<webwachtwoord>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Controleer TLS vingerafdruk..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS Verbinding mislukt naar"
|
||||
#define D_RETRY_IN "Opnieuw proberen over"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Door ongeldige vingerafdruk een onveilige verbinding"
|
||||
#define D_CONNECT_FAILED_TO "Verbinding mislukt naar"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast uitgeschakeld"
|
||||
#define D_MULTICAST_REJOINED "Multicast verbonden"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast verbinding mislukt"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST argumenten"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 antwoord paketten verstuurd"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz parameters"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Toets idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "verzend naar"
|
||||
#define D_KNX_WARNING "Groep adres (0/0/0) is gereserveerd en mag niet worden gebruikt."
|
||||
#define D_KNX_ENHANCEMENT "Verbeter verbinding"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Verbruik vandaag"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Użyj domyślnych"
|
||||
#define D_ERASED_SECTOR "Wymazany sektor"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Oprogramowanie MINIMAL - proszę uaktualnić"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Aktywny serwer Web"
|
||||
#define D_WITH_IP_ADDRESS "z adresem IP"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Włącz poziom 2 zapisu Weblog, jeśli oczekiwana jest odpowiedź"
|
||||
#define D_NEED_USER_AND_PASSWORD "Wymagany użytkownik=<username>&hasło=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Weryfikuj odcisk TLS..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Nieudane połączenie TLS do"
|
||||
#define D_RETRY_IN "Spróbuj ponownie"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Nieprawidłowe połączenie z powodu błędnego odcisku TLS"
|
||||
#define D_CONNECT_FAILED_TO "Nie udało się nawiązać połączenia"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast jest wyłączony"
|
||||
#define D_MULTICAST_REJOINED "Multicast (re)dołączony"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast nie powiodło się"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 pakiety odpowiedzi wysyłane"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Parametry Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Energia Dzisiaj"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Use online command StateText to translate ON, OFF, HOLD and TOGGLE.
|
||||
* Use online command Prefix to translate cmnd, stat and tele.
|
||||
*
|
||||
* Updated until v5.13.0
|
||||
* Updated until v5.14.0b
|
||||
\*********************************************************************/
|
||||
|
||||
//#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
|
||||
|
@ -52,8 +52,8 @@
|
|||
|
||||
// Common
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Qualidade do Ar"
|
||||
#define D_AP "Pondo de acesso" // Ponto de Acesso
|
||||
#define D_AIR_QUALITY "Qualidade do ar"
|
||||
#define D_AP "Ponto de acesso" // Ponto de Acesso
|
||||
#define D_AS "como"
|
||||
#define D_AUTO "Auto"
|
||||
#define D_BLINK "Pulsar"
|
||||
|
@ -64,16 +64,16 @@
|
|||
#define D_BY "por" // Write by me
|
||||
#define D_BYTES "Bytes"
|
||||
#define D_CELSIUS "Celsius"
|
||||
#define D_CO2 "Dióxido de Carbono"
|
||||
#define D_CO2 "Dióxido de carbono"
|
||||
#define D_CODE "Código" // Button code
|
||||
#define D_COLDLIGHT "Luz Fria"
|
||||
#define D_COLDLIGHT "Luz fria"
|
||||
#define D_COMMAND "Comando"
|
||||
#define D_CONNECTED "Ligado"
|
||||
#define D_COUNT "Contagem"
|
||||
#define D_COUNTER "Contador"
|
||||
#define D_CURRENT "Corrente" // As in Voltage and Current
|
||||
#define D_DATA "Dados"
|
||||
#define D_DARKLIGHT "Luz Escura"
|
||||
#define D_DARKLIGHT "Luz escura"
|
||||
#define D_DEBUG "Depurar"
|
||||
#define D_DISABLED "Desabilitado"
|
||||
#define D_DISTANCE "Distância"
|
||||
|
@ -91,8 +91,8 @@
|
|||
#define D_FALLBACK_TOPIC "Tópico para retornar"
|
||||
#define D_FALSE "Falso"
|
||||
#define D_FILE "Arquivo"
|
||||
#define D_FREE_MEMORY "Memória Livre"
|
||||
#define D_FREQUENCY "Frequency"
|
||||
#define D_FREE_MEMORY "Memória livre"
|
||||
#define D_FREQUENCY "Frequência"
|
||||
#define D_GAS "Gás"
|
||||
#define D_GATEWAY "Gateway"
|
||||
#define D_GROUP "Grupo"
|
||||
|
@ -103,7 +103,7 @@
|
|||
#define D_IMMEDIATE "Imediato" // Button immediate
|
||||
#define D_INDEX "Índice"
|
||||
#define D_INFO "Informação"
|
||||
#define D_INFRARED "Infrared"
|
||||
#define D_INFRARED "Infravermelho"
|
||||
#define D_INITIALIZED "Inicializado"
|
||||
#define D_IP_ADDRESS "Endereço IP"
|
||||
#define D_LIGHT "Luz"
|
||||
|
@ -122,9 +122,9 @@
|
|||
#define D_PORT "Porta"
|
||||
#define D_POWER_FACTOR "Fator de potência"
|
||||
#define D_POWERUSAGE "Potência"
|
||||
#define D_POWERUSAGE_ACTIVE "Active Power"
|
||||
#define D_POWERUSAGE_APPARENT "Apparent Power"
|
||||
#define D_POWERUSAGE_REACTIVE "Reactive Power"
|
||||
#define D_POWERUSAGE_ACTIVE "Potência ativa"
|
||||
#define D_POWERUSAGE_APPARENT "Potência aparente"
|
||||
#define D_POWERUSAGE_REACTIVE "Potência reativa"
|
||||
#define D_PRESSURE "Pressão"
|
||||
#define D_PRESSUREATSEALEVEL "Pressão ao nível do mar"
|
||||
#define D_PROGRAM_FLASH_SIZE "Tamanho do programa na memória"
|
||||
|
@ -168,10 +168,10 @@
|
|||
#define D_WEB_SERVER "Servidor WEB"
|
||||
|
||||
// sonoff.ino
|
||||
#define D_WARNING_MINIMAL_VERSION "AVISO esta versão não supporta configurações persistentes"
|
||||
#define D_WARNING_MINIMAL_VERSION "AVISO: esta versão não supporta configurações persistentes"
|
||||
#define D_LEVEL_10 "nível 1-0"
|
||||
#define D_LEVEL_01 "nível 0-1"
|
||||
#define D_SERIAL_LOGGING_DISABLED "Registro em serie desabilitado"
|
||||
#define D_SERIAL_LOGGING_DISABLED "Registro em série desabilitado"
|
||||
#define D_SYSLOG_LOGGING_REENABLED "Registro do Syslog reativado"
|
||||
|
||||
#define D_SET_BAUDRATE_TO "Ajuste da velocidade para"
|
||||
|
@ -205,15 +205,15 @@
|
|||
#define D_USE_DEFAULTS "Usar predefinições"
|
||||
#define D_ERASED_SECTOR "Apagar setores"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Firmware mínimo - Atualizar por favor"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Servidor WEB ativo em"
|
||||
#define D_WITH_IP_ADDRESS "com o endereço IP"
|
||||
#define D_WEBSERVER_STOPPED "Servidor WEB parou"
|
||||
#define D_FILE_NOT_FOUND "Arquivo não encontrado"
|
||||
#define D_REDIRECTED "Redirecionado para o portal ativo"
|
||||
#define D_WIFIMANAGER_SET_ACCESSPOINT_AND_STATION "Wifimanager configura o Ponto de Acesso e mantém a estação"
|
||||
#define D_WIFIMANAGER_SET_ACCESSPOINT "Wifimanager configura o Ponto de Acesso"
|
||||
#define D_WIFIMANAGER_SET_ACCESSPOINT_AND_STATION "Wifimanager: configura o Ponto de Acesso e a Estação"
|
||||
#define D_WIFIMANAGER_SET_ACCESSPOINT "Wifimanager: configura o Ponto de Acesso"
|
||||
#define D_TRYING_TO_CONNECT "Conectar o dispositivo à rede"
|
||||
|
||||
#define D_RESTART_IN "Reinicia em"
|
||||
|
@ -238,7 +238,7 @@
|
|||
#define D_RESTORE_CONFIGURATION "Repor configuração"
|
||||
#define D_MAIN_MENU "Menu principal"
|
||||
|
||||
#define D_MODULE_PARAMETERS "Parametros do módulo"
|
||||
#define D_MODULE_PARAMETERS "Parâmetros do módulo"
|
||||
#define D_MODULE_TYPE "Tipo de módulo"
|
||||
#define D_GPIO "GPIO"
|
||||
#define D_SERIAL_IN "Entrada serial"
|
||||
|
@ -282,12 +282,12 @@
|
|||
#define D_SINGLE_DEVICE "Dispositivo único"
|
||||
#define D_MULTI_DEVICE "Múltiplos dispositivos"
|
||||
|
||||
#define D_SAVE_CONFIGURATION "Salvar configuração"
|
||||
#define D_CONFIGURATION_SAVED "Configuração salva"
|
||||
#define D_SAVE_CONFIGURATION "Gravar configuração"
|
||||
#define D_CONFIGURATION_SAVED "Configuração gravada"
|
||||
#define D_CONFIGURATION_RESET "Reinicialização da configuração"
|
||||
|
||||
#define D_PROGRAM_VERSION "Versão do programa"
|
||||
#define D_BUILD_DATE_AND_TIME "Data e Hora da construção"
|
||||
#define D_BUILD_DATE_AND_TIME "Data e Hora da compilação"
|
||||
#define D_CORE_AND_SDK_VERSION "Versão Core/SDK"
|
||||
#define D_FLASH_WRITE_COUNT "Contagem de gravação flash"
|
||||
#define D_MAC_ADDRESS "Endereço MAC"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Habilitar weblog 2 se resposta esperada"
|
||||
#define D_NEED_USER_AND_PASSWORD "Necessário user=<nome usuário>&password=<senha>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Verifique a impressão digital TLS..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS não conseguiu ligar"
|
||||
#define D_RETRY_IN "Tentativa em"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Ligação insegura devido à impressão digital inválida"
|
||||
#define D_CONNECT_FAILED_TO "A ligação falhou ao"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast desabilitado"
|
||||
#define D_MULTICAST_REJOINED "Multicast (re)ingressou"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast falha no reingresso"
|
||||
|
@ -355,15 +355,15 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 pacotes de resposta enviados"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Parâmetros Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Chave idx"
|
||||
#define D_DOMOTICZ_SWITCH_IDX "Interruptor idx"
|
||||
#define D_DOMOTICZ_SENSOR_IDX "Sensor idx"
|
||||
#define D_DOMOTICZ_TEMP "Temp"
|
||||
#define D_DOMOTICZ_TEMP_HUM "Temp,Hum"
|
||||
#define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Hum,Baro"
|
||||
#define D_DOMOTICZ_TEMP_HUM "Temp,Umi"
|
||||
#define D_DOMOTICZ_TEMP_HUM_BARO "Temp,Umi,Pres"
|
||||
#define D_DOMOTICZ_POWER_ENERGY "Potência,Energia"
|
||||
#define D_DOMOTICZ_ILLUMINANCE "Luminância"
|
||||
#define D_DOMOTICZ_COUNT "Contagem/PM1"
|
||||
|
@ -401,7 +401,9 @@
|
|||
#define D_KNX_COMMAND_OTHER "Outros"
|
||||
#define D_SENT_TO "Enviar para"
|
||||
#define D_KNX_WARNING "O endereço ( 0 / 0 / 0 ) é reservado e não pode ser usado."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_ENHANCEMENT "Melhoria da comunicação"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Consumo energético de hoje"
|
||||
|
@ -446,12 +448,12 @@
|
|||
#define D_SENSOR_PWM "PWM" // Suffix "1"
|
||||
#define D_SENSOR_COUNTER "Contador" // Suffix "1"
|
||||
#define D_SENSOR_IRRECV "IRrecv"
|
||||
#define D_SENSOR_MHZ_RX "MHZ Rx"
|
||||
#define D_SENSOR_MHZ_TX "MHZ Tx"
|
||||
#define D_SENSOR_MHZ_RX "MHz Rx"
|
||||
#define D_SENSOR_MHZ_TX "MHz Tx"
|
||||
#define D_SENSOR_PZEM_RX "PZEM Rx"
|
||||
#define D_SENSOR_PZEM_TX "PZEM Tx"
|
||||
#define D_SENSOR_SAIR_RX "SAir Rx"
|
||||
#define D_SENSOR_SAIR_TX "SAir Tx"
|
||||
#define D_SENSOR_SAIR_RX "SAIR Rx"
|
||||
#define D_SENSOR_SAIR_TX "SAIR Tx"
|
||||
#define D_SENSOR_SPI_CS "SPI CS"
|
||||
#define D_SENSOR_SPI_DC "SPI DC"
|
||||
#define D_SENSOR_BACKLIGHT "Luz de fundo"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Usar predefinições"
|
||||
#define D_ERASED_SECTOR "Apagar setores"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "MINIMO firmware - Atualizar Por favor"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Servidor WEB ativo em"
|
||||
#define D_WITH_IP_ADDRESS "com o endereço IP"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Habilitar weblog 2 se resposta esperada"
|
||||
#define D_NEED_USER_AND_PASSWORD "Necessário user=<nome utilizador>&password=<palavra chave>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Verifique a impressão digital TLS..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS não conseguiu ligar"
|
||||
#define D_RETRY_IN "Tentativa em"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Ligação insegura devido à impressão digital inválida"
|
||||
#define D_CONNECT_FAILED_TO "A ligação falhou ao"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast desabilitado"
|
||||
#define D_MULTICAST_REJOINED "Multicast (re)ingressou"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast falha no reingresso"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 pacotes de resposta enviados"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Parametros Domoticz"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Chave idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Consumo energético de hoje"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "Использовать значение по умолчанию"
|
||||
#define D_ERASED_SECTOR "Стереть сектор"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Прошивка MINIMAL - пожалуйста обновите"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Веб-сервер активен"
|
||||
#define D_WITH_IP_ADDRESS "с IP-адресом"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Включить Веб лог уровня 2 если ожидается ответ"
|
||||
#define D_NEED_USER_AND_PASSWORD "Ожидается user=<username>&password=<password>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Проверка TLS Fingerprint..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Сбой подключения TLS к"
|
||||
#define D_RETRY_IN "Повторить"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "Небезопасное соединение, недействительный Fingerprint"
|
||||
#define D_CONNECT_FAILED_TO "Ошибка подключения к"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast отключен"
|
||||
#define D_MULTICAST_REJOINED "Multicast (ре)соединился"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast ошибка соединения"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 ответных пакета получено"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz parameters"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Энергия Сегодня"
|
||||
|
|
|
@ -0,0 +1,522 @@
|
|||
/*
|
||||
uk-UK.h - localization for Ukrainian - Ukrain for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends / vadym-adik
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _LANGUAGE_UK_UK_H_
|
||||
#define _LANGUAGE_UK_UK_H_
|
||||
|
||||
/*************************** ATTENTION *******************************\
|
||||
*
|
||||
* Due to memory constraints only UTF-8 is supported.
|
||||
* To save code space keep text as short as possible.
|
||||
* Time and Date provided by SDK can not be localized (yet).
|
||||
* Use online command StateText to translate ON, OFF, HOLD and TOGGLE.
|
||||
* Use online command Prefix to translate cmnd, stat and tele.
|
||||
*
|
||||
* Updated until v5.14.0a
|
||||
\*********************************************************************/
|
||||
|
||||
//#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
|
||||
|
||||
#define LANGUAGE_LCID 1058
|
||||
// HTML (ISO 639-1) Language Code
|
||||
#define D_HTML_LANGUAGE "uk"
|
||||
|
||||
// "2017-03-07T11:08:02" - ISO8601:2004
|
||||
#define D_YEAR_MONTH_SEPARATOR "-"
|
||||
#define D_MONTH_DAY_SEPARATOR "-"
|
||||
#define D_DATE_TIME_SEPARATOR "T"
|
||||
#define D_HOUR_MINUTE_SEPARATOR ":"
|
||||
#define D_MINUTE_SECOND_SEPARATOR ":"
|
||||
|
||||
#define D_DAY3LIST "НедПонВівСерЧетПятСуб"
|
||||
#define D_MONTH3LIST "СічЛютБерКвіТраЧерЛипВерЖовЛисГру"
|
||||
|
||||
// Non JSON decimal separator
|
||||
#define D_DECIMAL_SEPARATOR ","
|
||||
|
||||
// Common
|
||||
#define D_ADMIN "Admin"
|
||||
#define D_AIR_QUALITY "Якість повітря"
|
||||
#define D_AP "AP" // Access Point
|
||||
#define D_AS "як"
|
||||
#define D_AUTO "АВТО"
|
||||
#define D_BLINK "Блимати"
|
||||
#define D_BLINKOFF "Не блимати"
|
||||
#define D_BOOT_COUNT "Кіл-сть завант."
|
||||
#define D_BRIGHTLIGHT "Яскравість"
|
||||
#define D_BUTTON "Кнопка"
|
||||
#define D_BY "by" // Written by me
|
||||
#define D_BYTES "Байт"
|
||||
#define D_CELSIUS "Цельсія"
|
||||
#define D_CO2 "Вуглек. газ"
|
||||
#define D_CODE "код" // Button code
|
||||
#define D_COLDLIGHT "Холодний"
|
||||
#define D_COMMAND "Команда"
|
||||
#define D_CONNECTED "Під'єднано"
|
||||
#define D_COUNT "Підрахунок"
|
||||
#define D_COUNTER "Лічильник"
|
||||
#define D_CURRENT "Струм" // As in Voltage and Current
|
||||
#define D_DATA "Дані"
|
||||
#define D_DARKLIGHT "Темний"
|
||||
#define D_DEBUG "Налагодження"
|
||||
#define D_DISABLED "Заблоковано"
|
||||
#define D_DISTANCE "Дистанція"
|
||||
#define D_DNS_SERVER "DNS Сервер"
|
||||
#define D_DONE "Виконано"
|
||||
#define D_DST_TIME "Літній час"
|
||||
#define D_ECO2 "eCO2"
|
||||
#define D_EMULATION "Емуляція"
|
||||
#define D_ENABLED "Активно"
|
||||
#define D_ERASE "Стирати"
|
||||
#define D_ERROR "Помилка"
|
||||
#define D_FAHRENHEIT "Фаренгейт"
|
||||
#define D_FAILED "Невдало"
|
||||
#define D_FALLBACK "Зворотній зв'язок"
|
||||
#define D_FALLBACK_TOPIC "Топік зворотнього зв'язку"
|
||||
#define D_FALSE "Помилково"
|
||||
#define D_FILE "Файл"
|
||||
#define D_FREE_MEMORY "Вільна память"
|
||||
#define D_FREQUENCY "Частота"
|
||||
#define D_GAS "Газ"
|
||||
#define D_GATEWAY "Шлюз"
|
||||
#define D_GROUP "Група"
|
||||
#define D_HOST "Хост"
|
||||
#define D_HOSTNAME "Ім'я Хосту"
|
||||
#define D_HUMIDITY "Вологість"
|
||||
#define D_ILLUMINANCE "Освітленність"
|
||||
#define D_IMMEDIATE "негайно" // Button immediate
|
||||
#define D_INDEX "Індекс"
|
||||
#define D_INFO "Інфо"
|
||||
#define D_INFRARED "Інфрачервоний"
|
||||
#define D_INITIALIZED "Ініціалізовано"
|
||||
#define D_IP_ADDRESS "IP Адрес"
|
||||
#define D_LIGHT "Світло"
|
||||
#define D_LWT "LWT"
|
||||
#define D_MODULE "Модуль"
|
||||
#define D_MQTT "MQTT"
|
||||
#define D_MULTI_PRESS "багаторазове натискання"
|
||||
#define D_NOISE "Шум"
|
||||
#define D_NONE "Ні"
|
||||
#define D_OFF "Вимк."
|
||||
#define D_OFFLINE "Офф-лайн"
|
||||
#define D_OK "Ок"
|
||||
#define D_ON "Увімк."
|
||||
#define D_ONLINE "Он-лайн"
|
||||
#define D_PASSWORD "Гасло"
|
||||
#define D_PORT "Порт"
|
||||
#define D_POWER_FACTOR "Коефіцієнт потужності"
|
||||
#define D_POWERUSAGE "Потужність"
|
||||
#define D_POWERUSAGE_ACTIVE "Активна потужність"
|
||||
#define D_POWERUSAGE_APPARENT "Дійсна потужність"
|
||||
#define D_POWERUSAGE_REACTIVE "Реактивна потужність"
|
||||
#define D_PRESSURE "Тиск"
|
||||
#define D_PRESSUREATSEALEVEL "Тиск на рівні моря"
|
||||
#define D_PROGRAM_FLASH_SIZE "Розмір Flash для програм"
|
||||
#define D_PROGRAM_SIZE "Розмір програм "
|
||||
#define D_PROJECT "Проект"
|
||||
#define D_RECEIVED "Отримано"
|
||||
#define D_RESTART "Перезавантаження"
|
||||
#define D_RESTARTING "Перезавантаження"
|
||||
#define D_RESTART_REASON "Причина перезавантаження"
|
||||
#define D_RESTORE "відновлення"
|
||||
#define D_RETAINED "нерозподілений"
|
||||
#define D_RULE "Правило"
|
||||
#define D_SAVE "Зберегти"
|
||||
#define D_SENSOR "Датчик"
|
||||
#define D_SSID "SSID"
|
||||
#define D_START "Старт"
|
||||
#define D_STD_TIME "STD"
|
||||
#define D_STOP "Стоп"
|
||||
#define D_SUBNET_MASK "Маска Підмережі"
|
||||
#define D_SUBSCRIBE_TO "Підписатись на"
|
||||
#define D_SUCCESSFUL "Успішно"
|
||||
#define D_SUNRISE "Схід сонця"
|
||||
#define D_SUNSET "Захід сонця"
|
||||
#define D_TEMPERATURE "Температура"
|
||||
#define D_TO "до"
|
||||
#define D_TOGGLE "Перекл."
|
||||
#define D_TOPIC "Топік"
|
||||
#define D_TRANSMIT "Передати"
|
||||
#define D_TRUE "Істина"
|
||||
#define D_TVOC "TVOC"
|
||||
#define D_UPGRADE "оновлення"
|
||||
#define D_UPLOAD "Завантажити"
|
||||
#define D_UPTIME "Час роботи"
|
||||
#define D_USER "Користувач"
|
||||
#define D_UTC_TIME "UTC"
|
||||
#define D_UV_INDEX "УФ індекс"
|
||||
#define D_UV_LEVEL "УФ рівень"
|
||||
#define D_VERSION "Версія"
|
||||
#define D_VOLTAGE "Напруга"
|
||||
#define D_WARMLIGHT "Тепло"
|
||||
#define D_WEB_SERVER "Web сервер"
|
||||
|
||||
// sonoff.ino
|
||||
#define D_WARNING_MINIMAL_VERSION "ПОПЕРЕДЖЕННЯ! Ця версія не підтримує персистентні налаштування"
|
||||
#define D_LEVEL_10 "рівень 1-0"
|
||||
#define D_LEVEL_01 "рівень 0-1"
|
||||
#define D_SERIAL_LOGGING_DISABLED "Serial logging вимкнений"
|
||||
#define D_SYSLOG_LOGGING_REENABLED "Syslog logging увімкнений"
|
||||
|
||||
#define D_SET_BAUDRATE_TO "Встановити швидкість передачі (Baudrate)"
|
||||
#define D_RECEIVED_TOPIC "Отриманий Топік"
|
||||
#define D_DATA_SIZE "Розмір даних"
|
||||
#define D_ANALOG_INPUT "Аналоговий вхід"
|
||||
|
||||
// support.ino
|
||||
#define D_OSWATCH "osWatch"
|
||||
#define D_BLOCKED_LOOP "Блокуючий цикл"
|
||||
#define D_WPS_FAILED_WITH_STATUS "WPS конфігурація з статусом НЕВДАЛА"
|
||||
#define D_ACTIVE_FOR_3_MINUTES "активний протягом 3 хвилин"
|
||||
#define D_FAILED_TO_START "не вдалось запустити"
|
||||
#define D_PATCH_ISSUE_2186 "Проблема з виправленням 2186"
|
||||
#define D_CONNECTING_TO_AP "Підключення до AP"
|
||||
#define D_IN_MODE "в режимі"
|
||||
#define D_CONNECT_FAILED_NO_IP_ADDRESS "Помилка підключення, IP-адрес не отриманий"
|
||||
#define D_CONNECT_FAILED_AP_NOT_REACHED "Помилка з'єднання, AP не запущений"
|
||||
#define D_CONNECT_FAILED_WRONG_PASSWORD "Помилка з'єднання, невірне гасло до AP"
|
||||
#define D_CONNECT_FAILED_AP_TIMEOUT "Помилка з'єднання з AP по тайм-ауту"
|
||||
#define D_ATTEMPTING_CONNECTION "Спроба підключення..."
|
||||
#define D_CHECKING_CONNECTION "Перевірка з'єднання..."
|
||||
#define D_QUERY_DONE "Запит виконаний. Виявлено служби MQTT"
|
||||
#define D_MQTT_SERVICE_FOUND "MQTT сервіс знайдено"
|
||||
#define D_FOUND_AT "знайдено в"
|
||||
#define D_SYSLOG_HOST_NOT_FOUND "System лог хост не знайдено"
|
||||
|
||||
// settings.ino
|
||||
#define D_SAVED_TO_FLASH_AT "Збережено в флэш-пам'ять"
|
||||
#define D_LOADED_FROM_FLASH_AT "Завантажено з флэш-пам'яті"
|
||||
#define D_USE_DEFAULTS "Використовувати значення за замовчуванням"
|
||||
#define D_ERASED_SECTOR "Стерти сектор"
|
||||
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "Прошивка MINIMAL - будь-ласка оновіть"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Веб-сервер активний"
|
||||
#define D_WITH_IP_ADDRESS "з IP-адресом"
|
||||
#define D_WEBSERVER_STOPPED "Веб-сервер зупинений"
|
||||
#define D_FILE_NOT_FOUND "Файл не знайдений"
|
||||
#define D_REDIRECTED "Перенаправлено на адаптивний портал"
|
||||
#define D_WIFIMANAGER_SET_ACCESSPOINT_AND_STATION "Wifi менеджер встановлює Точку Доступу і зберігає параметри"
|
||||
#define D_WIFIMANAGER_SET_ACCESSPOINT "Wifi менеджер встановив Точку Доступу"
|
||||
#define D_TRYING_TO_CONNECT "Спроба підключення пристрою до мережі"
|
||||
|
||||
#define D_RESTART_IN "Перезавантаження"
|
||||
#define D_SECONDS "секунд"
|
||||
#define D_DEVICE_WILL_RESTART "Пристрій буде перезавантажено через декілька секунд"
|
||||
#define D_BUTTON_TOGGLE "Переключити"
|
||||
#define D_CONFIGURATION "Конфігурація"
|
||||
#define D_INFORMATION "Інформація"
|
||||
#define D_FIRMWARE_UPGRADE "Оновлення прошивки"
|
||||
#define D_CONSOLE "Консоль"
|
||||
#define D_CONFIRM_RESTART "Підтвердити перезавантаження"
|
||||
|
||||
#define D_CONFIGURE_MODULE "Конфігурація модуля"
|
||||
#define D_CONFIGURE_WIFI "Конфігурація WiFi"
|
||||
#define D_CONFIGURE_MQTT "Конфігурація MQTT"
|
||||
#define D_CONFIGURE_DOMOTICZ "Конфігурація Domoticz"
|
||||
#define D_CONFIGURE_LOGGING "Конфігурація Логів"
|
||||
#define D_CONFIGURE_OTHER "Конфігурація інше"
|
||||
#define D_CONFIRM_RESET_CONFIGURATION "Підтвердити скидання конфігурації"
|
||||
#define D_RESET_CONFIGURATION "Скидання конфігурації"
|
||||
#define D_BACKUP_CONFIGURATION "Резервне копіювання конфігурації"
|
||||
#define D_RESTORE_CONFIGURATION "Відновлення конфігурації"
|
||||
#define D_MAIN_MENU "Головне меню"
|
||||
|
||||
#define D_MODULE_PARAMETERS "Параметри модулю"
|
||||
#define D_MODULE_TYPE "Тип модулю"
|
||||
#define D_GPIO "GPIO"
|
||||
#define D_SERIAL_IN "Serial вхід"
|
||||
#define D_SERIAL_OUT "Serial вихід"
|
||||
|
||||
#define D_WIFI_PARAMETERS "Параметри Wifi"
|
||||
#define D_SCAN_FOR_WIFI_NETWORKS "Сканування беспроводових мереж Wifi"
|
||||
#define D_SCAN_DONE "Сканування завершене"
|
||||
#define D_NO_NETWORKS_FOUND "Не знайдено мереж"
|
||||
#define D_REFRESH_TO_SCAN_AGAIN "Оновити для повторного сканування"
|
||||
#define D_DUPLICATE_ACCESSPOINT "Дублювати Точку Доступу (AP)"
|
||||
#define D_SKIPPING_LOW_QUALITY "Пропущено через низьку якість"
|
||||
#define D_RSSI "RSSI"
|
||||
#define D_WEP "WEP"
|
||||
#define D_WPA_PSK "WPA PSK"
|
||||
#define D_WPA2_PSK "WPA2 PSK"
|
||||
#define D_AP1_SSID "AP1 SSID"
|
||||
#define D_AP1_PASSWORD "AP1 Гасло"
|
||||
#define D_AP2_SSID "AP2 SSID"
|
||||
#define D_AP2_PASSWORD "AP2 Гасло"
|
||||
|
||||
#define D_MQTT_PARAMETERS "Параметри MQTT"
|
||||
#define D_CLIENT "Клієнт"
|
||||
#define D_FULL_TOPIC "Повний Топік"
|
||||
|
||||
#define D_LOGGING_PARAMETERS "Параметри логів"
|
||||
#define D_SERIAL_LOG_LEVEL "Serial лог рівень"
|
||||
#define D_WEB_LOG_LEVEL "Web лог рівень"
|
||||
#define D_SYS_LOG_LEVEL "System лог рівень"
|
||||
#define D_MORE_DEBUG "Додаткова інформація для налагодження"
|
||||
#define D_SYSLOG_HOST "System лог хост"
|
||||
#define D_SYSLOG_PORT "System лог порт"
|
||||
#define D_TELEMETRY_PERIOD "Період телеметрії"
|
||||
|
||||
#define D_OTHER_PARAMETERS "Параметри Інше"
|
||||
#define D_WEB_ADMIN_PASSWORD "Гасло Web адміністратора"
|
||||
#define D_MQTT_ENABLE "MQTT активний"
|
||||
#define D_FRIENDLY_NAME "Дружнє Ім'я"
|
||||
#define D_BELKIN_WEMO "Belkin WeMo"
|
||||
#define D_HUE_BRIDGE "Hue Bridge"
|
||||
#define D_SINGLE_DEVICE "одиночне"
|
||||
#define D_MULTI_DEVICE "мульти"
|
||||
|
||||
#define D_SAVE_CONFIGURATION "Зберегти конфігурацію"
|
||||
#define D_CONFIGURATION_SAVED "Конфігурація збережена "
|
||||
#define D_CONFIGURATION_RESET "Конфігурація скинута"
|
||||
|
||||
#define D_PROGRAM_VERSION "Версія програми"
|
||||
#define D_BUILD_DATE_AND_TIME "Дата & Час збірки"
|
||||
#define D_CORE_AND_SDK_VERSION "Версія Core/SDK"
|
||||
#define D_FLASH_WRITE_COUNT "Кіл-ть записів Flash"
|
||||
#define D_MAC_ADDRESS "MAC Адрес"
|
||||
#define D_MQTT_HOST "MQTT Хост"
|
||||
#define D_MQTT_PORT "MQTT Порт"
|
||||
#define D_MQTT_CLIENT "MQTT Клієнт ID"
|
||||
#define D_MQTT_USER "MQTT Користувач"
|
||||
#define D_MQTT_TOPIC "MQTT Топік"
|
||||
#define D_MQTT_GROUP_TOPIC "MQTT Топік групи"
|
||||
#define D_MQTT_FULL_TOPIC "MQTT Топік повний"
|
||||
#define D_MDNS_DISCOVERY "mDNS Виявлення"
|
||||
#define D_MDNS_ADVERTISE "mDNS Транcляція"
|
||||
#define D_ESP_CHIP_ID "ID чипу ESP"
|
||||
#define D_FLASH_CHIP_ID "ID чипу Flash пам'яті"
|
||||
#define D_FLASH_CHIP_SIZE "Розмір Flash пам'яті"
|
||||
#define D_FREE_PROGRAM_SPACE "Вільний простір програм"
|
||||
|
||||
#define D_UPGRADE_BY_WEBSERVER "Оновлення через Веб-сервер"
|
||||
#define D_OTA_URL "OTA Url"
|
||||
#define D_START_UPGRADE "Почати оновлення"
|
||||
#define D_UPGRADE_BY_FILE_UPLOAD "Оновлення шляхом завантаження файлів"
|
||||
#define D_UPLOAD_STARTED "Завантаження почалось"
|
||||
#define D_UPGRADE_STARTED "Оновлення почалось"
|
||||
#define D_UPLOAD_DONE "Завантаження завершено"
|
||||
#define D_UPLOAD_ERR_1 "Файл не вибраний"
|
||||
#define D_UPLOAD_ERR_2 "Недостатньо місця"
|
||||
#define D_UPLOAD_ERR_3 "Magic байт не 0xE9"
|
||||
#define D_UPLOAD_ERR_4 "Размір прошивки більше, чим реальний размір флеш пам'яті"
|
||||
#define D_UPLOAD_ERR_5 "Помилка завантаження буферу"
|
||||
#define D_UPLOAD_ERR_6 "Помилка завантаження. Увімкнено лог рівень 3"
|
||||
#define D_UPLOAD_ERR_7 "Завантаження перервано"
|
||||
#define D_UPLOAD_ERR_8 "Файл невірний"
|
||||
#define D_UPLOAD_ERR_9 "Занадто великий файл"
|
||||
#define D_UPLOAD_ERROR_CODE "Код помилки завантаження"
|
||||
|
||||
#define D_ENTER_COMMAND "Уведіть команду"
|
||||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "Увімкніть Веб лог рівня 2 якщо очікуєте відповідь"
|
||||
#define D_NEED_USER_AND_PASSWORD "Очікується user=<username>&password=<password>"
|
||||
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "Перевірка TLS відбитка..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "Збій підключення TLS до"
|
||||
#define D_RETRY_IN "Повторити"
|
||||
#define D_VERIFIED "Перевірено відбиток"
|
||||
#define D_INSECURE "Небезпечне з'єднання, недійсний відбиток "
|
||||
#define D_CONNECT_FAILED_TO "Помилка підключення до"
|
||||
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "Multicast вимкнений"
|
||||
#define D_MULTICAST_REJOINED "Multicast (пере)під'єднався"
|
||||
#define D_MULTICAST_JOIN_FAILED "Multicast помилка з'єднання"
|
||||
#define D_FAILED_TO_SEND_RESPONSE "Не вдалось відправити відповідь"
|
||||
|
||||
#define D_WEMO "WeMo"
|
||||
#define D_WEMO_BASIC_EVENT "WeMo основна подія"
|
||||
#define D_WEMO_EVENT_SERVICE "WeMo служба подій"
|
||||
#define D_WEMO_META_SERVICE "WeMo мета-сервіс"
|
||||
#define D_WEMO_SETUP "WeMo налаштування"
|
||||
#define D_RESPONSE_SENT "Відповідь відправлена"
|
||||
|
||||
#define D_HUE "Hue"
|
||||
#define D_HUE_BRIDGE_SETUP "Hue налаштування"
|
||||
#define D_HUE_API_NOT_IMPLEMENTED "Hue API не реалізовано"
|
||||
#define D_HUE_API "Hue API"
|
||||
#define D_HUE_POST_ARGS "Hue POST args"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 пакету відповіді отримано"
|
||||
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz налаштування"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Ключ idx"
|
||||
#define D_DOMOTICZ_SWITCH_IDX "Перемикач idx"
|
||||
#define D_DOMOTICZ_SENSOR_IDX "Датчик idx"
|
||||
#define D_DOMOTICZ_TEMP "Температура"
|
||||
#define D_DOMOTICZ_TEMP_HUM "Темп,Волог"
|
||||
#define D_DOMOTICZ_TEMP_HUM_BARO "Темп,Волог,Тиск"
|
||||
#define D_DOMOTICZ_POWER_ENERGY "Потуж,Енергія"
|
||||
#define D_DOMOTICZ_ILLUMINANCE "Освітлення"
|
||||
#define D_DOMOTICZ_COUNT "Лічильник/PM1"
|
||||
#define D_DOMOTICZ_VOLTAGE "Напруга/PM2,5"
|
||||
#define D_DOMOTICZ_CURRENT "Струм/PM10"
|
||||
#define D_DOMOTICZ_AIRQUALITY "Якість повітря"
|
||||
#define D_DOMOTICZ_UPDATE_TIMER "Оновлення таймерів"
|
||||
|
||||
// xdrv_09_timers.ino
|
||||
#define D_CONFIGURE_TIMER "Конфігурація таймеру"
|
||||
#define D_TIMER_PARAMETERS "Налаштування таймеру"
|
||||
#define D_TIMER_ARM "Увімкнений"
|
||||
#define D_TIMER_TIME "Час"
|
||||
#define D_TIMER_DAYS "Дні"
|
||||
#define D_TIMER_REPEAT "Повтор"
|
||||
#define D_TIMER_OUTPUT "Вихід"
|
||||
#define D_TIMER_ACTION "Дія"
|
||||
|
||||
// xdrv_10_knx.ino
|
||||
#define D_CONFIGURE_KNX "Конфігурація KNX"
|
||||
#define D_KNX_PARAMETERS "Налаштування KNX"
|
||||
#define D_KNX_GENERAL_CONFIG "Основні"
|
||||
#define D_KNX_PHYSICAL_ADDRESS "Фізична адреса"
|
||||
#define D_KNX_PHYSICAL_ADDRESS_NOTE "( Має бути унікальним у мережі KNX)"
|
||||
#define D_KNX_ENABLE "Увімкнений KNX"
|
||||
#define D_KNX_GROUP_ADDRESS_TO_WRITE "Дані для запису групових адрес"
|
||||
#define D_ADD "Додати"
|
||||
#define D_DELETE "Видалити"
|
||||
#define D_REPLY "Повторити"
|
||||
#define D_KNX_GROUP_ADDRESS_TO_READ "Дані для читання групових адрес"
|
||||
#define D_LOG_KNX "KNX: "
|
||||
#define D_RECEIVED_FROM "Отримати з"
|
||||
#define D_KNX_COMMAND_WRITE "Записати"
|
||||
#define D_KNX_COMMAND_READ "Читати"
|
||||
#define D_KNX_COMMAND_OTHER "Інше"
|
||||
#define D_SENT_TO "надіслати до"
|
||||
#define D_KNX_WARNING "Адреса групи (0/0/0) зарезервована і не може бути використана."
|
||||
#define D_KNX_ENHANCEMENT "Підвищення зв'язку"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "Енергія Сьогодні"
|
||||
#define D_ENERGY_YESTERDAY "Енергія Вчора"
|
||||
#define D_ENERGY_TOTAL "Енергія Всього"
|
||||
|
||||
// xsns_05_ds18b20.ino
|
||||
#define D_SENSOR_BUSY "Датчик DS18x20 занятий"
|
||||
#define D_SENSOR_CRC_ERROR "Датчик DS18x20 - помилка CRC"
|
||||
#define D_SENSORS_FOUND "Датчик DS18x20 знайдено"
|
||||
|
||||
// xsns_06_dht.ino
|
||||
#define D_TIMEOUT_WAITING_FOR "Тайм-аут, в очікуванні"
|
||||
#define D_START_SIGNAL_LOW "стартовий сигнал низький"
|
||||
#define D_START_SIGNAL_HIGH "стартовий сигнал високий"
|
||||
#define D_PULSE "імпульс"
|
||||
#define D_CHECKSUM_FAILURE "Помилка контрольної суми"
|
||||
|
||||
// xsns_07_sht1x.ino
|
||||
#define D_SENSOR_DID_NOT_ACK_COMMAND "Датчик не отримав команду ACK"
|
||||
#define D_SHT1X_FOUND "SHT1X знайдено"
|
||||
|
||||
// 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 "Через Частини"
|
||||
|
||||
// sonoff_template.h
|
||||
#define D_SENSOR_NONE "-відсутньо-"
|
||||
#define D_SENSOR_DHT11 "DHT11"
|
||||
#define D_SENSOR_AM2301 "AM2301"
|
||||
#define D_SENSOR_SI7021 "SI7021"
|
||||
#define D_SENSOR_DS18X20 "DS18x20"
|
||||
#define D_SENSOR_I2C_SCL "I2C SCL"
|
||||
#define D_SENSOR_I2C_SDA "I2C SDA"
|
||||
#define D_SENSOR_WS2812 "WS2812"
|
||||
#define D_SENSOR_IRSEND "IRsend"
|
||||
#define D_SENSOR_SWITCH "Перемикач" // Suffix "1"
|
||||
#define D_SENSOR_BUTTON "Кнопка" // Suffix "1"
|
||||
#define D_SENSOR_RELAY "Реле" // Suffix "1i"
|
||||
#define D_SENSOR_LED "Led" // Suffix "1i"
|
||||
#define D_SENSOR_PWM "PWM" // Suffix "1"
|
||||
#define D_SENSOR_COUNTER "Лічильник" // Suffix "1"
|
||||
#define D_SENSOR_IRRECV "IRrecv"
|
||||
#define D_SENSOR_MHZ_RX "MHZ Rx"
|
||||
#define D_SENSOR_MHZ_TX "MHZ Tx"
|
||||
#define D_SENSOR_PZEM_RX "PZEM Rx"
|
||||
#define D_SENSOR_PZEM_TX "PZEM Tx"
|
||||
#define D_SENSOR_SAIR_RX "SAir Rx"
|
||||
#define D_SENSOR_SAIR_TX "SAir Tx"
|
||||
#define D_SENSOR_SPI_CS "SPI CS"
|
||||
#define D_SENSOR_SPI_DC "SPI DC"
|
||||
#define D_SENSOR_BACKLIGHT "BkLight"
|
||||
#define D_SENSOR_PMS5003 "PMS5003"
|
||||
#define D_SENSOR_SDS0X1 "SDS0X1"
|
||||
#define D_SENSOR_SBR_RX "SerBr Rx"
|
||||
#define D_SENSOR_SBR_TX "SerBr Tx"
|
||||
#define D_SENSOR_SR04_TRIG "SR04 Tri"
|
||||
#define D_SENSOR_SR04_ECHO "SR04 Ech"
|
||||
#define D_SENSOR_SDM120_TX "SDM120 Tx"
|
||||
#define D_SENSOR_SDM120_RX "SDM120 Rx"
|
||||
#define D_SENSOR_SDM630_TX "SDM630 Tx"
|
||||
#define D_SENSOR_SDM630_RX "SDM630 Rx"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "А"
|
||||
#define D_UNIT_CENTIMETER "cм"
|
||||
#define D_UNIT_HERTZ "Гц"
|
||||
#define D_UNIT_HOUR "Г"
|
||||
#define D_UNIT_KILOOHM "кОм"
|
||||
#define D_UNIT_KILOWATTHOUR "кВт"
|
||||
#define D_UNIT_LUX "лк"
|
||||
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "мкг/м3"
|
||||
#define D_UNIT_MICROMETER "мкм"
|
||||
#define D_UNIT_MICROSECOND "мкс"
|
||||
#define D_UNIT_MILLIAMPERE "мА"
|
||||
#define D_UNIT_MILLISECOND "мс"
|
||||
#define D_UNIT_MINUTE "хв"
|
||||
#define D_UNIT_PARTS_PER_BILLION "ppb"
|
||||
#define D_UNIT_PARTS_PER_DECILITER "ppd"
|
||||
#define D_UNIT_PARTS_PER_MILLION "ppm"
|
||||
#define D_UNIT_PRESSURE "гПа"
|
||||
#define D_UNIT_SECOND "сек"
|
||||
#define D_UNIT_SECTORS "секторів"
|
||||
#define D_UNIT_VA "ВA"
|
||||
#define D_UNIT_VAR "VAr"
|
||||
#define D_UNIT_VOLT "В"
|
||||
#define D_UNIT_WATT "Вт"
|
||||
#define D_UNIT_WATTHOUR "ВтГод"
|
||||
|
||||
// Log message prefix
|
||||
#define D_LOG_APPLICATION "APP: " // Application
|
||||
#define D_LOG_BRIDGE "BRG: " // Bridge
|
||||
#define D_LOG_CONFIG "CFG: " // Settings
|
||||
#define D_LOG_COMMAND "CMD: " // Command
|
||||
#define D_LOG_DEBUG "DBG: " // Debug
|
||||
#define D_LOG_DHT "DHT: " // DHT sensor
|
||||
#define D_LOG_DOMOTICZ "DOM: " // Domoticz
|
||||
#define D_LOG_DSB "DSB: " // DS18xB20 sensor
|
||||
#define D_LOG_HTTP "HTP: " // HTTP webserver
|
||||
#define D_LOG_I2C "I2C: " // I2C
|
||||
#define D_LOG_IRR "IRR: " // Infra Red Received
|
||||
#define D_LOG_LOG "LOG: " // Logging
|
||||
#define D_LOG_MODULE "MOD: " // Module
|
||||
#define D_LOG_MDNS "DNS: " // mDNS
|
||||
#define D_LOG_MQTT "MQT: " // MQTT
|
||||
#define D_LOG_OTHER "OTH: " // Other
|
||||
#define D_LOG_RESULT "RSL: " // Result
|
||||
#define D_LOG_RFR "RFR: " // RF Received
|
||||
#define D_LOG_SERIAL "SER: " // Serial
|
||||
#define D_LOG_SHT1 "SHT: " // SHT1x sensor
|
||||
#define D_LOG_UPLOAD "UPL: " // Upload
|
||||
#define D_LOG_UPNP "UPP: " // UPnP
|
||||
#define D_LOG_WIFI "WIF: " // Wifi
|
||||
|
||||
#endif // _LANGUAGE_UK_UK_H_
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "使用默认设置"
|
||||
#define D_ERASED_SECTOR "擦除删除"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "固件版本过低 - 请升级"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web服务器:"
|
||||
#define D_WITH_IP_ADDRESS "IP地址:"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "如果预期响应,则启用Weblog 2"
|
||||
#define D_NEED_USER_AND_PASSWORD "需要 user=<用户名>&password=<密码>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "验证 TLS 指纹..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS 连接失败"
|
||||
#define D_RETRY_IN "重试倒计时:"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "指纹无效导致连接不安全"
|
||||
#define D_CONNECT_FAILED_TO "连接失败:"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "组播已禁用"
|
||||
#define D_MULTICAST_REJOINED "组播已(重新)加入"
|
||||
#define D_MULTICAST_JOIN_FAILED "组播加入失败"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST 参数"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 请求包发送"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz 设置"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "今日用电量"
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
#define D_USE_DEFAULTS "使用默認設置"
|
||||
#define D_ERASED_SECTOR "擦除刪除"
|
||||
|
||||
// webserver.ino
|
||||
// xdrv_02_webserver.ino
|
||||
#define D_MINIMAL_FIRMWARE_PLEASE_UPGRADE "固件版本過低 - 請升級"
|
||||
#define D_WEBSERVER_ACTIVE_ON "Web服務器:"
|
||||
#define D_WITH_IP_ADDRESS "IP地址:"
|
||||
|
@ -327,7 +327,7 @@
|
|||
#define D_ENABLE_WEBLOG_FOR_RESPONSE "如果預期響應,則啟用Weblog 2"
|
||||
#define D_NEED_USER_AND_PASSWORD "需要 user=<用戶名>&password=<密碼>"
|
||||
|
||||
// xdrv_00_mqtt.ino
|
||||
// xdrv_01_mqtt.ino
|
||||
#define D_FINGERPRINT "驗證 TLS 指紋..."
|
||||
#define D_TLS_CONNECT_FAILED_TO "TLS 連接失敗"
|
||||
#define D_RETRY_IN "重試倒計時:"
|
||||
|
@ -335,7 +335,7 @@
|
|||
#define D_INSECURE "指紋無效導致連接不安全"
|
||||
#define D_CONNECT_FAILED_TO "連接失敗:"
|
||||
|
||||
// xdrv_wemohue.ino
|
||||
// xplg_wemohue.ino
|
||||
#define D_MULTICAST_DISABLED "組播已禁用"
|
||||
#define D_MULTICAST_REJOINED "組播已(重新)加入"
|
||||
#define D_MULTICAST_JOIN_FAILED "組播加入失敗"
|
||||
|
@ -355,7 +355,7 @@
|
|||
#define D_HUE_POST_ARGS "Hue POST 參數"
|
||||
#define D_3_RESPONSE_PACKETS_SENT "3 請求包發送"
|
||||
|
||||
// xdrv_05_domoticz.ino
|
||||
// xdrv_07_domoticz.ino
|
||||
#define D_DOMOTICZ_PARAMETERS "Domoticz 設置"
|
||||
#define D_DOMOTICZ_IDX "Idx"
|
||||
#define D_DOMOTICZ_KEY_IDX "Key idx"
|
||||
|
@ -402,6 +402,8 @@
|
|||
#define D_SENT_TO "sent to"
|
||||
#define D_KNX_WARNING "The group address ( 0 / 0 / 0 ) is reserved and can not be used."
|
||||
#define D_KNX_ENHANCEMENT "Communication Enhancement"
|
||||
#define D_KNX_TX_SLOT "KNX TX"
|
||||
#define D_KNX_RX_SLOT "KNX RX"
|
||||
|
||||
// xdrv_03_energy.ino
|
||||
#define D_ENERGY_TODAY "今日用電量"
|
||||
|
|
|
@ -137,7 +137,7 @@ typedef unsigned long power_t; // Power (Relay) type
|
|||
#define DAWN_NAUTIC -12.0
|
||||
#define DAWN_ASTRONOMIC -18.0
|
||||
|
||||
// Sensor definition for KNX Driver
|
||||
// Sensor and Commands definition for KNX Driver
|
||||
#define KNX_TEMPERATURE 17
|
||||
#define KNX_HUMIDITY 18
|
||||
#define KNX_ENERGY_VOLTAGE 19
|
||||
|
@ -147,7 +147,13 @@ typedef unsigned long power_t; // Power (Relay) type
|
|||
#define KNX_ENERGY_DAILY 23
|
||||
#define KNX_ENERGY_START 24
|
||||
#define KNX_ENERGY_TOTAL 25
|
||||
#define KNX_MAX_device_param 25
|
||||
#define KNX_SLOT1 26
|
||||
#define KNX_SLOT2 27
|
||||
#define KNX_SLOT3 28
|
||||
#define KNX_SLOT4 29
|
||||
#define KNX_SLOT5 30
|
||||
#define KNX_MAX_device_param 30
|
||||
#define MAX_KNXTX_CMNDS 5
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Enumeration
|
||||
|
@ -192,6 +198,10 @@ enum XsnsFunctions {FUNC_INIT, FUNC_LOOP, FUNC_EVERY_50_MSECOND, FUNC_EVERY_SECO
|
|||
|
||||
const uint8_t kDefaultRfCode[9] PROGMEM = { 0x21, 0x16, 0x01, 0x0E, 0x03, 0x48, 0x2E, 0x1A, 0x00 };
|
||||
|
||||
enum CommandSource { SRC_IGNORE, SRC_MQTT, SRC_RESTART, SRC_BUTTON, SRC_SWITCH, SRC_BACKLOG, SRC_SERIAL, SRC_WEBGUI, SRC_WEBCOMMAND, SRC_WEBCONSOLE, SRC_PULSETIMER,
|
||||
SRC_TIMER, SRC_RULE, SRC_MAXPOWER, SRC_MAXENERGY, SRC_LIGHT, SRC_KNX, SRC_DISPLAY, SRC_WEMO, SRC_HUE, SRC_MAX };
|
||||
const char kCommandSource[] PROGMEM = "I|MQTT|Restart|Button|Switch|Backlog|Serial|WebGui|WebCommand|WebConsole|PulseTimer|Timer|Rule|MaxPower|MaxEnergy|Light|Knx|Display|Wemo|Hue";
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Extern global variables
|
||||
\*********************************************************************************************/
|
||||
|
|
|
@ -82,7 +82,7 @@ enum TasmotaCommands {
|
|||
CMND_GPIO, CMND_GPIOS, CMND_PWM, CMND_PWMFREQUENCY, CMND_PWMRANGE, CMND_COUNTER, CMND_COUNTERTYPE,
|
||||
CMND_COUNTERDEBOUNCE, CMND_SLEEP, CMND_UPGRADE, CMND_UPLOAD, CMND_OTAURL, CMND_SERIALLOG, CMND_SYSLOG,
|
||||
CMND_LOGHOST, CMND_LOGPORT, CMND_IPADDRESS, CMND_NTPSERVER, CMND_AP, CMND_SSID, CMND_PASSWORD, CMND_HOSTNAME,
|
||||
CMND_WIFICONFIG, CMND_FRIENDLYNAME, CMND_SWITCHMODE, CMND_WEBSERVER, CMND_WEBPASSWORD, CMND_WEBLOG, CMND_EMULATION,
|
||||
CMND_WIFICONFIG, CMND_FRIENDLYNAME, CMND_SWITCHMODE,
|
||||
CMND_TELEPERIOD, CMND_RESTART, CMND_RESET, CMND_TIMEZONE, CMND_TIMESTD, CMND_TIMEDST, CMND_ALTITUDE, CMND_LEDPOWER, CMND_LEDSTATE,
|
||||
CMND_I2CSCAN, CMND_SERIALSEND, CMND_BAUDRATE, CMND_SERIALDELIMITER };
|
||||
const char kTasmotaCommands[] PROGMEM =
|
||||
|
@ -92,7 +92,7 @@ const char kTasmotaCommands[] PROGMEM =
|
|||
D_CMND_GPIO "|" D_CMND_GPIOS "|" D_CMND_PWM "|" D_CMND_PWMFREQUENCY "|" D_CMND_PWMRANGE "|" D_CMND_COUNTER "|" D_CMND_COUNTERTYPE "|"
|
||||
D_CMND_COUNTERDEBOUNCE "|" D_CMND_SLEEP "|" D_CMND_UPGRADE "|" D_CMND_UPLOAD "|" D_CMND_OTAURL "|" D_CMND_SERIALLOG "|" D_CMND_SYSLOG "|"
|
||||
D_CMND_LOGHOST "|" D_CMND_LOGPORT "|" D_CMND_IPADDRESS "|" D_CMND_NTPSERVER "|" D_CMND_AP "|" D_CMND_SSID "|" D_CMND_PASSWORD "|" D_CMND_HOSTNAME "|"
|
||||
D_CMND_WIFICONFIG "|" D_CMND_FRIENDLYNAME "|" D_CMND_SWITCHMODE "|" D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_EMULATION "|"
|
||||
D_CMND_WIFICONFIG "|" D_CMND_FRIENDLYNAME "|" D_CMND_SWITCHMODE "|"
|
||||
D_CMND_TELEPERIOD "|" D_CMND_RESTART "|" D_CMND_RESET "|" D_CMND_TIMEZONE "|" D_CMND_TIMESTD "|" D_CMND_TIMEDST "|" D_CMND_ALTITUDE "|" D_CMND_LEDPOWER "|" D_CMND_LEDSTATE "|"
|
||||
D_CMND_I2CSCAN "|" D_CMND_SERIALSEND "|" D_CMND_BAUDRATE "|" D_CMND_SERIALDELIMITER;
|
||||
|
||||
|
@ -304,10 +304,12 @@ void SetLatchingRelay(power_t power, uint8_t state)
|
|||
}
|
||||
}
|
||||
|
||||
void SetDevicePower(power_t rpower)
|
||||
void SetDevicePower(power_t rpower, int source)
|
||||
{
|
||||
uint8_t state;
|
||||
|
||||
ShowSource(source);
|
||||
|
||||
if (POWER_ALL_ALWAYS_ON == Settings.poweronstate) { // All on and stay on
|
||||
power = (1 << devices_present) -1;
|
||||
rpower = power;
|
||||
|
@ -396,6 +398,8 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
|||
memcpy(dataBuf, data +i, sizeof(dataBuf));
|
||||
dataBuf[sizeof(dataBuf)-1] = 0;
|
||||
|
||||
if (topicBuf[0] != '/') { ShowSource(SRC_MQTT); }
|
||||
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_RESULT D_RECEIVED_TOPIC " %s, " D_DATA_SIZE " %d, " D_DATA " %s"),
|
||||
topicBuf, data_len, dataBuf);
|
||||
AddLog(LOG_LEVEL_DEBUG_MORE);
|
||||
|
@ -490,7 +494,7 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
|||
else if ((CMND_POWER == command_code) && (index > 0) && (index <= devices_present)) {
|
||||
if ((payload < 0) || (payload > 4)) payload = 9;
|
||||
// Settings.flag.device_index_enable = user_append_index;
|
||||
ExecuteCommandPower(index, payload);
|
||||
ExecuteCommandPower(index, payload, SRC_IGNORE);
|
||||
fallback_topic_flag = 0;
|
||||
return;
|
||||
}
|
||||
|
@ -516,7 +520,7 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
|||
Settings.poweronstate = payload;
|
||||
if (POWER_ALL_ALWAYS_ON == Settings.poweronstate) {
|
||||
for (byte i = 1; i <= devices_present; i++) {
|
||||
ExecuteCommandPower(i, POWER_ON);
|
||||
ExecuteCommandPower(i, POWER_ON, SRC_IGNORE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -980,38 +984,6 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
|||
if ((payload >= 0) && (payload < MAX_SWITCH_OPTION)) Settings.switchmode[index -1] = payload;
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_NVALUE, command, index, Settings.switchmode[index-1]);
|
||||
}
|
||||
#ifdef USE_WEBSERVER
|
||||
else if (CMND_WEBSERVER == command_code) {
|
||||
if ((payload >= 0) && (payload <= 2)) Settings.webserver = payload;
|
||||
if (Settings.webserver) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_WEBSERVER "\":\"" D_JSON_ACTIVE_FOR " %s " D_JSON_ON_DEVICE " %s " D_JSON_WITH_IP_ADDRESS " %s\"}"),
|
||||
(2 == Settings.webserver) ? D_ADMIN : D_USER, my_hostname, WiFi.localIP().toString().c_str());
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, GetStateText(0));
|
||||
}
|
||||
}
|
||||
else if (CMND_WEBPASSWORD == command_code) {
|
||||
if ((data_len > 0) && (data_len < sizeof(Settings.web_password))) {
|
||||
strlcpy(Settings.web_password, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? WEB_PASSWORD : dataBuf, sizeof(Settings.web_password));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, Settings.web_password);
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_ASTERIX, command);
|
||||
}
|
||||
}
|
||||
else if (CMND_WEBLOG == command_code) {
|
||||
if ((payload >= LOG_LEVEL_NONE) && (payload <= LOG_LEVEL_ALL)) Settings.weblog_level = payload;
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.weblog_level);
|
||||
}
|
||||
#ifdef USE_EMULATION
|
||||
else if (CMND_EMULATION == command_code) {
|
||||
if ((payload >= EMUL_NONE) && (payload < EMUL_MAX)) {
|
||||
Settings.flag2.emulation = payload;
|
||||
restart_flag = 2;
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.flag2.emulation);
|
||||
}
|
||||
#endif // USE_EMULATION
|
||||
#endif // USE_WEBSERVER
|
||||
else if (CMND_TELEPERIOD == command_code) {
|
||||
if ((payload >= 0) && (payload < 3601)) {
|
||||
Settings.tele_period = (1 == payload) ? TELE_PERIOD : payload;
|
||||
|
@ -1187,7 +1159,7 @@ boolean SendKey(byte key, byte device, byte state)
|
|||
return result;
|
||||
}
|
||||
|
||||
void ExecuteCommandPower(byte device, byte state)
|
||||
void ExecuteCommandPower(byte device, byte state, int source)
|
||||
{
|
||||
// device = Relay number 1 and up
|
||||
// state 0 = Relay Off
|
||||
|
@ -1199,6 +1171,8 @@ void ExecuteCommandPower(byte device, byte state)
|
|||
// state 7 = Relay On and no publishPowerState
|
||||
// state 9 = Show power state
|
||||
|
||||
// ShowSource(source);
|
||||
|
||||
uint8_t publish_power = 1;
|
||||
if ((POWER_OFF_NO_STATE == state) || (POWER_ON_NO_STATE == state)) {
|
||||
state &= 1;
|
||||
|
@ -1216,7 +1190,7 @@ void ExecuteCommandPower(byte device, byte state)
|
|||
interlock_mutex = 1;
|
||||
for (byte i = 0; i < devices_present; i++) {
|
||||
power_t imask = 1 << i;
|
||||
if ((power & imask) && (mask != imask)) ExecuteCommandPower(i +1, POWER_OFF);
|
||||
if ((power & imask) && (mask != imask)) ExecuteCommandPower(i +1, POWER_OFF, SRC_IGNORE);
|
||||
}
|
||||
interlock_mutex = 0;
|
||||
}
|
||||
|
@ -1230,7 +1204,7 @@ void ExecuteCommandPower(byte device, byte state)
|
|||
case POWER_TOGGLE:
|
||||
power ^= mask;
|
||||
}
|
||||
SetDevicePower(power);
|
||||
SetDevicePower(power, source);
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzUpdatePowerState(device);
|
||||
#endif // USE_DOMOTICZ
|
||||
|
@ -1257,7 +1231,7 @@ void ExecuteCommandPower(byte device, byte state)
|
|||
byte flag = (blink_mask & mask);
|
||||
blink_mask &= (POWER_MASK ^ mask); // Clear device mask
|
||||
MqttPublishPowerBlinkState(device);
|
||||
if (flag) ExecuteCommandPower(device, (blink_powersave >> (device -1))&1); // Restore state
|
||||
if (flag) ExecuteCommandPower(device, (blink_powersave >> (device -1))&1, SRC_IGNORE); // Restore state
|
||||
return;
|
||||
}
|
||||
if (publish_power) MqttPublishPowerState(device);
|
||||
|
@ -1272,18 +1246,20 @@ void StopAllPowerBlink()
|
|||
if (blink_mask & mask) {
|
||||
blink_mask &= (POWER_MASK ^ mask); // Clear device mask
|
||||
MqttPublishPowerBlinkState(i);
|
||||
ExecuteCommandPower(i, (blink_powersave >> (i -1))&1); // Restore state
|
||||
ExecuteCommandPower(i, (blink_powersave >> (i -1))&1, SRC_IGNORE); // Restore state
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ExecuteCommand(char *cmnd)
|
||||
void ExecuteCommand(char *cmnd, int source)
|
||||
{
|
||||
char stopic[CMDSZ];
|
||||
char svalue[INPUT_BUFFER_SIZE];
|
||||
char *start;
|
||||
char *token;
|
||||
|
||||
ShowSource(source);
|
||||
|
||||
token = strtok(cmnd, " ");
|
||||
if (token != NULL) {
|
||||
start = strrchr(token, '/'); // Skip possible cmnd/sonoff/ preamble
|
||||
|
@ -1582,7 +1558,7 @@ void ButtonHandler()
|
|||
}
|
||||
if (button_pressed) {
|
||||
if (!SendKey(0, button_index +1, POWER_TOGGLE)) { // Execute Toggle command via MQTT if ButtonTopic is set
|
||||
ExecuteCommandPower(button_index +1, POWER_TOGGLE); // Execute Toggle command internally
|
||||
ExecuteCommandPower(button_index +1, POWER_TOGGLE, SRC_BUTTON); // Execute Toggle command internally
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -1591,7 +1567,7 @@ void ButtonHandler()
|
|||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_APPLICATION D_BUTTON "%d " D_IMMEDIATE), button_index +1);
|
||||
AddLog(LOG_LEVEL_DEBUG);
|
||||
if (!SendKey(0, button_index +1, POWER_TOGGLE)) { // Execute Toggle command via MQTT if ButtonTopic is set
|
||||
ExecuteCommandPower(button_index +1, POWER_TOGGLE); // Execute Toggle command internally
|
||||
ExecuteCommandPower(button_index +1, POWER_TOGGLE, SRC_BUTTON); // Execute Toggle command internally
|
||||
}
|
||||
} else {
|
||||
multipress[button_index] = (multiwindow[button_index]) ? multipress[button_index] +1 : 1;
|
||||
|
@ -1610,7 +1586,7 @@ void ButtonHandler()
|
|||
if (holdbutton[button_index] == Settings.param[P_HOLD_TIME] * (STATES / 10) * hold_time_extent) { // Button held for factor times longer
|
||||
// Settings.flag.button_single = 0;
|
||||
snprintf_P(scmnd, sizeof(scmnd), PSTR(D_CMND_SETOPTION "13 0")); // Disable single press only
|
||||
ExecuteCommand(scmnd);
|
||||
ExecuteCommand(scmnd, SRC_BUTTON);
|
||||
}
|
||||
} else {
|
||||
if (Settings.flag.button_restrict) { // Button restriction
|
||||
|
@ -1622,7 +1598,7 @@ void ButtonHandler()
|
|||
if (holdbutton[button_index] == (Settings.param[P_HOLD_TIME] * (STATES / 10)) * hold_time_extent) { // Button held for factor times longer
|
||||
multipress[button_index] = 0;
|
||||
snprintf_P(scmnd, sizeof(scmnd), PSTR(D_CMND_RESET " 1"));
|
||||
ExecuteCommand(scmnd);
|
||||
ExecuteCommand(scmnd, SRC_BUTTON);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1649,12 +1625,12 @@ void ButtonHandler()
|
|||
if (WifiState()) { // WPSconfig, Smartconfig or Wifimanager active
|
||||
restart_flag = 1;
|
||||
} else {
|
||||
ExecuteCommandPower(button_index + multipress[button_index], POWER_TOGGLE); // Execute Toggle command internally
|
||||
ExecuteCommandPower(button_index + multipress[button_index], POWER_TOGGLE, SRC_BUTTON); // Execute Toggle command internally
|
||||
}
|
||||
} else { // 3 - 7 press
|
||||
if (!Settings.flag.button_restrict) {
|
||||
snprintf_P(scmnd, sizeof(scmnd), kCommands[multipress[button_index] -3]);
|
||||
ExecuteCommand(scmnd);
|
||||
ExecuteCommand(scmnd, SRC_BUTTON);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1737,7 +1713,7 @@ void SwitchHandler()
|
|||
|
||||
if (switchflag < 3) {
|
||||
if (!SendKey(1, i +1, switchflag)) { // Execute command via MQTT
|
||||
ExecuteCommandPower(i +1, switchflag); // Execute command internally (if i < devices_present)
|
||||
ExecuteCommandPower(i +1, switchflag, SRC_SWITCH); // Execute command internally (if i < devices_present)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1784,8 +1760,8 @@ void StateLoop()
|
|||
if ((pulse_timer[i] > 0) && (pulse_timer[i] < 112)) {
|
||||
pulse_timer[i]--;
|
||||
if (!pulse_timer[i]) {
|
||||
// ExecuteCommandPower(i +1, POWER_OFF);
|
||||
ExecuteCommandPower(i +1, (POWER_ALL_OFF_PULSETIME_ON == Settings.poweronstate) ? POWER_ON : POWER_OFF);
|
||||
// ExecuteCommandPower(i +1, POWER_OFF, SRC_PULSETIMER);
|
||||
ExecuteCommandPower(i +1, (POWER_ALL_OFF_PULSETIME_ON == Settings.poweronstate) ? POWER_ON : POWER_OFF, SRC_PULSETIMER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1800,7 +1776,7 @@ void StateLoop()
|
|||
} else {
|
||||
blink_power ^= 1;
|
||||
power_now = (power & (POWER_MASK ^ blink_mask)) | ((blink_power) ? blink_mask : 0);
|
||||
SetDevicePower(power_now);
|
||||
SetDevicePower(power_now, SRC_IGNORE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1809,7 +1785,7 @@ void StateLoop()
|
|||
if (backlog_delay) backlog_delay--;
|
||||
if ((backlog_pointer != backlog_index) && !backlog_delay && !backlog_mutex) {
|
||||
backlog_mutex = 1;
|
||||
ExecuteCommand((char*)backlog[backlog_pointer].c_str());
|
||||
ExecuteCommand((char*)backlog[backlog_pointer].c_str(), SRC_BACKLOG);
|
||||
backlog_mutex = 0;
|
||||
backlog_pointer++;
|
||||
if (backlog_pointer >= MAX_BACKLOG) backlog_pointer = 0;
|
||||
|
@ -2154,7 +2130,7 @@ void SerialInput()
|
|||
seriallog_level = (Settings.seriallog_level < LOG_LEVEL_INFO) ? (byte)LOG_LEVEL_INFO : Settings.seriallog_level;
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_COMMAND "%s"), serial_in_buffer);
|
||||
AddLog(LOG_LEVEL_INFO);
|
||||
ExecuteCommand(serial_in_buffer);
|
||||
ExecuteCommand(serial_in_buffer, SRC_SERIAL);
|
||||
serial_in_byte_counter = 0;
|
||||
serial_polling_window = 0;
|
||||
Serial.flush();
|
||||
|
@ -2411,36 +2387,36 @@ void setup()
|
|||
|
||||
if (MOTOR == Settings.module) Settings.poweronstate = POWER_ALL_ON; // Needs always on else in limbo!
|
||||
if (POWER_ALL_ALWAYS_ON == Settings.poweronstate) {
|
||||
SetDevicePower(1);
|
||||
SetDevicePower(1, SRC_RESTART);
|
||||
} else {
|
||||
if ((resetInfo.reason == REASON_DEFAULT_RST) || (resetInfo.reason == REASON_EXT_SYS_RST)) {
|
||||
switch (Settings.poweronstate) {
|
||||
case POWER_ALL_OFF:
|
||||
case POWER_ALL_OFF_PULSETIME_ON:
|
||||
power = 0;
|
||||
SetDevicePower(power);
|
||||
SetDevicePower(power, SRC_RESTART);
|
||||
break;
|
||||
case POWER_ALL_ON: // All on
|
||||
power = (1 << devices_present) -1;
|
||||
SetDevicePower(power);
|
||||
SetDevicePower(power, SRC_RESTART);
|
||||
break;
|
||||
case POWER_ALL_SAVED_TOGGLE:
|
||||
power = (Settings.power & ((1 << devices_present) -1)) ^ POWER_MASK;
|
||||
if (Settings.flag.save_state) {
|
||||
SetDevicePower(power);
|
||||
SetDevicePower(power, SRC_RESTART);
|
||||
}
|
||||
break;
|
||||
case POWER_ALL_SAVED:
|
||||
power = Settings.power & ((1 << devices_present) -1);
|
||||
if (Settings.flag.save_state) {
|
||||
SetDevicePower(power);
|
||||
SetDevicePower(power, SRC_RESTART);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
power = Settings.power & ((1 << devices_present) -1);
|
||||
if (Settings.flag.save_state) {
|
||||
SetDevicePower(power);
|
||||
SetDevicePower(power, SRC_RESTART);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2480,13 +2456,6 @@ void loop()
|
|||
|
||||
OsWatchLoop();
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
PollDnsWebserver();
|
||||
#ifdef USE_EMULATION
|
||||
if (Settings.flag2.emulation) PollUdp();
|
||||
#endif // USE_EMULATION
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
if (millis() >= state_loop_timer) StateLoop();
|
||||
|
||||
if (!serial_local) SerialInput();
|
||||
|
|
|
@ -244,6 +244,29 @@ char* LTrim(char* p)
|
|||
return p;
|
||||
}
|
||||
|
||||
char* RTrim(char* p)
|
||||
{
|
||||
char* q = p + strlen(p) -1;
|
||||
while ((q >= p) && (isblank(*q))) {
|
||||
q--; // Trim trailing spaces
|
||||
}
|
||||
q++;
|
||||
*q = '\0';
|
||||
return p;
|
||||
}
|
||||
|
||||
char* Trim(char* p)
|
||||
{
|
||||
if (*p == '\0') { return p; }
|
||||
while (isspace(*p)) { p++; } // Trim leading spaces
|
||||
if (*p == '\0') { return p; }
|
||||
char* q = p + strlen(p) -1;
|
||||
while (isspace(*q) && q >= p) { q--; } // Trim trailing spaces
|
||||
q++;
|
||||
*q = '\0';
|
||||
return p;
|
||||
}
|
||||
|
||||
char* NoAlNumToUnderscore(char* dest, const char* source)
|
||||
{
|
||||
char* write = dest;
|
||||
|
@ -606,6 +629,15 @@ uint32_t GetHash(const char *buffer, size_t size)
|
|||
return hash;
|
||||
}
|
||||
|
||||
void ShowSource(int source)
|
||||
{
|
||||
if ((source > 0) && (source < SRC_MAX)) {
|
||||
char stemp1[20];
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR("SRC: %s"), GetTextIndexed(stemp1, sizeof(stemp1), source, kCommandSource));
|
||||
AddLog(LOG_LEVEL_DEBUG);
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Fill feature list
|
||||
\*********************************************************************************************/
|
||||
|
@ -633,52 +665,52 @@ void GetFeatures()
|
|||
feature_drv1 |= 0x00000040; // sonoff.ino
|
||||
#endif
|
||||
#ifdef USE_WEBSERVER
|
||||
feature_drv1 |= 0x00000080; // webserver.ino
|
||||
feature_drv1 |= 0x00000080; // xdrv_02_webserver.ino
|
||||
#endif
|
||||
#ifdef WEBSERVER_ADVERTISE
|
||||
feature_drv1 |= 0x00000100; // webserver.ino
|
||||
feature_drv1 |= 0x00000100; // xdrv_02_webserver.ino
|
||||
#endif
|
||||
#ifdef USE_EMULATION
|
||||
feature_drv1 |= 0x00000200; // xplg_wemohue.ino
|
||||
#endif
|
||||
#if (MQTT_LIBRARY_TYPE == MQTT_PUBSUBCLIENT)
|
||||
feature_drv1 |= 0x00000400; // xdrv_00_mqtt.ino
|
||||
feature_drv1 |= 0x00000400; // xdrv_01_mqtt.ino
|
||||
#endif
|
||||
#if (MQTT_LIBRARY_TYPE == MQTT_TASMOTAMQTT)
|
||||
feature_drv1 |= 0x00000800; // xdrv_00_mqtt.ino
|
||||
feature_drv1 |= 0x00000800; // xdrv_01_mqtt.ino
|
||||
#endif
|
||||
#if (MQTT_LIBRARY_TYPE == MQTT_ESPMQTTARDUINO)
|
||||
feature_drv1 |= 0x00001000; // xdrv_00_mqtt.ino
|
||||
feature_drv1 |= 0x00001000; // xdrv_01_mqtt.ino
|
||||
#endif
|
||||
#ifdef MQTT_HOST_DISCOVERY
|
||||
feature_drv1 |= 0x00002000; // xdrv_00_mqtt.ino
|
||||
feature_drv1 |= 0x00002000; // xdrv_01_mqtt.ino
|
||||
#endif
|
||||
#ifdef USE_ARILUX_RF
|
||||
feature_drv1 |= 0x00004000; // xdrv_01_light.ino
|
||||
feature_drv1 |= 0x00004000; // xdrv_04_light.ino
|
||||
#endif
|
||||
#ifdef USE_WS2812
|
||||
feature_drv1 |= 0x00008000; // xdrv_01_light.ino
|
||||
feature_drv1 |= 0x00008000; // xdrv_04_light.ino
|
||||
#endif
|
||||
#ifdef USE_WS2812_DMA
|
||||
feature_drv1 |= 0x00010000; // xdrv_01_light.ino
|
||||
feature_drv1 |= 0x00010000; // xdrv_04_light.ino
|
||||
#endif
|
||||
#ifdef USE_IR_REMOTE
|
||||
feature_drv1 |= 0x00020000; // xdrv_02_irremote.ino
|
||||
feature_drv1 |= 0x00020000; // xdrv_05_irremote.ino
|
||||
#endif
|
||||
#ifdef USE_IR_HVAC
|
||||
feature_drv1 |= 0x00040000; // xdrv_02_irremote.ino
|
||||
feature_drv1 |= 0x00040000; // xdrv_05_irremote.ino
|
||||
#endif
|
||||
#ifdef USE_IR_RECEIVE
|
||||
feature_drv1 |= 0x00080000; // xdrv_02_irremote.ino
|
||||
feature_drv1 |= 0x00080000; // xdrv_05_irremote.ino
|
||||
#endif
|
||||
#ifdef USE_DOMOTICZ
|
||||
feature_drv1 |= 0x00100000; // xdrv_05_domoticz.ino
|
||||
feature_drv1 |= 0x00100000; // xdrv_07_domoticz.ino
|
||||
#endif
|
||||
#ifdef USE_DISPLAY
|
||||
feature_drv1 |= 0x00200000; // xdrv_06_display.ino
|
||||
feature_drv1 |= 0x00200000; // xdrv_98_display.ino
|
||||
#endif
|
||||
#ifdef USE_HOME_ASSISTANT
|
||||
feature_drv1 |= 0x00400000; // xdrv_07_home_assistant.ino
|
||||
feature_drv1 |= 0x00400000; // xdrv_12_home_assistant.ino
|
||||
#endif
|
||||
#ifdef USE_SERIAL_BRIDGE
|
||||
feature_drv1 |= 0x00800000; // xdrv_08_serial_bridge.ino
|
||||
|
@ -1141,7 +1173,7 @@ void WifiCheck(uint8_t param)
|
|||
StartWebserver(Settings.webserver, WiFi.localIP());
|
||||
#ifdef USE_DISCOVERY
|
||||
#ifdef WEBSERVER_ADVERTISE
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
MDNS.addService("http", "tcp", WEB_PORT);
|
||||
#endif // WEBSERVER_ADVERTISE
|
||||
#endif // USE_DISCOVERY
|
||||
} else {
|
||||
|
|
|
@ -196,6 +196,7 @@
|
|||
//#define MY_LANGUAGE pt-BR // Portuguese in Brazil
|
||||
//#define MY_LANGUAGE pt-PT // Portuguese in Portugal
|
||||
//#define MY_LANGUAGE ru-RU // Russian in Russia
|
||||
//#define MY_LANGUAGE uk-UK // Ukrainian in Ukrain
|
||||
//#define MY_LANGUAGE zh-CN // Chinese (Simplified) in China
|
||||
//#define MY_LANGUAGE zh-TW // Chinese (Traditional) in Taiwan
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xdrv_00_mqtt.ino - mqtt support for Sonoff-Tasmota
|
||||
xdrv_01_mqtt.ino - mqtt support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends
|
||||
|
||||
|
@ -745,9 +745,9 @@ bool MqttCommand()
|
|||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_00
|
||||
#define XDRV_01
|
||||
|
||||
boolean Xdrv00(byte function)
|
||||
boolean Xdrv01(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
webserver.ino - webserver for Sonoff-Tasmota
|
||||
xdrv_02_webserver.ino - webserver for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends
|
||||
|
||||
|
@ -337,6 +337,21 @@ static void WebGetArg(const char* arg, char* out, size_t max)
|
|||
out[max-1] = '\0'; // Ensure terminating NUL
|
||||
}
|
||||
|
||||
void ShowWebSource(int source)
|
||||
{
|
||||
if ((source > 0) && (source < SRC_MAX)) {
|
||||
char stemp1[20];
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR("SRC: %s from %s"), GetTextIndexed(stemp1, sizeof(stemp1), source, kCommandSource), WebServer->client().remoteIP().toString().c_str());
|
||||
AddLog(LOG_LEVEL_DEBUG);
|
||||
}
|
||||
}
|
||||
|
||||
void ExecuteWebCommand(char* svalue, int source)
|
||||
{
|
||||
ShowWebSource(source);
|
||||
ExecuteCommand(svalue, SRC_IGNORE);
|
||||
}
|
||||
|
||||
void StartWebserver(int type, IPAddress ipweb)
|
||||
{
|
||||
if (!webserver_state) {
|
||||
|
@ -567,22 +582,23 @@ void HandleAjaxStatusRefresh()
|
|||
|
||||
WebGetArg("o", tmp, sizeof(tmp));
|
||||
if (strlen(tmp)) {
|
||||
ExecuteCommandPower(atoi(tmp), POWER_TOGGLE);
|
||||
ShowWebSource(SRC_WEBGUI);
|
||||
ExecuteCommandPower(atoi(tmp), POWER_TOGGLE, SRC_IGNORE);
|
||||
}
|
||||
WebGetArg("d", tmp, sizeof(tmp));
|
||||
if (strlen(tmp)) {
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR(D_CMND_DIMMER " %s"), tmp);
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
WebGetArg("t", tmp, sizeof(tmp));
|
||||
if (strlen(tmp)) {
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR(D_CMND_COLORTEMPERATURE " %s"), tmp);
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
WebGetArg("k", tmp, sizeof(tmp));
|
||||
if (strlen(tmp)) {
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR(D_CMND_RFKEY "%s"), tmp);
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{t}"));
|
||||
|
@ -1106,6 +1122,7 @@ void HandleSaveSettings()
|
|||
}
|
||||
ShowPage(page);
|
||||
|
||||
ShowWebSource(SRC_WEBGUI);
|
||||
restart_flag = 2;
|
||||
} else {
|
||||
HandleConfiguration();
|
||||
|
@ -1129,7 +1146,7 @@ void HandleResetConfiguration()
|
|||
ShowPage(page);
|
||||
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR(D_CMND_RESET " 1"));
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
|
||||
void HandleRestoreConfiguration()
|
||||
|
@ -1181,7 +1198,7 @@ void HandleUpgradeFirmwareStart()
|
|||
WebGetArg("o", tmp, sizeof(tmp));
|
||||
if (strlen(tmp)) {
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR(D_CMND_OTAURL " %s"), tmp);
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
|
||||
String page = FPSTR(HTTP_HEAD);
|
||||
|
@ -1193,7 +1210,7 @@ void HandleUpgradeFirmwareStart()
|
|||
ShowPage(page);
|
||||
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR(D_CMND_UPGRADE " 1"));
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
|
||||
void HandleUploadDone()
|
||||
|
@ -1233,6 +1250,8 @@ void HandleUploadDone()
|
|||
} else {
|
||||
page += F("green'>" D_SUCCESSFUL "</font></b><br/>");
|
||||
page += FPSTR(HTTP_MSG_RSTRT);
|
||||
|
||||
ShowWebSource(SRC_WEBGUI);
|
||||
restart_flag = 2;
|
||||
}
|
||||
SettingsBufferFree();
|
||||
|
@ -1381,16 +1400,16 @@ void HandleHttpCommand()
|
|||
WebGetArg("user", tmp1, sizeof(tmp1));
|
||||
char tmp2[100];
|
||||
WebGetArg("password", tmp2, sizeof(tmp2));
|
||||
if (!(!strcmp(tmp1, WEB_USERNAME) && !strcmp(tmp2, Settings.web_password))) {
|
||||
valid = 0;
|
||||
}
|
||||
if (!(!strcmp(tmp1, WEB_USERNAME) && !strcmp(tmp2, Settings.web_password))) { valid = 0; }
|
||||
}
|
||||
|
||||
String message = F("{\"" D_RSLT_WARNING "\":\"");
|
||||
if (valid) {
|
||||
byte curridx = web_log_index;
|
||||
WebGetArg("cmnd", svalue, sizeof(svalue));
|
||||
if (strlen(svalue)) { ExecuteCommand(svalue); }
|
||||
if (strlen(svalue)) {
|
||||
ExecuteWebCommand(svalue, SRC_WEBCOMMAND);
|
||||
}
|
||||
|
||||
if (web_log_index != curridx) {
|
||||
byte counter = curridx;
|
||||
|
@ -1449,7 +1468,7 @@ void HandleAjaxConsoleRefresh()
|
|||
if (strlen(svalue)) {
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_COMMAND "%s"), svalue);
|
||||
AddLog(LOG_LEVEL_INFO);
|
||||
ExecuteCommand(svalue);
|
||||
ExecuteWebCommand(svalue, SRC_WEBCONSOLE);
|
||||
}
|
||||
|
||||
WebGetArg("c2", svalue, sizeof(svalue));
|
||||
|
@ -1624,6 +1643,7 @@ void HandleRestart()
|
|||
}
|
||||
ShowPage(page);
|
||||
|
||||
ShowWebSource(SRC_WEBGUI);
|
||||
restart_flag = 2;
|
||||
}
|
||||
|
||||
|
@ -1676,4 +1696,202 @@ boolean ValidIpAddress(String str)
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*********************************************************************************************/
|
||||
|
||||
String UrlEncode(const String& text)
|
||||
{
|
||||
const char hex[] = "0123456789ABCDEF";
|
||||
|
||||
String encoded = "";
|
||||
int len = text.length();
|
||||
int i = 0;
|
||||
while (i < len) {
|
||||
char decodedChar = text.charAt(i++);
|
||||
|
||||
/*
|
||||
if (('a' <= decodedChar && decodedChar <= 'z') ||
|
||||
('A' <= decodedChar && decodedChar <= 'Z') ||
|
||||
('0' <= decodedChar && decodedChar <= '9') ||
|
||||
('=' == decodedChar)) {
|
||||
encoded += decodedChar;
|
||||
} else {
|
||||
encoded += '%';
|
||||
encoded += hex[decodedChar >> 4];
|
||||
encoded += hex[decodedChar & 0xF];
|
||||
}
|
||||
*/
|
||||
if (' ' == decodedChar) {
|
||||
encoded += '%';
|
||||
encoded += hex[decodedChar >> 4];
|
||||
encoded += hex[decodedChar & 0xF];
|
||||
} else {
|
||||
encoded += decodedChar;
|
||||
}
|
||||
|
||||
}
|
||||
return encoded;
|
||||
}
|
||||
|
||||
int WebSend(char *buffer)
|
||||
{
|
||||
// http://192.168.178.86:80/cm?user=admin&password=joker&cmnd=POWER1 ON
|
||||
// http://192.168.178.86:80/cm?cmnd=POWER1 ON
|
||||
// [192.168.178.86:80,admin:joker] POWER1 ON
|
||||
|
||||
char *host;
|
||||
char *port;
|
||||
char *user;
|
||||
char *password;
|
||||
char *command;
|
||||
uint16_t nport = 80;
|
||||
int status = 1; // Wrong parameters
|
||||
|
||||
host = strtok_r(buffer, "]", &command); // buffer = [192.168.178.86:80,admin:joker] POWER1 ON
|
||||
if (host && command) {
|
||||
host = LTrim(host);
|
||||
host++; // Skip [
|
||||
host = strtok_r(host, ",", &user); // host = 192.168.178.86:80,admin:joker > 192.168.178.86:80
|
||||
host = strtok_r(host, ":", &port); // host = 192.168.178.86:80 > 192.168.178.86
|
||||
if (user) {
|
||||
user = strtok_r(user, ":", &password); // user = admin:joker > admin
|
||||
}
|
||||
|
||||
//snprintf_P(log_data, sizeof(log_data), PSTR("DBG: Buffer |%X|, Host |%X|, Port |%X|, User |%X|, Password |%X|, Command |%X|"), buffer, host, port, user, password, command);
|
||||
//AddLog(LOG_LEVEL_DEBUG);
|
||||
|
||||
if (port) { nport = atoi(port); }
|
||||
|
||||
String nuri = "";
|
||||
if (user && password) {
|
||||
nuri += F("user=");
|
||||
nuri += user;
|
||||
nuri += F("&password=");
|
||||
nuri += password;
|
||||
nuri += F("&");
|
||||
}
|
||||
nuri += F("cmnd=");
|
||||
nuri += LTrim(command);
|
||||
String uri = UrlEncode(nuri);
|
||||
|
||||
IPAddress host_ip;
|
||||
if (WiFi.hostByName(host, host_ip)) {
|
||||
WiFiClient client;
|
||||
|
||||
bool connected = false;
|
||||
byte retry = 2;
|
||||
while ((retry > 0) && !connected) {
|
||||
--retry;
|
||||
connected = client.connect(host_ip, nport);
|
||||
if (connected) break;
|
||||
}
|
||||
|
||||
if (connected) {
|
||||
String url = F("GET /cm?");
|
||||
url += uri;
|
||||
url += F(" HTTP/1.1\r\n Host: ");
|
||||
url += IPAddress(host_ip).toString();
|
||||
if (port) {
|
||||
url += F(" \r\n Port: ");
|
||||
url += port;
|
||||
}
|
||||
url += F(" \r\n Connection: close\r\n\r\n");
|
||||
|
||||
//snprintf_P(log_data, sizeof(log_data), PSTR("DBG: Url |%s|"), url.c_str());
|
||||
//AddLog(LOG_LEVEL_DEBUG);
|
||||
|
||||
client.print(url.c_str());
|
||||
client.flush();
|
||||
client.stop();
|
||||
status = 0; // No error - Done
|
||||
} else {
|
||||
status = 2; // Connection failed
|
||||
}
|
||||
} else {
|
||||
status = 3; // Host not found
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/*********************************************************************************************/
|
||||
|
||||
enum WebCommands { CMND_WEBSERVER, CMND_WEBPASSWORD, CMND_WEBLOG, CMND_WEBSEND, CMND_EMULATION };
|
||||
const char kWebCommands[] PROGMEM = D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_WEBSEND "|" D_CMND_EMULATION ;
|
||||
const char kWebSendStatus[] PROGMEM = D_JSON_DONE "|" D_JSON_WRONG_PARAMETERS "|" D_JSON_CONNECT_FAILED "|" D_JSON_HOST_NOT_FOUND ;
|
||||
|
||||
bool WebCommand()
|
||||
{
|
||||
char command[CMDSZ];
|
||||
bool serviced = true;
|
||||
|
||||
int command_code = GetCommandCode(command, sizeof(command), XdrvMailbox.topic, kWebCommands);
|
||||
if (-1 == command_code) {
|
||||
serviced = false; // Unknown command
|
||||
}
|
||||
if (CMND_WEBSERVER == command_code) {
|
||||
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 2)) { Settings.webserver = XdrvMailbox.payload; }
|
||||
if (Settings.webserver) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_WEBSERVER "\":\"" D_JSON_ACTIVE_FOR " %s " D_JSON_ON_DEVICE " %s " D_JSON_WITH_IP_ADDRESS " %s\"}"),
|
||||
(2 == Settings.webserver) ? D_ADMIN : D_USER, my_hostname, WiFi.localIP().toString().c_str());
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, GetStateText(0));
|
||||
}
|
||||
}
|
||||
else if (CMND_WEBPASSWORD == command_code) {
|
||||
if ((XdrvMailbox.data_len > 0) && (XdrvMailbox.data_len < sizeof(Settings.web_password))) {
|
||||
strlcpy(Settings.web_password, (!strcmp(XdrvMailbox.data,"0")) ? "" : (1 == XdrvMailbox.payload) ? WEB_PASSWORD : XdrvMailbox.data, sizeof(Settings.web_password));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, Settings.web_password);
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_ASTERIX, command);
|
||||
}
|
||||
}
|
||||
else if (CMND_WEBLOG == command_code) {
|
||||
if ((XdrvMailbox.payload >= LOG_LEVEL_NONE) && (XdrvMailbox.payload <= LOG_LEVEL_ALL)) { Settings.weblog_level = XdrvMailbox.payload; }
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.weblog_level);
|
||||
}
|
||||
else if (CMND_WEBSEND == command_code) {
|
||||
if (XdrvMailbox.data_len > 0) {
|
||||
uint8_t result = WebSend(XdrvMailbox.data);
|
||||
char stemp1[20];
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, GetTextIndexed(stemp1, sizeof(stemp1), result, kWebSendStatus));
|
||||
}
|
||||
}
|
||||
#ifdef USE_EMULATION
|
||||
else if (CMND_EMULATION == command_code) {
|
||||
if ((XdrvMailbox.payload >= EMUL_NONE) && (XdrvMailbox.payload < EMUL_MAX)) {
|
||||
Settings.flag2.emulation = XdrvMailbox.payload;
|
||||
restart_flag = 2;
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.flag2.emulation);
|
||||
}
|
||||
#endif // USE_EMULATION
|
||||
else serviced = false; // Unknown command
|
||||
|
||||
return serviced;
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_02
|
||||
|
||||
boolean Xdrv02(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
||||
switch (function) {
|
||||
case FUNC_LOOP:
|
||||
PollDnsWebserver();
|
||||
#ifdef USE_EMULATION
|
||||
if (Settings.flag2.emulation) PollUdp();
|
||||
#endif // USE_EMULATION
|
||||
break;
|
||||
case FUNC_COMMAND:
|
||||
result = WebCommand();
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
|
@ -371,7 +371,12 @@ bool CseSerialInput()
|
|||
return 1;
|
||||
}
|
||||
} else {
|
||||
if (0x5A == serial_in_byte) { // 0x5A - Packet header 2
|
||||
if ((0x5A == serial_in_byte) && (serial_in_byte_counter)) { // 0x5A - Packet header 2
|
||||
if (serial_in_byte_counter > 1) { // Sync buffer with data (issue #1907)
|
||||
serial_in_buffer[0] = serial_in_buffer[--serial_in_byte_counter];
|
||||
serial_in_byte_counter = 1;
|
||||
AddLog_P(LOG_LEVEL_DEBUG, PSTR("CSE: Fixed out-of-sync"));
|
||||
}
|
||||
cse_receive_flag = 1;
|
||||
} else {
|
||||
serial_in_byte_counter = 0;
|
||||
|
@ -721,7 +726,7 @@ void EnergyMarginCheck()
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_MAXPOWERREACHED "\":\"%d%s\"}"), energy_power_u, (Settings.flag.value_units) ? " " D_UNIT_WATT : "");
|
||||
MqttPublishPrefixTopic_P(STAT, S_RSLT_WARNING);
|
||||
EnergyMqttShow();
|
||||
ExecuteCommandPower(1, POWER_OFF);
|
||||
ExecuteCommandPower(1, POWER_OFF, SRC_MAXPOWER);
|
||||
if (!energy_mplr_counter) {
|
||||
energy_mplr_counter = Settings.param[P_MAX_POWER_RETRY] +1;
|
||||
}
|
||||
|
@ -743,7 +748,7 @@ void EnergyMarginCheck()
|
|||
if (energy_mplr_counter) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_POWERMONITOR "\":\"%s\"}"), GetStateText(1));
|
||||
MqttPublishPrefixTopic_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
|
||||
ExecuteCommandPower(1, POWER_ON);
|
||||
ExecuteCommandPower(1, POWER_ON, SRC_MAXPOWER);
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_MAXPOWERREACHEDRETRY "\":\"%s\"}"), GetStateText(0));
|
||||
MqttPublishPrefixTopic_P(STAT, S_RSLT_WARNING);
|
||||
|
@ -761,7 +766,7 @@ void EnergyMarginCheck()
|
|||
energy_max_energy_state = 1;
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_ENERGYMONITOR "\":\"%s\"}"), GetStateText(1));
|
||||
MqttPublishPrefixTopic_P(RESULT_OR_STAT, PSTR(D_JSON_ENERGYMONITOR));
|
||||
ExecuteCommandPower(1, POWER_ON);
|
||||
ExecuteCommandPower(1, POWER_ON, SRC_MAXENERGY);
|
||||
}
|
||||
else if ((1 == energy_max_energy_state) && (energy_daily_u >= Settings.energy_max_energy)) {
|
||||
energy_max_energy_state = 2;
|
||||
|
@ -769,7 +774,7 @@ void EnergyMarginCheck()
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_JSON_MAXENERGYREACHED "\":\"%s%s\"}"), mqtt_data, (Settings.flag.value_units) ? " " D_UNIT_KILOWATTHOUR : "");
|
||||
MqttPublishPrefixTopic_P(STAT, S_RSLT_WARNING);
|
||||
EnergyMqttShow();
|
||||
ExecuteCommandPower(1, POWER_OFF);
|
||||
ExecuteCommandPower(1, POWER_OFF, SRC_MAXENERGY);
|
||||
}
|
||||
}
|
||||
#endif // FEATURE_POWER_LIMIT
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xdrv_01_light.ino - PWM, WS2812 and sonoff led support for Sonoff-Tasmota
|
||||
xdrv_04_light.ino - PWM, WS2812 and sonoff led support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends
|
||||
|
||||
|
@ -230,7 +230,7 @@ void AriluxRfHandler()
|
|||
}
|
||||
}
|
||||
if (strlen(command)) {
|
||||
ExecuteCommand(command);
|
||||
ExecuteCommand(command, SRC_LIGHT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -529,7 +529,7 @@ char* LightGetColor(uint8_t type, char* scolor)
|
|||
void LightPowerOn()
|
||||
{
|
||||
if (Settings.light_dimmer && !(light_power)) {
|
||||
ExecuteCommandPower(light_device, POWER_ON);
|
||||
ExecuteCommandPower(light_device, POWER_ON, SRC_LIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -585,11 +585,11 @@ void LightPreparePower()
|
|||
{
|
||||
if (Settings.light_dimmer && !(light_power)) {
|
||||
if (!Settings.flag.not_power_linked) {
|
||||
ExecuteCommandPower(light_device, POWER_ON_NO_STATE);
|
||||
ExecuteCommandPower(light_device, POWER_ON_NO_STATE, SRC_LIGHT);
|
||||
}
|
||||
}
|
||||
else if (!Settings.light_dimmer && light_power) {
|
||||
ExecuteCommandPower(light_device, POWER_OFF_NO_STATE);
|
||||
ExecuteCommandPower(light_device, POWER_OFF_NO_STATE, SRC_LIGHT);
|
||||
}
|
||||
#ifdef USE_DOMOTICZ
|
||||
DomoticzUpdatePowerState(light_device);
|
||||
|
@ -1287,9 +1287,9 @@ boolean LightCommand()
|
|||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_01
|
||||
#define XDRV_04
|
||||
|
||||
boolean Xdrv01(byte function)
|
||||
boolean Xdrv04(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xdrv_02_irremote.ino - infra red support for Sonoff-Tasmota
|
||||
xdrv_05_irremote.ino - infra red support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Heiko Krupp, Lazar Obradovic and Theo Arends
|
||||
|
||||
|
@ -393,9 +393,9 @@ boolean IrSendCommand()
|
|||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_02
|
||||
#define XDRV_05
|
||||
|
||||
boolean Xdrv02(byte function)
|
||||
boolean Xdrv05(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xdrv_04_snfbridge.ino - sonoff RF bridge 433 support for Sonoff-Tasmota
|
||||
xdrv_06_snfbridge.ino - sonoff RF bridge 433 support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends
|
||||
|
||||
|
@ -303,9 +303,9 @@ boolean SonoffBridgeCommand()
|
|||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_04
|
||||
#define XDRV_06
|
||||
|
||||
boolean Xdrv04(byte function)
|
||||
boolean Xdrv06(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xdrv_05_domoticz.ino - domoticz support for Sonoff-Tasmota
|
||||
xdrv_07_domoticz.ino - domoticz support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends
|
||||
|
||||
|
@ -437,9 +437,9 @@ void DomoticzSaveSettings()
|
|||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_05
|
||||
#define XDRV_07
|
||||
|
||||
boolean Xdrv05(byte function)
|
||||
boolean Xdrv07(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
|
@ -290,7 +290,7 @@ void TimerEverySecond()
|
|||
XdrvRulesProcess();
|
||||
} else
|
||||
#endif // USE_RULES
|
||||
if (devices_present) { ExecuteCommandPower(xtimer.device +1, xtimer.power); }
|
||||
if (devices_present) { ExecuteCommandPower(xtimer.device +1, xtimer.power, SRC_TIMER); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,6 +90,7 @@ uint32_t rules_triggers[MAX_RULE_SETS] = { 0 };
|
|||
uint8_t rules_trigger_count[MAX_RULE_SETS] = { 0 };
|
||||
uint8_t rules_teleperiod = 0;
|
||||
|
||||
char event_data[100];
|
||||
char vars[RULES_MAX_VARS][10] = { 0 };
|
||||
|
||||
/*******************************************************************************************/
|
||||
|
@ -324,7 +325,7 @@ bool RuleSetProcess(byte rule_set, String &event_saved)
|
|||
// snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, D_CMND_RULE, D_JSON_INITIATED);
|
||||
// MqttPublishPrefixTopic_P(RESULT_OR_STAT, PSTR(D_CMND_RULE));
|
||||
|
||||
ExecuteCommand(command);
|
||||
ExecuteCommand(command, SRC_RULE);
|
||||
serviced = true;
|
||||
}
|
||||
rules_trigger_count[rule_set]++;
|
||||
|
@ -374,7 +375,26 @@ void RulesEvery50ms()
|
|||
}
|
||||
}
|
||||
rules_old_power = rules_new_power;
|
||||
}
|
||||
else if(event_data[0]) {
|
||||
char *event;
|
||||
char *parameter;
|
||||
event = strtok_r(event_data, "=", ¶meter); // event_data = fanspeed=10
|
||||
if (event) {
|
||||
event = Trim(event);
|
||||
if (parameter) {
|
||||
parameter = Trim(parameter);
|
||||
} else {
|
||||
parameter = event + strlen(event); // '\0'
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"Event\":{\"%s\":\"%s\"}}"), event, parameter);
|
||||
event_data[0] ='\0';
|
||||
RulesProcess();
|
||||
} else {
|
||||
event_data[0] ='\0';
|
||||
}
|
||||
}
|
||||
else {
|
||||
rules_quota++;
|
||||
if (rules_quota &1) { // Every 100 ms
|
||||
mqtt_data[0] = '\0';
|
||||
|
@ -464,17 +484,7 @@ boolean RulesCommand()
|
|||
}
|
||||
else if (CMND_EVENT == command_code) {
|
||||
if (XdrvMailbox.data_len > 0) {
|
||||
String event = XdrvMailbox.data;
|
||||
String parameter = "";
|
||||
int pos = event.indexOf('=');
|
||||
if (pos > 0) {
|
||||
parameter = event.substring(pos +1);
|
||||
parameter.trim();
|
||||
event = event.substring(0, pos);
|
||||
}
|
||||
event.trim();
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"Event\":{\"%s\":\"%s\"}}"), event.c_str(), parameter.c_str());
|
||||
RulesProcess();
|
||||
strlcpy(event_data, XdrvMailbox.data, sizeof(event_data));
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, D_JSON_DONE);
|
||||
}
|
||||
|
|
|
@ -115,6 +115,11 @@ device_parameters_t device_param[] = {
|
|||
{ KNX_ENERGY_DAILY , false, false, KNX_Empty },
|
||||
{ KNX_ENERGY_START , false, false, KNX_Empty },
|
||||
{ KNX_ENERGY_TOTAL , false, false, KNX_Empty },
|
||||
{ KNX_SLOT1 , false, false, KNX_Empty },
|
||||
{ KNX_SLOT2 , false, false, KNX_Empty },
|
||||
{ KNX_SLOT3 , false, false, KNX_Empty },
|
||||
{ KNX_SLOT4 , false, false, KNX_Empty },
|
||||
{ KNX_SLOT5 , false, false, KNX_Empty },
|
||||
{ KNX_Empty, false, false, KNX_Empty}
|
||||
};
|
||||
|
||||
|
@ -145,6 +150,11 @@ const char * device_param_ga[] = {
|
|||
D_ENERGY_TODAY ,
|
||||
D_ENERGY_YESTERDAY ,
|
||||
D_ENERGY_TOTAL ,
|
||||
D_KNX_TX_SLOT " 1",
|
||||
D_KNX_TX_SLOT " 2",
|
||||
D_KNX_TX_SLOT " 3",
|
||||
D_KNX_TX_SLOT " 4",
|
||||
D_KNX_TX_SLOT " 5",
|
||||
nullptr
|
||||
};
|
||||
|
||||
|
@ -175,9 +185,20 @@ const char *device_param_cb[] = {
|
|||
D_REPLY " " D_ENERGY_TODAY ,
|
||||
D_REPLY " " D_ENERGY_YESTERDAY ,
|
||||
D_REPLY " " D_ENERGY_TOTAL ,
|
||||
D_KNX_RX_SLOT " 1",
|
||||
D_KNX_RX_SLOT " 2",
|
||||
D_KNX_RX_SLOT " 3",
|
||||
D_KNX_RX_SLOT " 4",
|
||||
D_KNX_RX_SLOT " 5",
|
||||
nullptr
|
||||
};
|
||||
|
||||
// Commands
|
||||
#define D_CMND_KNXTXCMND "KnxTx_Cmnd"
|
||||
#define D_CMND_KNXTXVAL "KnxTx_Val"
|
||||
enum KnxCommands { CMND_KNXTXCMND, CMND_KNXTXVAL };
|
||||
const char kKnxCommands[] PROGMEM = D_CMND_KNXTXCMND "|" D_CMND_KNXTXVAL ;
|
||||
|
||||
|
||||
byte KNX_GA_Search( byte param, byte start = 0 )
|
||||
{
|
||||
|
@ -377,12 +398,20 @@ bool KNX_CONFIG_NOT_MATCH()
|
|||
{
|
||||
if ( !device_param[i].show ) { // device has this parameter ?
|
||||
// if not, search for all registered group address to this parameter for deletion
|
||||
|
||||
// Checks all GA
|
||||
if ( KNX_GA_Search(i+1) != KNX_Empty ) { return true; }
|
||||
if ( (i < 8) || (i > 15) ) // check relays and sensors (i from 8 to 16 are toggle relays parameters)
|
||||
|
||||
// Check all CB
|
||||
if ( i < 8 ) // check relays (i from 8 to 15 are toggle relays parameters)
|
||||
{
|
||||
if ( KNX_CB_Search(i+1) != KNX_Empty ) { return true; }
|
||||
if ( KNX_CB_Search(i+9) != KNX_Empty ) { return true; }
|
||||
}
|
||||
if ( i > 15 ) // check sensors and others
|
||||
{
|
||||
if ( KNX_CB_Search(i+1) != KNX_Empty ) { return true; }
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -448,6 +477,14 @@ void KNX_INIT()
|
|||
device_param[KNX_ENERGY_POWERFACTOR-1].show = true;
|
||||
}
|
||||
|
||||
#ifdef USE_RULES
|
||||
device_param[KNX_SLOT1-1].show = true;
|
||||
device_param[KNX_SLOT2-1].show = true;
|
||||
device_param[KNX_SLOT3-1].show = true;
|
||||
device_param[KNX_SLOT4-1].show = true;
|
||||
device_param[KNX_SLOT5-1].show = true;
|
||||
#endif
|
||||
|
||||
// Delete from KNX settings all configuration is not anymore related to this device
|
||||
if (KNX_CONFIG_NOT_MATCH()) {
|
||||
Settings.knx_GA_registered = 0;
|
||||
|
@ -494,18 +531,32 @@ void KNX_CB_Action(message_t const &msg, void *arg)
|
|||
case KNX_CT_WRITE:
|
||||
if (chan->type < 9) // Set Relays
|
||||
{
|
||||
ExecuteCommandPower(chan->type, msg.data[0]);
|
||||
ExecuteCommandPower(chan->type, msg.data[0], SRC_KNX);
|
||||
}
|
||||
else if (chan->type < 17) // Toggle Relays
|
||||
{
|
||||
if (!toggle_inhibit) {
|
||||
ExecuteCommandPower((chan->type) -8, 2);
|
||||
ExecuteCommandPower((chan->type) -8, 2, SRC_KNX);
|
||||
if (Settings.flag.knx_enable_enhancement) {
|
||||
toggle_inhibit = TOGGLE_INHIBIT_TIME;
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef USE_RULES
|
||||
else if ((chan->type >= KNX_SLOT1) && (chan->type <= KNX_SLOT5)) // KNX RX SLOTs (write command)
|
||||
{
|
||||
if (!toggle_inhibit) {
|
||||
char command[25];
|
||||
snprintf_P(command, sizeof(command), PSTR("event KNXRX_VAL%d=%d"), ((chan->type) - KNX_SLOT1 + 1 ), msg.data[0]);
|
||||
ExecuteCommand(command, SRC_KNX);
|
||||
if (Settings.flag.knx_enable_enhancement) {
|
||||
toggle_inhibit = TOGGLE_INHIBIT_TIME;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
case KNX_CT_READ:
|
||||
if (chan->type < 9) // reply Relays status
|
||||
{
|
||||
|
@ -531,6 +582,19 @@ void KNX_CB_Action(message_t const &msg, void *arg)
|
|||
knx.answer_2byte_float(msg.received_on, last_hum);
|
||||
}
|
||||
}
|
||||
#ifdef USE_RULES
|
||||
else if ((chan->type >= KNX_SLOT1) && (chan->type <= KNX_SLOT5)) // KNX RX SLOTs (read command)
|
||||
{
|
||||
if (!toggle_inhibit) {
|
||||
char command[25];
|
||||
snprintf_P(command, sizeof(command), PSTR("event KNXRX_REQ%d"), ((chan->type) - KNX_SLOT1 + 1 ) );
|
||||
ExecuteCommand(command, SRC_KNX);
|
||||
if (Settings.flag.knx_enable_enhancement) {
|
||||
toggle_inhibit = TOGGLE_INHIBIT_TIME;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -939,6 +1003,71 @@ void KNX_Save_Settings()
|
|||
#endif // USE_WEBSERVER
|
||||
|
||||
|
||||
boolean KnxCommand()
|
||||
{
|
||||
char command[CMDSZ];
|
||||
uint8_t index = XdrvMailbox.index;
|
||||
int command_code = GetCommandCode(command, sizeof(command), XdrvMailbox.topic, kKnxCommands);
|
||||
|
||||
if (!(Settings.flag.knx_enabled)) { return false; }
|
||||
|
||||
if (-1 == command_code) { return false; } // Unknown command
|
||||
|
||||
else if ((CMND_KNXTXCMND == command_code) && (index > 0) && (index <= MAX_KNXTX_CMNDS) && (XdrvMailbox.data_len > 0)) {
|
||||
// index <- KNX SLOT to use
|
||||
// XdrvMailbox.payload <- data to send
|
||||
|
||||
// Search all the registered GA that has that output (variable: KNX SLOTx) as parameter
|
||||
byte i = KNX_GA_Search(index + KNX_SLOT1 -1);
|
||||
while ( i != KNX_Empty ) {
|
||||
KNX_addr.value = Settings.knx_GA_addr[i];
|
||||
knx.write_1bit(KNX_addr, !(XdrvMailbox.payload == 0));
|
||||
if (Settings.flag.knx_enable_enhancement) {
|
||||
knx.write_1bit(KNX_addr, !(XdrvMailbox.payload == 0));
|
||||
knx.write_1bit(KNX_addr, !(XdrvMailbox.payload == 0));
|
||||
}
|
||||
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "%s = %d " D_SENT_TO " %d.%d.%d"),
|
||||
device_param_ga[index + KNX_SLOT1 -2], !(XdrvMailbox.payload == 0),
|
||||
KNX_addr.ga.area, KNX_addr.ga.line, KNX_addr.ga.member);
|
||||
AddLog(LOG_LEVEL_INFO);
|
||||
|
||||
i = KNX_GA_Search(index + KNX_SLOT1 -1, i + 1);
|
||||
}
|
||||
}
|
||||
|
||||
else if ((CMND_KNXTXVAL == command_code) && (index > 0) && (index <= MAX_KNXTX_CMNDS) && (XdrvMailbox.data_len > 0)) {
|
||||
// index <- KNX SLOT to use
|
||||
// XdrvMailbox.payload <- data to send
|
||||
|
||||
// Search all the registered GA that has that output (variable: KNX SLOTx) as parameter
|
||||
byte i = KNX_GA_Search(index + KNX_SLOT1 -1);
|
||||
while ( i != KNX_Empty ) {
|
||||
KNX_addr.value = Settings.knx_GA_addr[i];
|
||||
knx.write_2byte_float(KNX_addr, XdrvMailbox.payload);
|
||||
if (Settings.flag.knx_enable_enhancement) {
|
||||
knx.write_2byte_float(KNX_addr, XdrvMailbox.payload);
|
||||
knx.write_2byte_float(KNX_addr, XdrvMailbox.payload);
|
||||
}
|
||||
|
||||
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_KNX "%s = %d " D_SENT_TO " %d.%d.%d"),
|
||||
device_param_ga[index + KNX_SLOT1 -2], XdrvMailbox.payload,
|
||||
KNX_addr.ga.area, KNX_addr.ga.line, KNX_addr.ga.member);
|
||||
AddLog(LOG_LEVEL_INFO);
|
||||
|
||||
i = KNX_GA_Search(index + KNX_SLOT1 -1, i + 1);
|
||||
}
|
||||
}
|
||||
|
||||
else { return false; } // Incomplete command
|
||||
|
||||
snprintf_P (mqtt_data, sizeof(mqtt_data), PSTR("{\"%s%d\":\"%d\"}"),
|
||||
command, index, XdrvMailbox.payload );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
@ -960,9 +1089,9 @@ boolean Xdrv11(byte function)
|
|||
toggle_inhibit--;
|
||||
}
|
||||
break;
|
||||
// case FUNC_COMMAND:
|
||||
// result = KNXCommand();
|
||||
// break;
|
||||
case FUNC_COMMAND:
|
||||
result = KnxCommand();
|
||||
break;
|
||||
// case FUNC_SET_POWER:
|
||||
// break;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xdrv_07_home_assistant.ino - home assistant support for Sonoff-Tasmota
|
||||
xdrv_12_home_assistant.ino - home assistant support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2018 Theo Arends
|
||||
|
||||
|
@ -208,9 +208,9 @@ void HAssDiscovery(uint8_t mode)
|
|||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_07
|
||||
#define XDRV_12
|
||||
|
||||
boolean Xdrv07(byte function)
|
||||
boolean Xdrv12(byte function)
|
||||
{
|
||||
boolean result = false;
|
||||
|
|
@ -18,10 +18,6 @@
|
|||
*/
|
||||
|
||||
boolean (* const xdrv_func_ptr[])(byte) PROGMEM = { // Driver Function Pointers
|
||||
#ifdef XDRV_00
|
||||
&Xdrv00,
|
||||
#endif
|
||||
|
||||
#ifdef XDRV_01
|
||||
&Xdrv01,
|
||||
#endif
|
||||
|
|
|
@ -387,10 +387,10 @@ void HandleUpnpEvent()
|
|||
//differentiate get and set state
|
||||
if (request.indexOf(F("SetBinaryState")) > 0) {
|
||||
if (request.indexOf(F("State>1</Binary")) > 0) {
|
||||
ExecuteCommandPower(devices_present, POWER_ON);
|
||||
ExecuteCommandPower(devices_present, POWER_ON, SRC_WEMO);
|
||||
}
|
||||
else if (request.indexOf(F("State>0</Binary")) > 0) {
|
||||
ExecuteCommandPower(devices_present, POWER_OFF);
|
||||
ExecuteCommandPower(devices_present, POWER_OFF, SRC_WEMO);
|
||||
}
|
||||
}
|
||||
else if(request.indexOf(F("GetBinaryState")) > 0){
|
||||
|
@ -660,10 +660,10 @@ void HueLights(String *path)
|
|||
on = hue_json["on"];
|
||||
switch(on)
|
||||
{
|
||||
case false : ExecuteCommandPower(device, POWER_OFF);
|
||||
case false : ExecuteCommandPower(device, POWER_OFF, SRC_HUE);
|
||||
response.replace("{re", "false");
|
||||
break;
|
||||
case true : ExecuteCommandPower(device, POWER_ON);
|
||||
case true : ExecuteCommandPower(device, POWER_ON, SRC_HUE);
|
||||
response.replace("{re", "true");
|
||||
break;
|
||||
default : response.replace("{re", (power & (1 << (device-1))) ? "true" : "false");
|
||||
|
|
|
@ -76,8 +76,8 @@ void Sgp30Show(boolean json)
|
|||
#ifdef USE_DOMOTICZ
|
||||
if (0 == tele_period) DomoticzSensor(DZ_AIRQUALITY, sgp.eCO2);
|
||||
#endif // USE_DOMOTICZ
|
||||
} else {
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SGP30, mqtt_data, sgp.eCO2, sgp.TVOC);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -262,9 +262,9 @@ void SDM120Show(boolean json)
|
|||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SDM120_DATA, mqtt_data, voltage, current, active_power, apparent_power, reactive_power, power_factor, frequency, energy_total);
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Interface
|
||||
|
|
|
@ -335,8 +335,8 @@ void Si1145Show(boolean json)
|
|||
#ifdef USE_DOMOTICZ
|
||||
if (0 == tele_period) DomoticzSensor(DZ_ILLUMINANCE, visible);
|
||||
#endif // USE_DOMOTICZ
|
||||
} else {
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SI1145, mqtt_data, visible, infrared, uvindex /100, uvindex %100);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -317,9 +317,9 @@ void SDM630Show(boolean json)
|
|||
active_power_l1, active_power_l2, active_power_l3,
|
||||
reactive_power_l1, reactive_power_l2, reactive_power_l3,
|
||||
power_factor_l1, power_factor_l2, power_factor_l3, energy_total);
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Interface
|
||||
|
|
Loading…
Reference in New Issue