tternes / homebridge-hubitat-makerapi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

homebridge-hubitat-makerapi

This is based off of @tonesto7 homebridge-hubitat-tonesto7

npm version

Current App version: 0.2.4


Change Log:

Hubitat App:

v0.1.0 - Ported app over from my tonesto7 version and added Websocket channel. Reworked Device Classification, HSM and modes currently not supported!!!
v0.1.2 - Fixed bug of not updating tiles in HomeKit after an hour expired
v0.1.7 - Fixed issuse with Siri, Show version number in logging output
v0.1.8 - Fixed issue with setting Thermostat temperature, make a device a Fan if it has the attributes switch and level and the device type contains the words "fan control"
v0.1.9 - Added ability to filter out attributes and capabilities
v0.1.10 - Fixed Hampton Bay Fan Component
v0.1.11 - v0.1.17 - Several attempts to mess with messy fans...
v0.2.0 - migrated to dynamic homebridge platform that removes the need of restarting homebridge after a device selection was changed in MakerAPI, configure homebridge to use Celsius, fixed fan tile on/off functionallity, ability to create switch tiles for modes and switching of modes, HSM integration, reduced load on Hubitat at plugin start by removing dependency on full detail API call, plugin startup speed improved, perform daily version check against NPMJS and print logging statement on newer versions available
v0.2.1 - v0.2.4 - Fixed attribute filtering for cached devices

Explanation:

Direct Updates

This method is nearly instant.

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

[2019-4-12 14:22:51] [Hubitat] connect to ws://192.168.10.169/eventsocket
[2019-4-12 14:22:51] Homebridge is running on port 51826.

Installation:

1. Hubitat MakerAPI App Configuration

  • Under the Hubitat Web Interface, Click on Apps in the left side menu.
  • Click on the button +Add Built-In App
  • Select Maker API from the list of apps
  • Enable Allow Access via Local IP Address
  • Tap Done and you are finished with the App configuration.
  • Go into the newly added Maker API app
  • Select the devices you would like to have available via HomeKit
  • At the bottom you see a few examples of access URLs. You will need two parts of this (App URL and Access Token)
  • Tap Done and you are finished with the App configuration.

2. Homebridge Plugin Installation:

  1. Install homebridge using: npm i -g homebridge (For Homebridge Install: Homebridge Instructions)
  2. Install Hubitat plugin using: npm i -g homebridge-hubitat-makerapi
  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": "Hubitat-MakerAPI",
   "name": "Hubitat",
   "app_url": "http://192.168.10.169/apps/api/YOUR_APPS_ID/",
   "access_token": "THIS-SHOULD-BE-YOUR-TOKEN",
   "polling_seconds": 300,
   "temperature_unit": "F",
   "mode_switches": true,
   "hsm": true,   
   "excluded_capabilities": {
       "HUBITAT-DEVICE-ID-1": [
          "Switch",
          "TemperatureMeasurement"
       ]
   },
   "excluded_attributes": {
       "HUBITAT-DEVICE-ID-1": [
          "power",
          "humidity"
       ]
   }
}
  • platform & name Required
    This information is used by homebridge to identify the plugin and should be the settings above.

  • app_url & access_token Required
    This is the base URL and access token for MakerAPI, check step 1 of the installation instructions on how to obtain the value Notice: The app_url in the example above may be different for you.

  • polling_seconds Optional
    Configures the how often (in seconds) the plugin should check if devices were removed or added from/to the selection in MakerAPI. Default is every 300 seconds. Almost no need to restart homebridge anymore! Name changes and changing a device driver still requires a restart.

  • excluded_capabilities Optional
    Defaults to None
    Specify the Hubitat device by ID and the associated capabilities you want the plugin to ignore
    This prevents a Hubitat device from creating unwanted or redundant HomeKit accessories

  • excluded_attributes Optional
    Defaults to None
    Specify the Hubitat device by ID and the associated attributes you want homebridge-hubitat-makerapi to ignore. This prevents a Hubitat device from creating unwanted or redundant HomeKit accessories

  • temperature_unit Optional
    Default to F
    Ability to configure between Celsius and Fahrenheit. Possible values: "F" or "C"

  • mode_switches Optional
    Default to false
    Create switches for modes and ability to switch modes by enabling such switches Possible values: true or false
    Requires HE fimrware 2.0.9 or newer

  • hsm Optional
    Default to false
    Integrates HSM into Home app and allow to arm/disarm the hsm and receive notifications on intrusions
    Requires HE firmware 2.0.9 or newer

Capability Filtering

The homebridge-hubitat-makerapi creates Homekit devices based on the attributes of devices. See *** Attribute Filtering *** below. To allow backwards compatibilty to tonesto7's plugin, the homebridge-hubitat-makerapi plugin still allows filtering by capability. Capabilities are going to be matched to Hubitat's listed capabilities at Driver Capability List and the associated attributes are going to be removed.

Attribute Filtering

The homebridge-hubitat-makerapi creates Homekit devices based on the attributes of devices. The following attributes are currently being handled:

Attribute HomeKit Devices
thermostatOperatingState Thermostat
switch and (level or hue or saturation) Light Bulb
switch Switch
motion Motion Sensor
presence Occupancy Sensor
lock Lock Mechanism
temperature (and not a thermostat) Temperature Sensor
contact Contact Sensor
door Garage Door Opener
smoke Smoke Sensor
carbonMonoxide Carbon Monoxide Sensor
carbonDioxideMeasurement Carbon Dioxide Sensor
water Leak Sensor
humidity Humidity Sensor
illuminance Light Sensor
battery Battery Service
position Window Covering
speed Fan Controller
valve Valve

The homebridge-hubitat-makerapi plugin does not discriminate! The plugin will create multiple devices in Homekit if a device has multiple of these attributes. Let's take a window shade as an example. A window shade might have the attributes "switch" and "position" and would create two Homekit devices, one as a switch and one as window covering. This might not be the desired behavior and you might want to only have one Homekit devices that sets the position of the shade. The plugin allows you to filter out the "switch" attribute and won't create a Homekit device for that attribute. To do so, you would add the following configuration to your config.json:


   "excluded_attributes": {
       "HUBITAT-DEVICE-ID": [
          "switch"
       ]
   }

About


Languages

Language:JavaScript 100.0%