From 1dcde6aac439865f68d8c346acc894bcdd70eaeb Mon Sep 17 00:00:00 2001 From: arendst Date: Sat, 29 Apr 2017 14:40:53 +0200 Subject: [PATCH] v5.0.1 5.0.1 20170429 * Adjust Sonoff SC messages to prepare for display feature * Move static data from RAM to Flash * Fix PowerOnState for some devices not reporting "Power on" state (#284, #380, #383) --- README.md | 4 +- api/arduino/sonoff.ino.bin | Bin 478736 -> 479504 bytes sonoff/_releasenotes.ino | 7 +- sonoff/sonoff.ino | 154 +++++++++++++++++++------------------ sonoff/xdrv_domoticz.ino | 18 ++--- sonoff/xdrv_ir_send.ino | 22 +++--- sonoff/xdrv_snfled.ino | 14 ++-- sonoff/xdrv_snfsc.ino | 7 +- sonoff/xdrv_ws2812.ino | 20 ++--- sonoff/xsns_hlw8012.ino | 34 ++++---- 10 files changed, 147 insertions(+), 133 deletions(-) diff --git a/README.md b/README.md index 0f8a6b31d..40e575646 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ ## Sonoff-Tasmota Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. -Current version is **5.0.0** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/master/sonoff/_releasenotes.ino) for change information. +Current version is **5.0.1** - See [sonoff/_releasenotes.ino](https://github.com/arendst/Sonoff-Tasmota/blob/master/sonoff/_releasenotes.ino) for change information. -### **** ATTENTION Version 5.0.0 specific information **** +### **** ATTENTION Version 5.0.x specific information **** This version uses a new linker script to free flash memory for future code additions. It moves the settings from Spiffs to Eeprom. If you compile your own firmware download the new linker to your IDE or Platformio base folder. See [Wiki > Prerequisite](https://github.com/arendst/Sonoff-Tasmota/wiki/Prerequisite). diff --git a/api/arduino/sonoff.ino.bin b/api/arduino/sonoff.ino.bin index 9b072715c272d46f2fdb0f7d969ef3db85567c38..0621a0c0d2c877f65ba1a4b25f0b1f210ba5119c 100644 GIT binary patch delta 106353 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 delta 105691 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 diff --git a/sonoff/_releasenotes.ino b/sonoff/_releasenotes.ino index b76613230..03361b437 100644 --- a/sonoff/_releasenotes.ino +++ b/sonoff/_releasenotes.ino @@ -1,4 +1,9 @@ -/* 5.0.0 20170425 +/* 5.0.1 20170429 + * Adjust Sonoff SC messages to prepare for display feature + * Move static data from RAM to Flash + * Fix PowerOnState for some devices not reporting "Power on" state (#284, #380, #383) + * + * 5.0.0 20170425 * Memory status message update * Fix setting migration to better preserve settings during move (#382) * Best practice is first doing a Backup Configuration before installing version 5.0.0 diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index cb4c6ceeb..54e45df58 100644 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -10,7 +10,7 @@ * ==================================================== */ -#define VERSION 0x05000000 // 5.0.0 +#define VERSION 0x05000100 // 5.0.1 enum log_t {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE, LOG_LEVEL_ALL}; enum week_t {Last, First, Second, Third, Fourth}; @@ -156,6 +156,9 @@ enum butt_t {PRESSED, NOT_PRESSED}; #ifdef USE_I2C #include // I2C support library #endif // USE_I2C +#ifdef USI_SPI + #include // SPI, TFT +#endif // USE_SPI #include "settings.h" typedef void (*rtcCallback)(); @@ -264,6 +267,7 @@ uint8_t swt_flg = 0; // Any external switch configured uint8_t dht_type = 0; // DHT type (DHT11, DHT21 or DHT22) uint8_t hlw_flg = 0; // Power monitor configured uint8_t i2c_flg = 0; // I2C configured +uint8_t spi_flg = 0; // SPI configured uint8_t pwm_flg = 0; // PWM configured uint8_t pwm_idxoffset = 0; // Allowed PWM command offset (change for Sonoff Led) @@ -620,27 +624,27 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, char stemp2[10]; uint16_t i; - if (!strcmp(type,"MQTTHOST")) { + if (!strcmp_P(type,PSTR("MQTTHOST"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_host))) { strlcpy(sysCfg.mqtt_host, (1 == payload) ? MQTT_HOST : dataBuf, sizeof(sysCfg.mqtt_host)); restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"MqttHost\",\"%s\"}"), sysCfg.mqtt_host); } - else if (!strcmp(type,"MQTTPORT")) { + else if (!strcmp_P(type,PSTR("MQTTPORT"))) { if ((data_len > 0) && (payload > 0) && (payload < 32766)) { sysCfg.mqtt_port = (1 == payload) ? MQTT_PORT : payload; restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"MqttPort\":%d}"), sysCfg.mqtt_port); } - else if (!strcmp(type,"MQTTRESPONSE")) { + else if (!strcmp_P(type,PSTR("MQTTRESPONSE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { sysCfg.mqtt_response = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"MqttResponse\":\"%s\"}"), getStateText(sysCfg.mqtt_response)); } - else if (!strcmp(type,"STATETEXT") && (index > 0) && (index <= 3)) { + else if (!strcmp_P(type,PSTR("STATETEXT")) && (index > 0) && (index <= 3)) { if ((data_len > 0) && (data_len < sizeof(sysCfg.state_text[0]))) { for(i = 0; i <= data_len; i++) { if (dataBuf[i] == ' ') { @@ -652,7 +656,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, snprintf_P(svalue, ssvalue, PSTR("{\"StateText%d\":\"%s\"}"), index, getStateText(index -1)); } #ifdef USE_MQTT_TLS - else if (!strcmp(type,"MQTTFINGERPRINT")) { + else if (!strcmp_P(type,PSTR("MQTTFINGERPRINT"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_fingerprint))) { strlcpy(sysCfg.mqtt_fingerprint, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? MQTT_FINGERPRINT : dataBuf, sizeof(sysCfg.mqtt_fingerprint)); restartflag = 2; @@ -660,28 +664,28 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, snprintf_P(svalue, ssvalue, PSTR("{\"MqttFingerprint\":\"%s\"}"), sysCfg.mqtt_fingerprint); } #endif - else if (!grpflg && !strcmp(type,"MQTTCLIENT")) { + else if (!grpflg && !strcmp_P(type,PSTR("MQTTCLIENT"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_client))) { strlcpy(sysCfg.mqtt_client, (1 == payload) ? MQTT_CLIENT_ID : dataBuf, sizeof(sysCfg.mqtt_client)); restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"MqttClient\":\"%s\"}"), sysCfg.mqtt_client); } - else if (!strcmp(type,"MQTTUSER")) { + else if (!strcmp_P(type,PSTR("MQTTUSER"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_user))) { strlcpy(sysCfg.mqtt_user, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? MQTT_USER : dataBuf, sizeof(sysCfg.mqtt_user)); restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("[\"MqttUser\":\"%s\"}"), sysCfg.mqtt_user); } - else if (!strcmp(type,"MQTTPASSWORD")) { + else if (!strcmp_P(type,PSTR("MQTTPASSWORD"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_pwd))) { strlcpy(sysCfg.mqtt_pwd, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? MQTT_PASS : dataBuf, sizeof(sysCfg.mqtt_pwd)); restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"MqttPassword\":\"%s\"}"), sysCfg.mqtt_pwd); } - else if (!strcmp(type,"PREFIX") && (index > 0) && (index <= 3)) { + else if (!strcmp_P(type,PSTR("PREFIX")) && (index > 0) && (index <= 3)) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_prefix[0]))) { for(i = 0; i <= data_len; i++) { if ((dataBuf[i] == '+') || (dataBuf[i] == '#') || (dataBuf[i] == ' ')) { @@ -694,7 +698,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"Prefix%d\":\"%s\"}"), index, sysCfg.mqtt_prefix[index -1]); } - else if (!strcmp(type,"GROUPTOPIC")) { + else if (!strcmp_P(type,PSTR("GROUPTOPIC"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_grptopic))) { for(i = 0; i <= data_len; i++) { if ((dataBuf[i] == '/') || (dataBuf[i] == '+') || (dataBuf[i] == '#')) { @@ -709,7 +713,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"GroupTopic\":\"%s\"}"), sysCfg.mqtt_grptopic); } - else if (!grpflg && !strcmp(type,"TOPIC")) { + else if (!grpflg && !strcmp_P(type,PSTR("TOPIC"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.mqtt_topic))) { for(i = 0; i <= data_len; i++) { if ((dataBuf[i] == '/') || (dataBuf[i] == '+') || (dataBuf[i] == '#') || (dataBuf[i] == ' ')) { @@ -724,7 +728,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"Topic\":\"%s\"}"), sysCfg.mqtt_topic); } - else if (!grpflg && !strcmp(type,"BUTTONTOPIC")) { + else if (!grpflg && !strcmp_P(type,PSTR("BUTTONTOPIC"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.button_topic))) { for(i = 0; i <= data_len; i++) { if ((dataBuf[i] == '/') || (dataBuf[i] == '+') || (dataBuf[i] == '#') || (dataBuf[i] == ' ')) { @@ -738,7 +742,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"ButtonTopic\":\"%s\"}"), sysCfg.button_topic); } - else if (!grpflg && !strcmp(type,"SWITCHTOPIC")) { + else if (!grpflg && !strcmp_P(type,PSTR("SWITCHTOPIC"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.switch_topic))) { for(i = 0; i <= data_len; i++) { if ((dataBuf[i] == '/') || (dataBuf[i] == '+') || (dataBuf[i] == '#') || (dataBuf[i] == ' ')) { @@ -752,7 +756,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"SwitchTopic\":\"%s\"}"), sysCfg.switch_topic); } - else if (!strcmp(type,"BUTTONRETAIN")) { + else if (!strcmp_P(type,PSTR("BUTTONRETAIN"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { strlcpy(sysCfg.button_topic, sysCfg.mqtt_topic, sizeof(sysCfg.button_topic)); if (!payload) { @@ -764,7 +768,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"ButtonRetain\":\"%s\"}"), getStateText(sysCfg.mqtt_button_retain)); } - else if (!strcmp(type,"SWITCHRETAIN")) { + else if (!strcmp_P(type,PSTR("SWITCHRETAIN"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { strlcpy(sysCfg.button_topic, sysCfg.mqtt_topic, sizeof(sysCfg.button_topic)); if (!payload) { @@ -776,7 +780,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf, } snprintf_P(svalue, ssvalue, PSTR("{\"SwitchRetain\":\"%s\"}"), getStateText(sysCfg.mqtt_switch_retain)); } - else if (!strcmp(type,"POWERRETAIN")) { + else if (!strcmp_P(type,PSTR("POWERRETAIN"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { if (!payload) { for(i = 1; i <= Maxdevice; i++) { // Clear MQTT retain in broker @@ -897,50 +901,50 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } int16_t payload = atoi(dataBuf); // -32766 - 32767 uint16_t payload16 = atoi(dataBuf); // 0 - 65535 - if (!strcmp(dataBufUc,"OFF") || !strcmp(dataBufUc,"FALSE") || !strcmp(dataBufUc,"STOP")) { + if (!strcmp_P(dataBufUc,PSTR("OFF")) || !strcmp_P(dataBufUc,PSTR("FALSE")) || !strcmp_P(dataBufUc,PSTR("STOP"))) { payload = 0; } - if (!strcmp(dataBufUc,"ON") || !strcmp(dataBufUc,"TRUE") || !strcmp(dataBufUc,"START") || !strcmp(dataBufUc,"USER")) { + if (!strcmp_P(dataBufUc,PSTR("ON")) || !strcmp_P(dataBufUc,PSTR("TRUE")) || !strcmp_P(dataBufUc,PSTR("START")) || !strcmp_P(dataBufUc,PSTR("USER"))) { payload = 1; } - if (!strcmp(dataBufUc,"TOGGLE") || !strcmp(dataBufUc,"ADMIN")) { + if (!strcmp_P(dataBufUc,PSTR("TOGGLE")) || !strcmp_P(dataBufUc,PSTR("ADMIN"))) { payload = 2; } - if (!strcmp(dataBufUc,"BLINK")) { + if (!strcmp_P(dataBufUc,PSTR("BLINK"))) { payload = 3; } - if (!strcmp(dataBufUc,"BLINKOFF")) { + if (!strcmp_P(dataBufUc,PSTR("BLINKOFF"))) { payload = 4; } - if (!strcmp(type,"POWER") && (index > 0) && (index <= Maxdevice)) { + if (!strcmp_P(type,PSTR("POWER")) && (index > 0) && (index <= Maxdevice)) { if ((0 == data_len) || (payload > 4)) { payload = 9; } do_cmnd_power(index, payload); return; } - else if (!strcmp(type,"STATUS")) { + else if (!strcmp_P(type,PSTR("STATUS"))) { if ((0 == data_len) || (payload < 0) || (payload > MAX_STATUS)) { payload = 99; } publish_status(payload); return; } - else if ((sysCfg.module != MOTOR) && !strcmp(type,"POWERONSTATE")) { + else if ((sysCfg.module != MOTOR) && !strcmp_P(type,PSTR("POWERONSTATE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 3)) { sysCfg.poweronstate = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"PowerOnState\":%d}"), sysCfg.poweronstate); } - else if (!strcmp(type,"PULSETIME") && (index > 0) && (index <= MAX_PULSETIMERS)) { + else if (!strcmp_P(type,PSTR("PULSETIME")) && (index > 0) && (index <= MAX_PULSETIMERS)) { if (data_len > 0) { sysCfg.pulsetime[index -1] = payload16; // 0 - 65535 pulse_timer[index -1] = 0; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"PulseTime%d\":%d}"), index, sysCfg.pulsetime[index -1]); } - else if (!strcmp(type,"BLINKTIME")) { + else if (!strcmp_P(type,PSTR("BLINKTIME"))) { if ((data_len > 0) && (payload > 2) && (payload <= 3600)) { sysCfg.blinktime = payload; if (blink_timer) { @@ -949,7 +953,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"BlinkTime\":%d}"), sysCfg.blinktime); } - else if (!strcmp(type,"BLINKCOUNT")) { + else if (!strcmp_P(type,PSTR("BLINKCOUNT"))) { if (data_len > 0) { sysCfg.blinkcount = payload16; // 0 - 65535 if (blink_counter) { @@ -961,7 +965,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) else if ((SONOFF_LED == sysCfg.module) && sl_command(type, index, dataBufUc, data_len, payload, svalue, sizeof(svalue))) { // Serviced } - else if (!strcmp(type,"SAVEDATA")) { + else if (!strcmp_P(type,PSTR("SAVEDATA"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 3600)) { sysCfg.savedata = payload; savedatacounter = sysCfg.savedata; @@ -975,32 +979,32 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"SaveData\":\"%s\"}"), (sysCfg.savedata > 1) ? stemp1 : getStateText(sysCfg.savedata)); } - else if (!strcmp(type,"SAVESTATE")) { + else if (!strcmp_P(type,PSTR("SAVESTATE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { sysCfg.savestate = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"SaveState\":\"%s\"}"), getStateText(sysCfg.savestate)); } - else if (!strcmp(type,"BUTTONRESTRICT")) { + else if (!strcmp_P(type,PSTR("BUTTONRESTRICT"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { sysCfg.button_restrict = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"ButtonRestrict\":\"%s\"}"), getStateText(sysCfg.button_restrict)); } - else if (!strcmp(type,"UNITS")) { + else if (!strcmp_P(type,PSTR("UNITS"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { sysCfg.value_units = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Units\":\"%s\"}"), getStateText(sysCfg.value_units)); } - else if (!strcmp(type,"MQTT")) { + else if (!strcmp_P(type,PSTR("MQTT"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 1)) { sysCfg.mqtt_enabled = payload; restartflag = 2; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Mqtt\":\"%s\"}"), getStateText(sysCfg.mqtt_enabled)); } - else if (!strcmp(type,"MODULE")) { + else if (!strcmp_P(type,PSTR("MODULE"))) { if ((data_len > 0) && (payload > 0) && (payload <= MAXMODULE)) { payload--; byte new_modflg = (sysCfg.module != payload); @@ -1016,7 +1020,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(stemp1, sizeof(stemp1), modules[sysCfg.module].name); snprintf_P(svalue, sizeof(svalue), PSTR("{\"Module\":\"%d (%s)\"}"), sysCfg.module +1, stemp1); } - else if (!strcmp(type,"MODULES")) { + else if (!strcmp_P(type,PSTR("MODULES"))) { snprintf_P(svalue, sizeof(svalue), PSTR("{\"Modules1\":\""), svalue); byte jsflg = 0; for (byte i = 0; i < MAXMODULE /2; i++) { @@ -1041,7 +1045,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("%s\"}"), svalue); } - else if (!strcmp(type,"GPIO") && (index < MAX_GPIO_PIN)) { + else if (!strcmp_P(type,PSTR("GPIO")) && (index < MAX_GPIO_PIN)) { mytmplt cmodule; memcpy_P(&cmodule, &modules[sysCfg.module], sizeof(cmodule)); if ((data_len > 0) && (GPIO_USER == cmodule.gp.io[index]) && (payload >= 0) && (payload < GPIO_SENSOR_END)) { @@ -1071,7 +1075,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(svalue, sizeof(svalue), PSTR("{\"GPIO\":\"Not supported\"}")); } } - else if (!strcmp(type,"GPIOS")) { + else if (!strcmp_P(type,PSTR("GPIOS"))) { snprintf_P(svalue, sizeof(svalue), PSTR("{\"GPIOs1\":\""), svalue); byte jsflg = 0; for (byte i = 0; i < GPIO_SENSOR_END /2; i++) { @@ -1096,7 +1100,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("%s\"}"), svalue); } - else if (!strcmp(type,"PWM") && (index > pwm_idxoffset) && (index <= 5)) { + else if (!strcmp_P(type,PSTR("PWM")) && (index > pwm_idxoffset) && (index <= 5)) { if ((data_len > 0) && (payload >= 0) && (payload <= PWM_RANGE) && (pin[GPIO_PWM1 + index -1] < 99)) { sysCfg.pwmvalue[index -1] = payload; analogWrite(pin[GPIO_PWM1 + index -1], payload); @@ -1111,7 +1115,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("%s}}"),svalue); } - else if (!strcmp(type,"SLEEP")) { + else if (!strcmp_P(type,PSTR("SLEEP"))) { if ((data_len > 0) && (payload >= 0) && (payload < 251)) { if ((!sysCfg.sleep && payload) || (sysCfg.sleep && !payload)) { restartflag = 2; @@ -1121,7 +1125,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Sleep\":\"%d%s (%d%s)\"}"), sleep, (sysCfg.value_units) ? " mS" : "", sysCfg.sleep, (sysCfg.value_units) ? " mS" : ""); } - else if (!strcmp(type,"FLASHMODE")) { // 0 = QIO, 1 = QOUT, 2 = DIO, 3 = DOUT + else if (!strcmp_P(type,PSTR("FLASHMODE"))) { // 0 = QIO, 1 = QOUT, 2 = DIO, 3 = DOUT if ((data_len > 0) && (payload >= 0) && (payload <= 3)) { if (ESP.getFlashChipMode() != payload) { setFlashMode(0, payload &3); @@ -1129,7 +1133,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"FlashMode\":%d}"), ESP.getFlashChipMode()); } - else if (!strcmp(type,"UPGRADE") || !strcmp(type,"UPLOAD")) { + else if (!strcmp_P(type,PSTR("UPGRADE")) || !strcmp_P(type,PSTR("UPLOAD"))) { if ((data_len > 0) && (1 == payload)) { otaflag = 3; snprintf_P(svalue, sizeof(svalue), PSTR("{\"Upgrade\":\"Version %s from %s\"}"), Version, sysCfg.otaUrl); @@ -1137,12 +1141,12 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(svalue, sizeof(svalue), PSTR("{\"Upgrade\":\"Option 1 to upgrade\"}")); } } - else if (!strcmp(type,"OTAURL")) { + else if (!strcmp_P(type,PSTR("OTAURL"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.otaUrl))) strlcpy(sysCfg.otaUrl, (1 == payload) ? OTA_URL : dataBuf, sizeof(sysCfg.otaUrl)); snprintf_P(svalue, sizeof(svalue), PSTR("{\"OtaUrl\":\"%s\"}"), sysCfg.otaUrl); } - else if (!strcmp(type,"SERIALLOG")) { + else if (!strcmp_P(type,PSTR("SERIALLOG"))) { if ((data_len > 0) && (payload >= LOG_LEVEL_NONE) && (payload <= LOG_LEVEL_ALL)) { sysCfg.seriallog_level = payload; seriallog_level = payload; @@ -1150,7 +1154,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"SerialLog\":\"%d (Active %d)\"}"), sysCfg.seriallog_level, seriallog_level); } - else if (!strcmp(type,"SYSLOG")) { + else if (!strcmp_P(type,PSTR("SYSLOG"))) { if ((data_len > 0) && (payload >= LOG_LEVEL_NONE) && (payload <= LOG_LEVEL_ALL)) { sysCfg.syslog_level = payload; syslog_level = (sysCfg.emulation) ? 0 : payload; @@ -1158,19 +1162,19 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"SysLog\":\"%d (Active %d)\"}"), sysCfg.syslog_level, syslog_level); } - else if (!strcmp(type,"LOGHOST")) { + else if (!strcmp_P(type,PSTR("LOGHOST"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.syslog_host))) { strlcpy(sysCfg.syslog_host, (1 == payload) ? SYS_LOG_HOST : dataBuf, sizeof(sysCfg.syslog_host)); } snprintf_P(svalue, sizeof(svalue), PSTR("{\"LogHost\":\"%s\"}"), sysCfg.syslog_host); } - else if (!strcmp(type,"LOGPORT")) { + else if (!strcmp_P(type,PSTR("LOGPORT"))) { if ((data_len > 0) && (payload > 0) && (payload < 32766)) { sysCfg.syslog_port = (1 == payload) ? SYS_LOG_PORT : payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"LogPort\":%d}"), sysCfg.syslog_port); } - else if (!strcmp(type,"IPADDRESS") && (index > 0) && (index <= 4)) { + else if (!strcmp_P(type,PSTR("IPADDRESS")) && (index > 0) && (index <= 4)) { if (parseIP(&address, dataBuf)) { sysCfg.ip_address[index -1] = address; // restartflag = 2; @@ -1178,7 +1182,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(stemp1, sizeof(stemp1), PSTR(" (%s)"), WiFi.localIP().toString().c_str()); snprintf_P(svalue, sizeof(svalue), PSTR("{\"IPAddress%d\":\"%s%s\"}"), index, IPAddress(sysCfg.ip_address[index -1]).toString().c_str(), (1 == index) ? stemp1:""); } - else if (!strcmp(type,"NTPSERVER") && (index > 0) && (index <= 3)) { + else if (!strcmp_P(type,PSTR("NTPSERVER")) && (index > 0) && (index <= 3)) { if ((data_len > 0) && (data_len < sizeof(sysCfg.ntp_server[0]))) { strlcpy(sysCfg.ntp_server[index -1], (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? (1==index)?NTP_SERVER1:(2==index)?NTP_SERVER2:NTP_SERVER3 : dataBuf, sizeof(sysCfg.ntp_server[0])); for (i = 0; i < strlen(sysCfg.ntp_server[index -1]); i++) { @@ -1190,7 +1194,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"NtpServer%d\":\"%s\"}"), index, sysCfg.ntp_server[index -1]); } - else if (!strcmp(type,"AP")) { + else if (!strcmp_P(type,PSTR("AP"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { switch (payload) { case 0: // Toggle @@ -1204,7 +1208,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Ap\":\"%d (%s)\"}"), sysCfg.sta_active +1, sysCfg.sta_ssid[sysCfg.sta_active]); } - else if (!strcmp(type,"SSID") && (index > 0) && (index <= 2)) { + else if (!strcmp_P(type,PSTR("SSID")) && (index > 0) && (index <= 2)) { if ((data_len > 0) && (data_len < sizeof(sysCfg.sta_ssid[0]))) { strlcpy(sysCfg.sta_ssid[index -1], (1 == payload) ? (1 == index) ? STA_SSID1 : STA_SSID2 : dataBuf, sizeof(sysCfg.sta_ssid[0])); sysCfg.sta_active = 0; @@ -1212,7 +1216,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"SSid%d\":\"%s\"}"), index, sysCfg.sta_ssid[index -1]); } - else if (!strcmp(type,"PASSWORD") && (index > 0) && (index <= 2)) { + else if (!strcmp_P(type,PSTR("PASSWORD")) && (index > 0) && (index <= 2)) { if ((data_len > 0) && (data_len < sizeof(sysCfg.sta_pwd[0]))) { strlcpy(sysCfg.sta_pwd[index -1], (1 == payload) ? (1 == index) ? STA_PASS1 : STA_PASS2 : dataBuf, sizeof(sysCfg.sta_pwd[0])); sysCfg.sta_active = 0; @@ -1220,7 +1224,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Password%d\":\"%s\"}"), index, sysCfg.sta_pwd[index -1]); } - else if (!grpflg && !strcmp(type,"HOSTNAME")) { + else if (!grpflg && !strcmp_P(type,PSTR("HOSTNAME"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.hostname))) { strlcpy(sysCfg.hostname, (1 == payload) ? WIFI_HOSTNAME : dataBuf, sizeof(sysCfg.hostname)); if (strstr(sysCfg.hostname,"%")) { @@ -1230,7 +1234,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Hostname\":\"%s\"}"), sysCfg.hostname); } - else if (!strcmp(type,"WIFICONFIG")) { + else if (!strcmp_P(type,PSTR("WIFICONFIG"))) { if ((data_len > 0) && (payload >= WIFI_RESTART) && (payload < MAX_WIFI_OPTION)) { sysCfg.sta_config = payload; wificheckflag = sysCfg.sta_config; @@ -1245,7 +1249,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(svalue, sizeof(svalue), PSTR("{\"WifiConfig\":\"%d (%s)\"}"), sysCfg.sta_config, stemp1); } } - else if (!strcmp(type,"FRIENDLYNAME") && (index > 0) && (index <= 4)) { + else if (!strcmp_P(type,PSTR("FRIENDLYNAME")) && (index > 0) && (index <= 4)) { if ((data_len > 0) && (data_len < sizeof(sysCfg.friendlyname[0]))) { if (1 == index) { snprintf_P(stemp1, sizeof(stemp1), PSTR(FRIENDLY_NAME)); @@ -1256,14 +1260,14 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"FriendlyName%d\":\"%s\"}"), index, sysCfg.friendlyname[index -1]); } - else if (swt_flg && !strcmp(type,"SWITCHMODE") && (index > 0) && (index <= 4)) { + else if (swt_flg && !strcmp_P(type,PSTR("SWITCHMODE")) && (index > 0) && (index <= 4)) { if ((data_len > 0) && (payload >= 0) && (payload < MAX_SWITCH_OPTION)) { sysCfg.switchmode[index -1] = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"SwitchMode%d\":%d}"), index, sysCfg.switchmode[index-1]); } #ifdef USE_WEBSERVER - else if (!strcmp(type,"WEBSERVER")) { + else if (!strcmp_P(type,PSTR("WEBSERVER"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { sysCfg.webserver = payload; } @@ -1274,20 +1278,20 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(svalue, sizeof(svalue), PSTR("{\"Webserver\":\"%s\"}"), getStateText(0)); } } - else if (!strcmp(type,"WEBPASSWORD")) { + else if (!strcmp_P(type,PSTR("WEBPASSWORD"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.web_password))) { strlcpy(sysCfg.web_password, (!strcmp(dataBuf,"0")) ? "" : (1 == payload) ? WEB_PASSWORD : dataBuf, sizeof(sysCfg.web_password)); } snprintf_P(svalue, sizeof(svalue), PSTR("{\"WebPassword\":\"%s\"}"), sysCfg.web_password); } - else if (!strcmp(type,"WEBLOG")) { + else if (!strcmp_P(type,PSTR("WEBLOG"))) { if ((data_len > 0) && (payload >= LOG_LEVEL_NONE) && (payload <= LOG_LEVEL_ALL)) { sysCfg.weblog_level = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"WebLog\":%d}"), sysCfg.weblog_level); } #ifdef USE_EMULATION - else if (!strcmp(type,"EMULATION")) { + else if (!strcmp_P(type,PSTR("EMULATION"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { sysCfg.emulation = payload; restartflag = 2; @@ -1296,7 +1300,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } #endif // USE_EMULATION #endif // USE_WEBSERVER - else if (!strcmp(type,"TELEPERIOD")) { + else if (!strcmp_P(type,PSTR("TELEPERIOD"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.tele_period = (1 == payload) ? TELE_PERIOD : payload; if ((sysCfg.tele_period > 0) && (sysCfg.tele_period < 10)) { @@ -1306,7 +1310,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"TelePeriod\":\"%d%s\"}"), sysCfg.tele_period, (sysCfg.value_units) ? " Sec" : ""); } - else if (!strcmp(type,"RESTART")) { + else if (!strcmp_P(type,PSTR("RESTART"))) { switch (payload) { case 1: restartflag = 2; @@ -1320,7 +1324,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(svalue, sizeof(svalue), PSTR("{\"Restart\":\"1 to restart\"}")); } } - else if (!strcmp(type,"RESET")) { + else if (!strcmp_P(type,PSTR("RESET"))) { switch (payload) { case 1: restartflag = 211; @@ -1334,13 +1338,13 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) snprintf_P(svalue, sizeof(svalue), PSTR("{\"Reset\":\"1 to reset\"}")); } } - else if (!strcmp(type,"TIMEZONE")) { + else if (!strcmp_P(type,PSTR("TIMEZONE"))) { if ((data_len > 0) && (((payload >= -12) && (payload <= 12)) || (99 == payload))) { sysCfg.timezone = payload; } snprintf_P(svalue, sizeof(svalue), PSTR("{\"Timezone\":%d}"), sysCfg.timezone); } - else if (!strcmp(type,"LEDPOWER")) { + else if (!strcmp_P(type,PSTR("LEDPOWER"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { sysCfg.ledstate &= 8; switch (payload) { @@ -1357,7 +1361,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"LedPower\":\"%s\"}"), getStateText(bitRead(sysCfg.ledstate, 3))); } - else if (!strcmp(type,"LEDSTATE")) { + else if (!strcmp_P(type,PSTR("LEDSTATE"))) { if ((data_len > 0) && (payload >= 0) && (payload < MAX_LED_OPTION)) { sysCfg.ledstate = payload; if (!sysCfg.ledstate) { @@ -1366,7 +1370,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } snprintf_P(svalue, sizeof(svalue), PSTR("{\"LedState\":%d}"), sysCfg.ledstate); } - else if (!strcmp(type,"CFGDUMP")) { + else if (!strcmp_P(type,PSTR("CFGDUMP"))) { CFG_Dump(); snprintf_P(svalue, sizeof(svalue), PSTR("{\"CfgDump\":\"Done\"}")); } @@ -1377,7 +1381,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) // Serviced } #ifdef USE_I2C - else if (i2c_flg && !strcmp(type,"I2CSCAN")) { + else if (i2c_flg && !strcmp_P(type,PSTR("I2CSCAN"))) { i2c_scan(svalue, sizeof(svalue)); } #endif // USE_I2C @@ -1392,7 +1396,7 @@ void mqttDataCb(char* topic, byte* data, unsigned int data_len) } #endif // USE_IR_REMOTE #ifdef DEBUG_THEO - else if (!strcmp(type,"EXCEPTION")) { + else if (!strcmp_P(type,PSTR("EXCEPTION"))) { if (data_len > 0) { exception_tst(payload); } @@ -2353,6 +2357,10 @@ void GPIO_init() #endif // USE_IR_REMOTE } +extern "C" { +extern struct rst_info resetInfo; +} + void setup() { char log[LOGSZ]; @@ -2413,29 +2421,29 @@ void setup() if (MOTOR == sysCfg.module) { sysCfg.poweronstate = 1; // Needs always on else in limbo! } - if (ESP.getResetReason() == "Power on") { + if ((resetInfo.reason == REASON_DEFAULT_RST) || (resetInfo.reason == REASON_EXT_SYS_RST)) { if (0 == sysCfg.poweronstate) { // All off power = 0; setRelay(power); } else if (1 == sysCfg.poweronstate) { // All on - power = ((0x00FF << Maxdevice) >> 8); + power = (1 << Maxdevice) -1; setRelay(power); } else if (2 == sysCfg.poweronstate) { // All saved state toggle - power = (sysCfg.power & ((0x00FF << Maxdevice) >> 8)) ^ 0xFF; + power = sysCfg.power & ((1 << Maxdevice) -1) ^ 0xFF; if (sysCfg.savestate) { setRelay(power); } } else if (3 == sysCfg.poweronstate) { // All saved state - power = sysCfg.power & ((0x00FF << Maxdevice) >> 8); + power = sysCfg.power & ((1 << Maxdevice) -1); if (sysCfg.savestate) { setRelay(power); } } } else { - power = sysCfg.power & ((0x00FF << Maxdevice) >> 8); + power = sysCfg.power & ((1 << Maxdevice) -1); if (sysCfg.savestate) { setRelay(power); } diff --git a/sonoff/xdrv_domoticz.ino b/sonoff/xdrv_domoticz.ino index 114dbf587..283d85668 100644 --- a/sonoff/xdrv_domoticz.ino +++ b/sonoff/xdrv_domoticz.ino @@ -152,7 +152,7 @@ boolean domoticz_mqttData(char *topicBuf, uint16_t stopicBuf, char *dataBuf, uin if (!domoticz.success()) { return 1; } -// if (strcmp(domoticz["dtype"],"Light/Switch")) { +// if (strcmp_P(domoticz["dtype"],PSTR("Light/Switch"))) { // return 1; // } idx = domoticz["idx"]; @@ -210,47 +210,47 @@ boolean domoticz_command(const char *type, uint16_t index, char *dataBuf, uint16 { boolean serviced = true; - if (!strncmp(type,"DOMOTICZ",8)) { - if (!strcmp(type +8,"INTOPIC")) { + if (!strncmp_P(type,PSTR("DOMOTICZ"),8)) { + if (!strcmp_P(type +8,PSTR("INTOPIC"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.domoticz_in_topic))) { strlcpy(sysCfg.domoticz_in_topic, (1 == payload) ? DOMOTICZ_IN_TOPIC : dataBuf, sizeof(sysCfg.domoticz_in_topic)); restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"DomoticzInTopic\":\"%s\"}"), sysCfg.domoticz_in_topic); } - else if (!strcmp(type +8,"OUTTOPIC")) { + else if (!strcmp_P(type +8,PSTR("OUTTOPIC"))) { if ((data_len > 0) && (data_len < sizeof(sysCfg.domoticz_out_topic))) { strlcpy(sysCfg.domoticz_out_topic, (1 == payload) ? DOMOTICZ_OUT_TOPIC : dataBuf, sizeof(sysCfg.domoticz_out_topic)); restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"DomoticzOutTopic\":\"%s\"}"), sysCfg.domoticz_out_topic); } - else if (!strcmp(type +8,"IDX") && (index > 0) && (index <= Maxdevice)) { + else if (!strcmp_P(type +8,PSTR("IDX")) && (index > 0) && (index <= Maxdevice)) { if ((data_len > 0) && (payload >= 0)) { sysCfg.domoticz_relay_idx[index -1] = payload; restartflag = 2; } snprintf_P(svalue, ssvalue, PSTR("{\"DomoticzIdx%d\":%d}"), index, sysCfg.domoticz_relay_idx[index -1]); } - else if (!strcmp(type +8,"KEYIDX") && (index > 0) && (index <= Maxdevice)) { + else if (!strcmp_P(type +8,PSTR("KEYIDX")) && (index > 0) && (index <= Maxdevice)) { if ((data_len > 0) && (payload >= 0)) { sysCfg.domoticz_key_idx[index -1] = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"DomoticzKeyIdx%d\":%d}"), index, sysCfg.domoticz_key_idx[index -1]); } - else if (!strcmp(type +8,"SWITCHIDX") && (index > 0) && (index <= Maxdevice)) { + else if (!strcmp_P(type +8,PSTR("SWITCHIDX")) && (index > 0) && (index <= Maxdevice)) { if ((data_len > 0) && (payload >= 0)) { sysCfg.domoticz_switch_idx[index -1] = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"DomoticzSwitchIdx%d\":%d}"), index, sysCfg.domoticz_key_idx[index -1]); } - else if (!strcmp(type +8,"SENSORIDX") && (index > 0) && (index <= DOMOTICZ_MAX_SENSORS)) { + else if (!strcmp_P(type +8,PSTR("SENSORIDX")) && (index > 0) && (index <= DOMOTICZ_MAX_SENSORS)) { if ((data_len > 0) && (payload >= 0)) { sysCfg.domoticz_sensor_idx[index -1] = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"DomoticzSensorIdx%d\":%d}"), index, sysCfg.domoticz_sensor_idx[index -1]); } - else if (!strcmp(type +8,"UPDATETIMER")) { + else if (!strcmp_P(type +8,PSTR("UPDATETIMER"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.domoticz_update_timer = payload; } diff --git a/sonoff/xdrv_ir_send.ino b/sonoff/xdrv_ir_send.ino index 0c2d71a12..081157bf5 100644 --- a/sonoff/xdrv_ir_send.ino +++ b/sonoff/xdrv_ir_send.ino @@ -90,7 +90,7 @@ boolean ir_send_command(char *type, uint16_t index, char *dataBufUc, uint16_t da // char log[LOGSZ]; - if (!strcmp(type,"IRSEND")) { + if (!strcmp_P(type,PSTR("IRSEND"))) { if (data_len) { StaticJsonBuffer<128> jsonBuf; JsonObject &ir_json = jsonBuf.parseObject(dataBufUc); @@ -102,13 +102,13 @@ boolean ir_send_command(char *type, uint16_t index, char *dataBufUc, uint16_t da bits = ir_json["BITS"]; data = ir_json["DATA"]; if (protocol && bits && data) { - if (!strcmp(protocol,"NEC")) irsend->sendNEC(data, bits); - else if (!strcmp(protocol,"SONY")) irsend->sendSony(data, bits); - else if (!strcmp(protocol,"RC5")) irsend->sendRC5(data, bits); - else if (!strcmp(protocol,"RC6")) irsend->sendRC6(data, bits); - else if (!strcmp(protocol,"DISH")) irsend->sendDISH(data, bits); - else if (!strcmp(protocol,"JVC")) irsend->sendJVC(data, bits, 1); - else if (!strcmp(protocol,"SAMSUNG")) irsend->sendSAMSUNG(data, bits); + if (!strcmp_P(protocol,PSTR("NEC"))) irsend->sendNEC(data, bits); + else if (!strcmp_P(protocol,PSTR("SONY"))) irsend->sendSony(data, bits); + else if (!strcmp_P(protocol,PSTR("RC5"))) irsend->sendRC5(data, bits); + else if (!strcmp_P(protocol,PSTR("RC6"))) irsend->sendRC6(data, bits); + else if (!strcmp_P(protocol,PSTR("DISH"))) irsend->sendDISH(data, bits); + else if (!strcmp_P(protocol,PSTR("JVC"))) irsend->sendJVC(data, bits, 1); + else if (!strcmp_P(protocol,PSTR("SAMSUNG"))) irsend->sendSAMSUNG(data, bits); else { snprintf_P(svalue, ssvalue, PSTR("{\"IRSend\":\"Protocol not supported\"}")); } @@ -120,7 +120,7 @@ boolean ir_send_command(char *type, uint16_t index, char *dataBufUc, uint16_t da } } #ifdef USE_IR_HVAC - else if (!strcmp(type,"IRHVAC")) { + else if (!strcmp_P(type,PSTR("IRHVAC"))) { if (data_len) { StaticJsonBuffer<164> jsonBufer; JsonObject &root = jsonBufer.parseObject(dataBufUc); @@ -138,10 +138,10 @@ boolean ir_send_command(char *type, uint16_t index, char *dataBufUc, uint16_t da // HVAC_Vendor, HVAC_Power, HVAC_Mode, HVAC_FanMode, HVAC_Temp); // addLog(LOG_LEVEL_DEBUG, log); - if (HVAC_Vendor == NULL || !strcmp(HVAC_Vendor,"TOSHIBA")) { + if (HVAC_Vendor == NULL || !strcmp_P(HVAC_Vendor,PSTR("TOSHIBA"))) { error = ir_hvac_toshiba(HVAC_Mode, HVAC_FanMode, HVAC_Power, HVAC_Temp); } - else if (!strcmp(HVAC_Vendor,"MITSUBISHI")) { + else if (!strcmp_P(HVAC_Vendor,PSTR("MITSUBISHI"))) { error = ir_hvac_mitsubishi(HVAC_Mode, HVAC_FanMode, HVAC_Power, HVAC_Temp); } else error = true; diff --git a/sonoff/xdrv_snfled.ino b/sonoff/xdrv_snfled.ino index b0550a9f1..a4143751e 100644 --- a/sonoff/xdrv_snfled.ino +++ b/sonoff/xdrv_snfled.ino @@ -183,7 +183,7 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le boolean serviced = true; boolean coldim = false; - if (!strcmp(type,"COLOR")) { + if (!strcmp_P(type,PSTR("COLOR"))) { uint8_t my_color[5]; if (4 == data_len) { char ccold[3], cwarm[3]; @@ -212,7 +212,7 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le snprintf_P(svalue, ssvalue, PSTR("{\"Color\":\"%04X\"}"), color); } } - else if (!strcmp(type,"DIMMER")) { + else if (!strcmp_P(type,PSTR("DIMMER"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 100)) { sysCfg.led_dimmer[0] = payload; coldim = true; @@ -220,7 +220,7 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le snprintf_P(svalue, ssvalue, PSTR("{\"Dimmer\":%d}"), sysCfg.led_dimmer[0]); } } - else if (!strcmp(type,"LEDTABLE")) { + else if (!strcmp_P(type,PSTR("LEDTABLE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { switch (payload) { case 0: // Off @@ -235,7 +235,7 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le } snprintf_P(svalue, ssvalue, PSTR("{\"LedTable\":\"%s\"}"), getStateText(sysCfg.led_table)); } - else if (!strcmp(type,"FADE")) { + else if (!strcmp_P(type,PSTR("FADE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { switch (payload) { case 0: // Off @@ -249,20 +249,20 @@ boolean sl_command(char *type, uint16_t index, char *dataBufUc, uint16_t data_le } snprintf_P(svalue, ssvalue, PSTR("{\"Fade\":\"%s\"}"), getStateText(sysCfg.led_fade)); } - else if (!strcmp(type,"SPEED")) { // 1 - fast, 8 - slow + else if (!strcmp_P(type,PSTR("SPEED"))) { // 1 - fast, 8 - slow if ((data_len > 0) && (payload > 0) && (payload <= 8)) { sysCfg.led_speed = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"Speed\":%d}"), sysCfg.led_speed); } - else if (!strcmp(type,"WAKEUPDURATION")) { + else if (!strcmp_P(type,PSTR("WAKEUPDURATION"))) { if ((data_len > 0) && (payload > 0) && (payload < 3601)) { sysCfg.led_wakeup = payload; sl_wakeupActive = 0; } snprintf_P(svalue, ssvalue, PSTR("{\"WakeUpDuration\":%d}"), sysCfg.led_wakeup); } - else if (!strcmp(type,"WAKEUP")) { + else if (!strcmp_P(type,PSTR("WAKEUP"))) { do_cmnd_power(index, 1); sl_wakeupActive = 1; snprintf_P(svalue, ssvalue, PSTR("{\"Wakeup\":\"Started\"}")); diff --git a/sonoff/xdrv_snfsc.ino b/sonoff/xdrv_snfsc.ino index a8c849226..88d22264b 100644 --- a/sonoff/xdrv_snfsc.ino +++ b/sonoff/xdrv_snfsc.ino @@ -91,7 +91,7 @@ void sc_rcvstat(char *rcvstat) Serial.write("AT+SEND=fail\e"); } } - else if (!strcmp(rcvstat,"AT+STATUS?")) { + else if (!strcmp_P(rcvstat,PSTR("AT+STATUS?"))) { Serial.write("AT+STATUS=4\e"); } } @@ -118,7 +118,8 @@ void sc_mqttPresent(char* svalue, uint16_t ssvalue, uint8_t* djson) dtostrf(t, 1, TEMP_RESOLUTION &3, stemp1); float h = sc_value[0]; dtostrf(h, 1, HUMIDITY_RESOLUTION &3, stemp2); - snprintf_P(svalue, ssvalue, PSTR("%s, \"SC\":{\"Temperature\":%s, \"Humidity\":%s, \"Light\":%d, \"Noise\":%d, \"AirQuality\":%d}"), +// snprintf_P(svalue, ssvalue, PSTR("%s, \"SC\":{\"Temperature\":%s, \"Humidity\":%s, \"Light\":%d, \"Noise\":%d, \"AirQuality\":%d}"), + snprintf_P(svalue, ssvalue, PSTR("%s, \"Temperature\":%s, \"Humidity\":%s, \"Light\":%d, \"Noise\":%d, \"AirQuality\":%d"), svalue, stemp1, stemp2, sc_value[2], sc_value[3], sc_value[4]); *djson = 1; #ifdef USE_DOMOTICZ @@ -136,7 +137,7 @@ String sc_webPresent() if (sc_value[0] > 0) { char stemp[10]; char sensor[80]; - char scstype[] = "SC"; + char scstype[] = ""; float t = sc_value[1]; if (TEMP_CONVERSION) { diff --git a/sonoff/xdrv_ws2812.ino b/sonoff/xdrv_ws2812.ino index b598b8a8d..431c73cfe 100644 --- a/sonoff/xdrv_ws2812.ino +++ b/sonoff/xdrv_ws2812.ino @@ -532,21 +532,21 @@ boolean ws2812_command(char *type, uint16_t index, char *dataBuf, uint16_t data_ { boolean serviced = true; - if (!strcmp(type,"PIXELS")) { + if (!strcmp_P(type,PSTR("PIXELS"))) { if ((data_len > 0) && (payload > 0) && (payload <= WS2812_MAX_LEDS)) { sysCfg.ws_pixels = payload; ws2812_pixels(); } snprintf_P(svalue, ssvalue, PSTR("{\"Pixels\":%d}"), sysCfg.ws_pixels); } - else if (!strcmp(type,"LED") && (index > 0) && (index <= sysCfg.ws_pixels)) { + else if (!strcmp_P(type,PSTR("LED")) && (index > 0) && (index <= sysCfg.ws_pixels)) { if (6 == data_len) { // ws2812_setColor(index, dataBufUc); ws2812_setColor(index, dataBuf); } ws2812_getColor(index, svalue, ssvalue); } - else if (!strcmp(type,"COLOR")) { + else if (!strcmp_P(type,PSTR("COLOR"))) { if (6 == data_len) { // ws2812_setColor(0, dataBufUc); ws2812_setColor(0, dataBuf); @@ -554,7 +554,7 @@ boolean ws2812_command(char *type, uint16_t index, char *dataBuf, uint16_t data_ } ws2812_getColor(0, svalue, ssvalue); } - else if (!strcmp(type,"DIMMER")) { + else if (!strcmp_P(type,PSTR("DIMMER"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 100)) { sysCfg.ws_dimmer = payload; power = 1; @@ -564,7 +564,7 @@ boolean ws2812_command(char *type, uint16_t index, char *dataBuf, uint16_t data_ } snprintf_P(svalue, ssvalue, PSTR("{\"Dimmer\":%d}"), sysCfg.ws_dimmer); } - else if (!strcmp(type,"LEDTABLE")) { + else if (!strcmp_P(type,PSTR("LEDTABLE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { switch (payload) { case 0: // Off @@ -579,7 +579,7 @@ boolean ws2812_command(char *type, uint16_t index, char *dataBuf, uint16_t data_ } snprintf_P(svalue, ssvalue, PSTR("{\"LedTable\":\"%s\"}"), getStateText(sysCfg.ws_ledtable)); } - else if (!strcmp(type,"FADE")) { + else if (!strcmp_P(type,PSTR("FADE"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 2)) { switch (payload) { case 0: // Off @@ -593,19 +593,19 @@ boolean ws2812_command(char *type, uint16_t index, char *dataBuf, uint16_t data_ } snprintf_P(svalue, ssvalue, PSTR("{\"Fade\":\"%s\"}"), getStateText(sysCfg.ws_fade)); } - else if (!strcmp(type,"SPEED")) { // 1 - fast, 5 - slow + else if (!strcmp_P(type,PSTR("SPEED"))) { // 1 - fast, 5 - slow if ((data_len > 0) && (payload > 0) && (payload <= 5)) { sysCfg.ws_speed = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"Speed\":%d}"), sysCfg.ws_speed); } - else if (!strcmp(type,"WIDTH")) { + else if (!strcmp_P(type,PSTR("WIDTH"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 4)) { sysCfg.ws_width = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"Width\":%d}"), sysCfg.ws_width); } - else if (!strcmp(type,"WAKEUP")) { + else if (!strcmp_P(type,PSTR("WAKEUP"))) { if ((data_len > 0) && (payload > 0) && (payload < 3601)) { sysCfg.ws_wakeup = payload; if (1 == sysCfg.ws_scheme) { @@ -614,7 +614,7 @@ boolean ws2812_command(char *type, uint16_t index, char *dataBuf, uint16_t data_ } snprintf_P(svalue, ssvalue, PSTR("{\"WakeUp\":%d}"), sysCfg.ws_wakeup); } - else if (!strcmp(type,"SCHEME")) { + else if (!strcmp_P(type,PSTR("SCHEME"))) { if ((data_len > 0) && (payload >= 0) && (payload <= 9)) { sysCfg.ws_scheme = payload; if (1 == sysCfg.ws_scheme) { diff --git a/sonoff/xsns_hlw8012.ino b/sonoff/xsns_hlw8012.ino index a64e521e7..340c6cb71 100644 --- a/sonoff/xsns_hlw8012.ino +++ b/sonoff/xsns_hlw8012.ino @@ -437,105 +437,105 @@ boolean hlw_command(char *type, uint16_t index, char *dataBuf, uint16_t data_len { boolean serviced = true; - if (!strcmp(type,"POWERLOW")) { + if (!strcmp_P(type,PSTR("POWERLOW"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_pmin = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"PowerLow\":\"%d%s\"}"), sysCfg.hlw_pmin, (sysCfg.value_units) ? " W" : ""); } - else if (!strcmp(type,"POWERHIGH")) { + else if (!strcmp_P(type,PSTR("POWERHIGH"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_pmax = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"PowerHigh\":\"%d%s\"}"), sysCfg.hlw_pmax, (sysCfg.value_units) ? " W" : ""); } - else if (!strcmp(type,"VOLTAGELOW")) { + else if (!strcmp_P(type,PSTR("VOLTAGELOW"))) { if ((data_len > 0) && (payload >= 0) && (payload < 501)) { sysCfg.hlw_umin = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"VoltageLow\":\"%d%s\"}"), sysCfg.hlw_umin, (sysCfg.value_units) ? " V" : ""); } - else if (!strcmp(type,"VOLTAGEHIGH")) { + else if (!strcmp_P(type,PSTR("VOLTAGEHIGH"))) { if ((data_len > 0) && (payload >= 0) && (payload < 501)) { sysCfg.hlw_umax = payload; } snprintf_P(svalue, ssvalue, PSTR("[\"VoltageHigh\":\"%d%s\"}"), sysCfg.hlw_umax, (sysCfg.value_units) ? " V" : ""); } - else if (!strcmp(type,"CURRENTLOW")) { + else if (!strcmp_P(type,PSTR("CURRENTLOW"))) { if ((data_len > 0) && (payload >= 0) && (payload < 16001)) { sysCfg.hlw_imin = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"CurrentLow\":\"%d%s\"}"), sysCfg.hlw_imin, (sysCfg.value_units) ? " mA" : ""); } - else if (!strcmp(type,"CURRENTHIGH")) { + else if (!strcmp_P(type,PSTR("CURRENTHIGH"))) { if ((data_len > 0) && (payload >= 0) && (payload < 16001)) { sysCfg.hlw_imax = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"CurrentHigh\":\"%d%s\"}"), sysCfg.hlw_imax, (sysCfg.value_units) ? " mA" : ""); } - else if (!strcmp(type,"HLWPCAL")) { + else if (!strcmp_P(type,PSTR("HLWPCAL"))) { if ((data_len > 0) && (payload > 0) && (payload < 32001)) { sysCfg.hlw_pcal = (payload > 9999) ? payload : HLW_PREF_PULSE; // 12530 } snprintf_P(svalue, ssvalue, PSTR("(\"HlwPcal\":\"%d%s\"}"), sysCfg.hlw_pcal, (sysCfg.value_units) ? " uS" : ""); } - else if (!strcmp(type,"HLWUCAL")) { + else if (!strcmp_P(type,PSTR("HLWUCAL"))) { if ((data_len > 0) && (payload > 0) && (payload < 32001)) { sysCfg.hlw_ucal = (payload > 999) ? payload : HLW_UREF_PULSE; // 1950 } snprintf_P(svalue, ssvalue, PSTR("{\"HlwUcal\":\"%d%s\"}"), sysCfg.hlw_ucal, (sysCfg.value_units) ? " uS" : ""); } - else if (!strcmp(type,"HLWICAL")) { + else if (!strcmp_P(type,PSTR("HLWICAL"))) { if ((data_len > 0) && (payload > 0) && (payload < 32001)) { sysCfg.hlw_ical = (payload > 2499) ? payload : HLW_IREF_PULSE; // 3500 } snprintf_P(svalue, ssvalue, PSTR("{\"HlwIcal\":\"%d%s\"}"), sysCfg.hlw_ical, (sysCfg.value_units) ? " uS" : ""); } #if FEATURE_POWER_LIMIT - else if (!strcmp(type,"MAXPOWER")) { + else if (!strcmp_P(type,PSTR("MAXPOWER"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_mpl = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"MaxPower\":\"%d%s\"}"), sysCfg.hlw_mpl, (sysCfg.value_units) ? " W" : ""); } - else if (!strcmp(type,"MAXPOWERHOLD")) { + else if (!strcmp_P(type,PSTR("MAXPOWERHOLD"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_mplh = (1 == payload) ? MAX_POWER_HOLD : payload; } snprintf_P(svalue, ssvalue, PSTR("{\"MaxPowerHold\":\"%d%s\"}"), sysCfg.hlw_mplh, (sysCfg.value_units) ? " Sec" : ""); } - else if (!strcmp(type,"MAXPOWERWINDOW")) { + else if (!strcmp_P(type,PSTR("MAXPOWERWINDOW"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_mplw = (1 == payload) ? MAX_POWER_WINDOW : payload; } snprintf_P(svalue, ssvalue, PSTR("{\"MaxPowerWindow\":\"%d%s\"}"), sysCfg.hlw_mplw, (sysCfg.value_units) ? " Sec" : ""); } - else if (!strcmp(type,"SAFEPOWER")) { + else if (!strcmp_P(type,PSTR("SAFEPOWER"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_mspl = payload; } snprintf_P(svalue, ssvalue, PSTR("{\"SafePower\":\"%d%s\"}"), sysCfg.hlw_mspl, (sysCfg.value_units) ? " W" : ""); } - else if (!strcmp(type,"SAFEPOWERHOLD")) { + else if (!strcmp_P(type,PSTR("SAFEPOWERHOLD"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_msplh = (1 == payload) ? SAFE_POWER_HOLD : payload; } snprintf_P(svalue, ssvalue, PSTR("{\"SafePowerHold\":\"%d%s\"}"), sysCfg.hlw_msplh, (sysCfg.value_units) ? " Sec" : ""); } - else if (!strcmp(type,"SAFEPOWERWINDOW")) { + else if (!strcmp_P(type,PSTR("SAFEPOWERWINDOW"))) { if ((data_len > 0) && (payload >= 0) && (payload < 1440)) { sysCfg.hlw_msplw = (1 == payload) ? SAFE_POWER_WINDOW : payload; } snprintf_P(svalue, ssvalue, PSTR("{\"SafePowerWindow\":\"%d%s\"}"), sysCfg.hlw_msplw, (sysCfg.value_units) ? " Min" : ""); } - else if (!strcmp(type,"MAXENERGY")) { + else if (!strcmp_P(type,PSTR("MAXENERGY"))) { if ((data_len > 0) && (payload >= 0) && (payload < 3601)) { sysCfg.hlw_mkwh = payload; hlw_mkwh_state = 3; } snprintf_P(svalue, ssvalue, PSTR("{\"MaxEnergy\":\"%d%s\"}"), sysCfg.hlw_mkwh, (sysCfg.value_units) ? " Wh" : ""); } - else if (!strcmp(type,"MAXENERGYSTART")) { + else if (!strcmp_P(type,PSTR("MAXENERGYSTART"))) { if ((data_len > 0) && (payload >= 0) && (payload < 24)) { sysCfg.hlw_mkwhs = payload; }