Skip to main content

An SDK to interact with the AladdinConnect (or OHD) partner API

Project description

AladdinConnect SDK

Authentication

OAuth Client

This SDK requires you to already have an OAuth client setup with us. The initial OAuth2.0 flow must be implemented by the users of this library as we provide no default implementation. More information on how to set this up will be provided when the OAuth client is set up.

Auth Class Implementation

The SDK provides an Auth class. It requires the following constructor parameters:

  • websession: an aiohttp.ClientSession that will be used for requests
  • host: the partner-specific base URL for the API
  • access_token: an initial access token to use (either cached or retrieved via the login flow)
  • api_key: a partner-specific API key provided during initial onboarding

This class also provides an abstract method async_get_access_token. This method is meant to be overridden with logic to handle checking the current token's validity and refreshing if needed. The refresh token will need to be managed outside of this class. Once this is implemented, the request method will automatically check the access token and set the appropriate authentication headers.

Model

Each garage door is modeled using the GarageDoor class that has the following properties:

  • device_id: a unique ID for the device (that could have multiple doors)
  • door_number: the index of the door, can be 1, 2 or 3
  • unique_id: a unique ID for the door of the format {DEVICE_ID}-{DOOR_NUMBER}
  • name: a user defined name for the door
  • status: the current state of the door, one of:
    • open: door is open
    • closed: door is closed
    • opening: door is in the process of being opened
    • closing: door is in the process of being closed
    • unknown: device has been recently setup or reset, requires a user to locally cycle the door open / closed to get the correct state
  • link_status: whether or not the door sensor is properly paired. Can be one of:
    • not_config: not yet configured, must use the app to pair
    • paired: configured, but not yet connected
    • connected: fully functional
  • battery_level: the current battery percentage (0 - 100) of the door sensor

Client

The AladdinConnectClient class provides the actual functionality of the API. It requires an Auth session to be configured (described above in the Authentication section). This class provides the following methods:

  • get_doors: Sync all the user's devices. This returns a list of GarageDoor instances as well as updating its own internal state
  • update_door: Sync a specific door and update the internal state
  • open_door: Issue an open command
  • open_door: Issue a close command
  • get_door_status: Return the current state of a door (this uses the internal state, it does not make a call to the API. To sync the state of a door, use update_door and then call this to get its status).
  • get_battery_status: Get the battery status of a door (this uses the internal state, it does not make a call to the API. To sync the state of a door, use update_door and then call this to get the battery status)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genie_partner_sdk-1.0.5.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genie_partner_sdk-1.0.5-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file genie_partner_sdk-1.0.5.tar.gz.

File metadata

  • Download URL: genie_partner_sdk-1.0.5.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for genie_partner_sdk-1.0.5.tar.gz
Algorithm Hash digest
SHA256 271b14682ed682ca5453d9e021ce063a316bfe51e30f6fb962570b5ed247e8b1
MD5 6a819cd54ccf59cd9ed5f97f7bde6a9a
BLAKE2b-256 6b638b1007b9d7dd63a0300add4c2b3fdeac44cda6b0a6e76b7c31b0ef1e5978

See more details on using hashes here.

File details

Details for the file genie_partner_sdk-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for genie_partner_sdk-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 df243a6fd60998caa59cb593aa25edfd796a78660b010757a67920b96a3a30bf
MD5 42d54f8cab5f2a8599ed0bb9afbf1c01
BLAKE2b-256 3e697b05bd23c53edf56a57f546cb704c3d99d97253478f58bd8e1d922516b10

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page