안녕하세요~ 레이군 입니다.
오늘은 HA를 사용하기 위해 알아야 할 기본적인 것들에 대해서 이야기 해볼까 합니다.
내용을 보신다면, 어차피 다 아는건데 뭘 글까지 적는가? 싶으시겠지만...
저도 실제로 사용하면서 여러 지식이 쌓이고, 당연하다고 생각한 것들이 대부분인데
HA를 처음 접하는 입장에서(혹은 홈IoT를 처음 시작한다면) 이해하기 어려운 부분들이 있는것 같아서...
아예 기초적인 내용들을 좀 다뤄볼까 합니다.
이 시리즈는 명확한 커리큘럼을 가지고 연재하는건 아니므로, 중구난방일 가능성이 높습니다.
HA가 가지는 장점, 무엇을 할 수 있는지 등등.. 이런건 넘어가겠습니다.
오늘의 중점은, HA를 이루는 가장 기본적인 구성요소에 대한 이해 입니다.
HA는 수많은 요소들로 이루어져 있습니다.
이중 가장 기본이며 가장 중요한것이 바로 domain, entity_id, state, attributes 인데요
하나씩 알아보도록 하겠습니다.
이 내용들은 개발자도구 - 상태 항목에 가면 쉽게 이해할 수 있습니다.
domain
![](https://blog.kakaocdn.net/dn/c4OZiC/btrFvWRyKiC/PvujPDk24AEiRqKv7C3HP1/img.png)
domain은 HA에 설정된 각종 요소의 종류 입니다.
automation일수도 있고, light나 switch 혹은 sensor 등등
HA에 존재하는 모든 구성요소는 기본적으로 어떤 계열인지를 나타내는 구분값이 존재하고
이것을 domain 이라고 합니다.
성(last name) 이라고 생각하시면 편합니다.
HA에 설정되어있는 모든것은 이 domain 에 소속되어 있습니다.
entity_id
![](https://blog.kakaocdn.net/dn/3qWZx/btrFvq6qSEr/8ho15xZ9QLnMTFgna7TVe0/img.png)
domain이 성(last name) 이라면, entity_id는 이름(first name) 까지 합친 성명(full name) 이라고 보면 됩니다.
단, 이 entity_id는 절대 중복될 수 없어요.
동일한 이름을 여러개 지정하면, entity_id가 xx.yy_2 / xx.yy_3 이런식으로 구분되어 저장됩니다.
이 구조는 간단합니다. 가령 어떤 전등의 이름을 living 이라고 지정했다면,
전등이니까 light 라는 domain에 속할테고 이름은 living 이 되니 합쳐서 light.living 이 되는거죠.
마찬가지로 도어센서 이름이 front 라고 한다면,
일반적으로 도어센서는 on/off형태로 이루어지니 binary_sensor 로 구분될꺼고 이름을 front 라고 지정했으니
binary_sensor.front 라는 entity_id 를 가지게 될겁니다.
위 캡쳐의 마지막 항목인 automation.3d_printer_finish 도 간단하죠?
자동화 항목인 automation 의 이름이 3d_printer_finish 인 구성요소 인겁니다.
state
![](https://blog.kakaocdn.net/dn/DJdj1/btrFybf96z5/GkHJmUbEzmGvkbgHMOQZCk/img.png)
이것은 해당 구성요소의 현재 상태를 나타냅니다.
이 값은 on/off 일수도 있고, close/open 이 될수도 있겠죠.
온도나 습도센서라면, 25 라던가 56 같은 숫자 형태일수도 있고
날짜/숫자 형태이거나 문자열 일수도 있습니다.
해당 구성요소의 대표적인 상태 라고 보시면 됩니다.
온도센서니까 온도를 나타내고, 도어센서니까 열림/닫힘 상태를 나타내는것 이라고 생각하면 되죠.
자동화 구성시 상태(state) 또는 숫자상태(numeric_state) 로 설정하면 바로 이 state 부분을 체크합니다.
가령 스위치의 on/off 를 기준으로 자동화를 실행한다고 하면, 해당 entity_id의 state 값이
on/off 로 변경되는걸 감지한다는 의미 입니다.
숫자상태도 마찬가지죠.
Attributes
![](https://blog.kakaocdn.net/dn/bGQJbs/btrFyQJCG57/dlyBBVYR9w7713gVPFAvX0/img.png)
해당 구성요소에 추가로 설정된 세부적인 항목을 나타냅니다.
이 값은 해당 구성요소에서 지원하는 세부적인 내용들 나타내는데, 이건 구성요소마다 다 다릅니다.
가령 위 캡쳐의 경우, 15개의 attributes가 존재합니다. 꽤 많은 경우인데요
몇개만 살펴보겠습니다.
unit_of_measurement: W
-> 해당 구성요소의 상태값(state) 의 단위를 나타냅니다.
상태가 65인데 단위가 W이니 이 구성요소의 최종적인 값은 = 65W 로 볼 수 있겠죠.
friendly_name: IoT power
-> 이 센서를 sensor.iot_power 라고 표현하면 보기가 불편하니
보기 편한 이름인 IoT power 라고 설정한다는 의미 입니다. 물론 바꿀 수 있지요
linkquality: 78
-> 이 장치는 z2m을 통해 연결되어 있는데, 해당 장치의 링크퀄리티(lqi) 값이 78 입니다.
이런식으로, 단순히 해당 장치의 이름/상태만으로 나타낼 수 없는 다양한 설정값들이 존재하는데
그게 모두 attributes에 포함됩니다.
배터리 레벨을 받아올 수 있는 장치라면, 배터리 잔여% 같은거나 배터리 전압 같은 내역도 나올 수 있고
오토메이션 구성요소의 경우, 마지막 트리거 시간 등도 확인이 가능합니다.
만약 선풍기나 에어컨 이라면, 바람의 세기 같은게 입력되어 있을수도 있지요.
![](https://blog.kakaocdn.net/dn/bgYEUJ/btrFuoO5JfO/oph9ZzRSxUI13akG40GkDk/img.png)
자동화 구성시 state 또는 numeric_state등의 트리거/조건 에는 속성 이라는 선택항목이 존재합니다.
기본적으로 트리거/조건 을 지정할때 state 혹은 numeric_state 로 설정을 하게 되면
해당 entity_id에서 지정된 state 값을 기준으로 동작합니다.
하지만 여기에 속성(attributes)를 선택하게 되면, 해당 속성의 값을 기준으로 자동화가 진행됩니다.
위 센서를 예를들어, 트리거를 숫자상태(numeric_state) 로 지정하고 이하(below) 60 이라고 넣으면
해당 구성요소의 state 값이 60 이상->이하 로 변경될때 트리거가 됩니다.
하지만 속성(attributes)를 linkquality 로 입력한다면, 기준이 되는 값이 장치의 상태(state) 대신
속성중 linkquality에 적혀있는 숫자인 78이 됩니다.
즉, attributes 항목을 지정하지 않으면 = state의 값을 기준으로 하고
attributes를 지정하면 = 해당 attributes의 값을 기준으로 합니다.
자동화 구성시 속성 부분이 보여서 이걸 지정해야 하나? 싶으실 수 있는데
내가 속성에 있는 값의 변화를 감지하려면 = 해당 속성을 지정하고
상태(state)의 값 변화를 감지하려면 = 비워두면 됩니다. 간단하죠?
자 오늘은 HA의 가장 기본적이면서도 전체를 관통하는 부분에 대해서 이야기 해 보았습니다.
다음에도 쉽고 재미난 내용으로 돌아오겠습니다!
'SmartHome. IoT > SmartHome 응용' 카테고리의 다른 글
Zigbee2MQTT 설치 최신판(feat. sonoff zigbee 3.0) (4) | 2022.06.27 |
---|---|
HomeAssistant(HA) 의 {매우}기본적인 이해 - 2편(도우미 기초) (0) | 2022.06.24 |
HomeAssistant 설치방법의 다양성에 대하여. (0) | 2022.06.16 |
시놀로지 NAS에 VMM으로 HomeAssistant 설치하기 (0) | 2022.06.16 |
HA 설치방법 최신화(라즈비안 + HA Supervised) (3) | 2022.06.14 |