I'm building a home IoT device and I want to be able to ship this device to anyone having previously set a static IP and all they would have to do is connect to the internet and be good to go. I'll be running a server locally to monitor each robot so I thought I would set a static IP on each RPi and once delivered to the customer they'll simply have to get their RPi on their network and do some port forwarding. Then they would download the app and issue commands to the robot (I'm using their login information to know which RPi to control). The issue is that if the IP does change I would lose comms to that remote device. In other words is there a way to have my local server connect to all the remote devices?
I have very limited experience with networking, I'm hacking my way through and I may be looking at this the wrong way. Any help is greatly appreciated!