Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CoogleIOT issues with newer esp8266 Arduino cores (3.0.x) #21

Open
mikeofqyn opened this issue Sep 18, 2021 · 0 comments
Open

CoogleIOT issues with newer esp8266 Arduino cores (3.0.x) #21

mikeofqyn opened this issue Sep 18, 2021 · 0 comments

Comments

@mikeofqyn
Copy link

Changes needed to make CoogleIOT compile and run on current esp8266 cores

1) Function removed from ESP8222 core API

From ESP8266 Arduino core 3.0.0 version onwards the following prototype (previously deprecated) has been removed:

HTTPUpdateResult ESPhttpUpdate::update(const char* host, int& port, const char* uri, const char * currentVersion);

This methotd is used in CoogleIOT::checkForFirmwareUpdate() at CoogleIOT.cpp line 987 (library version 1.3.1).

Od call:

firmwareUpdateStatus = ESPhttpUpdate.update(URL.m_Host.c_str(), port, URL.m_Path.c_str(), COOGLEIOT_VERSION);

The current prototype is

HTTPUpdateResult ESP8266HTTPUpdate::update(WiFiClient & client, const String & host, uint16_t port, const String & uri, const String & currentVersion) 

The call sholud be replaced with something like (it worked for me):

const String ver_str = COOGLEIOT_VERSION;
const String uri_str = URL.m_Path.c_str();
const String host_str = URL.m_Host.c_str();
firmwareUpdateStatus = ESPhttpUpdate.update(espClient, host_str, port, uri_str, ver_str);  

**2) Missing return value in CoogleIOT::verifyFlashConfiguration();**

The memeber function bool CoogleIOT::verifyFlashConfiguration() lacks a 'return ` statement. Quite puzzingly (for me) the compiler does not complain, but the code crashes on return of this function. The ESP exception decoder does not help too much, by the way, as it locates the fault elsewhere.

Just adding

return true;

at the end of the function (line 367) solves the problem and the initialization proceeds normally.

mikeofqyn added a commit to mikeofqyn/CoogleIOT that referenced this issue Oct 31, 2021
…ouse#19

Issue ThisSmartHouse#21  (issues with newer esp8266 Arduino cores 3.0.x)

Changed the ESP8266 core CoogleIOT::checkForFirmwareUpdate() to replace the call to the deprecated and removed (since version 3.0) ESPhttpUpdate::update() with the currently supported function ESP8266HTTPUpdate::update().

The meber function bool CoogleIOT::verifyFlashConfiguration() lacks a 'return <value> statement causing the code to crash on return.  Added the The ESP exception decoder does not help too much, by the way, as it locates the fault elsewhere.

Issue ThisSmartHouse#7 (configuration when wifi config is invalid)

The problem lies in CoogleIOT::loop() trying to reconnect and resetting over and over again rendering the library unable to process configuration portal requests.

A new member function has been added, CoogleIOT::loopWebServer() to be used in a loop when connection cannot be established. Its use is demonstrated in the DHTSensor.ino sketch in the examples folder.

Issue ThisSmartHouse#19  (Custom items)

Two application specific fields, up to 25 character long have been added to the configuration portal interfacew (MQTT tab).  They can set and retrived via new API calls. Their names (used as labels in the configuration portal) can also be set. Usage is shown in the DHTSensor.ino example.

--- Other ---

* Changed version number to 1.3.2.
* Added an example sowing the new features
* Merged pull request ThisSmartHouse#20 (depends=PubSubClient in library.properties).
* Update README.md and keywords.txt with the changes.

Changes:
 -	modified:   .gitignore
 	modified:   README.md
 	new file:   examples/DHT11Sensor/DHT11Sensor.ino
 	new file:   examples/DHT11Sensor/README.md
 	modified:   keywords.txt
 	modified:   library.properties
 	modified:   screenshots/mqtt-screen.png
 	modified:   screenshots/status-screen.png
 	modified:   screenshots/wifi-screen.png
 	modified:   src/ArduinoJson.h
 	modified:   src/CoogleIOT.cpp
 	modified:   src/CoogleIOT.h
 	modified:   src/CoogleIOTConfig.h
 	modified:   src/CoogleIOTWebserver.cpp
 	modified:   src/EEPROM_map.h
 	modified:   src/webpages/home.h
 	modified:   src/webpages/home.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant