Yale/August smart locks with WiFi support [3.3.0;3.5.0)

Thanks, added

I do not have such panel myself, but take a look at this postman collection and perform a request to list keypads. Capture logs and send to me and I’ll take a look. keymaker/postman/august.postman_collection.json at master · jmaxxz/keymaker · GitHub

I’ve added URL encoding of the password - feel free to test the lastest version.

I think the remaining maintainers of openHAB are doing a fantastic job, but I do not intend to add to the list of open PRs :slight_smile:

I’ll download Postman, learn how to use it, and then I’ll share the logs.

One thing I’ve experienced that I’ll need to debug is that the push notifications are unreliable. OH seems to receive some push notifications but most of the time I need to access the Yale Home app for the status to be refreshed and notified to OH.

To provide more background information, I use the keypad to lock and unlock the lock. The lock is almost instantly locked or unlocked; however, it can pass many minutes before something is notified to OH. I have seen cases where even the status isn’t updated after hours (even though the refreshInterval is set to 3600 secs.) and it is updated once I load the Yale Home app.

I’m not sure if the issues is the connection between the lock and the bridge, or from the bridge to OH. The bridge is less than 1 meter away from the lock, although there is a wall in between. I’ve placed the bridge in the second nearest plug, which is located a little more than 2 meters away but not within line of sight.
Whenever I have some time I’ll try to set some notifications and check where are things getting stuck.

It is a known problem that appeared earlier this autumn, see previous post in this thread Yale/August smart locks with WiFi support [3.3.0;3.5.0) - #73 by seime.

Yale has done something to keep us (the open source community) out. I’m tracking Yale Home - Global servers (via August integration) stop getting updates after a while · Issue #100798 · home-assistant/core · GitHub and Only sporadically receiving activity updates from locks · Issue #88 · bdraco/yalexs · GitHub hoping that someone will figure it out.

Please contribute in any way if you can! (maybe some of the other communities have figured how to bypass Yale’s blocking - anyone can google :slight_smile: )

1 Like

That sucks!

I’ve seen that they made a partnership with Homey and I wonder if someone from the highest ranks of OpenHAB can reach out to request an official partnership.
I believe it’s in Yale’s best interest to be more open if they want to compete with Nuki in the European market, but instead of trying to reverse engineer their solutions, we could officially knock on their door and try to collaborate.
It should also be in OpenHAB’s best interest as Yale is one of the biggest smart locks manufacturers, and it would give us good exposure (OpenHab Marketing is Lacking)

Please do reach out to them. Openhab is only community driven so I wouldnt expect anyone “official” to do it.

1 Like

There are no highest ranks of openHAB !

The community has no officials, don’t mix it up with the openHAB foundation, which is a non profit organisations, supporting the community.
We have seen some examples where companys asked a lot of money to become a partner.
Who is going to pay this ? The openHAB Foundation, for several many times explained reasons, cannot do this.

OK, call it the OpenHAB foundation. It’s could be more efficient when someone saying “Hi, I’m XXXX from the OpenHAB Foundation……” and provides some background and the reasons why we want to have an integration, than if we write “Hi, I’m an OpenHAB user and would like my platform to integrate with yours”.

Of course, we may omit companies asking for royalties to become partners, but there might be others that could be convinced to cooperate for a mutual benefit for free. In the end, the community developers do the integration and not them. I think it doesn’t hurt trying.

Nonetheless, I sent an email to Nuki and Yale, but I don’t expect a positive outcome, because in their eyes I’m not a decision maker.

1 Like

No, as you already checked the foundation website, you should have seen its constitution. This does not include anything in regard of development, therefore the foundation cannot do this.

@seime, I downloaded and installed the latest version but it can’t connect to the bridge.
I can see the following message, but I don’t know if it’s related

11/26/2023 23:12:58.455 [DEBUG] [internal.comm.PubNubMessageSubscriber] - Disposing pubNub
11/26/2023 23:12:58.457 [DEBUG] [internal.handler.AugustAccountHandler] - Initializing bridge
11/26/2023 23:12:58.458 [WARN ] [internal.handler.AugustAccountHandler] - Not setting API endpoint as it was already set to https://api.aaecosystem.com
11/26/2023 23:12:58.459 [DEBUG] [internal.handler.AugustAccountHandler] - No previous access token
11/26/2023 23:12:58.461 [DEBUG] [august.internal.logging.RequestLogger] - Request bridge1-1

I tried with all the validation codes I had received and even without any code. I had to restore the previous jar and that one connected immediately.

Are there any special steps to be followed when updating the binding?

I do not know which version you upgrade from, but if it was the previous there should not have been much. See commit log here; for every set of commits a new release is built given that unit tests pass.

The logs you submitted are too short to tell me anything, seems like they were cut right before the server response to the initial login request.

Regards

I upgraded from 4.1.0.202310080914 (working) to 4.1.0.202311251535 (not working).

Here is the full trace stack with the binding version 4.1.0.202311251535, with the same verification code that worked with the previous version of the binding (Note: I edited the email address, password, installation IDs, cookies, and tokens):

