본문 바로가기

SmartHome. IoT/SmartHome 응용

HomeAssistant의 자동화를 알아보기 - 5.유용한 도구

728x90
반응형

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

자동화 알아보기 기초단계, 거의 끝까지 왔습니다!

이번시간엔 자동화 구성을 진행할때 알고있으면 유용한 도구 몇가지를 소개해 드리겠습니다.

우선 자동화란, 필수 요소 2개와 그 사이에 들어가는 선택적 요소 1개로 이루어져 있습니다.

필수 구성요소는, 자동화의 시작지점을 결정하는 '트리거' / 그리고 '동작' 입니다.

이 사이에 '조건' 값을 필요에 따라 추가할 수 있습니다.

실생활에서 가장 많이 볼 수 있는 자동화인 센서등을 예로 들어보겠습니다.

움직임이 감지되면 -> 불을 켜라

매우 간단하죠?

켜졌다면, 끄기도 해야겠죠.

움직임이 감지되지 않으면 -> 불을 꺼라

이렇게 2가지 자동화는 일반적인 센서등의 기본 자동화 입니다.

조금 더 해볼까요?

움직임이 감지될때 -> 주변이 어두우면 -> 불을 켜라

이렇게 트리거 / 조건 / 동작을 모아서, 우리가 평소에 자주 접하는 자동화를 만들어 보았습니다.

자 그런데... 이게 자동화 구성시 필요한 도구 설명이랑 무슨 관계인가?

그것은 자동화의 기본 구성을 알아야 도구를 제대로 쓸 수 있기 때문이죠.

이 자동화 구성에 유용한 도구들은, 충분히 익숙하고 제대로 구현된 자동화라면 사용할 필요조차 없습니다.

하지만 좀 복잡하거나 수치의 결정이 애매한 자동화를 구성한다면, 매우 유용하게 사용할 수 있을겁니다.

필수와 옵션을 모두 합해, 자동화의 구성을 3단계로 나눠보면

트리거가 발생했을때 -> 조건을 만족하면 -> 동작을 실행해라

라고 할 수 있습니다.

그러면 혹시 자동화가 제대로 동작되지 않는다면 어떻게 해야 할까요?

당연히 이 3단계를 점검해야 합니다.

트리거의 포인트는 명확한지, 조건은 제대로 만족하는지, 동작에 이상은 없는지 를 확인해야죠.

트리거의 포인트는 명확한지

내가 설정한 트리거가 잘 동작되는지 확인을 해야 합니다.

센서등을 예로 들면, 내가 움직이는데 모션이 감지가 되는지를 봐야겠죠.

모션센서라고 해도, 센서마다, 설치 각도에 따라, 거리에 따라 감지하는게 달라지겠죠?

그래서 테스트를 해봐야 합니다.

트리거 지점을 input_boolean.test_1 의 on 상태일때를 기준으로 잡으면,

해당 boolean 값을 off -> on 으로 바꿀때 자동화의 트리거 항목 위에 '트리거됨' 이라는 표시가 뜹니다.

조건을 조금 바꿔서, 경과시간을 3초로 넣으면 off -> on 으로 변경되고 3초 후 '트리거됨' 이라고 표시되죠.

모션센서라면, 휴대폰에서 자동화 편집화면에 들어가서 원하는 위치를 서성거려보면 되겠죠?

이렇게 해서 자동화의 1번 조건인 트리거의 정상동작 유무를 확인할 수 있습니다.

조건은 제대로 만족하는지

자 트리거를 확인했으면 이제 조건값을 봐야겠죠.

input_boolean.test_1 의 값이 on 일때를 조건으로 넣어봤습니다.

조건 우측 상단에 테스트 부분을 누르면, 조건이 만족하지 않으면 빨간색 느낌표, 만족하면 녹색 체크가 뜹니다.

매우 심플하죠?

조도라던가, 습도라던가.. 여러가지 조건이 있을때도 이 테스트 버튼 하나로 확인이 가능합니다.

다만, 조건이 여러개(A/B/C/D)가 있다면, 이건 각각 테스트 해야 합니다.

and/or/not 등 다중조건을 걸었다면, 그 아래 조건을 각각 테스트 할 수 있고

다중조건 자체를 테스트해서 만족여부를 확인할수도 있습니다.

동작에 이상은 없는지

동작이 원하는대로 되어야 비로소 자동화의 마무리라고 할 수 있습니다.

해당 동작의 우측 상단 3점을 눌러, 동작 실행을 눌러보세요.

위 예시는 input_boolean.toggle 서비스로 input_boolean.test_1 을 호출하였습니다.

토글메뉴이기 때문에, 동작을 실행할때마다 test_1이 on / off 로 변경되는걸 볼 수 있습니다.

이 동작의 실행은 단일 동작에 대해서만 확인이 가능하기 때문에, 자동화 전체의 동작을 보기는 어렵습니다.

예시로 구성을 해보았습니다.

input_boolean.toggle 서비스로 test_1을 호출하고

delay를 2초 준 다음

input_boolean.toogle 서비스로 test_2를 호출합니다.

그러면 test_1이 토글되고, 2초를 대기후 test_2를 토글해야 하는데...

동작 메뉴에서 동작 실행을 해본다고 이 순서대로 진행이 되지 않습니다.

그럴때 사용하는게, 자동화 기본구성 항목에 있는 '동작 실행' 메뉴 입니다.

이걸 실행하면, 자동화 동작에 있는 워크플로우를 그대로 실행하게 됩니다.

이런식으로 말이죠.

물론 이게 동작되지 않는 경우도 몇가지 있습니다.

가령, 동작의 조건으로 트리거ID가 들어가 있다던가, 템플릿으로 trigger.to_state 같은게 들어가 있다면

그건 자동화의 트리거를 기반으로 동작을 진행해야 하기 때문에 동작 실행으로는 테스트가 불가능 합니다.

이 경우는, 트리거와 조건값을 테스트 하여 정상 동작이 되는지 확인한 다음

추적 표시하기(자동화 디버깅) 메뉴를 통하여 로그를 봐야 합니다.

이 부분은 전에 살짝 다룬적이 있습니다.

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

위 링크의 중간정도에 보시면, 자동화 디버깅의 대략적인 내용을 확인할 수 있습니다.

다음시간엔 기초강좌 마지막 시간으로, 자동화 구성시 주의해야할 점들에 대해 이야기 해보겠습니다.

728x90
반응형