ตั้งค่าแม็ปห้องแบบกลุ่ม
ตั้งค่าแบบรวดเร็ว
โรงแรมส่วนใหญ่ทดสอบช่วงห้องเล็ก ๆ ได้ภายใน 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: ทดสอบช่วงเล็ก ๆ
- รันแบบทดสอบสำหรับช่วงห้องเล็ก ๆ
- ตรวจ output อย่างละเอียด
- ยืนยันว่าชื่อห้องตรงกับห้องที่คุณคาดไว้
ตัวอย่าง 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: รันการแม็ปจริง
- เอา
--dry-runออก - ใช้ช่วงห้องเดิม
- รันคำสั่งอีกครั้ง
ใช้ --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 ที่เลือกมีข้อมูลนี้
โหมดที่ใช้บ่อย
- ใช้ lock ตัวเดียวกับหลายห้อง
- จับคู่ล็อกตามชื่ออุปกรณ์
- จับคู่ล็อกตามแพตเทิร์นของ 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
การแก้ไขปัญหา
สิ่งที่เห็น: แบบทดสอบแสดงห้องไม่ถูกต้อง
วิธีแก้:
- ตรวจ
--room-name-pattern - ยืนยันค่า
--startและ--end - รันแบบทดสอบอีกครั้ง
สิ่งที่เห็น: ห้องหนึ่งมีการแม็ปอื่นอยู่แล้ว
วิธีแก้:
- ยืนยันว่าการแม็ปใหม่ถูกต้อง
- รันใหม่ด้วย
--update-existing - ตรวจห้องใน UI
สิ่งที่เห็น: ล็อกถูก assign ไว้ที่อื่นแล้ว
วิธีแก้:
- ยืนยันว่าต้องใช้ร่วมกันจริง
- เพิ่ม
--allow-assigned-elsewhereเฉพาะกรณีล็อกที่ใช้ร่วมกัน - รันสคริปต์อีกครั้ง
สิ่งที่เห็น: ไม่มีห้องแสดง
วิธีแก้:
- ยืนยันว่าห้อง PMS โหลดใน AVA
- รีเฟรชหน้า
- ตรวจ merchant ID และ credentials
ยังติดปัญหาอยู่?
ติดต่อ success@vouch-technologies.com หาก:
- ❌ สคริปต์ยังล้มเหลวหลังแบบทดสอบ
- ❌ การแม็ปบันทึกแล้วแต่ไม่แสดงใน AVA
- ❌ คุณไม่แน่ใจว่าโหมดการแม็ปแบบใดเหมาะกับที่พัก
ข้อมูลที่ควรแนบ:
- ภาพหน้าจอ output ของคำสั่ง
- Merchant ID
- ชื่อ vendor และรุ่น lock
- เวลาที่เริ่มเกิดปัญหา