Edge & Approvals • 8 พฤษภาคม 2569
Web v4.11.1API v—

Klynx PlatformChangelog

ประวัติการพัฒนา รายละเอียดเวอร์ชัน และข้อมูลเทคนิคของระบบ

What's New

ไฮไลท์ใน Edge & Approvals

ฟีเจอร์ใหม่และการปรับปรุงที่สำคัญ

FIXED

ดูสด iOS: รองรับกล้อง AIBOX แล้ว + ข้อความชัดเจนเมื่อเล่นไม่ได้

ต่อยอดจากรอบก่อน: ตอนนี้กล้อง AIBOX/edge บนหน้า ดูสด (/live) เล่นบน iPhone/iPad ได้แล้ว (คู่กับ klynx-api 4.123.1 ที่แก้ฝั่งเซิร์ฟเวอร์ให้สร้างสตรีม HLS ได้). และถ้ากล้องตัวไหนยังไม่มีสตรีม HLS จริง ๆ (ไม่มีสัญญาณ/ยังไม่รองรับ) จะขึ้นข้อความบอกชัดเจนแทนที่จะเป็น "FLV not supported" ที่งงเดิม (4.11.1)

NEW

ดูสดบน iPhone/iPad (Safari) ได้แล้ว — สลับเป็น HLS อัตโนมัติ

เดิม iPhone/iPad เปิดดูสดไม่ได้ (จอดำ) เพราะ Safari เล่น flv.js และ WebRTC ไม่ได้. ตอนนี้เมื่อเปิดจากอุปกรณ์ iOS ระบบจะสลับไปเล่นแบบ HLS ผ่าน <video> ของ Safari โดยอัตโนมัติ — ใช้ได้ที่หน้า ดูสด (/live), วิดีโอวอลล์ และแดชบอร์ด BI. กล้องที่เล่นผ่าน WebRTC ปกติจะดูได้ทันที (กล้อง AIBOX/ATA แบบล็อกอินยังต้องรอรอบถัดไป จะถอยกลับพฤติกรรมเดิมไว้ไม่ให้แย่ลง). ต้องเปิดค่า MEDIA_HLS_ENABLED ที่ฝั่งเซิร์ฟเวอร์ (klynx-api 4.123.0). อ้างอิงสัญญา media-stream-redis.md §3C (4.11.0)

FIXED

ตัวเลขกลุ่มหมุดบนแผนที่ 3D โดนตัด — แก้ที่ต้นเหตุจริง (depth test)

ตัวเลขจำนวนเหตุการณ์ในกลุ่มหมุด (cluster) บนแผนที่ 3D Digital Twin ยังแสดงไม่ครบ/ครึ่งล่างโดนตัด แม้รอบก่อนจะขยาย font atlas buffer แล้ว. เจอต้นเหตุจริงแล้ว: ในมุมมองเอียง 3 มิติ ตัวเลข (billboard) กับวงกลมกลุ่มหมุด/อาคาร 3D อยู่ระดับความลึกเดียวกัน ทำให้บางส่วนของตัวเลขถูก depth buffer ของวัตถุอื่นบังตัดทิ้ง. แก้โดยให้ตัวเลขวาดทับเสมอ (depthTest ปิด) และล็อกให้หันเข้าหากล้องตลอด (billboard) — ตอนนี้แสดงเต็มทุกหลักทั้งใน 2D และ 3D (4.10.5)

FIXED

ดูสด (/live) บนมือถือ — ตรึงแผนที่และวิดีโอไว้ เลื่อนดูรายชื่อกล้องได้ลื่นขึ้น

เดิมบนมือถือ หน้า /live เลื่อนทั้งหน้าเป็นก้อนเดียว พอเลื่อนดูรายชื่อกล้อง แผนที่และวิดีโอที่กำลังดูอยู่ก็เลื่อนหายตามขึ้นไปด้วย. ตอนนี้แผนที่ถูกตรึงไว้ด้านบนเสมอ มีเฉพาะรายชื่อกล้องด้านล่างที่เลื่อนได้ พอแตะเลือกกล้องในรายการ แผนที่จะบินไปที่หมุดและเล่นวิดีโอให้ทันที โดยวิดีโอจะถูกตรึงไว้ด้วย ทำให้เลื่อนดูกล้องตัวอื่นต่อได้โดยภาพสตรีมไม่หายไปไหน (เลือกกล้องแล้วแผนที่จะย่อลงนิดหน่อยเพื่อเปิดพื้นที่ให้วิดีโอและรายการ)

FIXED

แก้โลโก้/ธีม + ตัวเลขกลุ่มหมุด 3D โดนตัด + การ์ด AI Intelligence แหว่ง

แก้ UI หลายจุด: (1) โลโก้ PNG พื้นโปร่งใสเดิมมีเงา/กรอบในธีมสว่าง + ถูกครอบเป็นวงกลม — เอาออกให้กลืนพื้นหลัง. (2) ตั้งโลโก้เฉพาะธีมสว่างแล้วไปโผล่ธีมมืดด้วย — แก้ให้ธีมมืดใช้โลโก้ของธีมมืด/ค่าเริ่มต้นเท่านั้น (ไม่ดึงโลโก้สว่างมาใช้). (3) ตัวเลขกลุ่มหมุดบนแผนที่ 3D Digital Twin แสดงไม่ครบ/โดนตัด — ขยาย font atlas buffer. (4) การ์ดสรุปบนหน้า AI Intelligence แหว่ง 1 ช่อง (กริด 5 คอลัมน์ แต่มี 4 การ์ด) — ปรับเป็น 4 คอลัมน์ให้การ์ดยืดเต็มแถว (4.10.3)

IMPROVED

หน้า Ingest กดการ์ดสรุปทุกใบเพื่อกรองได้แล้ว (เหตุการณ์ + แดชบอร์ด)

เดิมการ์ดสรุปบนหน้า Ingest กดกรองได้แค่บางใบ (ใบหน้า/ป้ายทะเบียน). ตอนนี้กดได้ทุกใบ: หน้า Ingest → เหตุการณ์ กดการ์ด คนเข้า/คนออก (กรองตามทิศทาง), Blacklist/Whitelist (กรองตามรายการเฝ้าระวัง) และใบหน้า/ป้ายทะเบียน — กดซ้ำเพื่อยกเลิก ทำงานแยกอิสระต่อกัน. หน้า Ingest → แดชบอร์ดเหตุการณ์ กดการ์ดสรุปแล้วเด้งไปหน้ารายการเหตุการณ์พร้อมกรองให้อัตโนมัติ. ใช้ตัวกรอง direction/listType/eventType ของ /kapi/events ที่หลังบ้านรองรับอยู่แล้ว (4.10.1)

IMPROVED

ปรับหน้าดูสด (/live) ให้เรียบขึ้น + แผนที่ WebGL และปุ่มจัดกลุ่มกล้อง

หน้า /live ตัดการ์ดที่ไม่จำเป็นออก (เช่น การ์ดสภาพอากาศ) เหลือเฉพาะการ์ดสถานะกล้อง และยังเปิด/ปิดแถบรายชื่อกล้องได้เหมือนเดิม ส่วนหัวแสดงเฉพาะจำนวนกล้องที่ออนไลน์ (ไม่โชว์ออฟไลน์แล้ว). แผนที่หน้า /live เปลี่ยนมาใช้ basemap แบบ WebGL เป็นค่าเริ่มต้น (สลับกลับเป็นแผนที่ภาพปกติได้) และเพิ่มปุ่มเปิด/ปิดการจัดกลุ่มหมุดกล้อง (cluster) บนแผนที่ โดยค่าเริ่มต้นของการจัดกลุ่มตั้งได้ที่ ตั้งค่า → สตรีม (ผู้ชมแต่ละคนยังสลับเองได้ ระบบจำค่าไว้ในเครื่อง) (4.10.0 + klynx-api 4.120.0)

NEW

ตั้งรายละเอียดแพลตฟอร์มเองได้ + ธีมตามระบบ + ขยายขนาดไฟล์โลโก้/ไอคอน

เพิ่มช่อง "รายละเอียดแพลตฟอร์ม (ไทย/อังกฤษ)" ที่ ตั้งค่า → Branding เพื่อนำไปแสดงเป็นคำโปรยใต้ชื่อแพลตฟอร์มบนหน้าแรก (เว้นว่าง = ใช้ข้อความเริ่มต้น). เมนูธีม → สีหลัก เพิ่มตัวเลือก "ค่าเริ่มต้น (ตามระบบ)" ที่ดึงสีหลักจากการตั้งค่าแพลตฟอร์มมาใช้ และแก้อาการเลือกสีธีมแล้วไม่ติด (เดิมถูกสีแบรนด์ทับทุกครั้งที่โหลด — ตอนนี้สีที่ผู้ใช้เลือกเองจะอยู่เหนือค่าเริ่มต้น). ขยายขนาดอัปโหลดโลโก้จาก 2 MB เป็น 5 MB และไอคอนจาก 512 KB เป็น 1 MB เพื่อรองรับภาพความละเอียดสูงขึ้น. และปรับ favicon ให้ไม่มีไอคอนเริ่มต้นแบบฮาร์ดโค้ด — จะแสดงก็ต่อเมื่อมีการตั้ง favicon ในการตั้งค่าระบบเท่านั้น. หน้าแรก/หน้าสาธารณะดึงแบรนด์ที่ตั้งไว้มาแสดงได้เองโดยไม่ต้องตั้ง env เพิ่ม (4.10.0 + klynx-api 4.121.0)

FIXED

แก้หน้าดูสดสาธารณะ (/live) เล่นกล้อง AIBOX/ATA ไม่ได้ — ขึ้น "สตรีมไม่พร้อมใช้งาน"

เดิมผู้เข้าชมที่ยังไม่ได้ล็อกอินคลิกกล้อง AIBOX/ATA บนหน้า /live แล้วขึ้นกล่องแดง "สตรีมไม่พร้อมใช้งาน" เล่นไม่ได้เลย สาเหตุ: แผนที่สาธารณะตัดฟิลด์ wssFlvUrl ออกตามดีไซน์ (ผู้ไม่ล็อกอินไม่ได้รับ URL สตรีมตรง) แต่ตัวเลือกชนิดผู้เล่นกลับใช้ wssFlvUrl ตัดสินว่าเล่น FLV ได้หรือไม่ จึงบล็อกทุกกล้องสาธารณะทิ้ง ทั้งที่เส้นทางสาธารณะใช้การ negotiate ตั๋วด้วย camId (ไม่ต้องใช้ wssFlvUrl). แก้ให้ผู้ชมสาธารณะเล่น AIBOX/ATA ผ่าน FLV ได้ด้วยยี่ห้อกล้องอย่างเดียว แล้วให้ FlvPlayer โหมดสาธารณะ resolve URL เองด้วย camId (ตามสัญญา public-camera-stream-protection §5.1). กล้องที่ edge ไม่มีสัญญาณภาพจริงจะยังขึ้นจอดำตามปกติ (4.9.7)

IMPROVED

รวมเมนู Edge AI เข้าไว้ใต้ Ingest — ใช้ข้อมูลจริงชุดเดียวกันทั้งหมด

ยุบเมนู "Edge AI" แยกออก แล้วย้ายหน้าเดิมทั้งหมด (รายงานสรุป, นับคน, Blacklist, แจ้งเตือนเหตุการณ์) ไปไว้ใต้เมนู "Ingest" เพื่อให้ทุกหน้าใช้ข้อมูลจาก pipeline เดียวกัน (event_refs) — เลิกใช้แหล่งข้อมูลเก่า (ata_events) สิทธิ์การเข้าถึงเดิมยังใช้ได้เหมือนเดิม ไม่ต้องตั้งใหม่ (4.8.1 + klynx-api 4.115.0)

IMPROVED

ชื่อแพลตฟอร์มและโลโก้ที่ตั้งไว้ แสดงบนหน้าแรกและหน้าดูสดสาธารณะแล้ว

เดิมเมื่อผู้ดูแลตั้งชื่อแพลตฟอร์มและโลโก้ที่ "ตั้งค่า → แพลตฟอร์ม" ค่าจะเปลี่ยนเฉพาะในระบบหลังเข้าสู่ระบบ ส่วนหน้าแรก (Landing), หน้าดูสดสาธารณะ (/live) และส่วนท้าย (footer) ยังคงโชว์ "Klynx" กับโลโก้เดิมแบบฮาร์ดโค้ด. ตอนนี้ทั้งหัวเว็บ ชื่อใหญ่บนหน้าแรก และ footer ดึงชื่อ/โลโก้ที่ตั้งไว้มาแสดงตามภาษา (ไทย/อังกฤษ) อัตโนมัติ — ผู้เข้าชมที่ยังไม่ได้ล็อกอินก็เห็นแบรนด์ที่ถูกต้อง (ผ่านช่องทางสาธารณะใหม่ klynx-api §5.5). พร้อมแก้ไอคอนรูปโล่ที่ footer ให้เป็นโลโก้จริง และทำลิงก์ Privacy/Terms/เอกสาร/Changelog ที่ footer ให้รองรับสองภาษา. และเปลี่ยนชื่อเริ่มต้น (เมื่อยังไม่ได้ตั้งค่า) จาก "Klynx" เป็นคำกลางๆ "IOC" ทุกจุด รวมถึง title/คำอธิบายเว็บ และ favicon เริ่มต้นเป็นไอคอน sparkles. เพิ่มช่อง "ข้อความ Footer (ไทย/อังกฤษ)" ในหน้า ตั้งค่า → Branding ของแพลตฟอร์ม ให้ตั้งบรรทัดลิขสิทธิ์/footer ของหน้าสาธารณะเองได้ (เว้นว่าง = ใช้ค่าเริ่มต้นเดิม). หมายเหตุผู้ดูแลระบบ: ตั้งค่า env PUBLIC_BRANDING_ORG_ID ให้ชี้องค์กรหลักของเครื่องเพื่อเปิดใช้ (4.8.0 + klynx-api 4.112.0)

NEW

หน้า Ingest (เหตุการณ์ + แดชบอร์ดเหตุการณ์) มีการ์ดสรุปแยกตามเรื่อง + โทนสีแบบ AI Intelligence

หน้า Ingest → เหตุการณ์ และ แดชบอร์ดเหตุการณ์ เพิ่มแถบการ์ดสรุปด้านบน อิงช่วงวันที่ที่เลือก (วัน/สัปดาห์/เดือน): เหตุการณ์ทั้งหมด, คนเข้า, คนออก (นับคน), ใบหน้า, ป้ายทะเบียน, Blacklist, Whitelist — ดึงจากข้อมูลจริงของ pipeline ใหม่ (event_refs) ผ่าน /kapi/events/aggregate (สรุปทั้งช่วงเวลา ไม่ใช่แค่รายการที่โหลด) การ์ดเรืองแสงตามสีตัวชี้วัดแบบเดียวกับหน้า AI Intelligence (4.7.1 + klynx-api 4.111.0)

IMPROVED

เหตุการณ์จากกล้อง Edge AI ขึ้นหมุดบนแผนที่แล้ว

แก้อาการเหตุการณ์ AI ไม่ขึ้นหมุดบนแผนที่หน้า AI Intelligence — ระบบนำพิกัด (lat/lng) ของกล้องมาเติมให้เหตุการณ์อัตโนมัติเมื่อเหตุการณ์ไม่มีพิกัดมาเอง ทั้งแบบเรียลไทม์และย้อนหลัง (klynx-api 4.110.0)

NEW

รายงานสรุป Edge AI ใช้ข้อมูลจริงแล้ว + โทนหน้าเดียวกับ AI Intelligence

หน้า Edge AI → รายงานสรุป (Summary Report) เปลี่ยนจากข้อมูลตัวอย่างเป็นข้อมูลจริงทั้งหน้า: การ์ดสรุปเหตุการณ์รวม/ใบหน้า/ยานพาหนะ/บัญชีดำ กราฟแนวโน้มรายวัน สัดส่วนประเภทเหตุการณ์ ยอดนับคนเข้า-ออกแยกตามโซน (ใหม่ — สูงสุด 10 โซน) สถานะกล้อง/ตัวควบคุม กราฟบัญชีดำรายชั่วโมง และตารางเหตุการณ์/บัญชีดำล่าสุด เลือกช่วงวันที่ได้และทุกส่วนอัปเดตตาม พร้อมปรับโทนสีการ์ดสถิติของหน้า Edge AI ทุกหน้า (นับคน/แจ้งเตือนเหตุการณ์/บัญชีดำ) ให้เป็นแบบเดียวกับหน้า AI Intelligence — การ์ดเรืองแสงตามสีตัวชี้วัด ไอคอนชิปสี ตัวเลข tabular (4.6.0 + klynx-api 4.108.0)

NEW

ล้างเครื่องกลับค่าเริ่มต้น (Factory Reset) จากหน้าตั้งค่าระบบ — สำหรับเครื่องแบบติดตั้งในองค์กร

หน้าการตั้งค่า → การตั้งค่าระบบ เพิ่มส่วน "พื้นที่อันตราย" ให้ผู้ดูแลแพลตฟอร์มสั่งล้างข้อมูลทั้งเครื่อง (ผู้ใช้ สิทธิ์ กล้อง เหตุการณ์ การตั้งค่า) กลับสู่ค่าเริ่มต้นเหมือนติดตั้งใหม่ได้เอง — ใช้สำหรับเครื่องที่ติดตั้งในสถานที่ (appliance) เช่น ส่งคืนเครื่อง เปลี่ยนหน่วยงานผู้ใช้ หรือซ้อมแผนกู้คืนระบบ ขั้นตอนยืนยันเข้มงวดหลายชั้น: ระบบแสดงรายการสิ่งที่จะถูกลบ/เก็บไว้ก่อน ต้องพิมพ์ชื่อเครื่องให้ตรง ติ๊กรับทราบว่าข้อมูลจะหายถาวร กรอกรหัสผ่านยืนยันตัวตนซ้ำ และถ้าเครื่องตั้งค่าไว้ต้องมีผู้ดูแลคนที่สองร่วมอนุมัติด้วย ระหว่างล้างเครื่องเห็นความคืบหน้าทีละขั้นแบบสด เสร็จแล้วระบบพาออกจากระบบอัตโนมัติ — License ของเครื่องยังอยู่ ไม่ถูกลบ (4.5.1 + klynx-api 4.107.0) หมายเหตุ: หน้าการตั้งค่าทุกแท็บยังปรับให้แสดงผลเต็มความกว้างจอ ไม่บีบอยู่กลางจอแบบเดิม

IMPROVED

หน้าดูกล้องสาธารณะ (/live) ลื่นขึ้น — สลับกล้องต่อเนื่องได้ไม่สะดุด

ปรับระบบยืนยันเบราว์เซอร์ (Cloudflare Turnstile) ให้ยืนยันสำเร็จครั้งเดียวแล้วใช้ต่อได้ 10 นาที — เดิมต้องยืนยันใหม่ทุกครั้งที่กดดูกล้อง ทำให้สลับกล้องเร็ว ๆ แล้วเจอ "ยืนยันเบราว์เซอร์ไม่สำเร็จ" หรือจอดำทั้งที่ใช้งานปกติ ตอนนี้ไล่กดดูกล้องหลายตัวต่อเนื่องได้ลื่น ส่วนการป้องกันการนำสตรีมไปใช้ภายนอกยังเข้มเท่าเดิมทุกประการ และแก้ตัวกรองหน่วยงานบนแดชบอร์ดที่ใช้ไม่ได้เมื่อหน่วยงานมีกล้องหลายร้อยตัว (4.4.1 + klynx-api 4.106.0)

NEW

เชื่อมต่อกล้องจากระบบ NX Witness (Network Optix) ได้แล้ว

หน้าระบบอุปกรณ์ → Edge เพิ่มประเภทอุปกรณ์ใหม่ "NX Witness" — กรอกที่อยู่เซิร์ฟเวอร์ของระบบ NX พร้อมชื่อผู้ใช้/รหัสผ่าน แล้วกดซิงค์ ระบบจะดึงรายการกล้องทั้งหมดจาก NX เข้ามาใช้งานใน Klynx ให้อัตโนมัติ (ตั้งรอบซิงค์อัตโนมัติได้) กดซิงค์แล้วเห็นสรุปทันทีว่าพบกล้องกี่ตัว เพิ่มใหม่กี่ตัว — กล้องที่ซิงค์เข้ามาดูสด จัดสิทธิ์ และขึ้นแผนที่ได้เหมือนกล้องอื่นทุกอย่าง ถ้ารหัสผ่านของเซิร์ฟเวอร์ NX ไม่ถูกต้อง ระบบจะแจ้งให้ตรวจสอบบัญชีชัดเจน (4.4.0 + klynx-api 4.105.0)

NEW

แผนที่ Digital Twin บนหน้า AI Intelligence — มุมเอียง 3 มิติ อาคารจริง และวงแหวนเหตุการณ์สด

แผนที่เหตุการณ์เรียลไทม์บนหน้า AI Intelligence ยกระดับเป็นแผนที่ดิจิทัลทวิน: กล้องมุมเอียงแบบ 3 มิติ มองเห็นอาคารยกตัวขึ้นจริงเมื่อซูมเข้าเมือง พร้อมท้องฟ้า/หมอกตามธีมมืด-สว่าง เหตุการณ์ใหม่ที่เพิ่งเกิด (ภายใน 10 วินาที) จะมีวงแหวนกระเพื่อมตามสีระดับความรุนแรง เปิดหน้าครั้งแรกกล้องจะบินเข้าหาพื้นที่เหตุการณ์แบบภาพยนตร์ และเมื่อพบเหตุบัญชีดำ กล้องจะดิ่งลงไปที่จุดเกิดเหตุก่อนเปิดรายละเอียดอัตโนมัติ — ปุ่มสลับ 2D/3D และปุ่มกลับไปใช้แผนที่แบบคลาสสิกอยู่มุมขวาบนของแผนที่ ถ้าเครื่องไม่รองรับ WebGL ระบบสลับกลับแผนที่แบบเดิมให้เองโดยไม่ต้องทำอะไร และเครื่องที่เปิดโหมด "ลดการเคลื่อนไหว" ระบบจะปิดอนิเมชันให้อัตโนมัติ (4.3.0)

NEW

Klynx 4.0 — หน้าแรกโฉมใหม่ + คู่มือผู้ใช้และผู้ดูแลระบบ

ยกเครื่องหน้าแรกของแพลตฟอร์มใหม่ทั้งหน้า: เลื่อนหน้าจอแล้วภาพหน้าจอจริงของระบบ (แดชบอร์ดวิเคราะห์, วิดีโอวอลล์, แผนที่สด, เหตุการณ์ AI, มุมมองมือถือ) เคลื่อนไหวรับกับการเลื่อนแบบเว็บเปิดตัวสินค้าชั้นนำ พร้อมเนื้อหาแนะนำความสามารถปัจจุบันของระบบครบ (เหตุการณ์ AI จาก Edge AI, แชร์ลิงก์ดูสดสาธารณะ, สิทธิ์ละเอียดรายหน่วยงาน/รายคน) — ผู้ใช้ที่เปิดโหมด "ลดการเคลื่อนไหว" ในเครื่อง ระบบจะปิดอนิเมชันให้อัตโนมัติ. หน้าเอกสารเพิ่มคู่มือใหม่ 2 เล่ม — "คู่มือผู้ใช้" และ "คู่มือผู้ดูแลระบบ" — อ่านได้โดยไม่ต้องเข้าสู่ระบบ และเลขเวอร์ชันระบบเริ่มนับยุคใหม่เป็น 4.0.0 (4.0.0)

