Register and unregister a listener
import asyncio
from pyoverkiz .auth .credentials import UsernamePasswordCredentials
from pyoverkiz .client import OverkizClient
from pyoverkiz .enums import Server
async def main () -> None :
async with OverkizClient (
server = Server .SOMFY_EUROPE ,
credentials = UsernamePasswordCredentials ("you@example.com" , "password" ),
) as client :
await client .login ()
await client .register_event_listener ()
await client .unregister_event_listener ()
asyncio .run (main ())
Fetch events with backoff
import asyncio
from pyoverkiz .auth .credentials import UsernamePasswordCredentials
from pyoverkiz .client import OverkizClient
from pyoverkiz .enums import Server
from pyoverkiz .exceptions import (
InvalidEventListenerIdError ,
NoRegisteredEventListenerError ,
)
async def main () -> None :
async with OverkizClient (
server = Server .SOMFY_EUROPE ,
credentials = UsernamePasswordCredentials ("you@example.com" , "password" ),
) as client :
await client .login ()
await client .register_event_listener ()
while True :
try :
events = await client .fetch_events ()
except (InvalidEventListenerIdError , NoRegisteredEventListenerError ):
await asyncio .sleep (1 )
await client .register_event_listener ()
continue
for event in events :
print (event )
await asyncio .sleep (2 )
asyncio .run (main ())
Re-register the listener when you see InvalidEventListenerIdError.
Poll occasionally if your network has unstable connectivity.
Keep the fetch loop alive to avoid listener timeout.