Intégration domotique Horaires Commerces, gratuite et open source

Horaires de vos commerces, trouvés sur OpenStreetMap, sur le tableau de bord Gladys.
Cette intégration apporte dans Gladys les horaires des commerces où vous allez : quels commerces sont ouverts, quand ils ouvrent ou ferment, avec des scènes quand un commerce ouvre ou ferme bientôt.
Tout est calculé dans Gladys. Le seul appel externe va à OpenStreetMap, par le service overpass.ch et avec votre clé gratuite, pour trouver les horaires des commerces autour de vos maisons (voir Clé overpass.ch plus bas). Sans clé, écrivez vous-même les horaires de vos commerces.
Installation
Ouvrez Intégrations, cherchez l'intégration, installez-la, puis remplissez l'écran Configuration.
| Champ | Que mettre |
|---|---|
| Clé overpass.ch | Votre clé gratuite, pour chercher les horaires sur OpenStreetMap (voir plus bas). |
| Commerces et horaires | Vos commerces et leurs horaires (voir plus bas). |
| Maisons autour desquelles chercher | Les maisons Gladys autour desquelles chercher. Aucune cochée : toutes celles qui ont un emplacement. |
| Rayon de recherche ... (km) | À quelle distance d'une maison les commerces sont cherchés. Par défaut : 10. |
| Types de commerces ... | Les types de commerces proposés dans l'onglet Découverte. Aucun coché : aucun. |
| Préavis avant ... (min) | Quand se déclenchent « ouvre bientôt » / « ferme bientôt ». Par défaut : 30 min. |
Cliquez ensuite sur Tester la configuration : la réponse dit, commerce par commerce, s'il est ouvert.
Enfin, ouvrez l'onglet Découverte de l'intégration et créez les appareils.
Commerces et horaires
Un commerce par entrée : un nom, puis = et ses horaires si vous voulez les écrire. Séparez les commerces par | :
Leclerc = Mo-Sa 08:30-20:00; PH off | Pharmacie = Mo-Fr 09:00-19:00 | Boulangerie = Tu-Su 07:00-13:00,15:30-19:30
Les horaires suivent la syntaxe OpenStreetMap — souvent déjà affichée sur la fiche du commerce sur une carte :
| Vous écrivez | Cela veut dire |
|---|---|
Mo-Sa 08:30-20:00 | Du lundi au samedi, de 8 h 30 à 20 h |
Mo-Fr 08:30-12:00,14:00-19:00 | Avec une pause de midi |
Mo-Sa 08:30-20:00; Su 09:00-12:30 | Règles séparées par ; |
Mo-Sa 08:30-20:00; We 08:30-21:00 | Une règle plus loin remplace la précédente ce jour-là |
...; PH off | Fermé les jours fériés |
...; PH 09:00-12:30 | Horaires réduits les jours fériés |
24/7 | Toujours ouvert |
Jours en anglais : Mo Tu We Th Fr Sa Su. PH = jours fériés français (lundi de
Pâques, Ascension et Pentecôte compris). Les heures sont lues à l'heure de Paris.
10 commerces au plus.
Le nom identifie le commerce : le renommer crée un nouvel appareil dans Gladys.
Horaires trouvés automatiquement
Écrivez seulement le nom : Leclerc (ou Leclerc = auto). L'intégration cherche
alors sur OpenStreetMap le commerce de ce nom le plus proche de vos maisons Gladys
(toutes les maisons dont l'emplacement est renseigné dans Paramètres → Maisons),
et prend ses horaires. Pour chercher d'autres mots que le nom, écrivez-les après
auto:, par exemple Boulangerie = auto: Boulangerie Dupont. Les accents et les
majuscules ne comptent pas. Il faut pour cela une clé gratuite overpass.ch (voir
Clé overpass.ch plus bas).
- Avec plusieurs maisons, le commerce le plus proche de toutes les maisons gagne :
donnez un nom précis (
auto: Carrefour Market Vierzon) pour en choisir un près d'une maison donnée. - Tester la configuration cite le commerce trouvé, sa ville, sa distance et ses horaires : vérifiez que c'est le bon.
- Les horaires sont recherchés de nouveau une fois par jour, et gardés : un redémarrage sans réseau les conserve.
- Si OpenStreetMap n'a pas d'horaires pour votre commerce, ou des horaires que l'intégration ne sait pas lire, écrivez-les à la main (et pourquoi pas ajoutez-les sur openstreetmap.org).
Commerces autour de vos maisons (onglet Découverte)
L'intégration cherche sur OpenStreetMap, autour de chaque maison Gladys qui a un emplacement (renseigné dans Paramètres → Maisons), les commerces les plus proches des types cochés dans la configuration — supermarchés, boulangeries, pharmacies, bureaux de poste, déchetteries… — qui publient leurs horaires. Les 3 plus proches de chaque type, par maison.
Ouvrez l'onglet Découverte de l'intégration : chaque commerce y est listé avec sa
maison et sa distance, par exemple E.Leclerc (Maison, 1.3 km). Créez ceux où vous
allez, dans une pièce de la bonne maison, et renommez-les comme vous voulez : ils
marchent comme les commerces que vous écrivez, et leurs horaires sont mis à jour
une fois par jour.
Clé overpass.ch
Les horaires sont cherchés sur OpenStreetMap par le service overpass.ch, avec votre propre clé gratuite : sans clé, rien n'est cherché (les commerces écrits avec leurs horaires marchent quand même). La formule gratuite (sans carte bancaire, pour un usage personnel) donne 10 000 requêtes par mois ; l'intégration en fait une par jour.
- Ouvrez overpass.ch/signup (bouton Get a free key sur l'accueil).
- Remplissez E-mail, Password (10 caractères au moins) et Website (par
exemple
https://github.com/prohand/gladys-horaires-commerces), cochez l'acceptation des conditions, puis cliquez sur Create account (ou Continue with Google). - Ouvrez l'e-mail reçu et cliquez sur le lien de confirmation.
- Connectez-vous (Log in) et ouvrez la page des clés :
overpass.ch/dashboard/keys. Créez une clé.
Ne remplissez pas « Allowed referers » et ne cochez pas « Reject requests without
a referer » : l'intégration n'envoie pas de referer, le serveur refuserait ses
requêtes (erreur 403
forbidden_referer). - Copiez la clé. Son adresse entière,
https://api.overpass.ch/v1/…/interpreter, convient aussi. - Dans Gladys : Intégrations → Horaires Commerces → Configuration, collez-la dans Clé overpass.ch et enregistrez.
- Cliquez sur Tester la configuration. Les logs de l'intégration disent
OpenStreetMap answered by api.overpass.chquand la clé marche.
La clé est personnelle : ne la publiez pas (forum, dépôt de code, capture d'écran).
Une clé refusée ou un quota du mois épuisé est dit par Tester la configuration et
dans les logs (OpenStreetMap lookup failed: overpass.ch refused the key (403)) ; les
horaires déjà trouvés restent, et la recherche réessaie dans l'heure.
Appareils
| Appareil | Fonctionnalité | Remarques |
|---|---|---|
| Chaque commerce | Ouvert (1 = ouvert, 0 = fermé) | Utilisable dans toute condition de scène |
| Chaque commerce | Minutes avant ouverture ou fermeture | Mis à jour chaque minute |
Scènes
Déclencheurs
- Un commerce ouvre bientôt (
store_opening_soon) et Un commerce ferme bientôt (store_closing_soon) : une seule fois, le nombre de minutes configuré avant. Filtre : le commerce (vide = n'importe lequel). Variables : nom du commerce, heure, minutes restantes. Exemple : « {{store_name}} ferme à {{time}}, plus que {{minutes_left}} minutes. »
« Le commerce est ouvert » est un état : utilisez les conditions sur appareil de Gladys.
Actions
- Un commerce est-il ouvert ? (
is_store_open) : choisissez un commerce. Sorties : ouvert (oui/non), l'heure du prochain changement (HH:MM) et les minutes d'ici là.
Tableau de bord
- Horaires des commerces : tous les commerces d'un coup d'œil (ouvert ou fermé, jusqu'à quand), ou — avec le réglage Commerce — un commerce en détail, avec un compte à rebours et les horaires du jour.
Dépannage
- L'onglet Découverte est vide : cliquez sur Tester la configuration : il cherche de nouveau sur OpenStreetMap et dit pourquoi (maison sans emplacement, aucun type coché, OpenStreetMap injoignable, aucun commerce de ces types dans le rayon).
- « Clé overpass.ch manquante » : collez votre clé dans la configuration (voir Clé overpass.ch plus haut).
- « OpenStreetMap n'a pas pu être joint » : le message dit pourquoi (clé refusée, quota épuisé, serveur injoignable). Vérifiez la clé sur overpass.ch/dashboard/keys ; nouvel essai dans l'heure.
- « Aucun commerce de ce nom ... sur OpenStreetMap » : essayez moins de mots, un Rayon de recherche plus grand, ou écrivez les horaires à la main.
- « Aucune maison de Gladys n'a d'emplacement » : renseignez l'emplacement de la maison dans Paramètres → Maisons.
- « Les horaires ne sont pas compris » : le message cite la partie fautive.
Utilisez les jours en anglais (
Mo, pasLu) et des heuresHH:MM(08:30, pas8h30). - Un commerce est « non compris » : chaque entrée doit être
Nom = horaires, entrées séparées par|.
Données
Pour trouver les horaires (commerces écrits sans horaires, et onglet Découverte), les
mots cherchés, les types de commerces et l'emplacement de vos maisons (une zone du
rayon de recherche autour de chacune) sont envoyés à l'API Overpass d'OpenStreetMap
d'overpass.ch (api.overpass.ch, en Allemagne), avec votre clé, une fois par jour. Les horaires trouvés sont gardés dans
/data/hours.json. Pour ne rien envoyer : ne mettez pas de clé, et écrivez les horaires
de tous les commerces.
Paramètres de configuration
Voici les paramètres demandés par Horaires Commerces dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Pour commencer | section | Non | Tout est calculé dans Gladys : les horaires des commerces où vous allez, saisis par vous ou trouvés sur OpenStreetMap autour de vos maisons, ouverts ou fermés d'un coup d'œil, avec des scènes quand un commerce ouvre ou ferme bientôt. Pour trouver les horaires sur OpenStreetMap, collez votre clé gratuite overpass.ch ci-dessous. |
| Serveur OpenStreetMap | section | Non | Les horaires sont cherchés sur OpenStreetMap par overpass.ch, avec votre propre clé gratuite : créez un compte gratuit sur overpass.ch (sans carte bancaire) et collez sa clé ci-dessous (étapes dans la Documentation). Sans clé, rien n'est cherché : écrivez les horaires de vos commerces. overpass.ch reçoit les mots cherchés, les types de commerces et une zone autour de chaque maison. |
| Clé overpass.ch | secret | Non | |
| Vos commerces | section | Non | Un commerce par entrée : un nom seul, les horaires sont alors cherchés sur OpenStreetMap, au commerce de ce nom le plus proche de vos maisons Gladys (Nom = auto: d'autres mots pour chercher un autre nom), ou un nom, un signe égal et ses horaires en syntaxe OpenStreetMap (jours Mo Tu We Th Fr Sa Su, PH pour les jours fériés, off si fermé). Commerces séparés par une barre verticale |. |
| Commerces et horaires | string | Non | |
| Autour de vos maisons | section | Non | L'intégration cherche sur OpenStreetMap, autour de chaque maison Gladys qui a un emplacement, les commerces les plus proches des types cochés ci-dessous qui publient leurs horaires. Ouvrez l'onglet Découverte : les commerces y sont listés avec leur maison et leur distance, ex. E.Leclerc (Maison, 1.3 km) ; créez ceux où vous allez. |
| Maisons autour desquelles chercher (aucune cochée : toutes) | multi_select | Non | |
| Rayon de recherche autour des maisons (km) | number | Non | À quelle distance d'une maison les commerces sont cherchés sur OpenStreetMap : ceux écrits sans horaires, et ceux proposés dans l'onglet Découverte. |
| Types de commerces à proposer dans l'onglet Découverte (aucun coché : aucun) | multi_select | Non | Les 3 plus proches de chaque type, par maison. |
| Préavis avant ouverture ou fermeture (min) | number | Non | Quand se déclenchent les scènes « ouvre bientôt » et « ferme bientôt ». |
Comment installer Horaires Commerces dans Gladys
- Dans Gladys, ouvrez Intégrations : Horaires Commerces 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/prohand/gladys-horaires-commerces:1.0.1), 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/prohand/gladys-horaires-commerces.
Horaires Commerces nécessite Gladys >=5.3.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
Horaires Commerces 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 prohand, 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