Passerelle Infrarouge

Forum pour tous les autres protocoles : Enocean, X10, les cartes piface.razberry ...
Pour les questions concernant le choix de protocoles, merci d'utiliser le forum Les autres objets.
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Passerelle Infrarouge

Message par Neutrino »

Bonjour à tous,
Ayant pas mal de périphériques pilotés par télécommandes IR, je me devais de les intégrer dans Domoticz.
Domoticz est en fait mon lien multi-protocoles Wifi-RF433-IR-1wire...
Le lien suivant m'a bien aidé : http://alexba.in/blog/2013/01/06/settin ... spberrypi/
J'ai commandé le matériel ici :
http://snootlab.com/composants/131-kit- ... on-ir.html
Il faut aussi un transistor NPN. C'est pas obligatoire, mais ça améliore vraiment la portée du signal.
Attention au câblage du récepteur, il diffère suivant les références.
D'abord, le montage :
Montage Emetteur récepteur IR
Montage Emetteur récepteur IR
Montage IR_bb.jpg (37.64 Kio) Consulté 21739 fois
Vous pouvez rajouter plusieurs LED IR en séries ou en parallèle. Perso, j'ai de meilleur résultat en parallèle.

Maintenant, le côté PI :
On commence par installer LIRC, c'est ce qui va nous permettre de recevoir et d'emmettre les trames IR.

Code : Tout sélectionner

sudo apt-get install lirc
Dans le fichier /boot/config.txt

Code : Tout sélectionner

dtoverlay=lirc-rpi
Dans /etc/modules

Code : Tout sélectionner

lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17
J'ai ajouté aussi dans le fichier /etc/init.d/domoticz.sh

Code : Tout sélectionner

/usr/local/bin/gpio mode 17 out
Editez ensuite /etc/lirc/hardware.conf pour qu'il ressemble à ceci:

Code : Tout sélectionner

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false

# Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
On redémarre lirc:

Code : Tout sélectionner

sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start
Testez avec ça :

Code : Tout sélectionner

sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0
Et appuyer sur un bouton de votre télécommande, des trames doivent s'afficher.
Si c'est le cas, bravo, votre Pi reçoit bien les infos.

Pour enregistrer une télécommande :

Code : Tout sélectionner

sudo /etc/init.d/lirc stop
irrecord -d /dev/lirc0 lircd.conf 
Vous pouvez ensuite fusionner ce fichier au fichier lircd.conf se trouvant dans /etc/lirc/ pour utiliser les touches de votre télécommande.

On relance lirc pour tester

Code : Tout sélectionner

sudo service lirc start
Ensuite un petit

Code : Tout sélectionner

irsend send_once NOM_DE_VOTRE_TELECOMMANDE BOUTON
simule l'appuie sur une touche.


Pour faciliter le pilotage dans Domoticz, j'ai écrit un script bash par télécommande.
Exemple pour mon aspirateur :
/home/pi/domoticz/scripts/hombot.sh

Code : Tout sélectionner

#!/bin/sh
# Envoie via IR des ordres à l'aspirateur


case $1 in 
	go) #lance l'aspirateur 
		irsend SEND_ONCE hombot BTN_START
		;; 
	pause)#stope l'aspirateur
		irsend SEND_ONCE hombot KEY_STOP
		;;
	home)#renvoie l'aspirateur à sa base
		irsend SEND_ONCE hombot KEY_HOME
		;;
	
esac 
Ainsi dans domoticz, je configure un interrupteur On/Off Dummy comme ça :
Config switch Hombot
Config switch Hombot
Capture.PNG (37.02 Kio) Consulté 21739 fois
Je peux ainsi le lancer à distance.

Maintenant on souhaite lire les télécommandes que l'on a enregistrées.
C'est simple, il suffit de modifier le fichier /etc/lirc/lircrc
Exemple :

Code : Tout sélectionner

begin
	remote = samsung 	#nom de votre telecommande dans le fichier lircd.conf
        button = KEY_RED 	#nom du bouton appuyé
        prog = irexec		
	config = curl -s "http://192.168.15.20/json.htm?type=command&param=switchlight&idx=66&switchcmd=On" #Commande à exécuter
