Liste de courses facilement accessible au bon moment ;)

oups me suis tromper dans le nom du fichier python ca marche mieux maintenant, merci encore pour ton temps

1 « J'aime »

Allez, puisque c’est Noël, voici un cadeau :

shopping_list.py
#!/usr/local/bin/python
# coding: utf8
import json

with open('/config/.shopping_list.json') as data_file:
  shoppingListData = json.load(data_file)

class listeDeCourses:
    Liste = ""
    nb_article = 0
    statut = ""

myList = listeDeCourses()


for entry in shoppingListData:
    if not entry['complete']:
        myList.Liste += f"- {entry['name']}<br>"
        myList.nb_article += 1
        
    else: 
        myList.Liste = "Euh...il n'y a pas d'article dans la liste de courses, boloss...'"

if myList.nb_article == 0:
    myList.statut = "Pas d'article"
    
elif myList.nb_article == 1:
    myList.statut = f"{myList.nb_article} article"
    
else:
    myList.statut = f"{myList.nb_article} articles"


print(json.dumps(myList.__dict__))



Sensor

  - sensor:
        name: Liste de Courses
        command: python3 /config/shopping_list.py
        json_attributes:
          - Liste   
          - nb_article                                      
        value_template: '{{ value_json.statut }}'

Script
alias: "[Liste de Courses] Envoyer Liste à Quintus"
sequence:
  - data: {}
    entity_id: sensor.liste_de_courses
    service: homeassistant.update_entity
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: notify.mobile_app_quintus_s21
    data_template:
      data:
        channel: Alarme
        importance: max
        priority: high
        ttl: 0
        sticky: "true"
        subject: <b>Liste de Courses </b> ({{ states('sensor.liste_de_courses') }})
      message: "{{ state_attr('sensor.liste_de_courses', 'Liste') }}"
      title: Home Assistant
mode: single

Mais alors, qu’est-ce que tout cela?

Juste une astuce pour ne plus être limité par les 255 caractères d’un state. Je passe par la partie attribute pour feinter.

Le state devient un : « Pas d’article », « 1 article », « 2 articles », etc…
Et en attributes, on récupère la liste de courses, formatée en lignes grâce à des « br », ainsi que le nombre d’articles.

Voici le résultat :

En vous souhaitant à tous de très joyeuses fêtes :tada::clinking_glasses:

1 « J'aime »