본문 바로가기

SmartHome. IoT/SmartHome 응용

HA의 애드온 / 통합구성요소에 대한 이해.

728x90
반응형

안녕하세요~ 레이군 입니다.

오늘도 HA의 기초내용에 대해 알아볼까 합니다.

[IoT/HomeAssistant] - HomeAssistant 설치방법의 다양성에 대하여.

전에 HA의 설치방법이 다양한 이유에 대해 잠시 알려드린적이 있습니다.

HA 슈퍼바이저(or HA OS)를 설치하면, 애드온 스토어 라는 강력한 기능을 사용할 수 있는데요

처음 HA를 접하는 분들은 약간 혼란이 생길 수 있는 부분이기도 합니다.

어차피 HA의 화면에서 애드온에 들어가서 설치하는거니, HA에 설치되는 기능이 아닌가? 싶으시겠지만..

이 글을 끝까지 보신다면, 차이를 알게 되실겁니다.

애드온

위 화면은 제가 설치해둔 애드온들 입니다.

이 애드온들은 설정-애드온 화면에 가서 쉽게 설치, 유지보수 할 수 있는데요

그래서 HA에 종속된 기능이라고 생각할 수 있으나, 이건 HA와 다른 기능들 입니다.

정확히는 HA의 슈퍼바이저 에 종속된 기능인거죠.

이런식으로 HA에 접속해서 설정 - 애드온 화면으로 들어가기 때문에 HA의 기능 이라고 생각할 수 있는데요

애드온은 사실 이런 관계 입니다. 슈퍼바이저 아래에 HA가 있고, 그 아래 애드온이 있는게 아니라

슈퍼바이저 아래 HA가 있고, 그 옆에 애드온이 있는거죠.

그럼 HA에 들어가서 설정-애드온에 들어가는건 어떻게 되는건데??

바로 이런식으로 애드온 이라는 항목을 누르면, 슈퍼바이저의 애드온 관리하는 곳으로 넘어가는거죠.

그러면...애드온은 뭔가요?

바로 각각의 서비스를 실행할 수 있는 개별적인 서버 라고 보시면 됩니다.

제 애드온중 일부를 살펴보겠습니다.

먼저 Mosquitto Broker 입니다.

MQTT 통신은 발행/구독 방식입니다. 일간지를 예를들어 설명해 봅시다.

일간지를 발행할 사람과 구독할 사람이 있더라도 그걸 중계해주는 가판대가 없으면 소용 없겠죠.

이 가판대 역할을 하는것이 바로 MQTT Broker 입니다. 중간에서 중계를 해주는것이죠.

보통 이런 역할을 하는걸 서버라고 부르지만, MQTT는 방식의 특성상 브로커 라고 부릅니다.

물론 MQTT 서버 라고 해도 아~ 그거요~ 하고 알아먹긴 합니다.

Zigbee 장치를 연결하기 위해 많이들 사용하시는 Zigbee2MQTT 애드온도 가져와 봤습니다.

이건 Zigbee 장치와 MQTT 브로커(서버) 간의 연결을 위해 동작되는 애드온 입니다.

두가지 애드온을 살펴봤지만, 그 어디에도 HA에 사용하기 위한다는 말은 없죠?

네 맞습니다. 이건 HA용 서비스들이 아니거든요. HA와는 별개로 동작되는 서비스(서버) 입니다.

HA와 좀 더 밀접한 관계를 가진 애드온들(파일에디터 라던지) 도 있지만, 결국 별개의 서버 입니다.

그럼 이걸 애드온 에서 설치하는 이유는 뭘까요?

바로 관리/설치의 편의성 입니다.

위에 설명드린 MQTT 브로커 라던지, Zigbee2MQTT는 별도의 도커 컨테이너 등으로도 설치가 됩니다.

다만 그 작업을 하려면 기본적으로 도커 컨테이너에 대한 이해부터 시작해서....

알아야할 사항들이 많아지고, 문제발생, 업데이트 등을 진행할때도 조금 더 알아야할 부분이 많습니다.

하지만 애드온으로 진행하면 이런 과정을 알아서 해주기 때문에 편리하죠.

거기다 애드온 끼리는 로그인 과정이 필요 없습니다.

