@bgunnarb I like @eiten 's solution for you.
Personally, I am not a fan of using cloud/public brokers. Thus I am curious about your system and there is something about it from which I can learn. I would like to understand why you cannot deploy your own mosquitto broker.
I see your set up as 3 sensor groups defined by the channel used
#define MY_RF24_CHANNEL ChannelOfSensorGroup
Each sensor group has some number of sensors and one MQTT GW on ESP8266. On the MQTT side, do you distinguish between gateways by using a different host name?
Something like:
#define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway-nOf3-out"
#define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway-nOf3-in"
#define MY_MQTT_CLIENT_ID "mysensors-nOf3"
#define MY_HOSTNAME "ESP8266_MQTT_GW_nOf3"
//#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68
#define MY_CONTROLLER_URL_ADDRESS "test.mosquitto.org"
#define MY_PORT 1883
I must assume your controller (aka Home Assistant) discriminates between through which gateway the data is to flow by way of the different topic names.
If my "something like" is correct, then changing brokers is changing the IPaddress/URL in your gateways and in your controller (though if the controller is Home Assistant, it may be a bother because the device-id's may change which will make a mess of all the work you've done in HA. This is why I like @eiten 's solution.)
I hope it's all working for you again.
OSD
IT WORKS
I got a first working version, using an ATmega1284P running on MightyCore 2.2.2 (as soon as I began developement, they switched from Optiboot to Urboot in version 3.0.0, whicht does not include the copy_flash_pages function anymore, but I'm working on a work around there).
Only thing I could not solve is to do a CRC check of the image after download...
You can try it out here: https://github.com/eiten/MySensors/tree/FOTAInternalFlashTest
It's not beautiful yet with much Serial.prints in it, but maybe it helps you if you find errors.
Just for completeness: the right way to do this is to add the json under ~/.platformio/boards and the other files as described in https://community.platformio.org/t/how-use-a-same-chip-but-with-different-environment/18082/4