If you are using LAN calls from the device to Hubitat, the IP and MAC address of the device making the call to the hub is passed to the parse() function. If you can have your device make a periodic "check-in" call to the hub, that will keep the addresses up to date and ensure that it's always reachable.