.Net 으로 SmartThings 에 연결된 기기의 온도와 습도를 조회해서 저장하기 (6/6) – Grafana 대시보드 생성

May 18, 2025 | 0 comments

총 6개의 포스트로 이루어지며 아래 글목록을 보시면 확인이 가능합니다.

개요

InfluxDB 에 저장된 데이터를 기반으로 Grafana 대시보드를 구성하는 과정에 대해서 알아보겠습니다.
InfluxDB 와 Grafana 의 경우 이전 포스트에서 Docker 컨테이너로 구성하는 과정을 이미 설명했기 때문에
Grafana 에서 대시보드만 새로 추가해서 구성하는 과정에 대해서 설명합니다.

대시보드 구성

새로운 대시보드 추가

Grafana 에 접속해서 좌측 Dashboards 페이지에 접속한 다음 New ^ 버튼을 클릭해서 New dashboard 를 선택합니다.

다음 페이지에서 + Add visualization 버튼을 클릭합니다.

데이터 소스를 선택하는 화면에서 데이터 소스를 선택합니다.

데이터 소스가 없는 경우 좌측 메뉴 중에 Connections – Data sources 페이지에 접속해서 추가하시면 됩니다.

패널 편집

소스를 선택하고 나면 다음과 같이 패널을 편집하는 초기 화면을 확인할 수 있습니다.
우측 상단에 Time series 가 선택되어 있는 것을 확인하고 쿼리를 구성해 보겠습니다.

쿼리 추가

하단에 보시면 Flux 쿼리를 입력할 수 있는 영역에 1개가 표시되어 있습니다.
+ Add query 버튼을 클릭해서 2개를 더 추가합니다.
저의 경우 에어컨 온도, 에어컨 습도, 제습기 습도 3가지 항목을 추가했으며, 본인의 보유한 데이터에 맞게 구성해 주시면 됩니다.

다음과 같이 3개의 쿼리를 추가한 다음

개별 항목에 다음 3개의 쿼리를 각각 입력해 주세요

에어컨 온도

from(bucket: "SmartThingsInfluxDBNet")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) =>
    r["_measurement"] == "DeviceData" and
    r["DeviceName"] == "에어컨" and
    r["_field"] == "temperature"
  )
  |> toFloat()
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "aircon_temperature_mean")

에어컨 습도

from(bucket: "SmartThingsInfluxDBNet")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) =>
    r["_measurement"] == "DeviceData" and
    r["DeviceName"] == "에어컨" and
    r["_field"] == "humidity"
  )
  |> toFloat()
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "aircon_humidity_mean")

제습기 습도

from(bucket: "SmartThingsInfluxDBNet")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) =>
    r["_measurement"] == "DeviceData" and
    r["DeviceName"] == "제습기" and
    r["_field"] == "humidity"
  )
  |> toFloat()
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "dehumidifier_humidity_mean")

데이터 확인

Refresh 버튼 좌측에 시간 범위를 수정한 다음 Refresh 버튼을 클릭하면 다음과 같이 데이터가 표시됩니다.

범례 수정

범례가 보기에 좋지 않아서 범례 부분만 수정해 보겠습니다.
우측을 보면 각종 속성을 수정할 수 있는 패널이 있습니다.

AllOverrides 가 탭으로 구분되어 있는 상태에서 Overrides 헤더를 클릭한 다음
+ Add field override 버튼을 클릭합니다.

Fields with name 을 선택한 다음

Choose 를 클릭합니다.

Time 아래에 보이는 3개 항목을 모두 수정할 예정입니다.
영역을 넓게 펼쳐보면 어떤 항목인지 쉽게 구분이 가능합니다.

첫번째 항목을 선택하면 다음과 같이 표시가 됩니다.

+ Add override property 버튼을 클릭하면 다양한 Property 가 표시가 됩니다.

display 를 입력하면 다음과 같이 Property 가 필터링 되어 표시가 됩니다.
Standard options > Display name 을 선택합니다.

none 이라고 표시된 부분에 다음과 같이 에어컨 온도 를 입력합니다.

중앙에 있는 차트의 범례를 보면 다음과 같이 에어컨 온도 로 표시가 되는 것을 확인할 수 있습니다.

나머지 항목도 다음과 같이 모두 수정합니다.

차트 범례를 보면 다음과 같이 표시가 되는 것을 확인할 수 있습니다.

필요한 항목을 모두 수정한 다음 패널 편집 화면의 우측 상단에 있는 Save dashboard 버튼을 클릭해서 대시보드를 저장해 주셔야 합니다.

툴팁도 다음과 같이 수정된 텍스트로 표시가 되는 것을 확인할 수 있습니다.

Learn more on this topic

Related Blog Posts

Join in the conversation

Leave a Comment

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

무료 온라인 전광판

전광판

텍스트를 입력하고 텍스트 효과 및 배경효과 를 변경해서 전체화면으로 표시할 수 있는 전광판 용도로 사용하실 수 있습니다. 각종 스포츠 및 공연 관람시 응원 용도로 사용이 가능합니다.

Carousel

여러개의 슬라이드를 추가하여 프레젠테이션 및 이미지 슬라이드 용도로 사용하실 수 있습니다. 브라우저가 포함된 IT 기기로 큰 모니터에 연결하여 매장 내 공지사항 및 메뉴소개를 이미지로 표시할 수 있습니다.

Pin It on Pinterest

Shares
Share This

Share This

Share this post with your friends!

Shares