After a fair bit of web searching and hacking, the following information should enable you in the configuration of your Logitech Harmony Remote and installation of client interfacing software on Linux to update your universal remote.
These instructions were compiled using Linux Mint 17 (Qiana) x86_64 and Firefox 34 at the time of writing.
The following is a list of identified libraries and tools the subsequent software for using your Logitech Harmony Remote.
- python-suds
- python-ctypeslib
- python-wxtools
- libudev-dev (more than likely will need to install this using Synaptic as apt-get was giving me grief with versioning and dependency issues)
- libusb-dev
- libzip
- libzip-dev
- autotools-dev
- autoconf
- automake
- libtool
- git
Just to make it easy to copy the list, use the following command.
sudo apt-get install python-suds python-ctypeslib python-wxtools libudev-dev libusb-dev libzip libzip-dev autotools-dev autoconf automake libtool git
Reference (https://github.com/signal11/hidapi)
The best approach for the hidapi library is to clone from it's GIT source and build from this. Firstly lets grab it from GIT.
cd ~/Downloads
git clone https://github.com/signal11/hidapi.git
cd hidapi
Assuming that all the dependencies have been satisfied, we can build from the source code and install the library.
./bootstrap && ./configure --prefix=/usr && make && sudo make install
If you wish, you can refer to the
README.txt
file in the root folder of hidapi for further information.
Reference (http://www.phildev.net/harmony)
Download the latest TAR ball file from http://sourceforge.net/projects/concordance/files/ and extract. For me it was concordance-1.1.tar.bz2
.
Change into the libconcord
folder assuming you saved the download to your Downloads
folders.
cd ~/Downloads/concordance-1.1/libconcord
Now lets build and install the library.
./configure && make && sudo make install
For the congriuty application later on here, we need to install the Python binding to ensure the application can use the libconcord library.
Run the following commands.
cd bindings/python
sudo python setup.py install
(part of libconcord)
Before moving to the next application, we need to ensure that all users can access the remote control.
While still in the libconcord
folder, run the following command.
make udev &&& sudo make install_udev
You can refer to the
INSTALL.linux
file in the root folder of libconcord for further information.
Reference (http://www.phildev.net/harmony)
I only build and installed this application as a end to end process, but after installing the following application congruity, you could get away without this application. Anyway, I did just for paranoia's sake.
Change into the concordance
folder.
cd ../concordance
Now lets build and install the application.
./configure && make && sudo make install
Again you can refer to the
INSTALL.linux
file in the root folder of concordance for further information.
Reference (http://sourceforge.net/projects/congruity)
Finally the last application to build and install is congruity. Start by downloading the latest source code from http://sourceforge.net/projects/congruity. For me this was congruity-18.tar.bz2
.
Change into the folder congruity-18
and run the following command.
sudo make install
So the application can see the remote when it is connected to the PC, we need to create a device rule.
More than likely there will not be an existing rule file so we will create a new one as follows.
sudo nano /etc/udev/rules.d/90-concordance.rules
Enter in the contents of;
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c110", MODE="666"
And then save the changes. These will automatically be picked up and applied by the system.
Things to note
You will more than like need to change the idVendor
and idProduct
values. To confirm what values you will require, run lsusb
and look for the Logitech Harmony Remote entry as follows.
$ lsusb
...
Bus 003 Device 010: ID 046d:c122 Logitech, Inc. Harmony 700 Remote
...
Where you can see an ID column that contains two sets of Hex numbers, the first Hex number is the vendor ID and the second one is the product ID. Substitute these as required above.
As before, you can refer to the
README.txt
file in the root folder of congruity-18 for further information.
Now lets start using this all in anger. Start by connecting your Logitech Harmony Remote to your PC and if you paranoid like me sometimes, confirm that the remote is visible by running lsusb
and see if you can see something along the lines of Logitech Harmony Remote
. This is what I got even though I have a Harmony 650 model. It all still works in the end.
$ lsusb
...
Bus 003 Device 010: ID 046d:c122 Logitech, Inc. Harmony 700 Remote
...
Next fire up you web browser of choice and navigate to http://members.harmonyremote.com/. Ignore any suggestion that if you have a certain model, like I have (a Harmony 650), to go to a different address. Create a new account if you do not already have one.
You should be asked to step through a number of different screens to add devices and what not, but you will eventually get to a point where you will need to verify the original remote physically and perform what's called an IR Learning exercise. This is where congruity comes in where the browser will download a file where the file extension should be registered with the congruity application. Again, steps though the various screens and away you go.
One annoying bug/feature I did come across when running through all the remote learning process, is that the site page refreshes may not pick up on the fact that you have actually finished stepping through congruity and sometimes I did have to step through the steps a second time by refreshing the page or wait for a period of time for it to actually recognise my part had been completed.
Patience is a virtue here. Whether it is a Firefox thing, I do not know.
If you do have any further suggestions, tips or advise that others can use, please do let me know. Questions are also welcome and I will see if I am are able to help.
I get the Notify Website error on firefox and a white refreshing screen on chrome. That's with the extension on both of them.