배경
에어컨 꺼짐 예약은 상대시간(relative, “2시간 뒤 끄기”)과 절대시간(absolute, “22시에 끄기”) 두 가지로 보낼 수 있었음.
기기 프로파일을 확인해 보니 실제로 유효하게 동작하는 건 절대시간뿐이었음. 상대시간으로 보내면 예약이 걸리지 않거나 시간이 맞지 않음.
변경 내용
2026-05-06에 상대시간 처리 코드를 삭제하고 절대시간(absolute)으로만 제어하도록 바꿈.
앱에도 절대시간 값만 내려감.
서버 코드에서도 같은 상태임(2026-09-18 확인). LG 값 변환표는 절대시간만 다루고 상대시간(SleepTimer) 처리는 주석으로 남아 있음. 절대시간 전환은 커밋이 여러 번 나뉘어 있어 배포 이력을 볼 때 하나만 보면 안 됨.
앱에서 보내는 방식
앱 코드 확인 결과(2026-09-17) 파트너 가전 예약은 홈넷 기기 예약과 저장 경로가 완전히 다름. 홈넷 기기(조명·난방·환기)는 예약 전용 API(iot/modifySchedule)를 쓰지만, 파트너 가전은 일반 제어 API(iot/devicesControl)에 예약용 속성을 실어 보냄.
| 대상 | 전송 값 |
|---|---|
| 에어컨 켜는 예약 | onTimerTime = HH:MM |
| 에어컨 끄는 예약 | offTimerTime = HH:MM |
| 예약 해제·삭제 | onTimerSet / offTimerSet = unset |
| 로봇청소기 | 켜짐~꺼짐 한 구간. 시 단위만 쓰고 분은 항상 0. 활성 시 4개 값을 한 번에 전송 |
- 예약 현황을 따로 조회하는 API가 없음. 기기 조회 응답에 들어 있는 타이머 값을 그대로 읽어 화면에 그림. 그래서 가전사 쪽에서 예약이 바뀌어도 앱이 기기 목록을 다시 읽기 전에는 반영되지 않음.
- 예약도 일반 제어라서 제어 내역에 예약 항목이 한 줄씩 남음(켜짐 예약·꺼짐 예약). 저장되는 응답값은 요청값 복사본이므로 내역만 보고 “실제로 예약이 걸렸다”고 단정할 수 없음 → 공개노트/기능/우리집제어 “제어 내역이 남는 곳”.
- 홈넷 기기 예약과 달리 파트너 가전 예약은 공개노트/개발/모듈/SCW 스케줄러 서버가 실행하지 않음. 시간이 되면 가전사 쪽에서 끄고 켜는 구조임.
- 검증 문구:
예약 시간을 설정해주세요.,변경된 예약이 없습니다.,꺼지는 시간은 켜지는 시간보다 늦어야 합니다.(로봇청소기)
확인 방법
- 앱에서 에어컨 꺼짐 예약을 걸 것.
- 지정한 시각에 실제로 꺼지는지 봄.
- 제어 요청 값에 상대시간 필드가 남아 있지 않은지 확인함.