homebridge-plugins / homebridge-august

The Homebridge August plugin allows you to access your August/Yale Locks from HomeKit with Homebridge.
ISC License
36 stars 9 forks source link

Bug: Cannot find my 4th Gen lock #38

Closed consciousgaze closed 1 year ago

consciousgaze commented 1 year ago

Describe The Bug

The device cannot be added to the plugin with the error [August] Discover Devices: TypeError: Cannot convert undefined or null to object

To Reproduce

install home bridge on mac, install the plugin. Add the device with serial number, restart home bridge

Expected behavior

The device is found and i can control it with home bridge.

Relevant log output

FetchError: Status 401 (undefined): undefined
[August] Discover Devices: TypeError: Cannot convert undefined or null to object

Config for homebridge-august

{
    "bridge": {
        "name": "Homebridge 3926",
        "username": "********",
        "port": 51934,
        "pin": "841-**-***",
        "advertiser": "bonjour-hap"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "devices": [
                {
                    "type": "bot",
                    "name": "Hallway Light",
                    "address": "***********",
                    "autoTurnOffInPressMode": false
                }
            ],
            "name": "SwitchbotBluetoothPlatform",
            "_bridge": {
                "username": "**********",
                "port": 41029
            },
            "platform": "SwitchbotBluetoothPlatform"
        },
        {
            "name": "August",
            "credentials": {
                "augustId": "my-email@mail.com",
                "password": "mypassword",
                "installId": "1",
                "validateCode": "******",
                "isValidated": true,
                "notice": "Keep your tokens a secret!"
            },
            "options": {
                "devices": [
                    {
                        "lockId": "**********",
                        "configLockName": "Door",
                        "logging": "debug"
                    }
                ],
                "logging": "debug"
            },
            "platform": "August"
        }
    ]
}

Screenshots

No response

Device & Model

4th Gen Lock

Node.js Version

v19.3.0

NPM Version

9.2.0

Homebridge Version

v1.6.0

Homebridge August Plugin Version

v1.1.0

Homebridge Config UI X Plugin Version

No response

Operating System

macOS

donavanbecker commented 1 year ago

Can't you remove the device config? And just use the overall plugin debug mode?

I have a 4th Gen and it works fine.

ctaylora1231 commented 1 year ago

I’m having the same problem with my 3rd generation august lock with August connect

donavanbecker commented 1 year ago

I’m having the same problem with my 3rd generation august lock with August connect

Would need more info on your self, please open your own issue.

FickleLife commented 1 year ago

I have the same issue with a fresh install of Homebridge and a 4th Gen lock, I have set debugging on and in the console after a restart get:

[12/24/2022, 2:25:47 PM] Homebridge v1.6.0 (HAP v0.11.0) (Homebridge 8DAD) is running on port 51751.
FetchError: Status 401 (undefined): undefined
[12/24/2022, 2:25:47 PM] [August] Discover Devices: TypeError: Cannot convert undefined or null to object

The FetchError line is the only different between normal and debugging logging options.

My config looks like

{
    "bridge": {
        "name": "Homebridge 8DAD",
        "username": "xx",
        "port": 51751,
        "pin": "xx",
        "advertiser": "bonjour-hap"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "name": "August",
            "credentials": {
                "augustId": "xx",
                "password": "xx",
                "installId": "xx",
                "isValidated": true,
                "notice": "Keep your tokens a secret!"
            },
            "options": {
                "logging": "debug"
            },
            "platform": "August"
        }
    ]
}

I have revalidated a few times and get the same outcome.

OSUmac007 commented 1 year ago

I think I'm having the same issue. However I must disclose I'm new to Homebridge and to August. I just installed Homebridge and adding my new August Wi-Fi gen 4 lock has been my first attempt to use Homebridge. I installed the plugin and entered my account information per the instructions. From here, is it supposed to automatically find my lock on the network? If so, that isn't working. At least on the "Devices" tab of the plugin settings it shows "No Devices." I've also tried adding my lock information under "August Device Settings" and it also doesn't list it under the "Devices" tab nor is anything showing in the Home app on my iPhone. I'm assuming the "Lock ID" is the Serial Number of my lock. If not, where do I find the lock ID?

I'd appreciate any help to you can provide to get this working. I tried setting up the native HomeKit integration with August and it doesn't appear to work well. I assume it's because my Apple TV is to far from the lock so I was hoping Homebridge would work instead.

robert-burden commented 1 year ago

After playing around with the August API I think I found the cause of this issue. August is more then happy to respond with a valid but blank response body and even trigger the 2FA email when given a valid API key and a valid email or phone# to /session.

{ "installId": "0000000-0000-0000-0000-000000000000", "region": "", "applicationId": "", "userId": "", "vInstallId": false, "vPassword": false, "vEmail": false, "vPhone": false, "hasInstallId": true, "hasPassword": true, "hasEmail": true, "hasPhone": true, "isLockedOut": false, "oauth": {}, "apiKey": {}, "homeAccess": "", "captcha": "", "email": [], "phone": [], "expiresAt": "2023-05-02T19:21:57.294Z", "temporaryAccountCreationPasswordLink": "", "iat": 1672687317, "exp": 1683055317, "FirstName": "", "LastName": "" }

In my case I had typo when I entered my password. I think simply checking for a blank "userId" in the response from august should avoid folks getting to the const devices = await this.august.details(); call without being properly auth'd which throws the [August] Discover Devices: TypeError: Cannot convert undefined or null to object folks are seeing here.

Could also add error handling for receiving a 401 unauthorized from const devices = await this.august.details();

@donavanbecker happy to make a PR when I have some free time but thanks for all your work on this plugin :)

donavanbecker commented 1 year ago

Thanks @robert-burden, I will accept any PR. We can push it to beta, have people test and then push it out to a new version.

OSUmac007 commented 1 year ago

I've verified my August password is correct and it's still not finding my lock. Is there anything else I can try?

robert-burden commented 1 year ago

@OSUmac007 Your issue sounds different then the bug in this thread have you restarted home bridge after entering your login to add the 2FA key that august emails you? The 4 steps from the Configuration section here https://github.com/donavanbecker/homebridge-august/wiki

OSUmac007 commented 1 year ago

@robert-burden Yes, I followed the steps. I just noticed this in the Homebridge log:

[1/3/2023, 11:02:57 PM] [August] Discover Devices: TypeError: Cannot convert undefined or null to object

Until now I didn't know to look in the Homebridge log, I was looking at the config tab in Homebridge.

OSUmac007 commented 1 year ago

As I was scrolling through the log I noticed this message:

The plugin "homebridge-august" requires Node.js version of ^14.21.1 || ^16.18.1 || ^18.12.1 which does not satisfy the current Node.js version of v16.16.0. You may need to upgrade your installation of Node.js - see https://homebridge.io/w/JTKEF

Once I figured out how to update the Node.Js version to 16.18.1 and reconnected it to my August account it found my lock. Hooray! I thought I found the problem and everything was great, except now there's a new problem. I'm now getting a the following message scrolling in the log.

[1/4/2023, 1:58:34 AM] [August] Lock: East Door doorState: init, closed: false, open: false

Any ideas?

OSUmac007 commented 1 year ago

I looked at other reported issues and saw there is a thread listing the exact issue I listed above. It references the contact sensor which i setup when I installed the August app but did notice the August app had stopped indicating if the door was open or closed. I checked in the August app and sure enough, the contact sensor was no longer connected to my lock. All I can figure is it was cleared when I added the keypad for some reason. I reconnected the contact sensor and the scrolling error when away and the lock started functioning through the Apple Home app. YAY!

However, I do notice another issue that is reported in another thread. When the lock isn't locked or unlocked using the Home app, the status doesn't appear to update in the Home app. If the lock is manually locked or unlocked, done remotely through the August app or the Alexa skill the home app just shows the status basically as pending until you engage with it in the Home app again. This triggers a notification but the lock doesn't actually do anything because the state in the home app just updates to whatever the current state of the lock is. Something I found interesting, I asked Alexa to lock the door. The home app showed the status as "unlocking" since its last reported state was unlocked. I asked Siri what the status of the door was and it told me (correctly) it was locked even though the Home app continued to show "Unlocking."

Another issue I noticed in the log is it appears to report the opposite state of the lock. For example, when I lock the lock, the log reports "Door was Unlocked" and when I unlock it it reports "Door was Locked."

marksmith1701 commented 1 year ago

Any more movement on this issue..i'm in the same boat as well, with this error: Discover Devices: TypeError: Cannot convert undefined or null to object

paulcasavant commented 1 year ago

Same issue here with the 4th gen lock.

jlg89 commented 1 year ago

If you've tried everything and can't get this plugin to work, try enabling SmartThings integration (using the SmartThings app on your phone), which is officially supported by August, and then use the homebridge-smartthings plugin to control your locks.

donavanbecker commented 1 year ago

Everyone on this issue, can you try clearing your cache for the august plugin (uninstall plugin, restart, then reinstall plugin with latest beta, and setup.

Hulkkih commented 1 year ago

Also getting error: [August] Discover Devices 2: TypeError: Cannot convert undefined or null to object

And no Devices detected.

donavanbecker commented 1 year ago

v1.2.0 has been released