01 · 개별 점등 후 일괄 소등
개별 등을 켜면 전체 소등 버튼이 활성화됩니다. 이 버튼을 누르면 켜진 등을 한 번에 끕니다.
19초 · 3.8MB · 현장 소리 포함
영상 따로 열기기존 4구 기계식 스위치 자리에 6구 스마트 스위치를 설치했습니다.
버튼 디스플레이에는 이름을 표시하고, 동작에는 우리 집의 생활방식을 담았습니다.

방에서 나오며 켜진 등을 하나씩 확인하고, 욕실에서는 조명과 환풍기를 따로 누릅니다. 복도 반대편에서 불을 끄고 싶어도 스위치가 있는 쪽으로 돌아가야 합니다. 익숙해서 그냥 해왔지만, 꼭 이렇게 써야 할 이유는 없었습니다.
스마트 스위치를 설치하며 제가 원한 것은 이런 불편을 줄이는 일이었습니다. 평소 함께 쓰는 것은 함께 움직이고, 끄는 시점이 다른 것은 시간을 나누고, 어느 버튼에서 조작하든 지금 상태를 제대로 보여주게 만들고 싶었습니다.
“세면대등을 켜면 환풍기도 같이 켜줘.
불을 끄면 환풍은 15분 더 돌리고.
복도등은 양쪽에서 끌 수 있게 해줘.”
이런 요구를 에이전트에게 설명하고, 실제 버튼과 집 안 설비의 동작으로 옮겼습니다. 대형 인텔리전트 빌딩의 프로그램 스위치와 유사하게, 버튼 하나의 역할을 소프트웨어로 구성하고 여러 설비의 동작을 묶을 수 있도록 만들었습니다.
기존 월패드와 연결해 둔 조명, 새로 설치한 스마트 스위치, Apple 홈 앱을 이어 붙였습니다. 집 전체 설비를 새 제품으로 바꾸기보다, 이미 있는 장치의 역할을 다시 조합했습니다.

개별 등을 켜면 전체 소등 버튼이 활성화됩니다. 이 버튼을 누르면 켜진 등을 한 번에 끕니다.
19초 · 3.8MB · 현장 소리 포함
영상 따로 열기‘전체 끄기’ 버튼은 만들기 쉬워 보입니다. 그런데 조명은 개별 버튼으로도 켜고, 홈 앱으로도 켭니다. 일괄 버튼이 자기 상태만 기억하면 실제로 켜진 등과 버튼 표시가 달라집니다. 한 번 눌렀는데 기대와 다르게 움직이거나, 두 번 눌러야 하는 일이 생깁니다.
그래서 일괄 버튼이 그룹에 속한 장치들의 상태를 모아서 판단하도록 바꿨습니다. 어느 경로에서 켰든 하나라도 켜져 있으면 일괄 표시도 켜집니다. 마지막 장치가 꺼지면 표시도 함께 꺼집니다.
그룹에 하나라도 켜져 있다면버튼 한 번 → 모두 끄기
그룹이 모두 꺼져 있다면버튼 한 번 → 모두 켜기
거실에서는 주방·식탁·거실·복도 조명을 한 그룹으로 묶었습니다. 안방에서는 조명과 환풍기를 함께 묶었습니다. 어느 장치를 포함할지는 제가 실제로 사용하는 방식에 맞춰 정했습니다. 여기서 ‘맞춤형’은 AI가 습관을 저절로 학습했다는 뜻이 아니라, 제가 원하는 생활 규칙을 프로그램으로 만들었다는 뜻입니다.
켜진 조명이 있습니다. 일괄 버튼을 누르면 모두 꺼집니다.
조명은 켜져 있는데 벽 버튼이 꺼진 것처럼 보이면, 한 번 더 눌러야 하는지 헷갈립니다. 그래서 개별 조명을 켰을 때 전체 소등 버튼의 표시도 활성화되게 했습니다. 켜진 장치를 모두 끄면 전체 표시도 꺼지고, 다음에는 전체 점등으로 동작합니다. 홈 앱에서 바꾼 상태도 벽 버튼에 반영해, 어느 쪽에서 조작하든 같은 상태를 보도록 맞췄습니다.


