안녕하세요~ 레이군 입니다.
어제 HomeAssistant의 DB용량 관련 내용을 포스팅 했었습니다.
[IoT/HomeAssistant] - HA 사용시 db용량 다이어트 하기, Recorder / History / Logbook 에 관하여..
그런데, 뭘 빼야할지 감이 잘 안오실듯 하여...
DB를 까보는 방법을 알려드릴께요.
기본 DB 내용 확인하기(Maria DB는 아래 따로 기재)
SQLite Web 애드온 설치하기
자 오늘 해볼 내용은, SQLite Web 이라는 애드온을 사용하는 것 입니다.
이 애드온은, HA의 기본 DB 저장방식인 SQLite의 데이터를 불러와서 웹에서 확인할 수 있게 해주는데요
가장 간단하게 DB의 내용을 확인할 수 있습니다.
먼저 좌측 하단의 설정 - 애드온 항목으로 이동 후
우측 하단의 애드온 스토어로 진입합니다.
상단의 Search 부분에 sql 이라고 입력하면, Home Assistant Cummunity Add-ons 항목에
SQLite Web 이라는 항목이 보이실겁니다.
설치하고, 실행을 하시면 됩니다.
HA를 구동하는 장치에 따라 설치/실행 속도는 다를 수 있으니 적당히 기다려 주세요
실행이 완료되면, 우측 하단의 웹 UI 열기를 실행합니다.
혹시 502 bad gateway 가 뜬다면, 아직 애드온 실행이 잘 안된것이니 조금 기다렸다가 다시 해보세요.
그래도 안 된다? 상단의 로그 항목을 가보세요. 뭔가 에러가 떠있을 수 있습니다.
아마 DB파일을 열 수 없을때 에러가 뜰것 같네요.
실행이 완료되면, 위와 같은 화면을 보실 수 있습니다.
DB파일의 용량은 Size 항목에서 확인이 가능합니다.
전 아무 장치도 없는 서브HA라서 DB용량이 매우 작네요.
좌측에 있는 항목을 클릭 후, 우측 창의 Content 를 누르면 해당 항목에 포함된 내용이 표시됩니다.
전 event_data를 봤는데 277줄의 데이터가 쌓여있네요.
하나씩 눌러보면서 어디가 많이 쌓여있는지 체크를 해주시구요
주로 가장 많은 공간을 차지하는건 states 부분일겁니다.
동일한 기간동안 event_data의 20배가 넘는 데이터가 쌓였네요.
MariaDB 애드온으로 DB를 사용하는 경우, 다음 내용을 참조하시면 됩니다.
애드온 스토어 에서 php 라고 찾으면, phpMyAdmin 이라는 애드온이 보입니다.
이걸 설치하고 실행을 해주세요.
실행 완료 후 웹 UI 열기 누르시고
homeassistant 항목을 누르시면, 우측에 DB내용이 보입니다.
전 총 500만개의 데이터가 있고, 용량은 1.3GB네요.
states가 가장 크고, statistics가 그 다음을 따르고 있습니다.
states 항목에 들어가면 이런식으로 내용이 보입니다!
여기에서 어떤 장치가 주로 데이터를 쌓고 있는지 확인하실 수 있습니다.
개발자도구-이벤트 청취하기 부분에선 너무 순식간에 호로록 지나가기 때문에 보기가 어렵겠지만
여기서 보면 차분하게 체크할 수 있어서 향후 행보를 결정하기가 더 편할거예요.
단시간 내에 매우 많은 데이터가 오가는 장치(블루투스 스캔 이라던가) 가 있다면 데이터 양이 많아질겁니다.
이런 장치들은 기록할 필요가 없다면 빼고, 인터벌 조절 기능이 있다면 조금 조절해서 쓰면 적절해 지겠죠.
기록량 높은 순으로 정렬하기
쿼리를 통해 states의 사용량을 높은 순으로 정렬할 수 있습니다.
SELECT distinct `a`.`entity_id`,
(SELECT count(`b`.`entity_id`) from `states` b where `b`.`entity_id` = `a`.`entity_id`) cnt
FROM `states` a
order by cnt desc
쿼리는 위 내용이며, 사용방법은 다음과 같습니다.
SQLite Web
Content 항목이 아닌 그 옆에 Query 항목으로 이동 후
위 쿼리문을 붙여넣기 합니다.(기존의 내용은 지우면서)
이후 Execute를 누르면, 시간이 걸리고 기다리면 하단에 내용이 표시됩니다.
저는 sun.sun 이 가장 많은 공간을 차지하고 있네요.(연결된 장치가 없는 HA라서 그렇습니다)
phpMyAdmin
phpMyAdmin 은 데이터베이스 보기 항목에 보면 쿼리가 지정되어 있습니다.
인라인 편집을 누른 다음, 쿼리문을 붙여넣기 하고(기존 입력된 문구는 제거) 실행을 눌러주세요.
그러면 이런식으로 가장 많은 사용량 순으로 정렬됩니다.
음... sensor.trash_device_temperature 저건 안 쓰는건데.. 지워야겠네요!
어제와 오늘 내용으로 여러분의 HA가 조금 더 쾌적할 수 있길 바랍니다!
오늘 내용은 여기까지! 다음에 또 재미난거 들고올께요~
'SmartHome. IoT > SmartHome 응용' 카테고리의 다른 글
sonoff zigbee 3.0 dongle-P 펌웨어 업데이트 변경 (0) | 2023.06.25 |
---|---|
Nginx Proxy Manager(NPM)을 이용한 와일드카드 인증서 발급(DNS Challenge) / CloudFlare (0) | 2023.04.06 |
HA 사용시 db용량 다이어트 하기, Recorder / History / Logbook 에 관하여.. (0) | 2023.02.09 |
[HA] 간단한 자동화를 만드는 과정.. (0) | 2022.12.22 |
HA의 애드온 / 통합구성요소에 대한 이해. (1) | 2022.11.23 |