NEW

ลงทะเบียนรูปใบหน้าด้วยตัวเองที่หน้าโปรไฟล์

หน้าโปรไฟล์เพิ่มส่วน "รูปใบหน้า" (แยกจากรูปประจำตัว) — อัปโหลดไฟล์รูป หรือถ่ายเซลฟี่จากกล้องของเครื่องได้เลย (รองรับมือถือ ภาพพรีวิวกลับด้านเหมือนกระจก) ต้องติ๊กยินยอมก่อนบันทึก ลบรูปได้ตลอด ระบบเก็บรูปล่าสุดรูปเดียว — เป็นขั้นแรกของระบบยืนยันตัวตนด้วยใบหน้าในเฟสถัดไป (3.118.0 + klynx-api 4.103.0)

IMPROVED

แดชบอร์ด /biDash เปิดให้สมาชิกทุกคนเข้าได้ — เห็นเฉพาะกล้องที่ตัวเองมีสิทธิ์

หน้าแดชบอร์ด /biDash เดิมต้องมีสิทธิ์เมนู "แผนที่" (map) ถึงจะเข้าได้ ทำให้สมาชิกที่มีสิทธิ์กล้องอยู่แล้วแต่ไม่ได้เปิดเมนูนี้ กดเข้า biDash แล้วขึ้น 403 (เข้าไม่ได้). ตอนนี้ biDash เปิดให้สมาชิกทุกคนในองค์กรเข้าได้เป็นค่าเริ่มต้น โดยแผนที่แสดง "เฉพาะกล้องที่ผู้ใช้คนนั้นมีสิทธิ์" (ผู้ดูแลองค์กรเห็นกล้องทั้งองค์กรที่เลือกอยู่) — คำนวณจากสิทธิ์ของผู้ใช้เอง ไม่หลุดไปเห็นของคนอื่น. และแก้อาการหน้าค้าง/เด้ง error เมื่อผู้ใช้ที่ไม่มีสิทธิ์ระบบควบคุม (kcontrol) เปิด biDash — ระบบจะไม่เชื่อมต่อช่องข้อมูลเรียลไทม์ที่ผู้ใช้ไม่มีสิทธิ์ (วิดเจ็ตที่ไม่มีสิทธิ์จะว่างแทนที่จะ error). เพิ่มเติม 3.117.1: ยอดนับสถานะกล้องในวิดเจ็ตแสดง "ตามสิทธิ์ของผู้ใช้" (ดึงจาก /map/camera ที่ scope แล้ว) ไม่ใช่ยอดทั้งองค์กร, ปิดการเด้งแจ้งเตือน "ไม่มีสิทธิ์รับข้อมูลเรียลไทม์" (degrade เงียบ ๆ), และแก้อาการ 403 เต็มจอที่ยังตกค้างตอนโหลดตัวกรองหน่วยงานสำหรับสมาชิก. 3.117.2: เลือกหน่วยงาน + กลุ่มกล้องพร้อมกัน ตอนนี้กรองเป็น "ส่วนที่ซ้อนกัน" (กล้องในกลุ่มที่หน่วยงานนั้นมีสิทธิ์) ถูกต้อง. 3.117.3: แก้ตัวกรองหน่วยงานแสดงเป็นรหัส UUID แทนชื่อ หลังเลือกหน่วยงานแม่แล้วเลือกกลุ่มกล้อง. 3.117.4: วิดีโอวอลล์เปิดกล้องสาธารณะได้แล้ว (เล่นผ่านเส้นทางสตรีมสาธารณะ), ตั้งค่าเริ่มต้นตัวกรองเป็น "กล้องในความดูแล" ทั้งวิดีโอวอลล์/แดชบอร์ด, แดชบอร์ดวิเคราะห์เริ่มที่กล้องในความดูแล + ไม่เด้งแจ้งเตือน realtime, และคลิกกล้องในหน้าข้อมูลกล้องไม่ขึ้น 403 เต็มจอแล้ว. 3.117.5: วิดีโอวอลล์เปิดกล้องสาธารณะผ่านเส้นทาง authenticated (BE 4.102.5) — ไม่ต้องผ่าน Turnstile, แก้ 403 BOT_CHALLENGE_FAILED. 3.117.6: ปุ่มปิด popup กล้องในหน้าแผนที่ย้ายไปมุมขวาบนนอกกรอบวิดีโอ ไม่ทับปุ่มเต็มจอ. 3.117.7: ปิด toast realtime ที่หน้าวิดีโอวอลล์/ข้อมูลกล้อง (degrade เงียบ) + รายการกล้องในวิดีโอวอลล์ทำ infinite scroll (render ทีละชุดตอนเลื่อน) (3.117.1–3.117.7 + klynx-api 4.102.5)

IMPROVED

วิดีโอวอลล์ — กรองกล้องตามสถานะ ออนไลน์/ออฟไลน์

หน้า /videowall เพิ่มตัวกรอง "สถานะ" (ทุกสถานะ / ออนไลน์ / ออฟไลน์) วางข้างตัวกรอง "ในความดูแล/สาธารณะ" และกลุ่มกล้องที่มีอยู่เดิม — เดิมผนังจอแสดงเฉพาะกล้องออนไลน์ (กล้องที่เล่นสตรีมได้) เท่านั้น ตอนนี้เลือกดูกล้องออฟไลน์หรือทุกสถานะได้ ค่าเริ่มต้นยังเป็น "ออนไลน์" เพื่อให้ผนังจอเล่นได้ทันทีเหมือนเดิม (ตัวกรองในความดูแล/สาธารณะมีอยู่แล้ว) (3.115.0)

NEW

กันบอท/สคริปต์ดึงภาพกล้องสาธารณะ — ผู้ชมทั่วไปใช้งานเหมือนเดิม

หน้าแผนที่กล้องสาธารณะ /live เพิ่มการตรวจสอบอัตโนมัติว่าผู้ที่ขอเปิดสตรีมเป็น "คนที่ใช้เบราว์เซอร์จริง" ไม่ใช่โปรแกรม/สคริปต์ที่แอบดึงภาพไปใช้ต่อ การตรวจสอบทำงานเบื้องหลังแบบมองไม่เห็น ผู้ชมทั่วไปไม่ต้องกดอะไรเพิ่มและไม่ต้องล็อกอิน กดดูสดได้ตามปกติ ถ้าระบบยืนยันเบราว์เซอร์ไม่ผ่าน (เช่นปิดจาวาสคริปต์ หรือสัญญาณตรวจสอบสะดุด) จะขึ้นข้อความให้กด "เล่นอีกครั้ง" — เป็นการเสริมความปลอดภัยเพื่อกันการนำภาพกล้องสาธารณะไปใช้โดยไม่ได้รับอนุญาต ผู้ดูแลระบบเปิด/ปิดฟีเจอร์นี้ได้ (3.114.0 + klynx-api 4.102.0)

NEW

เมนู New Watchman — เปิดสิทธิ์เข้าระบบ Watchman เป็นรายหน้า

เพิ่มกลุ่มเมนู "New Watchman" ในแถบเมนูด้านซ้าย แยกเป็น 6 หมวด (ภาพรวม, งานสืบสวน, งานป้องกันปราบปราม, งานจราจร·สอบสวน, ข้อมูลอื่น, ระบบ) รวม 28 หน้า ผู้ดูแลองค์กรกำหนดสิทธิ์ให้เห็นได้ทีละหน้า — หน้าไหนยังไม่ได้รับสิทธิ์จะไม่ขึ้นในเมนู เมื่อกดเมนูจะพาไปยังระบบ Watchman ตัวใหม่โดยตรง (เปิดเต็มหน้า ไม่ใช่กรอบฝัง). หมายเหตุ: การเปิดเมนูเป็นแค่การ "ให้เห็นลิงก์" — ระบบ Watchman ยังตรวจสิทธิ์เข้าใช้งานจริงของตัวเองอีกชั้น (3.113.0 + klynx-api 4.101.0)

IMPROVED

ลายน้ำ/โลโก้องค์กรบนกล้องสาธารณะ + เห็นลายน้ำตอนเต็มจอ

หน้าแผนที่กล้องสาธารณะ /live แสดงลายน้ำ (watermark) และโลโก้องค์กรทับบนภาพสด ตามที่ผู้ดูแลตั้งค่าไว้ในหน้าตั้งค่าสตรีม แม้ผู้ชมจะไม่ได้ล็อกอินก็เห็นลายน้ำเหมือนกับตอนล็อกอิน (ทั้งตัวเล่นด้านข้างและป๊อปอัพบนแผนที่) ช่วยกันการนำภาพไปใช้ต่อโดยไม่ได้รับอนุญาต. นอกจากนี้เพิ่มปุ่ม "เต็มจอ" ของระบบเองบนตัวเล่นวิดีโอทุกหน้า (/live, /videowall, /biDash) เพื่อให้ลายน้ำยังคงแสดงตอนดูแบบเต็มจอ — เดิมพอกดเต็มจอด้วยปุ่มของเบราว์เซอร์ ลายน้ำจะหายไป. ถ้าองค์กรปิดลายน้ำหรือยังไม่ได้ตั้งค่า ภาพก็เล่นได้ตามปกติโดยไม่มีลายน้ำ. พร้อมกันนี้ได้ตัดการเรียกเก็บสถิติเบื้องหลังที่ไม่จำเป็นออกจากผู้ชมที่ไม่ได้ล็อกอิน (3.111.0 + klynx-api 4.97.0)

NEW

เปิด AI วิเคราะห์ภาพให้กล้อง (ตรวจไฟ/ควัน/เหตุการณ์ตาม prompt)

หน้าจัดการกล้อง (/systemDevices/cameras) เพิ่มปุ่ม "เปิด AI" ในแผงรายละเอียดกล้อง — พิมพ์สิ่งที่อยากให้ AI ตรวจจับเป็นข้อความ (เช่น "fire burning in tank") แล้วระบบจะส่งภาพจากกล้องตัวนั้นไปให้บริการ AI วิเคราะห์ต่อเนื่อง พบเหตุเมื่อไรจะมีป้าย "พบเหตุ" ขึ้นที่กล้อง และดูประวัติเหตุการณ์ทั้งหมดได้ที่หน้าใหม่ "เหตุการณ์ AI" (/systemDevices/cameras/ai-events) ค้นหา/กรองตามกล้องและช่วงเวลาได้ กล้อง RTSP ทั่วไปและกล้อง AIBOX ใช้ได้ทั้งคู่ ปุ่มและหน้านี้จะเห็นเฉพาะองค์กรที่ได้รับสิทธิ์ "Enable Fire AI" / "AI Events" เท่านั้น (3.110.0 + klynx-api 4.96.0)

NEW

เลือกกล้องหลายตัวพร้อมกัน — แจ้งซ่อม / Sync / ลบ ทีเดียว

หน้าจัดการกล้อง (/systemDevices/cameras) เพิ่มช่องติ๊กเลือกหน้าแถว + ติ๊กเลือกทั้งหน้า (สูงสุด 50 ตัวต่อครั้ง) จากเดิมทำได้ทีละตัว ตอนนี้เลือกหลายตัวแล้วสั่งพร้อมกันได้: "แจ้งซ่อม/เลิกซ่อม" (ใส่เหตุผลเดียวใช้ทั้งชุด), "Sync" สั่งเช็คสถานะ, และ "ลบ". ระบบสรุปผลให้ว่าสำเร็จกี่ตัว/ข้ามกี่ตัว/ล้มเหลวกี่ตัว พร้อมเหตุผลรายตัว — กล้องที่จัดการโดยระบบ gateway (AIBOX) จะถูกข้ามตอนลบและให้ไปลบที่ระบบ gateway แทน ไม่ลบผิดที่ (3.109.0 + klynx-api v1.8)

NEW

โหมดซ่อมบำรุงกล้อง — แยก "ปิดซ่อม" ออกจาก "กล้องเสีย"

เพิ่มปุ่ม "แจ้งซ่อม / ปิดซ่อม" ในหน้าจัดการกล้อง (/systemDevices/cameras) — กดเพื่อทำเครื่องหมายว่ากล้องตัวนี้ปิดซ่อมตั้งใจ (เปลี่ยนเลนส์ / ดึงสายใหม่ / ย้ายจุดติดตั้ง) พร้อมระบุเหตุผลได้ จากเดิมกล้องที่ปิดซ่อมจะขึ้น offline สีแดงปนกับกล้องที่เสียจริง แยกไม่ออกทั้งในรายการ แผนที่ และยอดนับ ตอนนี้กล้องที่อยู่ในโหมดซ่อมจะขึ้นป้าย "ซ่อมบำรุง" สีม่วงคราม + หมุดสีเหลืองอำพันบนแผนที่แทนสีแดง และมีตัวกรอง "ซ่อมบำรุง" ให้ดูเฉพาะกล้องที่กำลังซ่อมได้ ระบบยังคงตรวจสถานะจริงเบื้องหลังตลอด พอปิดโหมดซ่อมก็กลับไปแสดงสถานะจริงทันที (3.108.0 + klynx-api 4.93.0)

IMPROVED

ดูกล้องสาธารณะปลอดภัยขึ้น + กันการนำสตรีมไปฝังเว็บอื่น

หน้าแผนที่กล้องสาธารณะ /live ดูสดได้ลื่นขึ้นแม้ไม่ได้ล็อกอิน (รวมกล้อง AIBOX) โดยระบบขอสิทธิ์เปิดสตรีมผ่านเซิร์ฟเวอร์ของเราเองทุกครั้ง ไม่เปิดช่องให้ดึงลิงก์สตรีมไปเล่นนอกระบบหรือเอาไปฝัง (iframe) บนเว็บอื่น. ถ้ามีการกดเปิดถี่เกินไป ระบบจะขอให้พักสักครู่แล้วกด "เล่นอีกครั้ง" เอง (ไม่ต่อใหม่อัตโนมัติ). เป็นการเสริมความปลอดภัยเบื้องหลัง ผู้ใช้ทั่วไปใช้งานได้เหมือนเดิม (3.107.0 + klynx-api 4.92.0)

IMPROVED

ดูสดเสถียรขึ้น — สตรีมไม่หลุด/ต่อใหม่วนซ้ำเมื่อมีเหตุการณ์เข้ามา

แก้อาการสตรีมในป๊อปอัพกล้องบนหน้าแดชบอร์ด /biDash หลุดแล้วเชื่อมต่อใหม่วนซ้ำทุกไม่กี่วินาทีเมื่อมีเหตุการณ์/สถานะกล้องเข้ามาเรียลไทม์: ระหว่างเปิดดูสดอยู่ ระบบจะพักการรีเฟรชหมุดบนแผนที่ไว้ก่อน แล้วค่อยอัปเดตเมื่อปิดป๊อปอัพ ภาพจึงไม่ดับกลางคัน และลดอาการ "กดดูแล้วรอนาน" เพราะสตรีมไม่ถูกตัดทิ้งให้ต้องดึงใหม่. ส่วนหน้าแก้ไขกล้อง: ระหว่างกดทดสอบสตรีมอยู่ การแก้ช่อง "ยี่ห้อ (brand)" จะไม่ทำให้ตัวเล่นถูกสร้างใหม่จนภาพดับอีกต่อไป (3.106.0)

NEW

หน้า Resource Permission เลือกกลุ่มย่อยแบบ explicit และจัดการอุปกรณ์ละเอียดขึ้น

แท็บเลือกอุปกรณ์ใน /systemUsers/permissions/resource ใช้ checkbox “รวมกลุ่มย่อย” ชัดเจนเหมือนฝั่งหน่วยงาน/สมาชิก: ไม่ติ๊กจะนับเฉพาะกลุ่มทรัพยากรที่เลือกตรง ติ๊กแล้วจึงครอบคลุมกลุ่มย่อยและตัดออกทั้งกลุ่มได้ เพิ่มโหมดอุปกรณ์ ทั้งหมด/เลือกเฉพาะ/ตัดเฉพาะ พร้อม badge ระบุเจาะจง/ตัดออกบนแถว RG และปรับยอดสรุปให้ตรงกับการเลือกสมาชิกหรืออุปกรณ์ตรง ๆ (3.104.0)

NEW

หน้าแดชบอร์ดเพิ่มตัวกรองหน่วยงาน

หน้า /biDash เพิ่มตัวกรองหน่วยงาน (OU) ทำงานคู่กับตัวกรองกลุ่มกล้อง: เลือกกลุ่มกล้องก่อนแล้วระบบช่วยแนะนำ OU ที่เกี่ยวข้อง หรือเลือก OU ก่อนแล้วระบบช่วยแนะนำกลุ่มกล้องที่ผูกไว้ พร้อมคงขอบเขตสิทธิ์เดิมของผู้ใช้ (3.103.0)

NEW

หน้าจัดการสิทธิ์ทรัพยากรตัดอุปกรณ์/กลุ่มย่อยได้ชัดขึ้น

หน้า Resource Permission แท็บเลือกอุปกรณ์เพิ่มปุ่ม “ตัดออกทั้งกลุ่มทรัพยากร” ในจุดที่กลุ่มลูกถูกครอบคลุม, ปรับปุ่มตัดอุปกรณ์/ตัดกลุ่มให้ขนาดเท่ากัน และเปลี่ยน badge จำนวนอุปกรณ์เป็น icon เครือข่าย (3.102.0)

NEW

หน้าจัดการสิทธิ์เข้า tree ทันที และหน้าเมนูเลือกสมาชิกได้ละเอียดขึ้น

หน้า Resource Permission เปิดเข้า editor/tree ทันทีโดยเลือก profile ที่สร้างไว้ก่อนให้ก่อน ไม่ต้องผ่านตารางสรุปแล้ว ส่วนหน้า Menu Permission มี “สรุปการเลือก” ที่รวมหน่วยงานแม่ และเพิ่มโหมดสมาชิก ทั้งหมด/เลือกเฉพาะ/ตัดเฉพาะ พร้อมปุ่มตัดหน่วยงานแม่ทั้งหมด (3.101.0 + klynx-api 4.84.0)

NEW

พรีวิวหน้าจัดการสิทธิ์ดีไซน์ใหม่ (Permission v2) — สำหรับทดสอบ

พรีวิวหน้าจัดการสิทธิ์โฉมใหม่ทั้งสามหน้า (เมนู, API Integrations, ทรัพยากร) — มีการ์ดสรุปยอด คน/กลุ่มทรัพยากร/อุปกรณ์/ความขัดแย้ง อยู่ด้านบน, ผังองค์กรแบบกดทีละหน่วยงานเพื่อ "ให้สิทธิ์ / ยกเว้น / สืบทอดจากหน่วยงานแม่ / ไม่กำหนด" และคลิกหน่วยงานเพื่อตั้งสิทธิ์รายคน (include / inherit / exclude) ได้ในป๊อปอัพเดียว. ตัวเลขยอดสุทธิดึงจากระบบหลังบ้านโดยตรง (ไม่คำนวณเองฝั่งหน้าจอ) จึงตรงกับสิทธิ์จริง พร้อม breakdown กล้อง/K-Control/Edge. ยังเป็นรุ่นทดสอบ — เปิดให้เห็นเฉพาะผู้ดูแลระบบเมื่อเปิด debug flag เท่านั้น หน้าจัดการสิทธิ์เดิมยังใช้งานปกติ (3.97.0 + klynx-api 4.79.0)

NEW

หน้าจัดการสิทธิ์ + กลุ่มอุปกรณ์ — สรุปการเลือกแม่นยำขึ้น

หน้าจัดการสิทธิ์ทรัพยากร (Resource permission): เปิดโปรไฟล์ขึ้นมาแล้วระบบแสดงสิ่งที่เลือกไว้ได้ถูกต้องครบทันที — สรุปการเลือก (หน่วยงาน/กลุ่มทรัพยากร/อุปกรณ์) ตรงกับที่บันทึกจริง และในผังหน่วยงานจะมีตัวเลขกำกับบอกว่า "มีรายการที่เลือกอยู่ข้างในกี่รายการ" แม้ยังไม่กางดู ทำให้เห็นภาพรวมได้เร็วโดยไม่ต้องไล่เปิดทีละชั้น. ส่วนหน้ากลุ่มอุปกรณ์ (Resource Groups) มีแถบสรุปภาพรวมว่ามีกล้อง / K-Control / Edge อยู่ในกลุ่มกี่ตัว และยังไม่ได้จัดเข้ากลุ่มกี่ตัว (3.96.0–3.96.1)

NEW

กล้อง AIBOX — ดูสดได้แล้ว + ปุ่ม "Sync" สั่งเช็คสถานะรายตัว

กล้อง AIBOX (กล้อง AI ที่เชื่อมจากระบบ Gateway) ดูภาพสดได้แล้วทั้งหน้าแก้ไขกล้อง (ปุ่ม "ทดสอบสตรีม") และหน้าดูสด/แผนที่/แดชบอร์ด เมื่อกล้องออนไลน์ — เดิมกดทดสอบสตรีมแล้วเงียบไม่มีอะไรเกิดขึ้น และปุ่ม "Sync" รายแถวในหน้าจัดการกล้องกลับมาใช้กับกล้อง AIBOX ได้แล้ว กดเพื่อสั่งให้ระบบเช็คสถานะออนไลน์/ออฟไลน์ของกล้องตัวนั้นทันทีไม่ต้องรอรอบปกติ (ไม่เกิน ~30 วินาที) ถ้ากล้องยังไม่ได้ผูกกับ edge ระบบจะบอกว่า "edge ยังไม่ลงทะเบียน" ให้ไปตั้งค่าก่อน แทนการขึ้น error งง ๆ (3.95.0)

NEW

AI Intelligence (Beta) — รับเหตุการณ์เรียลไทม์เร็วขึ้น + เน้นเหตุการณ์ Blacklist อัตโนมัติ

หน้า /intDash ตอนนี้รับเหตุการณ์ AI ใหม่แล้วอัปเดตตัวเลขรวม, กราฟ, และรายการล่าสุดทันทีโดยไม่ต้องดึงข้อมูลทั้งหมดมาใหม่ ระบบจึงเบาขึ้นทั้งฝั่งหน้าจอและฝั่งหลังบ้านแม้มีเหตุการณ์ถี่ — และเมื่อมีเหตุการณ์ประเภท Blacklist เข้ามา แผนที่จะซูม-เลื่อนไปยังตำแหน่งกล้องพร้อมเปิดป๊อปอัพแสดงคลิป/รูปที่กล้อง AI จับได้ทันที (กรอบเหลี่ยมส้มบนใบหน้า/วัตถุยังอยู่) ผู้ดูแลตรวจสอบเหตุการณ์สำคัญได้เร็วโดยไม่ต้องคลิกหาทีละจุดเอง (3.93.0)

