Modification dynamique d'un attribut sur un capteur

Bonjour à tous!

Je suis nouveau sur Homme assistant et je suis bloqué depuis quelques temps sur un problème. J’ai instrumenté un sonde pH de chez DF robot dans un bassin d’hydroponie. J’arrive parfaitement à récupérer la tension lue par cette sonde en utilisant ADS1115 ainsi qu’un ESP32. Mon problème se situe au niveau de la mise à l’echelle de cette tension pour la transformer en valeur de pH. En effet, j’ai crée un capteur « ph » et un « calibration_ph » comme suit:

- platform: template
  sensors:
    ph:
      friendly_name: pH
      value_template: "{{ state_attr('sensor.calibration_ph', 'coef_a')|float()*states('sensor.esp_jardin_ads1115_ec')|float()+state_attr('sensor.calibration_ph', 'coef_b')|float()}}"
    calibration_ph:
      friendly_name: coeffcients pour le calcul du pH
      value_template: true
      attribute_templates:
        coef_a: 2
        coef_b: 1

J’ai besoin de modifier les attributs « coef_a » et « coef_b » dans une automatisation suivant la procédure suivante:

  • je lance la calibration, calibration_ph passe à false
  • je met la sonde dans la solution n°1 et appui sur un bouton, la tension lue est enregistrée
  • je met la sonde dans la seconde solution et appui sur un bouton, la tension lue est enregistrée
  • je calcul et écrit les valeurs de « coef_a » et « coef_b » dans la capteur « callibration_ph »
  • calibration_ph passe à true

Et c’est la que le bas blesse, je n’arrive pas trouver quelle syntaxe utiliser pour écrire ces valeurs depuis une automatisation. Est ce que vous sauriez m’aiguiller?

En vous remerciant :innocent:

Ma configuration


[center]## System Information

version core-2024.4.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.1.73-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1399
Downloaded Repositories 1
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.2
update_channel stable
supervisor_version supervisor-2024.04.0
agent_version 1.6.0
docker_version 25.0.5
disk_total 28.5 GB
disk_used 8.5 GB
healthy true
supported true
board rpi5-64
supervisor_api ok
version_api ok
installed_addons ESPHome (2024.3.2), File editor (5.8.0), Studio Code Server (5.15.0), Terminal & SSH (9.13.0)
Dashboards
dashboards 3
resources 0
views 5
mode storage
Recorder
oldest_recorder_run 10 avril 2024 à 17:34
current_recorder_run 14 avril 2024 à 10:21
estimated_db_size 8.78 MiB
database_engine sqlite
database_version 3.44.2
[/center]

Salut,

Je pense qu’il faut commencer par créer 2 entités input_number, dans les entrées.
Et dans ton sensor template, les attributs coef_a & b, y mettre une expression template pour qu’ils aient les valeurs d’état de des 2 input_number.

Tu ne peux pas vraiment dans une automatisation appeler des services pour changer l’état ou les attributs de sensors car ce sont des sensors, c’est sensé récupérer des valeurs lues… en revanche si tu passe par des input_number c’est possible car les input* c’est interactif.

1 « J'aime »