본문 바로가기
Homeassistant

[Homeassistant] 커스텀 컴포넌트와 SCAN_INTERVAL에 대한 잡담

by miumida 2021. 6. 17.

끄적끄적.

 

YAML으로 컴포넌트를 등록해서 추가할때는 scan_interval에 값을 입력하면 반영이 됐다.

- platform: naver_weather
  scan_interval: 900

하지만 YAML로 추가 해놓은 컴포넌트는 귀찮지만 또 가서 직접 수정해서 반영해야만 한다.

그리고 요즘의 HA 트렌드로는 통합구성요소로 넘어가는 과도기적인 시점이라 config_flow 작업을 다 해줘야 한다.

물론 귀찮아서 하지말까라는 생각도 충분히 많이 하고 있는 중이다.

 

통합구성요소 적용을 하고 SCAN_INTERVAL을 추가할 때 적용할 수 있을까 하고 config_flow 설정값 중 하나로 입력받게 했다.

 

소스상에 초기 선언해놓은 값은 300초.

통합구성요소 추가 시, 입력한 SCAN_INTERVAL 값은 450초.

생각으로는 450초 간격으로 당연히 되어야한다고 생각이 들지만, 현실은 300초 간격으로 업데이트.

SCAN_INTERVAL = timedelta(seconds=300) // 300초

... 중략 ...

def async_setup_entry(hass, config_entry, async_add_entities):
    global SCAN_INTERVAL
    SCAN_INTERVAL = config_entry.data[CONF_SCAN_INTERVAL] //통합구성요소 config_flow 입력값으로 받은 scan_interval

몇일을 이리 조금 저리 조금 바꿔가면 테스트를 해봤지만, 최종적으로 내린 결론은.

초기에 컴포넌트가 로딩되면서 SCAN_INTERVAL에 초기 세팅되어 있는 값으로 고정되는거 같다.

 

이전에 랜이님께서 네이버날씨 리뉴얼 해주시면 비슷한 내용으로 적으셨던 내용이 있었던걸로 기억한다.

 

위에 소스상에서 config_entry.data에 scan_interval 값을 가져와서 넣으면 SCAN_INTERVAL 값은 변경되긴 하지만,

실제 업데이트 간격은 바뀌지 않고 그냥 계속 컴포넌트 로딩시, 초기값으로 따라간다.

 

이거 좀 해볼거라고 테스트 하면서 괜히 안 받아도 되는 스트레스만 받은거 같다.

 

공식 개발자문서에서 SCAN_INTERVAL을 사용하면 된다라고 되어 있지만,

그걸 원하는대로 바꿀 수 있다는 말이 없긴하지만, 하지만 바꿔서 적용할 수 있는 방법도 있었으면 더 좋았을거 같은데.

 

 

그냥 SCAN_INTERVAL은 때려치우자.

넌, 안되겠다.

 

구글링으로 dynamic scan_interval homeassistant development로 검색해도 딱히 관련된 몇개 나오긴 한데,

그다지 도움되지는 않는 듯,,,

댓글