Liste de courses multiples (Multiple shopping Lists)

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

MultipleShoppingList_demo

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_select
    • tempo: 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 notification
    • notification_title: titre affiché dans la notification. Ce texte sera précédé par le nom de la zone
    • notification_message: message à afficher dans la notification
    • persons: Liste de personnes à notifier lorsqu’elles entrent dans la zone du magasin
      • name: 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.

6 « J'aime »

Aahhh, le Graal tant attendu :+1:
Todo list me voilà :grin:

Propose ta solution sur le forum anglo-saxon, tu vas faire des heureux :wink:

Un grand merci. Je teste ça dès que possible.

@+

Déjà fait :wink:

1 « J'aime »

Tu vas te faire bannir de HACF en diffusant ta soluce en avant première sur un autre forum :rofl::rofl::rofl:

@+