Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/NovaGL/HarmonyHubControl
C++ Application to Control a Logitech Harmony Hub
https://github.com/NovaGL/HarmonyHubControl
Last synced: 7 days ago
JSON representation
C++ Application to Control a Logitech Harmony Hub
- Host: GitHub
- URL: https://github.com/NovaGL/HarmonyHubControl
- Owner: NovaGL
- License: mit
- Created: 2015-12-16T05:04:26.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2021-09-13T21:35:15.000Z (about 3 years ago)
- Last Synced: 2024-08-02T15:08:28.945Z (3 months ago)
- Language: C++
- Size: 497 KB
- Stars: 25
- Watchers: 11
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HarmonyHubControl
C++ Application to Control a Logitech Harmony Hub
=========A C++ executable to control the Logitech Harmony Hub/Link without need of
the Logitech Harmony App or Remote.HarmonyHubControl was developed using the pyharmony library as a guide.
It was originally written in C++ using Qt to allow simpler packaging
than pyharmony and to reduce the number of dependencies. Subsequently,
the Qt dependency was removed so that it is now only dependent on BSD
sockets.The code has been compiled and tested on both Microsoft Windows (using
Visual Studio 2010) and Ubuntu 10.0. The code has also been cross-compiled
to OpenWRT (backfire) and tested on Vera2 and VeraLite home automation
controllers.HarmonyHubControl was developed particularly to ease Harmony Hub/Link
integration within home automation systems.Special thanks to jterrace and petele for laying down the groundwork for
this work to occur by implementing pyharmony.This repo has been forked from the original source of http://sourceforge.net/projects/harmonyhubcontrol/
Protocol
--------As the harmony protocol is based on xmpp (the Jabber protocol).
A thorough description of the exchanges between the executable, Logitech's
Harmony Web service, and the Harmony Hub can be found in the included
PROTOCOL.md file, or in the original pyharmony GitHub repositories at:https://github.com/jterrace/pyharmony/
and
https://github.com/petele/pyharmony/Functionality
--------------HarmonyHubControl provides the ability to perform the following functions
without requiring the Logitech Harmony App or Remote.* Authenticate using Logitech's web service
* Authenticate to the local harmony device.
* Query for the harmony's entire configuration information.
* Request a list of activities and devices from the harmony
* Request the currently selected activity
* Start an activity by IDRequirements
------------In order to successfully use the executable, it is expected that the following
are in place:A Harmony Hub/Link that is pre-configured and working properly on the local network
The IP address of the Harmony is required.
Usage
-----The command line for HarmonyHubControl is as follows:
HarmonyHubControl.exe [harmony_ip] [command (optional)] [primary_parameter (optional)] [secondary_parameter (optional)]\n");
where the [email] and [password] parameters are the login credentials used to log
into your Logitech Harmony account to update the device configuration. These are
also the same credentials used with the Harmony app.[harmony_ip] is the IP address of the harmony device on your network
[command] can be any of the following:
get_current_activity_id
list_devices
list_activities
start_activity [ID]
issue_device_command [DEVICE_ID] [DEVICE_COMMAND]
get_configTypical example usage would be as follows:
1) Query the device for a list of activities:
HarmonyHubControl.exe 192.168.0.XXX list_activities
A list of accessories will be stored in activities.json
{"PowerOff":"-1"}2) Start an activity based on the activity identifiers listed in step 1:
HarmonyHubControl.exe 192.168.0.XXX start_activity
The current activity id is stored in current.json.
The current activity is also stored in this file when querying get_current_activity_id
{"current activity":-1}For full argument information simply run the executablewith no parameters.
Building from Source
--------------------Building the executable from source requires either Microsoft Visual Studio 2010 or Linux and gcc
3.4.x or above.The application has no external dependencies besides the standard libraries provided by a default
Visual Studio or Linux gcc development environment.To-do
--------------------Re-organize the code into a library