11/27/2023 17:52:35.871 [DEBUG] [internal.comm.PubNubMessageSubscriber] - Disposing pubNub
11/27/2023 17:52:35.872 [DEBUG] [internal.handler.AugustAccountHandler] - Initializing bridge
11/27/2023 17:52:35.874 [WARN ] [internal.handler.AugustAccountHandler] - Not setting API endpoint as it was already set to https://api.aaecosystem.com
11/27/2023 17:52:35.875 [DEBUG] [internal.handler.AugustAccountHandler] - No previous access token
11/27/2023 17:52:35.884 [DEBUG] [august.internal.logging.RequestLogger] - Request bridge1-1
bridge1-1 > POST https://api.aaecosystem.com/session
bridge1-1 > Accept-Encoding: gzip
bridge1-1 > User-Agent: August/2019.12.16.4708 CFNetwork/1121.2.2 Darwin/19.3.0
bridge1-1 > Accept: application/json
bridge1-1 > Content-Type: application/json
bridge1-1 > Accept-Version: 0.0.1
bridge1-1 > x-kease-api-key: d9984f29-07a6-816e-e1c9-44ec9d1be431
bridge1-1 > x-august-api-key: d9984f29-07a6-816e-e1c9-44ec9d1be431
bridge1-1 > x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOiIiLCJ2SW5zdGFsbElkIjpmYWxzZSwidlBhc3N3b3JkIjpmYWxzZSwidkVtYWlsIjpmYWxzZSwidlBob25lIjpmYWxzZSwiaGFzSW5zdGFsbElkIjp0cnVlLCJoYXNQYXNzd29yZCI6dHJ......
bridge1-1 > Content-Type: application/json
bridge1-1 > Host: api.aaecosystem.com
bridge1-1 > Content-Length: 304
bridge1-1 > Cookie: __cf_bm=fxbKIimpLQIELEf2CjziG7pMp2IMKEquzDaOrPSBIsw-1701103150-0-AXv6DkeahremqbHAcnRKUhRe0SeQZMjMjRQmUgBYY0zlzG+SA9oEsqixUY8r9hnvU=

{
  "identifier": "email:my@email.com",
  "password": "%23q.%21E2%3CsZKo%7CJV%7C%3Amzfo%3DsF9VC%3DjU%25%40eRiv%7EVjU%2BzNo2OC3BgnV%29-%29v%29%25LS%7BJVd%5B%5E86%2B%299Wu.F%24%5EgT08%2G4%3D%25T",
  "installId": "openHAB-b29181af-badf-45f3-9857-1b"
}
11/27/2023 17:52:36.010 [DEBUG] [august.internal.logging.RequestLogger] - Response bridge1-1
bridge1-1 < HTTP/1.1 200 OK
bridge1-1 < Date: Mon, 27 Nov 2023 16:52:35 GMT
bridge1-1 < Content-Type: application/json
bridge1-1 < Transfer-Encoding: chunked
bridge1-1 < Connection: keep-alive
bridge1-1 < Vary: origin,access-control-request-method,access-control-request-headers
bridge1-1 < Content-Security-Policy: default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
bridge1-1 < X-DNS-Prefetch-Control: off
bridge1-1 < Expect-CT: max-age=0
bridge1-1 < X-Frame-Options: SAMEORIGIN
bridge1-1 < Strict-Transport-Security: max-age=15552000; includeSubDomains
bridge1-1 < X-Download-Options: noopen
bridge1-1 < X-Content-Type-Options: nosniff
bridge1-1 < X-Permitted-Cross-Domain-Policies: none
bridge1-1 < Referrer-Policy: no-referrer
bridge1-1 < X-XSS-Protection: 0
bridge1-1 < api-version: 0.0.1
bridge1-1 < x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOiIiLCJ2SW5zdGFsbEEiOiIiLCJlbWFpbCI6WyJlbWFpbDpuZWxzb24uYXBvbnRlLmIreWFsZV9kZUBvdXRsb29rLmNvbSJdLCJwaG9uZSI6W10sImV4cGlyZXNBdCI6IjIwMjQtMDMtMjZUMTY6NTI6MzUuOTM0WiIsInRlbXBvcmFyeUFjY291bnRDcmVhdGlvblBhc3N3b3JkTGluayI6IiIsImlhdCI6MTcwMTEwMzk1NSwiZXhwIjoxNzExNDcxOTU1LCJzdGVwIjoiIiwiTGFzdE5hbWUiOiIiLCJGaXJzdE5hbWUiOiIifQ.NDCsntumW5Nks1OTbDhrUqrX_NHLXphmri0-OylMSbs
bridge1-1 < x-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOiIiLCJ2SW5zdGFsbElkIjpmYWxzZSwidlBhc3N3b3JkIjpmYWxzZSwidkVtYWlsIjpmYWxzZSwidlBob25lIjpmYWxzZSwiaGFzSW5zdGFsbElkIjp0cnVlLCJoYXNQYXNzd29yZDMtMjZUMTY6NTI6MzUuOTM0WiIsInRlbXBvcmFyeUFjY291bnRDcmVhdGlvblBhc3N3b3JkTGluayI6IiIsImlhdCI6MTcwMTEwMzk1NSwiZXhwIjoxNzExNDcxOTU1LCJzdGVwIjoiIiwiTGFzdE5hbWUiOiIiLCJGaXJzdE5hbWUiOiIifQ.NDCsntumW5Nks1OTbDhrUqrX_NHLXphmri0-OylMSbs
bridge1-1 < x-response-time: 56
bridge1-1 < CF-Cache-Status: DYNAMIC
bridge1-1 < Server: cloudflare
bridge1-1 < CF-RAY: 82cbe1ec5e08660a-AMS
bridge1-1 < Content-Encoding: gzip

{
  "installId": "openHAB-b29181af-badf-45f3-9857-1b15ea1e242b",
  "region": "",
  "applicationId": "",
  "userId": "",
  "vInstallId": false,
  "vPassword": false,
  "vEmail": false,
  "vPhone": false,
  "hasInstallId": true,
  "hasPassword": true,
  "hasEmail": true,
  "hasPhone": true,
  "isLockedOut": false,
  "oauth": null,
  "apiKey": null,
  "homeAccess": "",
  "captcha": "",
  "email": [
    "email:my@email.com"
  ],
  "phone": [],
  "expiresAt": "2024-03-26T16:52:35.934Z",
  "temporaryAccountCreationPasswordLink": "",
  "iat": 1701103955,
  "exp": 1711471955,
  "step": "",
  "LastName": "",
  "FirstName": ""
}
11/27/2023 17:52:36.013 [DEBUG] [internal.handler.AugustAccountHandler] - Storing new access token

and the one without any verification code:

11/27/2023 17:58:22.625 [DEBUG] [internal.comm.PubNubMessageSubscriber] - Disposing pubNub
11/27/2023 17:58:22.629 [DEBUG] [internal.handler.AugustAccountHandler] - Initializing bridge
11/27/2023 17:58:22.631 [WARN ] [internal.handler.AugustAccountHandler] - Not setting API endpoint as it was already set to https://api.aaecosystem.com
11/27/2023 17:58:22.633 [DEBUG] [internal.handler.AugustAccountHandler] - No previous access token
11/27/2023 17:58:22.635 [DEBUG] [august.internal.logging.RequestLogger] - Request bridge1-2
bridge1-2 > POST https://api.aaecosystem.com/session
bridge1-2 > Accept-Encoding: gzip
bridge1-2 > User-Agent: August/2019.12.16.4708 CFNetwork/1121.2.2 Darwin/19.3.0
bridge1-2 > Accept: application/json
bridge1-2 > Content-Type: application/json
bridge1-2 > Accept-Version: 0.0.1
bridge1-2 > x-kease-api-key: d9984f29-07a6-816e-e1c9-44ec9d1be431
bridge1-2 > x-august-api-key: d9984f29-07a6-816e-e1c9-44ec9d1be431
bridge1-2 > x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOiIiLCJ2SW5zdGFsbElkIjpmYWxzZSwidlBhc3N3b3JkIjpmYWxzZSwidkVtYWlsIjpmYWxzZSwidlBob25lIjpmYWxzZSwiaGFzSW5zdGFsbElkIjp0cnVlLCJoYXNQYXNzdMtMjZUMTY6NTI6MzUuOTM0WiIsInRlbXBvcmFyeUFjY291bnRDcmVhdGlvblBhc3N3b3JkTGluayI6IiIsImlhdCI6MTcwMTEwMzk1NSwiZXhwIjoxNzExNDcxOTU1LCJzdGVwIjoiIiwiTGFzdE5hbWUiOiIiLCJGaXJzdE5hbWUiOiIifQ.NDCsntumW5Nks1OTbDhrUqrX_NHLXphmri0-OylMSbs
bridge1-2 > Content-Type: application/json
bridge1-2 > Host: api.aaecosystem.com
bridge1-2 > Content-Length: 304
bridge1-2 > Cookie: __cf_bm=fxbKIimpLQIELEf2CjziG7pMp2IMKEquzDaOrPSBIsw-1701103150-0-AXv6DkeahremqbHAcnRKUhRe0SeQZMjMjRQmUgBYY0zlzG+SA9qixUY8r9hnvU=

{
  "identifier": "email:my@email.com",
  "password": "%23q.%21E2%3CsZKo%7CJV%7C%3Amzfo%3DsF9VC%3DjU%25%40eRiv%7EVjU%2BzNo2OC3BgnV%29-%29v%29%25LS%7BJVd%5B%5E86%2B%299Wu.F%24%5EgT08hG4%3D%25T",
  "installId": "openHAB-b2981af-badf-45f3-9857-1b12b"
}
11/27/2023 17:58:22.758 [DEBUG] [august.internal.logging.RequestLogger] - Response bridge1-2
bridge1-2 < HTTP/1.1 200 OK
bridge1-2 < Date: Mon, 27 Nov 2023 16:58:22 GMT
bridge1-2 < Content-Type: application/json
bridge1-2 < Transfer-Encoding: chunked
bridge1-2 < Connection: keep-alive
bridge1-2 < Vary: origin,access-control-request-method,access-control-request-headers
bridge1-2 < Content-Security-Policy: default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
bridge1-2 < X-DNS-Prefetch-Control: off
bridge1-2 < Expect-CT: max-age=0
bridge1-2 < X-Frame-Options: SAMEORIGIN
bridge1-2 < Strict-Transport-Security: max-age=15552000; includeSubDomains
bridge1-2 < X-Download-Options: noopen
bridge1-2 < X-Content-Type-Options: nosniff
bridge1-2 < X-Permitted-Cross-Domain-Policies: none
bridge1-2 < Referrer-Policy: no-referrer
bridge1-2 < X-XSS-Protection: 0
bridge1-2 < api-version: 0.0.1
bridge1-2 < x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOiIiLCJ2SW5zdGFsGEiOiIiLCJlbWFpbCI6WyJlbWFpbDpuZWxzb24uYXBvbnRlLmIreWFsZV9kZUBvdXRsb29rLmNvbSJdLCJwaG9uZSI6W10sImV4cGlyZXNBdCI6IjIwMjQtMDMtMjZUMTY6NTg6MjIuNjc0WiIsInRlbXBvcmFyeUFjY291bnRDcmVhdGlvblBhc3N3b3JkTGluayI6IiIsImlhdCI6MTcwMTEwNDMwMiwiZXhwIjoxNzExNDcyMzAyLCJzdGVwIjoiIiwiTGFzdE5hbWUiOiIiLCJGaXJzdE5hbWUiOiIifQ.VxpfpyX5xrVtlipCprFmrZ_r4ZLcpPujl7Qw2rdZbfs
bridge1-2 < x-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOiIiLCJ2SW5zdGFsbElkIjpmYWxzZSwidlBhc3N3b3JkIjpmYWxzZSwidkVtYWlsIjpmYWxzZSwidlBob25lIjpmYWxzZSwiaGFzSW5zdGFsbElkIjp0cnVlLCJoYXNQYXIjIwMjQMtMjZUMTY6NTg6MjIuNjc0WiIsInRlbXBvcmFyeUFjY291bnRDcmVhdGlvblBhc3N3b3JkTGluayI6IiIsImlhdCI6MTcwMTEwNDMwMiwiZXhwIjoxNzExNDcyMzAyLCJzdGVwIjoiIiwiTGFzdE5hbWUiOiIiLCJGaXJzdE5hbWUiOiIifQ.VxpfpyX5xrVtlipCprFmrZ_r4ZLcpPujl7Qw2rdZbfs
bridge1-2 < x-response-time: 60
bridge1-2 < CF-Cache-Status: DYNAMIC
bridge1-2 < Set-Cookie: __cf_bm=hYM_6Ptcxpe5Nh_Fy5G1bVCUkeVmsccAeLAN-0-AV9qtv2ut3nQeUwphMVbXknY2Q3L8R2UEIh0YGTp/rCfY5QGDJaDuAC7b14iVNFFg97C/DJb3Fk/NOCihYVu/VM=; path=/; expires=Mon, 27-Nov-23 17:28:22 GMT; domain=.aaecosystem.com; HttpOnly; Secure; SameSite=None
bridge1-2 < Server: cloudflare
bridge1-2 < CF-RAY: 82cbea638bb3660a-AMS
bridge1-2 < Content-Encoding: gzip

