Skip to content

Commit

Permalink
v5.13.1
Browse files Browse the repository at this point in the history
Release version 5.13.1
  • Loading branch information
arendst committed May 1, 2018
1 parent 6f58001 commit f20e9b8
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 16 deletions.
7 changes: 6 additions & 1 deletion sonoff/_releasenotes.ino
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
/* 5.13.0 20180430
/* 5.13.1 20180501
* Fix JSON buffers size too small for execution in some situations (#2580)
* Fix configuration restore (#2591)
* Add define MODULE for user selecting default model although it preferably should not be changed (#569, #2589)
*
* 5.13.0 20180430
* Change platformio option sonoff-ds18x20 to sonoff-allsensors enabling ds18x20 and all other sensors in one image
* Change status display of Ssid and SetOption
* Change default option SetOption15 from 0 to 1 providing better initial PWM experience
Expand Down
2 changes: 0 additions & 2 deletions sonoff/sonoff.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@ typedef unsigned long power_t; // Power (Relay) type
#define MAX_KNX_CB 10 // Max number of KNX Group Addresses to write that can be set
#define MAX_RULE_SIZE 512 // Max number of characters in rules

#define MODULE SONOFF_BASIC // [Module] Select default model

#define MQTT_TOKEN_PREFIX "%prefix%" // To be substituted by mqtt_prefix[x]
#define MQTT_TOKEN_TOPIC "%topic%" // To be substituted by mqtt_topic, mqtt_grptopic, mqtt_buttontopic, mqtt_switchtopic

Expand Down
2 changes: 1 addition & 1 deletion sonoff/sonoff.ino
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
- Select IDE Tools - Flash Size: "1M (no SPIFFS)"
====================================================*/

#define VERSION 0x050D0000 // 5.13.0
#define VERSION 0x050D0100 // 5.13.1

// Location specific includes
#include <core_version.h> // Arduino_Esp8266 version information (ARDUINO_ESP8266_RELEASE and ARDUINO_ESP8266_RELEASE_2_3_0)
Expand Down
4 changes: 4 additions & 0 deletions sonoff/sonoff_post.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ void KNX_CB_Action(message_t const &msg, void *arg);
* Default global defines
\*********************************************************************************************/

#ifndef MODULE
#define MODULE SONOFF_BASIC // [Module] Select default model
#endif

#define USE_DHT // Default DHT11 sensor needs no external library

/*********************************************************************************************\
Expand Down
1 change: 1 addition & 0 deletions sonoff/user_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@

// -- Project -------------------------------------
#define PROJECT "sonoff" // PROJECT is used as the default topic delimiter
#define MODULE SONOFF_BASIC // [Module] Select default model from sonoff_template.h (Should not be changed)

#define SAVE_DATA 1 // [SaveData] Save changed parameters to Flash (0 = disable, 1 - 3600 seconds)
#define SAVE_STATE 1 // [SetOption0] Save changed power state to Flash (0 = disable, 1 = enable)
Expand Down
29 changes: 19 additions & 10 deletions sonoff/webserver.ino
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,8 @@ uint8_t webserver_state = HTTP_OFF;
uint8_t upload_error = 0;
uint8_t upload_file_type;
uint8_t upload_progress_dot_count;
uint8_t config_block_count = 0;
uint8_t config_xor_on = 0;

// Helper function to avoid code duplication (saves 4k Flash)
static void WebGetArg(const char* arg, char* out, size_t max)
Expand Down Expand Up @@ -1317,17 +1319,14 @@ void HandleUploadLoop()
}
upload_progress_dot_count = 0;
} else if (!upload_error && (UPLOAD_FILE_WRITE == upload.status)) {
if (0 == upload.totalSize)
{
if (0 == upload.totalSize) {
if (upload_file_type) {
if (upload.buf[0] != CONFIG_FILE_SIGN) {
upload_error = 8;
return;
}
if (upload.currentSize > sizeof(Settings)) {
upload_error = 9;
return;
}
config_xor_on = upload.buf[1];
config_block_count = 0;
} else {
if (upload.buf[0] != 0xE9) {
upload_error = 3;
Expand All @@ -1343,14 +1342,24 @@ void HandleUploadLoop()
}
if (upload_file_type) { // config
if (!upload_error) {
if (upload.buf[1]) {
if (upload.currentSize > (sizeof(Settings) - (config_block_count * HTTP_UPLOAD_BUFLEN))) {
if (config_block_count) { SettingsDefault(); }
upload_error = 9;
return;
}
if (config_xor_on) {
for (uint16_t i = 2; i < upload.currentSize; i++) {
upload.buf[i] ^= (CONFIG_FILE_XOR +i);
}
}
SettingsDefaultSet2();
memcpy((char*)&Settings +16, upload.buf +16, upload.currentSize -16);
memcpy((char*)&Settings +8, upload.buf +8, 4); // Restore version and auto upgrade
if (0 == config_block_count) {
SettingsDefaultSet2();
memcpy((char*)&Settings +16, upload.buf +16, upload.currentSize -16);
memcpy((char*)&Settings +8, upload.buf +8, 4); // Restore version and auto upgrade
} else {
memcpy((char*)&Settings +(config_block_count * HTTP_UPLOAD_BUFLEN), upload.buf, upload.currentSize);
}
config_block_count++;
}
} else { // firmware
if (!upload_error && (Update.write(upload.buf, upload.currentSize) != upload.currentSize)) {
Expand Down
2 changes: 1 addition & 1 deletion sonoff/xdrv_09_timers.ino
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ boolean TimerCommand()
#ifndef USE_RULES
if (devices_present) {
#endif
StaticJsonBuffer<200> jsonBuffer;
StaticJsonBuffer<256> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(dataBufUc);
if (!root.success()) {
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_TIMER "%d\":\"" D_JSON_INVALID_JSON "\"}"), index); // JSON decode failed
Expand Down
2 changes: 1 addition & 1 deletion sonoff/xdrv_10_rules.ino
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ bool RulesRuleMatch(String &event, String &rule)
}

// Step2: Search rule_task and rule_name
StaticJsonBuffer<400> jsonBuf;
StaticJsonBuffer<1024> jsonBuf;
JsonObject &root = jsonBuf.parseObject(event);
if (!root.success()) { return false; } // No valid JSON data

Expand Down

0 comments on commit f20e9b8

Please sign in to comment.