{"id":15632021,"url":"https://github.com/jaymzh/concordance","last_synced_at":"2025-04-10T04:55:42.023Z","repository":{"id":2220080,"uuid":"39756674","full_name":"jaymzh/concordance","owner":"jaymzh","description":"Program Harmony remote controls from Linux, Windows, or Mac!","archived":false,"fork":false,"pushed_at":"2025-03-05T23:01:23.000Z","size":679,"stargazers_count":161,"open_issues_count":13,"forks_count":19,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-01T18:59:50.381Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaymzh.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SupportedModels.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-27T05:28:41.000Z","updated_at":"2025-03-29T22:26:23.000Z","dependencies_parsed_at":"2024-01-12T11:33:57.431Z","dependency_job_id":"fd27653c-2383-4f2d-aef6-4b3d28739920","html_url":"https://github.com/jaymzh/concordance","commit_stats":{"total_commits":358,"total_committers":4,"mean_commits":89.5,"dds":"0.13687150837988826","last_synced_commit":"aaf62906ecf886acbd313ad9e53fb63b3915b113"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fconcordance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fconcordance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fconcordance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fconcordance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaymzh","download_url":"https://codeload.github.com/jaymzh/concordance/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161256,"owners_count":21057554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T10:42:23.370Z","updated_at":"2025-04-10T04:55:42.004Z","avatar_url":"https://github.com/jaymzh.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Concordance\n\n[![Linux Build](https://github.com/jaymzh/concordance/actions/workflows/ci-linux.yml/badge.svg)](https://github.com/jaymzh/concordance/actions/workflows/ci-linux.yml)\n[![MacOS Build](https://github.com/jaymzh/concordance/actions/workflows/ci-macos.yml/badge.svg)](https://github.com/jaymzh/concordance/actions/workflows/ci-macos.yml)\n[![Windows Build](https://github.com/jaymzh/concordance/actions/workflows/ci-windows.yml/badge.svg)](https://github.com/jaymzh/concordance/actions/workflows/ci-windows.yml)\n\nThis software allows you to program your Logitech Harmony remote using a\nconfiguration object retrieved from the [harmony\nwebsite](https://members.harmonyremote.com/EasyZapper/New/ProcLogin/Start.asp?BrowserIsChecked=True)\n\nThe website is required. The website is required in Logitech's software as\nwell, it's just that their software wraps the website. Their website has\nall the logic on what codes work with what remotes and what hardware, etc.\nThe software just takes the binary blobs that the website makes and writes\nit to the remote control. This is true for both Logitech's software and\nthis software.\n\nHowever, this software has some extra functionality such as being able to\ndump (backup) your existing config, being cross-platform, and giving you\nextra visibility into what's actually happening with your remote.\n\nNOTE: the Logitech web server now is setting a header 'X-Frame-Options: DENY'\nwhich prevents the update process from working correctly with Concordance.  In\norder to work around this, you will have to use a web browser that ignores\nthis header.  For Firefox, the 'Ignore X-Frame-Options Header' Add-on has been\nused successfully.  For other browsers, there may be similar add-ons available.\n\n## Installing\n\nConcordance is packaged in a wide variety of Linux distributions and other\nOS package repositories. The easiest path is to use such a package if it's available for your OS/distro.\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/concordance.svg?exclude_unsupported=1)](https://repology.org/project/concordance/versions)\n\nIf it's not packaged for your OS/distro, then refer to the appropriate `INSTALL` file in this repository for your OS.\n\n## Usage\n\n*NOTE TO MAC USERS*: You need to use 'sudo' since you don't have udev.\n\n*NOTE TO LINUX USERS*: This assumes you have proper udev support setup\n(see the INSTALL.Linux file in the libconcord source). If not, you'll\nneed to use sudo or be root.\n\n0. I got a file from the website, do something useful with it.\n\n  ```\n  concordance \u003cfilename\u003e\n  ```\n\n  This will attempt to figure out what to do, and do it. Note that the update\n  process sends TWO files: a connectivity test and the update. You will need\n  to do both.\n\n1. Backup the config\n\n  ```\n  concordance --dump-config=/tmp/config.EZHex\n  ```\n\n  This will read the config off of your remote and write it to /tmp/config.EZHex.\n  It's a good tool for development as well as backing up your config. This can\n  however be created from the members.harmonyremote.com/EasyZapper website. The\n  equals is needed if you pass in a filename since the filename is optional.\n  If you don't specify, concordance will use 'config.EZHex' in the current\n  directory.\n\n2. Connectivity test\n\n  Go to members.harmonyremote.com/EasyZapper, and when you're ready, choose\n  \"Update My Remote.\" Before Logitech provides an actual config, they will\n  first attempt to do a connectivity test. Downloaded the Connectivity.EZHex\n  file, and then run the test:\n\n  ```\n  concordance Connectivity.EZHex\n  ```\n\n  If that doesn't work, you can tell concordance what it is manually:\n\n  ```\n  concordance --connectivity-test Connectivity.EZHex\n  ```\n\n3. Write a config\n\n  Once the connectivity test is successfully completed, the site will prompt you\n  to download the actual config in a file called Update.EZHex. Save it and then\n  you can use it with:\n\n  ```\n  concordance Update.EZHex\n  ```\n\n  Again, concordance should do the right thing here, but in case of problems you\n  can explicitly tell concordance what to do with:\n\n  ```\n  concordance --write-config Update.EZHex\n  ```\n\n4. Backup the firmware\n\n  Sometimes the site will want to update your firmware. Concordance allows you to\n  backup your old firmware so you may later revert if you prefer. You can do this\n  with:\n\n  ```\n  concordance --dump-firmware\n  ```\n\n  This will read the firmware off of your remote and write it to fimrware.EZHex.\n  See \"1. Backup the config\" for more information.\n\n5. Write firmware\n\n  NOTE: This feature is only implemented for certain models. Please see\n    [supported models](SupportedModels.md)\n\n  However for models we support this on, it works like this:\n\n  ```\n  concordance Firmware.EZHex\n  ```\n\n  Again, if you have a problem, you can tell concordance what to do explicitly:\n\n  ```\n  concordance --write-firmware Firmware.EZHex\n  ```\n\nThere are other options - check out the --help one!\n\n## Related Software\n\n* [Congruity](https://github.com/congruity/congruity) is a cross-platform graphical front-end for libconcord written in python\n\n## Disclaimer\n\n*THIS SOFTWARE IS NOT SUPPORTED BY OR IN ANY WAY RELATED TO LOGITECH!*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaymzh%2Fconcordance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaymzh%2Fconcordance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaymzh%2Fconcordance/lists"}