Genie Aladdin garage door

For those of you like me who are tired of waiting on Genie to actually create integration with SmartThings or IFTTT, I have worked out a way to access the Aladdin Connect REST API and use WebCore to open\close my garage doors. I’ll do my best to explain, but can answer any questions you might have because it is most certainly not a straightforward process.

Prerequisites:

  1. If you don’t already have Postman, you will need to download it here: https://www.getpostman.com/downloads

  2. If you aren’t using WebCore, you will need to for my instructions to work and for many other reasons; it’s a necessity for any custom automations. It takes a few steps, but you can get started here:
    https://wiki.webcore.co/webCoRE#Installing_webCoRE

Aladdin REST API integration with WebCore:

  1. Do everything in this tutorial. The most important for controls is the last step, Set Door State, but you have to go through all the steps to get there: https://documenter.getpostman.com/view/5856894/RzZAjHxV#cfb1b456-2c2d-42a5-9b73-6053d87a3feb

  2. For me, all I wanted out of this integration at the moment is to have my respective garage doors open when either my wife or I arrive at home using phone presence (if this works well I’ll get presence sensors for each vehicle). So I created a WebCore Piston which fires on our phone presence sensors and executes the open command on the respective garage door upon arrival using the following settings which will be explained in further detail:

  1. I created local variables in WebCoRE for the AladdinURL and DoubleGarageOpen using values from the SetDoorState segment of Postman. If you’re not familiar with local variables, you can create them by clicking the X^2 button at the top left of the piston editor screen in WebCore. Neither of these are required to be variables so you can actually enter them into the respective field as values instead of variables. Regardless, here is how I got them
  • The URL is: https://genie.m2.exosite.com/onep:v1/rpc/process

  • The Request body l copied from Postman after testing the open\close functionality worked. Here is the Postman screenshot, but it is VERY IMPORTANT to note that you will need to escape every { and } character in WebCore by changing them to \{ and \} otherwise WebCore can’t process the string correctly. Here is a screenshot of the Postman body used to test the open\close functionality. As noted in the Postman tutorial desired_status of 0 is closed, desired status of 1 is open :

  • The Authorization Header can be copied directly from Postman by clicking on the Code link and selecting the data from Application Header to Authorization value. Here is the formatting:

AppVersion: 2.10.1
BundleName: com.geniecompany.AladdinConnect
User-Agent: Aladdin Connect Android v2.10.21’
BuildVersion: 131
Content-Type: application/json
Authorization: Bearer “YourBearerToken”

  • If you have more than one garage door, dps1 is garage door 1, dps2 is garage door 2 and dps3 is garage door 3. Only 3 are supported on any one Aladdin Connect hub. Since I have 2 garage doors I had to use a different Request body for each door. dps1 and dps2 being the only differences.
  1. Here is a screenshot of the WebCore Piston I created for reference with MyCik, MyClientId, and MyEmail address needing to be replaced by your entries from Postman:

A few things of note is that there is no need to validate the current status of the door since the Aladdin REST API already knows the current state and isn’t going to issue an open command on a currently open door. Also, if you are already using Aladdin Connect you really should be taking advantage of its timeout tools to close an open door within a certain amount of time.

Anyway, I hope this helps someone out there. I was quite excited that was able to get it to work for my needs since I have been looking for it for a long time. Also since I am not a developer by any means, I think a seasoned developer could take my rudimentary workaround and make a device handler that would provide much more functionality.

1 Like