죄송합니다. 브라우저가 JavaScript를 지원하지 않습니다!
로그인

Docker MQTT 에너지 모니터링: 고급 IAMMETER-Docker 설정

Docker MQTT 에너지 모니터링 및 고급 구성

기본 IAMMETER-Docker 서버가 실행된 후, 로컬 MQTT 에너지 모니터링 서버로 확장하거나, MySQL을 사용하여 더 큰 데이터셋을 처리하고, 태양광 데이터를 PVOutput으로 전달하며, 호환되는 타사 측정값을 수용할 수 있습니다.

이 가이드는 고급 데이터 경로 및 스토리지 옵션을 다룹니다. 설치, 영구 볼륨, 첫 로그인, 미터 설정, 백업 및 컨테이너 업그레이드는 Self-Hosted Energy Monitoring with Docker부터 시작하세요.

IAMMETER meter / compatible device / custom application
                         │
             ┌───────────┼───────────┐
             │           │           │
            HTTP        MQTT       REST API
             │           │           │
             └───────────┼───────────┘
                         ▼
                  IAMMETER-Docker
                         │
       ┌─────────────────┼─────────────────┐
       ▼                 ▼                 ▼
 SQLite / MySQL     MQTT subscribers     PVOutput

프로젝트에 필요한 인터페이스만 사용하십시오. 간단한 로컬 모니터링 설치에는 MySQL, 외부 MQTT 클라이언트 또는 데이터 전달이 필요하지 않습니다.

1. 고급 기능 활성화 전 확인 사항

기본 설치가 안정적으로 작동하는지 확인하십시오:

  • IAMMETER-Docker 컨테이너가 실행 중입니다;
  • /app/data가 영구 스토리지에 매핑되어 있습니다;
  • Docker 호스트가 안정적인 LAN 주소를 사용합니다;
  • 사이트 시간대가 올바릅니다;
  • 최소 하나의 미터 또는 테스트 데이터 소스가 작동 중입니다;
  • 기본 비밀번호가 변경되었습니다;
  • 최신 백업이 존재합니다.

기본 배포는 다음 포트를 노출합니다:

  • 5050 — 웹 애플리케이션 및 API용;
  • 1883 — MQTT용.

두 포트 모두 인터넷에 직접 노출하지 마십시오. 원격 접근이 필요할 때는 방화벽, VPN 또는 기타 제어된 접근 계층을 사용하십시오.

2. SQLite 또는 MySQL 선택

IAMMETER-Docker는 간단한 기본 배포를 위해 SQLite를 사용하며, 대규모 데이터셋이 필요한 설치를 위해 MySQL을 지원합니다.

Database Best for Advantages Considerations
SQLite 가정, 테스트 및 소규모 로컬 배포 별도의 데이터베이스 서비스 불필요, 초기 설정 용이 데이터베이스가 애플리케이션 볼륨에 종속됨
MySQL 대규모 또는 장기 실행 설치 별도의 데이터베이스 서비스, 증가하는 데이터셋에 더 적합 데이터베이스 배포, 자격 증명, 백업 및 유지보수 필요

단지 사용 가능하다는 이유만으로 MySQL로 전환하지 마십시오. 예상 데이터 양, 보존 기간 또는 데이터베이스 관리 요구 사항이 추가 서비스를 정당화할 때 사용하십시오.

2.1 MySQL 사전 준비

IAMMETER-Docker에서 MySQL을 선택하기 전에:

  1. 접근 가능한 MySQL 서버를 배포하십시오;
  2. 전용 데이터베이스와 사용자를 생성하십시오;
  3. 해당 사용자를 필요한 데이터베이스로만 제한하십시오;
  4. IAMMETER-Docker 컨테이너에서 네트워크 접근을 확인하십시오;
  5. 정기적인 데이터베이스 백업을 구성하십시오;
  6. 데이터베이스 호스트, 포트, 이름 및 자격 증명을 안전하게 기록하십시오.