{
  "installId": "openHAB-b2981af-badf-45f3-9857-1b152b",
  "region": "",
  "applicationId": "",
  "userId": "",
  "vInstallId": false,
  "vPassword": false,
  "vEmail": false,
  "vPhone": false,
  "hasInstallId": true,
  "hasPassword": true,
  "hasEmail": true,
  "hasPhone": true,
  "isLockedOut": false,
  "oauth": null,
  "apiKey": null,
  "homeAccess": "",
  "captcha": "",
  "email": [
    "email:my@email.com"
  ],
  "phone": [],
  "expiresAt": "2024-03-26T16:58:22.674Z",
  "temporaryAccountCreationPasswordLink": "",
  "iat": 1701104302,
  "exp": 1711472302,
  "step": "",
  "LastName": "",
  "FirstName": ""
}
11/27/2023 17:58:22.761 [DEBUG] [internal.handler.AugustAccountHandler] - Storing new access token
11/27/2023 17:58:22.768 [DEBUG] [internal.handler.AugustAccountHandler] - Initializing bridge
11/27/2023 17:58:22.770 [WARN ] [internal.handler.AugustAccountHandler] - Not setting API endpoint as it was already set to https://api.aaecosystem.com
11/27/2023 17:58:22.771 [DEBUG] [internal.handler.AugustAccountHandler] - No previous access token
11/27/2023 17:58:22.773 [DEBUG] [august.internal.logging.RequestLogger] - Request bridge1-3

I noticed that after I restored the previous version of the binding, it worked even without the verification code, which makes me wonder if some cached data is interfering with the connection.

By the way, I realized that sometimes I don’t receive the push notifications from the Yale Home app on my phone, so I reported it to them. Let’s see if the whole issue that OH doesn’t get updated is just a software bug.

The binding stores the accesstoken and installId as well as the authentication state in json db storage.

Could possibly be that the password shouldn’t be URL encoded like in the last. I just reverted it, a new build should be available in a few minutes.

Good. If they are using AI to filter, make sure they get feedback that it isn’t working well. Heck, maybe even let them train their model to allow openhab :wink:

1 Like

I just downloaded the latest version (4.1.0.202311271732), and this time it worked like a charm.
The Unlatched state is also much appreciated!

I’ll keep you updated after the response from Yale and I will create a separate topic to handle the keypad, as soon as I learn how to use Postman.

Thanks a lot for your prompt support!

Hi, @seime.

I started to look into your suggestion to capture some logs with Postman.

I’m wondering if I should open a separate thread for that, or would you prefer to have it in this one?
I managed to get some data:

{
    "_id": "655f74e09954e22f3f",
    "serialNumber": "K2IC007",
    "appBrand": "yale",
    "appID": "aa-yale-app-ios-v01",
    "createdAt": "2023-11-23T15:50:56.597Z",
    "cypher": {
        "low": "7b0f98c",
        "high": "d9fee9"
    },
    "lockID": "B18C51817E998AB16963A230D9",
    "updatedAt": "2023-11-29T20:24:58.013Z",
    "currentFirmwareVersion": "2.27.0",
    "firmwareVersionHistory": {
        "2:27:0": {
            "firstNotified": "2023-11-23T15:50:58.672Z",
            "firstReported": "2023-11-23T15:52:33.008Z"
        },
        "1:75:4": {
            "firstReported": "2023-11-23T15:50:58.672Z"
        }
    },
    "battery": {},
    "batteryWarningState": "keypad_state_battery_warning_none",
    "batteryLevel": "Full",
    "batteryRaw": 189,
    "deviceBrand": "yale"
}

After setting the binding logging to TRACE level, I realized that you are already getting the data like this:

"keypad": {
    "_id": "655f74e09954e22f3f",
    "serialNumber": "K2IC007",
    "lockID": "B18C51817EA061053A230D9",
    "currentFirmwareVersion": "2.27.0",
    "battery": null,
    "batteryLevel": "Full",
    "batteryRaw": 189
  },

Could you also share the request you did?

Regards

Sure!

