본문 바로가기

카테고리 없음

HomeAssistant의 자동화를 알아보기 - 1.기본정보

728x90
반응형

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

오늘은 홈 어시스턴트(HA)의 꽃이라고 할 수 있는, 자동화에 대해 알아보려고 합니다.

자동화에 대해서는 이전에도 포스팅한 이력이 있습니다.

https://blog.naver.com/ray0412/221571829000

간단한 개념은 위 링크를 참조하시면 되겠습니다.

이제부터, 자동화 구성시 들어간 내용들을 좀 더 알아보겠습니다.

강좌는 총 6개 섹션으로 이루어져 있으며, UI에디트 기준으로 설명드리겠습니다.

UI의 자동화 구성은 크게 4가지 부분으로 나눠져 있습니다.

맨 위쪽에서 자동화의 기본 정보 및 동작방식을 설정하고,

자동화 시작을 위한 트리거를 넣고, 자동화 동작을 위한 조건을 추가한 다음

어떤 동작을 진행할지를 결정합니다.

이중 조건 부분은 옵션이고, 나머지 3가지는 필수입니다.

이제부터 하나씩 알아가 보도록 하겠습니다.

새롭게 자동화를 만들면, 위와 같은 화면을 볼 수 있습니다.

가장 위에 '새로운 자동화' 라는 글이 보이는데, 기본적으로 새 자동화를 만들면 설정되는 이름입니다.

자동화의 이름을 바꾸면,

이런식으로 가장 상단의 이름도 변경됩니다.

설명 추가 부분을 누르면, 설명을 입력할 수 있는 화면이 나타납니다.

설명은 자동화 동작이나 이름등에 전혀 관계가 없는, 주석과 같은 역할을 합니다.

비슷한 자동화가 많을 경우, 세부 동작을 설명에 입력해 두면 편할것 같네요.

아래쪽 모드 부분을 누르면, 단일(기본값) / 다시 시작하기 / 대기열 / 병렬 이렇게 4가지 메뉴가 나옵니다.

이중 단일(기본값) / 다시 시작하기 이 두가지 메뉴는 별다른 설정이 없고

대기열 / 병렬 에만 최대 대기열 길기, 최대 병렬 실행수 라는 추가 설정이 존재합니다.

https://www.home-assistant.io/docs/automation/modes/

원문은 이쪽을 참조하시면 됩니다.

자동화 동작에서 동작방식에 대한 구분이 필요한 이유는, 자동화 시작-완료 까지의 시간이 걸릴 경우 입니다.

자동화 모드에 따른 동작의 순서도 입니다.

single(단일) - 자동화가 동작중일때 해당 자동화가 다시 호출되는 경우 두번째 호출을 무시

restart(다시 시작하기) - 자동화가 다시 호출되면, 기존 동작을 멈추고 자동화 액션을 처음부터 다시 시작

queued(대기열) - 자동화가 다시 호출되면, 기존 자동화 동작이 완료될때 까지 기다렸다가 처음부터 다시 시작

parallel(병렬) - 자동화가 다시 호출될때, 기존 자동화 동작은 유지하고 호출시점부터 새로운 자동화 동작도 시작

예시를 들어서 설명드리겠습니다.

트리거 : 모션센서 감지됨

동작 : 불 켜기 - 60초 후(delay) - 불 끄기

모션이 감지되고, 30초 후 다시 모션이 감지되는 상황

단일

자동화 동작중(delay) 에 동일 자동화의 두번째 트리거가 동작되었으므로

두번째 트리거는 무시하고, 첫번째로 동작중인걸 마무리 합니다. 그러므로 60초 후 불이 꺼집니다.

다시 시작하기

30초에서 두번째 트리거가 동작되었으므로, 불 켜기 동작을 실행(이미 켜져있으므로 변화 없음)

이후 60초를 대기하므로, 최초 동작시점 대비 90초 후 불이 꺼집니다.

대기열

동작중(delay) 에 두번째 트리거 된걸 쌓아두었다가 자동화 동작이 완료되면 다시 시작합니다.

불 켜짐 - 60초후 - 꺼짐 - 불 켜짐 - 60초 후 - 꺼짐

