ton idée est bonne mais la façon dont tu veux la réaliser ne va pas te satisfaire. Prenons plusieurs exemples :
- Si l’on déclenche l’automatisation quand la batterie ALPHA est < 15 %, si la BETA est < 15 % il n’y aura pas de déclenchement. Tu va donc être obligé d’ajouter toutes tes batteries pour déclencher. Si un jour tu ajoutes un nouvel équipement il faudra modifier ton automatisation à chaque fois…
- Si l’on déclenche l’automatisation quand la batterie ALPHA est > 0 % tu recevras une notification toutes les 24h (il me semble). On en revient au point de départ.
Il faut donc déclencher tout les jours mais n’envoyer que si nécessaire
Bonjour,
Désolé pour ce petit délai de réponse, mais encore une fois je cherchais comment faire. Et HA m’avait mis encore en branle le script, le « for » ne se mettait pas à la bonne place et la sauvegarde ne tenait pas compte de mon indentation, je me suis un peu pris la tête pour ça, mais bref, ça fonctionne bien.
Dans l’idée, est-ce que ce serait comme cela :
Trigger heure à 7h
ET : intégrer le modèle de contrôle de batterie
SI : id.batt >=1
Alors envoi id.batt message par service telegram
Ça te semblerait correct ?
1 « J'aime »
C’est tout à fait ça David. Tu as choppé la logique
Ok, j’ai essayé, dans modèle ça fonctionne correctement, dans l’automatisation cela ne veut aps prendre.
J’ai mis la valeur de 60 pour mon exemple, je remettrai à 15 par la suite, mais aucun succès en automatisation…
Une idée de ma logique pas bonne ?
alias: notif-batt-devA
description: ""
trigger:
- platform: time
at: "08:00:00"
action:
- service: telegram_bot.send_message
data:
message: |
{% set id = namespace(bat = []) -%}
{%- for x in states -%}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%}
{%- if (x.state | int(100) < 60 and not x.state[:1] =="o") -%}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%}
{%- endif -%}
{%- endif -%}
{%- endfor %}
{% if id.bat | count >= 0 -%}
Batterie à vérifier inf à 60% :
{{ ' et '.join((id.bat | join(', ')).rsplit(', ', 1)) }}
{%- else -%}
{%- endif %}
mode: single
Essaie ça
alias: notif-batt-devA
description: ""
trigger:
- platform: time
at: "08:00:00"
condition: []
action:
- if:
- condition: template
value_template: |-
{% set id = namespace(bat = []) -%}
{%- for x in states -%}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%}
{%- if (x.state | int(100) < 60 and not x.state[:1] =="o") -%}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%}
{%- endif -%}
{%- endif -%}
{%- endfor %}
{{ (id.bat | count) > 0 }}
then:
- service: telegram_bot.send_message
data:
message: |-
{% set id = namespace(bat = []) -%}
{%- for x in states -%}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%}
{%- if (x.state | int(100) < 60 and not x.state[:1] =="o") -%}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%}
{%- endif -%}
{%- endif -%}
{%- endfor %}
{% if id.bat | count >= 0 -%}
Batterie à vérifier inf à 60% :
{{ ' et '.join((id.bat | join(', ')).rsplit(', ', 1)) }}
{%- endif %}
mode: single
Merci Selecus, ça fonctionne parfaitement !
Je ne trouvais pas où se trouvais le « si / alors »… Merci.
Bon maintenant va falloir que je trouve autre chose que tu me résolves
Merci encore.
Avec plaisir David !
Même si je t’ai aidé, je pense que tu as appris et compris pas mal de nouvelle chose. Ce qui va te permettre de faire de nouvelle chose et donc te poser de nouvelles questions.
Avec de la chance on se retrouvera sur un autre sujet. Et cette fois ci, c’est peut-être toi qui m’aidera…
Passe une bonne journée.
1 « J'aime »
C’est sur que j’ai découvert de nouvelle chose !
Si un jour je peux rendre l’appareil avec plaisir même si quelques doutes ou sur des sujets autres qu’HA
Bon je vais quand même rajouter une bière à l’édifice
Je me suis dit que c’était dommage d’avoir aidé à faire une automatisation et de ne pas m’en servir pour moi-même. J’ai fait seulement 2 modifs au code partagé. Je n’utilise pas Telegram mais la notification via l’application. Et plutôt que d’envoyer une notification tous les jours, j’ai choisi d’en envoyer une que le mercredi et le samedi.
Voilà voilà…
Et ben écoute ma demande te sert alors c’est cool quand même
C’est pas mal Telegram, tu peux aussi faire du call_back pour déclencher des actions.
Pour les notifs de l’appli j’ai réussi à les avoir sur l’application web mais pas sur le téléphone… j’ai testé avec « notify.notify » ou « notify.send message » et « notify.persistant… »
Et également justement avec la dernière modif, je ne recevrai logiquement aucune notification SAUF si au moins une batterie est plus faible
Et santé
1 « J'aime »