This lib does I/O when a property is set.
# This makes network calls
device.operationMode = "heat"
This makes it difficult to use in asyncio, because now all code will need to be wrapped in synchronous functions. It also makes it risky that if a developer does not pay attention, they end up doing I/O inside the event loop.
Using functions is preferred
device.set_operation_mode("heat")