There is a Harman Kardon Remote app on [Wayback/Archive.is] Android and [Wayback/Archive.is] iOS.
It can control Harman Kardon AVR and BDS devices, and the communication appears to be simple XML over HTTP according to [Wayback/Archive.is] H/K AVR 151 Remote Control API – Adam Parsons.
It got reverse engineered into two libraries, both based on string concatenating XML HTTP requests:
- a PHP based library at [Wayback/Archive.is] KarimGeiger/HKAPI: API wrapper for Harman Kardon AVR with network capabilities and HK Remote support.
- a JavaScript library at [Wayback/Archive.is] andrei4002/homebridge-harman-kardon-avr: not working. wip
Note:
- the Harman Kardon Remote app only runs on my local IPv4 subnet (it won’t work routing from one IPv4 to another IPv4), hopefully the API works better
- the app does auto-detect (wich often fails) of on-line Harman Kardon AVR/BDS devices, I wonder how that is implemented
- there is this [Wayback] Harman Kardon AVR – Home Assistant plugin
- it works on some JBL devices too, as they are based on Harman Kardon internals: [Wayback] Harmon/Kardon AVR – Configuration – Home Assistant Community
I just tested it with a unit test and it work on my JBL AVR101 (same API as the Harman/Kardon)
- that the Harman Kardon remoting protocol is quite unstable (and even worse than the above Remote apps) that can only be solved by cold-rebooting your Harman Kardon device (observed this both on a BDS 277 and BDS 580), so be sure to have a remote controlled power outlet for that.
- You often have to cold-reboot these anyway because they stop listening to the IR-remote control as well or listen to HDMI commands (like ARC or CEC), so I already had such a switch in place.
- Same for Samsung TVs that over time will not wake up using CEC and require cold-rebooting
- various devices and firmware versions have different ideas of the
sleep
command and eventually can perform a full shutdown, see the comments at [Wayback/Archive.is] Add list of known devices · KarimGeiger/HKAPI@6036d4f. - the Harkan Kardon Remote protocol is totally different from the Harman Kardon Controller protocol used by the Harman Kardon Controller apps on [Wayback/Archive.is] Android and [Wayback/Archive.is] iOS.
- For people interested: the Harman Kardon Controller protocol is for the Harman Kardon Omni speakers and use a JSON/REST API, with:
- documentation at [Wayback] REST API Specification (including PubNub JSON format) — Harman Developer 1.0 documentation.
- implementation in Groovy at [Wayback/Archive.is] tylerfreckmann/smartthings: harman smartthings integration
- via [Wayback] Suport for Harman Kardon Omni speakers – Feature Requests – Home Assistant Community
- For people interested: the Harman Kardon Controller protocol is for the Harman Kardon Omni speakers and use a JSON/REST API, with:
–jeroen