When integrating with the Visionline system, ASSA ABLOY requires handling a set of common scenarios to meet their integration requirements. Learn how to accomplish some of these key scenarios.
Issue Guest Mobile Credentials
Copy acs_user = seam.acs.user.get(acs_user_id="xxx")
new_guest_room = seam.acs.entrances.list(
acs_system_id=hotel_acs_system_id
)[0]
seam.acs.credentials.create(
acs_user_id=acs_user.acs_user_id
credential_manager_acs_system_id="xxx"
is_multi_phone_sync_credential=True,
access_method="mobile_key",
starts_at="2023-01-01 10:40:00.000",
ends_at="2023-01-04 10:40:00.000",
allowed_acs_entrance_ids=[
new_guest_room.acs_entrance_id,
main_entrance.acs_entrance_id
],
visionline_metadata={
"cardFormat": "rfid48",
"cardType": "guest",
"label": "%ROOMNUM% - %SITENAME%",
"is_override_key": True
}
)
Copy guest_room_1 = seam.acs.entrances.list(
acs_system_id=hotel_acs_system_id
)[0]
guest_room_2 = seam.acs.entrances.list(
acs_system_id=hotel_acs_system_id
)[0]
first_acs_user = seam.acs.user.get(acs_user_id="xxx")
# First credential should be an override credential.
first_credential = seam.acs.credentials.create(
acs_user_id=first_acs_user.acs_user_id
credential_manager_acs_system_id="xxx"
is_multi_phone_sync_credential=True,
access_method="mobile_key",
starts_at="2023-01-01 10:40:00.000",
ends_at="2023-01-04 10:40:00.000",
allowed_acs_entrance_ids=[
guest_room_1.acs_entrance_id,
guest_room_2.acs_entrance_id,
main_entrance.acs_entrance_id
],
visionline_metadata={
"cardFormat": "rfid48",
"cardType": "guest",
"label": "%ROOMNUM% - %SITENAME%",
"is_override_key": True
}
)
second_acs_user = seam.acs.user.get(acs_user_id="yyy")
# Subsequent credentials should be joiners to the first credential.
seam.acs.credentials.create(
acs_user_id=second_acs_user.acs_user_id
credential_manager_acs_system_id="xxx"
is_multi_phone_sync_credential=True,
access_method="mobile_key",
starts_at="2023-01-01 10:40:00.000",
ends_at="2023-01-04 10:40:00.000",
allowed_acs_entrance_ids=[
guest_room_1.acs_entrance_id,
guest_room_2.acs_entrance_id,
main_entrance.acs_entrance_id
],
visionline_metadata={
"cardFormat": "rfid48",
"cardType": "guest",
"label": "%ROOMNUM% - %SITENAME%",
"joiner_acs_credential_ids": [first_credential.acs_credential_id]
}
)
Issue Joiner Mobile Credentials
Copy joiners = [joiner_mobile_parent_sync_credential, joiner_mobile_child_credential]
# Create the mobile credential.
cred = seam.acs.credentials.create({
acs_user_id: "xxx",
credential_manager_acs_system_id="xxs"
is_multi_phone_sync_credential: True,
access_method = "mobile_key",
starts_at: "2023-01-01 10:40:00.000",
ends_at: "2023-01-04 10:40:00.000",
visionline_metadata: {
"cardFormat": "rfid48",
"label": "%ROOMNUM% - %SITENAME%",
"joiner_acs_credential_ids": [
joiner.acs_credential_id for joiner in joiners
]
}
})