Météo du jour par Télégram avec Openweather

Bonjour,

Voici une scène qui permet de recevoir la météo tous les matins grâce à un message Télégram.

Premièrement, il vous faut une clé d’API OpenWeather 3 (attention, les anciennes clés fonctionnant pour la version 2 ne sont pas valables pour ce tutoriel).
Si vous n’en avez pas, rendez-vous ici : Members

:warning: Le plan autorise 1000 appels par jour (largement suffisant). Au-delà, vous serez facturé 0.14€ pour 100 appels supplémentaires.

Maintenant, vous pouvez créer une scène avec :

  • le déclencheur de votre choix. J’ai choisi Déclencheur Programmé (tous les jours à 7h30)

  • une action Faire une requête HTTP
    L’URL sera

https://api.openweathermap.org/data/3.0/onecall?lat=<latitude>&lon=<longitude>&exclude=minutely,hourly,current,alert&lang=fr&units=metric&appid=<api_key>

Pour Paris par exemple, cela donne

https://api.openweathermap.org/data/3.0/onecall?lat=48.8588897&lon=2.320041&exclude=minutely,hourly,current,alert&lang=fr&units=metric&appid=XXXXXXXXX

Vous pouvez trouver les coordonnées GPS d’une adresse facilement avec ce site : https://www.coordonnees-gps.fr/
N’oubliez pas de tester l’appel avec le bouton Essayer

:information_source: Informations

  • le paramètre exclude permet d’obtenir en réponse uniquement la météo des jours
  • le paramètre metrics permet d’obtenir la réponse avec des degrés Celcius
  • le paramètre lang permet d’obtenir la réponse avec des descriptions en français


  • enfin, une action Envoyer un message. Libre à vous de personnaliser le message comme bon vous semble en utilisant les variables de la réponse HTTP précédente. Pour moi, cela donne :
Bonjour Cyril, aujourd'hui, le temps est {{ 1. 1. data.daily.[0].weather.[0].description }} et il fera entre {{ 1. 1. data.daily.[0].temp.min }} °C et {{ 1. 1. data.daily.[0].temp.max }} °C

10 « J'aime »

Salut @cicoub13, est-ce que tu as eu besoin de rentrer ta CB pour avoir accès à l’API Onecall ?

Oui :money_mouth_face:

Ok, si tu utilise le call API Weather tu as pas besoin de mettre ta CB, c’est ce qu’on fait dans Gladys :slight_smile:

Effectivement, vous pouvez utiliser la version 2.5 de l’API qui est gratuite (sans CB) et offre la même fonctionnalité.

http://api.openweathermap.org/data/2.5/weather?lat=43.267093&lon=-0.421642&lang=fr&units=metric&cnt=1&appid=XXX

Je mets à jour le tutoriel avec les deux options ou seulement celle-là ? Mais il n’y avait pas une histoire comme quoi on pouvait plus avoir de clé pour cette version ?

Non justement, c’est l’API OneCall qui n’est plus dispo, le reste c’est bon. J’ai créé un token pas plus tard que la semaine dernière :slight_smile:

Bonjour @cicoub13

De mon coté ça ne fonctionne pas avec la clé API Weather . Je ne vois pas d’autres retour sur le sujet si d’autres utilisateurs ont réussi ou non.

Voici le message d’erreur :

{
  "cod": 401,
  "message": "Invalid API key. Please see https://openweathermap.org/faq#error401 for more info."
}

Résolu mais code à modifier dans ton message :

https://api.openweathermap.org/data/2.5/weather?lat=43.267093&lon=-0.421642&lang=fr&units=metric&cnt=1&appid=XXX

:wink:

1 « J'aime »

Par contre il me sort des températures surprenantes :

Bonjour Jérôme, Aujourd’hui le temps est partiellement nuageux, il fera entre 281.92°C et 283.01 et la qualité de l’air est de 38

J’ai ça moi, ça semble OK. Tu es sûr que tu as les unités en metrics ?

{"coord":{"lon":-0.4216,"lat":43.2671},"weather":[{"id":800,"main":"Clear","description":"ciel dégagé","icon":"01n"}],"base":"stations","main":{"temp":9.88,"feels_like":9,"temp_min":9.32,"temp_max":10.18,"pressure":1007,"humidity":92},"visibility":10000,"wind":{"speed":2.06,"deg":140},"clouds":{"all":0},"dt":1698700059,"sys":{"type":1,"id":6466,"country":"FR","sunrise":1698647606,"sunset":1698685027},"timezone":3600,"id":2980166,"name":"Saint-Faust","cod":200}

Oui
La ville est bonne
Il n’y a que les degrés qui ne sont pas cohérents. Je verrai demain lors du message automatique si j’ai la même chose.

Résolu j’avais mis un « s » à metric dans ma ligne.

oups :sweat_smile:

Merci pour l’astuce, très pratique, juste dommage que sur une enceinte les températures soient en anglais uniquement

1 « J'aime »

Tu parles du TTS via Sonos ?

Oui c’est ça. J’ai bien la description en français avec l’option « &lang=fr » mais les chiffres eux sont lus en anglais et c’est genre « la température sera entre one two dot one nine et one two dot three four »
image

Aha, je pense que c’est l’API de TTS qui fait ça. Il faudrait tester si c’est pareil avec toutes leur voix

C’est du TTS à base d’IA donc ça hallucine peut être un peu :smile:

Pour info l’API que j’utilise c’est :

J’avais eu quelques retours sur la voix donc j’avais proposé changer mais pas eu de retour depuis ^^

Pas daccord avec toi tu as eubdes retours :

Apres si tu ne les prend pas en compte cest autre chose …:thinking::roll_eyes:

@spenceur On s’est mal compris, comme ton dernier message disait " Je confirmerai avec madame ^^" j’attendais la confirmation de madame avant de changer :stuck_out_tongue: (Vu que ton premier message avait l’air de dire que c’était plutôt madame qui se plaignait de la voix!)

Si c’est bon pour Grace, je regarde demain pour changer !

Edit: Après j’espère que Grace fonctionne mieux au niveau des chiffres

Est-ce qu’il n’y a pas un paramètre de langue à transmettre qui permet de changer ça ? (il est peut-être déjà envoyé et ça ne marche pas)

Dans mon cas le paramètre de langue est envoyé et fonctionne pour la description. J’aurai « bruine légère », en français donc, mais les chiffres en anglais et prononcés chiffre par chiffre :man_shrugging:
J’ai cherché un peu mais pas plus que ça non plus.