의 동작이 진행되므로, 최초 동작시점에서 60초 후 불이 꺼졌다가 바로 켜지고, 60초 지나고 꺼집니다.

delay 시간 내에 다시한번 모션이 감지된다면, 그때마다 켜짐-60초-꺼짐 루틴이 계속 추가되며

이 숫자는 최대 대기열 길이 만큼 쌓입니다.

병렬

두번째 트리거가 발생되면 그 시점부터 두가지의 자동화가 동시에 동작됩니다.

30초에서 두번째 트리거가 동작되었으므로 불 켜기를 실행(이미 켜져있으므로 변화 없음)

최초 동작중인 자동화가 60초 후 불 꺼짐이므로, 처음 동작시점에서 60초 후 불이 꺼짐

병렬동작으로 두번째 트리거 후 60초(최초 트리거 후 90초 시점) 에서 불이 꺼짐(이미 꺼져있으므로 변화 없음)

이 병렬동작은, 최대 병렬 길이 만큼 쌓일 수 있습니다.

여기에 사용자의 개입이 있다면 조금 더 복잡해집니다.

첫번째 모션 발생해 트리거 되고, 20초 시점에서 수동으로 불을 껐다고 가정해 봅시다.

단일

자동화 동작중(delay) 에 동일 자동화의 두번째 트리거가 동작되었으므로

두번째 트리거는 무시하고, 첫번째로 동작중인걸 마무리 합니다. 그러므로 20초에서 불이 꺼진 상태를 유지합니다.

다시 시작하기

30초에서 두번째 트리거가 동작되었으므로, 불 켜기 동작을 실행(20초에 수동으로 껐으니 다시 켜짐)

이후 60초를 대기하므로, 두번째 트리거 시점에서 60초 후 불이 꺼집니다.

대기열

동작중(delay) 에 두번째 트리거 된걸 쌓아두었다가 자동화 동작이 완료되면 다시 시작합니다.

불 켜짐 - 60초후 - 꺼짐 - 불 켜짐 - 60초 후 - 꺼짐 의 순서로 동작해야 하는데

20초 에서 수동으로 꺼졌으므로, 최초 동작시점에서 60초 후 불이 꺼짐(이미 꺼져있으므로 변화 없음)

이후 두번째 트리거의 동작이 실행되면서 불이 켜지고, 60초 지나고 꺼집니다.

병렬

두번째 트리거가 발생되면 그 시점부터 두가지의 자동화가 동시에 동작됩니다.

20초에서 불이 꺼졌지만, 30초에서 두번째 트리거가 동작되었으므로 불 켜기를 실행

최초 동작중인 자동화가 60초 후 불 꺼짐이므로, 처음 동작시점에서 60초 후 불이 꺼짐

병렬동작으로 두번째 트리거 후 60초(최초 트리거 후 90초 시점) 에서 불이 꺼짐(이미 꺼져있으므로 변화 없음)

이런식으로, 자동화 동작방식에 대한 정확한 이해가 있다면 원하는 자동화를 구성하기 수월해 집니다.

단일 모드와 delay를 이용하여 자동화의 루프 또는 중복동작을 방지할수도 있습니다.

가령 트리거가 여러개 있는 동일한 동작을 하는 자동화가 있는 경우

트리거 구성에 따라 짧은 시간 내에 트리거가 연속으로 동작될 수 있습니다.

그러면 자동화가 연속으로 동작되기도 하는데요 가끔은 이런게 불편합니다.

이때 자동화의 맨 끝에 delay로 1초, 2초 정도 넣어두게 되면, 자동화는 보통 1번만 실행됩니다.

자동화 동작은 어떤 서비스를 호출하느냐에 따라 다르지만, 일반적은 스위치나 라이트 켜고/끄는 동작들은

0.0x초 내로 완료되므로 이것저것 다 해도 자동화의 총 동작시간은 딜레이가 없다면 거의 1초 이내거든요.

자 오늘은 이렇게 자동화 알아보기 첫번째 시간

자동화의 기본적인 설정과 동작방식에 대한 이해를 해보았습니다.

다음시간엔 더 유익한 내용으로 찾아오겠습니다!

728x90
반응형