기본 콘텐츠로 건너뛰기

게이트맨 연동기와 도어센서로 HA에 현관문 리모컨 구현하기

이번에 저희 집이 게이트맨 도어락을 구입해서 설치했습니다.

설치한김에 게이트맨 연동기로 HA에서 현관문을 열 수 있는 기능을 구현한 것을 공유해보고자 합니다.

초보는 검색도 힘들고.. 말해도 말귀도 어두워서..

막상 해보면 별거 없는데.. 그래도 혹시나 자신 없어 하시는 분들을 위해.. 남겨봅니다.

우선 준비물이 필요합니다.

HA는 당연히 있어야 할거고요..

ESP32로 구현하시는 분들도 계시던데.. 저는 직비로 할 예정이기 때문에.. 직비 코디네이터는 있으셔야 하고.. HA에 Z2M은 설치되어 있으셔야 합니다.(여기서부터.. 절대 초보자가 따라 할 수 없는 수준인것 같은 느낌이지만.. 직비는 HA에 알아서 구현해보세용.. 여기서는 그 정도는 당연히 되어 있다고 가정하고 진행하겠습니다.)

그 다음에 게이트맨 연동기를 조작할 직비 릴레이가 필요합니다. 저는 이걸 구매했습니다.

https://ko.aliexpress.com/item/1005002306870803.html?spm=a2g0s.9042311.0.0.663e4c4dcH88wQ

저도 몰랐는데.. 전원에 연결되는 직비 장치는 라우터 기능이 대부분 들어있다고 합니다. 이 릴레이도 라우터 기능이 포함되어 있습니다.

그렇잖아도 라우터가 하나 필요했는데.. 득템했네요.

그 다음에 스마트폰 충전 케이블과 어뎁터가 있으셔야 하고요.

게이트맨 연동기가 있어야겠죠.

저는 여기서 구매했는데요..

https://shop.11st.co.kr/stores/228714/search?searchKwd=%25EA%25B2%258C%25EC%259D%25B4%25ED%258A%25B8%25EB%25A7%25A8

본인의 도어락이 어떤걸 지원하는지 꼭 확인해보시고.. 자신 없으시면 게이트맨 고객센터에 전화해서 꼭 확인해보시기 바랍니다.

저는 처음에 홈케어로 잘못 구매해서 교환 받았습니다. ㅠㅠ

덕분에 연동기가 하나 더 생겼네요..

그 다음에 저희 집은 그 흔한 월패드 하나 없는 구축 중에 구축 아파트입니다. 그래서 버튼이 하나 필요할 거 같아서..

이것도 구매했습니다.

https://www.ikea.com/kr/ko/p/tradfri-shortcut-button-white-80356384/

이제 준비물이 준비되었으면..

구현해볼까요?

우선.. 최종 구현한 사진입니다.

게이트맨 연동기와 직비 릴레이 크기는 생각보다 작습니다. 가로 10cm, 세로 10cm, 높이 5cm 정도 되는 명함 케이스면 쏙 들어갑니다.

게이트맨 연동기에는 전선이 4가닥 있습니다.

빨간색과 검은색이 전원선입니다.

게이트맨 연동기는 스마트폰 충전기로도 충분히 동작합니다.

직비 릴레이도 스마트폰 충전기로 동작하기 때문에..

저는 아래처럼 전원을 공급하도록 했습니다. 스마트폰 충전기 어뎁처 중에 포트가 2개 있는 어뎁터가 있는데 거기에 케이블 2개를 꼽고 하나는 연동기로 하나는 직비 릴레이로 연결했습니다. 케이블 하나로 2개 장치에 모두 전원을 공급하셔도 되는데.. 저는 그냥 깔끔하게 따로 따로 연결했습니다.


빨간색과 검은색을 전원에 연결하시고 연동기를 도어락에 등록을 하신 다음에 나머지 하얀색과 노란색을 쇼트시켜서 도어락이 정상으로 열리는지 확인해 보시기 바랍니다.

연동기가 제대로 동작하면 이제 하얀색 선과 노란색 선을 직비 릴레이의 3번과 4번에 연결하시면 됩니다.

