Intégration domotique WeatherLink, gratuite et open source

Connecteur non officiel : vos stations météo Davis, via l'API WeatherLink ou en local.
Connecteur non officiel, sans lien avec Davis Instruments. Il amène dans Gladys les capteurs de vos stations météo Davis (Vantage Pro2, Vantage Vue, WeatherLink Live, WeatherLink Console, AirLink), lus soit par l'API officielle WeatherLink v2 (cloud), soit directement sur votre réseau local depuis une WeatherLink Live ou un AirLink.
Cette intégration n'a jamais été testée avec une vraie station. Elle suit les deux intégrations Home Assistant dont elle s'inspire et la documentation officielle des deux API. Merci de signaler ce que vous constatez sur le forum Gladys.
Ce que vous obtenez
Un appareil Gladys par groupe de capteurs, pour que chacun aille dans sa pièce :
| Appareil dans Gladys | Capteurs |
|---|---|
| Station – outdoor sensors | température, humidité, vitesse du vent, vitesse moyenne sur 10 min, rafale sur 10 min, direction du vent, intensité de pluie, pluie du jour, pluie des dernières 24 h, rayonnement solaire, indice UV, pile faible ; températures et humidités supplémentaires, températures du sol d'un enregistreur Vantage Pro2 |
| Station – console | température et humidité intérieures, pression (niveau de la mer et absolue) |
| Station – AirLink | température, humidité, PM2.5, PM10, indice de qualité de l'air (cloud) |
| Station – soil sensors | températures du sol 1 à 4, pile faible |
- Seul ce que votre station envoie est créé. Un deuxième émetteur reçoit « (transmitter n) » dans son nom.
- Rangez les appareils « outdoor sensors » et « AirLink » dans une pièce à part (par exemple « Extérieur ») : Gladys fait la moyenne de la température (et de l'humidité) des capteurs d'une pièce, et la température extérieure rangée dans le salon fausserait la sienne. Les températures supplémentaires d'une Vantage Pro2 (sonde de piscine, de serre…) et les températures du sol sont publiées comme des sondes, hors de cette moyenne ; les humidités supplémentaires non (Gladys moyenne toutes les humidités d'une pièce).
- Unités : °C, %, hPa, km/h, mm/h, mm par jour, indice UV, lux, µg/m³ ; la station envoie des °F, mph, inHg et pouces (ou basculements d'auget), convertis par l'intégration. Ce sont les unités que Gladys liste pour chaque type de capteur.
- Le rayonnement solaire est affiché en lux (W/m² ÷ 0,0079, l'approximation habituelle de la lumière du jour) : Gladys n'a pas d'unité W/m².
- Pas encore dans Gladys : la pluie de l'épisode, du mois et de l'année (Gladys n'a pas d'unité pour un cumul de pluie), l'humidité du sol (centibars), l'humectation des feuilles, le point de rosée, les indices de chaleur, de refroidissement éolien et THSW, les PM1, l'évapotranspiration. Voir TODO.md.
- Les noms des appareils et des capteurs sont en anglais ; renommez-les à la création si vous le souhaitez.
Installation
- Installez l'intégration depuis le catalogue de Gladys (Gladys 5.1 ou plus récent).
- Choisissez comment lire vos stations dans l'écran Configuration :
- Cloud WeatherLink (API v2) : sur weatherlink.com, ouvrez Account, cliquez sur Generate v2 Key, puis copiez la clé API Key v2 et le API Secret dans la configuration. Toutes les stations du compte sont lues (dix au plus).
- Local : donnez à votre WeatherLink Live (ou AirLink) une adresse IP fixe dans votre box et saisissez-la (jusqu'à trois adresses).
- Cliquez sur Tester WeatherLink : le message affiche les principales valeurs de chaque station.
- Ouvrez l'onglet Découverte et ajoutez les appareils. Leurs valeurs arrivent dès leur création.
Configuration
- Comment lire les stations : cloud ou local.
- Clé d'API (v2) et secret d'API (v2) (cloud) : le secret est gardé
par Gladys dans sa base (en clair, comme tout champ secret de Gladys) et
n'est jamais réaffiché dans l'écran de configuration. Il est envoyé
seulement à WeatherLink (
api.weatherlink.com), dans l'en-têteX-Api-Secretcomme le demande la documentation officielle, jamais dans une URL, un journal, un statut ni sous/data. La clé va dans l'adresse des requêtes, comme WeatherLink le veut ; elle n'est jamais écrite dans les journaux non plus. - Intervalle de lecture : 5 minutes par défaut, de 1 à 60. WeatherLink rafraîchit les données du cloud toutes les 15 minutes avec l'offre gratuite (toutes les 5 ou 1 minute avec Pro et Pro+) : un intervalle plus court ne fait que relire les mêmes valeurs.
- Adresses locales : l'adresse IPv4 (
192.168.1.60) ou le nom d'hôte, avec un port éventuel. Un chemin, une adresse IPv6 ou des identifiants sont refusés.
À quel rythme WeatherLink est lu
- Cloud : la liste des stations du compte (
GET /v2/stations) au démarrage puis toutes les 6 heures, puis une requête par station à chaque intervalle (GET /v2/current/{station}), espacées de 0,2 s. WeatherLink autorise 10 appels par seconde et 1 000 par heure : l'intervalle est allongé si besoin pour qu'une heure ne dépasse jamais 600 appels. - Local : une requête par adresse à chaque intervalle
(
GET /v1/current_conditions) ; la WeatherLink Live en accepte une toutes les 10 secondes. - Jamais plus vite que l'intervalle, compté depuis la dernière requête envoyée : ni par le bouton de test, ni par une reconnexion à Gladys, ni par une configuration enregistrée, ni par l'onglet Découverte, ni par un redémarrage du conteneur. Seules de nouvelles clés ou une nouvelle adresse sont lues tout de suite. Avant la fin de l'intervalle, le bouton de test affiche les dernières valeurs et l'heure de la prochaine lecture possible.
- Lecture seule : l'intégration n'écrit jamais rien sur une station ni sur le compte.
- Les valeurs appartiennent à l'appareil qui les a mesurées : chaque réponse locale porte le numéro de série de l'appareil, et les valeurs sont publiées sous ce numéro ; si un autre appareil répond maintenant à l'adresse (deux appareils qui ont échangé leurs adresses dans la box), il devient sa propre station, jamais la première. Chaque réponse du cloud doit nommer la station demandée.
- Une station qui échoue seule (pas d'accès, erreur du service) n'arrête jamais les autres. Un échec est retenté à l'intervalle suivant, jamais avant.
- Quand WeatherLink ou l'appareil répond 429 ou une erreur 5xx, il est
laissé tranquille pendant le délai
Retry-Afterindiqué, sinon 5 minutes, puis 10, 20… ; toujours entre 1 minute et 6 heures (30 minutes au plus pour une WeatherLink Live ou un AirLink, appareils de votre réseau). Vider la clé, passer en local puis revenir, ou enregistrer la configuration ne lève jamais une pause ni un refus. - Une clé ou un secret qui contient un retour à la ligne ou un caractère hors ASCII imprimable (un copier-coller raté) est refusé tout de suite (« non valide ») et jamais envoyé.
- Quand WeatherLink refuse la clé ou le secret (401/403), les lectures s'arrêtent et le statut le dit ; un nouvel essai toutes les 6 heures (le bouton de test peut réessayer dès que l'intervalle est écoulé), jusqu'à ce que vous les changiez.
- Une mesure de plus d'une heure (ou de deux intervalles) n'est pas publiée. Dans le cloud, la mesure d'un émetteur est datée par le dernier paquet que la console en a reçu, quand WeatherLink le donne ; en local, un émetteur que la WeatherLink Live recherche (perdu) ne publie rien.
- Une station partagée sans accès à l'API (403) fait relire la liste des stations une fois, 30 minutes plus tard, puis attend le rafraîchissement de 6 heures.
- L'heure de la dernière requête, les pauses, les refus et les stations
rencontrées (identifiant, nom, capteurs : rien de secret, jamais l'adresse
e-mail ni la position du compte) survivent à une reconnexion et à un
redémarrage du conteneur : ils sont gardés dans un fichier sous
/data. L'heure d'une requête est écrite avant que la requête parte, au plus une fois par minute ; une pause, un refus ou une nouvelle station est écrit tout de suite. Seulement tant que les clés sont refusées, le fichier garde une empreinte salée (scrypt) de ces clés refusées, pour qu'après un redémarrage de nouvelles clés soient essayées tout de suite ; elle est effacée par la première lecture réussie : rien dans le fichier ne peut confirmer des clés qui fonctionnent. - Au plus 250 valeurs sont envoyées à Gladys par minute.
- Une réponse de plus de 512 Ko, ou plus lente que 10 secondes, est abandonnée.
Dépannage
- « clé ou secret d'API refusé » : générez à nouveau la clé v2 sur weatherlink.com et copiez la clé et le secret.
- « non accessible avec ces clés » : la station n'est plus dans le compte, ou elle est partagée sans accès à l'API.
- « pas de mesure récente » : la station n'a rien envoyé depuis plus d'une heure (ou son émetteur est hors de portée).
- « pas de réponse » (local) : vérifiez l'adresse (IP fixe) et que la WeatherLink Live est sur le même réseau que Gladys.
- Journaux : le niveau se règle avec la variable
LOG_LEVEL.
Confidentialité
Cloud : l'intégration ne parle qu'à api.weatherlink.com, avec votre clé et
votre secret. Local : elle ne parle qu'aux adresses que vous saisissez, en
HTTP (la WeatherLink Live n'a pas de HTTPS), et rien ne quitte votre réseau.
Remerciements
Construite d'après astrandb/weatherlink
(MIT, Åke Strandberg) pour l'API v2 et
siku2/hass-weatherlink (MIT,
Simon Berger) pour l'API locale, deux intégrations Home Assistant : les
routes, les noms des champs et les conversions sont portés en JavaScript.
Leurs notices sont dans THIRD_PARTY_NOTICES.md. Davis, Vantage Pro2,
Vantage Vue, WeatherLink et AirLink sont des marques de leur propriétaire ;
ce connecteur est gratuit et non officiel.
Paramètres de configuration
Voici les paramètres demandés par WeatherLink dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| WeatherLink dans Gladys | section | Non | Connecteur non officiel, sans lien avec Davis Instruments. Il lit vos stations météo Davis (Vantage Pro2, Vantage Vue, WeatherLink Live, WeatherLink Console, AirLink) : température, humidité, vent, pluie, pression, UV, rayonnement solaire, particules fines. Soit par l'API officielle WeatherLink v2 (une clé et un secret d'API de votre compte), soit directement sur votre réseau local depuis une WeatherLink Live ou un AirLink. Lecture seule : rien n'est jamais modifié sur une station ni sur le compte. Jamais testé avec une vraie station pour l'instant. |
| Comment lire les stations | select | Non | Cloud WeatherLink : toutes les stations de votre compte, par l'API officielle v2. Local : une WeatherLink Live ou un AirLink sur votre réseau, sans le cloud. |
| Clé d'API (v2) | string | Non | Sur weatherlink.com, Account, « Generate v2 Key » : la clé « API Key v2 ». Cloud seulement. |
| Secret d'API (v2) | secret | Non | Le « API Secret » affiché à côté de la clé. Gardé par Gladys dans sa base, jamais réaffiché ; envoyé seulement à WeatherLink (api.weatherlink.com), dans un en-tête, jamais dans une URL ni un journal. |
| Intervalle de lecture (minutes) | number | Non | Une requête par station à chaque fois (cloud), ou une par adresse (local). Rien ne lit plus tôt, ni le bouton de test ni un redémarrage. Le cloud rafraîchit les données toutes les 1 à 15 minutes selon votre abonnement WeatherLink. |
| Local (facultatif) | section | Non | Avec « Local » ci-dessus : l'adresse IP d'une WeatherLink Live ou d'un AirLink (jusqu'à trois). Donnez à chacun une adresse fixe dans votre box. |
| Adresse locale 1 | string | Non | |
| Adresse locale 2 | string | Non | |
| Adresse locale 3 | string | Non |
Comment installer WeatherLink dans Gladys
- Dans Gladys, ouvrez Intégrations : WeatherLink apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/lm1lc3n7/gladys-weatherlink:0.1.2), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-weatherlink.
WeatherLink nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
WeatherLink est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation