Skip to content

Server Device

Colorado Four Wheeler edited this page Mar 17, 2018 · 17 revisions

Server Device

The HomeKit Bridge plugin is a very simple concept: you add a device in Indigo that publishes your Indigo devices and actions to HomeKit as an accessory. At the center of this functionality is the only device you can create in the HomeKit Bridge plugin and that is the HomeKit Accessory Server.


Server Options

When you first create a server you will first see the server options. You can switch to this view at any time by changing the Configure dropdown box and selecting Server Options.

There isn't much to this, and that is by design. The intent of this plugin, aside from connecting Indigo and HomeKit, is to make it as simple and as plug-and-play as possible.

In HomeKit [Thermostats are Fahrenheit] | [Thermostats are Celsius]

When you set up Thermostats or Heater / Cooler devices, HomeKit has an option that asks you if that device is displaying in Celsius or Fahrenheit and this configuration field controls which that is. If you have a device that needs to be converted, that is covered below when you have the option to convert your Fahrenheit devices to Celsius.

Accessory Prefix

The prefix is a name that will be added to the front of your HomeKit accessories. So if you were to give your Indigo object an alias of "Bedroom" and you have a prefix of "Cottage" then it will appear in HomeKit as "Cottage Bedroom".

This can be handy when you utilize multiple HomeKit Bridge server devices for HomeKit because it allows you to see, at a glance, which device belongs to which server. Given the above example you could give your security server a prefix of SEC so when you look at HomeKit you can easily identify the security devices.

This is not required and, generally, most people leave this blank.

Model Source and Firmware Source

These fields allow you to change what appears in your HomeKit app when you view the details of a device. You can select from any of the following options:

For model:

For firmware:

The options you can select are:

  • Indigo device model: If the Indigo device has this attribute it will be used for this value
  • Indigo device model & submodel: If the Indigo device has these attributes they will be used for this value in the form of Model: Submodel, i.e., "Hue Bulb: Color"
  • Indigo item name: If you want the Indigo name of your device to be in the details so that you can refer to it when you are using an alias
  • Indigo device type: The native Indigo device type, such as DimmerDevice or Relay
  • Indigo device version: If the Indigo device has this attribute it will be used for this value, if it does not then the version of Indigo will be used instead
  • Plugin name: If the Indigo device is from a plugin then the full plugin name will display here, i.e., EPS - Homebridge Buddy
  • Plugin device type: If the Indigo device is from a plugin then the plugins' device type will display here, i.e., Homebridge-Wrapper
  • Plugin version: If the Indigo type is from a plugin then the plugin version will display here, otherwise it will display the Indigo version

When changed the details will change:

Auto Start

If you are a refugee from Homebridge Buddy then you know that an HBB server could still be running even if HBB itself was disabled in Indigo. The reason was because in HBB the HomeKit integration was limited by what can be done with the Indigo API. Now that there is a dedicated API for HomeKit and it only runs when HomeKit Bridge is running in Indigo, your servers will only run when HomeKit Bridge is running. This checkbox lets you decide if you want this server to automatically start when you start the HomeKit Bridge plugin. The default is to have this setting enabled.

Why would you not enable this? One application would be if you are testing a particular server and need the others to not start while you do your test. Another could be, again, the security example above where the security items never start automatically and are only started when an Indigo trigger or HomeKit Automation occurs.


Advanced Server Parameters

Under normal circumstances you will likely not do anything in this section, but if you are an advanced user or if you are experiencing issues with HomeKit Bridge then you may want or need to change these values.

The values in this section directly impact the Homebridge service that links HomeKit to Indigo.

By default all settings are automatically created. HomeKit Bridge will verify that no other service on the Mac running Indigo is using the ports we want to use (and if a port is in use it will keep trying new ports until an available port is found) and that no other HomeKit Bridge Server nor Homebridge Buddy server is wanting to use a particular port or username.

Override Automatic Settings

When you check this box you are able to manually specify the three primary settings that enable communication with HomeKit. Any time you change these settings manually the service will automatically save and restart.

It is important to note that changing the user or port will likely result in your HomeKit app not being able to communicate with Indigo any longer, requiring you to remove the HomeKit server from your HomeKit app and re-adding it. Once this occurs it cannot be undone, if HomeKit loses connection because you changed these settings and then you change them back, HomeKit almost never recovers.

HB User

This is the user name that Homebridge will use when HomeKit wants to log into it. The reason why you are given the ability to edit this is because there are rare circumstances where you might remove your server from HomeKit and it no longer shows up as being available again. Changing this username, even by a single character, will prime HomeKit to be able to discover the server again. Don't ask why, it just works this way.

The value of this field must be HEX (0 through 9, A through F) with every two characters separated by a colon.

HB Port

This is the port that Homebridge will broadcast and listen on. It is, for all intents and purposes, a web server built into Homebridge and HomeKit knows how to find it.

Changing this will almost always sever your connection between HomeKit and Homebridge, you should only change it if there is no other choice.

HB Callback

When a change happens in Indigo we have to notify HomeKit of this change. Rather than wait for Homebridge to "phone home" to Indigo to see if anything changes, HomeKit Bridge instead will send a request to Homebridge using this port number to force Homebridge to update HomeKit with the new information.

The only reason this is editable is that there may be a rare circumstance when HomeKit Bridge didn't properly detect an available port and this needs to be changed manually. Changing this should not negatively impact your integration.


