Forum Francophone Home Assistant

Action si incrémentation

Bonjour,

je voudrais savoir comment lancer une automatisation
sur on a une incrémentation d’un compteur

exemple, sur ma freebox, j’ai les appels manqués,
si je passe de 0 à 1 ou plus, je voudrais avoir une alerte
mais si je ne les ai pas effacé et que je passe de 11 à 12 c’est pareil,

donc réagir sur incrémentation …?
cela est il possible ?

Stéphane

Bonjour @steph96

Oui c’est possible avec « COUNTER »

Un exemple pris sur le forum officiel

#Counters
counter:
  stairssensorcount:
    name: Stairs Sensor Count
    initial: 0
    step: 1



- id: '1576869741194'
  alias: Motion in Stairs Counter
  description: Motion in Stairs Counter
  trigger:
  - entity_id: binary_sensor.commonstairs_movement
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - entity_id: counter.stairssensorcount
    service: counter.increment
  - delay: '60'
  - entity_id: counter.stairssensorcount
    service: counter.reset

- id: '1575225703256'
  alias: Motion in Stairs
  description: Motion in Stairs
  trigger:
  - entity_id: binary_sensor.commonstairs_movement
    from: 'off'
    platform: state
    to: 'on'
  condition:
  - above: '1'
    condition: numeric_state
    entity_id: counter.stairssensorcount
  action:
  - data:
      message: Motion Detected in Stairs - test
    service: notify.mobile_app_sm_g930f

merci
mais je n’ai pas tout compris
visiblement ici tu incrémente ton compteur en fonction d’un état d’un autre capteur

moi ce que je cherche, c’est a déclencher une action si mon compteur s’incrémente
mais c’est le compteur d’appel de ma box, il va s’incrémenter tout seul …

donc je cherche a détecter l’incrémentation…

Ahah J ai lu trop vite :slight_smile:
Mais as tu accès a la freebox depuis HA?

oui,

j’ai une entité :
[sensor.freebox_missed_calls]
qui me donne le nombre d’appels manqués et la liste des appels avec date/heure
(( d’ailleurs je ne sait pas non plus comment avoir une carte pour afficher ma liste d’appels ))

donc ce nombre va s’incrémenter a chaque nouvel appel
et je voulais avoir une automatisation qui se déclanche a chaque nouvel appel manqué
mais je ne sait pas le nombre de départ et le nombre d’arrivée,
je voudrais juste réagir a ‹ si incrémenté ›

Bonjour,

Ah ok, et dans developer_tools, que te donne un template du style ?

{{ states('sensor.freebox_missed_calls') }}

bonsoir,

c’est bien mais ne fonctionne que si on est à 0 et que l’on a un appel
si le compteur est à 1 et que l’on a un autre appel l’automatisation ne se déclenche pas

je n’ai mis que ça :

platform: template
value_template: '{{ states(''sensor.freebox_missed_calls'') }}'

je n’ai jamais essayé les templates, je ne sait pas si il faut autre chose …?

Bonsoir,

Faut bien commencer un jour avec avec les templates :wink: tu vas voir c’est tres pratique, ca permet d’avoir des choses dynamiques.

Tu vas dans developer tools, onglet template, et tu mets ceci

{{ states.sensor.freebox_missed_calls }}

et cela va te donner dans le cadre de droite la valeur du sensor.freebox_missed_calls
Appelle toi et tu vas voir :wink:
L’idee est de savoir ce que cela te renvoie, 0 ou 1 ou X et ensuite comparer la valeur pour déclencher une notification par exemple

Tu peux aussi mettre ceci par exemple
{{ states.sensor.time }}

C’est la qu’il faut donc comparer, genre > 0 ou différent de 0

je vais essayer de te faire un ptit quelquechose

en fait cette commande ne retourne pas le nombre d’appels mais la liste aussi, c’est peut etre pour cela que ça ne fonctionne pas …

`

<template TemplateState(<state sensor.freebox_missed_calls=4; 2020-10-12T18:29:46+00:00=06000000, 2020-10-12T18:21:18+00:00=06000000, 2020-10-12T18:20:46+00:00=06000000, 2020-10-12T18:20:18+00:00=06000000, friendly_name=Appels manqués, icon=mdi:phone-missed @ 2020-10-12T20:29:51.943808+02:00>)>
`

