I've got the family's Android Pixel phones reporting via the Hubitat app, Alexa presence, and Owntracks, and I wanted to see if I could throw the "iPhone" WiFi Presence Sensor into the mix to generate Combined Presence.
The main issue I ran into during setup was assigning a static IP to each phone in our router. It's not an impossibility, but we use a block of static IP addresses on our LAN for other reasons and a mobile device that comes and goes wouldn't play so well being assigned that way.
My first thought was to use the phone's unique and static ipv6 address instead of a static ipv4 address, passing it as a string in square brackets - but that just resulted in an error from asynchttpGet in the logs:
debug Steve's Pixel WiFi: httpGetCallback({"headers":null,"warningMessages":[],"status":408,"errorMessage":"Connect to [fe80::6435:9b15:9ad8:4b0d]:80 [/fe80:0:0:0:6435:9b15:9ad8:4b0d] failed: Invalid argument (connect failed)","errorData":null}, data)
Should an ipv6 address enclosed in square brackets qualify as a valid URI for asynchhttpGet and similar Http calls? I only drilled down as far as the java.net.URI class, whose methods seem to accomodate ipv6 addresses in this format. I have tried entering the address with and without square brackets, and with and without compressed sections of 0000 blocks.
So where is the fail occurring when trying to register ipv6 addresses for our mobile phones in "iPhone" WiFi Presence Sensor ?