end
Félicitations !!!! Vous n'avez plus besoin de votre télécommande :mrgreen:
Perso, j'utilise les boutons de couleurs sur la télécommande de ma TV pour ouvrir ou fermer mes volets et allumer la lumière du salon (très bon WAF ;) )

Exemple de mon fichier lircd.conf

Code : Tout sélectionner

#
# this config file was automatically generated
# using lirc-0.8.3(default) on Mon Feb 16 15:20:58 2009
#
# contributed by
#
# brand:                       Samsung
# model no. of remote control: BN59-00507A
# devices being controlled by this remote:
# Samsung LE32R27B  32" LCD Television

begin remote

  name  samsung
  bits           16
  flags SPACE_ENC
  eps            30
  aeps          100

  header       4465  4528
  one           555  1665
  zero          555   569
  ptrail        550
  pre_data_bits   16
  pre_data       0xE0E0
  gap          47048
  toggle_bit_mask 0x0

      begin codes
          KEY_POWER                0x40BF                    #  Was: POWER
          KEY_CYCLEWINDOWS         0x807F                    #  Was: SOURCE
          KEY_1                    0x20DF                    #  Was: 1
          KEY_2                    0xA05F                    #  Was: 2
          KEY_3                    0x609F                    #  Was: 3
          KEY_4                    0x10EF                    #  Was: 4
          KEY_5                    0x906F                    #  Was: 5
          KEY_6                    0x50AF                    #  Was: 6
          KEY_7                    0x30CF                    #  Was: 7
          KEY_8                    0xB04F                    #  Was: 8
          KEY_9                    0x708F                    #  Was: 9
          KEY_0                    0x8877                    #  Was: 0
          KEY_TV                   0xD827                    #  Was: TV
          CHMGR                    0xD629
          KEY_SLEEP                0xC03F                    #  Was: SLEEP
          KEY_PC                   0x9669                    #  Was: PC
          KEY_VOLUMEUP             0xE01F                    #  Was: VOL+
          KEY_VOLUMEDOWN           0xD02F                    #  Was: VOL-
          KEY_CHANNELUP            0x48B7                    #  Was: CH+
          KEY_CHANNELDOWN          0x08F7                    #  Was: CH-
          KEY_EXIT                 0xB44B                    #  Was: EXIT
          KEY_MUTE                 0xF00F                    #  Was: MUTE
          KEY_MENU                 0x58A7                    #  Was: MENU
          KEY_UP                   0x06F9                    #  Was: UP
          KEY_DOWN                 0x8679                    #  Was: DOWN
          KEY_LEFT                 0xA659                    #  Was: LEFT
          KEY_RIGHT                0x46B9                    #  Was: RIGHT
          KEY_ENTER                0x16E9                    #  Was: ENTER
          KEY_RED                  0x36C9                    #  Was: RED
          KEY_GREEN                0x28D7                    #  Was: GREEN
          KEY_YELLOW               0xA857                    #  Was: YELLOW
          KEY_BLUE                 0x6897                    #  Was: BLUE
          KEY_INFO                 0xF807                    #  Was: INFO
          KEY_TEXT                 0x34CB                    #  Was: TXT
                  HDMI3                                    0x43BC
                  SMODE                                    0xD42B
                  KEY_ESAVING              0xEE11
      end codes

end remote

begin remote

  name  hombot
  bits            8
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  one           590  1416
  zero          590   412
  ptrail        591
  post_data_bits  4
  post_data      0x3
  gap          35032
  min_repeat      1
#  suppress_repeat 1
#  uncomment to suppress unwanted repeats
  toggle_bit_mask 0x0

      begin codes
          BTN_START                0xB4
          KEY_HOME                 0xD2
          KEY_STOP                 0xE1
          KEY_UP                   0x78
          KEY_DOWN                 0x96
          KEY_LEFT                 0x3C
          KEY_RIGHT                0x5A
          KEY_DOT                  0x693
          KEY_TIME                 0xA53
          KEY_Z                    0x873
          KEY_C                    0x2D3
      end codes

end remote

