2026/06/21

ESP32 S2 Mini + TSOP38238





최근 esphome에 적용된 적외선 수신기(TSOP38238)를 s2 mini에 설치하고 사용하지 않는 리모콘의 각 버튼들을 HA의 각 기능들에 할당. nec 리모콘에 33가지 무선 씬버튼은 만들었는데 각 버튼에 어떤기능을 넣었는지 외우는게 문제.

집안에 설치된 ble gateway에 적외선 수신기를 모두 달고 리모콘을 무선버튼으로 활용하는 것도 괜찮을듯.


ESPHome: ir-be.yaml

substitutions:
  name: ir-be
  area: Bedroom
substitutions:
  name: ir-be
  area: Bedroom
esphome:
  name: ${name}
  area: ${area}
  comment: Sensor IR(B)
esp32:
  board: lolin_s2_mini
  variant: esp32s2
  framework:
    type: esp-idf
wifi:
  ssid: !secret wifi_ssid2
  password: !secret wifi_password
  min_auth_mode: WPA2
  ap:
    ssid: "${name} hotspot"
    password: !secret wifi_password
captive_portal:
logger:
api:
ota:
  - platform: esphome
    password: !secret ota_password

remote_receiver:
  pin:
    number: 16
    inverted: true
    mode:
      input: true
      pullup: true
  on_nec:
    then:
      - homeassistant.event:
          event: esphome.ir_remote
          data:
            address: !lambda 'return (int)x.address;'
            command: !lambda 'return (int)x.command;'



Home Assistant: automations.yaml

- id: IR-Nec
  alias: IR-Nec
  mode: single
  triggers:
    - trigger: event
      event_type: esphome.ir_remote
  variables:
    ir:
      power1: '48960'
      power2: '3825'
      source: '3570'
      mute: '3315'
      vol_down1: '3060'
      vol_up1: '2805'
      rew: '46155'
      ff: '45135'
      led: '61455'
      kd: '48195'
      vol_up2: '59160'
      vol_down2: '61200'
      home: '60945'
      back: '58905'
      exit: '45900'
      menu: '65280'
      up: '59670'
      down: '58650'
      left: '44625'
      right: '44880'
      ok: '60435'
      one: '45930'
      two: '61965'
      three: '62220'
      four: '46410'
      five: '62985'
      six: '63240'
      seven: '47430'
      eight: '64005'
      nine: '64260'
      zero: '65025'
      lang: '48705'
      del: '48450'
  actions:
    - choose:
        - conditions:
            - "{{ trigger.event.data.command == ir.power1 }}"
          sequence:
            - action: light.toggle
              entity_id: light.bedroom_mood
        - conditions:
            - "{{ trigger.event.data.command == ir.power2 }}"
          sequence:
            - action: light.toggle
              entity_id: light.bedroom_mood2