Node Red - Injecter une donnée dans une entitée

Bonjour à tous les node redeur :slight_smile:

alors voilà, j’ai une entitée, j’exporte sa valeur dans un noeud ‹ file › en indiquant l’emplacement de stockage du fichier :

et ça fonctionne , il m’exporte bien la valeur de l’entité dans mon .txt :

image

Je souhaiterai donc simplement injecter cette valeur dans le fichier txt dans une entitée :

je pensais qu’utiliser ‹ file › et ‹ file in › suffirait mais apparemment ‹ file in › n’est pas aussi simple a utiliser…

une idée ??

rappel simple du process :
une valeur d’entité > dans un fichier puis le précédent fichier > alimente la valeur d’une entité

j’espere que c’est pas trop incompréhensible lol

Je vois deux possibilités:

  • le chemin n’est pas le même. Avec docker (je suppose que c’est ce que tu as), le chemin du fichier se réfère au container et pas à ton système de fichier
  • ou, plus probable, tu lis un payload dans le fichier qui est une « string » et tu envoies ça dans le noeud qui attend un « float ». Et donc, il se passe un truc bizarre. Un petit coup de jsonata avec $number(payload) ??

Et la raison de tout ça ?

:thinking:

merci pour ta reponse @golfvert :slight_smile:

  • alors pour le chemin, je ne devrais pas avoir trop de doute, je suis en effet sur docker mais dans le 3eme impr ecran du premier post, le debug du « file in » (numeroté en 1 rouge, m’indique la bonne lecture du fichier txt, donc j’en concluerais que le chemin est bon non?)
  • quand tu me parles de string, de float et de $number je suis perdu lol

me doutais que toi aussi tu n’étais pas loin :wink: :smiling_face_with_three_hearts:

toujours en lien avec : L’etat d’un sensor doit etre renvoyé vers plusieurs sensors - Entraide Home Assistant - Home Assistant Communauté Francophone (hacf.fr)

l’état de mes filaments,input_number.filament_noir_restant par exemple revient à zero lors d’un redemarrage d’HA : pour garder la valeur pré reboot d’HA de cette entitée et/est de sauvegarder cette valeur dans un fichier (.txt?) pour qu’apres le reboot d’HA, j’alimente de nouveau la valeur du input_number.filament_noir_restant avec son état précédent (valeur de son état avant le reboot)

C’est la différence entre « 191.0 » et 191.0 !!
Pour « nous » c’est pareil, pour un ordinateur bas du front « 191.0 » c’est une string comme « abcde » alors que 191.0 c’est un nombre. Et donc, ça le chagrine.

Dans l’appel ou tu veux écrire 191.0 dans l’input number, si le payload est « 191.0 » il faut changer le type en utilisant la fonction jsonata $number qui change « 191.0 » en 191.0. Voir Numeric functions · JSONata

Ce n’est pas normal… Les entités du domaine input_* sont conservées après redémarrage…

Fais voir leur définition… :innocent:

Dés fois que la clé initial traîne dedans… :innocent:

  filament_noir_restant:
   initial: 0
   min: 0
   max: 330

initial: 0 doit vouloir dire que ca repars à zéro suite au reboot j’imagine ?? :thinking: :woozy_face: c’est ca?
Il faudrait alors que le ‹ initial: xxxx › soit remplacé par la valeur d’avant le reboot d’HA
il suffirait de de supprimer la ligne? cela me parait trop simple :roll_eyes:

La documentation nous dit que cette clé est optionnelle…

Que si tu ne la mets pas, l’état reste celui à l’extinction…

Donc oui, tu l’enlèves…

Depuis quand Home Assistant est compliqué ?

je n’avais pas compris ton allergie à la documentation

:smirk:

@Clemalex je la sentais que ma question allait etre concon ^^
trop synchro,
j’ai pensé à cela y a 5 minutes…je vais faire les J.O. de la honte à ce rythme … merci à ta patience LOL

@golfvert va falloir qu’on revoit ca, tu es plein de ressources node red :slight_smile: merci beaucoup pour ton aide

Est-ce que tu vas continuer de voir ce qui n’allait pas quand même ? Car ça peut être intéressant pour vous. Sinon il faut que tu choisisses une solution.

oh oui ! je pense bien revoir ca avec @golfvert :slight_smile: c’est une fonction toute bete sur NR qui est bien utile (texte, audio, snapshot photo, video…)

je fais le lien avec avec le post L’etat d’un sensor doit etre renvoyé vers plusieurs sensors - Entraide Home Assistant - Home Assistant Communauté Francophone (hacf.fr)

1 « J'aime »

Un exemple tout bête:

[{"id":"d5faf9af.a17bc8","type":"inject","z":"d59703d6.87ebf","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"190","payloadType":"str","x":260,"y":4580,"wires":[["bff48030.70dff","d21206ed.fd8f28"]]},{"id":"bff48030.70dff","type":"debug","z":"d59703d6.87ebf","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":510,"y":4580,"wires":[]},{"id":"d21206ed.fd8f28","type":"debug","z":"d59703d6.87ebf","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"$number(payload)","targetType":"jsonata","statusVal":"","statusType":"auto","x":500,"y":4640,"wires":[]}]

Et dans le debug:

Screenshot 2021-04-15 at 18.15.54

Pour en revenir au problème de base (qui n’en est pas un du coup quand on déclare correctement les entrées :wink:), au lieu de partir sur l’écriture d’un fichier, je partirais plus sur la publication vers un topic mqtt…

Allez je sors. :innocent: