This is a smartthings plugin for Homebridge. This requires no access to the legacy smartthings app, and doesn't require a lot of work to install. It will discover devices automatically as well as unregister devices that are removed from your smarttthings network. This is currently under development.
- Fixed discovery of devices issue where some fans were set up as lights
- Handle multi component devices that don't have a "main" component supported by plugin
- Handle shades that don't support shadelevel but do support switchlevel. FIXED
- Handle shades that don't support shadelevel but do support switchlevel
- Support for optional capaiblities declaration
- AirConditionerService adds fan oscillation switch and optional mode switch only if supported by device's capabilitites
- Support for air conditioners optional modes (i.e., Sleep, Speed, WindFree, WindFreeSleep)
- Stop logging warning if battery is low
- Issue with thermostat service making homebridge crash. If we can't get a status from the thermostat we will return zero for temp to avoid crash.
- Handle invalid response to "getLevel" call in lightservice. There is a Zooz driver that does not return a valid response causing homebridge to fail.
- Updated dependencies
- Added air conditioner support thanks to lucaponzanelli
- Fixed window shade support (wasn't showing up)
Fixed window shade support including webhook support for the window shade service. Added polling paramter for window shades, 'PollWindowShadesSeconds'
- Removed the check for the apostrophe as it caused more issues than solved. With this change, if you try to add a device that has a label like "bill's iphone" it may not get excluded, but it solves other issues.
- Update dependencies
- Issue in some cases where a device label is a number or some non-string type, there would be a failure when setting up the devices. This occured after release 1.5.2.
- Handle missing device label (name)
- If smartthings returns an invalid status value on a sensor device, it will retry 5 times before removing the service.
Corrected status handling for mult-component devices.
- Fixed double push issue on buttons
- Support for multi-component devices
- Support for buttons - requires subscription to the webhook service. See the announcement here.
IMPORTANT: Multi-button devices get loaded into the home app with the button numbers not always in the order that they are on the device. Also, some devices, like the Aeotec Fob Remote will show 1 more button than there are on the device. This is because the device reports a main component with a button along with one component for each button. You will find that in this case, one of the buttons in the Home app acts as a master, so it will fire for any of the other buttons.
In order to see which buttons are which, you can observe the animation in the Home app as you press buttons so you know how to set up actions per button.
- Ignore device names with a single quote will not match with the device name coming in from SmartThings due to character code conversion. This has been fixed.
SmartThings Webhook support is now supported and open to all. See the announcement here.
Support for SmartThings webhook to support real-time update of device state changes. Support for webhooks is in closed beta at the moment, but will be made available soon.
- If a sensor service doesn't return a valid value, it will be removed from the device.
- Fixed some state update management in the Thermostat service.
- Fixed some bugs with thermostat support. Note that this one is a tough one to test with one thermostat. Looking for ongoing feedback from everyone.
- Added support for thermostats.
- Will wait to request status update from Smartthings if a request is waiting. In some instances more than one request come around the same time resulting in redundant requests sent to smartthings while others are in progress.
- Added back support for Window Shades that support the "WindowShadeLevel" capability.
- Fixed issue with some lights could not handle setting hue and saturation individually
- Improvements to timing issued resulting in switch status flip flopping after a command is sent.
- Fixed an issue where a valve wasn't detected unless it has a switch capability
- Fixed issue where switches and other items momentarily switch back to previous state when activated.
- Support for certain multi-component accessories
- Fixed fan support for fans that don't support SwitchLevel
- Support for CO detector
- Support for Valves (as irrigation valves)
- Smoke detector support
- The plugin is now verfied!
- Added funding link in homebridge
- Error messages when light sensor returns 0.
- Error caused Homebridge to quit during startup
- Error when locks or doors were offline cuases Homebridge to fail.
Will ignore (warning will be shown) if a battery is returning null. Won't convert temp to celcius if it is being reported to in celcius.
Support for Leak (water) detectors.
Rearchitecte plugin to handle multi service devices. Changing the way services are added based on capabilities reported in Smartthings rather than the category, which may not be accurate and is an optional field.
There was a timing issue that could cause a crash upon startup.
If a lock or door is controlled from Smartthings, the state in HomeKit would not update properly.
Delay in updating state right after a command was sent.
Added contect sensor support. Also will stop polling after 5 failures in a row, but restore after 10 minutes to try and reconnect to a failed accessory.
Lights now update dynamically as well.
Switches are polled now, so updates will flow into home kit. Also some refactoring of code to make more efficient when polling devices with several associated characterstics / services.
Support for PresenceSensor. These sensors are mapped to Home Kit Occupancy Sensor.
If door lock is offline, it caused Homebridge to exit
If motion detector was offline, it resulted in an error that resulted in Homebridge exiting.
Motion detector was always returning motion after 1.3.1
If motion sensor becomes unresponsive, the plugin would cause Smartthings to restart. This has been fixed.
Support for motion sensors
Fixed type error
If a Smartthings switch is found, and it supports the 'switchLevel' capability, then treat it as a lightbulb.
Added control of lights that support color control and/or color temperature.
Fixed another lock state issue.
Fixed lock state issues.
Thanks to neegool, can now ignore devices. To do this, add "IgnoreDevices" to your config file, which is an array of strings.
Added continuous polling for garage doors.
When polling lock, update target state.
Will poll locks to continuously update. Added a new optional config value "PollLocksSeconds" to control how frequently we poll. Default is 10 seconds. A value of 0 will result in no polling.
Added support for Window Shades that support the Window Shade Level command.
Added support for locks.
When getting an unexpected state from a garage door, throw a communications exception.
Added the ability to specify locations to ignore. The locations are the names you set in the Smartthings App. See "How to configure" below to learn how to specify locations to ignore.
Config UI now works.
Currently, the following have been implemented, because that is what I have access to in my home. Supports: Switch, Lightbulb, Fan, Garage Door Opener, Locks and Window Shades that support the WindowShadeLevel command.
You will need to create a Smartthings personal access token. You can do that here: https://account.smartthings.com/tokens. Create a
new token and make sure it has all of the device permissions, and if you want to use the Ignore Locations feature, you must include the List Locations (r:locations) permission. Save your token and add it to the configuration.
By configuring the WebhookToken, the plugin will attempt to connect to the SmartThings
Webhook Server that we're running and wait for events. This will result in
the plugin ignoring the poll settings as polling will not occur.
This section should be added to the platforms array in your config.json file, but you can now edit using the config UI:
{ "Name": "Smartthings Plugin", "AccessToken": "INSERT YOUR PERSONAL ACCESS TOKEN HERE", "WebhookToken: "INSERT WEBHOOK TOKEN HERE", "BaseURL": "https://api.smartthings.com/v1", "GarageDoorMaxPoll": 40, "PollLocksSeconds": 15, "PollDoorsSeconds": 15, "PollSensorsSeconds": 5, "PollSwitchesAndLightsSeconds": 15 "platform": "HomeBridgeSmartThings", "IgnoreLocations": [ "My location 1", "My location 2" ], "IgnoreDevices": [ "Device to ignore 1", "Device to ignore 2" ] }
The "IgnoreLocations" array may be omitted. This array can be used to specify location names, as confogured in the Smartthings app. All of the devices in these locations will be ignored and not added to Homebridge. If you add any IgnoreLocations after you had previously started Homebridge with this plugin, those devices will be removed. You may remove this section to have them added back in. IMPORTANT: your API token must have the "r:locations" permission in order to ignore locations.
You need to restart Homebridge when you make changes to this file.