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 : 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 lircCode : Tout sélectionner
dtoverlay=lirc-rpiCode : Tout sélectionner
lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17
Code : Tout sélectionner
/usr/local/bin/gpio mode 17 outCode : 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=""Code : Tout sélectionner
sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc startCode : Tout sélectionner
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0Si 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 On relance lirc pour tester
Code : Tout sélectionner
sudo service lirc startCode : Tout sélectionner
irsend send_once NOM_DE_VOTRE_TELECOMMANDE BOUTONPour 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 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¶m=switchlight&idx=66&switchcmd=On" #Commande à exécuter
end
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