เอกสารนี้สรุปการทำงานของฟีเจอร์หลักในโปรเจคที่เกี่ยวข้องกับ Artificial Intelligence (AI), Machine Learning (ML), ระบบ Chatbot และระบบการแจ้งเตือน (รวมถึง Email/Line)
ระบบประมวลผลและสร้างข้อมูลเชิงลึกด้านพลังงาน แบ่งออกเป็น 3 ส่วนหลัก:
- โมเดลที่ใช้: XGBoost (XGBRegressor สำหรับ Time Series Forecasting)
- หน้าที่: นำข้อมูลการใช้ไฟฟ้าย้อนหลัง (จาก Kafka / MongoDB) มาพยากรณ์แนวโน้มการใช้ไฟล่วงหน้าแบบ 30 วัน
- การแสดงผล: ทำงานแบบเบื้องหลัง (Background Job) ทุกเที่ยงคืน เพื่อเตรียมข้อมูลพยากรณ์รายเดือน และประเมินแนวโน้มค่าไฟฟ้า (Estimated Cost) ที่จะเกิดขึ้น
- โมเดลที่ใช้: Isolation Forest ร่วมกับการวิเคราะห์ตามเงื่อนไข (Rule-based)
- หน้าที่: ตรวจสอบพฤติกรรมการใช้ไฟฟ้าที่ผิดปกติของแต่ละอุปกรณ์
- Dynamic Thresholds: มีการปรับลิมิตการแจ้งเตือนกระแสไฟเกินแบบอัตโนมัติตามชื่ออุปกรณ์
4000Wสำหรับอุปกรณ์ประเภท breaker หรือ main2900Wสำหรับอุปกรณ์ทั่วไปประเภท plug หรือ switch
- โมเดลที่ใช้: Google Gemini (
gemini-2.5-flashAPI) - หน้าที่: วิเคราะห์ข้อมูลจากการใช้งานจริงและการเกิด Anomaly เพื่อแปลงเป็นคำแนะนำภาษาคน (Natural Language)
- ผลลัพธ์: สรุปคำแนะนำสำหรับการประหยัดพลังงาน ประเมินค่าความคุ้มค่า และการปรับพฤติกรรมเป็นรายเดือน (Monthly Savings Estimation)
ระบบมี Chatbot สำหรับตอบคำถามและให้ข้อมูลเรื่องพลังงานแก่ผู้ใช้งานในระบบ:
- Frontend Interface: มีหน้าต่าง
ChatWidgetเพื่อรับข้อความจากผู้ใช้งานผ่านแอปพลิเคชัน - API & Middleware: เมื่อส่งข้อความ ระบบจะยิงไปที่ Next.js API (
/api/chat/route.ts) - AI Integration & Automation: ฝั่ง API จะทำหน้าที่เป็นตัวกลางส่งข้อมูล (Payload) ไปยัง n8n Webhook (
https://n8n.../webhook/energy-chat) ซึ่งระบบ n8n จะรับหน้าที่รัน Workflow เพื่อสื่อสารกับ AI, ดึงข้อมูล และส่งคำตอบกลับมายังหน้าบ้าน
ระบบการแจ้งเตือนถูกออกแบบมาให้ส่งออกหลายช่องทาง ทั้งในแอปพลิเคชัน (In-App), Email และ Line โดยมีศูนย์กลางการส่งออกที่ n8n:
- การทำงาน: เมื่อระบบพบความผิดปกติ (Anomaly) แบบรุนแรง (เช่น ไฟกระชาก, โหลดเกิน) ระบบจะส่งข้อมูลผ่านสคริปต์
notify_n8n.py - ข้อมูลที่ส่ง: ส่งระดับความรุนแรง (วิกฤต, เฝ้าระวัง, ปกติ), ชนิดการแจ้งเตือน, ชื่ออุปกรณ์, และค่ากำลังไฟปัจจุบัน (W) พร้อมจัดเตรียมข้อความสรุปสำหรับส่งเข้า Email หรือ Line
- Notification Service: ระบบจัดการการแจ้งเตือนภายในแอปพลิเคชัน (In-App) ซึ่งมีการแจ้งเตือนหลากหลายประเภท เช่น:
- อุปกรณ์ออนไลน์ / ออฟไลน์
- การควบคุมอุปกรณ์ล้มเหลว
- การตั้งเวลา (Schedule) ทำงานสำเร็จ/ล้มเหลว
- สรุปค่าไฟรายวัน หรือพบการใช้ไฟที่สูงผิดปกติ
- การเชื่อมต่อภายนอก: ระบบ Backend ของ Go สามารถทำการยิงข้อมูลแบบ Asynchronous ขนานไปยัง n8n Webhook ตัวเดียวกัน เพื่อที่จะส่งข้อมูลสรุปเหล่านี้ไปยังผู้ดูแลระบบผ่านทาง Email ทันทีที่มีเหตุกาณ์สำคัญเกิดขึ้น
- User Preferences: รองรับการตั้งค่าโดยผู้ใช้งาน (Tenant Configuration) ว่าต้องการเปิดหรือปิดรับการแจ้งเตือนระดับใด (Critical, Warning, Info)
Generated by Antigravity