Are you sure that your ESP32-Sprinkler GitHub contain lattes code? it may opinion not as for example: definition of SDA_PIN and SDL_PIN are in ESP8266 naming (eg D6, D4) for ESP32 we need to have GPIO number. But this is easy to fix. I find additional part which prevent code to work. In function void GetWeather() is table declaration char weather_Url; where DEFAULT_WEATHER_URL is copied form EPPROM. But DEFAULT_WEATHER_URL is 25 chars long and event 40 chars declared in Define.h!
I’ve uploaded all my changes (most of them are DEBUG_PRINTs allowing me understand code) to my GitHub branch (pins.h is there too, my HW config is ESP32 + 2xPCF8574 + SSD1306OLED + RTC + I2C (SDA 26, SDL 25)) https://github.com/JaCharer/Esp32-Sprinkler/tree/Working-conde-v1 – can you please take a look on it
Now code, let say try to work, behave very unstable and unpredictable. Hangs very often in random times. I will upload some logs later and this may help find where problem is. For me all this b0 6 something are totally unknown 🙁
I do not this this is problem of dev environment (Visual studio versus Arduino IDE), so eider we do have different libraries? can you please share yours, or published code is not final one as maintained.
BDW and this is very strange as strcpy_P and strcat_P sims to crash code, change to strcpy or strcat fix problem. Additional fight i had whit I2C. Wire.begin() without SDA and SDL in i2crtc.cpp, PCF8574Mio.cpp and even Adafruit_SSD1306.cpp do not allows proper I2C initialization. Explicit I2C pin declaration in Wire.begin(SDA_PIN,SDL_PIN) make my LCD working.