179 lines
5.2 KiB
Markdown
179 lines
5.2 KiB
Markdown
|
# homebridge-harmony-control
|
||
|
|
||
|
A convenient way to control your home through homekit utilizing one or many Logitech Harmony remotes.
|
||
|
|
||
|
## Description
|
||
|
|
||
|
This plugin not only allows for control of your one or many entertainment consoles, but it also supports use of a more complicated matrix switch if applicable. In addition, this plugin can expose any entertainment devices directly to homekit via stateless or stateful switch.
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
1. Clone the repository by running `git clone ssh://git@thebword.ddns.net:3122/watsonb8/homebridge-harmony-control.git`
|
||
|
2. Run `npm install` to install required modules
|
||
|
3. Run `npm run build` to build the module
|
||
|
4. Run `npm link` or install globally to link this instance to your global homebridge instance
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
```
|
||
|
{
|
||
|
"platform": "HarmonyHubMatrix",
|
||
|
"EmitDevicesOnStartup": false,
|
||
|
"Hubs": [
|
||
|
{
|
||
|
"Name": "LivingRoomHub",
|
||
|
"Ip": "exampleOne.com"
|
||
|
},
|
||
|
{
|
||
|
"Name": "RackHub",
|
||
|
"Ip": "exampleTwo.com"
|
||
|
}
|
||
|
],
|
||
|
"Devices": [
|
||
|
{
|
||
|
"Name": "LG TV",
|
||
|
"Hub": "LivingRoomHub"
|
||
|
},
|
||
|
{
|
||
|
"Name": "JVC AV Receiver",
|
||
|
"Hub": "LivingRoomHub"
|
||
|
},
|
||
|
{
|
||
|
"Name": "Microsoft Xbox One",
|
||
|
"Hub": "RackHub"
|
||
|
},
|
||
|
{
|
||
|
"Name": "Apple TV Gen 4",
|
||
|
"Hub": "RackHub"
|
||
|
},
|
||
|
{
|
||
|
"Name": "Gefen AV Switch",
|
||
|
"Hub": "RackHub"
|
||
|
}
|
||
|
],
|
||
|
"Matrix": {
|
||
|
"DeviceName": "Gefen AV Switch",
|
||
|
"Inputs": [
|
||
|
{
|
||
|
"InputNumber": "1",
|
||
|
"InputDevice": "Microsoft Xbox One"
|
||
|
},
|
||
|
{
|
||
|
"InputNumber": "5",
|
||
|
"InputDevice": "Apple TV Gen 4"
|
||
|
},
|
||
|
],
|
||
|
"Outputs": [
|
||
|
{
|
||
|
"OutputLetter": "B",
|
||
|
"OutputDevice": "LG TV"
|
||
|
},
|
||
|
]
|
||
|
},
|
||
|
"ControlUnits": [
|
||
|
{
|
||
|
"DisplayName": "Living Room",
|
||
|
"Activities": [
|
||
|
{
|
||
|
"DisplayName": "Xbox One",
|
||
|
"DeviceSetupList": [
|
||
|
{
|
||
|
"DeviceName": "Microsoft Xbox One",
|
||
|
"Input": []
|
||
|
},
|
||
|
{
|
||
|
"DeviceName": "LG TV",
|
||
|
"Input": "Hdmi1"
|
||
|
},
|
||
|
{
|
||
|
"DeviceName": "JVC AV Receiver",
|
||
|
"Input": "Dvd"
|
||
|
}
|
||
|
],
|
||
|
"VolumeDevice": "JVC AV Receiver",
|
||
|
"ControlDevice": "Microsoft Xbox One",
|
||
|
"OutputDevice": "LG TV",
|
||
|
"UseMatrix": true
|
||
|
},
|
||
|
{
|
||
|
"DisplayName": "Apple TV",
|
||
|
"DeviceSetupList": [
|
||
|
{
|
||
|
"DeviceName": "Apple TV Gen 4",
|
||
|
"Input": []
|
||
|
},
|
||
|
{
|
||
|
"DeviceName": "LG TV",
|
||
|
"Input": "Hdmi1"
|
||
|
},
|
||
|
{
|
||
|
"DeviceName": "JVC AV Receiver",
|
||
|
"Input": "Dvd"
|
||
|
}
|
||
|
],
|
||
|
"VolumeDevice": "JVC AV Receiver",
|
||
|
"ControlDevice": "Apple TV Gen 4",
|
||
|
"OutputDevice": "LG TV",
|
||
|
"UseMatrix": true
|
||
|
},
|
||
|
]
|
||
|
},
|
||
|
],
|
||
|
"DeviceButtons": [
|
||
|
{
|
||
|
"DeviceName": "JVC AV Receiver",
|
||
|
"ButtonName": "SurroundToggle",
|
||
|
"DisplayName": "Surround Toggle",
|
||
|
"IsStateful": true
|
||
|
},
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
#### Platform
|
||
|
|
||
|
- `EmitDevicesOnStartup`: If true, each device frome each hub will be written to the console on startup
|
||
|
|
||
|
- `Hubs`: A list of harmony hub configurations
|
||
|
|
||
|
- `Devices`: A list of devices to be used and corresponding hubs
|
||
|
|
||
|
- `Matrix`: An optional configuration for an hdmi matrix
|
||
|
|
||
|
- `ControlUnits`: Configures one logical control unit. This is usually a single TV in a single room.
|
||
|
|
||
|
#### Devices
|
||
|
|
||
|
- `Name`: The name of the device to use from an existing harmony hub configuration
|
||
|
|
||
|
> Note: Use `EmitDevicesOnStartup` if you are unsure of which devices are available.
|
||
|
|
||
|
- `Hub`: The name of the hub to look the device on
|
||
|
|
||
|
#### Matrix
|
||
|
|
||
|
- `DeviceName`: The name of the matrix device as seen in the harmony configuration
|
||
|
|
||
|
> Note: This device must appear in the device list
|
||
|
|
||
|
- `Inputs`: A list of input devices and their corresponding input number as it relates to the matrix switch
|
||
|
|
||
|
- `Outputs`: A list of output devices and their corresponding output letter as it relates to the matrix switch
|
||
|
|
||
|
#### ControlUnits
|
||
|
|
||
|
This is the logical display unit. It will appear as a tv accessory in the home app.
|
||
|
|
||
|
- `DisplayName`: The name of the control unit
|
||
|
|
||
|
- `Activities`: A list of activity configurations. These will be the inputs associated with the tv accessory
|
||
|
- `DeviceSetupList`: A list of devices associated with an activity and their corresponding input setting
|
||
|
|
||
|
- `VolumeDevice`: The device that should be used to control the volume of the activity. This is usually a stereo or a tv
|
||
|
|
||
|
- `ControlDevice`: The device that is used to control UI navigation
|
||
|
|
||
|
- `OutputDevice`: The device that is used to display the content. This is usually a TV
|
||
|
|
||
|
- `UseMatrix`: If true, corresponding commands will be issued to the matrix device to route input to output
|