NEW

Preview Permission Profile · v2 — แยกยอด unique access กับยอดเลือกซ้ำ

หน้า v2 ใช้ตัวเลขใหญ่จาก /preview เป็น unique access จริง: คนเข้าถึงได้และอุปกรณ์เข้าถึงได้. บรรทัดย่อยจะแสดงจำนวนที่เลือกทั้งหมด, ยกเว้น, และซ้ำ เช่นเลือกทั้ง RG และ device ตัวเดียวกันจะเห็นว่าเลือก 2 ทางแต่ unique device เหลือ 1 พร้อม breakdown camera / kcontrol / edge. Production route ยังไม่ถูกสลับ รอ UAT ยืนยันก่อน. (3.92.3 + klynx-api 4.72.0)

NEW

กดรับทราบเหตุการณ์จากตาราง K-Control ได้แล้ว

หน้า ระบบควบคุม → K-Control: ป้าย "แจ้งเตือน" สีแดงในตารางคลิกได้ — กดแล้วเปิดหน้าต่างเดียวกับที่ใช้ในแผนที่ K-Control เพื่อบันทึกการรับทราบเหตุการณ์ทันทีโดยไม่ต้องสลับไปหน้าแผนที่ พร้อมแก้ไอคอนไฟกระพริบที่บางครั้งไม่ขึ้นในหน้าแผนที่ K-Control ทำให้พลาดเหตุการณ์สำคัญ (3.90.0)

NEW

ตัดการสตรีมอัตโนมัติตามนโยบายขององค์กร

ผู้ดูแลกำหนดเวลาสูงสุดของการดูสตรีมต่อครั้งได้ในหน้า ตั้งค่า → Stream Sessions (เช่น 30 / 60 / 600 วินาที) — เมื่อครบเวลา ระบบจะตัดสตรีมและคืน <video> ให้เบราว์เซอร์อัตโนมัติทั้งหน้า Live (popup แผนที่ + แถบข้าง) และ Dashboard popup กล้อง ทันที พร้อมส่งบันทึก analytics แยกเหตุการณ์ "ครบเวลา (sessionTimeout)" ออกจาก "ผู้ใช้ปิดเอง (user)" ให้ทีมรายงานวิเคราะห์ได้แม่นยำขึ้น — ถ้าผู้ดูแลไม่เปิดสวิตช์ ทุกอย่างยังดูได้ไม่จำกัดเหมือนเดิม (3.80.0)

BETA

Video player ตัวใหม่ของระบบเอง (เบื้องหลัง)

เริ่มเปิดทาง player WebRTC ตัวใหม่ที่ทีมเขียนเอง เตรียมแทนของเดิมที่อิงไลบรารีภายนอก ใช้กับทุกหน้าที่ดู live (Live / VideoWall / biDash / map / floor plan) — เริ่มต้นยังปิดอยู่ ผู้ดูแลระบบจะเปิดให้เป็นครั้งคราวเพื่อทดสอบบน dev/UAT ก่อนแล้วค่อยเปิดบน production ทีหลัง ระหว่างนี้ระบบเริ่มเก็บค่าวัดผลการเล่น (เวลาเริ่มเล่นจริง, bitrate, fps, jitter) ส่งไปวิเคราะห์ เพื่อสรุปคุณภาพสตรีมในระดับองค์กรได้ในรุ่นถัดไป (3.79.0)

NEW

โลโก้ + ลายน้ำทับวิดีโอสตรีม — แสดงผลจริงบนหน้า Live ทุกหน้าแล้ว

รุ่นนี้ "เปิดสวิตช์" ให้โลโก้และลายน้ำที่แอดมินตั้งไว้ในหน้า ตั้งค่า → Stream Sessions แสดงผลทับวิดีโอจริงๆ บนทุกหน้าที่ดูสด — VideoWall (ทุกช่อง), Live (preview ในแถบข้าง + popup เมื่อย่อแถบข้าง + popup บนแผนที่), Dashboard popup กล้อง — ตามค่า Apply-to ที่เลือกไว้ โหมด "สุ่ม" (anti-tamper) เปลี่ยนตำแหน่งและมุมเอียงของลายน้ำตามรอบที่ตั้งไว้ (1-60 วินาที); ถ้าปิดสวิตช์โลโก้/ลายน้ำหรือยกเลิก Apply-to ของหน้าใดหน้านึง โอเวอร์เลย์จะหายทันที (3.78.0)

IMPROVED

ดูสตรีมสดผ่านระบบใหม่ — ปลอดภัยขึ้น + รองรับ AIBOX

เปลี่ยนช่องทางดู FLV ของกล้อง ATA / AIBOX มาผ่านระบบ klynx-api แทนต่อตรงไป edgeAI — ระบบจะขอ ticket แบบใช้ครั้งเดียวก่อนเปิดสตรีม โทเค็นของ edgeAI ไม่หลุดมาฝั่งผู้ใช้อีกแล้ว ใช้กับ /live, /biDash, /videowall, /map, และหน้าแก้ไขกล้อง

BETA

AI Intelligence (Beta) — หน้าใหม่

เปิดเมนูใหม่ /intDash สำหรับดูเหตุการณ์ AI / Edge AI แบบ realtime แยกออกจากหน้า Dashboard เดิม (ที่เน้น Livestream) — เฟส 2 ตามแผน K-LYNX Dashboard Evolution พร้อมโครงหน้าและสีตามระดับความรุนแรง (สูง/กลาง/ต่ำ/ข้อมูล) วิดเจ็ตจริง (KPI / แผนที่ AI / feed / สถิติด้านล่าง) ทยอย ship เป็น chore B-2 / B-3 / B-4 — ตอนนี้เป็นเฟส beta โหมดเปิดให้ผู้ดูแลสิทธิ์ลองเปิดได้ที่หน้า "ระบบผู้ใช้ → สิทธิ์ → จัดการเมนู"

NEW

AI Investigation Center

หน้า /ksearch/chats เปลี่ยนเป็น workspace สืบค้นเหตุการณ์จากกล้องด้วย AI พร้อม cards, timeline และ map context

NEW

อัปเดตสถานะอุปกรณ์แบบ Real-time ทุกหน้า

หน้า Dashboard / K-Control / VideoWall / รายการกล้อง / รายการ kcontrol / Map / mapif รับสถานะออนไลน์-ออฟไลน์และเหตุการณ์ใหม่ทันที โดยไม่ต้องกด refresh — ระบบเชื่อมต่อแบบใหม่ที่ปลอดภัยขึ้นและไม่หลุดสิทธิ์ข้ามองค์กร

NEW

หน้า K-Control Temperature

ดูอุณหภูมิย้อนหลังต่ออุปกรณ์ พร้อมกราฟ + ตั้งเกณฑ์เตือนได้ที่หน้า /kcontrol/temperature

NEW

กำหนดสิทธิ์เป็นรายคน

เลือกได้ว่าจะให้ใครในหน่วยงานเห็นกล้อง / kcontrol ตัวไหนบ้าง โดยไม่ต้องสร้างกลุ่มสิทธิ์ใหม่ทุกคน

NEW

ไอคอนกล้องบนแผนที่ตามกลุ่ม

แต่ละกลุ่มอุปกรณ์ตั้งไอคอนของตัวเองได้ — แยกสีตอนออนไลน์ / ออฟไลน์ ดูแผนที่แล้วเข้าใจสถานะทันที

NEW

สิทธิ์เข้าถึง Edge Device

จำกัดได้ว่าใครเห็น Edge ตัวไหนบ้าง (ATA / SVMS / iboc) — เหมือนระบบสิทธิ์กล้องที่มีอยู่แล้ว

IMPROVED

Export รายชื่อ / กล้อง เป็น Excel ทุกหน้า

ของเดิม export ได้แค่หน้าปัจจุบัน ตอนนี้ดึงครบทั้งองค์กร พร้อมใช้งานทันที

IMPROVED

เปิด / ปิด Permission Profile

หยุดใช้งาน Profile ชั่วคราวได้โดยไม่ต้องลบ — ค่า OU / Member ที่ตั้งไว้คงเดิม

SECURITY

ปิดช่องโหว่สตรีมข้ามสิทธิ์

ผู้ใช้ที่ไม่มีสิทธิ์ดูกล้อง จะเปิดสตรีมไม่ได้แล้ว แม้รู้รหัสกล้อง — เดิมเช็คแค่ระดับองค์กร

10K+รองรับกล้องต่อองค์กร
99.9%Uptime SLA
< 500msReal-time Latency
ไม่จำกัดรองรับเหตุการณ์ / วัน
Release History

ประวัติเวอร์ชัน

รายละเอียดการเปลี่ยนแปลงทั้งหมด

LATESTมิ.ย. 2026 — AI Intelligence โฉมใหม่11 มิ.ย. 2569

หน้า AI Intelligence ยกเครื่อง: แผนที่ Digital Twin 3 มิติ + การ์ดสถิติเรืองแสง + ภาพเหตุการณ์ใหญ่ขึ้น

Features9

  • รายงานสรุป Edge AI ใช้ข้อมูลจริง — การ์ดสรุป กราฟแนวโน้ม สัดส่วนเหตุการณ์ นับคนแยกตามโซน (ใหม่) สถานะอุปกรณ์ และตารางเหตุการณ์ล่าสุด เลือกช่วงวันที่ได้ พร้อมโทนการ์ดสถิติแบบ AI Intelligence ทั้งหมวด Edge AI (4.6.0 + klynx-api 4.108.0)
  • ล้างเครื่องกลับค่าเริ่มต้น (Factory Reset) — หน้าการตั้งค่า → การตั้งค่าระบบ เพิ่มส่วน "พื้นที่อันตราย" ให้ผู้ดูแลแพลตฟอร์มสั่งล้างข้อมูลทั้งเครื่องกลับสู่ค่าเริ่มต้นได้เอง (เฉพาะเครื่องแบบติดตั้งในสถานที่) พร้อมขั้นตอนยืนยันหลายชั้น: พิมพ์ชื่อเครื่อง ติ๊กรับทราบ กรอกรหัสผ่านซ้ำ และผู้อนุมัติคนที่สองถ้าตั้งค่าไว้ — เห็นความคืบหน้าสดทีละขั้น เสร็จแล้วพาออกจากระบบอัตโนมัติ (4.5.1 + klynx-api 4.107.0)
  • เชื่อมต่อกล้องจากระบบ NX Witness (Network Optix) — หน้าระบบอุปกรณ์ → Edge เพิ่มประเภทอุปกรณ์ใหม่ กรอกที่อยู่เซิร์ฟเวอร์และบัญชี NX แล้วกดซิงค์ ระบบดึงกล้องทั้งหมดเข้ามาใช้งานใน Klynx อัตโนมัติ พร้อมสรุปผลว่าพบ/เพิ่ม/อัปเดตกล้องกี่ตัว และตั้งรอบซิงค์อัตโนมัติได้ (4.4.0 + klynx-api 4.105.0)
  • แผนที่ Digital Twin — แผนที่เหตุการณ์บนหน้า AI Intelligence เป็นมุมเอียง 3 มิติ เห็นอาคารยกตัวขึ้นจริงเมื่อซูมเข้าเมือง เหตุการณ์ใหม่มีวงแหวนกระเพื่อมตามสีความรุนแรง เปิดหน้าครั้งแรกกล้องบินเข้าหาพื้นที่เหตุการณ์ และเหตุบัญชีดำกล้องจะดิ่งลงไปที่จุดเกิดเหตุก่อนเปิดรายละเอียด — สลับ 2D/3D หรือกลับแผนที่แบบคลาสสิกได้ที่มุมขวาบน (4.3.0)
  • เหตุการณ์หลายรายการที่เกิดจุดเดียวกัน กดแล้วกางออกเป็นวงรอบตำแหน่งจริง (เรียงใหม่สุดไว้บนสุด) เลือกดูทีละเหตุการณ์ได้ ไม่ทับกันเป็นจุดเดียวอีกต่อไป (4.3.0)
  • ปุ่ม LIVE เปิด/ปิดได้แล้ว — กดพักการรับข้อมูลเรียลไทม์ชั่วคราวเมื่อต้องการดูข้อมูลนิ่ง ๆ แล้วกดเปิดกลับเมื่อพร้อม ระบบจะดึงข้อมูลล่าสุดให้ก่อนค่อยเชื่อมต่อเรียลไทม์ต่อ มีทั้งบนหน้า AI Intelligence และหน้าแผนที่ระบบควบคุม (4.3.0)
  • แผนที่เหตุการณ์เรียลไทม์บนหน้า AI Intelligence เปลี่ยนเป็นแผนที่เวกเตอร์ WebGL คมชัดทุกระดับซูม (เปิดให้อัตโนมัติ) — หมุดเหตุการณ์ ป๊อปอัพ และการเด้งไปบัญชีดำทำงานเหมือนเดิมทุกอย่าง ถ้าเครื่องไม่รองรับ ระบบสลับกลับแผนที่แบบเดิมให้เอง (4.2.0)
  • การ์ดสถิติด้านบนโฉมใหม่ — แสงเรืองตามสีของแต่ละตัวชี้วัด ไอคอนชิปสี และตัวเลขแบบ tabular อ่านง่าย (4.2.0)
  • ภาพเหตุการณ์ในรายการ "เหตุการณ์ล่าสุด" ใหญ่ขึ้น (40→64px) พร้อมแถบสีระดับความรุนแรงข้างรายการ และกดได้ทั้งแถวเพื่อเปิดภาพเต็ม (4.2.0)

Improvements10

  • แดชบอร์ดวิเคราะห์ (Analytics) เลือกช่วง "วันและเวลา" ได้แล้วเช่นกัน — กรองสถิติการรับชมตามช่วงเวลาที่เลือก (4.9.10)
  • แดชบอร์ด Ingest เลือกช่วง "วันและเวลา" ได้แล้ว (เช่น 08:00–12:00 ของวันนี้) — ค่าเริ่มต้นคือวันนี้ตั้งแต่เที่ยงคืนถึงปัจจุบัน การ์ดและกราฟกรองตามช่วงเวลาที่เลือก ส่วนสถานะอุปกรณ์เป็นค่าปัจจุบันเสมอ (4.9.9)
  • หน้าเหตุการณ์ (Ingest) แก้การ์ดสรุปที่ไม่ขึ้นตัวเลขเมื่อเลือกช่วงหลายวัน และเพิ่มกดการ์ด (เหตุการณ์ทั้งหมด/ใบหน้า/ป้ายทะเบียน) เพื่อกรองตารางตามประเภทนั้นทันที (4.9.8)
  • แดชบอร์ด Ingest ปรับกราฟแนวโน้มเหตุการณ์ให้สวยและอ่านง่ายขึ้น (กราฟแท่งซ้อนพร้อมแกน/คำอธิบาย/ทูลทิป) และตั้งค่าเริ่มต้นเป็น "วันนี้" (เที่ยงคืนถึงปัจจุบัน) — เลือกวันเดียวจะเห็นแนวโน้มรายชั่วโมง (4.9.5)
  • แดชบอร์ด Ingest เพิ่มการ์ด "คนเข้า-ออกทั้งหมด" สรุปยอดรวมพร้อมแยกเข้า/ออก และหน้า AI Intelligence ตัดการ์ด "ความแม่นยำเฉลี่ย" ออกให้แถบสรุปกระชับขึ้น (4.9.4)
  • เมนู Ingest กระชับขึ้น เหลือ "แดชบอร์ด" กับ "เหตุการณ์" — และหน้าแดชบอร์ด Ingest ยกเครื่องเป็นมุมมองสรุปแบบเต็ม (การ์ดสรุป กราฟแนวโน้ม สัดส่วนเหตุการณ์ นับคนแยกตามโซน สถานะอุปกรณ์ และตารางบัญชีดำ/เหตุการณ์ล่าสุด) เลือกช่วงวันที่ได้เหมือนแดชบอร์ดหลัก (4.9.3)
  • หน้า AI Intelligence และแดชบอร์ดวิเคราะห์ลื่นขึ้นมากเมื่อมีเหตุการณ์เข้าพร้อมกันจำนวนมาก — ระบบรวบเหตุการณ์ช่วงพีคมาแสดงเป็นชุดเดียวแทนการอัปเดตทีละรายการ จอจึงไม่หน่วงหรือค้าง และมีป้าย "ช่วงพีคย่อ +N" บอกจำนวนที่ถูกรวบในรายการเหตุการณ์ล่าสุด (4.9.0)
  • หน้าการตั้งค่าทุกแท็บแสดงผลเต็มความกว้างจอ — เดิมเนื้อหาถูกบีบเป็นคอลัมน์แคบกลางจอ (4.5.1)
  • กราฟวิเคราะห์แถวล่างไม่ทับกันแล้ว — เพิ่มความสูงกราฟและจัดระยะคำอธิบาย (legend) ใหม่ทั้ง 4 การ์ด
  • แดชบอร์ดวิเคราะห์ (biDash) โหมด WebGL: ป๊อปอัพดูภาพสดเปิดอยู่เหนือหมุดเสมอ พร้อมเลื่อนแผนที่ให้เห็นป๊อปอัพเต็มใบอัตโนมัติ

Fixes1

  • หน้าแรก หน้าดูสด และเมนูด้านข้าง ไม่เห็นชื่อ/โลโก้ค่าเริ่มต้นกระพริบก่อนแล้ว — แสดงโครงโหลด (skeleton) รอจนได้แบรนด์ที่ตั้งไว้ค่อยขึ้นจริง และสีหลักของแบรนด์ถูกนำไปใช้กับปุ่ม/องค์ประกอบหลักทั้งระบบ (4.9.1)
มิ.ย. 2026 — แผนที่ WebGL (ทดลองใช้)11 มิ.ย. 2569

แดชบอร์ดวิเคราะห์: แผนที่โฉมใหม่แบบ WebGL (เปิดใช้เองได้)

Features2

  • ปุ่ม "WebGL" ใหม่บนแถบเครื่องมือแผนที่ของแดชบอร์ดวิเคราะห์ (เฉพาะโหมดแผนที่ OpenStreetMap) — เปิดแล้วได้แผนที่แบบเวกเตอร์คมชัดทุกระดับซูม พร้อมวงเรืองแสงตามสถานะกล้อง (เขียว=ออนไลน์ แดง=ออฟไลน์ เหลือง=ปิดปรับปรุง) และกลุ่มกล้องแบบฟองนับจำนวน กดแล้วซูมเข้าอัตโนมัติ (4.1.0)
  • ระหว่างเปิดดูภาพสดจากหมุดกล้อง สถานะกล้องตัวอื่นบนแผนที่ยังอัปเดตต่อเนื่อง — โหมดเดิมต้องรอปิดป๊อปอัพก่อน (4.1.0)

Improvements2

  • ธีมแผนที่ (Standard / Dark / Voyager) และโหมดมืด-สว่าง ใช้ได้กับแผนที่ WebGL เหมือนโหมดเดิม
  • ถ้าเครื่องไม่รองรับหรือโหลดแผนที่ WebGL ไม่สำเร็จ ระบบสลับกลับแผนที่แบบเดิมให้อัตโนมัติ — ปิดกลับได้ตลอดด้วยปุ่มเดิม (ค่าเริ่มต้นคือปิด)
มิ.ย. 2026 — Klynx 4.0 "New Face"11 มิ.ย. 2569

ยกเครื่องหน้าแรกใหม่ทั้งหน้า + คู่มือผู้ใช้/ผู้ดูแลระบบ

Features3

  • หน้าแรกโฉมใหม่ (4.0.0) — เลื่อนหน้าจอแล้วภาพและข้อความเคลื่อนไหวรับกับการเลื่อน สไตล์เว็บเปิดตัวสินค้าชั้นนำ พร้อมภาพหน้าจอจริงของระบบ (แดชบอร์ดวิเคราะห์, วิดีโอวอลล์, แผนที่สด, เหตุการณ์ AI, มุมมองมือถือ) — เครื่องที่เปิดโหมด "ลดการเคลื่อนไหว" ระบบปิดอนิเมชันให้อัตโนมัติ และบนมือถือใช้เอฟเฟกต์แบบเบาเพื่อความลื่น
  • คู่มือใหม่ 2 เล่มในหน้าเอกสาร — "คู่มือผู้ใช้" (ดูกล้องสด วิดีโอวอลล์ ค้นหาเหตุการณ์ แชร์ลิงก์ดูสด) และ "คู่มือผู้ดูแลระบบ" (ตั้งหน่วยงาน เพิ่มผู้ใช้/กล้อง กำหนดสิทธิ์ทีละขั้น พร้อมเช็กลิสต์เปิดองค์กรใหม่) เปิดอ่านได้โดยไม่ต้องเข้าสู่ระบบ
  • ลงทะเบียนรูปใบหน้าที่หน้าโปรไฟล์ — อัปโหลดไฟล์หรือถ่ายเซลฟี่จากกล้องของเครื่อง (รองรับมือถือ) ต้องติ๊กยินยอมก่อนบันทึก ลบได้ตลอด (3.118.0 + klynx-api 4.103.0)

Improvements2

  • หน้าเริ่มต้นใช้งานในเอกสารอัปเดตเนื้อหาให้ตรงระบบปัจจุบัน — เพิ่มเหตุการณ์ AI, วิดีโอวอลล์แบบกำหนดผังเอง, การแชร์ลิงก์ดูสดสาธารณะ และตัดข้อมูลแผนงานเก่าที่เลยกำหนดออก
  • เมนูด้านข้างของหน้าเอกสารชี้เฉพาะหน้าที่มีจริงแล้ว — เดิมมีลิงก์หลายรายการกดแล้วขึ้น "ไม่พบหน้า"
มิ.ย. 2026 — Camera AI Analyze8 มิ.ย. 2569

เปิด AI วิเคราะห์ภาพให้กล้อง + หน้าเหตุการณ์ AI

Features3

  • เปิด AI ให้กล้องรายตัว — ในหน้า ระบบอุปกรณ์ → กล้อง (แผงรายละเอียดกล้อง) เพิ่มปุ่ม "เปิด AI" พิมพ์ prompt บอกสิ่งที่อยากให้ตรวจจับ (เช่น "fire burning in tank") ระบบจะส่งสตรีมของกล้องตัวนั้นไปให้บริการ AI วิเคราะห์ต่อเนื่อง แก้ prompt หรือปิดได้ตลอด รองรับทั้งกล้อง RTSP ทั่วไปและกล้อง AIBOX (ระบบแปลงสตรีมให้อัตโนมัติเบื้องหลัง) — ปุ่มจะแสดงเฉพาะองค์กรที่ได้รับสิทธิ์ "Enable Fire AI"
  • ป้ายสถานะ AI ที่กล้อง — กล้องที่เปิด AI จะมีป้าย "AI ทำงาน" และถ้า AI พบเหตุจะมีป้าย "พบเหตุ" พร้อมคำบรรยายและเวลา
  • หน้าใหม่ "เหตุการณ์ AI" — /systemDevices/cameras/ai-events รวมเหตุการณ์ที่ AI ตรวจพบทั้งองค์กร เรียงใหม่ล่าสุดก่อน ค้นหา/กรองตามกล้องและช่วงเวลาได้ เห็นเฉพาะองค์กรที่ได้รับสิทธิ์ "AI Events" (3.110.0 + klynx-api 4.96.0)

