TOMP-WG / TOMP-API

Transport Operator to Mobility-as-a-Service Provider-API development for Mobility as a Service
Apache License 2.0
100 stars 41 forks source link

Trip execution: how to open a bluetooth device #100

Open edwinvandenbelt opened 4 years ago

edwinvandenbelt commented 4 years ago

As a MP we want to open any bluetooth device, using the information the TO provides. How? Every bluetooth lock unlock different. We should investigate the lock producers information about (un)locking the locks and have a look at the information that should be provided by the TO to securely (un)lock the device. /legs/{id}/events PREPARE should at least contain:

the result should contain:

"asset-access-data": {
      "start-time": 1546336800,
      "end-time": 1546336800,
      "meta": [
        {
          "unlock-code": "78923FE-342AC"
        }
      ]
    },
edwinvandenbelt commented 4 years ago

In the meta array there might be other information, like deep links to other apps.

"asset-access-data": {
      "start-time": 1546336800,
      "end-time": 1546336800,
      "meta": [
        {
          "deep-link": "myCustomScheme://myHost?key=category_parent_id\&value=92\&title=test"
        }
      ]
    },
edwinvandenbelt commented 4 years ago

I think we should provide a shortlist of prefered keys. QR, Azztec, unlock-code, deep-link, ...

jensfrandsen commented 4 years ago

As Bluetooth devices can be different, the API should deliver the information needed to identify the model along with information needed to unlock the lock. It is assumed that the MP knows the bluetooth model and how to unlock it using the information.

"asset-access-data": {
      "start-time": 1546336800,
      "end-time": 1546336800,
      "meta": [
      {

            "manufacturer_name": "LockCo Inc",
            "model": "Lockv1",
            "software_revision": "1.2.3",
            "key": "ba4a055bd586e23777e59d96fa213a724cfd0420ab27578373b6b...",
            "device_name": "Lockv1:AA:BB:CC:DD"
        }
      ]
    },

Matching the Bluetooth device name is a common technique when scanning for a bluetooth lock. There exists other methods, like f.x. embedding a unique blob of data in the bluetooth advertisement instead of using a unique device name, but I have not yet seen that for locks, so I suggest to keep it simple. The key can be quite long. In our case it is up to ~10kB. I'm not sure if the info should be encapsulated in a lock object or not. What's your opinion on that?

What is the purpose of the start-time and end-time timestamps?