그 다음에 2번 버튼이 페어링 버튼입니다. 꾹 눌러서 LED 가 번쩍이면 Z2M에 등록하시면 됩니다.

1번 버튼이 모드 버튼입니다. 한번 누르면 스위치 모드이고 다시 한번 누르면 인칭 모드라고 해서 딸깍 켜졌다가 바로 딸깍 꺼지는 모드입니다. 저희는 인칭 모드를 쓸거기 때문에 Z2M에 등록하신 다음에 스위치를 동작해서 확인해 보시고 인칭 모드로 설정하시기 바랍니다.

자.. 이제 연동기와 직비 릴레이가 HA에 등록이 되었으면.. 문 열림 상태에 따른 자동화를 추가해보겠습니다.

그래서 도어 센서가 하나 필요합니다. 도어 센서는 구매하셔서 현관문에 잘 설치해주시고 Z2M에 등록해두시기 바랍니다.

그래서 연동기를 동작시키고 현관문이 열리지 않으면 도어를 잠금 상태로 유지하고 현관문이 열리면 열림 상태로 표현하는 자동화를 구현하겠습니다. 그리고 위에서 얘기한 버튼 관련된 자동화도 하나로 구현했습니다.

먼저 구성하기 > 도우미 에 들어가셔서 토글을 하나 추가해주시기 바랍니다. 이름은 적당히..

다음에 자동화로 가셔서 자동화를 추가하시기 바랍니다.

저는 아래처럼 구현했습니다.

alias: 현관문

description: ''

trigger:

  - type: opened

    platform: device

    device_id: *****

    entity_id: binary_sensor.maindoor_sensor_contact // 도어 센서입니다.

    domain: binary_sensor

    id: open

  - type: not_opened

    platform: device

    device_id: *****

    entity_id: binary_sensor.maindoor_sensor_contact

    domain: binary_sensor

    id: close

  - platform: device

    type: turned_on

    device_id: *****

    entity_id: switch.main_door // 직비 릴레이 스위치입니다.

    domain: switch

    id: switch

  - platform: device

    domain: mqtt

    device_id: ***** // 이케아 직비 버튼입니다.

    type: action

    subtype: 'on'

    discovery_id: ***** action_on

    id: switch2

condition: []

action:

  - choose:

      - conditions:

          - condition: trigger

            id: close

        sequence:

          - service: input_boolean.turn_off // 도우미에서 등록한 토글입니다.

            target:

              entity_id: input_boolean.door

      - conditions:

          - condition: trigger

            id: switch

        sequence:

          - service: input_boolean.turn_on

            target:

              entity_id:

                - input_boolean.door

          - delay:

              hours: 0

              minutes: 0

              seconds: 5 // 시간은 도어락이 자동으로 잠금 상태로 변경되는 시간을 감안해서 조정하시면 됩니다.

              milliseconds: 0

          - type: is_not_open

            condition: device

            device_id: *****

            entity_id: binary_sensor.maindoor_sensor_contact

            domain: binary_sensor

          - service: input_boolean.turn_off

            target:

              entity_id: input_boolean.door

      - conditions:

          - condition: trigger

            id: switch2

        sequence:

          - type: turn_on

            device_id: *****

            entity_id: switch.main_door

            domain: switch

    default:

      - condition: trigger

        id: open

      - service: input_boolean.turn_on

        target:

          entity_id: input_boolean.door

mode: parallel

max: 10

그 다음에 이 도어락을 구글 홈에 등록하기 원하시면 configuration.yaml에

lock:

  - platform: template

    name: 현관

    value_template: "{{ is_state('input_boolean.door', 'off') }}"

    lock:

      - service: input_boolean.turn_off

        target:

          entity_id: input_boolean.door

    unlock:

      - service: switch.turn_on

        target:

          entity_id: switch.main_door

      - service: input_boolean.turn_on

        target:

          entity_id: input_boolean.door

을 추가해주시고 google_assistant: 의 exposed_domains: 에 - lock 을 추가해주시면 구글 홈에서 도어락이 등록되는걸 보실 수 있습니다.

