githubEdit

Ultraloq Setup Guide

Step-by-step instructions for connecting Ultraloq devices to Seam

This guide walks you through connecting Ultraloq locks to Seam and configuring them for use with the Seam API.

Before You Begin

To follow this guide, you need:

  • A Seam account (create one at console.seam.coarrow-up-right)

  • An API key from your Seam workspace

  • An Ultraloq account with at least one lock configured

circle-info

If you're testing the integration, you can use a sandbox workspace with test Ultraloq devices.


Step 1: Create a Connect Webview

Create a Connect Webview to enable the Ultraloq device owner to authorize Seam to access their Ultraloq account.

from seam import Seam

seam = Seam()

webview = seam.connect_webviews.create(
  accepted_providers=["ultraloq"],
  custom_redirect_url="https://your-app.com/oauth/callback"
)

print(webview.url)

Step 2: User Authorization

Direct the user to the Connect Webview URL returned in Step 1. The user will be prompted to:

  1. Sign in to their Ultraloq account

  2. Authorize Seam to access their Ultraloq devices

After authorization, the user is redirected to your custom_redirect_url with the connect_webview_id as a query parameter.


Step 3: Verify Connection

Wait for the Connect Webview status to change to authorized, indicating that the connection was successful. You can either poll the Connect Webview or use webhooks to be notified when the status changes.


Step 4: List Devices

Once the connection is authorized, retrieve the list of Ultraloq devices associated with the connected account.

Expected Output:

When you first list Ultraloq devices, they will have the ultraloq_time_zone_unknown warning:

circle-exclamation

Step 5: Configure Device Timezones

This is a required step for Ultraloq devices. You must configure each device's timezone before you can create time-bound access codes.

circle-check

For detailed information about timezone configuration, including best practices and troubleshooting, see Configuring Ultraloq Device Timezones.


Step 6: Verify Configuration

After configuring the timezone, verify that the warning has been cleared and the timezone is set correctly.


Next Steps

Now that your Ultraloq devices are connected and configured, you can perform common operations:

Lock and Unlock Devices

Create Permanent Access Codes

Permanent access codes work indefinitely and do not require timezone configuration:

Create Time-Bound Access Codes

Time-bound access codes require timezone configuration (completed in Step 5):

Monitor Device Status



Troubleshooting

Devices not appearing after connection

If devices don't appear after connecting your Ultraloq account:

  1. Verify that your locks are connected to Wi-Fi in the Ultraloq mobile app

  2. Ensure your Ultraloq account has access to the locks you're trying to connect

  3. Wait a few minutes for the initial sync to complete

Warning persists after setting timezone

If the ultraloq_time_zone_unknown warning persists after setting the timezone:

  1. Verify you used a valid IANA timezone string (e.g., "America/New_York", not "EST")

  2. Check that the API call succeeded without errors

  3. Refresh the device by calling seam.devices.get() to get the latest state

Time-bound access codes fail to create

If you receive an error when creating time-bound access codes:

  1. Confirm the device's timezone is configured (check device.properties.ultraloq_metadata.time_zone)

  2. Verify the ultraloq_time_zone_unknown warning is not present in device.warnings

  3. Ensure you're providing both starts_at and ends_at parameters


Last updated

Was this helpful?