+TasmotaModbus *Ddsu666Modbus;
+
+const uint16_t Ddsu666_start_addresses[] {
+ 0x2000, // DDSU666_VOLTAGE [V]
+ 0x2002, // DDSU666_CURRENT [A]
+ 0x2004, // DDSU666_POWER [KW]
+ 0x2006, // DDSU666_REACTIVE_POWER [KVAR]
+ 0x200A, // DDSU666_POWER_FACTOR
+ 0x200E, // DDSU666_FREQUENCY [Hz]
+ 0X4000, // DDSU666_IMPORT_ACTIVE [kWh]
+ 0X400A, // DDSU666_EXPORT_ACTIVE [kWh]
+};
+
+struct DDSU666 {
+ float import_active = NAN;
+ uint8_t read_state = 0;
+ uint8_t send_retry = 0;
+} Ddsu666;
+
+/*********************************************************************************************/
+
+void DDSU666Every250ms(void)
+{
+ bool data_ready = Ddsu666Modbus->ReceiveReady();
+
+ if (data_ready) {
+ uint8_t buffer[14]; // At least 5 + (2 * 2) = 9
+
+ uint32_t error = Ddsu666Modbus->ReceiveBuffer(buffer, 2);
+ AddLogBuffer(LOG_LEVEL_DEBUG_MORE, buffer, Ddsu666Modbus->ReceiveCount());
+
+ if (error) {
+ AddLog_P2(LOG_LEVEL_DEBUG, PSTR("SDM: Ddsu666 error %d"), error);
+ } else {
+ Energy.data_valid[0] = 0;
+
+ // 0 1 2 3 4 5 6 7 8
+ // SA FC BC Fh Fl Sh Sl Cl Ch
+ // 01 04 04 43 66 33 34 1B 38 = 230.2 Volt
+ float value;
+ ((uint8_t*)&value)[3] = buffer[3]; // Get float values
+ ((uint8_t*)&value)[2] = buffer[4];
+ ((uint8_t*)&value)[1] = buffer[5];
+ ((uint8_t*)&value)[0] = buffer[6];
+
+ switch(Ddsu666.read_state) {
+ case 0:
+ Energy.voltage[0] = value; // 230.2 V
+ break;
+
+ case 1:
+ Energy.current[0] = value; // 1.260 A
+ break;
+
+ case 2:
+ Energy.active_power[0] = value * 1000; // -196.3 W
+ break;
+
+ case 3:
+ Energy.reactive_power[0] = value * 1000; // 92.2
+ break;
+
+ case 4:
+ Energy.power_factor[0] = value; // 0.91
+ break;
+
+ case 5:
+ Energy.frequency[0] = value; // 50.0 Hz
+ break;
+
+ case 6:
+ Ddsu666.import_active = value; // 478.492 kWh
+ break;
+
+ case 7:
+ Energy.export_active = value; // 6.216 kWh
+ break;
+ }
+
+ Ddsu666.read_state++;
+
+ if (Ddsu666.read_state == 8) {
+ Ddsu666.read_state = 0;
+ EnergyUpdateTotal(Ddsu666.import_active, true); // 484.708 kWh
+ }
+ }
+ } // end data ready
+
+ if (0 == Ddsu666.send_retry || data_ready) {
+ Ddsu666.send_retry = 5;
+ Ddsu666Modbus->Send(DDSU666_ADDR, 0x04, Ddsu666_start_addresses[Ddsu666.read_state], 2);
+ } else {
+ Ddsu666.send_retry--;
+ }
+}
+
+void Ddsu666SnsInit(void)
+{
+ Ddsu666Modbus = new TasmotaModbus(pin[GPIO_DDSU666_RX], pin[GPIO_DDSU666_TX]);
+ uint8_t result = Ddsu666Modbus->Begin(DDSU666_SPEED);
+ if (result) {
+ if (2 == result) { ClaimSerial(); }
+ } else {
+ energy_flg = ENERGY_NONE;
+ }
+}
+
+void Ddsu666DrvInit(void)
+{
+ if ((pin[GPIO_DDSU666_RX] < 99) && (pin[GPIO_DDSU666_TX] < 99)) {
+ energy_flg = XNRG_11;
+ }
+}
+
+/*********************************************************************************************\
+ * Interface
+\*********************************************************************************************/
+
+bool Xnrg11(uint8_t function)
+{
+ bool result = false;
+
+ switch (function) {
+ case FUNC_EVERY_250_MSECOND:
+ if (uptime > 4) { DDSU666Every250ms(); }
+ break;
+ case FUNC_INIT:
+ Ddsu666SnsInit();
+ break;
+ case FUNC_PRE_INIT:
+ Ddsu666DrvInit();
+ break;
+ }
+ return result;
+}
+
+#endif // USE_DDSU666
+#endif // USE_ENERGY_SENSOR
diff --git a/tools/decode-status.py b/tools/decode-status.py
index a08689306..3d35f1147 100755
--- a/tools/decode-status.py
+++ b/tools/decode-status.py
@@ -171,7 +171,7 @@ a_features = [[
],[
"USE_BUZZER","USE_RDM6300","USE_IBEACON","USE_SML_M",
"USE_INA226","USE_A4988_Stepper","USE_DDS2382","USE_SM2135",
- "USE_SHUTTER","USE_PCF8574","","",
+ "USE_SHUTTER","USE_PCF8574","USE_DDSU666","",
"","","","",
"","","","",
"","","","",
From aebe37c8909d90f4d1372dbc8c6f5ee2bd8dadd0 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 3 Oct 2019 13:11:43 +0200
Subject: [PATCH 29/46] Fix PulseTime command responses
Fix PulseTime command responses
---
sonoff/support_command.ino | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/sonoff/support_command.ino b/sonoff/support_command.ino
index 4683c7c85..d940985f9 100644
--- a/sonoff/support_command.ino
+++ b/sonoff/support_command.ino
@@ -566,7 +566,7 @@ void CmndPulsetime(void)
{
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= MAX_PULSETIMERS)) {
uint32_t items = 1;
- if (!XdrvMailbox.usridx) {
+ if (!XdrvMailbox.usridx && !XdrvMailbox.data_len) {
items = MAX_PULSETIMERS;
} else {
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 65536)) {
@@ -576,10 +576,11 @@ void CmndPulsetime(void)
}
mqtt_data[0] = '\0';
for (uint32_t i = 0; i < items; i++) {
+ uint32_t index = (1 == items) ? XdrvMailbox.index : i +1;
ResponseAppend_P(PSTR("%c\"%s%d\":{\"" D_JSON_SET "\":%d,\"" D_JSON_REMAINING "\":%d}"),
(i) ? ',' : '{',
- XdrvMailbox.command, (1 == items) ? XdrvMailbox.index : i +1,
- Settings.pulse_timer[XdrvMailbox.index -1], GetPulseTimer(XdrvMailbox.index -1));
+ XdrvMailbox.command, index,
+ Settings.pulse_timer[index -1], GetPulseTimer(index -1));
}
ResponseJsonEnd();
}
From 0580ceb0b6f94f7e97540f6c7fd79905aa35581a Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 3 Oct 2019 14:18:04 +0200
Subject: [PATCH 30/46] Add support for Chint DDSU666 Modbus energy meter
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add support for Chint DDSU666 Modbus energy meter by Pablo Zerón
---
sonoff/_changelog.ino | 1 +
sonoff/my_user_config.h | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/sonoff/_changelog.ino b/sonoff/_changelog.ino
index e9cdf437d..badd8306c 100644
--- a/sonoff/_changelog.ino
+++ b/sonoff/_changelog.ino
@@ -1,6 +1,7 @@
/*********************************************************************************************\
* 6.6.0.15 20191003
* Change command PulseTime JSON message format and allow display of all pulsetimer information (#6519)
+ * Add support for Chint DDSU666 Modbus energy meter by Pablo Zerón
*
* 6.6.0.14 20190925
* Change command Tariffx to allow time entries like 23 (hours), 1320 (minutes) or 23:00. NOTE: As this is development branch previous tariffs are lost! (#6488)
diff --git a/sonoff/my_user_config.h b/sonoff/my_user_config.h
index e13a666e5..95def6f00 100644
--- a/sonoff/my_user_config.h
+++ b/sonoff/my_user_config.h
@@ -438,6 +438,8 @@
#define SDM630_SPEED 9600 // SDM630-Modbus RS485 serial speed (default: 9600 baud)
//#define USE_DDS2382 // Add support for Hiking DDS2382 Modbus energy monitor (+0k6 code)
#define DDS2382_SPEED 9600 // Hiking DDS2382 Modbus RS485 serial speed (default: 9600 baud)
+//#define USE_DDSU666 // Add support for Chint DDSU666 Modbus energy monitor (+0k6 code)
+ #define DDSU666_SPEED 9600 // Chint DDSU666 Modbus RS485 serial speed (default: 9600 baud)
//#define USE_SDM120 // Add support for Eastron SDM120-Modbus energy meter (+2k4 code)
// #define SDM120_SPEED 2400 // SDM120-Modbus RS485 serial speed (default: 2400 baud)
@@ -447,8 +449,6 @@
//#define USE_SOLAX_X1 // Add support for Solax X1 series Modbus log info (+4k1 code)
#define SOLAXX1_SPEED 9600 // Solax X1 Modbus RS485 serial speed (default: 9600 baud)
#define SOLAXX1_PV2 // Solax X1 using second PV
-//#define USE_DDSU666 // Add support for Chint DDSU666 Modbus energy monitor (+0k6 code)
- #define DDSU666_SPEED 9600 // Chint DDSU666 Modbus RS485 serial speed (default: 9600 baud)
// -- Low level interface devices -----------------
#define USE_DHT // Add support for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321) and SI7021 Temperature and Humidity sensor (1k6 code)
From a0c7db7f7c7c2744a6fa993684a2ab5999951e88 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 3 Oct 2019 14:27:01 +0200
Subject: [PATCH 31/46] Add Mqtt log level text
Add Mqtt log level text
---
sonoff/language/bg-BG.h | 1 +
sonoff/language/cs-CZ.h | 1 +
sonoff/language/de-DE.h | 1 +
sonoff/language/el-GR.h | 1 +
sonoff/language/en-GB.h | 1 +
sonoff/language/es-ES.h | 1 +
sonoff/language/fr-FR.h | 1 +
sonoff/language/he-HE.h | 1 +
sonoff/language/hu-HU.h | 1 +
sonoff/language/it-IT.h | 1 +
sonoff/language/ko-KO.h | 1 +
sonoff/language/nl-NL.h | 1 +
sonoff/language/pl-PL.h | 1 +
sonoff/language/pt-BR.h | 1 +
sonoff/language/pt-PT.h | 1 +
sonoff/language/ru-RU.h | 1 +
sonoff/language/sk-SK.h | 1 +
sonoff/language/sv-SE.h | 1 +
sonoff/language/tr-TR.h | 1 +
sonoff/language/uk-UK.h | 1 +
sonoff/language/zh-CN.h | 1 +
sonoff/language/zh-TW.h | 1 +
22 files changed, 22 insertions(+)
diff --git a/sonoff/language/bg-BG.h b/sonoff/language/bg-BG.h
index 43792cdb3..83323eb7d 100644
--- a/sonoff/language/bg-BG.h
+++ b/sonoff/language/bg-BG.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Параметри на лога"
#define D_SERIAL_LOG_LEVEL "Степен на серийния лог"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Степен на уеб лога"
#define D_SYS_LOG_LEVEL "Степен на системния лог"
#define D_MORE_DEBUG "Още дебъгване"
diff --git a/sonoff/language/cs-CZ.h b/sonoff/language/cs-CZ.h
index 1067a6f02..fac229e77 100644
--- a/sonoff/language/cs-CZ.h
+++ b/sonoff/language/cs-CZ.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Volba logování"
#define D_SERIAL_LOG_LEVEL "Seriová úroveň logu"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Webová úroveň logu"
#define D_SYS_LOG_LEVEL "Systemová úroveň logu"
#define D_MORE_DEBUG "Více debug informací"
diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h
index fe6067153..60d4243d5 100644
--- a/sonoff/language/de-DE.h
+++ b/sonoff/language/de-DE.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Logging-Einstellungen"
#define D_SERIAL_LOG_LEVEL "Seriell-Log Level"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web-Log Level"
#define D_SYS_LOG_LEVEL "Sys-Log Level"
#define D_MORE_DEBUG "More debug"
diff --git a/sonoff/language/el-GR.h b/sonoff/language/el-GR.h
index 3c43b65c6..27fbaff3f 100644
--- a/sonoff/language/el-GR.h
+++ b/sonoff/language/el-GR.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Παράμετροι καταγραφής"
#define D_SERIAL_LOG_LEVEL "Επίπεδο Σειριακής"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Επίπεδο Web"
#define D_SYS_LOG_LEVEL "Επίπεδο Syslog"
#define D_MORE_DEBUG "More debug"
diff --git a/sonoff/language/en-GB.h b/sonoff/language/en-GB.h
index 27ef1e342..b09cd462f 100644
--- a/sonoff/language/en-GB.h
+++ b/sonoff/language/en-GB.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Logging parameters"
#define D_SERIAL_LOG_LEVEL "Serial log level"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web log level"
#define D_SYS_LOG_LEVEL "Syslog level"
#define D_MORE_DEBUG "More debug"
diff --git a/sonoff/language/es-ES.h b/sonoff/language/es-ES.h
index 252f72ce3..987951e02 100644
--- a/sonoff/language/es-ES.h
+++ b/sonoff/language/es-ES.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Parámetros Logging"
#define D_SERIAL_LOG_LEVEL "Nivel de log Serial"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Nivel de log Web"
#define D_SYS_LOG_LEVEL "Nivel de Syslog"
#define D_MORE_DEBUG "Más Debug"
diff --git a/sonoff/language/fr-FR.h b/sonoff/language/fr-FR.h
index 1c8eb4eec..838e50616 100644
--- a/sonoff/language/fr-FR.h
+++ b/sonoff/language/fr-FR.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Paramètres du journal"
#define D_SERIAL_LOG_LEVEL "Niveau de journalisation série"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Niveau de journalisation web"
#define D_SYS_LOG_LEVEL "Niveau SysLog"
#define D_MORE_DEBUG "Plus de debug"
diff --git a/sonoff/language/he-HE.h b/sonoff/language/he-HE.h
index b551de296..226141459 100644
--- a/sonoff/language/he-HE.h
+++ b/sonoff/language/he-HE.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "פרמטרי לוגים"
#define D_SERIAL_LOG_LEVEL "רמת לוג עבור סריאל"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "רמת לוג עבור אתר"
#define D_SYS_LOG_LEVEL "Syslog רמת לוג עבור שרת"
#define D_MORE_DEBUG "מיפוי נוסף"
diff --git a/sonoff/language/hu-HU.h b/sonoff/language/hu-HU.h
index 81f1d080a..425dc27f1 100644
--- a/sonoff/language/hu-HU.h
+++ b/sonoff/language/hu-HU.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Naplózási paraméterek"
#define D_SERIAL_LOG_LEVEL "Soros naplózási szint"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web naplózási szint"
#define D_SYS_LOG_LEVEL "Syslog szint"
#define D_MORE_DEBUG "Részletes hibakeresés"
diff --git a/sonoff/language/it-IT.h b/sonoff/language/it-IT.h
index 1c6390cc2..a29916940 100644
--- a/sonoff/language/it-IT.h
+++ b/sonoff/language/it-IT.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Parametri Logging"
#define D_SERIAL_LOG_LEVEL "Livello di log Seriale"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "livello di log Web"
#define D_SYS_LOG_LEVEL "livello di log Sys"
#define D_MORE_DEBUG "Debug aggiuntivo"
diff --git a/sonoff/language/ko-KO.h b/sonoff/language/ko-KO.h
index 0f628e04e..065b4d8e0 100644
--- a/sonoff/language/ko-KO.h
+++ b/sonoff/language/ko-KO.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "로그 상세"
#define D_SERIAL_LOG_LEVEL "시리얼 로그 레벨"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web 로그 레벨"
#define D_SYS_LOG_LEVEL "Syslog 로그 레벨"
#define D_MORE_DEBUG "More debug"
diff --git a/sonoff/language/nl-NL.h b/sonoff/language/nl-NL.h
index d79a419b2..c568395cf 100644
--- a/sonoff/language/nl-NL.h
+++ b/sonoff/language/nl-NL.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Logging parameters"
#define D_SERIAL_LOG_LEVEL "Serieel log niveau"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web log niveau"
#define D_SYS_LOG_LEVEL "Syslog niveau"
#define D_MORE_DEBUG "Meer debug"
diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h
index 8e374437f..c8366f1b9 100644
--- a/sonoff/language/pl-PL.h
+++ b/sonoff/language/pl-PL.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Opcje dziennika"
#define D_SERIAL_LOG_LEVEL "Serial poziom dziennika"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web poziom dziennika"
#define D_SYS_LOG_LEVEL "System poziom dziennika"
#define D_MORE_DEBUG "Więcej informacji debug"
diff --git a/sonoff/language/pt-BR.h b/sonoff/language/pt-BR.h
index 831d79d03..f05d2fffe 100644
--- a/sonoff/language/pt-BR.h
+++ b/sonoff/language/pt-BR.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Parâmetros Logging"
#define D_SERIAL_LOG_LEVEL "Nível de registro serial"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Nível de registro WEB"
#define D_SYS_LOG_LEVEL "Nível de registro Syslog"
#define D_MORE_DEBUG "Depurar mais"
diff --git a/sonoff/language/pt-PT.h b/sonoff/language/pt-PT.h
index 970fb2b8a..92b43739e 100644
--- a/sonoff/language/pt-PT.h
+++ b/sonoff/language/pt-PT.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Parametros Logging"
#define D_SERIAL_LOG_LEVEL "Nível de registro serial"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Nível de registro WEB"
#define D_SYS_LOG_LEVEL "Nível de registro Syslog"
#define D_MORE_DEBUG "Depurar mais"
diff --git a/sonoff/language/ru-RU.h b/sonoff/language/ru-RU.h
index 474d7f254..73b4604aa 100644
--- a/sonoff/language/ru-RU.h
+++ b/sonoff/language/ru-RU.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Параметры Logging"
#define D_SERIAL_LOG_LEVEL "Serial лог уровень"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web лог уровень"
#define D_SYS_LOG_LEVEL "System лог уровень"
#define D_MORE_DEBUG "Дополнительная информация для отладки"
diff --git a/sonoff/language/sk-SK.h b/sonoff/language/sk-SK.h
index 092661890..e0b055fcc 100644
--- a/sonoff/language/sk-SK.h
+++ b/sonoff/language/sk-SK.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Voľba logovania"
#define D_SERIAL_LOG_LEVEL "Sériová úroveň logu"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Webová úroveň logu"
#define D_SYS_LOG_LEVEL "Systemová úroveň logu"
#define D_MORE_DEBUG "Viac debug informácí"
diff --git a/sonoff/language/sv-SE.h b/sonoff/language/sv-SE.h
index 16d5110be..a3f326fc7 100644
--- a/sonoff/language/sv-SE.h
+++ b/sonoff/language/sv-SE.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Loggningsparametrar"
#define D_SERIAL_LOG_LEVEL "Seriell loggnivå"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Webb loggnivå"
#define D_SYS_LOG_LEVEL "Syslog-nivå"
#define D_MORE_DEBUG "Mer debugging"
diff --git a/sonoff/language/tr-TR.h b/sonoff/language/tr-TR.h
index e17623637..7c22cedbe 100755
--- a/sonoff/language/tr-TR.h
+++ b/sonoff/language/tr-TR.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Loglama parametreleri"
#define D_SERIAL_LOG_LEVEL "Serial log seviyesi"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web log seviyesi"
#define D_SYS_LOG_LEVEL "Syslog seviyesi"
#define D_MORE_DEBUG "Hata ayıklama devamı"
diff --git a/sonoff/language/uk-UK.h b/sonoff/language/uk-UK.h
index 92b3711fd..a586a5114 100644
--- a/sonoff/language/uk-UK.h
+++ b/sonoff/language/uk-UK.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "Параметри журналу"
#define D_SERIAL_LOG_LEVEL "Serial рівень"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web рівень"
#define D_SYS_LOG_LEVEL "System рівень"
#define D_MORE_DEBUG "Додаткова інформація для налагодження"
diff --git a/sonoff/language/zh-CN.h b/sonoff/language/zh-CN.h
index 872c13563..30a733b1d 100644
--- a/sonoff/language/zh-CN.h
+++ b/sonoff/language/zh-CN.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "日志设置"
#define D_SERIAL_LOG_LEVEL "串口日志级别"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web 日志级别"
#define D_SYS_LOG_LEVEL "Syslog 日志级别"
#define D_MORE_DEBUG "全部调试"
diff --git a/sonoff/language/zh-TW.h b/sonoff/language/zh-TW.h
index 4d26109fa..bfac974f5 100644
--- a/sonoff/language/zh-TW.h
+++ b/sonoff/language/zh-TW.h
@@ -284,6 +284,7 @@
#define D_LOGGING_PARAMETERS "日志設置"
#define D_SERIAL_LOG_LEVEL "串口日志級別"
+#define D_MQTT_LOG_LEVEL "Mqtt log level"
#define D_WEB_LOG_LEVEL "Web 日志級別"
#define D_SYS_LOG_LEVEL "Syslog 日志級別"
#define D_MORE_DEBUG "全部調試"
From fef7faa5beeda6ecf2b8ce5642e24209230657b0 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 3 Oct 2019 14:45:24 +0200
Subject: [PATCH 32/46] Add MQTTLog option to GUI
Add MQTTLog option to GUI
---
sonoff/xdrv_01_webserver.ino | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/sonoff/xdrv_01_webserver.ino b/sonoff/xdrv_01_webserver.ino
index 9f8ec9eed..aeb9fcbcf 100644
--- a/sonoff/xdrv_01_webserver.ino
+++ b/sonoff/xdrv_01_webserver.ino
@@ -527,7 +527,7 @@ const char kButtonConfirm[] PROGMEM = D_CONFIRM_RESTART "|" D_CONFIRM_RESET_CONF
enum CTypes { CT_HTML, CT_PLAIN, CT_XML, CT_JSON, CT_STREAM };
const char kContentTypes[] PROGMEM = "text/html|text/plain|text/xml|application/json|application/octet-stream";
-const char kLoggingOptions[] PROGMEM = D_SERIAL_LOG_LEVEL "|" D_WEB_LOG_LEVEL "|" D_SYS_LOG_LEVEL;
+const char kLoggingOptions[] PROGMEM = D_SERIAL_LOG_LEVEL "|" D_WEB_LOG_LEVEL "|" D_MQTT_LOG_LEVEL "|" D_SYS_LOG_LEVEL;
const char kLoggingLevels[] PROGMEM = D_NONE "|" D_ERROR "|" D_INFO "|" D_DEBUG "|" D_MORE_DEBUG;
const char kEmulationOptions[] PROGMEM = D_NONE "|" D_BELKIN_WEMO "|" D_HUE_BRIDGE;
@@ -1618,9 +1618,10 @@ void HandleLoggingConfiguration(void)
WSContentSend_P(HTTP_FORM_LOG1);
char stemp1[45];
char stemp2[32];
- uint8_t dlevel[3] = { LOG_LEVEL_INFO, LOG_LEVEL_INFO, LOG_LEVEL_NONE };
- for (uint32_t idx = 0; idx < 3; idx++) {
- uint32_t llevel = (0==idx)?Settings.seriallog_level:(1==idx)?Settings.weblog_level:Settings.syslog_level;
+ uint8_t dlevel[4] = { LOG_LEVEL_INFO, LOG_LEVEL_INFO, LOG_LEVEL_NONE, LOG_LEVEL_NONE };
+ for (uint32_t idx = 0; idx < 4; idx++) {
+ if ((2==idx) && !Settings.flag.mqtt_enabled) { continue; }
+ uint32_t llevel = (0==idx)?Settings.seriallog_level:(1==idx)?Settings.weblog_level:(2==idx)?Settings.mqttlog_level:Settings.syslog_level;
WSContentSend_P(PSTR("%s (%s)