When ipv6 is configured on the network, Chromecast devices will randomly
return ipv4 and/or multiple ipv6 addresses during mdns discovery.
This would trigger a thingUpdated call which will call dispose/initialize,
causing the thing to go offline/online.
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
import static org.openhab.binding.chromecast.internal.ChromecastBindingConstants.*;
+import java.net.Inet4Address;
import java.util.Dictionary;
import java.util.Map;
import java.util.Set;
if (isAutoDiscoveryEnabled) {
ThingUID uid = getThingUID(service);
if (uid != null) {
- String host = service.getHostAddresses()[0];
+ Inet4Address[] addresses = service.getInet4Addresses();
+ if (addresses.length == 0) {
+ return null;
+ }
+ String host = addresses[0].getHostAddress();
int port = service.getPort();
logger.debug("Chromecast Found: {} {}", host, port);
String id = service.getPropertyString(PROPERTY_DEVICE_ID);