Bonjour,
je débute sous HA, et comme premier Projet je souhaiterais pouvoir régler mon chauffage a distance. le thermostat étant très ancien, je n’ai pas la possibilité de le remplacer par un nouveau, d’où l’idée de l’asservir via un servomoteur.
j’ai donc écris un petit bout de code sous esphome, mais je suis un peu déconcerter par la programmation.
après beaucoup essais je suis arrivé, a une solution.
mais je bloque sur un problème :
lorsque je règle la T° (consigne_T) , je mets en forme la consigne a envoyer au servomoteur (Consigne_servo) ensuite elle est envoyée au servo moteur via update_interval: 10s .
j’aimerais supprimer ce temps et l’exécuter une seule fois quand la consigne de T° change.
je pense qu’il faut utiliser un on_value: then:
mais je ne sais pas ou le mettre ou peut être une commande plus approprier ?
j’ai tester plein de solution mais je coince
voici le programme
Et pour répondre en partie à la question, c’est clair que de refaire le calcul toutes les 10s pour une action qui doit être utilisée 2 fois par jour et encore, c’est pas top…
Il faut revoir en utilisant un évènement « on_value » sur la consigne.
Ca devrait marcher.
En plus je ne sais pas si c’est vraiment nécessaire d’avoir un sensor Consign_servo, tou devrait pouvoir se faire directement dans l’action du changement de consigne.
je n’ai pas tout mis. Mais a chaque fois, je n’optenais que 3 positions
-90° → consigne -1
- 0° → consigne 0
90° → consigne 1
bref j’avais l’impression que le chiffre après la virgule n’était pas pris en compte dans la consigne.
en décortiquant ligne par ligne voici la solution que j’ai trouvé (je ne comprend pas trop pourquoi) , mais elle fonctionne.
le fait de mettre cons_servo = id(Consigne_T).state;dans une variable a resolu le problème.
voici le programme.
bonjour Alex,
j’avais fait plein essais et c’était copier/merder d’un des essais.
j’ai recommencé pour être sur. dés que je mets le map dans le return ,
ça plante
les essais
Ouais effectivement alors c’est ptet un souci de type de données, en C, map retourne un type LONG… ptet que c’est ça qu’il n’aile pas… et quand tu le colle dans un FLOAT, là ça passe… mais effectivement pas certain…