그리고 네스트 허브나 네스트 허브 맥스에서 스위치가 아니라 잠금 장치로 도어락을 제어하시려면

google_assistant: 에 secure_devices_pin: 을 추가하신 다음에 원하는 비밀번호를 입력하시면 됩니다.

구글 홈에 잠금 장치를 추가하는건 옵션이고.. 그냥 직비 릴레이 스위치 등록하셔서 제어하시는게 더 간편하긴 합니다.

혹시 궁금하신거나 더 좋은 아이디어 있으시면 댓글 남겨주시면 고맙겠습니다.

댓글

이 블로그의 인기 게시물

20년 차 테스터가 고른 최근 IT 소식: 기술의 속도, 그리고 사람의 자리

20년 넘게 IT 업계에서 테스팅하고 강의하고 공부하고 여러 일을 해왔지만... 정말이지 단 하루도 편하게 쉴 틈을 주지 않는 세상입니다. 특히 최근 4~5년 동안 가속화된 AI의 물결은 기술의 스펙트럼뿐만 아니라 우리가 일하고, 협업하고, 조직을 이끄는 방식 전체를 뒤흔들고 있습니다. 이번 주에도 수많은 뉴스레터와 아티클을 훑어보았습니다. 그중에서도 기술의 화려함 뒤에 숨겨진 ‘사람, 조직, 그리고 커리어의 본질’을 찌르는 글 몇 개가 눈에 띄어 메모해 둡니다. 제 평소 생각과 맞닿아 있는 6가지 이야기입니다. --- 1. 인지부채(Cognitive Debt): 바이브 코딩 시대에 우리가 지게 되는 진짜 빚 (출처: ROBOCO - 인지부채: 바이브 코딩 시대의 새로운 부채 관리법 / 정도현 수석 컨설턴트 ) 요즘 커서(Cursor)나 클로드 코드(Claude Code) 같은 에이전트를 붙여 "이거 만들어줘" 하고 승인(Approve) 버튼만 누르면 눈 깜짝할 사이에 코드베이스가 완성되는 '바이브 코딩(Vibe Coding)'이 유행입니다. 그런데 속도는 엄청나게 빠른데, 정작 서비스에 장애가 나면 "AI가 짜서 잘 모르겠는데요?"라는 답이 나오는 이상한 현상이 벌어집니다. 정도현 컨설턴트는 이를 '인지부채(Cognitive Debt)'라고 정의합니다. 코드는 쌓이는데, 정작 인간의 시스템 이해도는 쌓이지 않는 격차죠. * Human-in-the-loop의 환상: AI가 초당 수백 줄을 뽑아내는데 사람이 일일이 검토한다? 결국 검토자는 병목이 되고, 시간 압박에 쫓겨 영혼 없이 승인 버튼만 누르게 됩니다. 40년 전 자동화 연구(Bainbridge, 1983)가 지적했듯, 자동화될수록 사람은 감시만 하다가 정작 개입해야 할 결정적 순간에 숙련도를 잃어버립니다. * 부채는 0으로 만드는 게 아니라 '관리'하는 것: AI가 만든 모든 코드를 사람이 외울 수는 없습니다. 핵심은 ...

우리는 AI로 '더 빠른 말'을 키우고 있는걸까요? 아니면 '자동차'를 만들고 있는걸까요?

