ขออภัย เบราว์เซอร์ของคุณไม่รองรับ JavaScript!
เข้าสู่ระบบ

การตรวจสอบพลังงานแบบ Self-Hosted ด้วย Docker

การตรวจสอบพลังงานแบบ Self-Hosted ด้วย Docker

ระบบตรวจสอบพลังงานแบบโฮสต์เอง (self-hosted) ช่วยให้เซิร์ฟเวอร์ตรวจสอบและข้อมูลไฟฟ้าอยู่ภายใต้การควบคุมของคุณ แทนที่จะส่งข้อมูลทุกครั้งไปยังคลาวด์สาธารณะ มิเตอร์พลังงานจะอัปโหลดข้อมูลไปยังคอนเทนเนอร์ Docker ที่ทำงานบนเซิร์ฟเวอร์ภายในระบบ NAS, Raspberry Pi หรือเราเตอร์ที่รองรับ

IAMMETER-Docker มีเซิร์ฟเวอร์ตรวจสอบพลังงานภายในพื้นที่แบบพร้อมใช้งานสำหรับการตรวจสอบการใช้ไฟฟ้าและระบบโซลาร์ PV สามารถรวบรวมข้อมูลวัด แสดงผลแบบเรียลไทม์และย้อนหลัง ให้บริการ API และทำงานเป็น datalogger แบบออฟไลน์ได้

IAMMETER energy meter
        │
        │ Wi-Fi / local network
        ▼
IAMMETER-Docker
        │
        ├── Local web dashboard
        ├── Historical energy data
        ├── REST API
        ├── MQTT
        ├── CSV datalogger
        └── Optional forwarding

IAMMETER-Docker เป็นตัวเลือกแบบโฮสต์เองที่ใช้งานได้จริง แต่ไม่ได้มีการทำงานทุกฟีเจอร์และรายงานเหมือนใน IAMMETER-Cloud หากคุณยังคงเลือกสถาปัตยกรรมอยู่ เปรียบเทียบตัวเลือกต่างๆ ได้ที่ หน้าโซลูชันการตรวจสอบพลังงานแบบโฮสต์เอง

🎬 ดูวิดีโอสอน IAMMETER-Docker

1. คุณควรใช้ระบบตรวจสอบพลังงานแบบ Self-Hosted เมื่อใด?

IAMMETER-Docker เหมาะสมเมื่อคุณต้องการ:

  • เก็บข้อมูลพลังงานไว้บนเซิร์ฟเวอร์ที่คุณจัดการ
  • ตรวจสอบไฟฟ้าบน LAN โดยไม่ต้องพึ่งพาการเชื่อมต่ออินเทอร์เน็ต
  • ปรับใช้แดชบอร์ดตรวจสอบพลังงานแสงอาทิตย์ภายในพื้นที่
  • รวบรวมข้อมูลในสถานที่ระยะไกลโดยใช้ datalogger แบบออฟไลน์
  • เข้าถึงข้อมูลการวัดผ่าน REST API หรือ MQTT ภายในพื้นที่
  • ส่งต่อข้อมูลที่เลือกไปยังแพลตฟอร์มอื่น
  • สร้างแดชบอร์ดส่วนตัวหรือการเชื่อมต่อกับข้อมูลพลังงานที่จัดเก็บไว้

การติดตั้งทั่วไปรวมถึง:

  • การตรวจสอบไฟฟ้าภายในบ้านและโซลาร์ PV
  • โรงงาน สำนักงาน และสถานที่พาณิชย์ขนาดเล็ก
  • ระบบโซลาร์ระยะไกลและห้องอุปกรณ์
  • สภาพแวดล้อมการพัฒนาและทดสอบ
  • โปรเจกต์ที่ต้องการเส้นทางข้อมูลภายในพื้นที่

หากคุณต้องการเพียงค่ามิเตอร์โดยตรงสำหรับ Home Assistant, Node-RED, PLC หรือซอฟต์แวร์ที่กำหนดเอง การปรับใช้เซิร์ฟเวอร์แบบสมบูรณ์อาจไม่จำเป็น ดู ตัวเลือกการเชื่อมต่อในพื้นที่และแบบโฮสต์เอง ก่อนตัดสินใจ

2. สิ่งที่คุณต้องมี

