ESPHome - capteur ultrason - mesure en m vers %

Bonjour à tous,

Mon installation est à jour le 25/11 côté HA et ESPHome.

J’ai ajouté un capteur à ultrason qui mesure le remplissage de mon regard ou passe mes eaux pluviales. Une pompe de relevage gère le vidage et parfois lors d’un gros orage, la pompe ne suit pas et ça déborde.

Actuellement, lorsque le regard est vide, la mesure est de 0.9m et quand il est sur le point de débordement, il est à 0.37m.

Comment puis je transformer le 0.9m en 0% et le 0.37m en 100% ?

Cela permettrai d’avoir une meilleur visualisation graphique. Il faut ensuite que je trouve un moyen d’obtenir une alarme genre qu’on ne pas zapper…

Merci d’avance de votre aide

Bonjour

Tu utilises la fonction calibrate linear de filter

voir exemple ci dessous

- platform: dht
  # ...
  temperature:
    name: "DHT22 Temperature"
    filters:
      - calibrate_linear:
          # Map 0.0 (from sensor) to 0.0 (true value)
          - 0.0 -> 0.0
          - 10.0 -> 12.1

bien entendu tu dois remplacer le type de sensor par celui que tu utilises

cela devrait donner quelque chose comme

- platform: dht
  # ...
  temperature:
    name: "DHT22 Temperature"
    filters:
      - calibrate_linear:
          # Map 0.9 (from sensor) to 0 (true value)
          - 0.9 -> 0
          # Map 0.37 (from sensor) to 100 (true value)
          - 0.37 -> 100

la valeur retournée sera un %age
tu peux aussi si tu veux donner des points intermédiaires

1 « J'aime »

C’est exactement ce que je recherchais. La solution était côté ESPHome et non côté home assistant.

Je crois que tu peux faire la même chose avec HA
mais je préfère déléguer a l’ESP

Je suis toujours en m avec une valeur de 107m du coup


# Example configuration entry
sensor:
  - platform: ultrasonic
    trigger_pin: D8
    echo_pin: D4
    name: "Niveau d'eau - Pompe de relevage"
    id: niveau_eau_pompe_relevage
    update_interval: 5s
    filters:
      - calibrate_linear:
          # Map 0.9 (from sensor) to 0 (true value)
          - 0.9 -> 0
          # Map 0.37 (from sensor) to 100 (true value)
          - 0.30 -> 100

C’est bon, j’ai trouvé avec cette configuration :

> # Example configuration entry
> sensor:
>   - platform: ultrasonic
>     trigger_pin: D8
>     echo_pin: D4
>     name: "Niveau d'eau - Pompe de relevage"
>     id: niveau_eau_pompe_relevage
>     update_interval: 5s
>     unit_of_measurement: "%"
>     accuracy_decimals: 1
>     filters:
>       - calibrate_linear:
>           # Map 0.9 (from sensor) to 0 (true value)
>           - 0.9 -> 0
>           # Map 0.37 (from sensor) to 100 (true value)
>           - 0.21 -> 100

rajoute alors

sensor:
  - platform: ultrasonic
    trigger_pin: D8
    echo_pin: D4
    name: "Niveau d'eau - Pompe de relevage"
    id: niveau_eau_pompe_relevage
    update_interval: 5s

   unit_of_measurement: '%'

    filters:
      - calibrate_linear:
          # Map 0.9 (from sensor) to 0 (true value)
          - 0.9 -> 0
          # Map 0.37 (from sensor) to 100 (true value)
          - 0.30 -> 100

et regarde la fonction offset ( correspond a décalage ) voir doc ESPHOME si jamais il continue a te retourner 107

1 « J'aime »

tu m’as devancé de quelques secondes

1 « J'aime »

Maintenant, il faut que je regarde côté type de capteur. Dans l’idéal, comme je suis sous homekit d’apple, il faut que je le transforme en capteur de fuite pour générer une alerte. Ou alors, dès que je dépasse 100%, je crée une automatisation qui enclenche un capteur de fuite. C’est faisable ca ?

Je connais pas homekit
mais une automation te permets sans probleme de passer un helper type binaire
de off a on et inversement

Il faut que je crée ce capteur binaire dans configuration.yaml avant et je programme le automation pour le switcher après? C’est l’idée?

oui
dans appareil et service
onglet entrée ( helper )
tu crees un interrupteur (input_bolean) dont tu fait changer le status ON ou OFF a l’aide d’une automation

Re,

Ca ne colle pas un « input boolean ». Apple le reconnait comme un interrupteur que je peux modifier en lumiere ou ventilateur.

Dans l’idéal, il faurdrait que j’arrive à créer un sensor de type humidity. J’en ai créé un qui detecte une variation importante de l’humidité de ma salle de bain que j’ai appelé détection de douche. Il passe de OFF à ON si un delta de 5% a lieu en moins de 5min.

Dans ce cas, il me faudrait la même chose mais en cas de dépassement des 90% par exemple. J’ai essayé dans les entrées le capteur de seuil qui repond côté parfaitement mais le résultat est un capteur qui ne s’ajoute pas à Apple.

Une idée ?

Salut @Pika28

Normalement tu peux faire ça en créant un binary_sensor basé sur l’état de ton sensor de référence.

Exemple d’un binary_sensor qui passera à « ON » si tu dépasses 100% :

template:
  - binary_sensor:
    - name: Fuite Regard
      unique_id: fuite_regard
      device_class: moisture
      state: >
        {{ states('sensor.niveau_eau_pompe_relevage') | float(1) > 100 }}

Après tu l’intègres à l’intégration « Homekit » et ça devrait le faire.

1 « J'aime »

Merci j’étais en train de lire un article la dessus justement. Tu as devancé mon premier test.

1 « J'aime »

Cela fonctionne ! Merci beaucoup. Tous les périphériques Apple de la maison Hurle en cas de fuite, c’est top. Un grand merci à vous pour votre aide !!!

template:
  - binary_sensor:
    - name: Inondation Garage
      unique_id: inondation_garage
      device_class: moisture
      state: >
        {{ states('sensor.niveau_d_eau_pompe_de_relevage') | float(1) > 90 }}

Bonjour,

Je suis preneur de ton sensor pour la détection de l’humidité pour allumer un sèche serviette, si jamais tu peux partager ton code :innocent:

Merci d’avance

Salut Adrien. Le code est au dessus. Ce sensor s’appuie sur un capteur ultrason qui mesure l’eau dans un puisard.

Je ne comprends pas comment avec ce code tu gères « il passe de OFF à ON si un delta de 5% a lieu en moins de 5min. » ?

Bonjour, je pense qu’Adrien (et moi je suis preneur aussi !) voudrait ton code que tu utilises dans la salle de bain où tu dis plus haut que tu as un faux capteur de fuite qui se déclanche si l’humidité monte de plus de 5 % en 5 mn.