GET https://api.aaecosystem.com/keypads/655f74e099fc3facb3f: {
  "Network": {
    "addresses": {
      "local": {
        "address": "XX.XX.XX.XX",
        "family": "IPv4",
        "port": 49197
      },
      "remote": {
        "address": "XX.XX.73.30",
        "family": "IPv4",
        "port": 443
      }
    },
    "tls": {
      "reused": false,
      "authorized": true,
      "authorizationError": null,
      "cipher": {
        "name": "TLS_AES_128_GCM_SHA256",
        "standardName": "TLS_AES_128_GCM_SHA256",
        "version": "TLSv1/SSLv3"
      },
      "protocol": "TLSv1.3",
      "ephemeralKeyInfo": {},
      "peerCertificate": {
        "subject": {
          "country": "IE",
          "locality": "Dublin",
          "organization": "SECURITY & RISK COMMUNICATIONS LIMITED",
          "commonName": "*.aaecosystem.com",
          "alternativeNames": "DNS:*.aaecosystem.com"
        },
        "issuer": {
          "country": "US",
          "organization": "DigiCert Inc",
          "commonName": "DigiCert TLS RSA SHA256 2020 CA1"
        },
        "validFrom": "Feb  7 00:00:00 2023 GMT",
        "validTo": "Mar  9 23:59:59 2024 GMT",
        "fingerprint": "14:68:3D:92:1E:2D:3D:D7:A0:38:9:14:51:54:88:5A",
        "serialNumber": "0a290a16b178cbbb89935ae2"
      }
    }
  },
  "Request Headers": [
    {
      "key": "Content-Type",
      "value": "application/json"
    },
    {
      "id": 1,
      "key": "x-august-api-key",
      "value": "d9984f29-07a6-81ec9d1be431"
    },
    {
      "id": 3,
      "key": "x-august-access-token",
      "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVMTcwMTExMjI3MCwiZXhwIjoxNzExNjU2NzQ0LCJzdGVwIjoiIiwiTGFzdE5hbWUiOiJBcG9udGUiLCJGaXJzdE5hbWUiOiJOZWxzb24ifQ.yh2CR7v9hZUYFI0lN3TyyAsqtWMyqa4oB5QSR4Gr-EQ"
    },
    {
      "key": "User-Agent",
      "value": "PostmanRuntime/7.32.1",
      "system": true
    },
    {
      "key": "Accept",
      "value": "*/*",
      "system": true
    },
    {
      "key": "Cache-Control",
      "value": "no-cache",
      "system": true
    },
    {
      "key": "Postman-Token",
      "value": "6752eb47-c570-678974e08b",
      "system": true
    },
    {
      "key": "Host",
      "value": "api.aaecosystem.com",
      "system": true
    },
    {
      "key": "Accept-Encoding",
      "value": "gzip, deflate, br",
      "system": true
    },
    {
      "key": "Connection",
      "value": "keep-alive",
      "system": true
    }
  ],
  "Request Body": "\"\"",
  "Response Headers": [
    {
      "key": "Date",
      "value": "Thu, 30 Nov 2023 15:17:31 GMT"
    },
    {
      "key": "Content-Type",
      "value": "application/json"
    },
    {
      "key": "Transfer-Encoding",
      "value": "chunked"
    },
    {
      "key": "Connection",
      "value": "keep-alive"
    },
    {
      "key": "vary",
      "value": "origin,access-control-request-method,access-control-request-headers"
    },
    {
      "key": "Content-Security-Policy",
      "value": "default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"
    },
    {
      "key": "X-DNS-Prefetch-Control",
      "value": "off"
    },
    {
      "key": "Expect-CT",
      "value": "max-age=0"
    },
    {
      "key": "X-Frame-Options",
      "value": "SAMEORIGIN"
    },
    {
      "key": "Strict-Transport-Security",
      "value": "max-age=15552000; includeSubDomains"
    },
    {
      "key": "X-Download-Options",
      "value": "noopen"
    },
    {
      "key": "X-Content-Type-Options",
      "value": "nosniff"
    },
    {
      "key": "X-Permitted-Cross-Domain-Policies",
      "value": "none"
    },
    {
      "key": "Referrer-Policy",
      "value": "no-referrer"
    },
    {
      "key": "X-XSS-Protection",
      "value": "0"
    },
    {
      "key": "api-version",
      "value": "0.0.1"
    },
    {
      "key": "x-august-access-token",
      "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVIjIwMjExMjI3MCwiZXhwIjoxNzExNzI1NDUxLCJzdGVwIjoiIiwiTGFzdE5hbWUiOiJBcG9udGUiLCJGaXJzdE5hbWUiOiJOZWxzb24ifQ.c3j0cD9p523luewHgPXfzZnBgtrTsU_lo1P_V-kBLSk"
    },
    {
      "key": "x-access-token",
      "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05ODU3LTFiMTVlYTFlMjQyYiIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWQiOiIiLCJ1c2VySWQiOnRydWUsInZFbWFpbCI6ZmFsc2UsInZQaG9uZSI6ZmFscIjoiIiwiTGFzdE5hbWUiOiJBcG9udGUiLCJGaXJzdE5hbWUiOiJOZWxzb24ifQ.c3j0cD9p523luewHgPXfzZnBgtrTsU_lo1P_V-kBLSk"
    },
    {
      "key": "x-response-time",
      "value": "8"
    },
    {
      "key": "CF-Cache-Status",
      "value": "DYNAMIC"
    },
    {
      "key": "Set-Cookie",
      "value": "__cf_bm=PYQPJ6jEDqA.et9zl35+9KpyjCQg1kqJpTmrK/owKvyJdY5XXBzrmvLrMH9ECg=; path=/; expires=Thu, 30-Nov-23 15:47:31 GMT; domain=.aaecosystem.com; HttpOnly; Secure; SameSite=None"
    },
    {
      "key": "Server",
      "value": "cloudflare"
    },
    {
      "key": "CF-RAY",
      "value": "82e40ec0e7-FRA"
    },
    {
      "key": "Content-Encoding",
      "value": "gzip"
    }
  ],
  "Response Body": "{\"_id\":\"655f74e2fc3facb3f\",\"serialNumber\":\"K2ICW7\",\"appBrand\":\"yale\",\"appID\":\"aa-yale-app-ios-v01\",\"createdAt\":\"2023-11-23T15:50:56.597Z\",\"cypher\":{\"low\":\"7b0f918c\",\"high\":\"d90ffee9\"},\"lockID\":\"B18C51817E93A230D9\",\"updatedAt\":\"2023-11-30T10:36:53.840Z\",\"currentFirmwareVersion\":\"2.27.0\",\"firmwareVersionHistory\":{\"2:27:0\":{\"firstNotified\":\"2023-11-23T15:50:58.672Z\",\"firstReported\":\"2023-11-23T15:52:33.008Z\"},\"1:75:4\":{\"firstReported\":\"2023-11-23T15:50:58.672Z\"}},\"battery\":{},\"batteryWarningState\":\"keypad_state_battery_warning_none\",\"batteryLevel\":\"Full\",\"batteryRaw\":188,\"deviceBrand\":\"yale\"}"
}

I didn’t read your response properly :innocent: , but now I have added another channel on the lock called batteryKeypad. Also some core properties have been added on the thing if a keypad is installed.

Thanks for contributing!

New version published.

I’ve downloaded and installed the latest version of the binding ( Release Latest Build · seime/openhab-august · GitHub) but don’t see any new channels on the lock thing. Is there anything I need to do to make them appear?

I just installed the newest binding (4.1.0.202312020842).

Indeed, the UI doesn’t show the new channel:

I use file configuration and I manually set up the item and connected it to the channel (batteryKeypad), yet the value is NULL.

12/03/2023 23:09:03.068 [DEBUG] [internal.comm.PubNubMessageSubscriber] - Message PNMessageResult(super=MessageResult(super=BasePubSubResult(subscribedChannel=12f5ff51-8269-2ec692bed76f, actualChannel=null, channel=12f5ff51-826b8f5-2ec692bed76f, subscription=null, timetoken=17016484572, userMetadata=null, publisher=notification-server-9dc29de9-00019085-ebb5eb1aa9cb), message={"remoteEvent":1,"status":"kAugLockState_Unlocked","info":{"action":"status","startTime":"2023-12-03T22:09:01.234Z","context":{"transactionID":"YOB2NCuuJ","startDate":"2023-12-03T22:09:01.231Z","retryCount":1},"lockType":"lock_version_6","serialNumber":"L6W1JS","rssi":-66,"wlanRSSI":-52,"wlanSNR":-1,"duration":1711,"lockID":"B18C51817E9A061053A230D9","bridgeID":"655f732137d345a31d","serial":"C1RQ"},"doorState":"kAugDoorState_Closed","retryCount":1,"totalTime":1725,"resultsFromOperationCache":false})) 
12/03/2023 23:09:03.070 [DEBUG] [internal.comm.PubNubMessageSubscriber] - Received message on channel 12f5ff51-8269-4be2ec692bed76f: {"remoteEvent":1,"status":"kAugLockState_Unlocked","info":{"action":"status","startTime":"2023-12-03T22:09:01.234Z","context":{"transactionID":"YOBCuuJ","startDate":"2023-12-03T22:09:01.231Z","retryCount":1},"lockType":"lock_version_6","serialNumber":"L61JS","rssi":-66,"wlanRSSI":-52,"wlanSNR":-1,"duration":1711,"lockID":"B18C5181696A061053A230D9","bridgeID":"655f732677d345a31d","serial":"C8WRQ"},"doorState":"kAugDoorState_Closed","retryCount":1,"totalTime":1725,"resultsFromOperationCache":false}
12/03/2023 23:09:03.071 [INFO ] [st.internal.handler.AugustLockHandler] - B18C51817E998AB1696A061053A230D9 Received pubsub message {
  "remoteEvent": 1,
  "status": "kAugLockState_Unlocked",
  "info": {
    "action": "status",
    "startTime": "2023-12-03T22:09:01.234Z",
    "context": {
      "transactionID": "YOBCuuJ",
      "startDate": "2023-12-03T22:09:01.231Z",
      "retryCount": 1
    },
    "lockType": "lock_version_6",
    "serialNumber": "L6W01JS",
    "rssi": -66,
    "wlanRSSI": -52,
    "wlanSNR": -1,
    "duration": 1711,
    "lockID": "B18C51817E9961053A230D9",
    "bridgeID": "655f73213d345a31d",
    "serial": "C8W1RQ"
  },
  "doorState": "kAugDoorState_Closed",
  "retryCount": 1,
  "totalTime": 1725,
  "resultsFromOperationCache": false
}

A few minutes later I found this one:

12/03/2023 23:13:13.755 [INFO ] [st.internal.handler.AugustLockHandler] - B18C51061053A230D9 Polling for updated lock status
12/03/2023 23:13:13.845 [DEBUG] [august.internal.logging.RequestLogger] - Request bridge1-4
bridge1-4 > GET https://api.aaecosystem.com/locks/B18C51817E998A53A230D9
bridge1-4 > Accept-Encoding: gzip
bridge1-4 > User-Agent: August/2019.12.16.4708 CFNetwork/1121.2.2 Darwin/19.3.0
bridge1-4 > Accept: application/json
bridge1-4 > Content-Type: application/json
bridge1-4 > Accept-Version: 0.0.1
bridge1-4 > x-kease-api-key: d9984f29-074ec9d1be431
bridge1-4 > x-august-api-key: d9984f29-074ec9d1be431
bridge1-4 > x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMy05sInZFbWFpbCI6ZmFsc2UsInZQaG9uZSI6ZmFsc2UsImhhc0luc3RhbGxJZCI6dHJ1ZSwiaGFzUGFzWUsImhhc0VtYWlsIjp0cnVlLCJoYXNQaG9uZSI6dHJ1ZSwiaXNMb2NrZWRPdXQiOmZhbHNlLCJjYXB0Y2hhIjoiIiwiZW1haWwiOltdLCJwaG9uZSI6W10sImV4cGlyZXNBdCI6IjIwMjQtMDQtMDFUMjE6NTc6MjIuOTY4WiIsInRlbXBvcmFyeUFjY291bnRDcmVhdGlvblOiJBcG9udGUiLCJGaXJzdE5hbWUiOiJOZWxzb24ifQ.ZuRy9vjS34U-bd9afQtB-vp3mkYSRGqU6BvQKVKlfg8
bridge1-4 > Host: api.aaecosystem.com

