Home Assistant에서 일정을 하드코딩하지 마세요—대신 이렇게 하세요
홈 어시스턴트 자동화를 특정 시간이나 특정 요일에만 실행되도록 하고 싶다면 시간 조건을 사용할 수 있습니다. 이렇게 일정을 하드코딩하는 것은 간단하지만, 더 좋은 방법이 있습니다.
하드코딩된 일정은 실제 생활이 변하면 깨진다
당신의 스마트 홈은 당신이 휴가 중인지를 모릅니다
자동화에 일정이 명시적으로 포함되어 있는 것은 여러 가지 문제를 가지고 있습니다. 가장 명백한 문제는 일정이 항상 동일하게 유지되지 않는다는 것입니다.
예를 들어, 아침에 조명을 천천히 밝게 켜서 오전 6시 30분까지 최대 밝기에 도달하도록 만든 자동화가 있을 수 있습니다. 이렇게 하면 더욱 자연스럽게 깰 수 있지만, 여전히 출근 준비를 할 시간은 남습니다. 이 자동화는 평일에만 작동하므로 주말에는 조금 더 오래 침대에 있을 수 있습니다.
대부분의 경우, 이 자동화는 괜찮겠지만, 만약 월요일을 쉬기로 결정한다면, 자동화가 여전히 작동하여 원하지 않는 시간보다 훨씬 일찍 당신을 깨우게 됩니다. 일주일을 쉬면 상황은 더욱 나빠집니다. 언제든지 자동화를 비활성화할 수 있지만, 다시 켜는 것을 잊으면 다음 근무일에 과도하게 늦잠을 잘 수 있습니다.
다른 문제는 일정이 변경되면 이전 일정을 사용하는 각 자동화에 들어가서 변경해야 한다는 것입니다. 동일한 일정을 사용하는 자동화가 여러 개 있는 경우, 이는 보람 없는 일이 될 수 있습니다.
캘린더는 여러분에게 훨씬 더 많은 통제권을 제공합니다
캘린더를 업데이트하면 일정이 변경됩니다
간단하지만 효과적인 해결책은 Workday 통합을 사용하는 것입니다. 이는 Python holidays 모듈을 사용하여 해당 지역의 공휴일을 고려함으로써 실제 근무일이 어떤 날인지 결정합니다. 또한 특정 날짜를 수동으로 포함하거나 제외할 수도 있습니다.
심지어 이 또한 휴가를 가면 무너질 수 있는데, 워크데이 통합은 이를 인식하지 못합니다. 바로 이럴 때 자신의 캘린더를 사용하여 일정을 결정하면 더 많은 제어권을 얻을 수 있습니다. 캘린더를 홈 어시스턴트에 연결하면 일정에 대해 완전한 제어가 가능하며, 캘린더에서 이벤트를 변경하면 자동화가 그에 맞게 반응합니다.
가장 좋은 점은 당신이나 접근 권한이 있는 다른 사람이 언제든지 휴대폰에서 바로 캘린더 항목을 변경할 수 있다는 것입니다. Home Assistant에 접근할 필요가 전혀 없으며, 단지 캘린더 이벤트를 추가, 삭제 또는 편집하면 짧은 시간 안에 자동화 일정이 이에 따라 변경됩니다. 예를 들어, Google 캘린더 통합은 약 15분마다 업데이트를 확인합니다.
홈 어시스턴트에서 캘린더 트리거 사용하기
모든 것을 지배할 하나의 달력
가장 먼저 해야 할 일은 달력을 Home Assistant에 연결하는 것입니다. 사용하는 달력 종류에 따라 여러 옵션이 있습니다. Google 달력 연동은 Google 달력과 잘 작동하지만, 조금 설정이 필요합니다. CalDAV 연동을 사용하면 Apple iCloud 달력을 포함한 WebDAV 기반 달력을 연결할 수 있습니다. 또한 Home Assistant 내에서 자신만의 달력을 만들 수 있는 로컬 달력 연동도 있습니다.
캘린더를 연결하면 캘린더 트리거를 사용할 수 있으며, 이는 선택한 옵션에 따라 이벤트가 시작되거나 종료될 때 실행됩니다. 여러 개의 캘린더가 연결되어 있는 경우 대상 캘린더를 지정할 수 있으며, 이벤트가 정확히 시작되거나 종료될 때 자동화가 실행되지 않기를 원한다면 오프셋을 추가할 수 있습니다.
이 트리거에서는 이벤트를 지정할 방법이 없으므로, 해당 이벤트가 무엇이든 상관없이 캘린더의 어떤 이벤트가 시작되거나 종료될 때마다 자동화가 실행됩니다. 이벤트의 정확한 이름을 기준으로 트리거를 설정하려면 다음과 같은 코드와 함께 템플릿 조건을 추가해야 합니다:
{{trigger.calendar_event.summary == 'event_name'}}
이벤트 이름 어디에든 있는 단어를 기준으로 트리거를 발생시키려면 대신 키워드 조건을 사용할 수 있습니다:
{{'keyword' in trigger.calendar_event.summary}}캘린더 트리거를 테스트할 때 추가하는 이벤트가 최소 15분 이상 뒤로 설정되어 있는지 확인하세요. 캘린더 트리거에는 15분 버퍼가 있으므로 이벤트가 그보다 빨리 예정되어 있다면 자동화가 전혀 작동하지 않을 수 있습니다.
피해야 할 일반적인 실수
종일 이벤트는 온갖 문제를 일으킬 수 있습니다
Home Assistant에서 캘린더 이벤트를 트리거로 사용할 때 주의해야 할 몇 가지 문제가 있습니다. 흔한 문제 중 하나는 종일 이벤트입니다. 이벤트를 특정 시간 대신 종일 이벤트로 캘린더에 추가하는 것은 쉽지만, 그렇게 하면 이벤트의 시작 시간과 종료 시간이 자정 경계에 발생하게 되어 자동화가 트리거되기에 이상적인 시간이 아닐 수 있습니다.
홈 어시스턴트 시스템 시계와 캘린더 시간대가 일치하지 않으면 문제가 발생할 수도 있습니다. 자동화가 올바른 시간에 작동하도록 하려면 두 시계 모두 동일한 시간대로 설정되어 있는지 확인해야 합니다.
조건이 이벤트의 이름에 의존하기 때문에, 이벤트의 이름을 정확하게 지정하거나 모든 적절한 이벤트를 포함할 수 있도록 조건을 충분히 넓게 설정해야 합니다. 예를 들어 일부 이벤트를 'working'이라고 하고 다른 이벤트를 'at work'라고 이름을 지정하면 자동화가 제대로 작동하지 않을 수 있습니다.
캘린더 트리거를 사용하면 자동화 스케줄을 하드코딩하는 것보다 많은 이점이 있습니다. 이를 통해 Home Assistant를 전혀 열지 않고도 스케줄을 쉽게 변경할 수 있으며, 자동화가 정확히 언제 실행될지 훨씬 더 세밀하게 제어할 수 있습니다.




