Now ESP32 SDK code has support for IPv6, some uninitialized IPs were shown as `::`
This was confusing to say the least and may have broken some other tools that may read IP info from JSON for example.
* [PIO build] Update build scripts for scons 4.5.x
* [Build] Fix build error due to strange cast of double type in rules
* [Build] Work-around for new ESP8266 macro of round()
Whoever thought it would be a good idea to make round() an explicit cast to `long`....
* [Build ESP8266] Replace calls to round()
* [Build] Use HWrandom to overcome build issues
* [Build] Fix missing include
* [Build] Remove extern "C" to allow for (C++) function overloading
* [Build] include ESPEasy_common.h instead of Arduino.h where possible
* [Cleanup] Moving not commonly needed code out of ESPEasy_common.h
* [Build] Remove "Helpers" folder from concat script
* [Build] Include ESPEasy_common.h instead of ESPEasy_config.h
* [Build] Add Helpers folder to concat .cpp for ESP8266
* [Build] Add ESPEasyCore to concat cpp & split global RulesCalculate obj
* [Build test] Disable lots of plugins + not concat Helpers/*.cpp
* [Build test] Disable P037 to test build failures
* [Build test] Undef round right after include <Arduino.h>
* [Build] Revert disabling plugins + concat Helpers/*.cpp
* [Build] Include cmath after Arduino.h to redefine round()
* [Build] Fix ESP32 build error
* [Build] Add ESP32_CLASSIC define for ESP32 IR build
This also fixes a timeout issue on ESP32 as the WiFiClient timeout is set in seconds (!!!!!)
See: https://github.com/espressif/arduino-esp32/pull/6676
Extremely frustrating design choice as it has taken extreme amounts of time to debug those issues!