ก่อนการปรับใช้ เตรียม:

  • อุปกรณ์ที่สามารถรัน Docker ได้ เช่น เซิร์ฟเวอร์ Linux, NAS, Raspberry Pi หรือเราเตอร์ที่รองรับ
  • พื้นที่จัดเก็บแบบถาวรสำหรับฐานข้อมูลของแอปพลิเคชัน
  • พอร์ต TCP 5050 ที่ว่างสำหรับเว็บแอปพลิเคชันและ API
  • พอร์ต TCP 1883 หากจะใช้บริการ MQTT ในตัว
  • ที่อยู่ IP ที่เสถียรหรือ DHCP reservation สำหรับโฮสต์ Docker
  • มิเตอร์พลังงาน IAMMETER หรือแหล่งข้อมูลอื่นที่สามารถส่งรูปแบบ API ที่รองรับได้

โฮสต์ Docker และมิเตอร์ควรสามารถเข้าถึงกันและกันผ่านเครือข่ายภายใน สำหรับการทำงานแบบออฟไลน์ ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตหลังจากติดตั้งอิมเมจและซอฟต์แวร์ที่จำเป็นแล้ว

3. ปรับใช้ IAMMETER-Docker

รุ่นปัจจุบันบน Docker Hub คือ IAMMETER-Docker V2.4

3.1 ตัวเลือก A: Docker run

สร้างไดเรกทอรีทำงานและรันคอนเทนเนอร์พร้อมพื้นที่จัดเก็บแบบถาวร:

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  iammeter/iammeter

เปลี่ยน TZ=Etc/UTC เป็นโซนเวลาที่ถูกต้องสำหรับสถานที่ตรวจสอบ รายงานพลังงานขึ้นอยู่กับวันที่และเวลาท้องถิ่น ดังนั้นตั้งค่านี้ก่อนเริ่มเก็บข้อมูลการผลิตจริง

3.2 ตัวเลือก B: Docker Compose

สร้าง compose.yaml:

services:
  iammeter:
    image: iammeter/iammeter
    container_name: myiammeter
    restart: always
    ports:
      - "5050:5050"
      - "1883:1883"
    environment:
      TZ: Etc/UTC
    volumes:
      - ./data:/app/data

เริ่มบริการ:

docker compose up -d

ตรวจสอบสถานะ:

docker compose ps
docker compose logs --tail=100 iammeter

3.3 เปิดแดชบอร์ดภายใน

เปิดที่อยู่ต่อไปนี้จากเบราว์เซอร์บนเครือข่ายเดียวกัน:

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

ข้อมูลประจำตัวเริ่มต้น:

Username: testuser
Password: 123456

เปลี่ยนรหัสผ่านเริ่มต้นทันที อย่าเปิดพอร์ต 5050 หรือ 1883 สู่สาธารณะอินเทอร์เน็ตโดยตรงโดยไม่มีไฟร์วอลล์ การยืนยันตัวตน และการออกแบบเครือข่ายที่ปลอดภัยที่เหมาะสม

หน้าเข้าสู่ระบบ IAMMETER-Docker

4. การกำหนดค่าเริ่มต้น

หลังจากเข้าสู่ระบบ:

  1. สร้าง สถานที่ (Place) สำหรับบ้าน พื้นที่โซลาร์ หรือสถานที่ที่ตรวจสอบ
  2. เพิ่ม มิเตอร์ (Meter)
  3. ป้อนหมายเลขซีเรียล (SN) ของมิเตอร์
  4. เลือกประเภทมิเตอร์แบบเฟสเดียวหรือสามเฟสที่ถูกต้อง
  5. กำหนดแต่ละเฟสหรือช่องสัญญาณเป็น Grid, Inverter หรือ Load
  6. ยืนยันโซนเวลาของสถานที่และโครงสร้างการวัดก่อนประเมินรายงาน

กำหนดค่ามิเตอร์ใน IAMMETER-Docker

การกำหนดช่องสัญญาณที่ถูกต้องมีความสำคัญอย่างยิ่งสำหรับการตรวจสอบพลังงานแสงอาทิตย์ ระบบจำเป็นต้องรู้ว่าการวัดใดแทนกริด อินเวอร์เตอร์ หรือโหลด ก่อนที่จะแสดงผลการไหลของพลังงานที่มีความหมาย

5. เชื่อมต่อมิเตอร์พลังงาน IAMMETER

