jaymzh / concordance

Program Harmony remote controls from Linux, Windows, or Mac!
GNU General Public License v3.0
153 stars 19 forks source link

No response from members.harmonyremote.com website #17

Open vanicat opened 6 years ago

vanicat commented 6 years ago

Hello,

congruity used to work with no problem, but today, when I tried to update the configuration on my remote, I download Connectivity.EZHex, then run congruity on it with no apparent problem, but the harmonyremote.com website seem to not register the fact that the connection with the remote was correct.

If I test it with concordance I've:

% concordance -t Connectivity.EZHex
Concordance 1.3
Copyright 2007 Kevin Timmerman and Phil Dibowitz
This software is distributed under the GPLv3.

Requesting identity:  100%             done
Contacting website:   100%             done
Success!

But the harmonyremote.com website is still waiting for something.

I did all this on a debian machine (sid, with Concordance 1.3 and congruity version 20)

Thanks.

swt2c commented 6 years ago

Unfortunately, it appears this is due to a change Logitech made on its web server (possibly inadvertently). They are now setting the X-Frame-Options header to DENY. During the process when waiting for a response from the remote, the web site uses an iframe that continuously refreshes periodically. Due to this new header setting, the browser refuses to load the iframe so nothing happens.

I was able to use this Firefox add-on that ignores the X-Frame-Options header, and then I was able to use the web site successfully to update a remote: https://addons.mozilla.org/en-US/firefox/addon/ignore-x-frame-options-header/

I'll submit an update to the documentation to document this new unfortunate quirk.

swt2c commented 6 years ago

https://github.com/jaymzh/concordance/pull/18

DennisLfromGA commented 5 years ago

To add, I was able to use the below Chrome extension that ignores the X-Frame-Options header, and then I was able to use the web site successfully to update a remote:

Hope this helps, -DennisLfromGA

robross0606 commented 3 years ago

I am trying to set this up but the site looks completely borked even with the Chrome extension. I'm a bit baffled about what I'm supposed to be doing here. The site won't accept the username and password that works fine in MyHarmony app. Is there a HOWTO somewhere on setting this up?

swt2c commented 3 years ago

I am trying to set this up but the site looks completely borked even with the Chrome extension. I'm a bit baffled about what I'm supposed to be doing here. The site won't accept the username and password that works fine in MyHarmony app. Is there a HOWTO somewhere on setting this up?

MyHarmony.com is a completely separate account system from the older members.harmonyremote.com system. If your remote works with MyHarmony.com then it likely doesn't work with members.harmonyremote.com. Most remotes only work one of the two systems, with newer remotes using MyHarmony.com. What remote do you have?

robross0606 commented 3 years ago

What remote do you have?

It is a Harmony One+. Fairly old, so I thought it should work.

jaymzh commented 3 years ago

Harmony One was the first ones to requires myharmony, as I recall. You'll want the mhgui app.

brianjmurrell commented 2 years ago

To add, I was able to use the below Chrome extension that ignores the X-Frame-Options header, and then I was able to use the web site successfully to update a remote:

I've installed this extension in Chrome but still nothing happens after I have run:

$ concordance Connectivity.EZHex 
Concordance 1.4
Copyright 2007 Kevin Timmerman and Phil Dibowitz
This software is distributed under the GPLv3.

Requesting identity:  100%             done
Contacting website:   100%             done
Success!
swt2c commented 2 years ago

Are you running the latest concordance from git? There were some recent changes made that are needed for website communications.

bryder commented 1 year ago

I had the same problem with 1.5. It sends the connectivity test fine (it says anyway). But nothing happens after that on the web client.

From what I could tell by tracing the Harmony 7.7.0 client there's an extra response required now.

The output from concordance 1.5

 & "C:\Program Files (x86)\Concordance\concordance.exe" -v .\Connectivity.EZHex
Concordance 1.5
Copyright 2007 Kevin Timmerman and Phil Dibowitz
This software is distributed under the GPLv3.

Requesting identity:  100%             done
Contacting website:   100%             done
Success!

