On Mon, 13 May 2024 at 22:19, Perini Matteo <[email protected]> wrote:
> vorrei leggere lo stato di un dispositivo ewelink (sonoff) tramite script ma
> ricevo un comportamento che non capisco.
> Se faccio uno script isolato
[…]
> ottengo esattamente quello che voglio ovvero il print mi dice se il
> dispositivo è on, off o offline.
In questo script dove richiami `ask_status()`?
> Come posso fare per forzare l'esecuzione di ask_status ogni volta che
> richiamo la funzione check?
In genere con le parentesi dopo il nome funzione
async def check(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(
chat_id=update.effective_chat.id, text=ask_status(the_client)
)
Nota che dovresti restituire la stringa in `ask_status` piuttosto che
stamparla su stdout
@ewelink.login("Password", "[email protected]")
async def ask_status(client: Client) -> str:
device = client.get_device("100000000")
try:
return str(device.state.value)
except DeviceOffline:
return "Device is offline!"
--
Andrea D'Amore
_______________________________________________
Python mailing list
[email protected]
https://lists.python.it/mailman/listinfo/python