Solving pyserial-asyncio blocking the event loop
· One min read
Summary of changes
Starting in 2026.7, installation of pyserial-asyncio will be blocked in Home Assistant.
Library maintainers and custom integrations are advised to migrate to pyserial-asyncio-fast.
Background
pyserial-asyncio blocks the event loop because it does a blocking sleep. The library is also not maintained so efforts to improve the situation haven't been released.
pyserial-asyncio-fast was created as a drop-in replacement (see the repository), and all core integrations have now been migrated.
Migration
pyserial-asyncio-fast was designed as a drop-in replacement of pyserial-asyncio, and the necessary changes are trivial.
Requirements
# Old
install_requires=[
"pyserial-asyncio"
]
# New
install_requires=[
"pyserial-asyncio-fast"
]
Usage
# Old
import serial_asyncio
async def connect():
conn = await serial_asyncio.open_serial_connection(**self.serial_settings)
# New
import serial_asyncio_fast
async def connect():
conn = await serial_asyncio_fast.open_serial_connection(**self.serial_settings)
More examples are available in the tracking pull request.