If you like what I have done here and want to help I would recommend that you firstly look into supporting Homebridge. None of this could happen without them.
After you have done that if you feel like my work has been valuable to you I welcome your support through Paypal, Venmo or Cash App.
For more information about our version updates, please check our change log.
Use the settings UI in Homebridge Config UI X to configure your Wyze account, or manually add the following to the platforms section of your config file:
{
"platforms": [
{
"platform": "WyzeSmartHome",
"name": "Wyze",
"username": "YOUR_EMAIL",
"password": "YOUR_PASSWORD",
"keyId": "",
"apiKey": "",
"lowBatteryPercentage": 30,
"filterDeviceTypeList": ["OutdoorPlug","Plug"],
"filterByMacAddressList": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"garageDoorAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"spotLightAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"alarmAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"notificationAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"]}
]
}
Supported devices will be discovered and added to Homebridge automatically.
username
– App email addresspassword
– App passwordapiKey
– Navigate to this portalkeyId
– Navigate to this portal, and click Login to sign in to your Wyze account.
Note: Ensure that the login info you are using matches the info you use when logLevel into the Wyze app.
Once you’ve signed in, you’ll be automatically redirected back to the developer page.
Click Create an API key for your API key to be created.
Once created, you can click view to see the entire key.
You should receive an email that a new API key has been generated.
Once you have the API key, you can use it in your script to get the access token and refresh token.refreshInterval
– Defines how often the status of the devices will be polled in milliseconds (e.g., "refreshInterval": 60000
will check the status of your devices' status every 60 seconds). Defaults to 60 seconds.phoneId
– The phone id used by the Wyze App. This value is just found by intercepting your phone's traffic. If no phoneId
is specified, a default value will be used.logLevel
– If no logLevel
is specified, a default value will be used.apiLogEnabled
– If no apiLogEnabled
is specified, a default value will be used.authApiKey
– If no authApiKey
is specified, a default value will be used.appName
– If no appName
is specified, a default value will be used.appVer
– If no appVer
is specified, a default value will be used.appVersion
– If no appVersion
is specified, a default value will be used.userAgent
– If no userAgent
is specified, a default value will be used.sc
– If no sc
is specified, a default value will be used.sv
– If no sv
is specified, a default value will be used.persistPath
– If no persistPath
is specified, a default value will be used.refreshTokenTimerEnabled
– If no refreshTokenTimerEnabled
is specified, a default value will be used.lowBatteryPercentage
– Defines when to show devices with low battery (e.g., "lowBatteryPercentage": 30
). Defaults to 30%.Special thanks to the following projects for reference and inspiration:
Thanks to misenhower for the original Wyze Homebridge plugin, and thanks to contributors and other developers who were not merged for volunteering their time to help fix bugs and add support for more devices and features.
This plugin is an actively maintained fork of misenhower's original Wyze Homebridge Plugin project.