Improvements5

  • ลายน้ำ/โลโก้บนกล้องสาธารณะ /live — ผู้ชมที่ไม่ได้ล็อกอินจะเห็นลายน้ำ (watermark) และโลโก้องค์กรทับบนภาพสดตามที่ผู้ดูแลตั้งค่าไว้ เหมือนกับตอนล็อกอิน ทั้งตัวเล่นด้านข้างและป๊อปอัพบนแผนที่ ช่วยกันการนำภาพไปใช้ต่อ (3.111.0 + klynx-api 4.97.0)
  • เห็นลายน้ำตอนดูเต็มจอ — เพิ่มปุ่ม "เต็มจอ" ของระบบบนตัวเล่นวิดีโอ /live, /videowall, /biDash เพื่อให้ลายน้ำยังแสดงตอนเต็มจอ (เดิมกดปุ่มเต็มจอของเบราว์เซอร์แล้วลายน้ำหาย) (3.111.0)
  • หน้าจัดการสิทธิ์ลื่นขึ้นเมื่อมีโปรไฟล์เยอะ — รายชื่อโปรไฟล์สิทธิ์ในหน้า เมนู และ ทรัพยากร เปลี่ยนเป็นเลื่อนลงเพื่อโหลดเพิ่มทีละชุด (ไม่ค้างที่ 250 รายการแรกอีกต่อไป) พร้อมช่องค้นหาที่ค้นจากทั้งองค์กร ส่วนหน้า API Token เปลี่ยนเป็นแบ่งหน้าแบบเลือกเลขหน้า (3.112.0)
  • หน้าจัดการสิทธิ์เปิดเร็วขึ้นในองค์กรที่มีหน่วยงานเยอะ — เลิกดึงรายชื่อสมาชิกของทุกหน่วยงานพร้อมกันตอนเปิดโปรไฟล์ และตัวเลขจำนวนสมาชิกบนป้ายหน่วยงานแม่แม่นยำขึ้น (รวมหน่วยงานที่มีสมาชิกเกิน 250 คน) (3.114.3)
  • วิดีโอวอลล์ (Video Wall) เพิ่มฟีเจอร์ — กรองกล้องตามสถานะออนไลน์/ออฟไลน์, ปุ่มเต็มจอที่ซ่อนเมนู/ส่วนหัว/รายการกล้องให้เห็นภาพเต็มที่ (กด ESC ออก), และปรับจำนวนช่องแบบกำหนดเองด้วยการลากเลือกตาราง แถว × ช่อง เหมือนแทรกตารางใน Excel (สูงสุด 6×6) (3.115.0–3.116.0)

Fixes6

  • ลดการเรียก API ที่ไม่จำเป็นบนหน้า /live สำหรับผู้ชมที่ไม่ได้ล็อกอิน (ตัดการเก็บสถิติเบื้องหลังที่เดิมขึ้น error 401) — ใช้งานหน้าเดิมได้ตามปกติ (3.111.0)
  • กรองหน่วยงานบนแดชบอร์ดแล้วเห็นกล้องที่ให้สิทธิแบบเลือกรายตัวได้แล้ว — เดิมถ้าให้สิทธิกล้องแบบเลือกทีละตัว (ไม่ได้ผ่านกลุ่มทรัพยากร) หน้า /biDash เลือกกรองหน่วยงานแล้วไม่ขึ้นกล้องเลย ตอนนี้หมุดบนแผนที่และตัวเลขกล้องออนไลน์/ออฟไลน์แสดงครบถูกต้อง (3.112.1 + klynx-api 4.99.0)
  • กดดูกล้องแล้วเห็นวงโหลด "กำลังเชื่อมต่อสตรีม…" ทันที — เดิมกล้อง RTSP ทั่วไปจะขึ้นจอดำเฉย ๆ ระหว่างเชื่อมต่อจนเหมือนค้าง (มีเฉพาะกล้อง AIBOX/ATA ที่ขึ้นวงโหลด) ตอนนี้ทุกหน้า (/live, /videowall, /map, /biDash) แสดงวงโหลดตั้งแต่กดเล่นจนภาพแรกขึ้น (3.112.3)
  • กล้องที่เพิ่งเปิดดูครั้งแรกแล้วติด ๆ ตอนนี้ลองเชื่อมต่อใหม่ให้อัตโนมัติ — เดิมถ้ากดดูกล้องจังหวะที่สตรีมยังตั้งต้นไม่เสร็จ จะเล่นไม่ขึ้นต้องกดใหม่เอง ตอนนี้ระบบลองซ้ำให้เองสั้น ๆ ภายใน 1-2 วินาที (3.112.4)
  • แก้รายชื่อสมาชิกใน หน้าจัดการสิทธิ์ (ทั้งแท็บ เมนู และ ทรัพยากร) ที่หายเมื่อหน่วยงานมีสมาชิกเกิน 250 คน — เดิมจะแสดงแค่ 250 คนแรกเงียบ ๆ ทำให้เลือก/ตัดสมาชิกที่เหลือไม่ได้ ตอนนี้เลื่อนลงเพื่อโหลดเพิ่มทีละชุดจนครบ (3.113.2, 3.114.1)
  • ซ่อนเมนู "แผนการใช้งาน" สำหรับผู้ใช้ทั่วไปในระบบที่เปิดใช้งานสัญญาแบบองค์กร (Enterprise) แล้ว — เดิมเมนูนี้ยังแสดงให้ผู้ใช้ทั่วไปแม้องค์กรจะเปิดใช้งานสัญญาองค์กรไปแล้ว (เห็นซ่อนเฉพาะผู้ดูแลระบบ) ตอนนี้ผู้ใช้ทั่วไปก็ไม่เห็นเมนูนี้แล้ว ส่วนการจัดการสัญญา/ใบอนุญาตยังเป็นหน้าที่ของผู้ดูแลระบบเหมือนเดิม (3.114.7)
มิ.ย. 2026 — Camera Maintenance Mode6 มิ.ย. 2569

โหมดซ่อมบำรุงกล้อง + เสริมความปลอดภัยกล้องสาธารณะ

Features2

  • โหมดซ่อมบำรุงกล้อง — ในหน้า ระบบอุปกรณ์ → กล้อง เพิ่มปุ่ม "แจ้งซ่อม / ปิดซ่อม" รายแถว (และในแผงรายละเอียดกล้อง) กดแล้วใส่เหตุผลได้ ระบบจะทำเครื่องหมายว่ากล้องตัวนี้ปิดซ่อมตั้งใจ เดิมกล้องที่ปิดซ่อมจะขึ้น offline สีแดงปนกับกล้องที่เสียจริง ตอนนี้แยกชัด: ในรายการขึ้นป้าย "ซ่อมบำรุง" สีม่วงคราม, บนแผนที่ (ทั้ง Google และ OpenStreetMap) ขึ้นหมุดสีเหลืองอำพันแทนสีแดง, มีตัวกรอง "ซ่อมบำรุง" ดูเฉพาะกล้องที่กำลังซ่อมได้ (ใช้ร่วมกับตัวกรองออนไลน์/ออฟไลน์ได้) แผงรายละเอียดยังโชว์ "สถานะจริง" จากการตรวจเบื้องหลัง เหตุผล เวลาเริ่มซ่อม และผู้แจ้ง เพราะระบบยังตรวจสถานะจริงตลอด พอปิดโหมดซ่อมก็กลับมาแสดงสถานะจริงทันที (3.108.0 + klynx-api 4.93.0)
  • ดูกล้องสาธารณะปลอดภัยขึ้น + กันการนำสตรีมไปฝังเว็บอื่น — หน้าแผนที่กล้องสาธารณะ /live ดูสดได้ลื่นขึ้นแม้ไม่ได้ล็อกอิน (รวมกล้อง AIBOX) โดยขอสิทธิ์เปิดสตรีมผ่านเซิร์ฟเวอร์ของเราเองทุกครั้ง ไม่เปิดช่องให้ดึงลิงก์ไปเล่นนอกระบบหรือฝัง (iframe) บนเว็บอื่น ถ้ากดเปิดถี่เกินไประบบจะขอให้พักแล้วกด "เล่นอีกครั้ง" เอง (3.107.0 + klynx-api 4.92.0)

Fixes1

  • แก้แผนที่ในหน้า BI Dashboard ค้าง/เด้ง error เป็นบางครั้งตอนสลับหน้าเร็ว ๆ — เกิดจากแผนที่ยังเล่นภาพซูมค้างอยู่ขณะออกจากหน้า ตอนนี้ลื่นไม่สะดุดแล้ว
พ.ค. 2026 — Camera Export/Import QoL27 พ.ค. 2569

ส่งออก/นำเข้ากล้อง — อัปเดตความสะดวกและความปลอดภัย

Features11

  • เพิ่มปุ่ม "ส่งออก Excel" ในหน้ารายการกล้อง — ดาวน์โหลดข้อมูลกล้องทั้งหมดเป็นไฟล์ Excel ได้ในคลิกเดียว
  • ส่งออกข้อมูลกล้องรวมรหัสผ่านได้ — ต้องติ๊กกล่อง "รวมรหัสผ่าน" ก่อน ระบบจะแจ้งเตือนว่ารหัสผ่านจะถูกส่งออกแบบไม่เข้ารหัส และระบบจะบันทึกประวัติการดาวน์โหลดทุกครั้งเพื่อให้ผู้ดูแลตรวจสอบย้อนหลังได้
  • สร้างกล้องใหม่ผ่านไฟล์ Excel ได้โดยไม่ต้องใส่ URL — กรอกแค่ชื่อ + ละติจูด + ลองจิจูดแล้วนำเข้าได้เลย เพิ่ม URL ทีหลังผ่านหน้าแก้ไขกล้อง
  • ปุ่ม "Sync" รายแถวในหน้าจัดการกล้องกลับมาใช้กับกล้อง AIBOX ได้แล้ว — กดเพื่อสั่งระบบเช็คสถานะออนไลน์/ออฟไลน์ของกล้องตัวนั้นทันที (ไม่เกิน ~30 วินาที) ถ้ากล้องยังไม่ผูกกับ edge ระบบจะแจ้งว่า "edge ยังไม่ลงทะเบียน" ให้ไปตั้งค่าก่อน
  • หน้าจัดการสิทธิ์ทรัพยากร: เพิ่มการ์ดสรุป "คนเข้าถึงได้จริง / กลุ่มทรัพยากร / อุปกรณ์ / กฎขัดแย้ง" ของแต่ละโปรไฟล์ (ตัวเลขจริงจากระบบ หักซ้ำ/ยกเว้นแล้ว)
  • หน้าจัดการสิทธิ์ทรัพยากร: เลือก Resource Group แม่แล้วกลุ่มลูกอยู่ใน scope ทันที, กดตัดออกทั้งกลุ่มทรัพยากรที่กลุ่มลูกได้เลย และช่องเลือกอุปกรณ์มีโหมด ทั้งหมด/เลือกเฉพาะ/ตัดเฉพาะ เหมือนฝั่งสมาชิก
  • หน้าจัดการสิทธิ์ทรัพยากร: แท็บเลือกอุปกรณ์เพิ่มปุ่มตัดออกทั้งกลุ่มทรัพยากรสำหรับกลุ่มลูกที่ inherited จาก “รวมกลุ่มย่อย” และปรับ icon จำนวนอุปกรณ์เป็นรูปเครือข่าย
  • หน้าจัดการสิทธิ์เมนู: เพิ่มโหมดสมาชิก ทั้งหมด/เลือกเฉพาะ/ตัดเฉพาะ และปุ่ม "ตัดหน่วยงานแม่ทั้งหมด" ให้จำกัดสิทธิ์ที่สืบทอดจากหน่วยงานแม่ได้เหมือนหน้า Resource Permission
  • หน้า /biDash: เพิ่มตัวกรองหน่วยงาน (OU) ที่ทำงานคู่กับตัวกรองกลุ่มกล้อง เลือกฝั่งใดก่อนก็ช่วยแนะนำอีกฝั่งตามสิทธิ์และความสัมพันธ์ที่ผูกไว้
  • หน้ากลุ่มอุปกรณ์: เพิ่มแถบสรุปจำนวนกล้อง/K-Control/Edge ที่อยู่ในกลุ่ม vs ยังไม่ได้จัดกลุ่ม
  • เพิ่มไอคอนหมุน "กำลังเชื่อมต่อสตรีม…" ระหว่างรอภาพในทุกหน้าที่ดูสด (Live, videowall, ป๊อปอัพกล้องบนแผนที่, หน้าทดสอบสตรีม) — ไม่เห็นจอดำเฉย ๆ จนเข้าใจผิดว่ากดไม่ติดแล้วกดซ้ำ

Improvements1

  • จัดเมนูใหม่ให้เข้าใจง่ายขึ้น: เมนู "การตั้งค่าระบบ" เดิม (กล้อง/จัดกลุ่มอุปกรณ์/Edge) เปลี่ยนชื่อเป็น "การตั้งค่าอุปกรณ์" ให้ตรงกับเนื้อหา และย้ายหน้า "ลิขสิทธิ์และแพ็กเกจของระบบ" เข้าไปเป็นแท็บ License ในหน้าการตั้งค่า พร้อมเพิ่มแท็บ "การตั้งค่าระบบ" ไว้รองรับการตั้งค่าระดับระบบในอนาคต

Fixes3

  • แก้ปุ่ม "ทดสอบสตรีม" ในหน้าแก้ไขกล้องที่กดแล้วเงียบไม่มีอะไรเกิดขึ้นกับกล้อง AIBOX (กล้อง AI ที่เชื่อมจากระบบ Gateway) — เดิมหน้านี้รองรับเฉพาะกล้องยี่ห้อ ATA ทำให้กล้อง AIBOX กดทดสอบแล้วไม่เริ่มเล่น ตอนนี้ดูภาพสดได้แล้ว
  • แก้กล้อง AIBOX เล่นไม่ขึ้นบน videowall (เห็นจอดำ) — เดิมกล้องบางตัวถูกส่งไปเล่นผิดช่องทาง ตอนนี้เล่นได้ปกติ
  • แก้ป๊อปอัพกล้อง AIBOX บนแผนที่หน้า Live ที่ขึ้นข้อความแดง "เปิดสตรีมไม่สำเร็จ ลองปิดแล้วเปิดใหม่" ทั้งที่กล้องปกติ — เกิดจากระบบรอภาพแรกไม่ทันแล้วแจ้งเตือนเร็วเกินไป ตอนนี้ไม่เตือนผิดแล้ว
พ.ค. 2026 — Realtime Delta + Blacklist Focus26 พ.ค. 2569

AI Intelligence (Beta) realtime ลื่นขึ้น + เน้น Blacklist อัตโนมัติ

Features2

  • หน้า AI Intelligence (Beta) /intDash — เปลี่ยนการรับข้อมูลเรียลไทม์เป็นแบบ "อัปเดตเฉพาะส่วนที่เปลี่ยน": เมื่อมีเหตุการณ์ใหม่ ระบบจะเติมรายการ, เพิ่มตัวเลข KPI ที่คำนวณจาก event ได้ทันที, และอัปเดตกราฟด้านล่างเฉพาะส่วนของเหตุการณ์นั้นโดยไม่ดึงข้อมูลทั้งหมดมาใหม่ ทำให้หน้าจอลื่นขึ้นแม้มีเหตุการณ์ถี่ และฝั่งหลังบ้านก็เบาลงมาก ทุก 1 นาทีระบบจะตรวจค่าเฉลี่ยความแม่นยำ, จำนวนกล้อง AI ที่รายงาน, และสถานะกล้องซ้ำให้เพื่อแก้ค่าที่ต้องอาศัย aggregate — ถ้าผู้ดูแลย่อ tab เก็บไว้ระบบจะหยุดตรวจชั่วคราวและตรวจให้ทันทีที่กลับมาดูหน้านี้ (3.93.0)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่ AI: เพิ่มลูกเล่นใหม่สำหรับเหตุการณ์ประเภท Blacklist — เมื่อ AI ตรวจพบและส่งเหตุการณ์ blacklist เข้ามา ระบบจะ "ซูม-เลื่อนไปยังตำแหน่งกล้อง" บนแผนที่อัตโนมัติ พร้อมเปิดป๊อปอัพแสดงคลิปวิดีโอที่ AI บันทึกได้ทันที (เล่นวนอัตโนมัติแบบเงียบ) คู่กับรูปที่ AI capture ได้ในเฟรมเดียวกัน (มีกรอบเหลี่ยมส้มบนใบหน้า/ป้ายทะเบียน/วัตถุที่ AI ตรวจจับ) ถ้ากล้องนั้นถูกวางไว้บน Floor Plan แล้ว จะมีปุ่มเปิด Floor Plan และเลือก marker กล้องนั้นให้ทันที ถ้าเหตุการณ์ไม่มีคลิปจะแสดงเฉพาะรูปแทน ถ้าไม่มีทั้งคลิปและรูปก็แสดงข้อมูลพื้นฐานแทน — ผู้ดูแลตรวจสอบเหตุการณ์สำคัญได้เร็วโดยไม่ต้องหากล้องเองในแผนที่ใหญ่ (3.93.0)

Improvements1

  • หน้า AI Intelligence (Beta) /intDash — รายการเหตุการณ์ล่าสุด: ใหม่ขึ้นทันทีเมื่อมีเหตุการณ์เข้ามาแทนการรอ debounce 1 วินาที + ระบบดูแลไม่ให้รายการเดิมโผล่ซ้ำเมื่อ AI ส่งเข้ามาบนช่อง blacklist และช่องปกติพร้อมกัน (3.93.0)
พ.ค. 2026 — Permission Preview25 พ.ค. 2569

Preview Permission Profile · v2 — unique access จาก /preview endpoint

Features1

  • หน้า /preview/permission-menu ใช้เป็น UAT list ก่อนเข้า /preview/permission-profile-v2 แล้ว — คลิก profile จากตารางจะเปิดหน้า v2 tabbed ด้วย profile เดียวกัน เพื่อทดลอง flow ก่อน replace หน้าเดิม. หน้า v2 ใช้ยอดจริงจาก /preview API, กด OU/member tri-state แล้ว PATCH จริง, แสดงตัวเลขใหญ่เป็น unique access และแยกบรรทัดย่อยเป็นเลือกทั้งหมด / ยกเว้น / ซ้ำ พร้อม device type breakdown. ยังไม่แตะ production route /systemUsers/permissions/resource จนกว่า UAT จะผ่าน (3.92.3 + klynx-api 4.72.0)
พ.ค. 2026 — Edge & Approvals3-18 พ.ค. 2569

K-Control Temperature + การจัดการสิทธิ์ Edge + เวิร์กโฟลว์อนุมัติบั๊ก Aliza-bot

