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
1 « J'aime »