화장실 조명을 켜면 환풍기도 함께 작동합니다. 조명을 끈 뒤에는 환풍만 15분 더 작동하며, 중간에 수동으로 끌 수도 있습니다.
25초 · 3.4MB · 현장 소리 포함
영상 따로 열기욕실 조명과 환풍기는 자주 함께 씁니다. 그래서 세면대등을 켜면 환풍기도 켜지게 했습니다. 다만 나갈 때 둘을 동시에 끄면 환기를 조금 더 하고 싶을 때 다시 손이 갑니다. 조명은 바로 끄고, 환풍기는 15분 뒤에 멈추게 했습니다.
타이머 하나만 넣고 끝낼 수는 없었습니다. 그 사이 다시 욕실에 들어가거나, 제가 환풍기를 직접 끌 수도 있기 때문입니다. 자동화가 사람의 조작을 거스르지 않도록 예외도 함께 정했습니다.
진행 중이던 종료 예약을 취소합니다. 환풍을 계속 사용하고, 다음에 불을 끈 시점부터 다시 15분을 셉니다.
수동 조작을 우선합니다. 환풍기를 바로 끄고 예약도 취소해, 조명이 켜져 있다는 이유만으로 다시 켜지지 않게 했습니다.
안방 그룹에는 환풍기가 포함되어 있습니다. 개별 세면대등 소등에는 15분 환풍을 적용하지만, 일괄 소등은 그룹 전체를 끄라는 명시적인 조작으로 처리합니다. 환풍만 돌고 있을 때 일괄 표시가 켜져 있는 것도 이 설정에 따른 동작입니다.

한쪽의 6구 스위치에는 ‘복도등’을 넣고, 반대편의 1구 스위치는 그대로 활용했습니다. 6구 버튼에서 보낸 명령이 홈 앱 자동화를 거쳐 실제 복도 조명을 제어하게 연결했습니다.
처음에는 불을 켜고 끄는 데만 집중했습니다. 그러다 반대편에서 불을 껐는데 6구 쪽 표시등은 켜져 있는 문제가 보였습니다. 조작이 된다고 연동이 끝난 것은 아니었습니다.
그래서 실제 복도 스위치의 상태를 6구 버튼에 되돌려주는 경로도 만들었습니다. 반대편에서 켜면 6구의 복도 표시와 거실 일괄 표시가 함께 켜지고, 끄면 복도 표시가 따라 꺼집니다. 거실 그룹의 다른 등이 모두 꺼져 있다면 일괄 표시도 꺼집니다.
이제 어느 쪽에서 조작했는지 기억할 필요가 줄었습니다. 새 제어선을 길게 연결하는 대신, 서로 다른 스위치가 같은 조명 상태를 공유하도록 만든 것입니다.

네 개의 물리 버튼으로 개별 조작

추가 버튼에 안방등·안방전체 기능
기존 4구 기계식 스위치를 6구 스마트 스위치로 바꾸면서, 두 버튼을 더 쓸 수 있게 됐습니다. 안방에서는 기존 네 개의 직접 제어 역할에 더해, 월패드로 연결된 ‘안방등’과 여러 장치를 묶는 ‘안방전체’를 프로그램 기능으로 구성했습니다.
버튼이 많아지면 무엇을 누를지 헷갈릴 수도 있습니다. 그래서 ‘세면대등’, ‘안방전체’, ‘안방환풍’처럼 기능을 한글로 표시해 쓰는 것이 중요했습니다. 숫자나 위치를 외우는 대신, 버튼 이름을 보고 누릅니다. 스마트폰을 꺼내지 않아도 사용할 수 있는 벽면 제어판이 된 셈입니다.
| 기능 이름 | 버튼의 역할 |
|---|---|
| 화장대등 | 개별 조명 제어 |
| 샤워등 | 개별 조명 제어 |
| 세면대등 | 조명 제어 + 환풍 연동의 시작점 |
| 안방등 | 기존 월패드 조명을 프로그램으로 연결 |
| 안방전체 | 안방 조명과 환풍기 일괄 제어 |
| 안방환풍 | 환풍기 개별 제어 + 지연 종료 |
| 기능 이름 | 버튼의 역할 |
|---|---|
| 싱크대등 | 개별 조명 제어 |
| 인덕션등 | 개별 조명 제어 |
| 식탁등 | 개별 조명 제어 |
| 거실등 | 기존 월패드의 거실 조명 연결 |
| 복도등 | 반대편 실제 스위치와 양방향 연동 |
| 거실 일괄 | 주방·식탁·거실·복도 그룹 제어 |
위 실사진에서 안방 스위치의 여섯 가지 한글 이름을 확인할 수 있습니다. 위 표는 기능 목록이며 전기 단자 순서를 뜻하지 않습니다. 안방과 거실은 연결 구조가 달라, ‘직접 연결 4개 + 프로그램 2개’가 두 곳에 똑같이 적용되는 것은 아닙니다.

