프로젝트 소개

ruuvitag-gollector는 Go로 작성된 자체 호스팅 솔루션으로, Bluetooth Low Energy(BLE) 브로드캐스트를 통해 RuuviTag 센서에서 환경 측정값을 수집하고 다양한 백엔드로 전달합니다. Linux 시스템을 대상으로 하며 BlueZ D-Bus API를 사용하여 센서 데이터를 스캔하고 읽습니다. 이 프로젝트는 펌웨어 2.x 이상을 실행하는 RuuviTag에서 출력되는 RAWv2 형식을 지원합니다. 컬렉터는 측정값을 여러 익스포터로 동시에 푸시할 수 있습니다. 여기에는 InfluxDB(로컬 또는 원격), PostgreSQL 및 TimescaleDB, AWS DynamoDB, AWS SQS, GCP Pub/Sub, MQTT, JSON POST 요청을 수락하는 일반 HTTP 웹훅이 포함됩니다. 각 익스포터는 TOML 구성 파일에서 독립적으로 구성되며, 사용자는 동일한 센서 데이터를 여러 대상으로 동시에 보낼 수 있습니다. 구성은 간단합니다. 사용자는 RuuviTag의 MAC 주소와 사람이 읽을 수 있는 이름을 지정한 다음 연결 세부 정보와 함께 하나 이상의 익스포터를 정의합니다. 기존 데이터베이스 스키마에 맞게 사용자 지정 열 이름을 설정할 수 있고 불필요한 열은 제외할 수 있습니다. 기본 열에는 시간, MAC 주소, 이름, 온도, 습도, 기압, 가속도(x/y/z), 움직임 카운터, 측정 번호, 이슬점, 배터리 전압, TX 전력이 포함됩니다. 애플리케이션은 테스트용 일회성 스캔 모드와 연속 수집용 데몬 모드의 두 가지 모드로 실행됩니다. 시스템에 BlueZ가 설치되어 실행 중이어야 하며, 일반적으로 Bluetooth 어댑터에 접근하려면 높은 권한이 필요합니다. 이 프로젝트는 Raspberry Pi와 같은 저렴한 하드웨어에서 실행되도록 설계되어 취미 생활자나 소규모 환경 모니터링 프로젝트(예: 온실, 테라리움, 대기 데이터 수집)에서 쉽게 사용할 수 있습니다. 컬렉터 자체에는 구독이나 클라우드 서비스가 필요하지 않지만, 대상 데이터베이스와 Grafana와 같은 시각화 도구는 자체 호스팅하거나 클라우드 호스팅해야 합니다.