Including Your Indigo Devices & Action Groups

Before you can use HomeKit you must select what Indigo items (i.e., devices or action groups) will be passed to HomeKit. This differs greatly from Homebridge Buddy because there is no option to blanket include everything and choose to only exclude what you don't want. Now you select what will be controlled through HomeKit.

While this section looks quite simple there is actually quite a bit of things going on behind the scene. Just this portion of the server configuration took many hours of programming to get dialed in!

Option Screen: Use this field to change which screen to view on the server configuration

Sort Order: Change this field to change how the items you have added are sorted in the item list, you can view them either by the Indigo type they are (device/action) and then by name or you can sort the list by name so that your devices and actions are sorted together.

Action: These are the things you can do with the item list when you select one or more of the items on the list.

Adding A New Device or Action Group

By default when you open your server configuration the window will be in "add mode" and ready to accept a new device. If it's not there you simply need to change the Action field to Add a device or action group to get to this view.

Add to HomeKit

This is where you will select the filter for what Indigo items you want to view that you wish to add to HomeKit. This can be devices or actions but can also further be filtered to not show you any items that you have sent to HomeKit at all. Because you can have multiple HomeKit Accessory Servers you may want to have different devices on different servers and by using the Devices not shared from any server or Actions not shared from any server you can filter the list so that you are only seeing things that have not been shared with HomeKit at all.

Device | Action

Select the device or action that you want to share with HomeKit. If you were using Homebridge Buddy then those actions and devices will have a notation next to them so you can differentiate what you might have been using before.

Note that you can only add a device or action once to the same server, this is to say that if you have a lamp that you have already added to this HomeKit server you cannot add it again as a different name or as a different type of device. If you want to share the same item multiple times you will need to add it to a different server accessory device. For this reason you will not see anything already added to this server on the device or action list.

Once you select your device or action, more fields appear for you to configure your device or action:

HomeKit Name

This is the name you want your device to have when it's in HomeKit (and what you'll ask Siri to control). Consider that you may have a long descriptive name in Indigo called "Outside Front Porch Sconce LED Light" which works great, but trying to remember all of that could be challenging, not to mention it's a real mouthful to ask Siri to control. This field lets you give it a more friendly name, say "Porch", so you could ask Siri "Hey Siri, turn on the porch" and that seems much easier.

HomeKit Type

There are a number of different HomeKit devices available to use, not all of them will be compatible with your Indigo device. In most situations this is automatically detected for you but you can change it if you like. Just bear in mind that if you try to use a light switch as a thermostat you will likely get unpredictable results and errors, but if you use a light switch as a switch or outlet or lightbulb it will likely work fine.

Most HomeKit device types have been configured to work with devices that have an "On" state (most Indigo items) or "Sensor" state (most sensors) by default so you are probably safe to experiment with those kinds of Indigo devices.

Invert On/Off State

If your device has an "On" state then this option will be available to you and it allows you to reverse the state of your Indigo device as well as all actions sent to it when used with HomeKit. This can be helpful in situations where your device is opposite of what HomeKit expects. If you use a device with HomeKit that it says is On but you know is Off then try checking this box.

Temperature Value is Fahrenheit

HomeKit requires that all temperatures sent to HomeKit are sent in Celsius, and it will then convert it to Fahrenheit if you have setup your HomeKit app to do so. The problem is that most Indigo devices are not clear that they are using one measurement over the other so this checkbox allows you to specify that you are sending a Fahrenheit device to HomeKit and that it needs to be converted to Celsius first.

Add To HomeKit

When you have finished editing your device click this button and it will be added to the list of items shared with HomeKit.


Editing a Device or Action Group

To edit an item select Edit (Single Item) from the Actions field, and click Do Selected Action. This will transform the screen to edit mode.

Notice that when you are editing that the top portion of the form is locked out and you are given a warning that explains that you are editing a device. The reason for this is that edit effectively deletes the item from the list so you can edit it and save it back (therefor it works exactly the same as add does). When in edit mode you cannot save the server configuration until you click Add To HomeKit. If you try then you will be given this warning:

If you hit save again at this point then you will save all the changes you have made up to this point except for the item you are editing, that item will be removed from HomeKit. Otherwise finish your changes and Add To HomeKit first.


Managing The List

If you want to edit or delete any item on the list you simply need to highlight it, select the action you wish to take and click the Do Selected Action button. In order to edit you can only select one object, while deleting allows you to select as many objects as you wish to delete (with standard Mac controls such as CMD-A or CMD-Click available to you).

You can also select to Delete and Exclude an item from the list, which will remove it from the list and exclude it from all HomeKit Bridge dialogs for HomeKit devices. The list of excluded items can be managed via the plugin menu.

Another option you have is to Delete and Hide, which will remove the object from the selection but also remove it from the Action or Device list while this configuration dialog is open, allowing you to do things such as Fill and then hide things you don't want to have and then Fill again to add new items. Once you save or cancel the dialog that cache is flushed so the items will be available again on subsequent edits.

You will notice that when you reach the 99 object limit that most of the Include section is grayed out, this is so you cannot add any more objects. When you edit an object you are actually deleting it entirely and putting yourself back at the 98 object state so everything will no longer be gray, when you save it you'll get the message about the 99 object limit and it will save to the list, sorted in the manner you selected.

Once you have gotten the notice that you have reached the 99 device limit, you will be unable to add any more objects to the server.