begin remote

  name  zotac
  bits           13
  flags RC6|CONST_LENGTH
  eps            30
  aeps          100

  header       2670   875
  one           452   433
  zero          452   433
  pre_data_bits   24
  pre_data       0x1BFE5B
  gap          106667
  toggle_bit_mask 0x8000
  rc6_mask    0x100000000

      begin codes
          BTN_START                0x1BA2
          KEY_PLAY                 0x1BD3
          KEY_STOP                 0x1BCE
          KEY_OK                   0x1BA3
                  KEY_UP                   0x1BA7                    #  Was: up
          KEY_DOWN                 0x1BA6                    #  Was: down
          KEY_LEFT                 0x1BA5                    #  Was: left
          KEY_RIGHT                0x1BA4                    #  Was: right
                  KEY_ESC                  0x1B7C
                  KEY_0                    0x1BFF
                  KEY_1                    0x1BFE                    #  Was: 1
          KEY_2                    0x1BFD                    #  Was: 2
          KEY_3                    0x1BFC                    #  Was: 3
          KEY_4                    0x1BFB                    #  Was: 4
          KEY_5                    0x1BFA                    #  Was: 5
          KEY_6                    0x1BF9                    #  Was: 6
          KEY_7                    0x1BF8                    #  Was: 7
          KEY_8                    0x1BF7                    #  Was: 8
          KEY_9                    0x1BF6                    #  Was: 9
                  key_red                  0x1b92
          key_green                0x1b91
          key_yellow               0x1b90
          key_blue                 0x1b8f
      end codes

end remote


begin remote
    name        freebox
    bits        20
    flags       RCMM|CONST_LENGTH
    eps         2
    aeps        100

    header      417     278
    three       167     778
    two         167     611
    one         167     444
    zero        167     278
    ptrail      167
    gap         100817

    pre_data_bits       12
    pre_data            0x240
    toggle_bit_mask     0x8000

    begin codes
          KEY_0                    0x02600                   #  Was: 0
          KEY_1                    0x02601                   #  Was: 1
          KEY_2                    0x02602                   #  Was: 2
          KEY_3                    0x02603                   #  Was: 3
          KEY_4                    0x02604                   #  Was: 4
          KEY_5                    0x02605                   #  Was: 5
          KEY_6                    0x02606                   #  Was: 6
          KEY_7                    0x02607                   #  Was: 7
          KEY_8                    0x02608                   #  Was: 8
          KEY_9                    0x02609                   #  Was: 9
          KEY_ENTER                0x0260A                   #  Was: return
          KEY_POWER                0x0260C                   #  Was: power
          KEY_MUTE                 0x0260D                   #  Was: mute
          KEY_INFO                 0x0260F                   #  Was: info
          KEY_VOLUMEUP             0x02610                   #  Was: vol+
          KEY_VOLUMEDOWN           0x02611                   #  Was: vol-
          KEY_CHANNELUP            0x02620                   #  Was: ch+
          KEY_CHANNELDOWN          0x02621                   #  Was: ch-
          KEY_FORWARD              0x0262E                   #  Was: forward
          KEY_BACK                 0x0262F                   #  Was: back
          KEY_STOP                 0x02631                   #  Was: stop
          KEY_RECORD               0x02637                   #  Was: record
          KEY_NEXT                 0x0264C                   #  Was: next
          KEY_PREVIOUS             0x0264D                   #  Was: previous
          KEY_UP                   0x02658                   #  Was: up
          KEY_DOWN                 0x02659                   #  Was: down
          KEY_LEFT                 0x0265A                   #  Was: left
          KEY_RIGHT                0x0265B                   #  Was: right
          KEY_OK                   0x0265C                   #  Was: ok
          KEY_ESC                  0x0269E                   #  Was: escape
          KEY_PLAY                 0x026B8                   #  Was: play
          KEY_LIST                 0x026CC                   #  Was: list
        screen          0x026CD
        free            0x026D7
          KEY_TV                   0x026F2                   #  Was: tv
        envelope        0x026F3

          KEY_PLAY                 0xC0001                   #  Was: start
          KEY_SELECT               0xC0002                   #  Was: select
        bleft           0xC0020
        bright          0xC0040
          KEY_YELLOW               0xC0080                   #  Was: yellow
          KEY_BLUE                 0xC0100                   #  Was: blue
          KEY_RED                  0xC0200                   #  Was: red
          KEY_GREEN                0xC0400                   #  Was: green
        jleft           0xC0800
        jdown           0xC1000
        jright          0xC2000
        jup             0xC4000
    end codes
