设置批量房间映射
快速设置
大多数酒店可以在 5 到 10 分钟内测试一个小范围的房间。请先做一次 dry run。
当你需要为门卡编码器或智能锁一次映射很多房间时,使用这些脚本。
快速参考
| 脚本 | 功能 | 适用场景 |
|---|---|---|
scripts/bulk-keycard-room-mapping.mjs | 创建或更新门卡编码器的房间映射 | 编码器房名遵循清晰的命名规律 |
scripts/bulk-smart-lock-room-mapping.mjs | 创建或更新智能锁房间映射 | 锁具按批量方式命名或分配 |
开始前
先确认以下事项:
- 你可以使用 merchant 凭据登录
- 你知道目标 merchant ID
- 你的 env 文件包含
TEST_MERCHANT_ID、TEST_USERNAME和TEST_PASSWORD - 你是在仓库根目录运行命令
加载环境变量
在运行脚本前先加载 env 文件:
set -a
source packages/e2e-tests/.env.production-cloudbeds
set +a
如果你的 env 文件名不同,请相应修改路径。
第 1 步:测试小范围
- 对小范围房间先执行 dry run。
- 仔细查看输出。
- 确认房名与预期房间一致。
门卡编码器示例
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
智能锁示例
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。
它会做什么
- 从
/api/rooms解析 PMS 房间 - 创建或更新
/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。
它会做什么
- 从
/api/rooms解析 PMS 房间 - 从
/api/integrations/devices?vendor=...加载设备 - 检查
/api/mappings/room-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
故障排查
你看到的情况:dry run 显示了错误的房间
解决方法:
- 检查
--room-name-pattern。 - 确认
--start和--end的值。 - 再次运行 dry run。
你看到的情况:某个房间已有不同映射
解决方法:
- 确认新的映射是正确的。
- 使用
--update-existing重新运行。 - 在界面中验证该房间。
你看到的情况:某把锁已分配到其他地方
解决方法:
- 确认复用是有意为之。
- 仅对共享锁添加
--allow-assigned-elsewhere。 - 重新运行脚本。
你看到的情况:没有房间出现
解决方法:
- 确认 PMS 房间能在 AVA 中加载。
- 刷新页面。
- 检查 merchant ID 和凭据。
仍有问题?
如果出现以下情况,请联系 success@vouch-technologies.com:
- ❌ dry run 后脚本仍持续失败
- ❌ 映射已保存但未在 AVA 中显示
- ❌ 你不确定哪种映射模式适合你的酒店
建议附上:
- 命令输出截图
- Merchant ID
- 供应商名称和锁型号
- 问题开始时间