Skip to content

Conversation

@sybohy
Copy link
Member

@sybohy sybohy commented Jan 29, 2026

Summary

This PR adds comprehensive documentation for the Ultraloq smart lock integration to docs.seam.co.

Linear issue: ENG-65

What's unique about Ultraloq

The Ultraloq integration requires manual timezone configuration before creating time-bound access codes. This is unique among Seam integrations because:

  • Ultraloq devices schedule access codes using device-local time
  • The Ultraloq API does not report the device's timezone
  • Without the timezone, Seam cannot correctly convert UTC to device-local time for scheduling

Documentation added

New integration guide pages:

  1. Main overview (README.md)

    • Overview of Ultraloq integration
    • Supported devices and features
    • Prominent warnings about timezone requirement
    • Brand-specific notes
  2. Setup guide (ultraloq-setup-guide.md)

    • Complete OAuth connection flow
    • Device discovery
    • Timezone configuration (required step)
    • Multi-language code examples (Python, JS, Ruby, PHP, C#, Java, cURL)
  3. Timezone configuration guide (configuring-ultraloq-device-timezones.md)

    • Why timezone configuration is required
    • What works with/without timezone
    • Detecting unconfigured devices (ultraloq_time_zone_unknown warning)
    • Setting timezones (single and batch)
    • Valid IANA timezone values
    • Best practices and troubleshooting
  4. Access codes guide (creating-ultraloq-access-codes.md)

    • Creating permanent access codes (no timezone required)
    • Creating time-bound access codes (timezone required)
    • Code format requirements (4-8 digit numeric)
    • Time zone conversion explanation
    • Disabled code detection (ultraloq_access_code_disabled warning)
    • Error handling and troubleshooting

Updates to existing pages:

  • SUMMARY.md - Added Ultraloq navigation (alphabetically between TTLock and Wyze)
  • API reference (/devices/report_provider_metadata)
    • Added info box explaining Ultraloq use case
    • Added multi-language code examples
  • Access code constraints guide - Added provider-specific timezone requirements section (made broader for future integrations)

Key features documented

✅ OAuth connection flow
✅ Device timezone configuration (/devices/report_provider_metadata API)
✅ Permanent access codes (work without timezone)
✅ Time-bound access codes (require timezone)
✅ Warning system (ultraloq_time_zone_unknown, ultraloq_access_code_disabled)
✅ Code validation (4-8 digit numeric PINs)
✅ Multi-language code examples (7 languages)
✅ Best practices and troubleshooting

Assets needed (to be added later)

The following assets should be added to complete the documentation:

  1. Ultraloq manufacturer cover image (light mode)

    • Path: docs/.gitbook/assets/ultraloq-manufacturer-page-cover-light.png
    • Used in: Main README.md
  2. Ultraloq manufacturer cover image (dark mode) [optional]

    • Path: docs/.gitbook/assets/ultraloq-manufacturer-page-cover-dark.png
    • Used in: Main README.md (for dark mode support)
  3. Ultraloq logo

    • Path: docs/.gitbook/assets/ultraloq-logo.png
    • Used in: "Where to Order" card (if needed)

Documentation quality

  • ✅ Follows existing Seam documentation patterns and style
  • ✅ Uses GitBook markdown extensions (tabs, hints, cards)
  • ✅ Includes frontmatter on all pages
  • ✅ Multi-language code examples throughout
  • ✅ Clear warnings and callouts for critical requirements
  • ✅ Comprehensive troubleshooting sections
  • ✅ Internal links to related documentation

Test plan

  • All new markdown files have valid frontmatter
  • All internal links use correct relative paths
  • Navigation added to SUMMARY.md in correct alphabetical order
  • Code examples follow existing patterns
  • Verify rendering on docs.seam.co (after merge)
  • Add cover images and logo assets
  • Test all code examples (optional - can be done post-merge)

🤖 Generated with Claude Code

Add comprehensive documentation for the Ultraloq smart lock integration,
including the unique timezone configuration requirement for time-bound
access codes.

New documentation:
- Ultraloq integration overview (README.md)
- Setup guide with OAuth flow and timezone configuration
- Detailed timezone configuration guide
- Access code creation guide (permanent and time-bound codes)

Updates:
- Add Ultraloq to SUMMARY.md navigation (alphabetically between TTLock and Wyze)
- Enhance /devices/report_provider_metadata API reference with Ultraloq use case and examples
- Update access code constraints guide to include provider-specific timezone requirements

The Ultraloq integration is unique in requiring manual timezone configuration
before creating time-bound access codes, as Ultraloq devices schedule codes
using device-local time without reporting their timezone.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@sybohy sybohy requested a review from a team as a code owner January 29, 2026 01:00
seambot and others added 4 commits January 29, 2026 01:01
Update the timezone requirement detection code sample to include
examples in Python, JavaScript, Ruby, PHP, C#, Java, and cURL,
consistent with other SDK code samples throughout the documentation.
Expand the Next Steps section with working code examples for:
- Lock and unlock operations
- Creating permanent access codes
- Creating time-bound access codes
- Monitoring device status (lock status, online/offline, battery)

All examples include multi-language tabs (Python, JS, Ruby, PHP, C#, Java, cURL)
to help developers quickly implement common operations after setup.
Add requirement that ALL code examples must include all supported
Seam SDK languages (Python, JavaScript, Ruby, PHP, C#, Java) plus
cURL for direct API access.

Update the multi-language code example section with:
- Explicit requirement to include all languages
- Complete example showing all 7 languages
- Standard language ordering
- Guidance on when to include code examples

This ensures consistency across all documentation and makes it easier
for developers using different languages to find relevant examples.
@sybohy sybohy requested a review from a team as a code owner January 29, 2026 01:27
@sybohy sybohy merged commit 3a71757 into main Jan 29, 2026
9 checks passed
@sybohy sybohy deleted the sy/eng-65-document-ultraloq-integration branch January 29, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants