Use a single job to ping all devices in the Broadlink integration (#51466)

This commit is contained in:
Felipe Martins Diel 2021-06-04 18:03:13 -03:00 committed by GitHub
parent 7bf45f7bf7
commit 89d90bfb1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -44,11 +44,15 @@ class BroadlinkHeartbeat:
"""Send packets to feed watchdog timers."""
hass = self._hass
config_entries = hass.config_entries.async_entries(DOMAIN)
hosts = {entry.data[CONF_HOST] for entry in config_entries}
await hass.async_add_executor_job(self.heartbeat, hosts)
for entry in config_entries:
host = entry.data[CONF_HOST]
@staticmethod
def heartbeat(hosts):
"""Send packets to feed watchdog timers."""
for host in hosts:
try:
await hass.async_add_executor_job(blk.ping, host)
blk.ping(host)
except OSError as err:
_LOGGER.debug("Failed to send heartbeat to %s: %s", host, err)
else: