How to get started creating an integration?

I moved to a neighborhood that uses an annoying iPhone app to open our gate. I don’t like fiddling with my phone in the car if it can be helped, and I would like to automate it.

I wiresharked the app “Summit Control” but its all encrypted. I come from a network infrastructure background. I’m tech savvy but not development savvy, so not really sure where to go from here.

Is there only an iPhone app or a web app too?

I haven’t found a web page, but there does seem to be an android app. I hear they’re easier to decompile

They’re very easy except they may have obfuscated code so much harder to read.

Mitmproxy will be better than wireshark for what you’re looking for.

Thank you, I’ll check it out!

That gave much more help information. I can see the web URLs it is reaching out to along with the request data. Here is what I get when I trigger the gate to open

You could use RESTful Command - Home Assistant to mimic this command.
If that works the next question is how long is the access token valid.

Yeah… I was able to get that to work, but it stopped working an hour or so later. I guess I need to mimic the full login? What does a config flow look like for multiple calls like that?

There are a few routes I would consider:

Thank you for getting me pointed in the right directions. This ended up being easier than I expected I just didn’t know where to start. Using Node-Red I have it working pretty stably so far.

Can you share.some more details as to what you did? I have the same system here. Thanks!

Made the gate open with this:

rest_command:
  gate_open:
    url: https://summitcontrol.com/SnapApi/index.php/Actions/Open
    method: POST
    headers:
      authorization: !secret front_gate
      accept: "application/json, text/html"
      Client-Service: frontend-client
      Auth-Key: simplerestapi
      Accept-Encoding: gzip
      User-Agent: okhttp/3.12.1
    payload: '{"deviceCode":"xxxxxxxxxxxxxx","deviceID":"yyyyyyy","relay":"1"}'
    content_type: "application/json; charset=UTF-8"
    verify_ssl: true