diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 7ce640e57..08114dd2a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -184,11 +184,12 @@ The following binary downloads have been compiled with ESP8266/Arduino library c | USE_DISPLAY | - | - | - | - | - | - | ## Changelog -Version 6.4.1 20181223 +Version 6.4.1 20181225 * Change RAM usage BMP/BME I2C sensors * Change FallbackTopic from cmnd/\/ to cmnd/\_fb/ to discriminate from Topic (#1528) * Change FallbackTopic detection (#4706) * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (#4711) + * Change MQTT GUI password handling (#4723) * Fix possible dtostrf buffer overflows by increasing buffers * Fix wifi strongest signal detection (#4704) * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (#3159, #4712) diff --git a/sonoff/_changelog.ino b/sonoff/_changelog.ino index d305600c7..158d0c5fe 100644 --- a/sonoff/_changelog.ino +++ b/sonoff/_changelog.ino @@ -3,6 +3,7 @@ * Change FallbackTopic from cmnd// to cmnd/_fb/ to discriminate from Topic (#1528) * Change FallbackTopic detection (#4706) * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (#4711) + * Change MQTT GUI password handling (#4723) * Fix possible dtostrf buffer overflows by increasing buffers * Fix wifi strongest signal detection (#4704) * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (#3159, #4712) diff --git a/sonoff/xdrv_02_mqtt.ino b/sonoff/xdrv_02_mqtt.ino index e3f848ce8..7ba5cf47a 100644 --- a/sonoff/xdrv_02_mqtt.ino +++ b/sonoff/xdrv_02_mqtt.ino @@ -858,7 +858,7 @@ const char HTTP_FORM_MQTT[] PROGMEM = "
" D_PORT " (" STR(MQTT_PORT) ")

" "
" D_CLIENT " ({m0)

" "
" D_USER " (" MQTT_USER ")

" - "
" D_PASSWORD "

" + "
" D_PASSWORD "

" "
" D_TOPIC " = %topic% (" MQTT_TOPIC ")

" "
" D_FULL_TOPIC " (" MQTT_FULLTOPIC ")

"; @@ -885,7 +885,6 @@ void HandleMqttConfiguration(void) page.replace(F("{m2"), String(Settings.mqtt_port)); page.replace(F("{m3"), Settings.mqtt_client); page.replace(F("{m4"), (Settings.mqtt_user[0] == '\0')?"0":Settings.mqtt_user); - page.replace(F("{m5"), (Settings.mqtt_pwd[0] == '\0')?"0":Settings.mqtt_pwd); page.replace(F("{m6"), Settings.mqtt_topic); page.replace(F("{m7"), Settings.mqtt_fulltopic); @@ -921,9 +920,9 @@ void MqttSaveSettings(void) WebGetArg("mu", tmp, sizeof(tmp)); strlcpy(Settings.mqtt_user, (!strlen(tmp)) ? MQTT_USER : (!strcmp(tmp,"0")) ? "" : tmp, sizeof(Settings.mqtt_user)); WebGetArg("mp", tmp, sizeof(tmp)); - strlcpy(Settings.mqtt_pwd, (!strlen(tmp)) ? MQTT_PASS : (!strcmp(tmp,"0")) ? "" : tmp, sizeof(Settings.mqtt_pwd)); - snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_MQTT D_CMND_MQTTHOST " %s, " D_CMND_MQTTPORT " %d, " D_CMND_MQTTCLIENT " %s, " D_CMND_MQTTUSER " %s, " D_CMND_MQTTPASSWORD " %s, " D_CMND_TOPIC " %s, " D_CMND_FULLTOPIC " %s"), - Settings.mqtt_host, Settings.mqtt_port, Settings.mqtt_client, Settings.mqtt_user, Settings.mqtt_pwd, Settings.mqtt_topic, Settings.mqtt_fulltopic); + strlcpy(Settings.mqtt_pwd, (!strlen(tmp)) ? "" : (strchr(tmp,'*')) ? Settings.mqtt_pwd : tmp, sizeof(Settings.mqtt_pwd)); + snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_MQTT D_CMND_MQTTHOST " %s, " D_CMND_MQTTPORT " %d, " D_CMND_MQTTCLIENT " %s, " D_CMND_MQTTUSER " %s, " D_CMND_TOPIC " %s, " D_CMND_FULLTOPIC " %s"), + Settings.mqtt_host, Settings.mqtt_port, Settings.mqtt_client, Settings.mqtt_user, Settings.mqtt_topic, Settings.mqtt_fulltopic); AddLog(LOG_LEVEL_INFO); } #endif // USE_WEBSERVER diff --git a/sonoff/xdrv_19_ps16dz_dimmer.ino b/sonoff/xdrv_19_ps16dz_dimmer.ino index 3c895cf98..7671249eb 100644 --- a/sonoff/xdrv_19_ps16dz_dimmer.ino +++ b/sonoff/xdrv_19_ps16dz_dimmer.ino @@ -159,8 +159,9 @@ void PS16DZSerialInput(void) memset(ps16dz_rx_buffer, 0, PS16DZ_BUFFER_SIZE); ps16dz_byte_counter = 0; } - if (ps16dz_byte_counter || (!ps16dz_byte_counter && serial_in_byte == 'A')); - ps16dz_rx_buffer[ps16dz_byte_counter++] = serial_in_byte; + if (ps16dz_byte_counter || (!ps16dz_byte_counter && serial_in_byte == 'A')) { + ps16dz_rx_buffer[ps16dz_byte_counter++] = serial_in_byte; + } } else { ps16dz_rx_buffer[ps16dz_byte_counter++] = 0x00;