Code Monkey home page Code Monkey logo

homebridge-smartthings-tonesto7's Introduction

homebridge-smartthings-tonesto7

This is based off of @pdlove homebridge-smartthings

npm version

Current SmartApp version: 1.5.4


Change Log:

SmartThing App:

v1.0.0 - Overhauled JSON API app from Paul's SmartThings version.

v1.0.1 - SmartHomeMonitor Support is set to Off by Default.

v1.1.3 - App Cleanups. Added lot's of features.

v1.1.4 - Removed Hampton Fan input (No longer Necessary with My modified Device Handler).

v1.1.5 - Disabled Irrigation for now until i can make it work more consistent.

v1.1.6 - Command Tweaks to prevent errors.

v1.1.8 - Fixes for Mode Devices, added Routine Devices.

v1.2.0 - Added ability to selectively remove temp from Contact/Water Sensors, and lot's of Code Cleanup.

v1.2.0 - Update SmartApp to support new icon.

v1.3.0 - The SmartThings and Hubitat Apps now share 99.9% of the same code. With the exception being the hubaction declarations and a static variable defining the platform type

v1.4.0 - Add support for multiple HSM locations, and other Bugfixes mainly related to Hubitat Side

v1.4.1 - SHM/HSM fixes and added support for triggering intrusion alerts under HomeKit

v1.5.0 - Added support for the service to send commands directly to the hub locally (SmartThings ONLY) v1.5.0 - Added toggle to control whether local commands are allowed (SmartThings ONLY) v1.5.0 - Added ability to trigger service restart when you exit the app (Will only restart on it's own if using process/service manager like PM2/systemd)

v1.5.1 - Bug fixes

v1.5.2 - Bug fixes

v1.5.3 - Added new inputs to allow filtering out specific capabilities from devices. I'm going to work on more issues very soon.

v1.5.4 - Fixes for Local Commands (#24) and a few other tweaks.

v1.5.5 - Added more support for blinds under SmartThings.

Homebridge Plugin:

v1.1.5 - Lot's of new capabilities supported in HomeKit

v1.1.7 - Updated the README

v1.1.8 - Cleanup of the Irrigation code

v1.1.9 - Forgot to remove some logging

v1.2.0 - Added in capability exclusion feature to match @pdlove plugin

v1.2.3 - Minor Cleanups

v1.3.0 - The SmartThings and Hubitat NPM package now share 99.9% the same code. All except 2 static variables defining the platform type

v1.3.1 - Bug fixes from code merge

v1.3.2 - More Bug fixes from code merge

v1.3.3 - Fixed Detection Issues in plugin

v1.4.0 - Fixed Hubitat support, working windows shades, allow multiple location SHM/HSM instances, lot's of cleanups and restructures. v1.4.0 - Warning: This will recreate a new Alarm device under Homekit. There is a possiblity it might also reset all of your Homekit Devices, rooms and options

v1.4.1 - SHM/HSM fixes and added support for triggering intrusion alerts under HomeKit

v1.5.0 - Added support for the service to send commands directly to the hub locally (SmartThings ONLY) v1.5.0 - Added toggle to control whether local commands are allowed (SmartThings ONLY) v1.5.0 - Added ability to trigger service restart when you exit the app (Will only restart on it's own if using process/service manager like PM2/systemd)

v1.5.1 - Bug fixes

v1.5.2 - Bug fixes

v1.5.3 - Fixes for Open/Close | Lock/Unlock on iOS 12.1.2

v1.5.5 - Fix for broken lock command

v1.5.6 - Merged changes from @torandreroland for thermostatMode fixes, and from @shnhrrsn button mode fixes. Updated the request-promise package to v4.2.4

v1.5.7 - Merged Thermostat fixes from @torandreroland, fixed temperatures to support negative temps, and a few other tweaks.

v1.5.8 - Merged some fixes in from @prayasb and @nberardi.


This version is not compatible with prior versions of homebridge-smartthings Smartapp.

Direct Updates from SmartThings

  • This method is nearly instant.
  • This option allows the hub to send updates directly to your homebridge-smartthings installation.
  • The hub must be able to send an http packet to your device so make sure to allow incoming traffic on the applicable port.
  • The port used for this can be configured by the "direct_port" setting and defaults to 8000.
  • The program will attempt to determine your IP address automatically, but that can be overridden by "direct_ip" which is useful if you have multiple addresses.
  • As a note, the hub isn't actual doing any of the processing so if you lose Internet, updates will stop. I'm told it "doesn't currently" support it, so there is hope.

When properly setup, you should see something like this in your Homebridge startup immediately after the PIN:

[1/29/2017, 8:28:45 AM] Homebridge is running on port 51826.
[1/29/2017, 8:28:45 AM] [SmartThings] Direct Connect Is Listening On 10.0.0.70:8000
[1/29/2017, 8:28:45 AM] [SmartThings] SmartThings Hub Communication Established

Installation

Installation comes in two parts:

1. SmartApp Installation

Note New SmartThings users: You must first enable github integration. (If you use github for work you will probably want to set up a new account as it will request access to your private repos). Only after enabling integration will you see the settings button

  • Click on My SmartApps

  • Click on Settings and Add the New repository:

    • Owner: tonesto7
    • Name: homebridge-smartthings-tonesto7
    • Branch: master
    • Click Save.
  • Click Update From Repo

    • Select homebridge-smartthings-tonesto7
  • You should have homebridge-smartthings.groovy in the New section.

    • Check the Box next to homebridge-smartthings.groovy
    • Check Publish at the bottom
    • Click Execute Update.
  • Click on the Homebridge-SmartThings app in the list:

    • Click App Settings
    • Scroll down to the OAuth section and click Enable OAuth in Smartapp
    • Click Update at the bottom.

2. SmartApp Configuration

  • In the SmartThings Mobile App, goto Marketplace and select SmartApps.

  • At the bottom of the list, select My Apps

  • Select Homebridge (SmartThings) from the choices on thelist.

  • Configuring the App:

    There are 4 inputs at the top that can be used to force a device to be discovered as a specific type in HomeKit

    Any other devices being added just Tap on the input next to an appropriate device group and then select each device you would like to use (The same devices can be in any of the Sensor, Switch, Other inputs)

    • There are several categories because of the way SmartThings assigns capabilities. So you might not see your device in one, but might in another.
    • Almost all devices contain the Refresh capability and are under the "Other Devices" group
    • Some sensors don't have a refresh and are under the "Sensor Devices" group.
    • Some devices, mainly Virtual Switches, only have the Switch Capability and are in the "Switch Devices".

    Selecting the same device in multiple categories it will only be shown once in HomeKit, so you can safely check them all in all groups

  • Tap Done

  • Tap Done You are finished with the App configuration!


3. Homebridge Plugin Installation:

  1. Install homebridge using: npm i -g homebridge (For Homebridge Install: Homebridge Instructions)
  2. Install SmartThings plugin using: npm i -g homebridge-smartthings-tonesto7
  3. Update your configuration file. See sample config.json snippet below.

Config.json Settings Example

Example of all settings. Not all settings are required. Read the breakdown below

{
   "platform": "SmartThings",
   "name": "SmartThings",
   "app_url": "https://graph.api.smartthings.com:443/api/smartapps/installations/",
   "app_id": "YOUR_APPS_ID",
   "access_token": "THIS-SHOULD-BE-YOUR-TOKEN",
   "update_method": "direct",
   "direct_ip": "10.0.0.70",
   "direct_port": 8000,
   "excluded_capabilities": {
       "SMARTTHINGS-DEVICE-ID-1": [
          "Switch",
          "Temperature Measurement"
       ]
   }
}
  • platform & name Required
    This information is used by homebridge to identify the plugin and should be the settings above.

  • app_url & access_token Required
    To get this information, open Homebridge (SmartThings) SmartApp in your SmartThings Classic Mobile App, and tap on "View Configuration Data for Homebridge"
    Notice: The app_url in the example above may be different for you.

  • direct_ip Optional
    Defaults to first available IP on your computer
    Most installations won't need this, but if for any reason it can't identify your ip address correctly, use this setting to force the IP presented to SmartThings for the hub to send to.

  • direct_port Optional
    Defaults to 8000
    This is the port that homebridge-smartthings plugin will listen on for traffic from your hub. Make sure your firewall allows incoming traffic on this port from your hub's IP address.

  • local_commands Optional
    This will allow the service to send homekit commands to hub locally (SmartThings only)

  • excluded_capabilities Optional
    Defaults to None
    Specify the SmartThings device by ID and the associated capabilities you want homebridge-smartthings-tonesto7 to ignore
    This prevents a SmartThings device creating unwanted or redundant HomeKit accessories

homebridge-smartthings-tonesto7's People

Contributors

shnhrrsn avatar tonesto7 avatar torandreroland avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.