몇 년 전 "에어컨 복합콘덴서 6/45 370 400VAC"를 직접 교체 수리하고 아직 쌩쌩하다보니 2004년 정속형 에어컨이지만 잘 사용 중입니다.
제 집이면 적당한 온도로 주욱~ 틀어 놓겠지만 부모님께서 전기요금을 걱정하시는터라 최소한으로만 작동하고 싶었고, 특히 냄새 저감을 위해 송풍모드로 잠시 돌린 후에 자동으로 꺼지게 하고 싶었습니다. 제습 중에 바로 전원을 끄니까 그 다음에 켤 때 테러를 몇 번 당했습니다...
일단 에어컨 자동 조작을 위해 몇 년 전에 사 놓았던 Tuya IR 리모콘이 있었는데 Smart Life앱으로는 잘 제어되지만, 홈어시스턴트에서는 미지원기기로 나오고 시나리오로 만들어도 잘 되지 않았습니다.
찾아보니 인터넷에 Tuya IR 리모콘을 개조한 사례가 있어서 ESPHome을 올려 보려고 했더니 제가 갖고 있던 것은 개조가 용이한 ESP8266기반이 아니었습니다(Tuya IR 리모콘이 ESP8266을 쓰던 때도 있었지만 지금은 거의 찾기 힘들었습니다).
결국 갖고 있던 D1 mini보드와 YWROBOT IR Receiver/Transmitter 부품들로 대충 만들었습니다.
Tuya IR 리모콘과 달리 2미터 이내에서만 작동이 되는데 전원 공급도 해결하고, 실외기 작동을 광센서로 체크해볼까 해서 에어컨 본체에 붙이게 되었습니다(구입한 광센서가 아주 강한 빛에만 반응 + 온도를 높여서 송풍하면 실외기는 자동으로 꺼지므로).
다행히 ESPHome에서 ESP8266과 IR 조합의 YAML은 이미 알리발 적외선 리모콘을 개조한 분들이 올린 글에 다 나와 있어서 거의 그대로 갖다가 쓸 수 있었습니다.
YAML의 내용의 일부는 아래와 같이 했습니다.
# D1 remote_receiver: pin: number: GPIO5 inverted: true mode: INPUT_PULLUP tolerance: 55% dump: lg #lg, all, raw # D5 remote_transmitter: pin: GPIO14 # Infrared remotes use a 50% carrier signal carrier_duty_percent: 50% # D2 output: - platform: esp8266_pwm id: esphome_ir1_led pin: number: GPIO4 inverted: false # 자동화 작동 중에 On light: - platform: monochromatic name: "White LED" output: esphome_ir1_led id: light_led # 외부의 Xiaomi 온도계 이용 sensor: - platform: homeassistant entity_id: sensor.a4c1383321fe_temperature id: room_temperature climate: - platform: climate_ir_lg name: "Living Room AC" sensor: room_temperature switch: - platform: template name: Raw_0 Power turn_on_action: - remote_transmitter.transmit_raw: carrier_frequency: 38kHz code: [9039, -4416, 627, -531, 599, -1620, 627, -1620, 626, -530, 599, -531, 599, -531, 598, -533, 595, -1628, 618, -536, 593, -1652, 594, -1653, 594, -538, 592, -1653, 594, -536, 594, -1652, 595, -536, 593, -1653, 594, -537, 594, -536, 593, -537, 593, -537, 593, -537, 593, -537, 593, -1653, 594, -537, 593, -1653, 594, -1653, 594, -1652, 594, -1653, 594, -1654, 593, -1653, 594, -537, 593]
(전체 내용은 https://github.com/sevengivings/irremocon 참조)
리모콘 내용을 학습해서 이용하기 위해 갖고 있던 에어컨 리모콘의 내용을 IR 수신기로 받아서(dump: raw) 위 코드 아래쪽과 같이 code: [ ]에 기록한 후에 보내면(remote_transmitter.transmit_raw: ) 잘 작동 되었습니다. dump: lg로 하고 remote_transmitter.transmit_lg:로 해도 설명서에 의하면 작동되어야 하는데 일단 안되었습니다.
이제 홈어시스턴트에서 자동화를 해야 하는데 이렇게 만들어 보았습니다.
- 자동화 => 거실의 샤오미 온도계가 29도를 초과하거나 습도가 80%를 초과하면 작동(거실에 mmWave 재실센서로 사람이 없거나 두꺼비집 CT센서의 전력소비가 많으면 - 인덕션 요리 중/세탁건조중 등 - 작동을 취소)
- 켜기 스크립트 => 공조기기: Turn on 호출 -> 공조기기: Set HVAC mode를 DRY로 설정(습도 60%이하 시 COLD) -> 늘 15도로 설정되어 1초마다 Up 신호를 전송하여 25도로 설정 -> 플라즈마모드 설정 -> 거실의 구글 스피커로 현재 온도와 습도를 안내하고 15분 내로 꺼진다는 구글 TTS 안내 방송 -> 끄기 스크립트 호출
- 끄기 스크립트 => LED켜기 -> 13분간 대기 -> 1초마다 Up 신호 전송하여 28도로 설정 -> 2분간 대기 후 -> 공조기기: Turn off 호출 -> LED끄기
홈어시스턴트에 등록된 DIY IR 리모콘 장치는 다음과 같습니다.
어제 자동으로 작동하거나 수동으로 조작한 결과 온도와 습도 그래프는 다음과 같습니다.
이틀 작동했지만 일단은 만족하고 있습니다. 세세한 것들은 손 봐야 하겠지만 큰 틀에서는 잘 작동하는 것 같습니다. 온도가 오른 것도 모르고 있었는데 작동하면 시원해져서 좋았습니다.
지금은 수동으로 위 스크립트를 호출하기 위해서는 7인치 터치 모니터에 띄운 Home Assistant 대시보드에서 해야 하는데 불편하므로 IoT 4개 버튼 제품을 기다리고 있습니다.
며칠 동안 사용해 본 결과 홈어시스턴트의 에어컨 관련 대시보드는 아래와 같이 정리해 보았습니다.