알리산 1달러 리모컨과 그 열배 가격의 LG 정품 리모컨.
알리산 리모컨은 배치가 환상적이라 조작감이 좋고 버튼은 딱딱하고 끊어짐이 분명해 사용감이 그런대로 괜찮음. 리모컨의 적외선 LED를 정면은 물론 아랫면도 움푹 패이게 개방해둬서 리모컨을 든 방향에 상관없이 인식률이 높음. 가끔 저가형이라 그런지 리모컨치고 먹통현상이 벌어져 건전지를 뺐다 끼워야 돌아오는 경우가 있음.
알리산 리모컨의 먹통현상때문에 구매한 LG정품 리모컨. 버튼은 눈으로 보지 않은채 조작은 힘들게 배치해놨고 버튼 눌림은 부드러운데 뭔가 아쉬움. 버튼수가 많아 알리산에서 쓴 롱버튼 눌림 조건을 제거하고 각 버튼에 기능을 재배치.
ESPHome IR 리시버는 공중파 TV나 구글TV를 조작하거나 TV를 보면서 다른 iot장치를 조작하기에 가장 이상적인 시스템이라 생각.
automations.yaml
- id: IR-LG/침실
alias: IR-LG/침실
mode: queued
triggers:
- trigger: event
event_type: esphome.ir_remote
event_data:
area: bedroom
protocol: lg
address: "8415"
variables:
ir: { power1: 4335, power2: 53295,
input1: 21930, input2: 40035, input3: 40545, input4: 49725,
one: 34935, two: 18615, three: 51255,
four: 10455, five: 43095, six: 26775,
seven: 59415, eight: 6375, nine: 39015,
zero: 2295, lang: 54570, del: 27030,
vol_up: 16575, vol_dn: 49215, ch_up: 255, ch_dn: 32895,
mute: 36975, find: 7905, input: 6120,
oem1: 27285, oem2: 16065, oem3: 15045,
menu1: 35955, menu2: 37740, menu3: 5355, menu4: 55845,
up: 765, down: 33405, left: 57375, right: 24735, ok: 8925,
rec1: 51765, rec2: 48450, rec3: 36210,
media1: 61710, media2: 3570, media3: 23970, media4: 29070,
func1: 20145, func2: 36465, func3: 50745, func4: 34425 }
cmd: "{{ trigger.event.data.command }}"
esphome.yaml
remote_receiver:
dump: all
pin:
number: 16
inverted: true
mode:
input: true
pullup: true
on_pronto:
then:
- if:
condition:
lambda: 'return ++id(repeat_count) == 4;'
then:
- homeassistant.event:
event: esphome.ir_remote
data:
protocol: nec
area: bedroom
address: !lambda 'return id(last_nec_address);'
command: !lambda 'return id(last_nec_command);'
long: 'true'
on_nec:
then:
- lambda: |-
id(last_nec_address) = x.address;
id(last_nec_command) = x.command;
id(repeat_count) = 0;
- homeassistant.event:
event: esphome.ir_remote
data:
protocol: nec
area: bedroom
address: !lambda 'return x.address;'
command: !lambda 'return x.command;'
long: 'false'
on_lg:
then:
- homeassistant.event:
event: esphome.ir_remote
data:
protocol: lg
area: bedroom
address: !lambda 'return (uint16_t)(x.data >> 16);'
command: !lambda 'return (uint16_t)(x.data & 0xFFFF);'
** 확실히 리모컨이 다양한 기기를 한번에 중앙에서 조작하기 편해 무선버튼의 사용량이 확 줄어듬.
** LG리모컨은 NEC호환코드도 동시 전송해 on_lg뿐만 아니라 on_nec로 코드 작성해도 됨.
** ir신호는 로그를 켜놓고 모든 버튼을 한번씩 누른 후 전체를 클로드로 넘겨 리스트를 만드는게 제일 편함.
** 적외선 수신기 tsop38238: https://ntxlds.blogspot.com/2026/06/esp32-s2-mini-tsop38238.html
