보증금을 잃지 않고 구식 에어컨을 스마트하게 바꾸기

TL;DR – 해킹이 작동하고 비용은 약 $15

DIY 레트로핏으로 ESP32가 제어하는 스테퍼 모터를 사용해 에어컨 온도 노브를 회전시키면, 세입자는 순수 아날로그 PTAC 유닛을 Home Assistant를 통해 자동화할 수 있습니다. 이 과정에서 유닛에 구멍을 뚫거나 임대 계약을 위반하지 않습니다.


스테퍼 모터 레트로핏이 가장 간단한 해결책인 이유

Conclusion: 기존 노브를 기계적으로 구동하면 고전압 배선, 스마트 플러그 호환성 문제, 그리고 집주인의 반대를 피할 수 있습니다.

  • PTAC의 제어 회로는 라인 전압으로 동작하고 저전압 제어 핀이 없어서 직접 전기 레트로핏은 안전하지 않으며 임대 계약을 위반할 가능성이 높습니다.
  • 스마트 플러그는 유닛의 NEMA 5‑20P 플러그를 지원하지 못하고, 가동 중인 압축기에 전원을 주기적으로 차단하면 유닛이 손상될 수 있습니다.
  • 온도 노브에 스테퍼 모터를 부착하는 것(원본 글의 옵션 2)은 저전압 전원 공급과 몇 개의 저렴한 부품만 필요하며, 섀시를 영구적으로 수정할 필요가 없습니다.

"ESP32와 홈 자동화를 가지고 놀수록, 소프트웨어 엔지니어에게는 잡동사니처럼 보이는 것이 실제로 이런 것들의 작동 방식이라는 것을 깨닫게 됩니다." – timvdalen (HN comment)

부품 목록 및 비용 분석 (V0 & V1)

Conclusion: 전체 시스템을 시중 부품만으로 $15 이하에 조립할 수 있습니다.

부품 V0 비용 V1 비용 출처
ESP32 dev board $6.00 $3.30 (smaller board) Amazon / Temu
Shaft coupler $6.69 $2.42 Amazon / Temu
Stepper motor + driver $2.66 (3‑pack) $2.66 Amazon
L‑bracket 무료 (재사용 IKEA) $0.50 Amazon
Screws / nuts 무료 (spare) 무시할 정도 Amazon
USB cable & charger 무료 (버려진 서랍) $5.00 Temu
Binder clip & cardboard padding 무료 무시할 정도 Office supplies

Total: V0 약 $16, V1 약 $14.

기계 설계 – 드릴링 없이 장착

Conclusion: L‑브래킷, 바인더 클립, 그리고 골판지 패딩을 사용하면 임대 계약 조건을 만족하는 탈부착 가능한 마운트를 만들 수 있습니다.

  • 스테퍼 모터는 L‑브래킷에 볼트로 고정되며, 브래킷의 가장자리가 에어컨 제어 캐비티 벽에 압착되어 모터 토크를 노브 회전으로 변환합니다.
  • 바인더 클립은 조립체를 유닛 내부 금속 판에 고정하고, 골판지 패드가 금속 간 마모를 방지합니다.
  • 이 ‘잡동사니’식 해결책은 흔적을 남기지 않고 제거할 수 있기 때문에 임대 주택에 충분합니다.

"만약 필요한 것이 포텐셔미터를 전자 제어로 교체하는 것이라면, vactrol이나 디지털 포트가 작동할 수 있지만 더 침습적입니다." – kazinator (HN comment)

펌웨어 – 최소 MQTT 브리지

Conclusion: 몇십 줄의 코드만으로 ESP32가 모터를 MQTT 커버로 노출시켜 Home Assistant 제어를 가능하게 합니다.

// Pseudocode excerpt
void mqttCallback(char* topic, byte* payload, unsigned int len) {
  String msg = String((char*)payload).substring(0, len);
  if (String(topic) == COMMAND_TOPIC) handleCoverCommand(msg);
}

