j’ai crée une automatisation qui exécute le code suivant toutes le 6 secondes le but étant de rafraichir le « input_number.grid_max_charger_current » à cette fréquence en fonction de ‹ sensor.reseau_enedis › et ‹ sensor.vbat › en bornant la valeur de ‹ input_number.grid_max_charger_current › entre 1 et 60.
Je ne sais pas trop ce que tu as comme format en entrée (int/float ?) et ce que tu veux en sortie (int/float)+ arrondi mais ça fait beaucoup de conversion qui ne sont pas au bon format.
- int(0) ou float(0) c’est la syntaxe fonctionnelle (avec les valeurs par défaut)
En tout cas là il râle justement pas que ça attends un float mais que ça ne retourne pas ça
bien vu effectivement input_number attend un float, c’est dans la doc. j’ai d’abord converti en int la valeur new_value et après je lui ai fais évaluer en float comme suit:
ok je comprend, par contre je suis obligé de les convertir en quelque chose car les states(‹ … ›) retournent des String. j’ai donc pensé à remplacer les |INT par de |FLOAT. Sinon je vois pas comment je peux faire pour avoir le format final 1.0, 2.0 jusqu’à 60.0 attendu par le input_number.grid_max_charger_current ?
voila ce que je veux faire récupérer la partie entière et la convertir en float:
exemple: new_value donne15.1213232, je prend la partie entière 15 et je la convertie en float 15.0
J’ai le bon format pour input_number.grid_max_charger_current mais j’ai toujours la même erreur dans le LOG
j’ai suivi scrupuleusement les conseils j’ai essayer mon code dans la partie développement de HA et mon code fonctionne parfaitement et fonctionne d’ailleurs aussi dans mon automatisme. j’ai bien une valeur en float retournée avec un chiffre après la virgule mais j’ai toujours une erreur dans le LOG lié à l’exécution du code dans mon automatisme.
Auriez vous d’autres conseils ?
Je suis novice dans home assitant et je doit ingurgité beaucoup d’informations. Je vous ai mis le code. Pourriez vous svp corriger la syntaxe car il se peut qu’il y ait des chose que je n’ai pas bien compris lors de nos échanges précédent ? grand merci d’avance pour votre compréhension .
Pas tout a fait, mais tu apprend
c’est pas pour rien qu’il est important de partager le code pour voir et analyser ce qu’il vas pas.
Et pour ton information le | float(0) est équivalent a float(default=0). Ce qui veut dire que si la variable n’est pas initialiser ou consultable à un moment donner (genre ton capteur est hors service) , ça prendre la valeur de 0.