Node-red function
Node-red function
Bonsoir,
Je souhaiterais utiliser node-red pour récupérer et envoyer via mqtt la valeur de consommation électrique issue de ma teleinfo wifi.
J'ai bricolé une fonction qui me permet de publier la valeur sur un topic mais elle est au format 00520.
Je souhaiterais supprimer les 00 devant n'avoir que 520.
J'ai bien trouvé des fonctions Java script pour arrondir à x chiffres après la virgule, d'autres pour arrondir à l'entier supérieur mais je ne pense pas que cela fasse l'affaire.
Quelqu'un aurait il une idée ?
Merci d'avance.
Je souhaiterais utiliser node-red pour récupérer et envoyer via mqtt la valeur de consommation électrique issue de ma teleinfo wifi.
J'ai bricolé une fonction qui me permet de publier la valeur sur un topic mais elle est au format 00520.
Je souhaiterais supprimer les 00 devant n'avoir que 520.
J'ai bien trouvé des fonctions Java script pour arrondir à x chiffres après la virgule, d'autres pour arrondir à l'entier supérieur mais je ne pense pas que cela fasse l'affaire.
Quelqu'un aurait il une idée ?
Merci d'avance.
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Node-red function
Salut,
sans connaitre ça sent l'usage de chaîne de caractères au lieu d'entier..
sans connaitre ça sent l'usage de chaîne de caractères au lieu d'entier..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Node-red function
Effectivement c'est une chaîne de caractère et on doit pouvoir faire un truc comme ça :
var bidule = ta_variable.substring(2,5);
var bidule = ta_variable.substring(2,5);
Re: Node-red function
Bonjour,
Merci à vous deux, ça fonctionne
Merci à vous deux, ça fonctionne
Code : Tout sélectionner
msg.topic = "domoticz/out/"+msg.payload.name+"/Energy";
if (msg.payload.idx === 1277)
{
msg.payload = msg.payload.svalue5.substring(2,5)
return msg;
}
Re: Node-red function
En fait ça fonctionne tant que ma conso n'excède pas 999 Watts, au delà ça va tronquer le 1er chiffre non ?filoo a écrit :Effectivement c'est une chaîne de caractère et on doit pouvoir faire un truc comme ça :
var bidule = ta_variable.substring(2,5);
Re: Node-red function
Tu testes ce que tu trouves avant tes 3 dernières lettres et tu passes à : variable.substring(1,5);
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Node-red function
Effectivement,
J'avais une autre approche en tête en parlant d'entiers
C'est la conversion chaîne > entier
Exemple en lua c'est tonumber()
J'avais une autre approche en tête en parlant d'entiers
C'est la conversion chaîne > entier
Exemple en lua c'est tonumber()
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Node-red function
J'ai réussi avec:
Code : Tout sélectionner
msg.payload = Math.round(msg.payload.svalue5)
Re: Node-red function
C'est encore mieux, parfait
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Node-red function
C'est tordu.. Même si ça fait le job, ce n'est pas la bonne façon de le faire.. Math.round sert à arrondir un entier pas à convertir une chaîne en entier.
Alors j'ai pris 10min sur google et je suis tombé là dessus
https://www.google.fr/search?q=nodered+ ... to+integer
Donc regarde plutôt du côté de parseInt() qui doit être l'équivalent de tonumber() en lua et plus encore.
https://www.w3schools.com/jsref/jsref_parseint.asp
Alors j'ai pris 10min sur google et je suis tombé là dessus
https://www.google.fr/search?q=nodered+ ... to+integer
Donc regarde plutôt du côté de parseInt() qui doit être l'équivalent de tonumber() en lua et plus encore.
https://www.w3schools.com/jsref/jsref_parseint.asp
Ce sera certainement meilleur et plus fiableThe parseInt() function parses a string and returns an integer.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien