Probleme avec lirc et pi 4

Bonjour
j’ai acheter plusieurs tsop différent (capteur infrarouge) que j’ai connecté aux pins du PI, je reçoit bien des données via lirc mais toutes les données sont aléatoire, en gros je ne reçoit que du charabia a noté que le capteur fonctionne bien sur une arduino

voila ce que me retourne un cat /dev/lirc0

pouvez vous m’aidez?

hello,

le cat te sort « brutalement » le binaire qu’il reçoit de /dev/lirc0
pour que se soit lisible par un humadoïde, il doit falloir utiliser un programme (ds le paquet lirc ou lirc-x ? ) enfin si j’en crois ce tuto:

Si c’est pour un autre usage il y a moyen de se créer un fichier de config pour lircd avec LIRC - Linux Infrared Remote Control

ça ok mais a chaque appui d’un bouton identique je devrais recevoir la même trame peu importe que ce soit du binaire ou de l’hexadécimal et la ce n’est pas le cas j’ai tenter de faire des enregistrement avec irrecord mais celui m’indique 700byte reçu et impossible d’avoir plusieurs fois la même trame, a noté que le probleme est le même avec le programme ir de jeedom

il y a peut être un paramètre à rajouter ds le fichier /boot/config.txt comme c’est expliqué là:
https://www.instructables.com/Creating-a-Raspberry-Pi-Universal-Remote-With-LIRC/

et ici en cherchant « :dtoverlay=lirc-rpi »

dans cette doc il rajoute « dtparam=gpio_in_pull=down » qui si je me rappelle met les gpio a l’état 0
sans cette initialisation l’état instable pourrait expliquer les sorties aléatoires ( ou pas! ça dépasse mon niveau de compétence ! )

j’ai ajouté le paramètre mais ça ne change rien

une petite info en plus ir-keytable à l’air de bien décoder tandis que lirc ne veux rien savoir idem pour jeedom

j’ai essayé sur un pi4 avec bullseye en 64bit
dans /boot/config.txt:
dtoverlay=gpio-ir,gpio_pin=23
pour recevoir le signal sur le pin gpio23
ensuite j’ai passer le programme :
lirc-make-devinput /usr/include/linux/input-event-codes.h
parce que le fichier /etc/lirc/lircd.conf.d/devinput.lircd.conf peut ne pas correspondre avec le kernel de la machine mais en fait ça a rien changé !

ensuite j’ai créé un conf avec irrrecord que j’ai testé avec lirc-config-tool mais malgré 0 erreur ça marche toujours pas !

avant de jeter le bouzin j’ai installé ir-keytable (merci pour l’info :wink: ) un module python evdev, bidouillé un petit programme python et la effectivement ça fonctionne presque sans problème ! il reste la répétition des touches trop rapide !

#!/usr/bin/python3
import subprocess
# apparementt il faut lancer d'abord ir-keytable
print(subprocess.run("sudo ir-keytable -c -p all", shell=True))


from evdev import InputDevice

irr = InputDevice('/dev/input/event0')

print("Press remote IR buttons, Ctrl-C to quit")

for event in irr.read_loop():
   if event.type == 4:
      try:
         if event.value == 22:
            print("button pressed:  0")
         elif event.value == 12:
            print("button pressed:  1")
         elif event.value == 24:
            print("button pressed:  2")
         elif event.value == 94:
            print("button pressed:  3")
# avec la touche "st" code 13 on lance apt update ! why not !
         elif event.value == 13:
            print("button pressed:  st")
            print(subprocess.run("sudo apt update", shell=True))
         else:
            print("button unknown!")
         print(event)
      except:
         print("Problem with button press...")

j"ai trouvé ça ici:
https://www.sigmdel.ca/michel/ha/opi/ir_02_fr.html