En utilisant la calculatrice Windows (ou une autre) en mode programmeur, pour comprendre il faut saisir 1 en binaire, contrôler la valeur hexadécimale et rajouter des 0 à la valeur binaire.
Un bit correspond à un relais.
Par contre les valeurs A, C et F ne sont pas logiques :
- 0x1 = 0000 0001
- 0x2 = 0000 0010
- 0x4 = 0000 0100
- 0x8 = 0000 1000
- 0xF0 = 1111 0000
- 0xA0 = 1010 0000
- 0xC0 = 1100 0000
- 0x80 = 1000 0000
Jusqu’ à 0x8, le 1 est décallé du bit de poids faible vers le bi de poids fort, du relais 1 vers le relais 4, un bit correspond à un relais. Après ça se gâte…Le relais 8 est de nouveau OK.
Vous êtes certain que les relais 8 n’était pas enclanché pour tester les relais 6 et 7 ? Idem lors du test du relais 5, les relais 6, 7 et 8 n’étaient pas enclanchés ?
Plus loin dans le log, il y a une ligne qui montre comment les bits sont interprétés :
[2025-05-12 10:45:05][DEBUG] : decoded PDU function_code(1 sub -1) -> ReadCoilsResponse(dev_id=0, transaction_id=0, address=0, count=0, bits=[False, False, False, False, False, False, False, False], registers=[], status=1)
Cette ligne est utile pour être sûr que ce soit bien interprété. Ici il n’y a que des False, ce ne sont donc que des 0, par contre l’ordre est inversé (normalement, mais j’ai vu passé un changelog qui parlait de corriger ce point erroné) 0001 0000 correspond à bits=[False, False, False, False, True, False, False, False],. C’est une histoire d’interprétation, mais c’est juste.