본문 바로가기
Hardware/Home Assistant(라즈베리파이)

Sonoff SNZB-02(zigbee 온습도계) 측정 주기(reporting interval) 설정하기

by lovey25 2021. 8. 16.
반응형

zigbee 온습도계 중에서 Sonoff의 SNZB-02 모델을 소개하고 추천드린 적이 있었습니다. 깔끔한 디자인도 그렇지만 무엇보다 온습도를 측정하는 기본에 충실한 제품이라서 였는데요. 그런데 측정된 데이터를 서버에 보내주는 주기가 너무 띄엄띄엄했고 이런 데이터라면 에어컨이나 가습기 등을 제어하는 트리거로 사용하기에 문제가 있어서 이 간격을 조절하는 방법에 대해서 공유하려 합니다.

 

zigbee 온습도계, Sonoff SNZB-02

Zigbee타입의 온습도계 두 번째 리뷰입니다. 알리에서 배송비 포함하여 약 9달러에 구매 가능한 온습도계입니다. 지난번에 tuya 제품을 리뷰한 적이 있었는데요. tuya 온습도계는 아무래도 제가 불

kwonkyo.tistory.com

문제점

SNZB-02 센서의 온습도 측정 주기는 일정하지 않고 페어링 때마다 달라지는 모습을 보여줄 때가 많았습니다. 제 경우에서는 일반적으로 습도는 만족스러운 데이터 주기를 보여주었지만 온도는 거의 10에 9 이상은 문제가 있었습니다. 아래 그래프는 제가 사용하고 있는 2개의 SNZB-02 센서의 측정값입니다.

하나는 거실에 있고 하나는 안방에 있습니다. 먼저 온도 그래프를 보면 선이 부드럽게 이어지는 게 아니라 계단 모양으로 거칠게 연결되어 있습니다. 온도를 측정하는 간격이 충분히 짧지 않기 때문인데 대략적으로 1시간에 3번 꼴로만 기록되고 있습니다. 반면 습도는 조금 다른 모습이죠. 거실 습도 그래프에서는 그 차이가 잘 표현되지 않지만 안방 습도 그래프는 위 온도 그래프와는 차이가 확연하게 다릅니다. 안방은 에어컨이 동작하고 있어서 일정 간격으로 습도가 오르내리는 중이었는데 습도가 그 변화를 충분히 잘 따라가고 있습니다.

같은 센서인데 왜 이런 문제가 생기는지 의아한데 인터넷을 찾아보면 많은 사람들이 저와 동일하게 습도는 충분히 자주 측정하지만 온도 측정 간격이 너무 넓다는 불만을 많이 얘기하고 있었습니다. 

다른 Zigbee bridge 환경에서는 어떤지 모르겠지만 Zigbee2MQTT를 사용하신다면 센서 상세정보에서 Reporting이란 탭으로 이동하면 아래와 같은 화면을 볼 수 있습니다.

내용을 보면 온도, 습도, 배터리 전압을 측정해서 그 측정값을 얼마나 자주 서버로 송신할 것인가에 대한 설정값을 담고 있습니다. 그리고 각각에 대해서 수정할 수 있도록 되어 있습니다. 지금 상황에서 딱 필요한 설정 화면입니다. 온도 측정 간격이 너무 띠엄띠엄이니까 온도의 "Min rep change" 값을 50에서 좀 줄이면 될 것 같네요.

Reporting 주기 변경하는 방법

그런데 "Apply" 버튼을 눌러도 변경 값은 적용되지 않습니다. 적용을 누르고 한참 기다리면 화면 하단에 아래와 같은 에러가 표시됩니다. 첨엔 Zigbee2MQTT와 호환성의 문제이거나 제품 특성상 출고 설정을 변경할 수 없는 상태가 아닌가 생각을 했습니다.

센서 설정을 변경하는 방법에 대해서는 제품의 설명서에도 언급되어 있지 않기 때문에 대부분 사람들이 방법을 잘 모르고 있는 경우가 많은 것 같은데요. 저도 거의 포기할 뻔했는데 위에 있는 에러 메시지를 잘 보면 'bindRsp after 10000ms'이란 문구가 있습니다. 정확한 의미는 잘 모르겠지만 바인딩하고 나서 너무 시간이 많이 지났다는 의미인 것 같았고 혹시 페어링 직후 일정 시간 동안만 설정할 수 있는 게 아닌가 싶었습니다.

그렇습니다. 이 측정값을 발송하는 주기를 변경하는 방법은 바로 페어링을 하고 바로 설정값을 변경하는 것이었습니다. 에러 메시지처럼 10000ms이내에 해야 하는 건 아니었고 조금 여유는 있는 것 같았습니다.

센서를 다시 페어링 한 직후에 바로 온도의 Min rep change값을 원래 50이 초기값이었는데 그 값을 25, 10, 5, 1등으로 줄여서 몇 번 테스트를 해봤습니다. 습도의 경우 초기값이 100으로 설정되어 있습니다. 온도는 그보다 더 작은 50이지만 데이터 간격은 오히려 더 넓은데요. 제가 내린 결론은 온도와 습도는 변화하는 범위가 다르고 HA에서 보여주는 소수점 위치가 달라서 아닌가입니다. 요즘 같은 여름이라면 에어컨 가동 여부에 따라서 습도 30% 정도는 가볍게 왔다 갔다 합니다. 그리고 HA에서는 습도는 소수점을 보여주지 않습니다. 반면 실내온도는 3~4도 정도 차이로 오르내리고 소수점 첫째 자리까지 보여주기 때문에 Min rep change값을 습도가 100으로 설정되어 있다면 온도는 최소 10 정도로 설정해야 유사한 간격의 데이터를 얻을 수 있는 것 같습니다.

위와 같이 하나는 10 다른 하나는 1로 설정을 했고 아래는 그 측정값입니다.

안방 온도는 설정값이 10인데 아래 100으로 설정된 값과 비슷한 정도가 나오는 걸 볼 수 있습니다. 그리고 거실 온도는 1로 설정되어 있는데 훨씬 촘촘한 간격의 데이터를 얻을 수 있습니다.

아래는 같은 센서에서 Min rep change값을 50, 10, 5, 1로 변경해서 데이터를 수집한 결과입니다.

숫자가 작아질수록 그래프가 촘촘해지는 걸 볼 수 있죠. 중간에 그래프가 아래로 푹 꺼지는 2포인트는 큰 온도 변화에 대한 데이트를 확인하고 싶어서 냉장고에 집어넣은 결과입니다.

결론

센서의 "Min rep change"라는 설정값을 수정한다면 센서가 서버에 데이터를 전송하는 주기를 조정할 수 있기 때문에 온도나 습도의 변화에 대한 민감도를 조정할 수 있는 것이죠. 다만 측정 데이터를 너무 자주 보내준다면 그만큼 빠른 배터리 소모를 감당해야 하니 나에게 맞는 적당한 주기를 찾아서 적용할 필요는 있을 것 같습니다. 온도의 경우 Min rep change값을 1까지 낮춰서 테스트를 해 봤는데 이 경우 데이터가 발생 빈도가 너무 커서 센서의 오차범위 이내에서도 반응하기 때문에 그래프가 지저분해지는 역효과가 나는 것 같습니다. 제 생각에 냉난방기 온도조절에 사용한다면 5 정도가 적당하지 않을까 싶네요.

결론적으로 SNZB-02는 온습도 모니터링 및 자동화에 사용하기에 역시나 충분히 좋은 센서였구나 였습니다.

 

끝!

반응형

댓글