그런 다음 IAMMETER-Docker에서 MySQL 연결 설정을 입력하고 새 측정값이 저장되는지 확인하십시오.

Configure MySQL in IAMMETER-Docker

데이터베이스 모드를 변경하기 전에 기존 IAMMETER-Docker 데이터를 백업하십시오. 변경 후 기록 데이터와 새 업로드를 확인하십시오.

3. IAMMETER-Docker를 MQTT 에너지 모니터링 서버로 사용

IAMMETER-Docker는 두 가지 다른 방향의 MQTT를 지원합니다:

  1. IAMMETER-Docker로 게시: 미터 또는 호환 애플리케이션이 Docker 서버로 측정값을 전송합니다.
  2. IAMMETER-Docker에서 구독: Node-RED, 사용자 정의 서비스 또는 다른 MQTT 클라이언트가 서버에서 실시간 측정값을 수신합니다.

이 두 경로는 동일한 토픽 패턴을 사용하지만 인증 방식이 다릅니다.

3.1 MQTT 토픽

문서화된 실시간 토픽은 다음과 같습니다:

device/<SN>/realtime

<SN>을 IAMMETER-Docker에 등록된 시리얼 번호로 바꾸십시오. MQTT 토픽과 클라이언트 구성의 SN이 로컬 플랫폼에서 생성된 미터와 일치해야 합니다.

3.2 IAMMETER-Docker로 에너지 데이터 게시

게시 장치 또는 애플리케이션의 설정:

Setting Value
Broker IAMMETER-Docker 서버의 IP 주소 또는 호스트명
Port 기본값 1883
Authentication Client ID
Client ID IAMMETER-Docker에 등록된 미터 SN
Topic device/<SN>/realtime
Payload IAMMETER 지원 업로드 데이터 형식

Publish energy data to IAMMETER-Docker through MQTT

프로덕션 데이터를 사용하기 전에:

  1. IAMMETER-Docker에 SN을 등록하십시오;
  2. 테스트 페이로드를 하나 게시하십시오;
  3. 전압, 전류, 전력 및 에너지 필드를 확인하십시오;
  4. 상 또는 채널 수를 확인하십시오;
  5. 단위와 유효 전력 방향을 확인하십시오;
  6. 그런 다음 연속 게시를 활성화하십시오.

3.3 실시간 에너지 데이터 구독

MQTT 구독자 설정:

Setting Value
Broker IAMMETER-Docker 서버 주소
Port 기본값 1883
Authentication IAMMETER-Docker 사용자 이름 및 비밀번호
Topic device/<SN>/realtime

Subscribe to IAMMETER-Docker real-time data

일반적인 구독자에는 다음이 포함됩니다:

  • Node-RED 자동화 플로우;
  • 로컬 데이터 처리 서비스;
  • MQTT 디버깅 클라이언트;
  • 선택된 측정값을 전달하는 게이트웨이;
  • 사용자 정의 대시보드 또는 알림 서비스.

Node-RED가 주요 애플리케이션이고 IAMMETER-Docker의 기록 저장소가 필요하지 않은 경우, 미터는 MQTT, Modbus TCP 또는 자체 로컬 API를 통해 Node-RED에 직접 연결할 수도 있습니다. 옵션은 Node-RED 에너지 미터 가이드에서 비교하세요.

4. MQTT 테스트 및 문제 해결

광범위한 와일드카드 구독보다는 단일 미터와 정확한 토픽으로 시작하십시오.

데이터가 나타나지 않을 때 확인할 사항:

  • 포트 1883이 컨테이너에서 매핑되어 있습니다;
  • 클라이언트가 LAN을 통해 Docker 호스트에 도달할 수 있습니다;
  • SN이 IAMMETER-Docker에 존재합니다;
  • MQTT 클라이언트 ID와 토픽이 동일한 SN을 사용합니다;
  • 토픽이 예상된 대문자/소문자로 device/<SN>/realtime입니다;
  • 게시 및 구독 인증 모드가 혼동되지 않았습니다;
  • JSON 페이로드가 지원되는 필드 순서와 단위를 따릅니다;
  • 다른 MQTT 클라이언트가 동일한 클라이언트 ID를 재사용하여 세션을 끊지 않습니다.