void handleCoverCommand(const String& cmd) {
  if (cmd == "OPEN")  moveMotor(stepsPerRev, speed);
  else if (cmd == "CLOSE") moveMotor(-stepsPerRev, speed);
  else if (cmd == "STOP") stopMotor();
}

디바이스는 MQTT 디스커버리 페이로드를 발행하여 Home Assistant가 자동으로 cover 엔티티를 생성합니다. 커버의 OPEN/CLOSE 명령은 노브를 한 바퀴 전진 또는 후진시켜, 각각 “가장 차가운” 및 “꺼짐” 위치에 해당합니다.

"https://esphome.io/ 를 사용하면 소프트웨어 부분을 10분 안에 끝낼 수 있습니다" – vayun (HN comment)

Home Assistant 통합 – 일반 온도조절기

Conclusion: MQTT 커버를 generic_thermostat 엔티티에 매핑하면 맞춤 코딩 없이 전체 온도조절 로직을 제공할 수 있습니다.

climate:
  - platform: generic_thermostat
    name: Living Room AC
    heater: cover.ac_stepper_cover
    target_sensor: sensor.airgradient_temperature
    min_temp: 65
    max_temp: 80
    ac_mode: true
    cold_tolerance: 0.5
    hot_tolerance: 0.5

온도조절기는 방 온도 센서(예: AirGradient ONE)를 모니터링하고 OPEN/CLOSE 명령을 커버에 전달하여, 온도가 설정값을 초과하면 자동으로 에어컨을 켜고, 낮아지면 끕니다.

실제 성능 및 제한 사항

Conclusion: 시스템은 작동하지만 기계적 처짐과 가끔 발생하는 모터 정지 현상이 있으며, 이는 수동으로 노브를 조정하는 것에 비해 견딜 수 있습니다.

  • 시간이 지나면서 바인더 클립 마운트가 느슨해져 마찰이 증가하고, 모터가 정지하여 수동으로 다시 고정해야 할 수 있습니다.
  • 처짐에도 불구하고 사용자는 수동 작업이 전반적으로 감소하고 전기 요금이 약간 절감되었다고 보고합니다.
  • 향후 개선점으로는 3D 프린트 마운트나 더 견고한 고정 방식을 도입할 수 있습니다.

"버튼 컴포넌트만 필요하다면 ESPHome이 맞춤 펌웨어를 완전히 대체할 수 있습니다." – timvdalen (HN comment)

커뮤니티 관점

  • Standardized interfaces: 여러 댓글 작성자(예: EvanAnderson)는 제조업체가 아날로그/디지털 제어 핀을 공개하여 이러한 해킹을 방지하기를 바랍니다.
  • Alternative approaches: 일부 사용자는 IR을 통해 PTAC를 제어(vrighter 참고)하거나 ESPHome을 온도조절기 단자에 직접 연결(ethnt)하지만, 이러한 방법은 종종 더 침습적인 배선을 필요로 합니다.
  • Reliability concerns: scottlamb은 Linux 호스트가 실패하면 MQTT/HA 설정이 취약해질 수 있다고 지적하고, 보다 독립적인 솔루션으로 ESPHome의 내장 온도조절기 컴포넌트를 제안합니다.

최종 정리

Conclusion: 저예산이며 비파괴적인 기계 레트로핏으로 ESP32와 스테퍼 모터를 사용하면 세입자를 위한 실용적인 스마트 에어컨 솔루션을 제공하며, DIY 홈 자동화가 레거시 아날로그 가전이 남긴 격차를 메울 수 있음을 보여줍니다.

  • 비용: 전체 부품 < $15.
  • 설치: 드릴링 없이, 탈부착 가능한 마운트.
  • 제어: MQTT를 통해 Home Assistant와 완전 통합.
  • 트레이드오프: 기계적 마모와 가끔 발생하는 모터 정지, 하지만 수동 노브 조작보다 훨씬 적은 불편함.

이 프로젝트는 ‘잡동사니’ 하드웨어와 최신 IoT 소프트웨어를 결합하면 임대 계약을 위반하거나 예산을 초과하지 않고도 실제 임대 환경의 제약을 해결할 수 있음을 보여줍니다.

Sources