Valeur décimale vers binaire

Bonjour,
Je dispose d’une interface d’entrées/sorties sur réseau Ethernet. Le pilotage ou l’interrogation se fait à l’aide de trame simples à envoyer via Node-Red via TCPout ou TCPrequest.

Le problème vient de la réponse retournée par l’interface pour lire l’état des entrées. Je reçois une trame que j’arriver à traiter afin de n’avoir que l’état des entrées, mais il s’agit d’une chaine de caractères représentant l’octet sous forme décimale. Et en plus, l’état des entrées est inversé (à 1 lorsque l’entrée n’est pas activée).

En gros,

  • Si je reçois 255, cela correspond à un octet 1111 1111 qui correspond à aucune entrée activée …
  • Si je reçois 254, cela correspond à un octet 1111 1110 qui indique que l’entrée 1 (bit de poids faible à droite) est active
  • Si je reçois 191, cela correspond à un octet 1011 1110 qui indique que les entrées 1 et 7 sont actives
  • Etc …

Grace à red-contrib-string-binary-parser, je peux convertir les valeurs décimale en valeurs binaires (msg.payload passe de ‹ 255 › à ‹ 1111 1111 ›).
Ce que je voudrais réaliser, c’est que chaque bit soit affecté à un binary-sensor de home assistant.

Étant complètement novice en Node-red, je sèche, et donc je fais appel à la communauté pour me filer un petit coup de pouce, si possible …

Merci d’avance et n’hésitez pas à me poser des questions si je n’ai pas été assez clair.

A+

Bonjour,

est ce que un simple SPLIT ne pourrait pas résoudre ton problème ?

tu entre un nombre décimal et tu a chaque bit séparé en sortie, tu peut ensuuite en faire ce que tu veux

2 « J'aime »

Bonjour,

Merci pour cette suggestion.
C’est clairement ce qu’il me faut !
J’avoue avoir laissé un peu tomber ce soucis, mais je creuserai à nouveau quand j’aurai un peu plus de temps. Grâce à cette fonction, ça devrait rouler imper :+1:

Merci beaucoup.
A+