This plugin adds support for Wyze Smart Home devices to Homebridge.
Funding

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.
Supported Devices
- Light Bulb (White, White V2)
- Light Strips (Light Strip, Light Strip Pro)
- Color Bulb (Mesh Light A19, BR30, A19 v2)
- Plug
- Outdoor Plug
- V1 & V2 Contact Sensor (Status / Battery)
- V1 & V2 Motion Sensor (Status / Battery)
- Temperature & Humidity Sensor (Status / Battery)
- Leak Sensor (Status / Battery)
- Lock (Battery / Door Status / Control)
- Lock Bolt v2 / Palm Lock (Battery / Door Status / Control)
- Camera v1, v2, v3, v3 Pro, v4 (on/off, Siren, Floodlight, Garage Door)
- Cam Pan, Pan v2, Pan v3 (on/off, Siren)
- Outdoor Cam, Outdoor Cam 2
- Wall Switch
- Home Monitoring System (HMS)
- Thermostat
Not Yet Supported
The following Wyze products are recognized by the plugin but have no HomeKit support yet:
- Cameras: Battery Cam Pro, Cam OG, Cam OG Telephoto 3x, Cam Floodlight Pro, Cam Pan Pro
- Doorbells: Video Doorbell, Video Doorbell Pro, Video Doorbell Pro 2
- Plugs: Outdoor Plug (main unit)
- Sensors: Chime Sensor, Room Sensor (thermostat companion), Keypad
- Locks: Lock Bolt (original BLE-only version)
- Sprinkler Controller
The following newer Wyze products have no model codes in the plugin yet:
- Cam Pan v4, Bulb Cam, Window Cam, Battery Video Doorbell, Duo Cam Doorbell
- Lamp Socket / Lamp Socket v2, Night Light, Surge Protector
The following Wyze products are not applicable to HomeKit:
- Robot Vacuum, Cordless Vacuum, Scales, Watch, Headphones, Air Purifier
For more information about our version updates, please check our change log.
Configuration
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": "",
"hms": false,
"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"],
"floodLightAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"sirenAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"notificationAccessory": ["MAC_ADDRESS_1","MAC_ADDRESS_2"],
"securityRefreshInterval": 10000
}
]
}
Supported devices will be discovered and added to Homebridge automatically.
Required Fields
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.
Optional Fields
hms– Set totrueto enable the Home Monitoring System (HMS) gateway accessory. Defaults tofalse.refreshInterval– Defines how often the status of the devices will be polled in milliseconds (e.g.,"refreshInterval": 60000will 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 nophoneIdis specified, a default value will be used.logLevel– If nologLevelis specified, a default value will be used.apiLogEnabled– If noapiLogEnabledis specified, a default value will be used.authApiKey– If noauthApiKeyis specified, a default value will be used.appName– If noappNameis specified, a default value will be used.appVer– If noappVeris specified, a default value will be used.appVersion– If noappVersionis specified, a default value will be used.userAgent– If nouserAgentis specified, a default value will be used.sc– If noscis specified, a default value will be used.sv– If nosvis specified, a default value will be used.persistPath– If nopersistPathis specified, a default value will be used.refreshTokenTimerEnabled– If norefreshTokenTimerEnabledis specified, a default value will be used.lowBatteryPercentage– Defines when to show devices with low battery (e.g.,"lowBatteryPercentage": 30). Defaults to 30%.securityRefreshInterval– How often (in milliseconds) to fast-poll lock devices (Wyze Lock, Lock Bolt v2, Palm Lock) for state changes independently of the main refresh cycle (e.g.,"securityRefreshInterval": 10000). Defaults to 10 seconds.pluginLoggingEnabled– Enables additional plugin-level debug logging, including lock fast-poll summaries. Defaults to false.
Other Info
Special thanks to the following projects for reference and inspiration:
- ha-wyzeapi, a Wyze integration for Home Assistant.
- wyze-node, a Node library for the Wyze API.
Thanks to misenhower for the original Wyze Homebridge plugin, and thanks to all contributors who have volunteered 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.