원래 MQTT 와 Zigbee2MQTT 를 설치하려면, MQTT에 계정을 만들어야 하고

그 계정을 Zigbee2MQTT에 설정해 줘야 하고, 마지막으로 HA에도 해당 계정을 입력해야 합니다.

하지만 슈퍼바이저 아래 있는 HA와 애드온들은 비번 입력을 할 필요가 없습니다.

HA의 로그인 계정으로 애드온 계정들이 자동 설정된다고 생각하시면 되요.

그래서 왠만하면 슈퍼바이저 사용이 가능한 방식으로 HA설치를 추천드리고,

그중에서 가장 편한 HA OS방식을 추천드리는 겁니다.

통합구성요소

자 그러면 통합 구성요소는 뭘까요?

위 화면은 제 통합구성요소 화면중 일부 입니다.

뭔가 많지만 애드온 화면에 있던것중 일부가 눈에 띄죠.

바로 Mosquitto broker와 motionEye 입니다.

이건 애드온에도 있고 통합구성요소에도 있네요. 왜일까요?

바로 통합구성요소는 HA에 설치되는 것 이기 때문입니다.

이게 무슨말이고 하니...

아까 HA와 애드온들은 종속된게 아니라 별개라고 말씀드렸죠?

애드온이 4개 설치되어 있다면, 그건 HA에 서비스 4개가 설치된게 아니라

HA / 애드온1 / 애드온2 / 애드온3 / 애드온4 이렇게 총 5개의 서비스(서버)가 돌아가는 상태인겁니다.

이렇게 연결된 애드온들을 HA에서 사용하기 위해선, HA에서 인식을 시켜주는 과정이 필요합니다.

이게 바로 통합구성요소죠.

Zigbee2MQTT 설치하는걸 예를 들어 설명하겠습니다.

설치과정을 보면, 우선 애드온 2개(Mosquitto Broker, Zigbee2MQTT) 를 설치하고

마지막 과정으로 통합구성요소에 Mosquitto Broker(MQTT) 를 설치합니다.

이 과정은 MQTT용 서버(브로커) 를 설치해서 통신을 할 수 있는 기반을 만들고

Zigbee2MQTT 애드온을 이용해서 Zigbee 코디네이터(동글) <-> MQTT 브로커 간 통신을 할 수 있게 해줍니다.

여기까지 하면 HA에 아무것도 표시되지 않습니다.

왜냐? MQTT 서버(브로커) 에서 아무리 데이터를 주고받아봤자 그걸 HA는 모르기 때문이죠.

그래서 HA <-> MQTT 서버(브로커) 간의 통신을 활성화 해줘야 하고

이때 필요한게 바로 통합구성요소의 Mosquitto Broker 를 설치하는 과정 입니다.

이 통합구성요소가 설치되어야 비로소 HA는 MQTT 서버(브로커) 에서 일어나는 일들을 인지할 수 있습니다.

그래서 최종적으로 Zigbee2MQTT의 동작과정을 살펴보면

Zigbee 장치와 Zigbee 코디네이터(동글) 과 통신을 하고,

이 동글은 USB를 통해 Zigbee2MQTT 애드온과 통신을 합니다.

그리고 Zigbee2MQTT 애드온은 동글과 주고받은 데이터를 MQTT 서버(브로커) 로 주고받죠.

이 MQTT 서버(브로커) 를 HA의 MQTT 통합구성요소를 사용해서 인식시켜 주면

비로서 HA에서 MQTT 서버(브로커) 와 통신을 할 수 있게 되고, 미리 연결되어 있던

Zigbee2MQTT 애드온(에 연결된 코디네이터, zigbee 장치) 를 제어할 수 있게 됩니다.

뭔가...복잡하죠?

그래서 Zigbee장치를 사용하는 다른 방법인 ZHA(Zigbee Home Automation) 을 쓰는 이유인거죠.

ZHA는 위 과정에서 애드온 2개를 거치는 과정 없이,

바로 ZHA 통합구성요소<->Zigbee 코디네이터 와 통신합니다.

뭐.....대충 알려드리고자 하는 내용은 간략하게 전달된것 같으니...

오늘 내용은 여기까지!

다음에 또 재미난거 들고 올께요~

728x90
반응형