Création d'un capteur .yaml a partir d'un capteur local tuya

Bonjour à tous,

je découvre depuis quelques jours HAS, j’ai crée une machine virtuel sous windows afin de tester ce nouveau systeme. Je suis depuis des années sous Eedomus, le fonctionnement n’a rien a voir. Pourtant pas un débutant en domotique mais je dois avouer que dans HAS je suis complétement a la ramasse, moi qui n’ai jamais codé… je suis litéralement perdu.

Mon but et de ramener tout ce que je fait dans eedomus sous HAS. Notament pour profiter de local tuya.

Jusqu’ici tout va bien, j’ai installé l’ensemble de HAS, local tuya, HACS pour les addons, file editor etc

la base de mon probléme est que je récupére ma valeur de ph via un module de local tuya, seulement celui-ci au lieu de me sortir une valeur 7.2 il me sort 720.
Aprés moulte recherche j’ai tenté de créer un sensor dans le fichier sensors.yaml mais rien ne fonctionne.

Pouvez-vous m’aider a comprendre et réaliser cette action s’il vous plait?

j’ai fait des essais dans le module de dev mais je n’arrive pas a l’appliquer dans sensor.yaml

Capture d’écran 2023-09-10 013051

Merci de votre aide :slight_smile:

Ma configuration


Pour le moment : Machine virtuel sous windows 11 virtual box
A venir : Raspberry Pi4 8G + SSD


Salut @seyko

Dans ton code je pense que « device_class » et « state_class » ne sont pas bons.

Essais avec le code suivant dans ton configuration.yaml :

template:
  - sensor:
      - name: "pH"
        unique_id: ph_orp
        unit_of_measurement: "pH"
        device_class: ph
        state_class: measurement
        state: "{{ states('sensor.ph_orp') | int(default=700) / 100 }}"

Et puis faire un tour sur la doc officielle aussi :wink:

3 « J'aime »

Salut,

Pareil, si tu mets l’unité dans unit_of_measurement il ne faut pas l’ajouter en texte dans la valeur produite state.
@Herbs en tiens compte dans son exemple

1 « J'aime »

Bonjour,

Merci a vous deux pour votre retour, j’ai reussi a le configurer dans le fichier configuration.yaml grace au code de Herbs, en revanche device_class j’ai du mettre water car pH il ne connait pas.

j’ai meme reussi a l’ajouter au tableau de bord ! :slight_smile:

Petite question, la on a écrit le code dans configuration.yaml, mais si je veux le mettre dans le fichier sensors.yaml sous quel forme dois-je le coder?
j’ai beau lire la doc je ne saisie pas la logique :confused:

Par contre je ne comprend pas le défaut=700 ? commment traduisez vous cela ?

UN GRAND MERCI :slight_smile:

Bonjour,
Le nouveau format de template n’est plus dans sensor.yaml. Maintenant c’est dans template.yaml, créer un fichier template.yaml dans /config.
Ajoute dans le configuration.yaml, la ligne:

template: !include template.yaml 

Inclus le code du sensor dans le template.yaml, sans le template: au début.

- sensor:
      - name: "pH"
        unique_id: ph_orp
        unit_of_measurement: "pH"
        device_class: ph
        state_class: measurement
        state: "{{ states('sensor.ph_orp') | int(default=700) / 100 }}"

C’est quand tu reboot, si la valeur est indisponible, la valeur par défaut sera 700 ( 7 ph ) .

Vu la doc c’est ph et non pH, faut prendre la valeur en « gras » dans la doc :

Voilà @WarC0zes a tout dit, juste faire gaffe, du code précédent il faudra supprimer :

- template:

et ne mettre que ça dans template.yaml:

- sensor:
    - name: "pH"
      unique_id: ph_orp
      unit_of_measurement: "pH"
      device_class: ph
      state_class: measurement
      state: "{{ states('sensor.ph_orp') | int(default=7) / 100 }}"

Et si tu veux créer un second « sensor » ne pas mulitplier - sensor:

- sensor:

    - name: "pH"
      unique_id: ph_orp
      unit_of_measurement: "pH"
      device_class: ph
      state_class: measurement
      state: "{{ states('sensor.ph_orp') | int(default=7) / 100 }}"

    - name: "pH2"
      unique_id: ph_orp2
      unit_of_measurement: "pH"
      device_class: ph
      state_class: measurement
      state: "{{ states('sensor.ph_orp') | int(default=7) / 100 }}"

Merci beaucoup, ça devient plus clair pour moi.

Je vais apprendre au fil de l’eau mais c’est vrai que les débuts sont toujours difficile :joy:.

Je mettrais tout ça dans template alors, histoire de faire un truc super propre.
Par ailleurs je peux y mettre n’importe quel type de capteur ?

Herbs, peux tu m’expliquer pour le int défaut =7?

Encore merci, on sens la communauté soudé ça fait plaisir.

Comme a dit @WarC0zes :wink: j’ajouterai juste un « et /ou »

En gros la template est évaluée par rapport à l’état du sensor sensor.ph_orp, si celui-ci n’est pas disponible la valeur par défaut utilisée pour le calcul sera 700 / 100.

C’est un prérequis depuis la v2021.10 de HA.

1 « J'aime »

Excuse moi Herbs, je n’avais tout simplement pas vu ce passage dans le message de WarC0zes.

Je commence à piger la logique.

Mais le plus dur reste à venir. Je dois retranscrire une programmation que j’ai faite sur eedomus dans HA et pour le moment je ne vois absolument pas comment la réaliser :joy:.

Je vous met la PJ de mon automatisation eedomus.



Pour revenir sur le défaut=7

Si toutefois je veux que la dernière valeur mesurée d’un capteur soit affichée sur le capteur si celui-ci passe en indisponible.

Comment pourrais-je écrire cette fonction ?

J’ai lu à priori qu’il faut créer un input ?

Désolé @seyko je n’ai aucune compétence en eedomus :frowning:

Les screens que tu partages sont comme des hiéroglyphes pour moi.

C’est une piste à creuser :wink: si tu ne t’en sors pas n’hésites pas à créer un nouveau topic.

Et un peu de lecture :

En fait ma programmation eedomus est assez simple.
a 20h50 la pompe de piscine s’active, l’eau se brasse et mon capteur de température se stabilise.
a 21h le script lance la pompe, releve la température de mon capteur.
de la il determine le nombres d’heure de filtration par un simple calcul Temp de l’eau * 0.7 = nbr d’heure de filtration.

mais ça a traduire dans HA … j’ai beau lire et chercher des choses qui se rapproche je ne comprend pas ou ne trouve pas :confused:

Pareil ça fait 2h que je cherche comment garder la derniere valeur relevée d’un capteur lorsque celui-ci passe en indisponible. j’ai tenter plusieurs modeles mais aucun resultat probant.

J’ai pas tout lu, mais jette un oeil à ça :

Ça pourrait te servir de base.