Logitech Harmony plugin for HomeBridge using WebSockets.
You can discuss this plugin on Discord in #harmony channel
This plugin is publishing harmony hub activities and devices as switches, with some advanced option (see below) for custom needs like macros, sequences, and much more. The TV mode is focused on harmony hub activities only at the moment : each activity of the hub is mapped to an input. A main activity is linked to the on/off switch of the accessory. Buttons on the remote app and volume controls will be binded to the one defined in the activity (if so). VOLUME IS BIND TO PHYSICAL BUTTONS WHEN REMOTE FROM CONTROL CENTER IS SHOWN . There is an option to override default mappings.
npm install -g homebridge
npm install -g homebridge-harmony
config.json
using the sample below.Since this plugin can expose external accessories (TV), you should probably set ports configuration in your homebridge conf with a dedicated range, like this :
"ports": {
"start": 52100,
"end": 52150,
"comment": "This section is used to control the range of ports that separate accessory (like camera or television) should be bind to."
},
Also, if you use child Bridge (since Homebridge 1.3.0), it makes sense only if you publish switches / bridges accessories. If you are only running a default TV accessory, it will publish an empty bridge that might be confusing (see https://github.com/nicoduj/homebridge-harmony/issues/347 for more details)
You have to move your other platforms if you have more than one in a new key : "otherPlatforms": [{ }] , see sample below. The plugin MUST be adde donly One time in your config
switchAccessories
(or activitiesToPublishAsAccessoriesSwitch
)skipedIfSameStateActivities
to skippedIfSameStateActivities
(with 2 p
) or addAllActivitiesToSkipedIfSameStateActivitiesList
to addAllActivitiesToSkippedIfSameStateActivitiesList
(also with 2 p
) if you were using one of those options.publishActivitiesAsIndividualAccessories
to publishSwitchActivitiesAsIndividualAccessories
devicesToPublishAsAccessoriesSwitch
option if you were using it, see details belowremoteOverrideCommandsList
you have to use SETUP instead now (since it is in the settings of the remote).In case of any trouble like accessories allready added (or missing), you can try to use the option cleanCache
but please report in order for me to fix if possible (see Fields section).
To setup mutliple tv platorm, you will have to add others manually in homekit. Other ones (than the first one) won't be cached. See publishAllTVAsExternalAccessory
for details.
Simple Config (only TV Accessory)
"platforms": [
{
"platform": "HarmonyHubWebSocket",
"name": "HubName",
"hubIP": "192.168.1.XX"
}
]
Only switch mode
"platforms": [
{
"platform": "HarmonyHubWebSocket",
"name": "HubName",
"TVAccessory" : false,
"switchAccessories" : true
}
]
Mutliple hubs - fixedIP
"platforms": [
{
"platform": "HarmonyHubWebSocket",
"name": "HubName",
"hubIP": "192.168.1.XX",
"otherPlatforms": [{
"name": "OtherHubName",
"hubIP": "192.168.1.YY"
}]
}
]
Mutliple hubs - using harmonyNames
"platforms": [
{
"platform": "HarmonyHubWebSocket",
"name": "HubName",
"hubName": "myFirstHub",
"otherPlatforms": [{
"name": "OtherHubName",
"hubName": "mySecondHub",
}]
}
]
Fields:
platform
GLOBAL must be "HarmonyHubWebSocket" (required).
publishAllTVAsExternalAccessory
GLOBAL publish all TV accessory as external Accessories. This way, if another plugin on the same homebridge instance as one, the one on harmony will also be visible, but you will have to add them manually after the hub itself. Defaults to TRUE (if set to false, only second tv accessory or following will be published by this plugin as external accessories, first one will be linked to the hub and might not display a TV icon).
cleanCache
GLOBAL option to clean all cached Accessory. Please use with caution, might be needed if you change names / config of the hub and there is some ghost devices in Homekit. Be sure that all your icloud sync is done while launching Homebridge with this option set to true. Set it back to false after and launch again ! It does not affect external accessories.
DELAY_BEFORE_RETRY_AFTER_NETWORK_LOSS
GLOBAL retry timer in case of network loss (optionnal - defaults 60s).
HUB_CONNECT_TIMEOUT
GLOBAL connect timeout (optionnal - defaults 10s).
HUB_SEND_TIMEOUT
GLOBAL send timeout (optionnal - defaults 30s).
name
is the name of the published Platform (required).
hubName
is the name of your hub in harmony app (optional, but mandatory if you have mutliple hubs). In case both hubName and hubIP are not set, it will discover your hub automatically, providing there is only one
hubIP
is the static IP address of the hub (optional). A static IP address is required.
TVAccessory
publish hub with its activities as a TV Accessory (defaults to true).
switchAccessories
publish all activities as a Switch Accessory (defaults to false).
activitiesToPublishAsAccessoriesSwitch
array of Activities you want to expose as switches (all by default if switchAccessories is set to true, otherwise specify the list you want)
showTurnOffActivity
configures whether to publish a "switch" accessory to turn off every activity (defaults to false).
skippedIfSameStateActivities
array of Activities name to trigger only if their state is different from the action sent. Can be useful if your devices in the activity have the same on / off command and you want to automate them outside off the home app. For TV mode, and PowerOff feature, "PowerOff" is added by default, but you have to add it manually to this list if this list is set.
addAllActivitiesToSkippedIfSameStateActivitiesList
option to add all activities automatically to skippedIfSameStateActivities behavior. (defaults : false)
publishSwitchActivitiesAsIndividualAccessories
option to publish activities as individual accessories. Defaults to true.
devicesToPublishAsAccessoriesSwitch
array of Devices to exposes with on/off function or custom functions
publishDevicesAsIndividualAccessories
option to publish devices as individual accessories. Defaults to true.
sequencesToPublishAsAccessoriesSwitch
array of Sequences to exposes through a switch.
publishSequencesAsIndividualAccessories
option to publish sequences as individual accessories. Defaults to true.
homeControlsToPublishAsAccessoriesSwitch
array of home controls you want to publish as switches
publishHomeControlsAsIndividualAccessories
option to publish home controls as individual accessories. Defaults to true.
mainActivity
set the mainactivity of the TV mode
playPauseBehavior
play/pause behavior in TV mode : if set to true, will send pause if played was set and vice-verca. Be aware that both commands must be available, and that it might be out of sync in case of external events (defaults : false - always send play command)
configureAccesscontrol
configure Access control service (false by default)
publishGeneralMuteSwitch
publish a mute switch, stateless, that will send a mute command to current activity.
publishGeneralVolumeSlider
publish a volume slider, stateless, that will send a volume commands to current activity. Approximativley, it will send an Up / Down Volume command each 5%. It can be combined with numberOfCommandsSentForVolumeControl
option to multiply the number of up / down commands sent.
publishGeneralVolumeSwitches
publish switches, stateless, for volume up / down on TV Accessory. It can be combined with numberOfCommandsSentForVolumeControl
option to multiply the number of up / down commands sent.
linkVolumeControlToTV
links mute / volume switch to TV accessory if present
remoteOverrideCommandsList
option to override default commands mapping in TV Platform Mode. See below for format.
activitiesToPublishAsInputForTVMode
array of Activities you want to expose as inputs (all by default)
numberOfCommandsSentForVolumeControl
option to set the number of commands to send for each volum (up or down) press. Defaults to 1
showCommandsAtStartup
show commands and device losts at startup (defaults to false)
otherPlatforms
is an array of hubs platform . All option are available except GLOBAL ones
All devices / Activites names are the one configured in harmony configuration, even if you rename them in home app.
Option devicesToPublishAsAccessoriesSwitch
is an array that behaves this way :
As a sample :
"devicesToPublishAsAccessoriesSwitch" : ["Apple TV Gen 4|Button1;Play","Apple TV Gen 4;DirectionDown","Caisson","Sony PS4","MyDevice;Up;Up|2500;Down"]
will add
All commands available are displayed at startup. If no name is specified, it will be added with a generated name.
If you use a "/", it will do a non stateless switch and send commands before the / on On, and after on Off. Be aware that it can be out of sync .
As a sample :
"devicesToPublishAsAccessoriesSwitch" : ["Apple TV Gen 4|Button1;Play/Pause","Caisson;/","Sony PS4;/","MyDevice;/","MyDevice;Up;Up|2500;Down/Down;Down|2500;Up"]
will add
Option sequencesToPublishAsAccessoriesSwitch
is an array that behaves this way :
As a sample :
"sequencesToPublishAsAccessoriesSwitch" : ["Test"]
will expose the sequence Test as a button.
See Logitech Harmony Sequence Configuration for sequences configuration.
Please note that the sequence can only be triggered if its activity is in use. (Sequences are linked to an activity by design in harmony app).
Option remoteOverrideCommandsList
is an array that behaves this way :
"remoteOverrideCommandsList": [
{
"ActivityName": "La TV",
"CommandsList": [
{
"CommandName": "PAUSE",
"NewCommand": "Ampli;Number0;Number0"
},
{
"CommandName": "BACK",
"NewCommand": "TV;Back"
}
]
},
{
"ActivityName": "Un Film",
"CommandsList": [
{
"CommandName": "ARROW_LEFT",
"NewCommand": "TV;PreviousChannel"
}
]
}
]
will bahaves this way :
Button List is :
Commands of your device is shown in the log at startup in lines like : 'INFO - Command : COMMAND_NAME discovered for device : DEVICENAME'
See CHANGELOG.
Thanks to
Support this project and others by nicoduj via PayPal.
As of Dec 01 2018, Nicolas Dujardin has released this repository and its contents to the public domain.
It has been released under the UNLICENSE.
Homebridge 是一个轻量级 NodeJS 服务器,它模拟 iOS HomeKit API,提供从 HomeKit 到“智能家居”设备制造商提供的各种第三方 API 的基本桥接。通过 Homebridge 的桥接,可以让 Siri 控制完全不支持 HomeKit 的设备。 此外 Homebridge 支持插件。
homebridge-vsx homebridge-vsx is a plugin made for homebridge,which allows switching on and off your Pioneer AV receiver. All AV receivers (VSX and SC),which work with the iControl AV5 App are support
homebridge-sesame Control and monitor your Sesame smart lock with HomeKit integration. Prerequisites Installation of Homebridge iOS 11 or later Sesame lock with enabled cloud integration Sesame Wifi A
homebridge-panasonictv A homebridge plugin for turning on and off your Panasonic Viera TV. The plugin also has experimental support for changing the volume and channel. These characteristics are not r
Quick Start | Contribute A Wake on Lan plugin for Homebridge Turn your PCs, laptops, servers and more on and off through Siri Quick Start To install the plugin, head over to the machine with Homebridg
Docker Homebridge This Alpine/Ubuntu Linux based Docker image allows you to run Nfarina's Homebridge on your home network which emulates the iOS HomeKit API. This is a multi-arch image and will also r
This Plugin is no longer being maintained. The ST platform removed all of the greatness that made it fun to develop for and I will not rewrite my years of code to adapt. I have moved to Hubitat and al
Homebridge myQ myQ garage door and other myQ-enabled device support for Homebridge. homebridge-myq is a Homebridge plugin that makes myQ-enabled devices available to Apple's HomeKit smart home platfor