@hek This is my first try with MySensors, so just thinking of loud:
One way: Globally redesign internal initialization sequence and add extra EEPROM arguments. Also provide function to write new SSID/password to EEPROM and reboot. Read SSID/IP/password/etc from config in TransportXXX
Another way: Be more Arduin-ish. All standard Arduino classes have function begin
or/and class initializer. So I want to call for example mySensors.begin()
for basic init, and some kind of mySensorsTransportXXXBegin(ssid, password, ip, topic, etc)
for specific transport init. As an option should be flag like "already connected" or "do not reconnect" for WiFi
As for me, the second way is preferred. If I decide to make my next sensor on MySensors instead of "pure" C/Arduino, I'll refactor at least MyMainESP8266.c:loop_wrapper
by removing setup call and adding separate public _begin() alternative