Bonjour,
Je viens de me prendre un capteur Aqara TVOC pour connaitre le taux de COV dans l’air.
J’ai suivi le tuto des Alexiens pour transformer le taux en %:
Lors de sa sortie en 2021, nous vous avions présenté le test du Aqara TVOC, un capteur de qualité de l'air fonctionnant en ZigBee 3.0. Aujourd'hui, nous
J’ai malheureusement une erreur, savez-vous pourquoi? Je trouve la syntaxe bizarre…
## MONITEUR QUALITE AIR
qualite_air_calcul:
friendly_name: "Qualité de l'air calcul"
value_template: "{{ (states.sensor.qualite_air_salon_voc.state|float(0)*100/5500)|float|round(2) }}"
qualite_air_pourcentage:
friendly_name: "Qualité de l'air en %"
value_template: "{{ (100) - (states.sensor.qualite_air_salon_voc.state|float(0))|float|round(1) }}"
unit_of_measurement: "%"
Merci !
Bonjour,
Il s’agit de mon article.
Je n’utilise plus ce template « calcul », mais quand je le teste je n’ai aucune erreur dessus.
1 « J'aime »
Salut,
Il manque des valeurs pas défaut au float et ils sont redondants
J’ai pas testé completement mais ça doit marcher
qualite_air_calcul:
friendly_name: "Qualité de l'air calcul"
value_template: "{{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}"
qualite_air_pourcentage:
friendly_name: "Qualité de l'air en %"
value_template: "{{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}"
unit_of_measurement: "%"
Merci pour votre aide!
J’ai toujours des erreurs
Je me trompe peut etre de fichier… c’est bien à mettre dans le fichier Templates.yaml ?
J’ai hesité avec Configuration.yaml… je sais jamais
6 espaces d’un coup !!!
- sensor:
- name: xxxxx
Et puis il manque les tirets devant qualite_air_calcul
et qualite_air_pourcentage
, c’est pas le même format de sensor non plus …
Ca fait en effet beaucoup d’espaces
Mais ce n’est pas pour ca que ca ne marche pas, si?
J’ai rajouté des tirets, toujours pareil
Non les espaces sont pas bloquants maintenant mais bon, au bout d’un moment, ça casse tout quand même
Reprends le format du dessus.
Et remplace par le bon calcul
value_template => value
friendly_name => name
id => unique_id
(sur téléphone c’est pas jouable pour moi)
1 « J'aime »
Merci pour votre aide, mais je n’y arrive toujours pas…
J’ai essayé de changer le format, comme tu m’as conseillé @Pulpy-Luke mais je ne comprends pas la logique et il me manque des morceaux …
J’ai mis au propre l’indentation
# MONITEUR QUALITE AIR
- qualite_air_calcul:
friendly_name: "Qualité de l'air calcul"
value_template: "{{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}"
- qualite_air_pourcentage:
friendly_name: "Qualité de l'air en %"
value_template: "{{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}"
unit_of_measurement: '%'
Salut,
C’est évidement pas facile mais là ton souci c’est pas un souci de conversion(tu as encore le vieux format).
Voilà un truc plus proche de quelque chose qui fonctionne. Il faut ajouter le sensor:
pour séparer les nouveaux formats juste plus haut. Et ajouter les espaces
sensor:
- qualite_air_calcul:
friendly_name: "Qualité de l'air calcul"
value_template: "{{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}"
- qualite_air_pourcentage:
friendly_name: "Qualité de l'air en %"
value_template: "{{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}"
unit_of_measurement: '%'
1 « J'aime »
Merci mais toujours pas .
J’essaie de modifier le code avec le nouveau format:
Je me lance sans grande conviction…
- sensor:
- name: "Qualité de l'air calcul"
state_class: measurement
unique_id: qualite_air_calcul
state: {{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}
- sensor:
- name: "Qualité de l'air en %"
unit_of_measurement: '%'
state_class: measurement
unique_id: qualite_air_pourcentage
state: {{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}
Je suis pas loin ?.. ou pas du tout ?!
C’est pas loin à condition de
repartir de ce que j’écris : j’ai pas mis de -
devant sensor:
mettre les logs qui correspondent au code et inversement, sinon moi je vais me perdre
Là tu as un souci avec "
qui s’entrechoquent (coté image)
Et coté code pour le nouveau format, c’est les tirets qui gênent
sensor:
- name: "Qualité de l'air calcul"
state_class: measurement
unique_id: qualite_air_calcul
state: {{ (states('sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}
- name: "Qualité de l'air en %"
unit_of_measurement: '%'
state_class: measurement
unique_id: qualite_air_pourcentage
state: {{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}
1 « J'aime »
Merci !
Vu qu’il y avait un - devant sensor sur les Sensors au dessus, je me suis dit… Pourquoi il ne faut pas en mettre ?
On va se focaliser sur le nouveau format alors
J’ai toujours des erreurs:
sensor:
- name: "Qualité de l'air calcul"
state_class: measurement
unique_id: qualite_air_calcul
state: {{ (states('sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}
- name: "Qualité de l'air en %"
unit_of_measurement: '%'
state_class: measurement
unique_id: qualite_air_pourcentage
state: {{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}
C’est quoi le !include de ton fichier template.yaml ?
Je n’avais pas vu mais il y a encore un niveau
Et puis il faut etre constant dans les '
et "
Je viens de modifier les "
Je ne comprends pas ton histoire de !include. Je ne le vois pas dans mon fichier template.yaml
#################################################################
## TEMPLATES ##
#################################################################
#################################################################
## SENSORS ##
#################################################################
#Configuration Pluviometre
- sensor:
- name: Precipitations Aujourd'hui
unit_of_measurement: mm
state_class: total_increasing
unique_id: precipitation_today
state: >-
{% set count = states('sensor.i_flips') | int(0) %}
{% set mm = count * 0.29154 %}
{% if count >= 0 %}
{{ mm|round(1, 'floor') }}
{% endif %}
# If you have issues with the history sensor doubling after restarting HA, add the line below (@BigG)
availability: "{{ (states('sensor.pluviometre_flips') not in ('unknown', 'unavailable')) }}"
- sensor:
- name: "Intensité de la pluie"
unit_of_measurement: 'mm/h'
state_class: measurement
unique_id: precipitation_par_heure
state: >-
{% set rain_hour = ((state_attr('binary_sensor.rainfall_trend', 'gradient') | float(0)) * 3600) | round(1, 'floor') %}
{% if rain_hour >= 0 %}
{{ rain_hour }}
{% else %}
{{ 0 }}
{% endif %}
# MONITEUR QUALITE AIR
sensor:
- name: "Qualité de l'air calcul"
state_class: measurement
unique_id: qualite_air_calcul
state: {{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}
- name: "Qualité de l'air en %"
unit_of_measurement: '%'
state_class: measurement
unique_id: qualite_air_pourcentage
state: {{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}
Et une partie de mon fichier configuration.yaml:
OK je vois l’info :
ça :
ça veut dire que template.yaml
- sensor:
- name: Precipitations Aujourd'hui
devient au chargement
template:
- sensor:
- name: Precipitations Aujourd'hui
Dans ton cas avec le nouveau bloc, ça donne actuellement :
template:
sensor:
- name: "Qualité de l'air calcul"
Et donc je comprends mieux ton tiret de tout à l’heure
ce que l’on veut obtenir c’est
sensor:
- name: "Qualité de l'air calcul"
Donc ça correspond à mettre le nouveau bloc dans
et de ne mettre QUE
- name: "Qualité de l'air calcul"
1 « J'aime »
Ah! Je me doutais de mon erreur!
J’en parle dans mon deuxieme message…
Je suis une chevre…
Ca semble en effet marcher :
- name: "Qualité de l'air calcul"
state_class: measurement
unique_id: qualite_air_calcul
state: {{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}
- name: "Qualité de l'air en %"
unit_of_measurement: '%'
state_class: measurement
unique_id: qualite_air_pourcentage
state: {{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}
Merci !!
1 « J'aime »
Il reste une petite erreur…
Ligne 65
- name: "Qualité de l'air calcul"
state_class: measurement
unique_id: qualite_air_calcul
state: {{ (states("sensor.qualite_air_salon_voc")|float(0)*100/5500)|round(2) }}
- name: "Qualité de l'air en %"
unit_of_measurement: '%'
state_class: measurement
unique_id: qualite_air_pourcentage
state: {{ (100 - states("sensor.qualite_air_salon_voc")|float(0))|round(1) }}
Une idée ?
axowhite:
Une idée ?
Ton capteur sensor.qualite_air_salon_voc porte bien ce nom et donne une valeur numérique ?
1 « J'aime »