From cd6c9231238ae5538e50fb44bfb87cb011fe0fdf Mon Sep 17 00:00:00 2001
From: "David F. Mulcahey" <david.mulcahey@icloud.com>
Date: Fri, 1 Mar 2019 20:15:36 -0500
Subject: [PATCH] fix exception (#21571)

---
 homeassistant/components/zha/api.py | 30 ++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/homeassistant/components/zha/api.py b/homeassistant/components/zha/api.py
index 5895e4c14f8..6d79f3b3320 100644
--- a/homeassistant/components/zha/api.py
+++ b/homeassistant/components/zha/api.py
@@ -82,19 +82,23 @@ async def websocket_get_devices(hass, connection, msg):
     """Get ZHA devices."""
     zha_gateway = hass.data[DATA_ZHA][DATA_ZHA_GATEWAY]
     ha_device_registry = await async_get_registry(hass)
-    devices = [
-        {
-            **device.device_info,
-            'user_given_name': ha_device_registry.async_get_device(
-                {(DOMAIN, str(device.ieee))}, set()).name_by_user,
-            'device_reg_id': ha_device_registry.async_get_device(
-                {(DOMAIN, str(device.ieee))}, set()).id,
-            'entities': [{
-                'entity_id': entity_ref.reference_id,
-                NAME: entity_ref.device_info[NAME]
-            } for entity_ref in zha_gateway.device_registry[device.ieee]]
-        } for device in zha_gateway.devices.values()
-    ]
+
+    devices = []
+    for device in zha_gateway.devices.values():
+        ret_device = {}
+        ret_device.update(device.device_info)
+        ret_device['entities'] = [{
+            'entity_id': entity_ref.reference_id,
+            NAME: entity_ref.device_info[NAME]
+        } for entity_ref in zha_gateway.device_registry[device.ieee]]
+
+        reg_device = ha_device_registry.async_get_device(
+            {(DOMAIN, str(device.ieee))}, set())
+        if reg_device is not None:
+            ret_device['user_given_name'] = reg_device.name_by_user
+            ret_device['device_reg_id'] = reg_device.id
+
+        devices.append(ret_device)
 
     connection.send_result(msg[ID], devices)
 
-- 
GitLab