.Net 으로 SmartThings 에 연결된 기기의 온도와 습도를 조회해서 저장하기 (1/6) – 시스템 개요

Published Apr 30, 2025 | Updated May 18, 2025 | 0 comments

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

개요

이전 포스트에서 Github 의 오픈소스 프로젝트를 사용해서 동일한 기능을 하는 시스템을 구축하는 과정에 대해서 설명하였다.
SmartThings 를 개발자의 입장에서 처음 다루어 본 상황이라 급하게 필요한 기능을 구현하기 위해 이미 개발된 프로젝트로 구축하고 만족했다.

며칠 뒤 저장된 데이터를 확인하기 위해 Grafana 대시보드를 조회해 보니 저장이 되지 않고 있었다.
분명 당일에 데이터가 저장되는 것까지 확인하고 블로그 포스트도 남기고 발행까지 했는데…

컨테이너에서 오류가 발생하고 있고 원인을 찾아보니 문제는 PAT 토큰의 문제였다.
하필 2024년 12월 31일 이후에 발행된 PAT 토큰은 유효 기간이 24시간으로 바뀐 상황이었다.
물론 이전에 생성한 토큰 들은 무려 50년 이었다고 한다.
(참조 링크 : Authorization and Permissions | Developer Documentation | SmartThings)

PAT 가 아닌 OAuth 방식으로 구현된 프로젝트를 찾아보다가 필요한 기능만 직접 구현하기로 하고 시스템을 구축한 상태이다.
시스템 구축 과정에 대한 설명을 기록으로 남긴다.

시스템 구성

삼성 에어컨 + 제습기

SmartThings 와 호환되는 제품으로 온도 및 습도 데이터를 확인할 수 있다.
모바일 앱의 경우 현재 시점의 데이터만 확인이 가능하 이전 기록은 조회가 불가능 하다.

삼성 SmartThings 플랫폼

SmartThings 와 호환되는 제품의 실시간 데이터를 조회할 수 있는 삼성의 플랫폼이다.

MS SQL 데이터베이스

SmartApp 토큰 정보를 저장한다.
SmartThings 플랫폼에서 데이터를 조회하기 위해 사용되는 토큰 정보는 주기적인 갱신이 필요하고, 최종 갱신된 정보를 저장하는 역활을 담당한다.

InfluxDB 데이터베이스

제품별 온도 및 습도 데이터를 일정 시간 간격으로 저장하기 위해 시계열 데이터베이스를 선택했다.

.Net 모니터링 서비스 – SmartApp

  • ASP.NET Core 웹 API 프로젝트를 생성해서 Docker 컨테이너에서 서비스한다.
  • SmartApp 생성 후 최초 인증시 사용할 Callback 로직을 구현한다.
  • SmartApp 토큰 정보는 MS SQL 데이터 베이스에서 조회해서 지정된 시간 간격으로 갱신(1 시간)
  • 삼성 SmartThings 플랫폼에 접속해서 지정된 시간 간격으로 제품별 온도와 습도 데이터를 조회해서 InfluxDB 에 저장(1 분)

Grafana 대시보드

최종 목표는 InfluxDB 에 저장된 데이터를 Grafana 대시보드에서 조회할 수 있게 구현 한다.

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