4 | | A Qt-based C++ executable to control the Logitech Harmony Hub/Link |
5 | | without need of the Logitech Harmony App or Remote. |
6 | | |
7 | | HarmonyHubControl was developed using the pyharmony library as a guide. |
8 | | It was written in C++ using Qt to allow simpler packaging than pyharmony |
9 | | and to reduce the number of dependencies. |
10 | | |
11 | | HarmonyHubControl was developed particularly to ease Harmony Hub/Link |
12 | | integration within home automation systems. |
13 | | |
14 | | Special thanks to jterrace and petele for laying down the groundwork for |
15 | | this work to occur by implementing pyharmony. |
16 | | |
17 | | |
18 | | |
19 | | Protocol |
20 | | -------- |
21 | | |
22 | | As the harmony protocol is based on xmpp (the Jabber protocol). |
23 | | A thorough description of the exchanges between the executable, Logitech's |
24 | | Harmony Web service, and the Harmony Hub can be found in the included |
25 | | PROTOCOL.md file, or in the original pyharmony GitHub repositories at: |
26 | | |
27 | | https://github.com/jterrace/pyharmony/ |
28 | | and |
29 | | https://github.com/petele/pyharmony/ |
30 | | |
31 | | |
32 | | |
33 | | Functionality |
34 | | -------------- |
35 | | |
36 | | HarmonyHubControl provides the ability to perform the following functions |
37 | | without requiring the Logitech Harmony App or Remote. |
38 | | |
39 | | * Authenticate using Logitech's web service |
40 | | * Authenticate to the local harmony device. |
41 | | * Query for the harmony's entire configuration information. |
42 | | * Request a list of activities and devices from the harmony |
43 | | * Request the currently selected activity |
44 | | * Start an activity by ID |
45 | | |
46 | | |
47 | | |
48 | | Requirements |
49 | | ------------ |
50 | | |
51 | | In order to successfully use the executable, it is expected that the following |
52 | | are in place: |
53 | | |
54 | | A Harmony Hub/Link that is pre-configured and working properly on the local network |
55 | | Your Logitech Harmony login email and password. These are the same ones used in |
56 | | the app or online to edit the Harmony's configuration. |
57 | | |
58 | | The IP address of the Harmony is required. |
59 | | |
60 | | |
61 | | |
62 | | Usage |
63 | | ----- |
64 | | |
65 | | The command line for HarmonyHubControl is as follows: |
66 | | |
67 | | HarmonyHubControl.exe [email] [password] [harmony_ip] [command (optional)]\n"); |
68 | | |
69 | | where the [email] and [password] parameters are the login credentials used to log |
70 | | into your Logitech Harmony account to update the device configuration. These are |
71 | | also the same credentials used with the Harmony app. |
72 | | |
73 | | [harmony_ip] is the IP address of the harmony device on your network |
74 | | |
75 | | |
76 | | [command] can be any of the following: |
77 | | |
78 | | get_current_activity_id |
79 | | list_devices |
80 | | list_activities |
81 | | start_activity [ID] |
82 | | get_config |
83 | | |
84 | | |
85 | | Typical example usage would be as follows: |
86 | | |
87 | | 1) Query the device for a list of activities: |
88 | | |
89 | | HarmonyHubControl.exe your_email@your_email_server.com your_password 192.168.0.XXX list_activities |
90 | | |
91 | | 2) Start an activity based on the activity identifiers listed in step 1: |
92 | | |
93 | | HarmonyHubControl.exe your_email@your_email_server.com your_password 192.168.0.XXX start_activity |
94 | | |
95 | | For full argument information simply run the executablewith no parameters. |
96 | | |
97 | | |
98 | | |
99 | | Building from Source |
100 | | -------------------- |
101 | | |
102 | | Building the executable from source requires an install of Qt. The only version tested is 5.2.0 on |
103 | | Microsoft Visual Studio 2010 on Windows (x86) |
104 | | |
105 | | Once Qt is installed, a visual studio project file can be generated using qmake: |
106 | | |
107 | | qmake -tp vc HarmonyHubControl.pro |
108 | | |
109 | | The application has no dependencies beside Qt, therefore Qmake should configure the project file |
110 | | automatically to allow compiling and running the application. |
111 | | |
112 | | |
113 | | |
114 | | To-do |
115 | | -------------------- |
116 | | |
117 | | Finish the "issue_command" interface to allow individual commands to be sent to devices. |
118 | | Re-organize the code into a library |
| 4 | The Logitech Harmony Hub Vera plugin allows Vera3 and VeraLite home automation controllers to manage and control a Logitech Harmony Hub/Link. The plug-in consists of a C++ executable based on the HarmonyHubControl software found on SourceForge.com, cross-compiled for the Vera3/VeraLite, as well as the necessary XML and Luup files required for the Vera UI. |