OpenWeather "Météo"

bonsoir
J’ai découvert Gladys dernièrement qui me semble fort interessant. J’ai essayé d’nstaller la météo sans succès.
La création dans le dashboard de la météo dans openweather
je n’ai pas la création de la box
y a t’il une erreur dans le code api que j’ai reçu, malgré le temps d’attente préconisé.

api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=

Bonjour et bienvenue dans la communauté Gladys. J’ai édité ton post pour masquer la clé (qui est privée).

Est-ce que tu as testé le service OpenWeather quand tu l’as configuré ?

Quand tu as ajoutes la box dans un écran, n’oublie pas de sauvegarder (en bas à droite)

Bonjour,
Merci de ta réponse.
j’utilise la version de Gladys V4.9.2 le service à était implémenter automatiquement.
est ce qu’i existe une commande pour tester?
Malgré l’enregistrement dans la dashboard j’ai toujours l’erreur.
Cordialement.

Est-ce que tu peux nous donner plus d’informations sur l’erreur ? :slight_smile:

Bonjour,

Je n’ai pas résolu le problème malgré plusieurs essais.

Je me suis mal exprimé l’erreur en fait c’est le message.

« La requête à l’API OpenWeather a échouée. Votre instance Gladys est-elle connectée à Internet? Veuillez vous rendre dans le panneau de configuration de OpenWeather pour résoudre ce problème. Cliquez ici pour accéder au panneau de configuration de OpenWeather.

J’ai bien reçu la clé « api » voir mg. Dans le mail précèdent.

Cordialement.

Est-ce que tu as accès aux logs de Gladys pour potentiellement voir le retour de l’API OpenWeather?

Sur ta machine tu peux faire:

docker logs gladys

Bonsoir,
Voici les logs, je suis pas sur que c’est les bon…

Merci de votre retour.

root@gladys:/var/log# tail -n /var/log/messages
tail: invalid number of lines: ‘/var/log/messages’
root@gladys:/var/log# tail -n 20 /var/log/messages
Sep 11 17:43:57 gladys kernel: [ 31.710703] cam1-reg: disabling
Sep 11 17:44:53 gladys kernel: [ 40.284913] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
Sep 11 17:44:53 gladys kernel: [ 40.299417] Bridge firewalling registered
Sep 11 17:44:57 gladys kernel: [ 44.450866] docker0: port 1(vethc796f6f) entered blocking state
Sep 11 17:44:57 gladys kernel: [ 44.450878] docker0: port 1(vethc796f6f) entered disabled state
Sep 11 17:44:57 gladys kernel: [ 44.451172] device vethc796f6f entered promiscuous mode
Sep 11 17:44:57 gladys kernel: [ 44.506888] IPv6: ADDRCONF(NETDEV_CHANGE): veth24605c0: link bec omes ready
Sep 11 17:44:57 gladys kernel: [ 44.506998] IPv6: ADDRCONF(NETDEV_CHANGE): vethc796f6f: link bec omes ready
Sep 11 17:44:57 gladys kernel: [ 44.507039] docker0: port 1(vethc796f6f) entered blocking state
Sep 11 17:44:57 gladys kernel: [ 44.507044] docker0: port 1(vethc796f6f) entered forwarding stat e
Sep 11 17:44:57 gladys kernel: [ 44.507108] IPv6: ADDRCONF(NETDEV_CHANGE): docker0: link becomes ready
Sep 11 17:45:01 gladys kernel: [ 48.192284] docker0: port 1(vethc796f6f) entered disabled state
Sep 11 17:45:01 gladys kernel: [ 48.193171] eth0: renamed from veth24605c0
Sep 11 17:45:01 gladys kernel: [ 48.223812] docker0: port 1(vethc796f6f) entered blocking state
Sep 11 17:45:01 gladys kernel: [ 48.223824] docker0: port 1(vethc796f6f) entered forwarding stat e
Sep 11 17:45:05 gladys gladys-init: Gladys Setup Progress image exist, Cool…
Sep 11 17:45:05 gladys gladys-init: Watchtower container exist, Cool…
Sep 11 17:45:05 gladys gladys-init: Gladys container exist, Cool…
Sep 11 17:56:32 gladys kernel: [ 739.367933] bcmgenet fd580000.ethernet eth0: Link is Up - 1Gbps/ Full - flow control rx/tx
Sep 11 17:56:32 gladys kernel: [ 739.367976] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes re ady
root@gladys:/var/log#

Cordialement

Salut ! Ce n’est pas les bonnes, tu as bien fais la commande que je t’ai donné ?

Bonjour,

Je découvre également Gladys, c’est très cool à utiliser félicitation.
J’ai le même soucis, la météo ne fonctionne pas.

Ci-dessous le log d’erreur

