Création de sensor

salut, je cherche a créer un sensor binaire qui vas changer d’état quand un autre sensore analogique reste pendant un certain temps a la même valeur ?

exemple quand le sensore est a 43% pendant 20 min on passe a ‹ on › et quand la valeur change a nouveau il passe a ‹ off ›

Bonjour,

Vous pouvez faire quelque chose comme suit:

- platform: template
    sensors:
      nom_de_mon_sensor:
        value_template: "{{ states('sensor.que_vous_suivre') | float(0) > valeur_de_seuil }}"
        delay_on: hh:mm:ss # durée pendant laquelle il doit être à la valeur de seuil

Si vous voulez des compléments ou quelque chose de plus complexe, n’hésitez pas
Mcp

merci, c’est la voie, mais le problème est que la valeur de seuil n’est pas fixe, le but est de repérer quand la valeur ne change pas, quelle qu’elle soit :wink:

Dans ce cas à la place de > mettre =

Salut…
Ça mériterai probablement de détailler tout le contexte… Un capteur qui ne varie pas pendant 20 minutes c’est pas anormal en soit. Idem quand plusieurs valeurs successives sont identiques
Vu d’ici ça ressemble à tentative de mise en place d’une rustine. Il y a peut-être mieux à faire


exemple de ce sensor, je veux avoir un on/off sur les longue periodes ou il n’y a pas de variation (les plat) debut et fin

Bon c’est toujours un peu chiche en informations mais bon…
Ton mécanisme c’est quoi ? Ton objectif ? Que veux-tu faire avant / pendant / après ces plages ? Ton capteur mesure quoi ?
La solution que tu as imaginé n’est pas forcément la meilleure/plus simple mais pour le savoir il faut connaître l’ensemble. Le graphique ça donne un peu plus d’idée mais ça va pas beaucoup plus loin pour autant.
Dans tes plages de début et de fin tu as des valeurs intermédiaires ?

ce capteur réagi a plusieurs éléments mais n’est pas exploitable tel que, ce qu’il me faut, c’est transformer ce signale en 1/0, avec comme critère de changement d’état, l’info :

-signal a une valeur fixe durant 20min je passe a 1
-signal de sortie étant a 1, si le signal d’entrée change de valeur je passe la sortie a 0

en gros une sorte de filtre pour éviter les variation rapides

en électronique, j’aurais mis un condo et ampli-op :wink:

Pas sûr qu’on se comprenne… Pour l’instant je n’ai pas besoin de détails sur la solution (du 0 / 1 sur détection de non variation) mais quel est le besoin initial (je veux arrêter un système de filtrage quand le traitement est fini)…
Donc les différents éléments qui constituent cette valeur en % ça peut aider à comprendre. Par exemple si tes valeurs sont envoyées toutes les minutes on n’a pas les mêmes moyens d’analyse que si tu n’as que les valeurs différentes…

Salut, comme le dit @Pulpy-Luke le fonctionnement de ce capteur a l’air mystérieux, du coup pas évident de penser à une solution adéquate sans vraiment avoir compris le contexte…

Néanmoins, basé sur ce que tu donnes, je ne pense pas que les options dispo pour gérer ça directement dans le capteur soit simple, je partirais pour commencer sur une automatisation et le trigger d’état avec une « For »
Comme cet exemple qui vient de la doc des triggers de HA.

automation:
  trigger:
    - platform: state
      entity_id: media_player.kitchen
      # The media player remained in its current state for 1 hour
      for: "01:00:00"

Couplé à ceci, un binary_sensor qui va avoir recevoir un changement d’état On/Off…

En résumé tu auraits:

  • Ton sensor avec les valeurs qui changent ou pas…
  • 1 binary sensor qui te dira si c’est on ou off
  • 1 automatisation qui détecte le fait que la valeur n’a pas bougé pendant X Minutes et change le binary_sensor si c’est le cas à on.
  • potentiellement 1 automatisation que remet à off quand la valeur change…

Oui, c’est une solution si le last_changed ne permet pas d’avoir un truc plus simple

merci;-)

Je ne voulais pas donner un cas concret par ce que je veux pas une solution déjà complète, un copieur n’apprend pas grand choses de plus :wink:

e vais tester les 2 solutions avec celle de @Pulpy-Luke et une 3eme qui m’est venues plus haut, avec une série de filtre, je vous dirais les résultats

Merci a vous

Ah ben t’inquiète je ne t’aurais pas donné la solution complète, c’est clair qu’il vaut mieux comprendre par soi-même ce que ça fait que simplement copier/coller.

Pour la question des exemples concrets, c’est juste pour avoir une idée de ce qu’on essaye de mesurer, car des fois la solution peut venir de la source directement, plutôt que d’ajouter de la complexité dans HA.

1 « J'aime »

re, sur cette portion de code de configuration.yaml, ai je bien écrit le sensor ?

template:
    - sensor:
        - name: "test"
          unit_of_measurement: '%'
          state: >   
                {% set ret = 0 %}) 
                {% if is_state('sensor1', 'etat1') %}
                    {% ret += 0.5 %}
                {% endif %}                
                {% if is_state('sensor2', 'etat2') %}
                    {% ret += 0.25 %}
                {% endif %}
                {% if states('sensor3', 'etat3') | float(0) > 20 %}
                    {% ret += 0.49 %}
                {% endif %}
                    ret

du moment que j’ai un sensor créé comme si dessus, puis je avoir des input_select déclaré comme ça :

input_select:
  sonnette:
    name: sonnette
    options:
      - noel_1
      - ....
      - fun_06
    initial: noel_3
    icon: mdi:bell-circle-outline

ou plutôt :

template:
    - sensor:
        - name: "test"
          unit_of_measurement: '%'
          state: >    
                {% set ret = 0 %}
                {% if is_state('sensor1', 'etat1') %}
                    {% set ret = ret + 50 %}
                {% endif %}                
                {% if is_state('sensor2', 'etat2') %}
                    {% set ret = ret + 25 %}
                {% endif %}
                {% if states('sensor3', 'etat3') | float(2) > 20 %}
                    {% set ret = ret + 49 %}
                {% endif %}
                {{ret}}

suite a ces recherches et grasse a vos directions, je fait un nouveau post qui explique le vrais but :wink:

Un message a été scindé en un nouveau sujet : Création d’un sensor binaire tempalte