มิเตอร์ IAMMETER สามารถอัปโหลดข้อมูลไปยังเซิร์ฟเวอร์ Docker ในพื้นที่ได้โดยตรง

ใน WebUI ของมิเตอร์ ให้กำหนดค่า HTTP upload ของบุคคลที่สามและใช้ที่อยู่โฮสต์ Docker:

<docker-host-ip>:5050/api/v1/sensor/uploadsensor

ที่อยู่ IP ของโฮสต์ Docker จะต้องสามารถเข้าถึงได้จากเครือข่าย Wi-Fi ของมิเตอร์ ใช้หมายเลข SN ของมิเตอร์เดียวกับที่เพิ่มใน IAMMETER-Docker

กำหนดค่า HTTP upload ไปยัง IAMMETER-Docker

หลังจากบันทึกการกำหนดค่ามิเตอร์:

  1. รอการอัปโหลดครั้งแรก
  2. ยืนยันว่ามิเตอร์แสดงออนไลน์ใน IAMMETER-Docker
  3. เปรียบเทียบค่าแรงดัน กำลังไฟฟ้า และพลังงานกับข้อมูลท้องถิ่นของมิเตอร์
  4. ตรวจสอบทิศทางและการกำหนดช่องสัญญาณก่อนนำไปใช้กับการคำนวณโซลาร์หรือการนำเข้า/ส่งออก

ใช้ IAMMETER-Cloud พร้อมกัน

IAMMETER-Docker สามารถส่งต่อข้อมูลมิเตอร์ไปยัง IAMMETER-Cloud ได้ตามต้องการ เปิดการส่งต่อเมื่อคุณต้องการทั้งพื้นที่จัดเก็บในท้องถิ่นและบริการ IAMMETER-Cloud

ส่งต่อข้อมูลภายในไปยัง IAMMETER-Cloud

สำหรับการติดตั้งแบบออฟไลน์หรือไม่พึ่งพาคลาวด์ ให้ปิดการส่งต่อคลาวด์ไว้

6. อัปโหลดข้อมูลจากอุปกรณ์หรือแอปพลิเคชันอื่น

IAMMETER-Docker สามารถรับข้อมูลพลังงานที่รองรับผ่าน REST API ได้เช่นกัน ซึ่งมีประโยชน์สำหรับซิมูเลเตอร์ เกตเวย์ หรือแอปพลิเคชันของลูกค้าที่ไม่ได้ใช้มิเตอร์ IAMMETER

สร้างมิเตอร์ด้วย SN ที่กำหนดเอง จากนั้นใช้ SN เดียวกันในทุกคำขอ API

เอกสาร API แบบโต้ตอบมีให้บริการบนเซิร์ฟเวอร์ภายใน:

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

เอกสาร API ของ IAMMETER-Docker

ทดสอบคำขอ API ของ IAMMETER-Docker

ทดสอบ API บนมิเตอร์ที่ไม่ใช่ระบบผลิตก่อน ตรวจสอบให้ SN จำนวนเฟส ลำดับฟิลด์ และหน่วยต่างๆ สอดคล้องกันเพื่อให้ข้อมูลย้อนหลังยังคงใช้งานได้

7. รัน Datalogger พลังงานแบบออฟไลน์

IAMMETER-Docker V2.4 สามารถบันทึกข้อมูลเป็น CSV เมื่อมีการเมานต์ไดเรกทอรี datalogger ซึ่งมีประโยชน์สำหรับสถานที่โซลาร์ระยะไกล โรงงาน หรือห้องอุปกรณ์ที่ไม่มีการเชื่อมต่ออินเทอร์เน็ตที่เชื่อถือได้

Docker run พร้อมพื้นที่จัดเก็บ datalogger

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  -v "$PWD/datalogger:/app/datalogger" \
  iammeter/iammeter

สำหรับ Docker Compose ให้เพิ่มวอลุ่มนี้:

volumes:
  - ./data:/app/data
  - ./datalogger:/app/datalogger

เปิดหน้า datalogger ที่:

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

หน้า datalogger เริ่มต้นใช้:

Username: admin
Password: admin

เปลี่ยนรหัสผ่านนี้เป็นส่วนหนึ่งของการปรับใช้ สำหรับขั้นตอนการทำงานแบบเราเตอร์และการส่งออก CSV ทั้งหมด ดูที่ Offline Energy Datalogger with IAMMETER-Docker