_header: 'GET /data/2.5/onecall?lat=47.58798008319857&lon=1.332848840870007&2004cb7f4ef216a56e086522c0ba HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'User-Agent: axios/0.21.1\r\n' +
      'Host: api.openweathermap.org\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: noopPendingOutput],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      protocol: 'http:',
      options: [Object],
      requests: {},
      sockets: [Object],
      freeSockets: {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    path: '/data/2.5/onecall?lat=47.58798008319857&lon=1.332848840870007&lang=frf4ef216a56e086522c0ba',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      socket: [Socket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      headers: [Object],
      rawHeaders: [Array],
      trailers: {},
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [Socket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'http://api.openweathermap.org/data/2.5/onecall?lat=47.587980r&units=metric&cnt=1&appid=ma-clé-api',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(RequestTimeout)]: undefined
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'api.openweathermap.org',
    protocol: 'http:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'http://api.openweathermap.org/data/2.5/onecall?lat=47.587980r&units=metric&cnt=1&appid=ma-clé-api',
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'user-agent': [Array],
      host: [Array]
    }
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: {
      server: 'openresty',
      date: 'Mon, 12 Sep 2022 09:13:58 GMT',
      'content-type': 'application/json; charset=utf-8',
      'content-length': '107',
      connection: 'close',
      'x-cache-key': '/data/2.5/onecall?cnt=1&lang=fr&lat=47.59&lon=1.33&units=m
      'access-control-allow-origin': '*',
      'access-control-allow-credentials': 'true',
      'access-control-allow-methods': 'GET, POST'
    },
    config: {
      url: 'http://api.openweathermap.org/data/2.5/onecall?lat=47.58798008319857metric&cnt=1&appid=ma-clé-api',
      method: 'get',
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      validateStatus: [Function: validateStatus],
      data: undefined
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [Socket],
      _header: 'GET /data/2.5/onecall?lat=47.58798008319857&lon=1.332848840870008f2004cb7f4ef216a56e086522c0ba HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'User-Agent: axios/0.21.1\r\n' +
        'Host: api.openweathermap.org\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/data/2.5/onecall?lat=47.58798008319857&lon=1.332848840870007&lang=b7f4ef216a56e086522c0ba',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'api.openweathermap.org',
      protocol: 'http:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    data: {
      cod: 401,
      message: 'Invalid API key. Please see http://openweathermap.org/faq#error4
    }
  },
  isAxiosError: true,
  toJSON: [Function: toJSON]
}

Cela m’indique que la clé API n’est pas bonne, mais si je test avec la commande suivante :

https://api.openweathermap.org/data/2.5/weather?q=Paris,fr&APPID=ma-clé-api

Cela fonctionne.

Avez-vous une idée du pb ?

Gladys : 4.9.2

Cordialement,

ça sent le soucis de token.

J’ai essayé avec le mien et c’est ok ( redirection https )

A part ça je vois qu’on fait le call en http, openweather fourni maintenant des routes en ssl

Il manque appid=

@pierre-gilles t’as une idée de ce qui pourrai malformer l’url ?

Je viens de tester chez moi, et ça fonctionne bien aussi…

@VonOx La clé d’API est bien dans le log, il l’a juste obfusqué en le partageant je crois non?

Vous confirmez que vous avez bien défini la clé d’API dans la page « OpenWeather » de Gladys ? Pas de soucis de copier coller ?

Bah je sais pas trop c’est bizarre

Re pierre-gilles

j’ai effectivement sauvegardé mais pas de résultat.
concernant les logs peux-tu m’aider j’ai n’ai pas suffisamment de connaissance…

Voilà ce que j’ai sauvegardé
Ma clé Api : api5/weather? q=London, uk&appid=(ma-clé_api)

Merci d’avance.

Attend, comme clé d’API tu mets bien « juste » la clé d’API, non ?

Ton écran ressemble bien à ça?

(J’ai masqué la fin de la clé)

Oui , j’ai défini la clé API dans la page OpenWeather, ( la page même que sur la réponse du dessus).
Le copier/coller et ok, j’ai vérifié en tapant à la main, j’ai essayé avec une autre clé cela me fais la même erreur.

Tu es sur quel navigateur ? Tu es sur la version « officielle » de Gladys (pas une branche spéciale buildée) ?

Quand tu sauvegarde, et que tu rafraichis la page, la clé est bien toujours là ?

Ce que Pierre-Gilles veut dire c’est que ta clé API doit avoir que des chiffres et des lettres.
pas ce format: api5/weather? q=London, uk&appid=(ma-clé_api)

J’ai essayé avec chrome et firefox.
J’ai suivi la doc donc je suppose que c’est la version officielle de gladys.
Quand je sauvegarde et rafraichis la clé est tjrs présente.

J’ai fais 2,3 tests.

SI je reprend la ligne dans gladys :

https://api.openweathermap.org/data/2.5/onecall?lat=47.58798008319857&lon=1.332848840870007&lang=                                   fr&units=metric&cnt=1&appid=ma-clé-api'

et que j’interroge l’api cela me renvoi la même erreur Invalid API Key.

par contre si j’interroge en changeant onecall par weather, j’ai des retours

https://api.openweathermap.org/data/2.5/weather?lat=47.58798008319857&lon=1.332848840870007&lang=fr&units=metric&cnt=1&appid=ma-clé-api

Faut-il une souscription particulière chez openweather ?

Ah effectivement !

Openweather ont dû changer les « droits » qu’ils donnent par défaut.

Est-ce que ton compte OpenWeather précise que tu n’as pas accès à la route onecall ?