added dict get() instead of assuming keys exist; now handles config_flow setup failures without crashing
This commit is contained in:
committed by
rospogrigio
parent
7b37f07fd0
commit
d2fa4dc2a0
@@ -139,15 +139,16 @@ async def async_setup(hass: HomeAssistant, config: dict):
|
|||||||
)
|
)
|
||||||
new_data[ATTR_UPDATED_AT] = str(int(time.time() * 1000))
|
new_data[ATTR_UPDATED_AT] = str(int(time.time() * 1000))
|
||||||
hass.config_entries.async_update_entry(entry, data=new_data)
|
hass.config_entries.async_update_entry(entry, data=new_data)
|
||||||
device = hass.data[DOMAIN][TUYA_DEVICES][device_id]
|
|
||||||
if not device.connected:
|
|
||||||
device.async_connect()
|
|
||||||
elif device_id in hass.data[DOMAIN][TUYA_DEVICES]:
|
elif device_id in hass.data[DOMAIN][TUYA_DEVICES]:
|
||||||
# _LOGGER.debug("Device %s found with IP %s", device_id, device_ip)
|
_LOGGER.debug("Device %s found with IP %s", device_id, device_ip)
|
||||||
|
|
||||||
|
device = hass.data[DOMAIN][TUYA_DEVICES].get(device_id)
|
||||||
|
if not device:
|
||||||
|
_LOGGER.warning(f"Could not find device for device_id {device_id}")
|
||||||
|
elif not device.connected:
|
||||||
|
device.async_connect()
|
||||||
|
|
||||||
device = hass.data[DOMAIN][TUYA_DEVICES][device_id]
|
|
||||||
if not device.connected:
|
|
||||||
device.async_connect()
|
|
||||||
|
|
||||||
def _shutdown(event):
|
def _shutdown(event):
|
||||||
"""Clean up resources when shutting down."""
|
"""Clean up resources when shutting down."""
|
||||||
|
@@ -124,8 +124,10 @@ def async_config_entry_by_device_id(hass, device_id):
|
|||||||
"""Look up config entry by device id."""
|
"""Look up config entry by device id."""
|
||||||
current_entries = hass.config_entries.async_entries(DOMAIN)
|
current_entries = hass.config_entries.async_entries(DOMAIN)
|
||||||
for entry in current_entries:
|
for entry in current_entries:
|
||||||
if device_id in entry.data[CONF_DEVICES]:
|
if device_id in entry.data.get(CONF_DEVICES, []):
|
||||||
return entry
|
return entry
|
||||||
|
else:
|
||||||
|
_LOGGER.warning(f"Missing device configuration for device_id {device_id}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user