8. MQTT และฟีเจอร์ขั้นสูงอื่นๆ

พอร์ต 1883 ใช้โดยบริการ MQTT ของ IAMMETER-Docker มิเตอร์หรือแอปพลิเคชันอื่นสามารถเผยแพร่ข้อมูลการวัดที่รองรับไปยัง IAMMETER-Docker และไคลเอ็นต์ MQTT สามารถสมัครรับค่าแบบเรียลไทม์ได้

IAMMETER-Docker ยังรองรับฟีเจอร์ต่างๆ เช่น:

  • MySQL แทนฐานข้อมูลภายในเริ่มต้นสำหรับชุดข้อมูลขนาดใหญ่
  • การเผยแพร่และสมัครรับข้อมูล MQTT
  • การส่งต่อ PVOutput
  • ข้อมูลพลังงาน Tasmota ที่เข้ากันได้
  • การแจ้งเตือนแบบเรียลไทม์และสถานการณ์ datalogger หนึ่งวินาที

ฟีเจอร์เหล่านี้ถูกแยกออกจากเส้นทางการปรับใช้พื้นฐานโดยตั้งใจ กำหนดค่าและทดสอบคอนเทนเนอร์หลักก่อน จากนั้นดำเนินการต่อด้วย คู่มือ IAMMETER-Docker ขั้นสูง

9. สำรองข้อมูลพลังงานของคุณ

วอลุ่ม /app/data ประกอบด้วยข้อมูลแอปพลิเคชันแบบถาวร สำรองไดเรกทอรีโฮสต์ที่เกี่ยวข้องเป็นประจำ

ขั้นตอนพื้นฐานที่ปลอดภัยคือ:

  1. หยุดหรือหยุดการเขียนไปยังคอนเทนเนอร์ชั่วคราว
  2. คัดลอกไดเรกทอรี data ที่เมานต์ทั้งหมดไปยังพื้นที่จัดเก็บสำรอง
  3. รวมไดเรกทอรี datalogger เมื่อเปิดใช้งานการบันทึก CSV
  4. เก็บสำเนาสำรองมากกว่าหนึ่งชุด
  5. ทดสอบการกู้คืนบนคอนเทนเนอร์แยกต่างหากก่อนพึ่งพาแผนสำรอง

อย่าถือว่าระบบไฟล์ของคอนเทนเนอร์เป็นพื้นที่จัดเก็บแบบถาวร หากไม่ได้เมานต์ /app/data การลบคอนเทนเนอร์อาจลบฐานข้อมูลการตรวจสอบไปด้วย

10. อัปเกรด IAMMETER-Docker

ก่อนอัปเกรด ให้สำรองไดเรกทอรีข้อมูลแบบถาวร

สำหรับ Docker Compose:

docker compose pull
docker compose up -d
docker compose logs --tail=100 iammeter

สำหรับคอนเทนเนอร์ที่สร้างด้วย docker run:

  1. บันทึกพอร์ต โซนเวลา และวอลุ่มที่เมานต์ที่มีอยู่
  2. ดึงอิมเมจใหม่
  3. หยุดและลบคอนเทนเนอร์เก่า
  4. สร้างคอนเทนเนอร์อีกครั้งด้วยวอลุ่มถาวรเดิม
  5. ตรวจสอบการเข้าสู่ระบบ สถานะมิเตอร์ และข้อมูลย้อนหลัง
docker pull iammeter/iammeter
docker stop myiammeter
docker rm myiammeter

จากนั้นรันคำสั่ง docker run เดิมอีกครั้ง การลบคอนเทนเนอร์จะปลอดภัยต่อเมื่อข้อมูลแอปพลิเคชันถูกจัดเก็บไว้ในไดเรกทอรีโฮสต์ที่เมานต์และสำรองอย่างถูกต้องแล้วเท่านั้น

11. การแก้ไขปัญหา

หน้าเว็บไม่เปิด

  • ยืนยันว่าคอนเทนเนอร์กำลังทำงานด้วย docker ps หรือ docker compose ps
  • ตรวจสอบว่าพอร์ตโฮสต์ 5050 ถูกใช้งานอยู่แล้วหรือไม่
  • ตรวจสอบบันทึกของคอนเทนเนอร์
  • ยืนยันว่าไฟร์วอลล์อนุญาตการเข้าถึงจากเครือข่ายภายใน