12/03/2023 23:13:13.950 [DEBUG] [august.internal.logging.RequestLogger] - Response bridge1-4
bridge1-4 < HTTP/1.1 200 OK
bridge1-4 < Date: Sun, 03 Dec 2023 22:13:13 GMT
bridge1-4 < Content-Type: application/json
bridge1-4 < Transfer-Encoding: chunked
bridge1-4 < Connection: keep-alive
bridge1-4 < Vary: origin,access-control-request-method,access-control-request-headers
bridge1-4 < Content-Security-Policy: default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
bridge1-4 < X-DNS-Prefetch-Control: off
bridge1-4 < Expect-CT: max-age=0
bridge1-4 < X-Frame-Options: SAMEORIGIN
bridge1-4 < Strict-Transport-Security: max-age=15552000; includeSubDomains
bridge1-4 < X-Download-Options: noopen
bridge1-4 < X-Content-Type-Options: nosniff
bridge1-4 < X-Permitted-Cross-Domain-Policies: none
bridge1-4 < Referrer-Policy: no-referrer
bridge1-4 < X-XSS-Protection: 0
bridge1-4 < api-version: 0.0.1
bridge1-4 < x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMyUsInZFbWFpbCI6ZmFsc2UsInZQaG9uZSI6ZmFsc2UsImhhc0luc3RhbGxJZCI6dHJ1ZSwiaGFmFyeUFjY291bnRDcmVhdGlvblBhc3N3b3JkTGluayI6IiIsImlhdCI6MTcwMTYzOTc5MiwiZXhwIjoxNzEyMDA5NTkzLCJzdGVwIjoiIiwiTGFzdE5hbWUiOiJBcG9udGUiLCJGaXJzdE5hbWUiOiJOZWxzb24ifQ.04DxSoMFni9PqgPdhMYWo3wd7fPw1LkEseUj6PJMWts
bridge1-4 < x-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLWIyOTE4MWFmLWJhZGYtNDVmMyNrZWRPdXQiOmZhbHNlLCJjYXB0Y2hhIjoiIiwiZW1haWwiOltdLCJwaG9uZSI6W10sImV4cGlyZXNJkTGluayI6IiIsImlhdCI6MTcwMTYzOTc5MiwiZXhwIjoxNzEyMDA5NTkzLCJzdGVwIjoiIiwiTGFzdE5hbWUiOiJBcG9udGUiLCJGaXJzdE5hbWUiOiJOZWxzb24ifQ.04DxSoMFni9PqgPdhMYWo3wd7fPw1LkEseUj6PJMWts
bridge1-4 < x-response-time: 46
bridge1-4 < CF-Cache-Status: DYNAMIC
bridge1-4 < Set-Cookie: __cf_bm=zf2uDP1XggPGAgAJvMA8Y.pUHYgjovViGVzEy6JnGi0-1701641593-0-AVAzQB5999SjuiqioxQoByE74UWxueiOLMuzpZSdIP765TluJ9guSrZ+brk=; path=/; expires=Sun, 03-Dec-23 22:43:13 GMT; domain=.aaecosystem.com; HttpOnly; Secure; SameSite=None
bridge1-4 < Server: cloudflare
bridge1-4 < CF-RAY: 82ff27a78-FRA
bridge1-4 < Content-Encoding: gzip

