Brandon Watson bc2208b5cb
All checks were successful
continuous-integration/drone/push Build is passing
Squashed commit of the following:
commit bccadde36f8df34ce9bfd96f73f39428af5c4b14
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:48:46 2021 -0400

    Using correct branch inclusion

commit 93132ab8684436e48ae05165193d88ee22f40ced
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:40:00 2021 -0400

    excluding publishing on PRs

commit 496dd42cfda82308185eb7cd52a300a7484d9053
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:38:37 2021 -0400

    Only publishing master branch

commit 57e82789fbe3de9a0da2d87a30dd01b3736d1478
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:36:16 2021 -0400

    WIP

commit ecc54ad3c30a0f6e781561787f74bdd2b556fc17
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:35:29 2021 -0400

    WIP

commit 6d3cd651be3a5aeae97a3aa94901c8eb97c05591
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:30:18 2021 -0400

    Attempting to use drone commit in preid

commit c60387a98746f1fb5dbd4244fedfed95e065a1ef
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:16:46 2021 -0400

    Adding sequence file

commit d8a5e7541d437d8208c75a4ba80f34bfc572194a
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:16:11 2021 -0400

    Prettier

commit 34fcc1df1aa2aa954e647e62e3ccfebbc0b9dc9e
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:14:33 2021 -0400

    Updating pre-release command

commit 6c8ce2116477214ba1e09a9a97a190b0b4633dc8
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Mon Jun 7 20:03:41 2021 -0400

    Updating drone config

commit b6d9317a1e4ff2056fb5efd48a8f02a7b1d35a64
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Wed Jun 2 21:58:35 2021 -0400

    Revert "Using email alias"

    This reverts commit d1a3b802938ee213c8d03867730ec260688b20e0.

commit d1a3b802938ee213c8d03867730ec260688b20e0
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Wed Jun 2 21:57:22 2021 -0400

    Using email alias

commit 027d1711ada5485bf7091f217bb5ce6e967c89b4
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Wed Jun 2 21:36:07 2021 -0400

    Removing bash_profile

commit ed06d7ecd0ccf8fb9651c8ba2a879c2abe1d2828
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Wed Jun 2 21:23:46 2021 -0400

    WIP

commit d3c37b18b9576b9d485d80c7923e92dfcb2fe808
Author: Brandon Watson <watsonb8133@gmail.com>
Date:   Wed Jun 2 21:22:35 2021 -0400

    Updating registry path
2021-06-07 20:49:45 -04:00
2020-12-11 21:59:29 -05:00
2021-06-07 20:46:30 -04:00
2021-06-07 20:49:45 -04:00
2019-06-11 13:32:22 -04:00
2021-06-02 20:54:21 -04:00
2021-06-02 21:59:52 -04:00
2020-12-20 12:07:02 -05:00
2020-12-11 21:59:29 -05:00

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

Description
A convenient way to control your home through homekit utilizing one or many Logitech Harmony remotes
Readme 589 KiB
Languages
TypeScript 100%