Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач.
Она работает в нескольких режимах.
1. Самый простой - ждем завершения всех задач
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(10)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.ALL_COMPLETED
)
for task in done:
try:
print(task.result())
except Exception as e:
print(e)
Очень похоже на gather, но работает не так.
▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done
▫️не гарантирует порядок результатов так как оба объекта это set
▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат.
2. Ждем завершения первой задачи, даже если там ошибка.
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(3)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_COMPLETED
)
# в done может быть несколько задач!
for task in done:
try:
print(task.result())
except Exception as e:
print(f"Fail: {e}")
# Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать
for task in pending:
task.cancel()
В сете done будут таски которые успели завершится, причем как успешно так и нет.
3. До первой ошибки.
Тоже самое, но с аргументом FIRST_EXCEPTION
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_EXCEPTION
)
Функция завершается как только первая задача упадет с ошибкой.
Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные.
↗️ Полный листинг примеров здесь
#async
🔖 Zigbee Guide: How-to add/setup local custom ZHA Device Handlers (also known as ”quirks”) in the ZHA integration - Community Guides - Home Assistant Community #pinboard#homeassistant#zigbee
接下来的工作,要开始写 HA 插件了~~
https://community.home-assistant.io/t/zigbee-guide-how-to-add-setup-local-custom-zha-device-handlers-also-known-as-quirks-in-the-zha-integration/683473
🔖 ZHA vs Zigbee2Mqtt - which is the most stable? - Configuration / Zigbee - Home Assistant Community #pinboard#zigbee#homeassistant
https://community.home-assistant.io/t/zha-vs-zigbee2mqtt-which-is-the-most-stable/517106
🌐Когда Zigbee захватит мир IoT и что вы знаете о Suzi?
Если вы интересуетесь миром IoT и Smart Home, то вам стоит посмотреть выпуск, в котором Евгения Пешкова, президент DSR Corporation, и Эндрю О’Хара из AppleInsider обсудили выход Zigbee 4.0 от Connectivity Standards Alliance.
🔒Спойлер: CSA выпустил Suzi, новый субгигагерцевый протокол. Это версия Zigbee, которая работает на частотах 800 МГц и 900 МГц и поэтому «добивает» дальше. Умные устройства смогут работать надёжно даже в больших домах и на улице.
Переходите по ссылке, если хотите больше технических подробностей. Видео на английском, таймкоды в описании.
ℹ️ Zigbee — это энергоэффективный беспроводной протокол для умного дома, позволяющий устройствам (датчикам, лампочкам и т. д.) связываться друг с другом в рамках единой mesh-сети.
📝DSR является членом альянса разработчиков Zigbee с 2012 года.
#Zigbee#IoT#Embedded#DSR
🏆DSR Corporation получила 4 престижные награды от CSA
Компания с 2012 года активно участвует в работе Альянса стандартов подключения (The Connectivity Standards Alliance), внося особенно значительный вклад в развитие беспроводного протокола Zigbee. Представители DSR активно участвовали в работе Альянса - выступали модераторами и проводили дискуссии.
👉Подробнее рассказываем здесь!
🎉За выдающийся вклад в деятельность рабочих групп CSA были отмечены:
✅Евгения Пешкова, President
✅Артём Вакулин, Senior Software Embedded Engineer
✅Евгений Эксаревский, Principal Software Architect
✅Владимир Степанченко, Wireless Products Manager
Мы гордимся своим участием в разработке технологий для умных домов и IoT-устройств, таких как стек Zigbee и фреймворк zHome. Присоединяйтесь к нам, чтобы стать частью команды профессионалов! 👀
#DSRCorporation#CSA#Zigbee#IoT#DSR_team
Участников ZBOSS Open Initiative становится все больше!
🔝Сообщество вокруг нашего продукта ZBOSS растет. Это высокопроизводительный и платформо-независимый программный стек Zigbee.
➡️Мы рады сообщить, что в сообществе ZOI теперь 12 компаний. В их числе производители полупроводников, умных устройств и провайдеры IoT- сервисов.
📌Цель ZOI — продолжить разработку единой программной платформы для умных устройств. Она позволит участникам сообщества сфокусироваться на функционале своих продуктов, не тратя ресурсы на поддержку стека и разработку для него новых функций.
#DSR#DoingSoftwareRight#ZOI#Zigbee#iot
📣 DSR Corporation рада объявить, что наша стек ZBOSS теперь полностью поддерживает последнюю версию протокола Zigbee - Zigbee PRO 2023.
🛠 В новой версии от CSA улучшены безопасность и UХ.
Альянс стандартов подключения (The Connectivity Standards Alliance, ранее Альянс Zigbee) — это сообщество компаний, работающих над развитием, техническими спецификациями и продвижением стандартов беспроводной связи для умных домов и IoT-устройств. DSR является членом альянса с 2012 года и с тех пор активно вносит свой вклад в работу организации, особенно в разработку протокола Zigbee.
#DSRCorporation#DoingSoftwareRight#ZBOSS#Zigbee#CSA#IoT#умныедома#интернетвещей