벽 스위치의 기능을 Apple 홈에도 연결했습니다. 같은 조명을 벽 버튼과 홈 앱에서 조작하고, Siri에게 말로 요청할 수 있는 구조입니다. 스위치 앞에 서 있지 않아도 집 안의 조명을 확인하고 제어할 수 있습니다.
집과 휴대전화가 인터넷에 연결되어 있고 홈 허브와 원격 접근이 정상 설정되어 있다면, 전 세계 어디에서든 홈 앱으로 조명을 켜고 끌 수 있습니다. 외출 후 켜둔 등이 생각나도 다시 집에 돌아갈 필요가 없습니다.
홈 앱에 등록한 이름으로 요청하면 Siri가 해당 조명을 제어합니다. 여러 조명을 묶은 모드도 음성으로 실행할 수 있습니다.
원격 제어에는 HomePod 또는 Apple TV 등의 홈 허브와 인터넷 연결이 필요합니다. 이 구성에서는 NAS의 브릿지와 연결된 서비스도 정상 동작해야 합니다. Apple의 Siri·원격 제어 안내
한 번씩 누르던 동작을 생활의 조건에 연결하는 방식입니다. 다음은 이 구성에 추가할 수 있는 활용 예입니다.
시간을 지정해 끄는 예약을 요청합니다. 예약이 제대로 접수됐는지는 Siri의 응답에서 확인합니다.
원하는 시각에 켜도록 요청할 수 있습니다. 매일 반복할 일정은 홈 앱의 시간 자동화로 설정합니다.
홈 앱의 ‘사람들이 도착할 때’ 조건에 거실 조명을 연결합니다. 위치 정보를 이용해 귀가에 맞춰 작동하게 설정합니다.
‘사람들이 떠날 때’ 조건에 소등할 조명이나 모드를 연결합니다. 가족이 남아 있을 때 꺼지지 않도록 ‘마지막 사람이 떠날 때’로 정할 수도 있습니다.
시간 예약의 지원 범위와 인식 문구는 Siri의 언어·기기 환경에 따라 달라집니다. 도착·외출 예시는 원하는 동작을 표현한 문장이며, 위치 권한과 홈 앱 자동화를 별도로 설정해야 합니다. 위 네 가지 예시를 모두 이 집에서 설정·검증했다는 뜻은 아닙니다. Apple의 모드·자동화 설정 안내
처음부터 프로그램 설계를 적어 전달한 것은 아닙니다. ‘하나라도 켜져 있으면 전체 표시가 켜져야 한다’, ‘환풍은 조금 더 돌았으면 좋겠다’, ‘반대편에서 꺼도 여기도 꺼진 걸 보여달라’고 설명했습니다.
에이전트는 각 버튼이 어떤 장치를 가리키는지 정리하고, Homebridge 플러그인에 그룹 제어와 환풍 지연 로직을 더했습니다. 저는 실제 벽 버튼을 눌러 보고, 기대와 다른 부분을 다시 설명했습니다. 그 과정을 통해 단순한 켜기·끄기에서 실제로 쓰기 편한 동작으로 다듬었습니다.
기기 명령어 대신 언제, 무엇을, 어떻게 쓰고 싶은지 설명했습니다.
직접 연결된 장치와 브릿지로 제어할 장치를 나누고, 동작 규칙을 코드로 구현했습니다.
벽 버튼과 홈 앱에서 번갈아 조작하며 표시 오류, 늦게 들어온 상태, 수동 중단을 확인했습니다.
어려웠던 것은 버튼을 하나 더 만드는 일보다 명령과 상태가 서로 꼬이지 않게 하는 일이었습니다. 예를 들어 표시등을 맞추려고 보낸 상태가 새 버튼 입력으로 해석되면, 원하지 않는 일괄 동작이 다시 발생할 수 있습니다. 이전 상태가 늦게 도착해 방금 바꾼 표시를 되돌리는 문제도 처리해야 했습니다.
이 부분을 에이전트와 함께 수정하고 테스트했습니다. 완성된 스위치는 버튼을 누를 때마다 AI에게 판단을 요청하지 않습니다. 에이전트가 만드는 과정을 돕고, 일상적인 동작은 정해 둔 규칙을 실행합니다.
같은 기능을 참고해 구현하려면 물리 장치와 소프트웨어의 역할부터 나누는 편이 좋습니다. 이 사례는 아래 구성으로 연결했습니다.
스마트 스위치에 직접 연결된 조명·환풍기 경로와 브릿지를 통한 제어 경로가 함께 있습니다. 동작 규칙 일부는 NAS에서 실행하지만 Tuya 연동에 외부 서비스 경로가 포함되어 있어, 전체가 인터넷 없이 동작하는 구성으로 보아서는 안 됩니다.
| 구분 | 구성 요소 | 역할 |
|---|---|---|
| 물리 장치 | MANHOT MH03-6W 6구 Wi-Fi 스위치 | 벽에서 누르는 입력과 개별 연결 장치 제어. 실제 사용한 제품 표기 기준이며 같은 외형 제품의 기능을 보장하지 않습니다. |
| 물리 장치 | 기존 복도 1구 스위치 | 실제 복도 조명을 제어하고 반대편 조작 지점으로 활용합니다. |
| 연결 기반 | 2.4GHz Wi-Fi · Smart Life/Tuya | 스마트 스위치의 명령과 상태를 전달합니다. |
| 실행 환경 | NAS의 Homebridge | 스위치를 Apple 홈에 연결하고 사용자 정의 동작 규칙을 실행합니다. |
| 수정한 소프트웨어 | Tuya 연동 플러그인의 스위치 처리부 | 6개 채널 노출, 기능 이름, 그룹 상태, 물리 표시 동기화, 지연 환풍을 구현했습니다. |
| 기존 설비 연결 | IMAZU RS485 브릿지 | 스마트 스위치에 직접 배선되지 않은 월패드 조명을 제어합니다. |
| 자동화 연결 | Apple 홈 | 홈 앱 조작과 복도 스위치 사이의 명령·상태 연동을 담당합니다. |
그룹에 포함된 채널 중 하나라도 켜져 있으면 그룹을 켜짐으로 표시합니다. 일괄 버튼을 누르면 그 상태의 반대로 모든 구성원에게 명령을 보냅니다. 안방 그룹은 환풍기까지 포함하므로 조명만 꺼져 있어도 환풍이 돌고 있다면 그룹은 켜짐입니다.
그룹 상태 = 구성원 중 하나라도 켜져 있는가?
일괄 버튼 입력:
현재 그룹이 켜짐 → 구성원 모두 끄기
현재 그룹이 꺼짐 → 구성원 모두 켜기
개별 장치 상태 변경:
그룹 상태 다시 계산
홈 앱 표시와 물리 일괄 표시 갱신이 코드는 원리를 설명한 의사코드입니다. 실제 구현에는 명령 진행 중 처리, 순차 전송, 늦게 도착한 상태의 반영 기준이 추가됩니다.
일괄 표시등을 갱신하려고 보낸 상태가 돌아왔을 때, 이를 다시 일괄 제어 명령으로 실행하면 순환 동작이 생길 수 있습니다. 최근 명령, 표시 갱신, 장치에서 돌아온 상태를 구분해 불필요한 재실행을 막았습니다.
실제 장치와 외부 서비스가 상태를 전달하는 데에는 지연이 있습니다. 그래서 화면에 새 상태를 반영한 직후 도착한 이전 상태가 표시를 되돌리지 않도록 보정하고, 이후 상태를 다시 확인하도록 처리했습니다. 통신 지연 자체를 없앤 것은 아닙니다.
| 상황 | 처리 |
|---|---|
| 세면대등 켜기 | 환풍을 켜고 기존 종료 예약을 취소합니다. |
| 세면대등 끄기 | 환풍이 동작 중이고 수동 중단 상태가 아니라면 15분 뒤 종료를 예약합니다. |
| 기다리는 중 다시 켜기 | 종료 예약을 취소하고 새 사용 주기로 전환합니다. |
| 환풍기 직접 끄기 | 수동 조작을 우선하고 예약을 취소합니다. |
| 안방 전체 끄기 | 그룹에 포함된 환풍기도 종료하며 예약을 취소합니다. |
| Homebridge 재시작 | 저장한 종료 예정 시각과 장치 상태가 조건에 맞으면 남은 예약을 복원합니다. |
예약 복원은 프로그램에 구현하고 모의 테스트로 확인한 기능입니다. 정전·통신 장애 등 모든 현장 상황에서의 연속 동작을 검증했다는 의미는 아닙니다.
전원·부하의 실제 배선은 제품과 기존 설비 조건에 맞춰 확인해야 합니다. 이 자료는 기능 설계와 소프트웨어 연동을 설명하며 전기 배선 작업 절차를 제공하지 않습니다.
이번 스위치 작업에 앞서, 집 안에 흩어진 제어 방식을 먼저 연결했습니다. 조명·난방·환기는 월패드 앱, 삼성 에어컨은 SmartThings, 도어록은 별도 앱을 써야 했습니다. 같은 집인데도 무엇을 켜고 끄느냐에 따라 앱을 바꿔야 하는 점이 불편했습니다.
그래서 기기를 모두 새로 사는 대신, 기존 설비의 신호를 NAS에서 받아 Homebridge를 통해 Apple 홈에 모았습니다. 기기마다 다른 연결 방식을 찾아 붙이는 것이 핵심이었습니다.
| 기존 장치 | 연결한 방법 | 달라진 사용 방식 |
|---|---|---|
| 아파트 IMAZU 월패드 | USB-RS485 어댑터로 통신을 수집했습니다. 조명이나 난방을 한 가지씩 조작하며 달라지는 패킷을 비교해 명령과 상태를 해석했습니다. | 기존 조명·난방·환기를 Apple 홈에서 제어하고, 실제 상태를 다시 받아 표시합니다. |
| 구형 삼성 에어컨 | Matter를 지원하지 않는 SmartThings 제품을 삼성 개발자 API로 Homebridge에 연결했습니다. | 같은 방의 냉방과 월패드 난방을 하나의 타일에서 선택합니다. 이 경로는 인터넷과 SmartThings 클라우드를 이용합니다. |
| 세대현관 도어록 · 공동현관 | 세대현관 LG Smart Lock을 홈에 연결했습니다. 공동현관은 주방 모니터의 별도 제어선과 영상선을 분기해 NAS로 전달했습니다. | 앱마다 흩어져 있던 출입구 제어와 현관 영상도 Apple 홈에서 함께 확인합니다. |
특히 공동현관은 월패드의 조명 회선만으로 해결되지 않았습니다. 주방 모니터도 현관 호출을 받고 문을 연다는 점에 주목했습니다. 그 모니터로 들어오는 별도 제어 신호를 활용하고, 영상은 발룬과 인코더를 거쳐 NAS로 받아 Apple 홈의 카메라·초인종 알림과 연결했습니다.
이렇게 연결해 둔 기반에 이번 6구 스위치를 더했습니다. 추가한 버튼은 NAS를 통해 월패드 조명을 움직이고, 방 안의 여러 장치를 한 번에 제어합니다. 기존 설비를 홈에 모으는 작업에서, 벽 스위치의 동작을 우리 생활에 맞추는 작업으로 이어진 셈입니다.
환풍 유지 시간은 15분으로 설정했습니다. 지연 종료 로직은 시간을 줄인 테스트로 확인했으며, 15분 전체를 기다린 현장 검증 기록은 별도로 확인되지 않았습니다.
마지막 상태 보정 이후 홈 앱 테스트는 확인했지만, 모든 물리 버튼 조합의 재검증과 장기간 안정성은 실제 사용으로 더 살펴봐야 합니다.
앞으로는 취침·외출처럼 자주 쓰는 상황별로 그룹 구성을 더 다듬고 싶습니다. 센서를 붙여 조건을 세분화하거나 불필요한 가동 시간을 줄이는 것도 다음 단계입니다. 다만 이번 사례에서 센서 기반 환풍이나 전력 절감량까지 검증한 것은 아닙니다.
스위치를 여섯 개로 늘리는 것보다, 그 버튼을 어떻게 쓰고 싶은지 직접 정할 수 있다는 점이 좋았습니다. 생활 속에서 떠올린 요구를 에이전트와 함께 실제 동작으로 만드는 일. 이번에는 그 결과가 벽에 붙어 있습니다.
관련 사례: 서로 다른 앱과 설비를 Apple 홈에 모은 이야기