20년 넘게 IT 현장에서 뒹굴거렸는데... 요즘처럼 "우리가 지금까지 당연하게 여겨온 일하는 방식의 본질"에 대해 근본적인 질문을 던지게 만드는 때가 없었던 것 같습니다. 최근 읽은 UX 관련 글 하나가 가슴을 쿵 치고 지나갔습니다. UX 및 디지털 트렌드를 다루는 블로그 ux4dotcom에 올라온 "Beyond Faster Horses — Why AI Challenges One of UX's Oldest Assumptions"라는 글입니다. (출처: ux4dotcom - Beyond Faster Horses — Why AI Challenges One of UX's Oldest Assumptions ) 혁신을 말할 때 늘 인용되는 헨리 포드의 유명한 말이 있습니다. "사람들에게 무엇을 원하느냐고 물었다면, 그들은 '더 빠른 말'이라고 답했을 것이다." 사람들은 자신이 경험해 본 범위 안에서만 미래를 상상합니다. 말만 탈 줄 아는 사람에게 자동차는 상상 밖의 범주(Mental Model)니까요. 저자는 그동안 UX(사용자 경험)라는 학문과 필드 자체가 '더 빠른 말을 만드는 일(기존 과업의 효율화)'에 집중해 왔다고 지적합니다. 사용자의 행동을 관찰하고, 마찰(Friction)을 줄이고, 화면을 간소화하고, 기존 워크플로우를 최적화해 주는 작업 말입니다. 실제로 주변을 봐도 우리가 AI를 쓰는 방식도 대부분 이 범주를 벗어나지 못하고 있습니다. 더 빠르게 이메일을 작성하고, 문서 요약을 3초 만에 끝내고, 프레젠테이션 장표나 일정표를 순식간에 만들어내는 일. 분명 유용하고 저 역시 매일 요기하게 쓰고 있지만, 이건 어디까지나 '기존에 인간이 하던 일의 프로세스를 흉내 내어 속도만 올린 것(Faster Horse)'에 불과합니다. 정작 "이 워크플로우 자체가 과연 계속 존재해야 하는가?"라는 근본적인 질문은 던지지 못하고 있는 것이죠....

에이전틱 AI 시대의 소프트웨어 테스팅: 왜 '아키텍트' 역량이 필요한가?

최근 "프로그래밍이란 무엇인가?"라는 근본적인 질문에서 출발해, 하드웨어의 가장 밑바닥인 CPU 명령어 디코더의 원리부터 최근 화두인 에이전틱 AI(Agentic AI)와 바이브 코딩(Vibe Coding)에 이르기까지 AI와 함께 이런 저런 대화를 나누어 보았다.. 사실 내가 처음 컴퓨터를 공부할 때부터 컴퓨터가 내 명령을 어떻게 이해하고 처리해서 이런 결과가 출력되는지는 정말 이해하기 어려운 마법 같은 것이었다.  그래서인지.. 나이가 들어도 프로그래밍은 여전히 어렵다. 하지만 요즘은 AI와 함께 무언가를 만드는 재미를 만끽하고 있다.  어쨌든 AI와의 즐거운 대화의 끝에서 필연적으로 마주한 질문이 있다. "코드를 AI가 스스로 짜고 조립하는 시대에, 소프트웨어 테스팅은 무엇이며 우리는 어떤 역량을 키워야 하는가?" 지금까지의 고민을 바탕으로, 다가오는 AI 시대에 테스트 엔지니어가 나아가야 할 방향과 '아키텍트(Architect)' 역량의 중요성에 대해 정리해 본다. 현대의 소프트웨어 개발은 무(無)에서 유(有)를 창조하는 것이 아니다. 전 세계의 천재적인 엔지니어들이 만들어둔 수많은 라이브러리와 프레임워크라는 '레고 블록'을 조합해 원하는 서비스를 구축하는 과정이다. 내가 젋어서 이걸 잘 이해만 했었어도.. 테스터라는 직업의 세계에 발을 들이지는 않았을 텐데.. 어린 나이에 너무 생각이 많았었다. 그런데 에이전틱 AI가 등장하면서 거대한 변화가 일어났다. 이제는 인간이 직접 레고를 조립할 필요조차 없어지고 있다. "이런 기능을 만들어줘"라는 의도(Intent)만 던지면, AI가 기존에 학습한 방대한 오픈소스와 코드를 바탕으로 알아서 뼈대를 세우고 코드를 완성해 낸다. 개발자는 직접 코드를 타이핑하는 노동자에서, AI 에이전트를 부리는 총괄 기획자로 역할이 변하고 있는 것이다. 하지만 AI가 만들어내는 코드는 필연적인 한계를 지닌다. AI는 과거 인류가 작성한 코드를 학습하...