안정적인 플로우를 위해:

  • 각 구독자에 고유한 클라이언트 ID를 사용하십시오;
  • 재연결 및 중복 메시지를 처리하십시오;
  • 데이터베이스에 쓰기 전에 페이로드의 유효성을 검증하십시오;
  • 저장된 모든 측정값과 함께 소스 SN을 기록하십시오;
  • 암호화되지 않은 MQTT 포트를 공개적으로 노출하는 대신 네트워크 격리를 사용하십시오.

5. 태양광 데이터를 PVOutput으로 전달

PVOutput은 태양광 발전 및 에너지 소비 데이터를 공유하고 비교하기 위한 타사 서비스입니다. IAMMETER-Docker는 사이트 데이터를 PVOutput으로 전달할 수 있습니다.

IAMMETER-Docker가 로컬 수집 서버로 유지되지만 공개 또는 외부 태양광 보고를 위해 PVOutput이 필요한 경우 이 옵션을 사용하십시오.

전달을 활성화하기 전에:

  1. 올바른 PVOutput 시스템을 생성하거나 선택하십시오;
  2. 필요한 PVOutput 자격 증명을 획득하십시오;
  3. IAMMETER-Docker에서 Grid 및 Inverter 채널이 올바르게 할당되었는지 확인하십시오;
  4. 사이트 시간대를 확인하십시오;
  5. 의도한 사이트에 대해서만 전달을 활성화하십시오;
  6. 첫 번째 완전한 날 이후 두 시스템의 일일 합계를 비교하십시오.

Forward IAMMETER-Docker solar data to PVOutput

PVOutput 전달을 위해서는 Docker 호스트에서 인터넷 접근이 필요합니다. 이는 로컬 모니터링과 별개입니다: 일시적인 PVOutput 연결 실패가 미터가 로컬 서버에 계속 업로드하는 것을 방해해서는 안 됩니다.

6. 호환되는 Tasmota 장치에서 데이터 수신

IAMMETER-Docker에는 Tasmota를 실행하는 계량 기능 장치를 위한 문서화된 MQTT 워크플로우가 포함되어 있습니다. 원래 예제는 Sonoff POW R2를 사용했습니다.

이는 지원되는 에너지 페이로드를 위한 호환성 경로이며, 모든 Tasmota 장치나 템플릿이 동일한 측정 구조를 생성한다는 의미는 아닙니다. 배포 전에 실제 장치와 펌웨어를 테스트하십시오.

다음 Tasmota MQTT 구조를 사용하십시오:

Setting Value
Host IAMMETER-Docker IP 주소
Port IAMMETER-Docker MQTT 포트, 일반적으로 1883
Client IAMMETER-Docker에 등록된 SN
User 이 문서화된 게시 워크플로우에서는 비워 둠
Password 이 문서화된 게시 워크플로우에서는 비워 둠
Topic IAMMETER-Docker에 등록된 SN
Full Topic device/%topic%/%prefix%/

Configure a compatible Tasmota meter for IAMMETER-Docker

구성 후, 장치가 지원하는 경우 전압, 전류, 유효 전력, 에너지 및 역률을 포함하여 IAMMETER-Docker에서 보고된 각 값을 확인하십시오.

Tasmota electricity data in IAMMETER-Docker

7. IAMMETER-Docker REST API 사용

IAMMETER-Docker는 로컬 서버에서 대화형 API 문서를 제공합니다:

http://<docker-host-ip>:5050/docs

REST API는 다음 용도로 사용할 수 있습니다:

  • 사용자 정의 게이트웨이에서 지원되는 측정값 업로드;
  • 개인 대시보드용 데이터 조회;
  • 로컬 애플리케이션을 자체 호스팅 서버에 연결;
  • 통합 자동화 전에 페이로드 테스트.

