ข้ามไปยังเนื้อหาหลัก

ตั้งค่าแม็ปห้องแบบกลุ่ม

ตั้งค่าแบบรวดเร็ว

โรงแรมส่วนใหญ่ทดสอบช่วงห้องเล็ก ๆ ได้ภายใน 5 ถึง 10 นาที ควรลองรันแบบทดสอบก่อน

ใช้สคริปต์เหล่านี้เมื่อคุณต้องแม็ปห้องจำนวนมากสำหรับ keycard encoder หรือ smart lock

สรุปอย่างย่อ

สคริปต์สิ่งที่ทำเหมาะสำหรับ
scripts/bulk-keycard-room-mapping.mjsสร้างหรืออัปเดตการแม็ปห้องของ keycard encoderกรณีชื่อห้องของ encoder มีรูปแบบชัดเจน
scripts/bulk-smart-lock-room-mapping.mjsสร้างหรืออัปเดตการแม็ปห้องสำหรับ smart lockกรณีล็อกถูกตั้งชื่อหรือจัดสรรแบบกลุ่ม

ก่อนเริ่มต้น

ตรวจสอบรายการเหล่านี้ก่อน:

  • คุณลงชื่อเข้าใช้ด้วย merchant credentials ได้
  • คุณทราบ merchant ID เป้าหมาย
  • ไฟล์ env มี TEST_MERCHANT_ID, TEST_USERNAME, และ TEST_PASSWORD
  • คุณรันคำสั่งจาก root ของ repository
โหลด environment ของคุณ

ตั้งค่า env file ก่อนรันสคริปต์:

set -a
source packages/e2e-tests/.env.production-cloudbeds
set +a

หากไฟล์ env ของคุณใช้ชื่ออื่น ให้เปลี่ยน path ตามนั้น

ขั้นตอนที่ 1: ทดสอบช่วงเล็ก ๆ

  1. รันแบบทดสอบสำหรับช่วงห้องเล็ก ๆ
  2. ตรวจ output อย่างละเอียด
  3. ยืนยันว่าชื่อห้องตรงกับห้องที่คุณคาดไว้

ตัวอย่าง keycard encoder

node scripts/bulk-keycard-room-mapping.mjs \
--merchant-id "$TEST_MERCHANT_ID" \
--username "$TEST_USERNAME" \
--password "$TEST_PASSWORD" \
--room-name-pattern 'TES({n})' \
--start 10 \
--end 20 \
--dry-run

ตัวอย่าง smart lock

node scripts/bulk-smart-lock-room-mapping.mjs \
--merchant-id "$TEST_MERCHANT_ID" \
--username "$TEST_USERNAME" \
--password "$TEST_PASSWORD" \
--vendor igloohome \
--room-name-pattern 'TES({n})' \
--lock-id 'IGB40903c5f5' \
--start 1 \
--end 5 \
--allow-assigned-elsewhere \
--dry-run

ขั้นตอนที่ 2: รันการแม็ปจริง

  1. เอา --dry-run ออก
  2. ใช้ช่วงห้องเดิม
  3. รันคำสั่งอีกครั้ง

ใช้ --update-existing หากต้องการแก้การแม็ปที่มีอยู่แล้ว

ตัวเข้ารหัสคีย์การ์ด

ใช้ scripts/bulk-keycard-room-mapping.mjs เมื่อชื่อห้องของ encoder มีแพตเทิร์นที่คาดเดาได้

สิ่งที่ทำ

  • ดึง PMS rooms จาก /api/rooms
  • สร้างหรืออัปเดต /api/keycard-encoder-room-mapping
  • สร้าง encoderRoomName จากหมายเลขห้อง

ตัวอย่าง

node scripts/bulk-keycard-room-mapping.mjs \
--merchant-id "$TEST_MERCHANT_ID" \
--username "$TEST_USERNAME" \
--password "$TEST_PASSWORD" \
--room-name-pattern 'TES({n})' \
--start 10 \
--end 300

สมาร์ทล็อก

ใช้ scripts/bulk-smart-lock-room-mapping.mjs เมื่อคุณต้องแม็ปห้องจำนวนมากไปยัง smart lock

สิ่งที่ทำ

  • ดึง PMS rooms จาก /api/rooms
  • โหลดอุปกรณ์จาก /api/integrations/devices?vendor=...
  • ตรวจการแม็ปเดิมจาก /api/mappings/room-lock
  • ส่ง bridge metadata เมื่อ lock ที่เลือกมีข้อมูลนี้

โหมดที่ใช้บ่อย

  1. ใช้ lock ตัวเดียวกับหลายห้อง
  2. จับคู่ล็อกตามชื่ออุปกรณ์
  3. จับคู่ล็อกตามแพตเทิร์นของ lock ID

ตัวอย่าง

node scripts/bulk-smart-lock-room-mapping.mjs \
--merchant-id "$TEST_MERCHANT_ID" \
--username "$TEST_USERNAME" \
--password "$TEST_PASSWORD" \
--vendor igloohome \
--room-name-pattern 'TES({n})' \
--device-name-pattern 'TES({n})' \
--start 1 \
--end 20 \
--dry-run

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

สิ่งที่เห็น: แบบทดสอบแสดงห้องไม่ถูกต้อง

วิธีแก้:

  1. ตรวจ --room-name-pattern
  2. ยืนยันค่า --start และ --end
  3. รันแบบทดสอบอีกครั้ง

สิ่งที่เห็น: ห้องหนึ่งมีการแม็ปอื่นอยู่แล้ว

วิธีแก้:

  1. ยืนยันว่าการแม็ปใหม่ถูกต้อง
  2. รันใหม่ด้วย --update-existing
  3. ตรวจห้องใน UI

สิ่งที่เห็น: ล็อกถูก assign ไว้ที่อื่นแล้ว

วิธีแก้:

  1. ยืนยันว่าต้องใช้ร่วมกันจริง
  2. เพิ่ม --allow-assigned-elsewhere เฉพาะกรณีล็อกที่ใช้ร่วมกัน
  3. รันสคริปต์อีกครั้ง

สิ่งที่เห็น: ไม่มีห้องแสดง

วิธีแก้:

  1. ยืนยันว่าห้อง PMS โหลดใน AVA
  2. รีเฟรชหน้า
  3. ตรวจ merchant ID และ credentials

ยังติดปัญหาอยู่?

ติดต่อ success@vouch-technologies.com หาก:

  • ❌ สคริปต์ยังล้มเหลวหลังแบบทดสอบ
  • ❌ การแม็ปบันทึกแล้วแต่ไม่แสดงใน AVA
  • ❌ คุณไม่แน่ใจว่าโหมดการแม็ปแบบใดเหมาะกับที่พัก

ข้อมูลที่ควรแนบ:

  • ภาพหน้าจอ output ของคำสั่ง
  • Merchant ID
  • ชื่อ vendor และรุ่น lock
  • เวลาที่เริ่มเกิดปัญหา

คู่มือที่เกี่ยวข้อง