Platform Integrations
- 센서 장치별로 나눠서 데이터를 분할하는 데이터 파이프라인을 구출 할 수 있다.
- 받은 데이터를 처리해서 외부 플랫폼으로 특정 포맷으로 전송할 수 있다.
참고 문헌
Platform Integrations
Platform Integrations Documentation
thingsboard.io
주요 내용
> Converter type:
Uplink: 디바이스 → thinksboard
Donwlink: thinksboard → 서드파티 및 외부 플랫폼
Intergration Type: Uplink, Downlink 의 통신 방식
Advanced decoding paramters: 이 리스트에 추가된 key들은 metadata에서 추출한 값이 기존 device attribute나 telemetry 에 없는 경우에만 저장됩니다.
Main decoding configuration에서 할 수 있는 것
1. Payload 해석 (Decoding)
- payload는 바이너리 혹은 문자열 등 다양한 형식으로 수신됩니다.
- 이를 decodeToString(payload) 또는 decodeToJson(payload)로 해석 가능.
var payloadStr = decodeToString(payload); // 문자열로 해석
var data = decodeToJson(payload); // JSON으로 해석
2. 디바이스 정보 정의
- ThingsBoard에 등록할 deviceName, deviceType 지정
var deviceName = "Sensor-" + metadata.devEUI;
var deviceType = "temperature-sensor";
3. 속성(attributes) 및 텔레메트리(telemetry) 데이터 지정
var attributes = {
model: "T1000",
version: "1.0"
};
var telemetry = {
temperature: data.temp,
humidity: data.hum
};
✅ 4. 결과 객체 반환
- 반환 형식은 아래 구조여야 함:
return {
deviceName: deviceName,
deviceType: deviceType,
attributes: attributes,
telemetry: telemetry
};
또는, assetName과 assetType을 쓸 수도 있음 (자산 자동 생성 시)
✅ 5. metadata 기반 조건 분기 처리
- metadata에는 포트 번호, LoRa App ID, device EUI 등 외부 정보가 담겨 있어, 다양한 포맷 분기 처리 가능
if (metadata.port === 2) {
// port 2이면 습도 센서로 해석
}
대표적인 유즈케이스 예시
Use case | 동작 내용 |
LoRaWAN 포트별 디코딩 | metadata.port로 포맷 분기 |
장치별 디코딩 | metadata.devEUI로 deviceName 구성 |
다양한 형식 처리 | payload가 base64, HEX, JSON일 때 대응 |
여러 값 동시 저장 | 온도, 습도, 배터리 값을 telemetry로 저장 |
센서 장치별로 나눠서 데이터를 분할하는 데이터 파이프라인을 구출 할 수 있다.
ThingsBoard PE Edge
“Edge는 현장에 설치하는 미니 ThingsBoard 서버이며, 중앙 서버(Cloud/PE)와 자동으로 동기화되도록 구성합니다.”
1. [중앙 서버]에서 Edge 등록
- ThingsBoard PE(서버) 로그인
- 왼쪽 메뉴에서 Edge → + 버튼
- Edge 이름, 설명 입력 후 저장
- 생성되면 Access Token 확인 가능 → Edge 장비에서 이 토큰 사용
📌 여기서 생성된 Edge는 “대기 중” 상태이며, 아직 연결은 안 되어 있음.
2. [현장]에 ThingsBoard Edge 설치
- Ubuntu 서버나 장비에 다음 명령으로 Edge 설치:
# GPG 키 및 repo 추가
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
echo "deb <https://repo.thingsboard.io/deb/> stable main" | sudo tee /etc/apt/sources.list.d/thingsboard.list
sudo apt update
# 설치
sudo apt install thingsboard-edge
1. 설정 파일 열기:
sudo nano /etc/thingsboard-edge/conf/thingsboard-edge.conf
2. 아래 항목 수정:
cloud.rpc.host=<<중앙 서버 IP>>
cloud.rpc.port=7070
cloud.rpc.enabled=true
cloud.rpc.access_token=<<중앙에서 복사한 엣지 Access Token>>
3. 실행:
sudo service thingsboard-edge start
4. 로그 확인:
sudo journalctl -u thingsboard-edge -f
☑ Edge가 중앙 서버에 연결되면 상태가 "ONLINE"으로 바뀜
✅ 3. Edge에서 장치(Device) 생성/운영
현장 Edge 웹 UI (http://localhost:8080) 접속 후:
- 로그인 (기본: tenant@thingsboard.org / tenant)
- 장치(Device) 생성
- 텔레메트리 테스트 전송
- 알람, Rule Chain 구성 가능
💡 이후 해당 정보는 자동으로 중앙 서버에 동기화됨!
4. [중앙 서버]에서 Edge 확인 및 관리
- 중앙 서버의 Edge 메뉴에서 상태가 "ONLINE"으로 보임
- 해당 Edge를 클릭하면:
5. Edge에 Rule Chain 배포하는 방법
- 중앙 서버에서 Rule Chain 생성
- 해당 Rule Chain을 Edge에 "배포(assign)":
Rule Chains → 원하는 Rule Chain → |||| → Assign to Edge
💡 배포된 Rule Chain은 Edge에서 로컬로 실행됨
6. 실제 활용 예시
예시 | 동작 흐름 |
CO2 센서 → Edge | 센서 → Edge로 MQTT 전송 → Edge에서 Rule Chain으로 알람 발생 → 중앙 서버에 알람 동기화 |
공장 A의 모든 장치 → Edge A | 현장 장치들은 인터넷 없어도 Edge A에서 계속 동작 가능 |
현장 대시보드 | Edge UI에서 실시간 현장 모니터링 가능 + 중앙에서도 동기화된 화면 제공 |
운영 팁
항목 | 팁 |
데이터 손실 방지 | Edge는 자체 DB로 일시 저장 후 재전송 (오프라인 중에도 안전) |
현장 테스트 | 로컬 대시보드로 장치 상태 확인 가능 |
업데이트 | 중앙에서 Rule Chain, 장치 구성 변경 후 Edge에 배포 가능 |
'Computer Science > CS 지식' 카테고리의 다른 글
Window 도커(Docker) 설치 및 환경 구축(feat. WSL) (0) | 2025.05.27 |
---|---|
ModScan과 Python을 이용한 Modbus 통신 (feat. Pymodbus) (0) | 2025.04.16 |
교류 전력과 역률(Power Factor) (0) | 2025.03.10 |
[Modbus] Modscan & Modsim 으로 TCP 통신하기 (0) | 2025.03.09 |
모드버스(Modebus) 프로토콜 (feat. RTU, TCP/IP, Function Code) (0) | 2025.03.07 |