These are the http packets from concordance 1.5

   13   0.617828 192.168.0.47 → 52.44.86.125 HTTP 1467 57724 443 POST /EasyZapper/New/ProcConnectivity/Connectivity_Receive_Zaps.asp HTTP/1.1  (application/x-www-form-urlencoded)
   14   0.823501 52.44.86.125 → 192.168.0.47 HTTP/XML 399 443 57724 HTTP/1.1 200 OK

And the OK packet from logitech does say 'Success' in the xml.

This is what I see when running the 7.7.0 client

  648  32.403231 192.168.0.47 → 52.44.86.125 HTTP 1019 57430 80 GET /EasyZapper/New/ProcConnectivity/Connectivity.EZHex HTTP/1.1
  666  32.816081 52.44.86.125 → 192.168.0.47 HTTP 1461 80 57430 HTTP/1.1 200 OK  (application/x-easyzapper-hex)
  672  36.650959 192.168.0.47 → 52.44.86.125 HTTP 4906 57445 80 POST /EasyZapper/New/ProcConnectivity/Connectivity_Receive_Zaps.asp HTTP/1.1  (application/x-www-form-urlencoded)
  677  36.863653 52.44.86.125 → 192.168.0.47 HTTP/XML 370 80 57445 HTTP/1.1 200 OK
  683  37.089841 192.168.0.47 → 52.44.86.125 HTTP 1550 57446 80 POST /EasyZapper/New/ProcConnectivity/Connectivity_Receive_Complete.asp HTTP/1.1  (application/x-www-form-urlencoded)
  686  37.299976 52.44.86.125 → 192.168.0.47 HTTP/XML 370 80 57446 HTTP/1.1 200 OK

So it looks like you have to POST a Connectivity_Receive_Complete.

However the other difference is a lot more data is going up on the Connectivity_Receive_Zaps.asp call. The 7.7.0 client listed my devices in my remote basically. Maybe that doesn't matter.

The outputs are from thshark. The number after the 'HTTP' is the bytes in the assembled HTTP.

swt2c commented 1 year ago

@bryder that seems strange. The website still works fine with concordance 1.5 for me without the second post. In any event, can you try this patch and see if it solves the problem for you?

diff --git a/libconcord/libconcord.cpp b/libconcord/libconcord.cpp
index 13b9c82..e611f67 100644
--- a/libconcord/libconcord.cpp
+++ b/libconcord/libconcord.cpp
@@ -931,6 +931,10 @@ int post_connect_test_success(lc_callback cb, void *cb_arg)
                     add_cookiekeyval)))
         return err;

+    if ((err = Post(of->GetXml(), of->GetXmlSize(), "COMPLETEPOSTOPTIONS", ri,
+                    true, add_cookiekeyval)))
+        return err;
+
     if (cb)
         cb(LC_CB_STAGE_HTTP, 1, 1, 1, LC_CB_COUNTER_TYPE_STEPS, cb_arg, NULL);
bryder commented 1 year ago

That fixed it.

The website says communication with the Harmony One has been confirmed

And loading the update into the remote worked fine.

Thanks!

bryder commented 1 year ago

I'll try reverting it and testing it again. The harmony web pages aren't looking the same as they were a couple of days ago. Perhaps something else is different today. I'll update when I know

bryder commented 1 year ago

With the old version - just sending the the one response it works now.

I cleared all of my cookies and tried https://members.harmonyremote.com/EasyZapper/New/ProcLogin/Start.asp?BrowserIsChecked=True

I got the login page - but there was no login button. Hard to login!

I tried https://members.harmonyremote.com/EasyZapper and it said I had to update my software.

So I set my user agent in chrome dev tools to

HarmonyBrowser/7.3.0 (Build 15; UpdatedFrom 7.3.0.15; Skin logitech; Windows XP 5.1; x86; en; rv: 1.8.0.2) Gecko/20060125

I think this is what is confusing the connectivity test.

But at least I can login now.

Once I've logged in (and selected remember me on this computer) I removed the user agent override. Closed the window and went to the BrowswerIsChecked=True page

I was logged in already and it worked fine.

When I select Update I get the page which tells me to open the file that downloads (which I didn't get when I pretended to be the 7.3.0 app).

At which point the concordance single packet version works (or the two packet version)

Presumably there's a user agent setting for an old browser which will work on that site to save all the messing around.

For testing the main thing is to clear the cookies so the website doesn't know you anymore.