Modifier l'état d'un sensor

Bonjour,
J’ai un sensor texte créé par un appareil ESPHome qui y place des chaines de caractères.
J’ai une automation qui traite ces chaines à leur arrivée.
Je voudrais que l’automation puisse ensuite effacer la chaine du sensor.
L’outil de dév. ETAT permet cela … Je crois qu’il faut envoyer un event … mais là je cale.
D’avance merci.

Salut

Je pense qu’il faut trouver une autre mécanique.
Sur le principe c’est pas au consommateur de l’information de modifier celle-ci mais bien au détenteur.
L’ESP a en plus toutes les chances de la remettre à jour juste derrière.

Là sans plus de détails ça ressemble à de la consommation de messages, ça s’apparente à MQTT par exemple

1 « J'aime »

Bien sûr je peux trouver autre chose. Par exemple je demande à l’ESP de poster une chaine vide 2s après l’envoi d’une chaine de données. Mais ça ne satisfait pas mon esprit cartésien !

J’ai trouvé, il faut passer par un script Python :

  • Configurer Python : Python Scripts - Home Assistant
  • Redémarrer HA (J’ai du entièrement redémarrer le PI5 pour que ça marche)
  • Créer le script et le nommer par exemple : set_texte.py
  • Y coller : hass.states.set('sensor.appareil_nom-du-sensor', 'Nouveau texte')
  • Écrire dans le script : - action: python_script.set_texte

Ceci dit, comme je remonte des infos vers l’ESP je peux aussi lui demander de modifier à ce moment le sensor texte (En fait je veux l’effacer)

Salut,
Là tu détournes la notion de « capteur », pas très cartésien pour le coup :rofl:

C’est peut-être la logique initiale qui a surement des alternatives, un Esphome qui communique des ordres à HA par un texte c’est curieux…

Le composant « key_collector » de ESPHome crée ce text_sensor, example :

key_collector:
  - id: pincode_reader
    source_id: clavier
    min_length: 4
    max_length: 4
    allowed_keys: "0123456789"
    timeout: 8s
    on_progress:
      - script.execute:
          id: bipbip
          nombre_bip: 1
    on_result:
      - text_sensor.template.publish:
          id: pincode
          state: !lambda "return x.c_str();"
    on_timeout:
      - script.execute:
          id: bipbip
          nombre_bip: 3

S’agissant ici d’un code « secret » je préfère l’effacer après l’avoir traité.
L’alternative c’est d’envoyer un ordre à l’ESP pour lui demander de l’effacer.

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.