มิเตอร์ไม่แสดงออนไลน์

  • ยืนยันว่ามิเตอร์สามารถเข้าถึงที่อยู่ IP ของโฮสต์ Docker ได้
  • ตรวจสอบ URL และพอร์ตอัปโหลด
  • ยืนยันว่า SN ใน IAMMETER-Docker ตรงกับ SN ของมิเตอร์
  • หลีกเลี่ยงการใช้ localhost เป็นที่อยู่เซิร์ฟเวอร์ในมิเตอร์ เพราะหมายถึงตัวมิเตอร์เอง ไม่ใช่โฮสต์ Docker
  • ยืนยันว่า client isolation หรือเครือข่าย Wi-Fi แขกไม่ได้บล็อกการรับส่ง LAN

ข้อมูลโซลาร์ดูไม่ถูกต้อง

  • ตรวจสอบทิศทางของ CT และการเดินสาย
  • ยืนยันว่าช่องสัญญาณใดถูกกำหนดให้กับ Grid และช่องใดให้กับ Inverter
  • ตรวจสอบเครื่องหมายของกำลังไฟฟ้าจริง (active power) ระหว่างการนำเข้าและส่งออก
  • ยืนยันโซนเวลาก่อนเปรียบเทียบยอดพลังงานรายวัน

ข้อมูลหายไปหลังจากสร้างคอนเทนเนอร์ใหม่

  • ยืนยันว่า /app/data ถูกเมานต์ไปยังไดเรกทอรีโฮสต์แบบถาวร
  • ตรวจสอบสิทธิ์ของไดเรกทอรี
  • กู้คืนสำเนาสำรองล่าสุดที่ตรวจสอบแล้วหากวอลุ่มเดิมไม่พร้อมใช้งาน

12. IAMMETER-Docker, IAMMETER-Cloud หรือระบบกำหนดเอง?

ตัวเลือก เหมาะที่สุดสำหรับ ตำแหน่งข้อมูล ความพยายามในการตั้งค่า ข้อแลกเปลี่ยนหลัก
IAMMETER-Docker เซิร์ฟเวอร์ตรวจสอบภายในพื้นที่แบบพร้อมใช้ โฮสต์ Docker ของคุณ ต่ำถึงปานกลาง ฟีเจอร์คลาวด์ที่จัดการน้อยลง
IAMMETER-Cloud การตรวจสอบ รายงาน และการเข้าถึงระยะไกลแบบพร้อมใช้ IAMMETER-Cloud ต่ำ ใช้บริการคลาวด์ที่โฮสต์
Home Assistant / Node-RED เอนทิตีสมาร์ทโฮมและระบบอัตโนมัติที่กำหนดเอง แพลตฟอร์มของคุณเอง ปานกลาง คุณออกแบบแดชบอร์ดและขั้นตอนการทำงาน
เซิร์ฟเวอร์กำหนดเอง ผลิตภัณฑ์ EMS หรือไปป์ไลน์ข้อมูลเฉพาะ โครงสร้างพื้นฐานของคุณ สูง คุณพัฒนาและบำรุงรักษาระบบ

ดำเนินการต่อด้วย:

13. รายการตรวจสอบการปรับใช้

  • โฮสต์ Docker มีที่อยู่ LAN ที่เสถียร
  • /app/data ถูกเมานต์ไปยังพื้นที่จัดเก็บแบบถาวร
  • โซนเวลาตรงกับสถานที่ตรวจสอบ
  • มีการเปลี่ยนรหัสผ่านเริ่มต้นแล้ว
  • พอร์ต 5050 และ 1883 ไม่ได้ถูกเปิดเผยสู่อินเทอร์เน็ตโดยไม่จำเป็น
  • SN ของมิเตอร์และการกำหนดช่องสัญญาณถูกต้อง
  • การอัปโหลดภายในได้รับการยืนยันด้วยการวัดจริง
  • การส่งต่อคลาวด์เปิดใช้งานเฉพาะเมื่อจำเป็นเท่านั้น
  • ขั้นตอนการสำรองข้อมูลและการอัปเกรดได้รับการทดสอบแล้ว
  • เมานต์วอลุ่ม datalogger หากต้องการส่งออก CSV

อัปเดตล่าสุด: 17 กรกฎาคม 2026

ด้านบน