diff --git a/homeassistant/components/onvif/config_flow.py b/homeassistant/components/onvif/config_flow.py index 29784b25429..fada2d497a7 100644 --- a/homeassistant/components/onvif/config_flow.py +++ b/homeassistant/components/onvif/config_flow.py @@ -205,10 +205,20 @@ class OnvifFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): # Get the MAC address to use as the unique ID for the config flow if not self.device_id: - network_interfaces = await device_mgmt.GetNetworkInterfaces() - for interface in network_interfaces: - if interface.Enabled: - self.device_id = interface.Info.HwAddress + try: + network_interfaces = await device_mgmt.GetNetworkInterfaces() + for interface in network_interfaces: + if interface.Enabled: + self.device_id = interface.Info.HwAddress + except Fault as fault: + if "not implemented" not in fault.message: + raise fault + + LOGGER.debug( + "Couldn't get network interfaces from ONVIF deivice '%s'. Error: %s", + self.onvif_config[CONF_NAME], + fault, + ) # If no network interfaces are exposed, fallback to serial number if not self.device_id: diff --git a/homeassistant/components/onvif/device.py b/homeassistant/components/onvif/device.py index bbce71f5d28..eec270d5b94 100644 --- a/homeassistant/components/onvif/device.py +++ b/homeassistant/components/onvif/device.py @@ -217,10 +217,20 @@ class ONVIFDevice: # Grab the last MAC address for backwards compatibility mac = None - network_interfaces = await device_mgmt.GetNetworkInterfaces() - for interface in network_interfaces: - if interface.Enabled: - mac = interface.Info.HwAddress + try: + network_interfaces = await device_mgmt.GetNetworkInterfaces() + for interface in network_interfaces: + if interface.Enabled: + mac = interface.Info.HwAddress + except Fault as fault: + if "not implemented" not in fault.message: + raise fault + + LOGGER.debug( + "Couldn't get network interfaces from ONVIF deivice '%s'. Error: %s", + self.name, + fault, + ) return DeviceInfo( device_info.Manufacturer,