Bonjour,

OK cela ne donne pas que le nombre.

Regarde dans « Developer Tools » -> onglet « States » de mémoire.
Choisis ton entité « sensor.freebox_missed_calls »
Et regarde dans le cadre si cela te met plusieurs lignes.
Si oui, tu dois pouvoir récupérer le nombre avec
states.sensor.freebox_missed_calls.attributes.toto

avec toto qui correspond au nom de l’attribut renvoyant le nombre d’appels.

Par exemple avec l’entité : sun.sun
Tu peux récupérer la valeur de « Next Sunset et Next Sunrise » comme ceci

states.sun.sun.attributes.next_setting
states.sun.sun.attributes.next_rising

En esperant quecela soit ca, sinon va falloir se creuser la tête :wink:

Avant que j’oublie.
L’idée serait de faire quelque chose comme ceci peut-etre :

binary_sensor:
  - platform: template
    sensors:
      missed_calls:
        friendly_name: Appels manques
        value_template: "{{ states.sensor.freebox_missed_calls | int > 0 }}"


# -> automation
- id: appels_manques_freebox
  alias: Appels Manqués Freebox 
  trigger:
    - platform: state
      entity_id: binary_sensor.missed_calls
      to: 'on'
  action:
   - service: notify.notify
     data:
       message: "Freebox - Appels manqués"

Bonjour,

Un doute m’envahit :wink:
Peux tu essayer avec ce template ci stp

{{ states('sensor.freebox_missed_calls)' }}

cela me retourne ‹ unknown error ›

par contre :

{{ states('sensor.freebox_missed_calls') }}

me retourne bien ‹ 4 ›
ton apostrophe n’était pas au bon endroit a la fin mais le reste :+1:

2 J'aimes

alors l’automatisation ne fonctionne pas,
j’ai bien mon compteur d’appels qui s’incrémente
mais le [binary_sensor.missed_calls] reste à off
le {{ states.sensor.freebox_missed_calls | int > 0 }} reste à false, même après un nouvel appel
et {{ states(‹ sensor.freebox_missed_calls ›) | int > 0 }} rest à true tout le temps…

pas si facile alors ma problématique ??

Salut,

au cas ou as tu rechargé les automations ?

Salut,

On progresse :wink:
Désolé pour l’erreur de syntaxe :wink:

Tes appels manqués ne repassent jamais à 0 en fait ? A quel moment repassent-t-ils à 0 s’ils repassent.
Ce qui explique que ceci {{ states(‹ sensor.freebox_missed_calls ›) | int > 0 }} reste à true

Est-ce que tu as d’autres sensors pour la FREEBOX ? Et des services ?

Je n’ai jamais dit que ca allait être facile !

Autre idée si cela ne se remet pas à 0 :

  • recupérer la valeur de « OLD » missed_calls dans une variable
  • la comparer à new missed calls

oui effectivement je pense que ce serait mieux de passer par une variable et de comparer
en tout cas, je pensais que c’était plus simple et qu’il y avait une astuce connue pour cela !

mon compteur d’appels manqués est remis a 0 uniquement quand je vais dans mon interface freebox pour supprimer les appels manqués, je n’ai même pas trouvé de commande pour faire cela depuis HA
donc sur une journée ou plusieurs jours d’absence, je peux très bien avec 1 ou plusieurs appels et donc la seule solution est de savoir si on incrémente pour savoir qu’il y a eu un nouvel appel…

Et tu n’as aucun autre sensor ou service pour la FREEBOX ?

rien d’utile dans notre cas,
juste les températures CPU, vitesse de téléch, activation du wifi…

mais l’idée de passer par une variable est bonne, comment on peut affecter ma valeur d’appels actuels a une variable et comment on peut comparer la variable à mon compteur dans une automatisation, c’est tout ce qu’il manque …

j’ai essayé cela ce matin mais erreur :

entity_id: input_number.memo_appels
value: {{ states('sensor.freebox_missed_calls') | int }}

ou

entity_id: input_number.memo_appels
value: {{ states('sensor.freebox_missed_calls') | float }}