API 접근은 신뢰할 수 있는 네트워크로 제한하십시오. 외부 시스템이 원격으로 연결해야 하는 경우, 애플리케이션 포트를 보호 없이 노출하지 말고 적절한 보안 접근 계층 뒤에 서비스를 배치하십시오.

IAMMETER-Docker를 사용하는 대신 완전한 수신기 또는 사용자 정의 플랫폼을 구축하는 개발자는 자체 에너지 모니터링 시스템 개발을 참조하십시오.

8. 로컬 스토리지와 클라우드 서비스 결합

자체 호스팅이 모든 외부 서비스를 비활성화해야 한다는 의미는 아닙니다. IAMMETER-Docker는 로컬 기록 시스템이 될 수 있으며, 선택된 데이터는 다른 곳으로 전달됩니다.

Architecture Local data Internet dependency Best for
Local only IAMMETER-Docker 배포 후 불필요 프라이버시, 오프라인 사이트 및 LAN 대시보드
Local + IAMMETER-Cloud IAMMETER-Docker 및 IAMMETER-Cloud 전달에 필요 로컬 사본과 IAMMETER-Cloud 보고서 및 원격 접근
Local + PVOutput IAMMETER-Docker 및 PVOutput 전달에 필요 PVOutput을 사용하는 태양광 사용자
Local + MQTT subscriber IAMMETER-Docker 및 구독자 정의 스토리지 로컬 구독자일 경우 불필요 Node-RED, 자동화 및 사용자 정의 처리

명확한 목적이 있는 대상만 활성화하십시오. 더 많은 대상은 더 많은 자격 증명, 네트워크 종속성 및 문제 해결 경로를 생성합니다.

9. 고급 배포 체크리스트

  • 기본 IAMMETER-Docker 수집이 이미 안정적입니다.
  • 영구 데이터 및 데이터베이스 백업이 확인되었습니다.
  • MySQL은 운영 오버헤드가 정당화될 때만 사용됩니다.
  • MQTT 포트 1883은 신뢰할 수 있는 네트워크에서만 접근 가능합니다.
  • 모든 MQTT 클라이언트는 적절하고 고유한 클라이언트 ID를 사용합니다.
  • 미터 SN, 토픽 및 등록된 장치가 일치합니다.
  • 페이로드 단위, 상 수 및 전력 방향이 테스트되었습니다.
  • PVOutput 또는 클라우드 전달 실패가 로컬 수집을 중단하지 않습니다.
  • Tasmota 호환성이 실제 장치 및 펌웨어로 확인되었습니다.
  • 변경 사항은 더 큰 배포에 적용되기 전에 하나의 미터에서 테스트됩니다.

10. 버전 기록 및 레거시 참고 사항

위 섹션은 현재 문서화된 IAMMETER-Docker 워크플로우를 설명합니다. 원본 페이지는 V1.8 및 V1.9를 기준으로 작성되었습니다. 다음 기록은 이전 설치를 유지 관리하는 사용자를 위해 보존됩니다.

V2.4

V2.3

  • PVOutput 업로드 문제가 수정되었습니다.

V2.2

  • IAMMETER-Cloud 전달 실패에 대한 로그가 추가되었습니다.

V2.1

V1.9

  • MySQL 지원이 추가되었습니다.
  • 각 Place에 대한 사용자 정의 이미지 옵션이 추가되었습니다.

IAMMETER-Docker V1.9

V1.8

  • IAMMETER-Docker로 MQTT 업로드가 추가되었습니다.
  • 실시간 데이터에 대한 MQTT 구독이 추가되었습니다.
  • PVOutput 직접 전달이 추가되었습니다.
  • 문서화된 Tasmota/Sonoff 계량 워크플로우가 추가되었습니다.

11. 관련 리소스

최종 업데이트: 2026년 7월 17일.

맨 위