end remote
Dernière modification par Neutrino le 24 déc. 2017, 12:10, modifié 2 fois.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
atlantis007
Messages : 65
Inscription : 11 janv. 2015, 22:31
Localisation : biarritz (64)

Re: Passerelle IR

Message par atlantis007 »

bonjour a toi
je suis intéressé par ton montage car je désire commande une clim hitachi

j ai commander les composant sur le site mais tu parle d un transistor NPN quel référence utilise tu merci ;)
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Passerelle IR

Message par Neutrino »

Le transistor, c'est un C33725.
Je n'en sais malheureusement pas plus, en fait je l'ai récupéré sur une ancienne télécommande HS.
Pour ta clim, regarde ici : http://prograclim.blogspot.fr/2014/02/m ... e-lir.html
Je ne sais pas ce que ça vaut, mais ça peut marcher :)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Passerelle IR

Message par deennoo »

Neutrino mon lapin, j'ai besoin de faire la même chose mais depuis un rpi2 qui fonctionne sous openelec.

J'ai mon beau fichier lircd.conf avec mes boutons pour Kodi et les 5 pour domoticz.
La parti kodi OK pas de problème.

Pour l'envoie a domoticz par contre...je n'ai pas de fichier /etc/lirc/lircrrc, tu l'a créé ou bien ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Passerelle IR

Message par Neutrino »

Mon lapin ! :mrgreen: :mrgreen:
Oui, j'ai bien créé le fichier /etc/lirc/lircrc
Une fois le fichier créé modifié, il faut redémarrer lirc pour la prise en compte.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Passerelle IR

Message par deennoo »

C'est bientot Pâques...

OK j'ai bien fait pareil sauf que pour openelec il semble falloir le mettre dans /storage/.config

Mais cela ne fonctionnait pas, je vais creuser.

Encore merci pour ton tuto
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Passerelle IR

Message par Neutrino »

Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Passerelle IR

Message par deennoo »

Merci Coco mais j'avais aussi vu cela, impossible de le faire fonctionner avec openelec 6.0.1....(franchement c'est trés galere toutes ces versions, les wiki pas a jours, ou trop personnalisé ou trop generique, je ne m'en sort pas)

Du coup je vais faire a la "normal", sous jessis, et la miracle tous fonctionne nickel.

Dans ton fichier de config de telecommande, je vois une partie Freebox Player, tu la pilote aussi avec irexec ?

Dans la partie IREXEC dans l'adresse de ton PI de domoticz tu ne specifie pas le port, c'est normal ?

Encore merci pour ton tuto, parce qu'il est rapide et efficace.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Passerelle IR

Message par Neutrino »

Dans ton fichier de config de telecommande, je vois une partie Freebox Player, tu la pilote aussi avec irexec ?
J'ai toujours ma bonne vielle V5.
Je la pilote via l'API HTTP, mais on ne sais jamais, un jour j'aurais peut-être besoin de la piloter via infrarouge ou bien de détecter un appui sur un bouton de sa télécommande.
Dans la partie IREXEC dans l'adresse de ton PI de domoticz tu ne specifie pas le port, c'est normal ?
Oui, chez moi domoticz tourne sur le port 80, du coup j'oublie de le spécifier dans les scripts. :?
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Passerelle IR

Message par deennoo »

Et avec l'API c'est assez rapide ?

Pour l'histoire ce weekend j'ai eu un dongle IR pour mon freeplayer, mais j'ai du lui ajouter une télécommande harmony, ce qui fait chère et que je ne trouve pas a mon goût.

Pour l'histoire bis, je n'utilise que des télécommande universel avec apprentissage philips, c'est fiable, économe en pile, et l'ergonomie me convient.


Pour tester j'ai essayer d'envoyer les commande ir freeplayer de L'harmony a une télécommande lidl a 6€, et elle les apprends très bien (mieux qu'une Philips), mais elle aussi (la lidl) ne me plait pas.

Si grâce a l'API freebox, c'est aussi rapide qu'en IR, adieu la lidl, adieu l'harmony, adieu dongle USB IR, rebonjour mes Philips adorées (le waf coter télécommande commence a s'impatienter de stabilité)
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Répondre