Je vous propose une solution pour gérer des listes de courses multiple.

Cette solution est une application AppDaemon. Je ne m’attarderai pas ici sur comment installer AppDeamon, il y a une excellente vidéo de JLo sur Horizon Domotique qui explique comment faire.
Les fonctionnalités
- Une entrée de liste déroulante répertorie les magasins.
- Lorsque le magasin sélectionné est modifié, la liste de courses correspondante est chargée.
- À chaque fois qu’un article est ajouté ou mis à jour, une sauvegarde de la liste de courses pour le magasin actif est effectuée.
- Si vous configurez des zones pour les magasins et configurez un service de notification, l’automatisation enverra une notification avec un raccourci vers le magasin correspondant.
Note : Une liste de courses peut être associée à plusieurs zones, cela est fait en vérifiant si le début du nom de la zone correspond à un magasin.
Remarque : les personnes et les notifications sont facultatives. Il est alors possible d’utiliser cette application comme une liste de tâches (to-do list).
Installation
Prérequis
Cette application utilise AppDaemon. Vous devez donc installer cette extension pour pouvoir l’utiliser.
Entrée de liste de courses
Créez une nouvelle entrée pour regrouper vos magasins préférés.
À partir de cette entrée, créez une nouvelle liste déroulante et entrez la liste des magasins.
Installation du tableau de bord
Créez un nouveau tableau de bord et ajoutez les widgets liste déroulante et liste de courses. Le yaml
de votre page devrait ressembler à ceci :
title: Liste de courses
views:
- cards:
- type: vertical-stack
cards:
- type: entities
entities:
- entity: input_select.shops
- type: shopping-list
Définition des zones de magasins
Les zones sont utilisées pour définir les zones des magasins. Ces zones de magasins sont utilisées pour sélectionner automatiquement la liste active et déclencher les notifications. Le début du friendly_name
de la zone doit correspondre au nom du magasin tel que défini dans les options de la liste déroulante décrite ci-dessus.
Exemple : La zone « zone.Biocoop_Grenoble
» et « zone.Biocoop_Voiron
» utiliseront toutes deux la liste de courses nommée « Biocoop
».
Installation de l’application AppDaemon
Le script est disponible sur mon github.
Tout d’abord, copiez shopping_list.py et notifier.py dans votre dossier apps
.
Le script Notifier
a été écrit par jlpouffier (JLo) · GitHub et la version originale est disponible ici. Les instructions de configuration sont disponibles (en Anglais) dans les commentaires à l’intérieur du code et une vidéo très bien faite explique en détail comment l’installer et le configurer.
Voici un exemple montrant comment j’ai mis à jour mon apps.yaml
pour l’utiliser :
notifier:
module: notifier
class: Notifier
log: notifier_log
home_occupancy_sensor_id: binary_sensor.home_occupied
proximity_threshold: 500
persons:
- name: Xavier
id: person.xavier_berger
notification_service: notify/mobile_app_sm_a405fn
proximity_id: proximity.distance_xav_home
Pour la configuration de ShoppingList
, vous devrez ajouter les lignes suivantes dans votre fichier apps.yaml
:
shopping_list:
module: shopping_list
class : ShoppingList
shops:
sélection des magasins à gérer sous forme d’input_selecttempo:
délai en secondes entre le remplissage de la liste et la mise à jour des éléments cochés(recommandé : 0.1). Si les éléments cochés ne sont pas correctement définis, augmentez cette valeur.notification_url:
URL de la carte Lovelace de la liste de courses utilisée dans la notificationnotification_title:
titre affiché dans la notification. Ce texte sera précédé par le nom de la zonenotification_message:
message à afficher dans la notificationpersons:
Liste de personnes à notifier lorsqu’elles entrent dans la zone du magasinname:
nom d’utilisateur tel que défini dans l’application de notification (utilisé pour la notification)
id:
un utilisateur tel que défini dans l’application de Notifier (utilisé pour le suivi des zones)
shopping_list:
module: shopping_list
class: ShoppingList
log: shopping_list.log
shops: input_select.shoppinglist
tempo: 0.1
notification_url: "/shopping-list-extended/"
notification_title: "Liste de courses"
notification_message: "Afficher la liste de courses"
persons:
- name: Xavier
id: person.xavier_berger
Mot de la fin
J’espère que vous avez trouvé ce sujet utile ou du moins intéressant. N’hésitez pas à partager vos commentaires et vos retours. Si nécessaire, je mettrai à jour le message principal pour le rendre plus facile à comprendre.
Pour faire suite aux discussions qui ont suivi ma présentation, je vous invite à proposer vos solutions YAML/GUI et NodeRed.