El temps, de Meteoblue a Telegram

De vegades no cal una aplicació nova. Només cal que la informació arribi al lloc correcte.

La idea d’aquest projecte era molt simple: en comptes d’obrir una web o una app per mirar quin temps farà, fer que la previsió vingués a buscar-me directament a Telegram.

Imatge del resultat final al chat de Telegram

Weather Telegram Bot és un petit script fet amb Python que consulta l’API de Meteoblue per unes coordenades concretes, recull la previsió del dia i es queda només amb les dades que m’interessen: de les 8 del matí fins a les 10 de la nit.

De cada hora mostra la temperatura de sensació, la probabilitat de pluja i la velocitat del vent. Després ho posa una mica bonic, hi afegeix una icona segons el risc de precipitació i ho envia tot en un únic missatge.

No intenta predir el temps —per sort—. Només fa de pont entre dues APIs i converteix un JSON bastant poc amable en una cosa que es pot llegir d’un cop d’ull.

Les coordenades, la clau de Meteoblue, el token del bot i l’identificador del xat viuen en un fitxer .env, lluny del codi i del repositori. Cada cop que s’executa, el script consulta, filtra, formata i envia.

Un sol fitxer de Python, unes quantes peticions HTTP i la previsió del dia apareixent al xat. Petit, pràctic i fet sobretot per no haver de pensar-hi gaire més.

Veure el codi a GitHub ↗

Esquema:

Inici Script

Llegeix el fitxer .env

Consulta Meteoblue

Filtra les hores de 08 h a 22 h

Prepara el missatge

L’envia mitjançant Telegram

La previsió arriba al xat

I el bot de Telegram, d’on surt?

Abans que Python pugui enviar res, cal crear el bot. Això es fa des del mateix Telegram, parlant amb BotFather: li envies /newbot, tries un nom i un usuari, i et retorna un token. Aquest token és la clau que permet que l’script actuï en nom del bot.

Després cal saber a quin xat ha d’escriure. Obres una conversa amb el bot, li envies /start i consultes getUpdates amb el token anterior. Dins la resposta hi ha el chat_id. Amb aquestes dues peces guardades al .env, el script ja pot cridar sendMessage i deixar la previsió al xat correcte.

Tot el procés està explicat pas a pas en aquest article de Man Hay Hong.