jaymzh / concordance

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

Support for Harmony 950 ? #20

Closed skacon closed 4 years ago

skacon commented 5 years ago

Hi, is there something I could try to test libconcordance von Harmony 950?

concordance -v -i Concordance 1.2 Copyright 2007 Kevin Timmerman and Phil Dibowitz This software is distributed under the GPLv3.

Requesting identity: 100% done Model: Unknown Unknown Skin: 112 Firmware Version: 4.11 Firmware Type: 0 Hardware Version: 1.0.0 External Flash: 512 KiB - FF:12 25F040 Architecture: 17 Protocol: 9 Manufacturer: Logitech Product: Harmony Remote IRL, ORL, FRL: 0, 0, 0 USB VID: 046D USB PID: C12B USB Ver: 1112 Serial Number: <> Config Flash Used: 0% (0 of 512 KiB)

Success!

this is all I got running so far.

swt2c commented 5 years ago

That's a MyHarmony (MH) remote and I only see a couple of problems: 1) The model is unknown - that doesn't really matter much, but I'll submit a PR to add it. 2) The serial number isn't right - this might be more problematic as the serial number is required when adding an account. Can you rebuild libconcord with debug enabled and provide the output? To do this, you can just run libconcord's configure as ./configure CPPFLAGS=-D_DEBUG and then make.

Beyond that, this remote will have to use the newer MyHarmony website which is Silverlight-based. Thus, you'll need to use MHGUI (part of congruity) as a front-end interface.

swt2c commented 5 years ago

See #21 for problem 1.

skacon commented 5 years ago

I compiled libconcord, concordance and congruity from git on Debian Stretch anew.

I go to http://members.harmonyremote.com/EasyZapper/New/DisplayXsl.asp?WebProcessDisplayXslSource=/EasyZapper/New/ProcConnectivity/Instructions.xsl

the site wants to probe the remote, I shall connect the remote and shall press "Next". Connectivity.EZHex is downloaded. The site waits, till I run the command (bottom of this post), then Firefox displays this page. The Next button redirects me to the "Connect Remote" page:

<HTML> <head>

&lt;link rel="stylesheet" href="/EasyZapper/styles-logi.css" media="screen" type="text/css"/>   
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
&lt;meta name="PerfASPTagID" CONTENT="/EasyZapper/Error.asp"/>

</head> <body class="error-body"> <H3>Unable to display content.</H3>

<p>Click Next to continue.</p> <p> <!--PH: 10-24-2005 As CS team required to hide the contact link for now untill we can change it to log incident page. The reason we do not do it now is because log incident requires user login. When user gets this error page, the session might have lost.

If you continue to experience this problem, <a href='Help/Help_Contact.asp?Command=Back' class='error-link'> contact Customer Service.</a></p> -->

<form action="/EasyZapper/UserHome.asp"> <p align="left"></p> </form> </body>

</HTML> ==========================>

sudo -E concordance /vagrant/Connectivity.EZHex Concordance 1.3 Copyright 2007 Kevin Timmerman and Phil Dibowitz This software is distributed under the GPLv3.

DEBUG (FindRemote): Testing: 046D, C12B DEBUG (FindRemote): Found a Harmony! DEBUG (ReadAndParseOpFile): In RAPOF DEBUG (ReadPlainFile): file opened DEBUG (ReadPlainFile): finding binary bit... DEBUG (ReadAndParseOpFile): determining type... DEBUG (ReadAndParseOpFile): err is 0 DEBUG (ReadAndParseOpFile): start/end pointers populated DEBUG (ReadAndParseOpFile): not a firmware file DEBUG (ReadAndParseOpFile): zaps: 1, binary: 0, firmware: 0, ir: 0 DEBUG (ReadAndParseOpFile): returning connect file Num stages: 1 DEBUG (GetIdentity): msg_two DEBUG (debug_print_packet): ff ff 81 00 00 00 00 00 00 00 00 00 00 00 00 00 DEBUG (GetIdentity): msg_three DEBUG (debug_print_packet): ff 00 82 00 00 00 00 00 00 00 00 00 00 00 00 00 DEBUG (ReadFile): msg_read_file DEBUG (debug_print_packet): ff 01 83 02 01 01 04 00 00 00 e8 00 00 00 00 00 DEBUG (ReadFile): msg_ack DEBUG (debug_print_packet): ff 04 84 02 01 01 01 05 00 00 00 00 00 00 00 00 DEBUG (debug_print_packet): 85 be 73 6b 69 6e 20 30 78 37 30 0a 75 73 62 5f DEBUG (debug_print_packet): 86 be 5f 6e 75 6d 62 65 72 20 32 30 31 37 30 39 DEBUG (debug_print_packet): 87 be 74 79 70 65 20 68 69 64 0a 75 73 62 5f 76 DEBUG (debug_print_packet): 88 ae 30 30 0a 72 61 6d 5f 73 69 7a 65 20 36 34 DEBUG (ReadFile): data_read=232 DEBUG (reset_sequence): msg_reset_seq DEBUG (debug_print_packet): ff 07 85 01 01 01 00 00 00 00 00 00 00 00 00 00 DEBUG (GetIdentity): skin 0x70 usb_product_id 0xc12b fw_ver 4.11.6 arch 0x11 serial_number 20170922164511-001908 status normal hw_ver 01.00 link_type hid usb_vendor_id 0x046d link_packet_length 64 fw_type 0x00 ram_size 64MB link_hw usb feature Infrared ?&hO?U Requesting identity: 100% done Contacting website: 0% DEBUG (Post): Connecting to: members.harmonyremote.com DEBUG (Post): Path: EasyZapper/New/ProcConnectivity/Connectivity_Receive_Zaps.asp DEBUG (Post): Cookie: ASPSESSIONIDCCDSRSCR=MENKACGCCDICKAPIKABNDLLC; HR%5FUSER%5FLANGUAGE=enu; HRLB=1722579230639678372; SKIN%5FID=Harmony DEBUG (Post): UserId: 12274522 DEBUG (Post): post data: 7.3.0Windows XP (x86.1):Java4.110(null)(null)(null)1.0.00xFF:0x12917112

DEBUG (Post): Data=%3CEASYZAPPERDATA%3E%3CDATAVALUES%2F%3E%3CEVENTS%2F%3E%3CVERSIONINFORMATION%3E%3CVERSION%3E%3CCLIENTSOFTWARE%3E7.3.0%3C%2FCLIENTSOFTWARE%3E%3CCLIENTSOFTWARETYPE%3EWindows+XP+%28x86.1%29%3AJava%3C%2FCLIENTSOFTWARETYPE%3E%3CSOFTWARE%3E4.11%3C%2FSOFTWARE%3E%3CSOFTWARETYPE%3E0%3C%2FSOFTWARETYPE%3E%3CID%3E%28null%29%28null%29%28null%29%3C%2FID%3E%3CBOARD%3E1.0.0%3C%2FBOARD%3E%3CFLASH%3E0xFF%3A0x12%3C%2FFLASH%3E%3CPROTOCOL%3E9%3C%2FPROTOCOL%3E%3CARCHITECTURE%3E17%3C%2FARCHITECTURE%3E%3CSKIN%3E112%3C%2FSKIN%3E%3CREGIONS%2F%3E%3C%2FVERSION%3E%3C%2FVERSIONINFORMATION%3E%3C%2FEASYZAPPERDATA%3E%0D%0A&UserId=12274522 DEBUG (Post): POST /EasyZapper/New/ProcConnectivity/Connectivity_Receive_Zaps.asp HTTP/1.1 User-Agent: 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 Content-Type: application/x-www-form-urlencoded Host: members.harmonyremote.com Cookie: ASPSESSIONIDCCDSRSCR=MENKACGCCDICKAPIKABNDLLC; HR%5FUSER%5FLANGUAGE=enu; HRLB=1722579230639678372; SKIN%5FID=Harmony Content-Length: 617

DEBUG (Zap): Connected! DEBUG (Zap): 445 bytes sent DEBUG (Zap): 617 bytes sent DEBUG (Zap): Received: HTTP/1.1 200 OK Server: nginx/1.2.4 Date: Sat, 02 Nov 2019 23:20:57 GMT Content-Type: text/xml; charset=utf-8 Content-Length: 59 Connection: keep-alive Cache-Control: private X-Powered-By: ASP.NET X-Frame-Options: DENY

<?xml version="1.0" ?>Success DEBUG (Zap): done with web post 100% done Success! Press key to exit =======================>

swt2c commented 4 years ago

@skacon that remote is one of the newer models and as such, won't work with members.harmonyremote.com. You'll have to use mhgui to interface with the website.

Can you run concordance -vi with that latest build that you have to see if it recognizes the serial number properly?

skacon commented 4 years ago

Yes, the S/N looks good:

Serial Number: 20170922164511-001908

mhgui throws an error with a pre-configured dummy setting, created using the Windows software congruity/congruity#3

swt2c commented 4 years ago

@jaymzh this can be closed as fixed in 1.4. That should be all that's needed in concordance. There's quite of a bit of work needed in mhgui though.

skacon commented 4 years ago

I'm not sure. If I use the perl bindings, I get:

sudo perl -w test.pl -f DEBUG (FindRemote): Testing: 046D, C12B DEBUG (FindRemote): Found a Harmony! Get identity *DEBUG (GetIdentity): msg_two DEBUG (debug_print_packet): ff ff 81 00 00 00 00 00 00 00 00 00 00 00 00 00 DEBUG (GetIdentity): msg_three DEBUG (debug_print_packet): ff 00 82 00 00 00 00 00 00 00 00 00 00 00 00 00 DEBUG (ReadFile): msg_read_file DEBUG (debug_print_packet): ff 01 83 02 01 01 04 00 00 00 ea 00 00 00 00 00 DEBUG (ReadFile): msg_ack DEBUG (debug_print_packet): ff 04 84 02 01 01 01 05 00 00 00 00 00 00 00 00 DEBUG (debug_print_packet): 85 be 73 6b 69 6e 20 30 78 37 30 0a 75 73 62 5f DEBUG (debug_print_packet): 86 be 61 6c 5f 6e 75 6d 62 65 72 20 32 30 31 37 DEBUG (debug_print_packet): 87 be 6b 5f 74 79 70 65 20 68 69 64 0a 75 73 62 DEBUG (debug_print_packet): 88 b0 30 78 30 30 0a 72 61 6d 5f 73 69 7a 65 20 DEBUG (ReadFile): data_read=234 DEBUG (reset_sequence): msg_reset_seq DEBUG (debug_print_packet): ff 07 85 01 01 01 00 00 00 00 00 00 00 00 00 00 DEBUG (GetIdentity): skin 0x70 usb_product_id 0xc12b fw_ver 4.15.250 arch 0x11 serial_number 20170922164511-001908 status normal hw_ver 01.00 link_type hid usb_vendor_id 0x046d link_packet_length 64 fw_type 0x00 ram_size 64MB link_hw usb feature Infrared ?;?U ** done mfg: Logitech mfg: Harmony 950 Reading fw DEBUG (ReadFile): msg_read_file DEBUG (debug_print_packet): ff 01 ff 01 01 0b 00 00 00 00 00 00 00 00 00 00 DEBUG (ReadFile): msg_ack DEBUG (debug_print_packet): ff 04 ff 01 01 04 00 00 00 00 00 00 00 00 00 00 DEBUG (HID_ReadReport): USB read timed out DEBUG (ReadFile): data_read=0 Failed to read fw from remote

sudo perl -w test.pl -c DEBUG (FindRemote): Testing: 046D, C12B DEBUG (FindRemote): Found a Harmony! Get identity *DEBUG (GetIdentity): msg_two DEBUG (debug_print_packet): ff ff 81 00 00 00 00 00 00 00 00 00 00 00 00 00 DEBUG (GetIdentity): msg_three DEBUG (debug_print_packet): ff 00 82 00 00 00 00 00 00 00 00 00 00 00 00 00 DEBUG (ReadFile): msg_read_file DEBUG (debug_print_packet): ff 01 83 02 01 03 04 00 00 00 ea 00 00 00 00 00 DEBUG (ReadFile): msg_ack DEBUG (debug_print_packet): ff 04 84 02 01 03 01 05 00 00 00 00 00 00 00 00 DEBUG (debug_print_packet): 85 be 73 6b 69 6e 20 30 78 37 30 0a 75 73 62 5f DEBUG (debug_print_packet): 86 be 61 6c 5f 6e 75 6d 62 65 72 20 32 30 31 37 DEBUG (debug_print_packet): 87 be 6b 5f 74 79 70 65 20 68 69 64 0a 75 73 62 DEBUG (debug_print_packet): 88 b0 30 78 30 30 0a 72 61 6d 5f 73 69 7a 65 20 DEBUG (ReadFile): data_read=234 DEBUG (reset_sequence): msg_reset_seq DEBUG (debug_print_packet): ff 07 85 01 01 03 00 00 00 00 00 00 00 00 00 00 DEBUG (GetIdentity): skin 0x70 usb_product_id 0xc12b fw_ver 4.15.250 arch 0x11 serial_number 20170922164511-001908 status normal hw_ver 01.00 link_type hid usb_vendor_id 0x046d link_packet_length 64 fw_type 0x00 ram_size 64MB link_hw usb feature Infrared 6JeU ** done mfg: Logitech mfg: Harmony 950 Reading config from remote DEBUG (ReadFile): msg_read_file DEBUG (debug_print_packet): ff 01 ff 01 01 0b 00 00 00 00 00 00 00 00 00 00 DEBUG (ReadFile): msg_ack DEBUG (debug_print_packet): ff 04 ff 01 01 04 00 00 00 00 00 00 00 00 00 00 DEBUG (HID_ReadReport): USB read timed out DEBUG (ReadFile): data_read=0 failed to read config from remote

Also, all three get_serial() calls return Nothing (undef). So, although

concord::get_identity(\&cb, 0); print 'mfg: ' . concord::get_mfg() . "\n"; print 'mfg: ' . concord::get_model() . "\n";

work, get_serial() is not.

swt2c commented 4 years ago

Yeah, I don't think the perl bindings have been maintained...