{
  "LockName": "Front Door",
  "Type": 6,
  "Created": "2023-11-23T15:23:21.495Z",
  "Updated": "2023-11-23T15:23:21.495Z",
  "LockID": "B18C51817053A230D9",
  "HouseID": "3820f76a-835017be7470a",
  "HouseName": "Home",
  "Calibrated": false,
  "timeZone": "Europe/Berlin",
  "battery": 0.5882685731630772,
  "batteryInfo": {
    "level": 0.5882685731630772,
    "warningState": "lock_state_battery_warning_none",
    "infoUpdatedDate": "2023-12-03T21:58:06.999Z",
    "lastChangeDate": "2023-11-23T15:23:21.495Z",
    "lastChangeVoltage": 6200
  },
  "hostHardwareID": "a41cc303-618-82f502d79a3b",
  "supportsEntryCodes": true,
  "remoteOperateSecret": "7e809de1f3d0606f2fed6a92",
  "HomeKitSetupPayload": "X-HM:/OUX6ML",
  "skuNumber": "ASL6_1200/SI",
  "macAddress": "78:9CBF:3E",
  "SerialNumber": "L6W1JS",
  "LockStatus": {
    "status": "unlocked",
    "dateTime": "2023-12-03T22:09:53.837Z",
    "isLockStatusChanged": false,
    "valid": true,
    "doorState": "closed"
  },
  "currentFirmwareVersion": "3.0.34",
  "keypad": {
    "_id": "655f74e0995acb3f",
    "serialNumber": "K2I2W7",
    "lockID": "B18C51817E99230D9",
    "currentFirmwareVersion": "2.27.0",
    "battery": null,
    "batteryLevel": "Full",
    "batteryRaw": 185
  },
  "homeKitEnabled": false,
  "zWaveEnabled": false,
  "isGalileo": false,
  "Bridge": {
    "_id": "655f732145a31d",
    "mfgBridgeID": "C8W1RQ",
    "deviceModel": "august-connect-v2",
    "firmwareVersion": "1.2.0",
    "operative": true,
    "status": {
      "current": "online",
      "lastOnline": "2023-12-03T22:09:54.252Z",
      "updated": "2023-12-03T22:09:54.252Z",
      "lastOffline": "2023-11-27T04:17:16.676Z"
    },
    "locks": [
      {
        "_id": "64360bff8bb6c",
        "macAddress": "78:9C:8:3E",
        "LockID": "B18C51817E9981053A230D9"
      }
    ],
    "hyperBridge": true
  },
  "OfflineKeys": {
    "created": [],
    "loaded": [
      {
        "created": "2023-11-23T21:05:35.765Z",
        "key": "9bc04c5683d83c6f773aec",
        "slot": 2,
        "UserID": "4771e4e9-893e1e06fdc1a",
        "loaded": "2023-11-23T21:09:34.720Z"
      }
    ],
    "deleted": [],
    "loadedhk": [
      {
        "key": "e8c49278a58dc043124a64",
        "slot": 256,
        "UserID": "4771e4e9-8963e1e06fdc1a",
        "created": "2023-11-23T15:23:21.512Z",
        "loaded": "2023-11-23T15:24:20.271Z"
      }
    ]
  },
  "parametersToSet": null,
  "users": {
    "4771e4e9-89d0-4e1e06fdc1a": {
      "UserType": "superuser",
      "FirstName": "Nelson",
      "LastName": "Aponte",
      "notification": "both",
      "identifiers": [
        "phone:+49",
        "email:me@email.com"
      ],
      "imageInfo": {
        "original": {
          "width": 287,
          "height": 287,
          "format": "webp",
          "url": "https://d3osa7xy9vsc0q.cloudfront.net/user/cca90899-2c51-48e9-8f19-d19b6e8b80d2/e0df62d477b353d.webp",
          "secure_url": "https://d3osa7xy9vsc0q.cloudfront.net/user/cca90899-2c51-48e9-8f19-d19b6e8b80d2/e0df6477b353d.webp"
        },
        "thumbnail": {
          "width": 128,
          "height": 128,
          "format": "webp",
          "url": "https://d3osa7xy9vsc0q.cloudfront.net/user/cca90899-2c51-48e9-8f19-d19b6e8b80d2/dabbd-d354f2e50627.webp",
          "secure_url": "https://d3osa7xy9vsc0q.cloudfront.net/user/cca90899-2c51-48e9-8f19-d19b6e8b80d2/dfad-d354f2e50627.webp"
        }
      }
    }
  },
  "pubsubChannel": "12f5ff51-8269-ec692bed76f",
  "ruleHash": {},
  "cameras": [],
  "geofenceLimits": {
    "ios": {
      "debounceInterval": 90,
      "gpsAccuracyMultiplier": 2.5,
      "maximumGeofence": 5000,
      "minimumGeofence": 100,
      "minGPSAccuracyRequired": 80
    }
  },
  "accessSchedulesAllowed": true,
  "pins": {
    "created": [],
    "loaded": [
      {
        "_id": "655f75bfe07787b6",
        "type": "pin",
        "lockID": "B18C561053A230D9",
        "userID": "4771e4e9-89d0-3e1e06fdc1a",
        "state": "loaded",
        "pin": "XXXXX",
        "slot": 27,
        "accessType": "always",
        "callingUserID": "4771e4e9-89-63e1e06fdc1a",
        "createdAt": "2023-11-23T15:54:39.493Z",
        "updatedAt": "2023-11-23T15:54:43.204Z",
        "loadedDate": "2023-11-23T15:54:43.204Z",
        "firstName": "Nelson",
        "lastName": "Aponte",
        "unverified": false
      },
      {
        "_id": "655f76b2e554380c",
        "type": "pin",
        "lockID": "B18C51817E9061053A230D9",
        "userID": "9063e065-33aa-51765acde0e",
        "state": "loaded",
        "pin": "XXXX",
        "slot": 28,
        "accessType": "always",
        "callingUserID": "4771e4e9-89d0e1e06fdc1a",
        "createdAt": "2023-11-23T15:58:42.476Z",
        "updatedAt": "2023-11-23T15:58:43.028Z",
        "loadedDate": "2023-11-23T15:58:43.028Z",
        "firstName": "xxxx",
        "lastName": "xxxx",
        "unverified": true,
        "phone": "+49"
      }
    ],
    "disabled": [],
    "disabling": [],
    "enabling": [],
    "deleting": [],
    "updating": []
  }
}
12/03/2023 23:13:13.957 [DEBUG] [internal.handler.AugustAccountHandler] - Storing new access token
12/03/2023 23:13:13.961 [INFO ] [st.internal.handler.AugustLockHandler] - B18C518A061053A230D9 Updating door state channel with cloud state
12/03/2023 23:13:13.962 [INFO ] [st.internal.handler.AugustLockHandler] - B18C5061053A230D9 Updating lock state channel with cloud state

@mri_ice @nelson.aponte Hmm that is strange. It shows on my setup, but I have not used any of the new thing upgrade mechanisms - just added the channel. Try to (in given order from less intrusive to intrusive)

  • enable/disable bridge + thing
  • restart openhab
  • modify thing file

I have noticed that OH still does not always detect changes in thing files, but I have not had the time to try to pinpoint the issue.

Let me know if it doesn’t work out