Features22

  • หน้า Live + Dashboard popup กล้อง: รองรับนโยบาย "ตัดสตรีมอัตโนมัติ" ขององค์กรแล้ว — เมื่อผู้ดูแลตั้งเวลาสูงสุดต่อรอบที่หน้า ตั้งค่า → Stream Sessions และเปิดสวิตช์ ระบบจะตัดสตรีมและคืนทรัพยากร (<video> + WebRTC peer) อัตโนมัติเมื่อครบเวลา พร้อมบันทึก analytics ให้ทีมรายงานแยกเหตุการณ์ "ครบเวลา" ออกจาก "ผู้ใช้ปิดเอง" ได้ — รุ่นนี้ครอบคลุม /live (popup แผนที่ + preview แถบข้าง) และ /biDash popup กล้อง — VideoWall / Map InfoWindow / Camera Edit preview ทยอยตามมาในรุ่นถัดไป (3.80.0)
  • โลโก้ + ลายน้ำทับวิดีโอสตรีม — เปิดใช้งานจริงบนทุกหน้าที่ดูสด: VideoWall ทุกช่อง, Live (preview แถบข้าง + popup เมื่อย่อแถบข้าง + popup บนแผนที่), Dashboard popup กล้อง ตามค่า Apply-to ที่ตั้งไว้ที่หน้า ตั้งค่า → Stream Sessions — ถ้าโลโก้/ลายน้ำเปิดและหน้านั้นอยู่ใน Apply-to ระบบจะวาดทับวิดีโอให้อัตโนมัติ โหมด "สุ่ม" หมุนตำแหน่ง + มุมเอียง (เฉพาะลายน้ำ) ทุก N วินาที (1-60); ถ้าปิดสวิตช์หรือเอาหน้านั้นออกจาก Apply-to จะหายทันที — สำหรับ player WebRTC ตัวใหม่ที่จะแทน ZLMRTCClient ทยอยมาในรุ่นถัดไป (3.78.0)
  • หน้า ตั้งค่า → Stream Sessions: เพิ่มแผง "โอเวอร์เลย์สตรีม" (โลโก้ + ลายน้ำ) — แอดมินอัปโหลดโลโก้ขององค์กร (PNG/JPEG/WebP ไม่เกิน 2 MB) และตั้งข้อความลายน้ำที่จะแสดงทับวิดีโอสตรีมได้แล้ว เลือกตำแหน่งได้ทั้งแบบ "คงที่" (มุมใดมุมหนึ่ง / กึ่งกลาง), "สุ่ม" (เปลี่ยนตำแหน่งทุก N วินาที — กันการ crop), หรือ "กำหนดเอง" (พิกัด %); ลายน้ำกำหนดมุมหมุน -180° ถึง +180° ได้และเพิ่ม anti-tamper preset [-30°, -15°, 0°, 15°, 30°] ให้สลับมุมตามรอบ; กำหนดความโปร่งใส, ระยะห่างจากขอบ, ความสูงสูงสุดของโลโก้, และเลือกได้ว่าจะให้แสดงบนหน้าใด (Live, Videowall, Dashboard popup, Player ฝัง, วิดีโอย้อนหลัง) (3.77.0 + klynx-api 4.66.0)
  • หน้า Live / biDash / VideoWall / Map / แก้ไขกล้อง: เปลี่ยนช่องทางดูสตรีมสด FLV ของกล้อง ATA / AIBOX มาผ่านระบบ klynx-api แทนการต่อตรงไปยัง edge ปลายทาง — ปลอดภัยขึ้นเพราะโทเค็นของ edgeAI ไม่หลุดลงมาฝั่งเบราว์เซอร์อีกต่อไป + รองรับกล้อง AIBOX (กล้อง AI ที่ sync จาก gateway) ผ่านช่องทางเดียวกัน ระบบจะขอ ticket แบบใช้ครั้งเดียว (อายุ 60 วินาที) ก่อนเปิดทุก stream — กล้องที่ระบบยังไม่ได้ map กับ edge จะปิดปุ่ม FLV ไม่ให้กดผิดและขึ้นข้อความ "กล้องนี้ไม่รองรับการดูสด" แทน (3.76.0 + klynx-api 4.63.0)
  • เมนูแถบข้าง: เพิ่มกลุ่ม "เครื่องมือดีบัก" (Debug Tools) ที่เปิด/ปิดผ่าน env flag ของฝั่งระบบ (`NUXT_PUBLIC_DEBUG_MENU_ENABLED`) และแสดงเฉพาะผู้ดูแลระบบ (administrator) เท่านั้น — เมนูแรกในกลุ่มคือ "ทดสอบ MQTT" ที่ลิงก์ไปยังหน้า /testMQTT (operator-facing probe สำหรับทดสอบการเชื่อมต่อ MQTT broker) หน้านี้ยังเข้าตรงผ่าน URL ได้ตลอดเฉพาะ administrator (กันที่ระดับ middleware) แต่ลิงก์ในเมนูจะซ่อนอยู่จนกว่าผู้ดูแลระบบจะเปิด flag ฝั่ง deploy ให้ก่อน — เพื่อให้แถบเมนูบน production สะอาดและให้ engineers ใช้เครื่องมือ probe ได้ในรอบ deploy dev/staging เท่านั้น (3.75.0)
  • หน้า ระบบอุปกรณ์ → กล้อง: เพิ่มปุ่ม "Sync" สีเหลืองอำพันรายแถว — กดเพื่อ refresh เฉพาะกล้องตัวเดียวจาก edge ปลายทาง (AIBOX / ATA / SVMS / iboc) โดยไม่ต้องเรียก syncMonitor ทั้งองค์กรหรือ resync ทั้ง edge ปุ่มอยู่หน้า Edit / Delete แสดงเฉพาะกล้องที่ผูกกับ edge ภายนอก (กล้องที่สร้างเองในระบบไม่แสดงปุ่ม เพราะไม่มีต้นทางให้ refresh) ระหว่าง sync ปุ่มจะแสดง spinner และล็อกปุ่ม sync ของทุกแถวกันกดซ้ำ ผลลัพธ์ขึ้นเป็น toast 3 สี: เขียว = อัปเดตสำเร็จ + รีเฟรชแถวอัตโนมัติ, เหลือง = ระบบประเมินแล้วว่าไม่ต้องอัปเดต (เช่น กล้องที่ sync อัตโนมัติผ่าน gateway อยู่แล้ว), แดง = ไม่สำเร็จพร้อมเหตุผลภาษาไทย (edge ติดต่อไม่ติด, ไม่พบ channel, push กลับ gw ไม่สำเร็จ ฯลฯ) (3.74.0)
  • หน้า ระบบค้นหา /ksearch/chats — แผงขวา "แผนที่เหตุการณ์": เปลี่ยนจากภาพแผนที่จำลอง (วงกลมพื้นหลังประดับ) มาเป็นแผนที่ OpenStreetMap จริงแล้ว เนื่องจากเหตุการณ์ที่ AI ค้นเจอเริ่มมีพิกัด lat/lng จริงจากข้อมูล canonical — หมุดสีตามประเภทเหตุการณ์ (รถยนต์=ชมพูแดง, คน=น้ำเงิน, ใบหน้า=ฟ้า, อื่นๆ=เหลือง) ขนาดหมุดเพิ่มขึ้นตามจำนวน event ที่ตำแหน่งนั้น คลิกหมุดเพื่อดูชื่อสถานที่ + ประเภท + จำนวน event แผนที่ปรับซูมอัตโนมัติให้พอดีกับทุกหมุดที่พบ ถ้ายังไม่มีเหตุการณ์ใดที่มีพิกัด แผนที่จะขึ้นข้อความ "ยังไม่มี location ใน event ที่ค้นเจอ" แทนภาพจำลอง (3.73.0)
  • หน้า AI Intelligence (Beta) /intDash — ช่อง "เหตุการณ์ล่าสุด": คลิกรูปย่อแล้วเปิดดูภาพเต็มได้ที่ป๊อปอัพใหม่ พร้อมกรอบเหลี่ยมสีส้มทับบนภาพเพื่อบอกตำแหน่งใบหน้า / ป้ายทะเบียน / วัตถุที่ AI ตรวจจับได้ตามจริง — ใช้ปุ่มลูกศรซ้าย-ขวา (หรือกดคีย์ ← →) เพื่อกระโดดดูเหตุการณ์ก่อนหน้า / ถัดไปได้โดยไม่ต้องปิดป๊อปอัพ; กด ESC หรือคลิกพื้นที่ดำรอบภาพเพื่อปิด ที่มุมซ้ายบนแสดงประเภทเหตุการณ์ + ชื่ออุปกรณ์ + เวลาที่เกิด ที่มุมล่างกลางแสดงตำแหน่งปัจจุบัน (เช่น 3 / 20) ตอนชี้รูปย่อบนรายการจะมีเอฟเฟกต์ hover พร้อมไอคอนแว่นขยายให้รู้ว่ากดได้ (3.72.0)
  • หน้า AI Intelligence (Beta) /intDash — การ์ด KPI ด้านบน 2 ใบล่าสุด: "กล้อง AI ที่รายงาน" และ "ความแม่นยำเฉลี่ย" เริ่มแสดงตัวเลขจริงแล้ว เดิมขึ้น "—" + "รอ contract ฝั่งระบบ" — ตอนนี้ระบบหลังบ้านส่ง endpoint ใหม่ที่นับ (1) จำนวนกล้อง AI (AIBOX) ที่ส่งเหตุการณ์เข้ามาวันนี้ และ (2) ค่าเฉลี่ยความมั่นใจของ AI ในการตรวจจับ (similarity) ในเหตุการณ์วันนี้ — ค่านี้จะเริ่ม "มีตัวเลข" หลังจากระบบหลังบ้าน restart รอบใหม่ + AI ส่งเหตุการณ์ที่มี similarity เข้ามา (เช่น face.captured) เหตุการณ์เก่าที่ยังไม่เก็บค่า similarity จะไม่นับเข้าการเฉลี่ย ถ้ายังไม่มีตัวอย่างใดในวันนี้ การ์ดจะแสดง "—" ตามเดิม (3.72.0)
  • หน้า ระบบอุปกรณ์ → กล้อง: เพิ่มตัวกรอง "สาธารณะ / ส่วนตัว" ที่แถบกรองด้านบน — ผู้ดูแลสามารถดูเฉพาะกล้องที่กำหนดให้แสดงบนแผนที่สาธารณะ (/live/map) หรือเฉพาะกล้องที่ดูได้เฉพาะภายในองค์กรได้แล้ว เดิมต้องไล่ดูทีละแถวจาก toggle ในคอลัมน์ Map Visibility ตอนนี้กรองออกมาเป็นชุดได้ในคลิกเดียว ตัวกรองนี้ทำงานร่วมกับตัวกรองสถานะ (Online/Offline/Suspect/Unknown) อยู่แล้ว — เลือกหลายตัวกรองพร้อมกันได้ ผลลัพธ์รวมเป็น AND (3.71.0)
  • หน้า /map, /kcontrol/map, /kcontrol/mapif, /biDash: รองรับการสลับผู้ให้บริการแผนที่ตามค่าใน /settings/map แล้ว — แอดมินเลือก OpenStreetMap (ฟรี, ไม่ต้องใช้คีย์) ได้ ทุกหน้าจะ render OSM อัตโนมัติพร้อมหมุดสีตามสถานะกล้อง/อุปกรณ์ (เขียว=ออนไลน์, แดง=ออฟไลน์/แจ้งเตือน, เทา=ไม่ทราบ) คลิกหมุดเพื่อดูชื่อ/สถานะ + ลิงก์ "ดูสตรีม" ไป /live; แอดมินที่ตั้ง Google Maps แต่ไม่ใส่ key ตอนนี้เห็นข้อความแจ้งให้ไปตั้งค่าที่ /settings/map แทนการเจอ "Google Maps API Key is missing" แบบเดิม. โหมด OSM ยังไม่มี theme/density/traffic/cluster และไม่มีสตรีมในป๊อปอัพ (ทุกอย่างนี้ทำงานปกติบนโหมด Google) — รวบไว้เป็น degraded mode ตามแผน. (3.58.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → จัดการเมนู: เพิ่มชิป parent ในแผงสมาชิกแบบเดียวกับฝั่งทรัพยากร — คลิก OU แล้วเห็นชิป parent ที่มีสมาชิก พร้อมจำนวนคน กดชิปเพื่อกระโดดไปดูสมาชิก parent ได้เลย (3.42.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ (ทั้งทรัพยากร + จัดการเมนู): ชิป parent แสดงตลอดเมื่อ parent มีสมาชิก — เดิมแสดงเฉพาะตอน OU ปัจจุบันไม่มีสมาชิก ตอนนี้ถ้า parent มีสมาชิกก็แสดงควบคู่กันเลย ช่วยให้ดู coverage ของ profile ที่ครอบทั้ง OU ปัจจุบันและ parent ได้ในที่เดียว (3.42.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: เมื่อคลิกหน่วยงานที่ไม่มีสมาชิกโดยตรง (สมาชิกอยู่ที่ parent ทั้งหมด) แผงด้านขวาจะแสดง chip ของ parent ที่มีสมาชิกพร้อมจำนวนคน — กดเพื่อกระโดดไปดูสมาชิก parent ได้เลย ไม่ต้องกลับไปคลิกในต้นไม้ใหม่ (3.41.0)
  • K-Control: หน้าใหม่ /kcontrol/temperature — ดูอุณหภูมิย้อนหลัง 1ชม./6ชม./24ชม./7วัน/30วัน + กราฟ + ตั้งเกณฑ์เตือน
  • Permission Profile: narrow รายคนในหน่วยงานเดียวกัน (memberIds)
  • Permission Profile: เพิ่ม Edge device เป็น resource ที่จำกัดสิทธิ์ได้
  • แผนที่กล้อง: ไอคอนตามกลุ่ม (online/offline) ทุก endpoint รวมถึง /live/map
  • แผนที่กล้อง: ข้ามองค์กร (cross-org public) ก็แสดงไอคอนของกลุ่มต้นทาง
  • Aliza-bot v2: เวิร์กโฟลว์ /approve - /reject เก็บประวัติใน DB ไม่ใช่ JSON ไฟล์
  • Aliza-bot v2.1: รายงานบั๊กผ่าน Telegram ส่งเข้า DB ทันที (REST migration)
  • AI Investigation Center: หน้า /ksearch/chats ค้นหา CCTV ด้วยภาษาธรรมชาติ แล้วแสดงผลเป็น event cards, timeline และ map context จาก canonical data (3.39.0)

Improvements49

  • หน้า Dashboard — แผนที่ตำแหน่งผู้ชม: แสดงตำแหน่งกล้องบนแผนที่จากกล้องยอดนิยม — เดิมแผนที่อาจว่างเปล่าแม้มีข้อมูลกล้องยอดนิยมอยู่ ตอนนี้ระบบนำพิกัดของกล้องยอดนิยมมาแสดงเป็นฟองสีเขียวบนแผนที่โลกโดยอัตโนมัติ (3.89.0)
  • หน้า AI Intelligence (Beta) /intDash — ช่อง "เหตุการณ์ล่าสุด" ทางขวา: เปลี่ยน badge "—" ที่เคยขึ้นข้างแต่ละเหตุการณ์ มาเป็นรูปครอบใบหน้า/วัตถุที่ AI ตรวจจับได้แทน — ระบบนำพิกัด bounding box ที่กล้อง AI ส่งมาพร้อมรูปเหตุการณ์ มาตัดเฉพาะส่วนใบหน้า/ป้ายทะเบียน/วัตถุที่ตรวจได้ แล้วแสดงเป็นภาพย่อขนาด 40×40 px ผู้ใช้กวาดสายตาดูประเภทเหตุการณ์ได้ทันทีโดยไม่ต้องคลิกเข้าไปดูภาพเต็ม กรณีเหตุการณ์ไม่มีรูปแนบมา (เช่น event status / system event) จะแสดงเป็นกรอบเทาพร้อมไอคอน — ไม่ได้เอา badge ระดับความรุนแรงออกถาวร ถ้าระบบหลังบ้านเริ่มส่ง severity เข้ามาจริงเมื่อไหร่ จะเอามาแสดงเป็นวงสีรอบรูปย่อแทน (3.70.1)
  • หน้า ระบบควบคุม → แผนที่ K-Control: แก้หมุดอุปกรณ์ไปแสดงผิดทวีปบนโหมด OpenStreetMap — เดิมหมุดอุปกรณ์กรุงเทพไปลอยอยู่ที่ Niger / Burkina Faso (Africa) เพราะระบบอ่านลองจิจูดจากชื่อ field ที่ผิด (`long` แทน `lng`) → ตำแหน่งเส้น Long กลายเป็น 0 (ตรงเส้นกรินิช) อยู่ที่แอฟริกาตะวันตก ตอนนี้อ่าน field ถูกต้องแล้ว หมุดกลับมายังตำแหน่งจริงตามพิกัด GPS; ฝั่ง Google Maps ไม่กระทบ เพราะอ่าน field ถูกอยู่แล้ว นอกจากนี้แก้การ์ดข้อมูลซ้ายขวาบนแผนที่ที่บางครั้งโดน layer แผนที่บัง (z-index) ทำให้กดไม่ได้/อ่านไม่ออก — ดันให้การ์ดอยู่บนสุดเสมอ (3.67.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: 3 ฟิกซ์ปฏิบัติการที่รายงานจาก UAT — (1) แผนที่ฝั่ง OpenStreetMap แสดงพื้นที่แล้ว เดิมพื้นที่ตรงกลางว่างเปล่าเพราะระบบเรียกเริ่มต้นแผนที่ตอนคอนเทนเนอร์ยังถูกซ่อน → ขนาด 0×0 → ไม่มี tile โหลด ตอนนี้คอนเทนเนอร์อยู่ในผังเสมอแบบเดียวกับหน้า biDash; (2) การ์ดข้อมูล 4 ใบบนหน้า (เหตุการณ์ตามเวลา / ตามประเภท / Top อุปกรณ์ / ตามกลุ่ม) โหลดข้อมูลอัตโนมัติทันทีที่เปิดหน้า ไม่ต้องกดรีเฟรช; (3) ปุ่ม "คืนค่า layout เริ่มต้น" แสดง toast ยืนยันว่ากดได้ผล เดิมถ้า layout อยู่ที่ค่าเริ่มต้นอยู่แล้ว ผู้ใช้กดแล้วไม่เห็นอะไรเปลี่ยน เลยคิดว่าปุ่มเสีย (3.66.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: หมุดอุปกรณ์ kcontrol รองรับไอคอนเฉพาะกลุ่ม (Resource Group) แล้ว — แอดมินอัปโหลดไอคอนกำหนดเองที่หน้า "จัดกลุ่มอุปกรณ์" → หมุดบนแผนที่ kcontrol (ทั้งโหมด Google และ OpenStreetMap) เปลี่ยนเป็นไอคอนของกลุ่มอัตโนมัติ; กรณีอุปกรณ์อยู่หลายกลุ่ม ระบบเลือกตามลำดับตัวอักษร; สถานะ alarm หรือ warning ยังคงใช้ไอคอนไฟกระพริบเริ่มต้นเสมอเพื่อให้สังเกตเหตุการณ์ได้ทันที (3.65.0 + klynx-api 4.54.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: คลิกหมุดอุปกรณ์บนแผนที่แล้วเห็นข้อมูลครบเหมือนเดิม (ชื่อสถานที่ / พิกัด GPS / ชื่ออุปกรณ์-รหัส / เวลาเกิดเหตุ / สถานะการแจ้งเตือน / จำนวน Sensor / อุณหภูมิ / สถานะอุปกรณ์ / ประวัติเหตุการณ์ก่อนหน้า) และถ้ามี alarm จะแสดงปุ่ม "✓ รับทราบ" สีแดง — กดแล้วเปิดฟอร์มกรอกรายละเอียดเพื่อเก็บเป็นเคสติดตาม (เดิม 3.63.0 ฝั่ง OpenStreetMap แสดง popup ย่อ ไม่มีปุ่มรับทราบ) (3.64.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: อุปกรณ์ทั้งหมดในองค์กรขึ้นบนแผนที่ครบทุกตัวแล้ว — เดิมถ้าจำนวนอุปกรณ์มากกว่า 100 ตัว ระบบจะหยุดดึงที่หน้าแรกทำให้ 11 ตัวสุดท้าย (ในกรณี 111 ตัว) ไม่ขึ้นบนแผนที่ + search ไม่เจอ ตอนนี้ดึงครบจนถึง totalRecords ที่ระบบบ้านส่งมา (3.64.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: หมุดเปลี่ยนเป็นไอคอน CPU (ชิป) แทนสัญลักษณ์คลื่นเดิม สื่อความหมาย "หน่วยควบคุม" ชัดขึ้น — และหน้าเหล่านี้บนผู้ให้บริการ OpenStreetMap (Leaflet) ได้รับรูปไอคอนเดียวกับ Google Maps แล้ว เดิมโหมด OpenStreetMap ไม่แสดงไอคอนไฟกระพริบเมื่อ alarm มา ตอนนี้สถานะ alarm แสดงไอคอนไฟพร้อม animation พริ้วไหวเหมือนกันทั้งสองโหมด (3.63.0)
  • หน้า แผนที่ /map, /live, /intDash: รับสถานะกล้อง/เหตุการณ์แบบเรียลไทม์เพิ่ม — เมื่อกล้องเปลี่ยนสถานะ online/offline หรือมีเหตุการณ์ AI ใหม่เข้ามา หน้าจอเหล่านี้จะอัปเดตอัตโนมัติโดยไม่ต้องรีเฟรช (เดิมต้องกดโหลดหน้าใหม่) — หน้า biDash, VideoWall, K-Control, จัดการกล้อง รับเรียลไทม์อยู่แล้วตั้งแต่ 3.39.0 ตอนนี้ครอบคลุมทุกหน้าหลักที่ดู status อุปกรณ์ (3.61.0)
  • หน้า biDash (Map): เลือก/เปลี่ยนตัวกรองกลุ่มอุปกรณ์ หรือ "ทั้งหมด/ในความดูแล/สาธารณะ" แล้วแผนที่จะไม่กระโดดกลับศูนย์กลางอีกต่อไป — เดิมทุกครั้งที่กดตัวกรอง แผนที่จะรีเซ็ตทั้งตำแหน่งและซูม ทำให้เปรียบเทียบจุดที่กำลังดูไม่ได้ ตอนนี้แผนที่อยู่ที่เดิมที่ผู้ใช้ลากไว้ (3.61.0)
  • หน้า ระบบอุปกรณ์ → กล้อง (แก้ไข): กล้อง AIBOX / edgeAI ที่ sync มาจาก gateway-api สามารถบันทึก/แก้พิกัดบนแผนที่ได้แล้วโดยไม่ต้องกรอก URL — เดิมฟอร์มบล็อก save ถ้าช่อง URL ว่าง ทำให้ปักหมุดเพื่อให้ event AI ขึ้นบนแผนที่ /intDash ไม่ได้ ตอนนี้ระบบเห็นว่ากล้องเป็นกล้องของระบบ gateway จะรับว่า URL สามารถว่างได้ (gateway จะ sync ให้เอง) พร้อมแสดงรหัสอ้างอิงข้ามระบบ (gwDeviceMgmtId / gwCamId) เป็น read-only ในฟอร์ม (3.59.0 + klynx-api 4.59.2)
  • หน้า ระบบอุปกรณ์ → จัดกลุ่มอุปกรณ์ + หน้า Live / กระดานหลัก / VideoWall / biDash: จัดระเบียบ "ตัวกรองกลุ่มอุปกรณ์" ใหม่ทั้งชุด — (1) ฟอร์มสร้าง/แก้ไขกลุ่ม สวิตช์ "แสดงใน Live" เปลี่ยนมาผูกกับสิทธิ์ใหม่ของระบบหลัง ตั้งต้นเป็น "ปิด" บนฟอร์มสร้างกลุ่มใหม่ (แอดมินต้องเปิดเองถึงจะให้กลุ่มไปอยู่ในตัวกรองหน้า Live) — กลุ่มเดิมที่เคยปรากฏในหน้า Live อยู่แล้วยังคงปรากฏเหมือนเดิม เพราะระบบหลังตั้งค่าให้กลุ่มทั้งหมดที่มีอยู่ก่อนรอบนี้เป็น "เปิด" โดยอัตโนมัติ; (2) ตัวเลือก "รวมกลุ่มย่อย" ในฟอร์มเอาออกแล้ว เนื่องจาก ระบบจะไม่สืบทอดสิทธิ์การมองเห็นในกลุ่มย่อยอีกต่อไป (กลุ่มย่อยถูกใช้เป็นกลุ่มอิสระ); (3) ป้ายของตัวเลือกในตัวกรอง 4 หน้า แสดงเฉพาะชื่อกลุ่มของตัวเอง (ไม่ใช่ "กลุ่มแม่ / กลุ่มย่อย" แล้ว) — เดิมป้ายยาวเกินไปบนต้นไม้กลุ่มที่มีหลายชั้น; (4) แอดมินบนหน้า กระดานหลัก / VideoWall / biDash เห็นทุกกลุ่มในองค์กร (ทั้งกลุ่มหลัก + กลุ่มย่อย) แบบรายการแบน ส่วนสมาชิกทั่วไปเห็นเฉพาะกลุ่มที่ได้รับสิทธิ์เข้าถึง (ระดับใดก็ได้ตามที่กำหนด); (5) หน้า biDash สลับมาดึงรายชื่อกลุ่มจาก endpoint เดียวกับ Dashboard/VideoWall — ปิดช่องโหว่เดิมที่ก่อนหน้านี้สมาชิกบางคนเห็นชื่อกลุ่มที่ไม่ได้รับสิทธิ์ดูเข้าได้ (3.56.0 + klynx-api 4.57.0)
  • หน้า ระบบอุปกรณ์ → จัดกลุ่มอุปกรณ์: ฟอร์ม "เพิ่มกลุ่มใหม่" ตั้งสถานะเริ่มต้นเป็น "ส่วนตัว" แทน "สาธารณะ" — เดิมเปิดฟอร์มมาแล้วสวิตช์อยู่ที่ "สาธารณะ" ทำให้กลุ่มที่สร้างใหม่ขึ้นไปอยู่บนแผนที่สาธารณะ (/live/map) ที่คนนอกองค์กรเห็นได้ทันทีถ้ากดบันทึกโดยไม่ทันแก้ ตอนนี้สวิตช์ตั้งต้นเป็น "ส่วนตัว" (สีเทา) ต้องตั้งใจเปิดสวิตช์เองถึงจะเป็นสาธารณะ ลดความเสี่ยงเผยแพร่กลุ่มอุปกรณ์โดยไม่ตั้งใจ — กลุ่มเดิมที่สร้างไว้แล้วไม่กระทบ ฟอร์มสร้างหน่วยงาน (/systemUsers) ไม่กระทบเพราะเป็นคนละ field (3.55.1)
  • หน้า AI Intelligence (Beta) /intDash — แถบสรุปสถิติด้านล่าง (B-4): เปิดวิดเจ็ตจริงครบ 4 ตัวแล้ว — (1) "เหตุการณ์ย้อนหลัง 60 นาที" กราฟเส้นซ้อนชั้นตามระดับความรุนแรง (แบ่งทุก 5 นาที), (2) "อุปกรณ์ที่รายงานมากที่สุด" Top 5 กล้อง/อุปกรณ์ที่ส่งเหตุการณ์เข้ามามากสุดในช่วงล่าสุด (รูปกราฟแท่งแนวนอน), (3) "สถานะกล้อง" โดนัทแสดงสัดส่วนกล้องออนไลน์/ออฟไลน์ในองค์กร, (4) "ประเภทเหตุการณ์" โดนัทแสดงสัดส่วนเหตุการณ์แยกตามประเภท (รวมประเภทย่อยที่เหลือเป็น "อื่นๆ" เพื่อให้กราฟอ่านง่าย) ปุ่ม "รีเฟรช" บนหัวหน้าจะอัปเดตทั้งการ์ด KPI / feed / แผนที่ / สถิติด้านล่างพร้อมกัน เมื่อยังไม่มีข้อมูลในช่วงนั้นกราฟจะแสดงข้อความ "ยังไม่มีเหตุการณ์ในช่วงนี้" แทนการเป็นกราฟว่างเปล่า — สถิตินับจากเหตุการณ์ล่าสุด 200 รายการ (3.54.0)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์แบบเรียลไทม์ (B-3c): เพิ่มระบบจัดกลุ่มหมุด (cluster) — เมื่อ zoom ออก หมุดที่อยู่ในรัศมีใกล้กันจะรวมเป็นวงสีขาวพร้อมตัวเลขแสดงจำนวนเหตุการณ์ในกลุ่ม; กดที่กลุ่มจะ zoom เข้าไปดูเหตุการณ์ในกลุ่มนั้นโดยอัตโนมัติ (ถ้ายังกระจุกอยู่จะแตกออกเป็นกลุ่มย่อย จนกระทั่ง zoom ละเอียดสุดที่ระดับถนน จึงเห็นเป็นหมุดเดี่ยว) — ช่วยให้ดูภาพรวมในระดับประเทศ/จังหวัดได้ง่ายขึ้นโดยไม่ทับซ้อน เคาน์เตอร์มุมซ้ายบนแสดง "N หมุด · M กลุ่ม" ในโหมด "จุด"; โหมด "ความหนาแน่น" ไม่ใช้ cluster (เพราะเป็น heatmap อยู่แล้ว) เอฟเฟกต์ spider-leg และ playback ตามช่วงเวลายังยกไป chore ถัดไป (3.53.0)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์แบบเรียลไทม์ (B-3b): เพิ่ม 2 โหมดให้สลับได้ที่มุมขวาบนของแผนที่ — โหมด "จุด" (ค่าเริ่มต้น) แสดงหมุดเป็นวงกลม พร้อมเอฟเฟกต์ pulse: เหตุการณ์ที่เพิ่งเกิดภายใน 10 วินาทีจะขยาย-หดต่อเนื่อง (สีตามระดับความรุนแรงเหมือนเดิม) เพื่อสะกิดความสนใจ จากนั้นค่อย ๆ กลับสู่ขนาดปกติ; โหมด "ความหนาแน่น" แสดงเป็น heatmap โดยถ่วงน้ำหนักตามความรุนแรง (รุนแรง×3, ปานกลาง×2, ต่ำ×1, ข้อมูล×0.5) — เหตุการณ์รุนแรงเพียงครั้งเดียวขึ้นเป็นจุดร้อนได้แม้ไม่ได้อยู่กระจุกกัน เปลี่ยนเอนจิ้นเป็น deck.gl เพื่อรองรับการแสดงผลจำนวนเหตุการณ์เยอะขึ้นและเตรียมต่อยอด cluster / playback ในรอบถัดไป (3.52.0)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์แบบเรียลไทม์: เปิดวิดเจ็ตแผนที่จริงแล้ว (B-3a) — ระบบโหลด tile แผนที่ OpenStreetMap แสดงเป็นภาพรวมประเทศไทย และพล็อตหมุดเหตุการณ์ที่มีพิกัดกล้องลงบนแผนที่อัตโนมัติ สีของหมุดแยกตามระดับความรุนแรง (รุนแรง=แดง / ปานกลาง=ส้ม / ต่ำ=ฟ้า / ข้อมูล หรือไม่ระบุ=เทา) ตามมาตรฐานเดียวกับ feed ทางขวา — กดที่หมุดเพื่อดูรายละเอียดเหตุการณ์ แสดงสถานะการเชื่อมต่อสด (LIVE / กำลังเชื่อมต่อใหม่ / ขัดข้อง) ที่มุมซ้ายบน และแสดงคำอธิบายสีหมุดที่มุมซ้ายล่าง เหตุการณ์ที่ไม่มีพิกัด (กล้องไม่ได้เปิด geo enrichment) จะแสดงใน feed แต่ไม่ขึ้นบนแผนที่ — เอฟเฟกต์ pulse / heatmap / cluster จะ ship ในรอบ B-3b ถัดไป (3.51.0)
  • หน้าเริ่มต้นหลัง login: ผู้ใช้ที่เปิดสิทธิ์เมนู AI Intelligence (Beta) จะถูกพาเข้า /intDash เป็นหน้าแรกแทน Dashboard เดิม — ถ้ายังไม่เปิดสิทธิ์ก็เข้า Dashboard เหมือนเดิม และยังกดเมนู Dashboard ในแถบข้างเพื่อกลับไปดูหน้า Livestream Analytics ได้ตลอด (3.50.0)
  • แถบเมนูข้าง: เพิ่มเมนู "AI Intelligence (Beta)" ไว้เหนือ Dashboard เพื่อกดเข้า /intDash ได้ทันทีเมื่อเปิดสิทธิ์ — เดิมต้องพิมพ์ URL เอง (3.50.0)
  • หน้า AI Intelligence (Beta) /intDash: ผู้ดูแลระบบ (administrator) เปิดเมนูได้เลยโดยไม่ต้องไปกำหนดสิทธิ์เพิ่มก่อน — เดิมต้องเข้าหน้าจัดการสิทธิ์เพิ่มเมนูในโปรไฟล์ก่อน ตอนนี้ผู้ดูแลเห็นเมนู beta โดยอัตโนมัติเพื่อให้ทดสอบใช้งานได้ทันที (klynx-api 4.53.1)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่ AI realtime: ระบบหลังบ้านพร้อมส่งข้อมูลระดับความรุนแรง + ประเภทเหตุการณ์ + พิกัดของกล้องลงมาให้แล้ว สำหรับการวางหมุดบนแผนที่ตามสีระดับความรุนแรง — วิดเจ็ตแผนที่จริง (B-3) จะทยอย ship ในรอบถัดไป ระหว่างนี้หน้าจอยังเป็น placeholder (klynx-api 4.52.0)
  • หน้า Dashboard: ลด content ให้เหลือ Livestream Analytics ล้วนตาม UAT — เอาแถบ Phase 1/2/3 ออก, เอา KPI ประเภทเหตุการณ์ที่เกิดขึ้นออก, และเอากล่องกิจกรรมล่าสุดออก เพื่อไม่ให้ปนกับ AI Intelligence / Command Center ที่แยกอยู่คนละหน้า (3.49.0)
  • หน้า /intDash (AI Intelligence Beta): เปิดวิดเจ็ตจริง 2 ตัวแรกแล้ว — การ์ด KPI ด้านบน 3 จาก 5 ตัว ("เหตุการณ์ทั้งหมด" / "เหตุการณ์รุนแรง" / "เหตุการณ์วันนี้") นับจากเหตุการณ์ในระบบจริง และ panel "เหตุการณ์ล่าสุด" ทางขวามือแสดง 20 รายการล่าสุดพร้อม badge สีตามระดับความรุนแรง (รุนแรง=แดง / ปานกลาง=ส้ม / ต่ำ=ฟ้า / ข้อมูล/ไม่ระบุ=เทา) ตามมาตรฐานสี — ต้องอัปเดตระบบหลังให้พร้อม (klynx-api 4.51.0 + gateway-api 3.12.0) ก่อนจึงจะเห็น severity จริง ระหว่างนี้การ์ด "เหตุการณ์รุนแรง" จะนับเป็น 0 และ badge ใน feed จะเป็นสีเทา ส่วนการ์ด "กล้อง AI ที่รายงาน" + "ความแม่นยำเฉลี่ย" แสดง — รอ contract ฝั่งระบบ. แผนที่ AI realtime (วิดเจ็ตกลาง) และวิดเจ็ตสรุปด้านล่างยังเป็น placeholder รอ chore ถัดไป (3.48.0)
  • เมนูใหม่ AI Intelligence (Beta) ที่ /intDash — โครงหน้าเฟส 2 ตามแผน K-LYNX Dashboard Evolution Plan (วิดเจ็ตจริงทยอย ship ในรอบถัดไป) เปิดใช้งานผ่าน "ระบบผู้ใช้ → สิทธิ์ → จัดการเมนู" เลือกเพิ่มเมนู "AI Intelligence (Beta)" ใน profile ที่ต้องการ — ระดับความรุนแรงของเหตุการณ์ (สูง/กลาง/ต่ำ/ข้อมูล) จะแสดงเป็นสีตามมาตรฐานเดียวกันทั้งใน feed และแผนที่ ต้องอัปเดตระบบหลังให้พร้อมก่อนถึงจะเห็นข้อมูลจริง (klynx-api 4.51.0 + gateway-api 3.12.0) (3.47.0)
  • หน้า Dashboard: แยกภาพรวมเป็น 3 ประสบการณ์ชัดขึ้น — Phase 1 Livestream Analytics ใช้ดู usage / viewer / session เท่านั้น ส่วน AI Event Intelligence และ AI Command Center แยกเป็นลำดับถัดไป ไม่ปนกับ metric ไลฟ์สตรีมเดิม พร้อมเพิ่ม badge live/trend บน KPI และกล่องกิจกรรมล่าสุดจากเหตุการณ์ไลฟ์สตรีม (3.46.0)
  • หน้า Dashboard: ปรับ content ภาพรวม Livestream เป็น layout ใหม่ตามแบบที่ผู้ใช้ต้องการ — มีการ์ด KPI พร้อมกราฟย่อ, กราฟจำนวนรับชมตามเวลา, แผนที่ตำแหน่งผู้ชมพร้อม Top Locations, breakdown browser/device/OS/source/resource group, ตารางกล้องยอดนิยม และกราฟเส้นแยกตามกลุ่มแบบเดิม รองรับ responsive + ธีมสว่าง/มืด โดยไม่เปลี่ยน nav menu (3.45.0)
  • หน้า Dashboard: แผนที่ตำแหน่งผู้ชม (Geo Map) เปลี่ยนเป็นแผนที่โลกแบบเวกเตอร์ (SVG) — โหลดเร็วขึ้นมาก ไม่ต้องดึงรูปจากเซิร์ฟเวอร์แผนที่ภายนอก ใช้งานได้แม้ในเครือข่ายปิด สีแผนที่ปรับตามธีมสว่าง/มืดให้อัตโนมัติ ฟองสีเขียวแต่ละจุดยังบอกจำนวนผู้ชมเหมือนเดิม วางเมาส์เพื่อดูชื่อเมือง + จำนวนครั้ง + เปอร์เซ็นต์ (3.44.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → จัดการเมนู: badge "จำนวนเมนูย่อย" และ "เลือกแล้ว N" ย้ายมาอยู่หลังชื่อเมนูแล้ว (เดิมขึ้นชิดขวาสุดของแถว ต้องกวาดสายตาข้ามแถวเพื่อเชื่อมโยงกับเมนูได้) — ตอนนี้อ่านชื่อเมนูแล้วเห็น badge ติดกันเลย คล้ายกับฝั่งจัดการทรัพยากร (3.41.0)
  • อัปเดต Real-time ทุกหน้าที่เปลี่ยนช่องทางจาก MQTT broker เดิมมายังช่องทางใหม่ของระบบ klynx-api (WebSocket hub) — หน้า biDash / kcontrol/map / kcontrol/mapif ที่เคยรับสดอยู่แล้วใช้ topic จริงที่ระบบเซิร์ฟเวอร์ปล่อยส่งให้ (ของเดิมหลายตัวไม่ตรงกับชื่อ topic ที่ส่งจริง เลยไม่มีข้อความเข้ามาเลย) และเพิ่มอีก 6 หน้าให้รับสดได้ครั้งแรก: Dashboard, VideoWall, รายการ kcontrol, รายการเหตุการณ์ kcontrol, อุณหภูมิ kcontrol, และรายการกล้อง — สิทธิ์ของแต่ละ topic ตรวจที่เซิร์ฟเวอร์แล้ว ผู้ใช้ที่ไม่มีสิทธิ์จะไม่เห็นข้อมูลข้ามองค์กร (3.39.0)
  • หน้า ระบบอุปกรณ์ → กลุ่มอุปกรณ์ และ ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: badge แยกความหมายชัดขึ้น — กลุ่มย่อยเป็นสีเขียว, จำนวนอุปกรณ์เป็นสีเหลืองพร้อมไอคอนอุปกรณ์, และจำนวนที่เลือกเจาะจงเป็นสีเหลืองพร้อมไอคอน select ถึงพับกลุ่มอยู่ก็ยังเห็นว่าข้างในเลือกไว้กี่รายการ (3.38.0)
  • หน้า ระบบอุปกรณ์ → กล้อง (เพิ่ม + แก้ไข): เพิ่มช่อง "รายละเอียดตอนกล้องออฟไลน์" — บันทึกได้ว่ากล้องนี้ออฟไลน์เพราะอะไร (ทดสอบ / ไฟดับ / ปรับปรุงสายสัญญาณ) เปิดได้ตลอด ไม่ต้องรอให้กล้องออฟไลน์ก่อน (3.37.0)
  • หน้า Admin → Licenses: เพิ่มช่อง Max Organizations per Customer ตอนสร้าง/แก้ไข license และแสดง quota นี้ในหน้ารายละเอียด license / platform license — ค่าใน JSON artifact จะถูกใช้แก้ gate สร้างองค์กรที่ขึ้น cause=limit หลัง activate (3.36.0)
  • หน้า Live: ผู้ใช้ที่ login แล้วเลือก org ได้จากหน้าแผนที่โดยตรง — ระบบใช้ org ล่าสุดเป็นค่า default และส่ง X-Active-Org ให้ /live/map + /live/map/options เพื่อไม่ให้กลุ่มจาก org อื่นหรือ org ที่ลบไปแล้วปนเข้ามา (3.36.0)
  • หน้า ระบบผู้ใช้ → หน่วยงาน: badge นับจำนวนสมาชิกในแต่ละหน่วยงานโหลดเร็วขึ้นมาก — เดิมหน้าโหลดเรียก API ทีละหน่วย (กว่า 30 ครั้งในองค์กรใหญ่) ตอนนี้ฝั่งระบบส่งจำนวนสมาชิกมาในผลลัพธ์เดียวกับโครงสร้าง ลดเวลารอเปิดหน้าและภาระเซิร์ฟเวอร์ (3.35.0)
  • หน้า ระบบอุปกรณ์ → กลุ่มอุปกรณ์: เปลี่ยนไอคอน badge นับอุปกรณ์ในกลุ่มจากไอคอน "คน" เป็นไอคอน "กล่อง" — สื่อชัดเจนกว่าว่านับอุปกรณ์ในกลุ่ม ไม่ใช่จำนวนคน (3.35.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ (เมนู + ทรัพยากร): ไอคอนสรุปขอบเขตสมาชิกในแบนเนอร์เปลี่ยนสีตาม scope — เขียวเมื่อใช้กับสมาชิกทุกคนใน OU (ค่าเริ่มต้น), เหลืองเมื่อระบุเจาะจงเฉพาะบางคน — มองเห็น scope ของ profile ได้ตั้งแต่แรก (3.35.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: ทุกแถวของกลุ่มในต้นไม้แสดงไอคอนชนิดอุปกรณ์ (กล้อง / kcontrol / edge) นำหน้าไอคอนโฟลเดอร์ — กลุ่มที่มีหลายชั้นและเนื้อหาผสม (เช่น kcontrol + กลุ่มย่อย) อ่านได้ทันทีว่ามีอุปกรณ์ชนิดใดอยู่ในสายนั้น (3.35.0)
  • หน้า ระบบอุปกรณ์ → กล้อง: เพิ่มแถบ "กลุ่มที่กล้องนี้อยู่" และ "สิทธิ์ที่ผูกกับกล้องนี้" ใต้รายละเอียดกล้อง — คลิกกล้องในตารางครั้งเดียวเห็นทั้งกลุ่มและ profiles สิทธิ์ที่ครอบคลุมกล้องนั้น (เดิมต้องเปิดหน้าสิทธิ์ไปไล่ดูเอง) (3.34.0)
  • หน้า ระบบควบคุม → K-Control: เพิ่มแถบ "กลุ่มที่อุปกรณ์นี้อยู่" ในรายละเอียดอุปกรณ์ — คลิก kcontrol ในตารางครั้งเดียวเห็นว่าอุปกรณ์อยู่กลุ่มไหนบ้าง (3.34.0)
  • หน้า /systemDevices/groups + Permissions → Resource: เพิ่ม badge นับจำนวนอุปกรณ์ในแต่ละกลุ่ม (ไอคอนคน) แสดงคู่กับ badge กลุ่มย่อย — เห็นจำนวนกล้อง / kcontrol ที่อยู่ในกลุ่มได้ทันทีโดยไม่ต้องคลิกเข้าไปดู (3.32.0)
  • หน้า Permissions: Save/Cancel แบบรวม (เลิก save ทันทีทุกคลิก)
  • หน้า Permissions: ปุ่ม Expand/Collapse ทั้งหมดบนแท็บ Resource
  • Group Device picker เห็น kcontrol นอกเหนือจากกล้อง
  • kcontrol/map ใช้สิทธิ์ของผู้ใช้แล้ว (เดิมแสดงทุกตัวในองค์กร)
  • Member picker ใน Permission tab โหลดได้ทุกคน (เดิมจำกัดแค่ 10)
  • หน้า ระบบผู้ใช้ → ผู้ใช้: รายละเอียดผู้ใช้แสดงโครงสร้างหน่วยงาน — คลิกชิป "องค์กร" แล้วเห็นแผนผังหน่วยงานของ org นั้นพร้อมหน่วยงานที่ผู้ใช้สังกัด ไฮไลต์สีเขียว (ก่อนแก้ต้องเข้าไปไล่ดูใน /systemUsers/permissions/resource เอง)
  • หน้า ระบบผู้ใช้ → ผู้ใช้: แผนผังหน่วยงานแสดงเฉพาะหน่วยงานที่ผู้ใช้สังกัด พร้อม path จากต้นทาง (root) ลงมา — เดิมแสดงทุกหน่วยงานในองค์กรพร้อมไฮไลต์ ทำให้ดูยากเมื่อมีหน่วยงานเยอะ พร้อมขึ้น badge "N หน่วยงาน" ที่หัวข้อด้วย (3.32.1)
  • หน้า ระบบผู้ใช้ → ผู้ใช้: เพิ่มส่วน "สิทธิ์ที่ผูกกับผู้ใช้ในองค์กรนี้" ใต้แผนผังหน่วยงาน — คลิกชิปองค์กรครั้งเดียวเห็นทั้งโครงสร้างหน่วยงานและ permission profiles ที่ผู้ใช้สังกัดในองค์กรนั้น พร้อมจำนวน OU / สมาชิก / กลุ่ม / กล้อง / kcontrol / edge ในแต่ละ profile (เดิมต้องเปิดหน้า /systemUsers/permissions/resource ไปไล่ดูเอง) (3.33.0)
  • หน้า ระบบผู้ใช้ → ผู้ใช้: รูปโปรไฟล์ในรายละเอียดผู้ใช้มีปุ่มแว่นขยาย กดแล้วดูรูปใหญ่ได้ทันทีโดยไม่ต้องออกจากหน้ารายการ (3.33.0)

Fixes67

  • หน้า ระบบควบคุม → แผนที่ K-Control: ช่องค้นหาในแถบรายการอุปกรณ์ฝั่งขวาตอนนี้ค้นจากระบบหลังจริง — ค้นเจออุปกรณ์ที่อยู่นอกหน้าแรกได้แล้ว (เดิมกรองจากรายการที่โหลดมาเฉพาะหน้าปัจจุบัน ทำให้พิมพ์ชื่ออุปกรณ์แล้วบางตัวหาไม่เจอ) (3.90.1)
  • หน้า ระบบควบคุม → แผนที่ K-Control: จุดสถานะอุปกรณ์ในแถบรายการฝั่งขวาแสดงสีเขียวเมื่อออนไลน์แล้ว — เดิมถ้าอุปกรณ์มีการแจ้งเตือนค้างอยู่ จุดจะเป็นสีส้มทับสถานะออนไลน์ ทำให้ดูสับสน ตอนนี้จุดในรายการบอก online/offline เท่านั้น (การแจ้งเตือนยังมีไอคอนไฟกระพริบของตัวเองบนแผนที่) (3.90.1)
  • หน้า ระบบควบคุม → แผนที่ K-Control: ปุ่มกากบาทบน popup ของอุปกรณ์เห็นชัดขึ้น — ขนาดใหญ่ขึ้น สีดำบนพื้นขาวกลมพร้อมเงาเล็ก ๆ มองออกบนทั้งแบนเนอร์ alarm สีอ่อนและพื้นหลังโทนมืด (เดิม X สีขาวจางมองไม่เห็น) (3.90.1)
  • หน้า กดรับทราบเหตุการณ์: ปุ่ม "ยืนยันรับทราบ" กลับมาให้กดได้ตลอดเวลาเมื่ออุปกรณ์ยังค้างสถานะ alarm — แม้ระบบหลังจะรายงานว่าไม่มีรายการแจ้งเตือนที่รอ ack ระบบจะดึงรายการล่าสุดของอุปกรณ์มาเป็นตัวสำรองให้ ack ได้ (ถ้าระบบหลังตอบว่า "รับทราบไปแล้ว" เราจะถือว่าสำเร็จและล้างสถานะ alarm ของอุปกรณ์ให้อัตโนมัติ) (3.90.1)
  • หน้า ระบบควบคุม → แผนที่ K-Control: สถานะออนไลน์/ออฟไลน์ของอุปกรณ์ไม่เปลี่ยนตามสัญญาณ MQTT — ตอนนี้เมื่ออุปกรณ์ส่งสัญญาณสุขภาพหรือสัญญาณแจ้งเตือนเข้ามา หมุดบนแผนที่จะเปลี่ยนสีตามทันที (เดิมข้อมูลสด ๆ ที่เข้ามาถูกทับด้วยข้อมูลเก่าก่อนนำไปอัปเดต ทำให้หมุดค้างอยู่กับสถานะเดิมแม้แผงสรุปจะอัปเดตได้แล้ว) (3.90.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: แผนที่ OpenStreetMap ตอนนี้สลับเป็นโหมดมืดอัตโนมัติเมื่อผู้ใช้เปลี่ยนเป็น Dark mode + เพิ่มเมนูเลือกธีมแผนที่ OSM (Standard / Dark / Voyager) เหมือนหน้า /biDash (เดิมแผนที่ OSM ค้างที่ธีมสว่างเสมอ) (3.90.0)
  • หน้า ระบบควบคุม → กดรับทราบเหตุการณ์: ปุ่ม "ยืนยันรับทราบ" ที่กดไม่ได้เมื่ออุปกรณ์ค้างสถานะ alarm แต่ไม่มีรายการให้รับทราบ — ตอนนี้ระบบซ่อนปุ่มทิ้งและเปลี่ยน "ยกเลิก" เป็น "ปิด" แทน ไม่ต้องเห็นปุ่มที่กดไม่ได้กับเครื่องหมายห้ามค้างอยู่บนหน้าจอ (3.90.0)
  • หน้า ระบบควบคุม → กดรับทราบเหตุการณ์: ในโหมดมืด พื้นหลังของหน้าต่างเป็นสีขาวสว่างไม่ตรงตามธีม — แก้ให้เปลี่ยนเป็นโทนมืดตามธีมแล้ว (3.90.0)
  • หน้า ระบบควบคุม → K-Control (รายการ): หน้าว่างเปล่าหลัง 3.89.0 — ตัวจัดการเหตุการณ์ที่เพิ่งเพิ่มเข้าไปวางผิดที่ในเลย์เอาต์ทำให้ Nuxt UI ตัด render ทิ้งทั้งหน้า ตอนนี้ตารางอุปกรณ์กลับมาแสดงตามปกติ + ป้าย "แจ้งเตือน" คลิกได้เปิดหน้าต่างกดรับทราบ (3.90.0)
  • หน้า ระบบควบคุม → mapif: แผนที่ OpenStreetMap ไม่โหลดและขึ้นพื้นเทาว่างเปล่า — เพิ่มการ re-measure ขนาดกรอบแผนที่หลังโหลดเสร็จ ทำให้ tile ของ OSM เริ่ม render ครบหน้า (port มาจาก map.vue 3.66.0 — bug ลักษณะเดียวกัน) (3.90.0)
  • หน้า ระบบควบคุม → เหตุการณ์: รายการเหตุการณ์ว่างเปล่าทุกครั้งที่เจ้าหน้าที่กดรับทราบครบทั้งหมด — เดิมหน้านี้แสดงเฉพาะ "ที่ยังไม่ได้รับทราบ" ตอนนี้แสดงประวัติเหตุการณ์ทั้งหมดโดยเรียงตามวันเวลาล่าสุดก่อน (ตัวกรอง "เฉพาะที่ยังไม่ได้รับทราบ" จะเพิ่มกลับมาในรุ่นถัดไป) (3.90.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: ไอคอนไฟกระพริบกลับมาแสดงบนหมุดอุปกรณ์ที่กำลังแจ้งเตือนแล้ว — เดิมบางครั้งหมุดของอุปกรณ์ที่มี alarm แสดงเป็นไอคอน CPU ปกติ ทำให้เจ้าหน้าที่มองข้ามเหตุการณ์และกดรับทราบไม่ได้ ปรับให้ระบบเชื่อตามค่า alarm ของอุปกรณ์เป็นหลัก ไม่ล้างค่าทิ้งจากข้อมูลสำรอง (ระบบเก่าใช้รายการแจ้งเตือนที่ยังไม่ได้รับทราบไปทับค่า alarm ของอุปกรณ์ — ถ้ารายการนั้นว่างจะทำให้ไฟดับเงียบ ๆ ทั้งที่อุปกรณ์ยังมีเหตุการณ์อยู่) — ใช้ได้ทั้งโหมด Google และ OpenStreetMap (3.90.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: เปิดหน้าต่างกดรับทราบเหตุการณ์ได้เหมือนเดิมหลังจากแก้ไอคอนไฟ — เดิมแม้คลิกหมุดของอุปกรณ์ที่ alarm แล้ว popup ก็ไม่มีปุ่ม "✓ รับทราบ" เพราะระบบมองว่าอุปกรณ์ไม่มี alarm (ผลข้างเคียงจากบั๊กไอคอนข้างต้น) ตอนนี้กดรับทราบจากหมุดได้ตามปกติ (3.90.0)
  • หน้า ระบบควบคุม → แผนที่ K-Control: ปุ่มควบคุมบนแถบเครื่องมือ (Traffic / ธีม / Density) ไม่ขึ้นแล้วเมื่อใช้ OpenStreetMap เพราะเป็นปุ่มที่ทำงานเฉพาะกับ Google Maps — ตรงกันกับพฤติกรรมในหน้า /biDash ที่ใช้ pattern เดียวกัน (3.90.0)
  • หน้า Live (popup กล้องบนแผนที่): คลิกหมุดกล้องแล้วเล่นสตรีมได้แล้ว เดิม popup ค้างที่กล่องดำว่าง ๆ ไม่มีภาพขึ้นมาเลย — เกิดจากระบบเรียกช่องทางสตรีมผิดตัว (ช่องทางสาธารณะที่ไม่ใส่ token ของผู้ใช้) ทำให้กล้องที่ต้องมีสิทธิ์ดูถูกปฏิเสธเงียบ ๆ ตอนนี้สลับไปใช้ช่องทางเดียวกับ VideoWall และ Dashboard popup ที่ทำงานปกติอยู่แล้ว สตรีมเริ่มเล่นในไม่กี่วินาทีเหมือนเดิม กล้องออฟไลน์ยังขึ้นป้าย "Maintenance Mode" ตามเดิม (3.88.1)
  • หน้า VideoWall: กล้อง AIBOX (กล้อง AI ที่ sync จาก gateway) เล่นสตรีมได้แล้ว — เดิมระบบเลือกช่องทาง player จากยี่ห้อ ATA อย่างเดียว ทำให้กล้อง AIBOX ในช่อง VideoWall ถูกเลือกไปทาง WebRTC ที่ AIBOX ไม่รองรับ (เปิดแล้วต่อไม่ติดเงียบ ๆ) ตอนนี้ระบบรู้จัก AIBOX ผ่านยี่ห้อหรือต้นทาง gateway อัตโนมัติ และเลือกช่องทาง FLV ให้แทน — แก้ปัญหานี้กระจายไปยังทุกหน้าที่ดูสด (Live popup / Live preview แถบข้าง / Dashboard popup / Map InfoWindow / หน้าแก้ไขกล้อง preview) ผ่านตัวเลือกกลางตัวเดียว ทำให้พฤติกรรมการเลือก player สอดคล้องกันทั้งระบบ (3.80.3)
  • หน้า ระบบอุปกรณ์ → กล้อง: ปุ่ม Sync รายแถวกลับมาแสดงสำหรับกล้องที่สร้างเองในระบบ (legacy local cameras) อีกครั้ง — เดิม (3.74.4–3.76.0) ระบบซ่อนปุ่ม Sync ทุกแถวที่ไม่มีต้นทาง edge ภายนอกเงียบ ๆ ตามสัญญาเก่า แต่ระบบหลังบ้านปัจจุบัน (klynx-api 4.62.0+) ยอมรับคำสั่ง force probe สำหรับกล้องทุกประเภทที่มี RTSP URL แล้ว ตอนนี้กล้อง legacy ที่สร้างเองในระบบจะแสดงปุ่ม Sync ตามปกติ กดแล้วระบบจะส่ง trigger ให้ commonmon probe กล้องตัวนั้นในรอบถัดไป (ไม่เกิน 30 วินาที) ถ้ายังไม่ตั้ง stream URL ระบบจะขึ้น toast เตือนให้ไปเพิ่มก่อน — สำหรับกล้องยี่ห้อ AIBOX / ATA (กล้อง AI ที่ sync อัตโนมัติผ่าน edgeAI + aiboxprobgw อยู่แล้ว) ยังคงซ่อนปุ่มตามเดิม (3.76.1)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์: แก้ปัญหา map เป็นพื้นดำได้แล้ว! เปลี่ยนเอนจิ้นแผนที่จาก MapLibre + deck.gl มาเป็น Leaflet + leaflet.markercluster (ตัวเดียวกับที่ใช้บน /biDash, /kcontrol/map, /live/map, /ksearch/chats) ซึ่งทำงานได้แล้วบน istio dev อย่างเสถียร: ตอนนี้แผนที่แสดง OpenStreetMap tiles + หมุดสีตามความรุนแรง + การจัดกลุ่มหมุดเมื่อ zoom out + popup คลิกหมุด + animation pulse สำหรับเหตุการณ์ใหม่ (10 วินาทีล่าสุด) + auto-fit zoom ให้พอดีกับหมุดทั้งหมด พร้อมเปลี่ยนสีแผนที่ตามธีมของระบบอัตโนมัติ (โหมดมืดใช้ CARTO Dark Matter ตามที่ใช้บน /biDash) — ผู้ใช้สลับธีมแล้วแผนที่เปลี่ยนตามทันที โหมด "ความหนาแน่น" (heatmap) ยังไม่ port มา รอ operator แจ้งถ้าต้องการ (3.74.8)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์: เจอ root cause ที่แท้จริงแล้ว — กรอบ canvas ของแผนที่มีขนาดเล็กกว่ากล่อง 138 พิกเซล (ระบบบันทึก 615×300 ทั้งที่กล่องคอนเทนเนอร์ 615×438) ทำให้ MapLibre เข้าวงรอบ resize ตัวเองวนซ้ำ (ที่ผู้ใช้รายงานว่า "console msg รัวๆ" รอบ 3.74.6) และไม่ paint tile ขึ้นจอจริง คราวนี้เพิ่มฟังก์ชัน forceCanvasContainerSize() บังคับ inline width/height ของ .maplibregl-canvas-container ให้เต็มกล่องที่ 4 จุดเวลา (load + RAF + 300ms + 1000ms) ครอบกรณี MapLibre พยายาม override style เดิม + เก็บ diagnostic ของกล่อง canvas-container เพิ่มเพื่อ confirm fix ในรอบ UAT ถัดไป (3.74.7)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์: ลองวิธีต่อไปสำหรับปัญหา map ขึ้นพื้นดำ (รอบ 3.74.2 ฝัง diagnostic ไว้แล้ว ระบบยืนยันว่า OpenStreetMap tiles โหลดได้ 12 ตัว + style ใช้งานได้ + กล่อง 615×438 px ครบ — แปลว่าไม่ใช่ปัญหา tile หรือ container) คราวนี้สลับโหมด overlay graphics จาก "ซ้อนสองชั้น canvas" (deck.gl ของหมุดทับ MapLibre tiles) มาเป็น "รวมเป็น canvas เดียว" (deck.gl ใช้ WebGL context เดียวกับ MapLibre) — ตามที่ทาง deck.gl ระบุว่ารองรับสำหรับ MapLibre v3+ ทั้งหมด เพื่อตัดปัญหาเรื่อง canvas บนสุดบังกล้องล่าง พร้อมเพิ่ม diagnostic log สำหรับ CSS computed ของ canvas (display / visibility / opacity / z-index / filter / transform) เพื่อให้ operator capture log บอกสาเหตุได้ครบในกรณียังไม่หาย (3.74.6)
  • หน้า ระบบอุปกรณ์ → กล้อง: ปุ่ม Sync รายแถว — ตอนนี้กดแล้วทำงานจริงแล้ว เดิม (3.74.0–3.74.3) กดปุ่ม Sync แล้วระบบหลังบ้าน 404 ตลอด (endpoint ในสัญญา v1.3 §5.6 ไม่ได้ implement จริง) ตอนนี้ระบบหลังบ้าน 4.62.0 ได้สร้าง endpoint ใหม่ /forceProbe แล้ว — กดปุ่มแล้วระบบจะส่ง trigger ให้ commonmon probe กล้องตัวนั้นในรอบถัดไป (ไม่เกิน 30 วินาที) แทนการรอรอบ probe ปกติ; สถานะออนไลน์/ออฟไลน์จะอัปเดตในแถวอัตโนมัติ (ผ่านระบบ realtime ของ 3.74.3) เคยกดแล้วเจอ "404 Not Found" ก่อนหน้านี้ — เพราะกล้องส่วนใหญ่เป็น AIBOX ที่เราซ่อนปุ่มไว้แล้ว ผู้ใช้จึงไม่เจอข้อผิดพลาดในวงกว้าง แต่กล้องระบบ legacy (ATA/SVMS/iboc) ที่ยังเหลืออยู่จะเริ่มกดได้แล้ว (3.74.4)
  • หน้า ระบบอุปกรณ์ → กล้อง: สถานะ Monitor ของกล้อง (Online / Offline / Suspect / Unknown) อัปเดตในแถวทันทีตอนระบบหลังบ้านแจ้งสถานะใหม่ — เดิมเมื่อมี event เข้ามา ระบบจะดึงรายการกล้องทั้งหมดใหม่ทำให้ตำแหน่ง scroll / การจัดเรียง / ตัวกรอง / ที่กดเลือกไว้ ถูกรีเซ็ตทุกครั้ง (และโหลดช้าเมื่อมีกล้อง 1,000+ ตัว) ตอนนี้แก้ให้แตะเฉพาะแถวที่เกี่ยวข้องเท่านั้น — ผู้ใช้กำลังดูตรงไหนจะอยู่ตรงนั้น; กรณี WSS หลุดแล้วต่อกลับ ระบบจะดึงข้อมูลใหม่ครั้งเดียวเพื่อให้สถานะตามทันเหตุการณ์ที่เกิดระหว่างขาด เชื่อมต่อ (3.74.3)
  • หน้า AI Intelligence (Beta) /intDash — แผนที่เหตุการณ์: เพิ่มมาตรการป้องกันแผนที่เป็นพื้นดำ (UAT บน istio รอบที่ผ่านมา OpenStreetMap tiles โหลดสำเร็จแต่หน้าแผนที่ยังขึ้นพื้นดำ) — (1) ใส่ชั้น background สีเทาอ่อนใต้ tiles เพื่อแยกได้ว่าปัญหาอยู่ที่ "MapLibre ไม่ render เลย" (ยังดำ) หรือ "MapLibre render แต่ tiles ไม่ paint" (เห็นพื้นเทาแต่ไม่มี tiles) (2) เพิ่มการเรียก resize() แผนที่อีก 2 จุด (ตอน load + 300ms หลัง init) นอกเหนือจาก requestAnimationFrame เดิม กันกรณี container ขนาดยังไม่นิ่งตอน MapLibre วัดครั้งแรก (3) เปิด console.info ทุก event สำคัญของ MapLibre พร้อม prefix [AiEventMap] เพื่อให้ operator capture log แล้วชี้สาเหตุได้ในรอบ UAT ถัดไป (3.74.2)
  • หน้า ระบบอุปกรณ์ → กล้อง: ปุ่ม Sync รายแถวซ่อนสำหรับกล้อง AIBOX แล้ว เพราะกล้อง AIBOX ระบบ sync อัตโนมัติผ่าน edgeAI + auto-refresh สถานะ online/offline ผ่าน aiboxprobgw อยู่แล้ว — ปุ่ม manual ซ้ำซ้อนไม่ได้ใช้งาน นอกจากนี้ป้าย "ATA" ในคอลัมน์ยี่ห้อเปลี่ยนเป็น "AIBOX" (ทั้งหมดเป็นยี่ห้อเดียวกัน) — กล้อง legacy ที่ไม่ใช่ AIBOX (ATA / SVMS / iboc บนระบบเดิม) ยังมีปุ่ม Sync ตามปกติ (3.74.1)
  • หน้า ระบบค้นหา /ksearch/chats — การ์ดผลลัพธ์ AI: ปุ่มแว่นขยายมุมขวาบนของรูปแสดงไอคอนแล้ว เดิมขึ้นเป็นวงกลมเปล่า ๆ ไม่มีไอคอนข้างใน เพราะใช้ชื่อไอคอนผิด นอกจากนี้ตอนนี้คลิกที่ภาพได้โดยตรงเพื่อดูภาพขยาย (เดิมต้องคลิกที่ปุ่มเล็ก ๆ มุมขวาบนเท่านั้น) — ขยายพื้นที่ที่ใช้กดได้ ช่วยให้ตรวจสอบภาพง่ายขึ้น (3.73.0)
  • ล็อกอินครั้งแรกหรือเปิดแท็บใหม่แล้วเข้าหน้า dashboard ได้แล้ว — เดิม (3.56.1) เคยแก้ให้บัญชีที่มีสิทธิ์ AI Intelligence (Beta) ไปเข้า /intDash แต่กรณีที่ระบบยังไม่ทันโหลดค่า "องค์กรที่ใช้งานอยู่" ทันเวลา ก็จะหลุดไปเข้าหน้า "โปรไฟล์ของฉัน" /profile แทนอยู่ดี ตอนนี้ระบบจะรอให้ค่าองค์กรพร้อมก่อนตัดสินใจ — เริ่มที่หน้า dashboard เป็นปลายทางมาตรฐานหลังล็อกอินทุกครั้ง แล้วจึงสลับไป /intDash อัตโนมัติถ้าผู้ใช้มีสิทธิ์เมนูนั้น หรือไปหน้าอื่นตามสิทธิ์ที่มี (3.57.1)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: "ระบุเจาะจงสมาชิก" ทำงานแยกตามหน่วยงานแล้ว — เดิมเลือก wemeet ในหน่วยงาน Unit 2 ระบบจะติ๊กชื่อ wemeet ค้างไปทุกหน่วยงานอื่นที่ wemeet เป็นสมาชิกอยู่ด้วย (test01, test02 ฯลฯ) ทำให้ดูเหมือนผูกสิทธิ์ผิดจากที่ตั้งใจ ตอนนี้คลิกหน่วยงานไหนช่อง "ระบุเจาะจง" ก็แสดงเฉพาะรายการของหน่วยงานนั้น — เลือกหรือไม่เลือก ก็เก็บแยกกัน ไม่ลามไปหน่วยงานอื่น ตามที่ผู้ใช้คาดหวัง พร้อมแผงสรุปด้านบนแสดงจำนวน OU ที่ใช้ทั้งหมด / ระบุเจาะจง / รายคนรวม + จำนวนกลุ่มทรัพยากรและอุปกรณ์ระบุเจาะจง อ่านได้ในที่เดียวโดยไม่ต้องคลิกแต่ละ OU; ป้ายชิปข้างหน่วยงานที่ระบุเจาะจงเปลี่ยนเป็น "ระบุเจาะจง N คน" สื่อความหมายชัดกว่าตัวเลขล้วน — สำหรับหน้า "จัดการเมนู" จะตามมาในรอบถัดไป (เพราะระบบหลังบ้านของหน้านั้นคนละชุดกัน) (3.57.0 + klynx-api 4.58.0)
  • ล็อกอินสำเร็จแล้วเข้าหน้า dashboard เป็นค่าเริ่มต้น (เดิมบางบัญชีถูกพาไปหน้า "โปรไฟล์ของฉัน" /profile แทน) — และถ้าบัญชีนั้นได้รับสิทธิ์เมนู AI Intelligence (Beta) /intDash ระบบจะพาเข้า /intDash แทน dashboard อัตโนมัติ; บัญชีที่ไม่ได้รับสิทธิ์ทั้งสองเมนูยังคงเข้าหน้าโปรไฟล์เป็นปลายทางสำรองเหมือนเดิม — แก้ในระดับหน้าเว็บล้วน ไม่ต้องอัปเดตระบบหลังบ้าน (3.56.1)
  • หน้า ระบบอุปกรณ์ → จัดกลุ่มอุปกรณ์: อัปโหลดไอคอนกลุ่มขนาดใหญ่ (เช่น 512×512 px ขึ้นไป) ไม่ขึ้น 400 "ขนาดไอคอนเกินช่วงที่อนุญาต" อีกแล้ว — ระบบหน้าเว็บย่อขนาดรูปต้นทางอัตโนมัติให้พอดีกับขนาดที่หมุดบนแผนที่จะใช้จริง (ประหยัด bandwidth และไม่กระทบความคมชัด) และระบบหลังบ้านขยายช่วงขนาดสูงสุดที่ยอมรับให้รองรับไฟล์ retina ที่ผู้ใช้มีอยู่แล้ว — รูปไฟล์เดิมที่อัปโหลดสำเร็จแล้วยังใช้งานได้ตามเดิม (3.55.0 + klynx-api 4.56.0)
  • หน้า ระบบอุปกรณ์ → กล้อง (เพิ่ม + แก้ไข) / กระดานหลัก / แผนที่: แสดงแผนที่ได้แม้ระบบยังไม่ได้ตั้งค่า Google Maps API key — เดิมหน้าตั้งค่ากล้องไม่แสดงแผนที่ pin เลย ทำให้ admin กรอกพิกัด lat/long ไม่สะดวก ตอนนี้ถ้ายังไม่ตั้งคีย์ ระบบจะโหลด Google Maps ในโหมด development (มีลายน้ำของ Google) เพื่อให้ pin ตำแหน่งและดู preview ได้ แอดมินที่ตั้งคีย์ผ่าน ตั้งค่า → แผนที่ ไว้แล้วจะใช้งานเต็มรูปแบบเช่นเดิม (3.55.0)
  • หน้า ตั้งค่า → แผนที่: ช่อง API key ของ Google Maps ไม่บังคับใส่อีกแล้ว — ตั้ง provider เป็น "google" ได้โดยไม่ต้องกรอกคีย์ ระบบจะใช้โหมด development แทน เหมาะกับทีมที่ทดสอบโดยยังไม่ได้เปิด billing บัญชี Google Cloud (3.55.0)
  • หน้า AI Intelligence (Beta) /intDash: เลื่อนหน้าได้ตามปกติแล้ว + แผนที่แสดงตามจริง — เดิม (3.54.0) วางโครงหน้าเป็น layout แบบเก่าที่ไม่เข้ากับแถบเมนูข้าง ทำให้บนจอบางขนาดเลื่อนหน้าลงไปดูวิดเจ็ตสรุปด้านล่างไม่ได้ และแผนที่เป็นพื้นดำเพราะ MapLibre วัดขนาด canvas ก่อนที่ container จะเสร็จเลย์เอาต์ ตอนนี้ใช้โครงหน้ามาตรฐานเดียวกับหน้า Dashboard / Map / VideoWall (UDashboardPanel) — เลื่อนได้ครบทุกส่วน + แผนที่โหลด tile ถูกต้องตั้งแต่ครั้งแรก + ปุ่ม "รีเฟรช" และป้าย LIVE ย้ายขึ้นไปอยู่ที่แถบหัวให้สอดคล้องกับหน้าอื่นๆ (3.54.2)
  • หน้า /map — ไอคอนกล้องตามที่กำหนดใน "กลุ่มอุปกรณ์" แสดงบนแผนที่แล้ว — เดิมหน้า /map แสดงเป็นไอคอนเริ่มต้น (เขียว/แดงตามสถานะออนไลน์-ออฟไลน์) ทุกตัว แม้กลุ่มที่กล้องอยู่จะอัปโหลดไอคอนกล้องไว้แล้ว ตอนนี้กล้องที่อยู่ในกลุ่มที่มีไอคอนกำหนดเอง จะแสดงไอคอนนั้นบนแผนที่อัตโนมัติ (แยกตามสถานะออนไลน์-ออฟไลน์) เหมือนหน้า Map (biDash) และ Live หมายเหตุ: กรณีเตือนภัย (alarm) / เตือน (warning) ยังคงใช้ไอคอนมาตรฐานเพื่อให้สังเกตได้ทันที — สำหรับหน้า K-Control map ยังคงใช้ไอคอนมาตรฐาน เพราะระบบหลังบ้านยังไม่ส่งไอคอนกลุ่มมาในผลลัพธ์ของ kcontrol (ต้องอัปเดตฝั่งระบบหลังก่อน) (3.53.2)
  • หน้า Dashboard / Video Wall / Live — ฟิลเตอร์ "กลุ่มอุปกรณ์": ตัวเลือกในดรอปดาวน์เท่ากับหน้า Map (biDash) แล้ว — เดิม Dashboard / Video Wall / Live แสดง "กลุ่มภายในระบบ" ที่ไม่ควรเปิดให้ผู้ใช้ทั่วไปเห็น และเรียงไม่ตามชื่อ ตอนนี้ทั้ง 4 หน้าตัดกลุ่ม internal ออกเหมือนกัน + แสดงชื่อแบบ "กลุ่มแม่ / กลุ่มลูก" เพื่อให้แยกกลุ่มชื่อซ้ำที่อยู่คนละสายได้ + เรียงตามภาษาที่ใช้งาน (ไทย/อังกฤษ) — กดเลือกกลุ่มใน Dashboard แล้วจะได้รายการเดียวกับ Map และ Video Wall (3.53.1)
  • ความปลอดภัย — หน้า ระบบผู้ใช้ → สิทธิ์ → จัดการเมนู / ทรัพยากร: ผู้ใช้ที่ไม่ใช่ผู้ดูแลองค์กรจะไม่เห็นรายการ Permission Profile ของคนอื่นอีกแล้ว แม้พิมพ์ URL เข้าตรง ๆ — เดิมเปิดดูข้อมูล profile / OU / กล้องที่ผูกกับ profile ได้แม้ไม่มีสิทธิ์แก้ไข ตอนนี้ระบบหลังบ้านปิดสิทธิ์อ่านสำหรับผู้ที่ไม่มี organization.manage และฝั่งหน้าเว็บแสดงข้อความ "ไม่มีสิทธิ์เข้าหน้านี้" พร้อมปุ่มกลับหน้าหลัก (เดิมแสดงรายการว่าง เหมือนไม่มี profile ในองค์กร) พร้อมซ่อนเมนู "จัดการสิทธิ์" ในแถบข้างให้ผู้ใช้ที่ไม่ใช่ผู้ดูแลองค์กร (klynx-api 4.53.0, FE 3.50.0)
  • หน้า ตั้งค่า → ผังพื้นที่ (Floor Plans): กดสร้างผังครั้งแรก หรือแก้ไขผังเดิม ไม่ขึ้น 404 "route not found" อีกแล้ว — เดิม endpoint CRUD พื้นฐานเปิดไว้เฉพาะ deployment ที่เปิดฟีเจอร์ผังเสมือน (digital twin) ทำให้องค์กรปกติกดสร้างผังไม่ขึ้น ตอนนี้ CRUD พื้นฐานเปิดให้ทุก deployment ส่วนฟีเจอร์ผังเสมือนยังคงต้องเปิดฟีเจอร์เพิ่มแยก (klynx-api 4.53.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: เปิด profile ที่เลือกหลายกลุ่ม (เช่น "Device" + "Group 3") และระบุเจาะจงกล้องไว้ในกลุ่มหนึ่ง (เช่น 2 กล้องใน Group 3) — ตอนนี้ระบบให้สิทธิ์เห็นกล้องทั้งหมดของกลุ่มที่เลือกทั้งกลุ่ม + เฉพาะกล้องที่ระบุเจาะจงในกลุ่มที่ drilldown ลงไป (รวมเป็น 4 กล้อง) — เดิมระบบตัดกล้องของกลุ่มที่เลือกทั้งกลุ่มทิ้งเงียบ ๆ ทำให้เห็นแค่ 2 กล้องที่ระบุเจาะจง ขัดกับเจตนาผู้ใช้และ UI ที่ดูเหมือนเลือกทั้งกลุ่มแล้ว (klynx-api 4.47.0)
  • หน้า ระบบอุปกรณ์ → จัดกลุ่มอุปกรณ์ (/systemDevices/groups): หลังกด "เพิ่มอุปกรณ์" หรือ "ลบที่เลือก" สำเร็จ ตัวเลขจำนวนอุปกรณ์ใน badge บนต้นไม้กลุ่มฝั่งซ้าย (เช่น "17") อัปเดตเป็นค่าใหม่ทันที — เดิมรีเฟรชแค่รายการอุปกรณ์ฝั่งขวา ตัวเลขใน badge ยังเป็นค่าเดิมจนกว่าจะออกไปเมนูอื่นแล้วกลับมา (3.43.2)
  • หน้า ระบบอุปกรณ์ → จัดกลุ่มอุปกรณ์ (/systemDevices/groups): กดเลือกอุปกรณ์ทีละตัวด้วยการพิมพ์ค้นหา (เช่น ค้น "CC-030" แล้วติ๊ก ค้น "CC-031" แล้วติ๊กอีกตัว) ตอนกด "ลบที่เลือก (2)" หรือ "เพิ่มที่เลือก (2)" ระบบส่งทั้งสองตัวจริงแล้ว — เดิมส่งไปแค่ตัวล่าสุดที่ยังเห็นในรายการ ทำให้ noti บอกว่า 2 รายการแต่ระบบจริง ๆ ดำเนินการกับตัวเดียว (3.43.1)
  • หน้า VideoWall (/videowall): ช่องค้นหากล้องในแถบด้านขวาเรียกใช้ระบบค้นหาฝั่งเซิร์ฟเวอร์แล้ว — พิมพ์คำค้นแล้วระบบจะค้นจากชื่อกล้อง / เขต / สถานที่ / รายละเอียด / รหัสกล้อง ครบทุกฟิลด์ที่ผู้ใช้มองเห็นได้ในรายละเอียดกล้อง เดิมระบบกรองเฉพาะฝั่งหน้าเว็บโดยดูแค่ชื่อ / เขต / รหัส ทำให้พิมพ์คำที่อยู่ในรายละเอียดหรือสถานที่แล้วไม่เจอ ตอนนี้ใช้พื้นฐานเดียวกับเซิร์ฟเวอร์ค้น (case-insensitive, substring) ผลค้นตรงกับสิ่งที่ผู้ใช้คาดหวัง (3.43.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: badge "เลือก N" บนแท็บ "เลือกอุปกรณ์" แสดงเฉพาะกลุ่มที่อยู่ในขอบเขตของ profile จริง ๆ — เดิม (หลังเปิดให้ขึ้นทุกกลุ่มที่มีอุปกรณ์เจาะจงใน 3.40.2) ถ้ากล้องตัวเดียวอยู่หลายกลุ่ม badge จะขึ้นทุกกลุ่มที่กล้องนั้นอยู่ แม้ profile ไม่ได้เลือกกลุ่มนั้น ตอนนี้ขึ้นเฉพาะกลุ่มที่ profile เลือกตรง ๆ หรือ parent ที่ติ๊ก "รวมกลุ่มย่อย" ไว้ (3.41.0)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: เปิด profile ที่มีสิทธิ์อุปกรณ์เจาะจง (เลือกระบุเจาะจง) ตอนนี้แท็บ "เลือกอุปกรณ์" แสดง badge "เลือก N" บนทุกกลุ่มที่มีอุปกรณ์เจาะจงในนั้น — เดิม badge ขึ้นเฉพาะกลุ่มที่กำลังเปิดดูอยู่ ทำให้ดูเหมือนไม่ได้เลือกอะไรไว้ ต้องคลิกแต่ละกลุ่มทีละอันถึงจะเห็น (3.40.2)
  • หน้า ระบบผู้ใช้ → สิทธิ์ → ทรัพยากร: badge "ระบุเจาะจงสมาชิก" บนแท็บ "เลือกองค์กร/หน่วยงาน" แสดงเฉพาะหน่วยงานที่อยู่ในขอบเขตของ profile จริง ๆ — เดิมถ้าระบุเจาะจง member 1 คนที่อยู่ใน OU หลายแห่ง badge จะขึ้นทุก OU ที่มีคน ๆ นั้นอยู่ แม้ profile ไม่ได้เลือก OU นั้น (3.40.2)
  • หน้า ระบบอุปกรณ์ → จัดกลุ่มอุปกรณ์ (แก้ไข): อัปโหลดไอคอนกลุ่มแล้วกด "บันทึก" ตอนนี้บันทึกไอคอนให้อัตโนมัติ — เดิมต้องกด "ใช้สีนี้" ก่อนทุกครั้ง ถ้าลืมกดแล้วบันทึกเลย ไอคอนจะหายไปเงียบ ๆ (ระบบไม่ได้ส่งไฟล์ไปที่เซิร์ฟเวอร์) ตอนนี้พอเลือกไฟล์แล้วระบบ tint สีตามที่เลือกอยู่ + อัปโหลดให้ทันที ปุ่ม "ใช้สีนี้" ยังใช้งานได้สำหรับเปลี่ยนสีใหม่ (3.40.1)
  • หน้า /kcontrol/map + /kcontrol/mapif: ไอคอนหมุดสถานะออนไลน์/ออฟไลน์ปรับสัดส่วนใหม่ให้ขนาด+ทรงตรงกับหมุดของหน้า /map (กล้อง) และ /biDash แล้ว — เดิมเป็นวงกลมเล็กแบน (40×40 px) ดูเล็กผิดสัดส่วนกับหมุดกล้องบนหน้าจอเดียวกัน ตอนนี้เป็นรูปทรง drop-pin สูง (45×120 px) เหมือนกล้อง พร้อมไอคอนสัญญาณกระจาย (broadcast wave) สีขาวอยู่ภายในวงรีสีเขียว/แดง สื่อความหมาย IoT/sensor ของ kcontrol ส่วนไอคอนแจ้งเตือนไฟไหม้ (ตอนเกิดเหตุ alarm) ยังเป็นรูปไฟไหม้ขนาด 64×64 เหมือนเดิม ตั้งใจให้ต่างจากหมุดปกติเพื่อสะกิดสายตา (3.58.1)
  • หน้า /kcontrol/map + /map: คลิกชื่ออุปกรณ์ในช่องค้นหาแล้วอุปกรณ์ที่ยังไม่ได้ตั้งพิกัด ระบบจะแสดง toast เตือนแทนการเงียบไม่ทำอะไร — เดิมคลิกแล้วแผนที่ไม่เลื่อน ไม่มีข้อความบอกว่าทำไม operator ไม่รู้ว่าอุปกรณ์ไม่มีพิกัด ตอนนี้ขึ้นข้อความ "อุปกรณ์ยังไม่มีพิกัด" พร้อมระบุว่าให้ไปตั้งที่หน้า ระบบอุปกรณ์ → จัดการอุปกรณ์ / จัดการกล้อง (3.58.1)
  • หน้าทุกหน้าที่ใช้ realtime WebSocket (Dashboard, biDash, /kcontrol/map, /kcontrol/mapif ฯลฯ): สลับหน้าระหว่างหน้าจอเร็วๆ แล้วเหตุการณ์ realtime ตัวแรกหลังเข้าหน้าใหม่ไม่หาย — เดิมเปลี่ยนหน้าแล้วฝั่ง browser ปิด WebSocket ทันที พอหน้าใหม่ขึ้นและขอ subscribe ใหม่ ต้องสร้าง WebSocket ตั้งแต่ต้น ระหว่างนั้นถ้ามีเหตุการณ์ส่งจาก server จะส่งออกไม่ทันเพราะยังไม่มีใคร listen เลยตกหาย ตอนนี้ระบบรอ 500 มิลลิวินาทีก่อนปิด WebSocket ถ้าหน้าใหม่ขอ subscribe มาก่อน 500 ms WebSocket เดิมจะถูกใช้ต่อทันที ไม่มีช่วง gap (3.58.1)
  • หน้า ระบบอุปกรณ์ → กล้อง (แก้ไข): เพิ่มช่อง "รหัสผ่านกล้อง" พร้อมปุ่มแสดง/ซ่อนรหัส — เดิมหน้าแก้ไขไม่มีช่องนี้เลย ทำให้ admin ที่วาง URL มาในรูป rtsp://user:pass@host/path ระบบจะตัด credentials ทิ้ง แต่ไม่มีที่กรอกใหม่ ตอนนี้กล้องที่เก็บไว้ไม่ครบจะแสดง toast เตือน "ข้อมูลล็อกอินกล้องไม่ครบ" แทนการ retry เงียบๆ จนเกิด Illegal Login Lock ที่ตัวกล้อง (3.40.0)
  • เพิ่มหน้าแจ้งเตือนเต็มจอเมื่อไม่มีสิทธิ์เข้าใช้งาน (403) หรือระบบขัดข้อง (500) — เดิมเข้าหน้าที่ไม่มีสิทธิ์แล้วเห็นแค่ toast มุมขวาล่าง ส่วนเนื้อหาหน้ายังโผล่ครึ่งๆ ตอนนี้ระบบจะแสดงข้อความ "คุณไม่มีสิทธิ์เข้าใช้งานหน้านี้" หรือ "เกิดข้อผิดพลาดของระบบ" พร้อมปุ่ม "กลับหน้าแรก" / "ย้อนกลับ" / "ลองใหม่อีกครั้ง" (กรณี 500) แทน (3.35.0)
  • หน้า Permissions → Resource: ยกเลิกเลือกกลุ่ม (เช่น Test01) แล้วกด Save ระบบลบสมาชิกที่ระบุเจาะจงใต้กลุ่มนั้นออกให้อัตโนมัติ — เดิมต้อง deselect รายชื่อทีละคนเอง แม้ uncheck กลุ่มแม่ไปแล้ว (3.31.1)
  • หน้า Permissions → Resource: ในแท็บ "เลือกอุปกรณ์" รายการกลุ่มแต่ละบรรทัดมีไอคอนตามชนิดแล้ว — กล้อง / kcontrol / edge แยกสายตาได้ทันที (เดิมขึ้นรูป folder เหมือนกันหมด)
  • หน้า Permissions → Resource: เลือกอุปกรณ์เจาะจง (kcontrol / edge) ใน profile ได้แล้ว — เดิมกด Save ขึ้น 404 "camera not found" เพราะหน้าส่ง id ของ kcontrol ลงไปในช่อง cameras รวมกัน ตอนนี้แยกเป็น cameras / kControls / edges ตามชนิดอุปกรณ์ก่อนส่ง
  • หน้า /systemDevices/groups + Permissions → Resource: แสดงโครงสร้างกลุ่มอุปกรณ์ครบทุกชั้น แม้ในองค์กรที่มีกลุ่มเกิน 10 — เดิมระบบ paginate แล้วบางกลุ่มลูกตกหน้า 2 หาย เลยมองดูเหมือนจำนวนกลุ่มไม่เท่ากันระหว่าง 2 หน้านี้
  • หัวหน้าหน่วยงาน (parent OU) เห็นกล้องของหน่วยงานลูกได้แล้ว แม้ profile ตั้ง memberIds เจาะจง — pre-fix ระบบกรอง parent OU ออกถ้าชื่อไม่อยู่ในรายการเจาะจง
  • หน้า Permissions → Resource: เลือกสมาชิกจาก OU ลูกได้โดยไม่ต้อง tick OU ลูกก่อน — ระบบ auto-add OU ของสมาชิกที่เลือก แทนการ scrub ทิ้ง
  • หน้า Permissions / จัดการหน่วยงาน: badge นับจำนวนหน่วยงานย่อย (`t§ N`) + จำนวนสมาชิก แสดงครบทุกระดับตั้งแต่โหลดครั้งแรก — เดิมเห็นจำนวนเฉพาะระดับที่กดเปิดแล้ว
  • หน้า Permissions → เมนู: badge `✓ N` บนกลุ่มเมนู — เห็นจำนวน sub-menu ที่ tick ไว้โดยไม่ต้อง expand
  • Sidebar: เมนู "อุณหภูมิ" (K-Control Temperature) ขึ้นในแถบข้างหลังตั้งสิทธิ์ — เดิม grant ใน picker แต่ sidebar ไม่ render leaf
  • หน้า K-Control Temperature: คลิกเมนูแล้ว 500 "Unknown route middleware" — เกิดจาก draft template ค้าง middleware อ้างอิงที่ไม่มีอยู่ ตอนนี้เปิดหน้าได้ปกติ
  • หน้า Permissions → Resource: บันทึก profile แล้วได้ 404 — ตอนนี้ scrub สมาชิกที่หลุดออกจาก OU แล้วเตือนผ่าน toast แทน
  • Badge จำนวนสมาชิกเจาะจงใน Permission tree ขึ้นทุก OU โดยไม่ต้อง click — เดิมต้องคลิก folder ก่อน
  • อัปโหลดรูป Profile (Settings → โปรไฟล์) ส่งภาพถึง server แล้ว — เดิม PATCH ไม่ได้แนบไฟล์
  • หน้า System Users → Edit User: เลือกรูปเดิมซ้ำได้ preview จะ refresh — เดิม Chrome กั๊กการ fire @change
  • Permission Profile status nil-keep — PATCH ไม่ได้ส่ง status แล้วถูกปิดเอง
  • หน้าผู้ใช้ page=2 ว่าง: snap กลับไปหน้าสุดท้ายอัตโนมัติ
  • ไอคอน Event Integration ขึ้น "ใช้งานได้" ทั้งที่ยังไม่ตั้ง gateway env
  • หน่วยงานสร้างใหม่หาย จนกว่าจะรีเฟรช (event payload ใส่ parentId)
เม.ย. 2026 — Resource Icons & Import/Export30 เม.ย. - 2 พ.ค. 2569

Resource Group icons + Excel round-trip + Dashboard counters

Features5

  • Resource Group: ตั้งไอคอนกล้องบนแผนที่เป็นของตัวเอง (online + offline)
  • อัปโหลดไอคอน .png .jpg .webp (≤ 500 KB, 16-256 px)
  • Resource: Export / Import ผ่าน Excel template (cameras + groups 2 ชีต)
  • Dashboard counters: รวม API call ตัวเลขแดชบอร์ดเป็น call เดียว (cache 10s)
  • Admin endpoint: ดู credentials ของกล้องแบบ audit-logged

Improvements3

  • CameraDTO: ลบ user / password ออกจาก URL อัตโนมัติ
  • Permission Profile: includeResourceGroupChildren — ขยายให้ลูกหลานทั้งหมด
  • Direct grants ของกล้อง / kcontrol แสดงในหน้า Resource ที่ผู้ใช้เห็นแล้ว

Fixes3

  • Permission profile nil-keep regression — PATCH ไม่กระทบ field ที่ไม่ส่ง
  • Camera URL credential leak (admin endpoint + public list ทั้งคู่)
  • Dead code controller (devapi) ลบทิ้งทั้งหมด
มี.ค. - เม.ย. 2026 — Direct Grants & Subscriptionมี.ค. - เม.ย. 2569

สิทธิ์เจาะจงรายอุปกรณ์ + ระบบ Subscription / License

Features4

  • Permission Profile: Phase 2a/2b — กำหนด camera / kcontrol โดยตรง (direct grants)
  • Subscription / Billing: appliance license activation flow
  • Enterprise license: รองรับ deployment profile หลายแบบ (saas / platform / appliance)
  • Resource Group hierarchy: parent-child + cycle defense

Improvements2

  • Permify resolver: รองรับ direct grants ทุกชนิด (camera, kcontrol, edge, group)
  • Phibek webhook integration: เปิด/ปิด tenant flow

Fixes2

  • Org subscription repair on activation
  • Member cleanup เมื่อลบ user
ก.พ. 2026 — Events & Mapก.พ. - มี.ค. 2569

Events query API + Live Map + Cross-org public visibility

Features5

  • Events: REST query API (list / detail) — fetched on-demand จาก gateway-api
  • Event refs index: pagination เร็ว (เก็บแค่ index ไม่ใช่ payload เต็ม)
  • Live Map: anonymous mode + authenticated org-scoped view
  • Cross-org public cameras: ตั้ง mapVisibility=public ให้คนอื่นเห็นได้
  • Delivery status tracking: เห็นว่า event ถูกส่งสำเร็จหรือล้มเหลว

Improvements2

  • Map clusters: แบ่งกลุ่มกล้องบนแผนที่แบบ zoom-aware
  • Floor plan / Digital twin: รากฐาน rendering layer
ก่อน ก.พ. 2026 — Foundationก.ย. 2568 - ก.พ. 2569

รากฐาน Multi-tenant + Permission system + Camera management

Features7

  • Multi-tenant: tenant / organization / org-unit hierarchy
  • Permission Profile: org-unit + resource-group narrowing (Permify-backed)
  • Camera management: register / sync / monitor / icon redaction
  • K-Control: IoT device dashboard (sensor data, MQTT live)
  • User management: RBAC (Keycloak realm + Permify org roles)
  • Audit log: read/write trail สำหรับ admin endpoints
  • Aliza-bot v1: Telegram bot สำหรับ ops command
Technical

ข้อมูลเทคนิค

รายละเอียดการรองรับและความสามารถ

รองรับกล้อง

  • ONVIF 2.0+
  • RTSP / RTMP
  • ATA Edge
  • Hikvision
  • Dahua
  • IP Camera ทั่วไป

การสตรีม

  • WebRTC (low-latency)
  • FLV over WebSocket
  • HLS
  • RTSP Proxy
  • Snapshot on-demand

AI / Analytics

  • Face Recognition
  • License Plate (LPR)
  • Pedestrian Detection
  • Object Tracking
  • Custom AI box (ATA / SVMS / iboc)

Browser / Mobile

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+
  • Mobile responsive (กำลังพัฒนา native)

Integration

  • gateway-api (events SoT)
  • klynx-connector (Windows edge)
  • Phibek webhook
  • MQTT realtime
  • Kafka pipeline

Security

  • Keycloak SSO
  • Permify RBAC
  • JWT bearer + X-Active-Org
  • Audit log
  • URL credential redaction
  • TLS only
Roadmap

แผนพัฒนาในอนาคต

ฟีเจอร์ที่กำลังจะมาถึง

Q2 2569แผนที่รวมอุปกรณ์ทุกประเภท (กล้อง + kcontrol + edge + sensor)กำลังพัฒนา
Q2 2569Cross-org icon resolution บนแผนที่ public anonymousวางแผนไว้
Q3 2569Mobile App (iOS / Android native)วางแผนไว้
Q3 2569Cloud Recording (NVR ในคลาวด์)วางแผนไว้
Q3 2569Klynx-connector — Windows edge phase 2 (appliance + gateway integrations)วางแผนไว้
Q4 2569AI Custom Model uploadวางแผนไว้

ต้องการข้อมูลเพิ่มเติม?

อ่านเอกสารหรือติดต่อทีมงานได้เลย