Aller au contenu principal

Intégration domotique Horaires Commerces, gratuite et open source

Intégration Horaires Commerces pour Gladys Assistant

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.

ChampQue mettre
Clé overpass.chVotre clé gratuite, pour chercher les horaires sur OpenStreetMap (voir plus bas).
Commerces et horairesVos commerces et leurs horaires (voir plus bas).
Maisons autour desquelles chercherLes 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 écrivezCela veut dire
Mo-Sa 08:30-20:00Du lundi au samedi, de 8 h 30 à 20 h
Mo-Fr 08:30-12:00,14:00-19:00Avec une pause de midi
Mo-Sa 08:30-20:00; Su 09:00-12:30Règles séparées par ;
Mo-Sa 08:30-20:00; We 08:30-21:00Une règle plus loin remplace la précédente ce jour-là
...; PH offFermé les jours fériés
...; PH 09:00-12:30Horaires réduits les jours fériés
24/7Toujours 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.

  1. Ouvrez overpass.ch/signup (bouton Get a free key sur l'accueil).
  2. 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).
  3. Ouvrez l'e-mail reçu et cliquez sur le lien de confirmation.
  4. 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).
  5. Copiez la clé. Son adresse entière, https://api.overpass.ch/v1/…/interpreter, convient aussi.
  6. Dans Gladys : Intégrations → Horaires Commerces → Configuration, collez-la dans Clé overpass.ch et enregistrez.
  7. Cliquez sur Tester la configuration. Les logs de l'intégration disent OpenStreetMap answered by api.overpass.ch quand 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​

AppareilFonctionnalitéRemarques
Chaque commerceOuvert (1 = ouvert, 0 = fermé)Utilisable dans toute condition de scène
Chaque commerceMinutes avant ouverture ou fermetureMis à 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, pas Lu) et des heures HH:MM (08:30, pas 8h30).
  • 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ètreTypeObligatoireDescription
Pour commencersectionNonTout 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 OpenStreetMapsectionNonLes 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.chsecretNon
Vos commercessectionNonUn 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 horairesstringNon
Autour de vos maisonssectionNonL'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_selectNon
Rayon de recherche autour des maisons (km)numberNonÀ 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_selectNonLes 3 plus proches de chaque type, par maison.
Préavis avant ouverture ou fermeture (min)numberNonQuand se déclenchent les scènes « ouvre bientôt » et « ferme bientôt ».

Comment installer Horaires Commerces dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Horaires Commerces apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. 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).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. 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.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