HTWebRemote Documentation

This document explains how to use the HTWebRemote control software.
The basic idea is that HTWebRemote runs in the background and commands can be sent to it from any device that can load a web URL.

You must allow port {port}/TCP incoming on the PC that is running this software in order for the remote UI to function.
The software takes care of this firewall rule for you the first time you run it.

There are 3 main modes of operation for HTWebRemote.

Operation Modes

Supported Devices

Jump to Supported Devices

Remote Control Webpage Builder

This is the main mode of operation that most people will use.
The idea of this mode is for you to build remote control layouts with buttons (in this program's editor) and assign one or more commands to each button.
Then you will open the remote control most likely on your phone or tablet to press the buttons.

The URL of your remote control will be here: http://{BASEIP}:{port}

File Browser

In the web page interface, there is also a file browser feature.
The purpose of this feature is for you to add folder paths to it, and then you will be able to browse these folder paths from your phone or tablet to easily select media to play.

The URL of your file browser will be here: http://{BASEIP}:{port}/FB

YouTube Browser

Also included in the web page mode of operation is a YouTube browser and video launching feature.
You can copy and paste a YouTube link or browse YouTube by search phrase and easily send the YouTube video to play on your HTPC in a browser or even send the YouTube video to your media player such as MPC-HC/BE or VLC.

Voice Commands

The Voice Command manager allows you to define voice commands that when spoken, can trigger HTWebRemote commands. This is a completely offline service and is very fast.
Voice commands are also only supported by HTWebRemote when running on Windows, and it uses the audio input device that is set to the default in Windows.

You can set a confidence value for each voice command that can help fine-tune the sensitivity to triggering.
There is a "Test Mode" provided that can help you determine the optimal confidence value to set, by showing you what the confidence value is when you speak one of the commands phrases.

Global Hotkeys

The Global Hotkeys manager allows you to define global hotkeys, that when pressed in Windows, can trigger HTWebRemote commands.
Global meaning the hotkey will be triggered no matter what application is running or has keyboard focus.

This feature works well with a FLIRC USB IR reciever.
Using a FLIRC allows you to use any random button on any random IR remote control to generate hotkey presses in Windows, and thus trigger any HTWebRemote commands.

Mobile "WebApp" Mode

Consider adding your remote control page to the home screen of your phone or tablet.
This will give you more vertical space to see your remote control buttons and also give you a nice App icon to quickly access your remote control.

If you don't know how to do this, just do a web search for how to add a web page to your home screen for either iPhone or Android.

Siri and Apple Widgets Integration

To learn how to create Siri voice commands to send any HTWebRemote command or macro (on iPhone/iPad/AppleWatch/HomePod),
or to create native homescreen Widget buttons (on iPhone/iPad/AppleWatch), see this wiki page.


Command Line Mode

This mode allows you to issue commands by running HTWebRemote.exe with command line parameters without HTWebRemote running in the background.

To do this, run HTWebRemote.exe from the windows command line or a .bat file and pass in the device, command, and parameter values to send.
This can be useful to send commands to your home theater devices from other software that can run a command line operation or .bat script such as madVR or Kodi when an event happens.

Command Line Format 1

HTWebRemote.exe "IP" "devtype" "cmd" "param" "special(specialData)"

Example Command Line Format 1 Usage:

HTWebRemote.exe "192.168.1.100" "jvc" "PMLP" "1" "special(NZpassword)"

This command consists of 5 parameters:

Command Line Format 2

HTWebRemote.exe "devname" "cmd" "param"

Example Command Line Format 2 Usage:

To use this format, first you need to configure your device in the "Configure Devices" screen.

HTWebRemote.exe "myjvc" "PMLP" "1"

This command consists of 3 parameters:


URL Command API

This mode allows you to easily issue commands from other computers or devices on your network or to send commands from another software program as an API into HTWebRemote.

URL Command Format 1

http://{BASEIP}:{port}?ip=ip&devtype=devtype&cmd=command&param=param&special=specialData

This URL command consists of 5 query strings:

URL Command Format 2

http://{BASEIP}:{port}?devname=devname&cmd=command&param=param

To use this format, first you need to configure your device in the "Configure Devices" screen.

This URL command consists of 3 query strings:


Directly Supported Devices

HTWebRemote supports several devices, but I would like to add more.
Please leave a comment on GitHub or one of the other discussion pages for the app and let me know what device you would like to see supported.
I will likely need a person with access to the device to help test in order to add new devices.

I also welcome others to contribute more device support via GitHub.

Before you can start adding device commands to a remote control, you will need to add its IP address and port number (for some devices) to the device configuration file.
On the configuration screen you will also give your devices a name so that you can specify multiple of the same device type with different IP addresses.
There is a link from the main application screen for this.

Unofficially Supported Devices (Tested Working by the Community)

HTWebRemote can support controlling a lot of other devices through generic control methods such as generic TCP/UDP sockets and HTTP REST APIs.
The following page is a list of devices that users have successfully controlled with HTWebRemote.

Other Device Support

Windows / Linux Control

For Windows / Linux control, the device identifier is: pc

The intended use of the PC control is to run scripts or applications.
You will have to use your imagination for what you can all do with a script or external application.

Windows Control

For Windows, the path to a .bat script or .exe can be specified by absolute path or by a relative path to HTWebRemote.exe
Please be aware that .bat files and .exe files are case sensitive when calling them from your commands.
You can also use a subfolder inside the same folder as HTWebRemote.exe such as a folder called "scripts" and call it as "scripts/script.bat" in the cmd. Finally, you can also specify other file types in the cmd, and HTWebRemote will open that file with the default program you have assigned to that file type in Windows.

You can also control the Windows volume with the PC control. See the Example section below for the list of volume commands.

Some .bat Script Example Ideas

(Put the following code inside a .bat file):

Start a program (like Kodi)
"C:\Program Files (x86)\Kodi\kodi.exe"

Close a program (like Kodi)
taskkill /IM kodi.exe

Shutdown PC
shutdown /s /t 0

Loop a Command (set Denon/Marantz volume to -10dB, then increase by 0.5dB every 5 seconds 20 times)
HTWebRemote.exe "dm" "MV70"
FOR /L %%A IN (1,1,20) DO (
HTWebRemote.exe "dm" "MVUP"
timeout /t 5
)

Windows Volume Control Commands
Windows Volume Query Command

Linux Control

For Linux, simply enter the full linux command line command into the cmd box.
You must use the full path to the script or program.
The command can include parameters and everything and any command "should" work.


Keyboard Hotkey Control

For keyboard hotkey control, the device identifier is: keys

Keyboard hotkey control is for simulating key presses to programs running on the PC that HTWebRemote is running on, with the intention to control those applications.

Key Parameter Formats

To specify a single keyboard character, use the character itself. For example, to press the letter A, pass in the character "A" as the cmd without quotes.
To represent more than one character, append each additional character to the one preceding it. To press the letters A, B, and C, specify the parameter as "ABC" as the cmd without the quotes.

The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses () have special meanings. To press one of these keys, enclose it within braces ({}).
For example, to press the plus sign, use "{+}". To press brace characters, use "{{}" and "{}}". Brackets ([ ]) have no special meaning, but you must enclose them in braces too.

To specify characters that aren't displayed when you press a key, such as ENTER or TAB, and keys that represent actions rather than characters, use the codes in the following list.

To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following words.

To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses.
For example, to specify to hold down SHIFT while E and C are pressed, use "shift(EC)". To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use "shiftEC".

To specify repeating keys, use the form {key #}. You must put a space between key and number. For example, {LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press H 10 times.

Key Combo Examples


Media Player Classic Control

For Media Player Classic control, the device identifier is: mpc

Media Player Classic control works with both the MPC-HC and MPC-BE variants.

To use, make sure to enable the Web Interface in MPC found in Options -> Web Interface -> enable "Listen on port:"

Then make sure to add the IP:port to the device IPs configuration in HTWebRemote.

MPC Commands


Kodi Media Player Control

For Kodi Media Player control, the device identifier is: kodi

In order to control Kodi, you need to allow remote control via HTTP.

This setting can be found in Settings -> Services -> Control -> Allow remote control via HTTP

If you enable "Require authentication", make sure you provide the user:pass in the Device Configuration screen in HTWebRemote.

Commands


Zoom Player Control

For Zoom Player control, the device identifier is: zoom

Some Basic Commands

Complete list of Zoom Player network control commands.


Nvidia Shield Control

For Nvidia Shield control, the device identifier is: nvshield

Initial Setup

Before you can control your Nvidia Shield, you first need to enable "Network debugging".

To turn on "Network debugging":

Or see this video for how to enable "Network debugging"

Next, you need to install ADB (Android debug bridge) on your computer.

The first time you try to send a command to your Shield, you will get a popup message on your TV asking you to allow the PC to control your Shield.

Commands

Common Remote Buttons

Complete list of potential valid keycodes

You may find the reboot command useful in a startup or other macro button for the following reasson.

*Users have reported that if the Shield has put up its screensaver before you start Amazon Prime Video, you will only get stereo audio from the Amazon Prime Video app, not any kind of surround sound.

Launching Apps

You can open and close apps by using the included shortcut names.

cmd=start or stop
param=appname

Shortcut app names:

To start and stop apps not in the included list, the process is a little more involved.

Please make sure to launch a new app at least once before proceeding with Method 1 or Method 2.

Method 1:

The first method you can try is to get the app's package name.

cmd=start or stop
param=com.google.android.youtube.tv

For some apps, this Method 1 doesn't work. In this case use Method 2 which should work.

Method 2:

For this method you will get the app's unique start activity.

Example output from this command looks something like this:

Activity Resolver Table:
Schemes:
vnd.youtube:
4a40f75 com.google.android.youtube.tv/com.google.android.apps.youtube.tv.activity.ShellActivity filter afe9959
Action: "android.intent.action.VIEW"

The bolded part from above is the app's unique start activity. Simply paste that into the param box for a cmd=start to launch the app.

cmd=start
param=com.google.android.youtube.tv/com.google.android.apps.youtube.tv.activity.ShellActivity

cmd=stop
param=com.google.android.youtube.tv

Other Commands

You should be able to enter in any custom adb command into the cmd box that adb.exe supports.


Roku Control

For Roku control, the device identifier is: roku

Remote Commands

Enter these into the cmd box:

Some Rokus support these buttons:

You can even write words into a text box like this to write "roku"

There are even some keys you can send that are not available on any physical remote.
Enter is for completing keyboard entry fields, such as search fields (it is not the same as Select).
Search is used for pressing and holding down the microphone/magnifying glass button, which causes the Roku Voice heads-up display to listen for a voice command.

Launching Apps

To launch an app on the Roku, you will need to find the App ID or Channel ID.
You can find a list of App IDs by going to this URL in your browser:

http://ROKUIP:8060/query/apps

Examples (Enter into cmd box)

Replace the number with the cooresponding App ID of the app you want to launch.

Other Commands

You can send other commands to a Roku, but you will have to figure those out on your own from the following documentation link.

Complete Roku network control documentation.


Zappiti Control

For Zappiti control, the device identifier is: zappiti

Some Basic Commands

Complete list of potential valid keycodes


WinLIRC / LIRC Control

For WinLIRC / LIRC control, the device identifier is: lirc

LIRC is the Linux IR Control software. There is also a compatible Windows port called WinLIRC.

Command Info


Wemo Smart Plug

For Wemo Smart Plug control, the device identifier is: wemo

The model that was tested to work with this device plugin is the Belkin F7C063 Wemo Mini Smart Plug.

Wemo Commands


TP-Link Kasa Smart Devices

For TP-Link Kasa control, the device identifier is: kasa

Your devices may not work if the firmware is too new (so don't update them if you can avoid it). I am not well versed in these devices but give them a try.

Some Example device models that should work:

Supported Commands

If you are looking for more control than the above supported commands, then you need to find out the raw JSON payload to send.

I would recommend installing this program (python-kasa) and using it to issue commands with the --debug parameter
This will show you what raw JSON command is being sent to the device, and you can enter that into the cmd box.

Example Raw Commands


Philips Hue Bridge

For Philips Hue Bridge control, the device identifier is: hue

Before you can send commands to your Philips Hue Bridge, you first need to authorize HTWebRemote.
To do this follow these steps:

  1. Add your Philips Hue Bridge IP to the "Configure Devices" screen.
  2. Click the "Get Hue Auth" button.
  3. Press the Link Button on your Hue Bridge, and then click the OK button on the popup in HTWebRemote.

Hue lights have a set of values that are not necessarily easy to understand.
The best way to find out what settings you want to set your lights to, is to set your lights how you like in the official Hue App first, and then print out the values of those lights in HTWebRemote.
Values can either be set for an individual light, or a group of lights. In the official Hue app, these groups of lights are called Rooms or Zones.

To view the current values of your Lights, Rooms, and Zones you can create a button in HTWebRemote with the following commands:

Once you add one of these words to a button command, you can click the "Test CMDs" button and you should see a pop-up with a list of all your lights, rooms, or zones.
From here you can click on an item to see all the properties of that item. For Lights, this shows you the ID as well as the various current settings for that light.
For Rooms and Zones, it shows you the ID as well as the available Scenes that can be activated that apply to that Room or Zone.

Supported Light/Room/Zone Commands

Supported Light/Room/Zone Parameters

Supported Scene Commands

Supported Scene Parameters

Notes and Tips


Denon / Marantz AVR Control

For Denon / Marantz control, the device identifier is: dm

Denon and Marantz AVRs and Processors all use the same commands.

Some Basic Commands

Denon and Marantz Query Commands

For all Denon commands, see the full Denon command document here:
Denon_X8500H.pdf

For all Marantz commands, see the full Marantz command document here:
Marantz_AV8805.pdf

Or look up the IP control document for your particular Denon or Marantz AVR or processor.


Yamaha AVR Control

For Yamaha control, the device identifier is: yamaha

Some Basic Commands

Please exclude the @ symbol before a command (as per the protocol specification) since HTWebRemote automatically includes the @ symbol for you.

For all Yamaha commands, see the full Yamaha command document here:
Yamaha_YNCA.pdf

See the full list of raw Yamaha commands here:
Yamaha_Commands.txt

Or look up the IP control document for your particular Yamaha AVR


Emotiva AVR Control

For Emotiva control, the device identifier is: emotiva

This has only been tested with the XMC-1 and RMC-1, but it probably works with the other RMC variants and the XMC-2.

Some Basic Commands

For all Emotiva commands, see the full Emotiva command document here:
Emotiva_XMC-1.pdf

Or look up the IP control document for your particular Emotiva processor.


StormAudio ISP AVR Control

For StormAudio ISP control, the device identifier is: storm

Some Basic Commands

StormAudio ISP Query Command

For all StormAudio ISP commands, see the full StormAudio ISP command document here:
StormAudio_ISP.pdf

Or look up the IP control document for your particular StormAudio ISP processor.


Monoprice HTP-1 AVR Control

For Monoprice HTP-1 control, the device identifier is: htp1

Some Basic Commands (IR NEC Codes)

param:

You can also include multiple IR NEC Codes in one command by separating them with commas.

Advanced Commands

To find out the cmd and param for advanced commands you need to follow these steps:

Some Example Advanced Commands

HTP-1 Query Command

For all Monoprice HTP-1 IR commands, see the full Monoprice HTP-1 command document here (IR commands near the end):
Monoprice_HTP-1.pdf


Anthem MRX AVR Control

For Anthem MRX control, the device identifier is: anthem

Some Basic Commands

For all Anthem MRX commands, see the full Anthem MRX command document here:
Anthem_MRX.pdf


Lyngdorf AVR Control

For Lyngdorf control, the device identifier is: lyngdorf

Some Basic Commands

Example Query Commands

For all Lyngdorf commands, see the full Lyngdorf command document here:
Lyngdorf.pdf


Trinnov Altitude AVR Control

For Trinnov control, the device identifier is: trinnov

Some Basic Commands

For all Trinnov Altitude commands, see the full Trinnov Altitude command document here:
Trinnov_Altitude.pdf


Onkyo/Integra/Pioneer AVR Control (eISCP Protocol)

For eISCP Control, the device identifier is: eiscp

Many, but not all Onkyo/Integra/Pioneer AVRs and processors use the eISCP Protocol (Integra Serial Communication Protocol over Ethernet).

Some Basic Commands

For all eISCP commands, see the following documents here:
Onkyo_Integra_AVR_2016.pdf
Onkyo_Integra_AVR_2019.pdf
Pioneer_AVR.pdf

Or look up the eISCP document for your particular Onkyo/Integra/Pioneer AVR or processor.


JVC Projector Control

For JVC control, the device identifier is: jvc

The main commands HTWebRemote supports for JVC projectors are 2 digit IR codes.
There are also a many more advanced commands you can build listed below that are supported.

JVC NZ/NX Series IR Codes (should work with other JVC too)

Use these 2 digit codes for the command.

JVC NZ/NX Series Extra RS232 Commands (works with older JVC too)

You can craft pretty much any RS232 command for JVC by following the External Command Communication Specification document from the JVC website.

Some Example Commands

Note for JVC NZ or other 2021 or newer JVC projectors

For 2021 and newer JVC projectors like the laser NZ units, you must also specify a network password.
To specify the network password, simply put the password into the "special" data field.
Some 2021+ models from some world regions do not need a network password.

For all JVC NX commands, see the full JVC NX command document here:
JVC_NX.pdf

For all JVC NZ commands, see the full JVC NZ command document here:
JVC_NZ.pdf

Or look up the IP control document for your particular JVC Projector.


Sony Projector Control

For Sony Projector control, the device identifier is: sonyproj

To use Sony Projector control, you must enable the ADCP control protocol in the projector's network settings.
An easy way to enable this is to go to the IP of your Sony projector in a web browser and enable the ADCP control mode in the settings there.

You can normally turn off authentication in ADCP settings, but if you want it on you must use the admin password that you set for root
when you first connected to the projector web interface.

The default login for the Sony projector web interface is user=root pass=Projector

Some Basic Commands

Note, you must include the quotes " " around the param values.

For all Sony Projector commands, see the full Sony Projector command document here:
Sony_Proj_cmds.pdf

Or look up the IP control document for your particular Sony Projector.


Epson Projector Control

For Epson Projector control, the device identifier is: epson

Some Basic Commands

Query Commands

You can run most query commands on an Epspon to read out data values.
This may be useful when adjusting calibration controls for example.

Query Command Format: query:cmdhere x1
Example Query Command: query:GAMMALV? 00

When referring to the Epson commands list documentation, x1 refers to parameter 1 for a command, and x2 refers to parameter 2 and so on...

For all Epson commands, see the full Epson command document here:
Epson_PJ.pdf


BenQ Projector Control

For BenQ control, the device identifier is: benq

So far this has only been tested with a BenQ LK970, but it probably works with other BenQ models, especially similar models such as LK990 and HT9060/9050.

Some Basic Commands

For all BenQ commands, see the full BenQ command document here:
BenQ_LK970.pdf

Or look up the IP control document for your particular BenQ Projector.


Christie M-Series / TruLife+ Projector Control

For Christie control, the device identifier is: christie

Some Basic Commands

For all Christie M-Series commands, see the full Christie M-Series command document here:
Christie_M-Series.pdf

For all Christie TrueLife+ commands, see the full Christie TrueLife+ command document here:
Christie_TruLife+.pdf


Panasonic Projector Control

For Panasonic Projector control, the device identifier is: panaproj

Some Basic Commands

For all Panasonic projector commands, see the full Panasonic command document here:
Panasonic_Proj_cmds.pdf

Or look up the IP control document for your particular Panasonic Projector.


LG webOS Control

For LG webOS control, the device identifier is: lgwebos

Power Control

To turn ON the TV you must use Wake-on-LAN.
To turn OFF the TV, use cmd=poweroff

If this isn't working on a 2022 or newer LG TV or firmware, try enabling the SSL checkbox in the Configure Devices screen.

Supported Commands

Opening and closing Apps

To find the appid to supply to the param for openapp and closeapp issue the command: cmd=applist
This will open a screen on your PC listing all the apps that are installed on your TV and their appid.

Switching Inputs

Inputs are treated like apps.
Like above, use cmd=applist to find the appid for the input you want, and then switch to it with openapp.


Samsung Tizen Control

For Samsung Tizen control, the device identifier is: samsungtizen

You can send key codes or open and close applications.

Please note that every key and every App ID will not work on every TV model.
I included as many possible key codes and application IDs as I could find below.

Example Commands

Key codes

Power Keys

For some TVs you must power them ON with Wake-on-LAN instead.

Key Description
KEY_POWEROFF PowerOFF
KEY_POWERON PowerOn
KEY_POWER PowerToggle

Input Keys

Key Description
KEY_SOURCE Source
KEY_COMPONENT1 Component1
KEY_COMPONENT2 Component2
KEY_AV1 AV1
KEY_AV2 AV2
KEY_AV3 AV3
KEY_SVIDEO1 SVideo1
KEY_SVIDEO2 SVideo2
KEY_SVIDEO3 SVideo3
KEY_HDMI HDMI
KEY_HDMI1 HDMI1
KEY_HDMI2 HDMI2
KEY_HDMI3 HDMI3
KEY_HDMI4 HDMI4
KEY_FM_RADIO FMRadio
KEY_DVI DVI
KEY_DVR DVR
KEY_TV TV
KEY_ANTENA AnalogTV
KEY_DTV DigitalTV

Number Keys

Key Description
KEY_1 Key1
KEY_2 Key2
KEY_3 Key3
KEY_4 Key4
KEY_5 Key5
KEY_6 Key6
KEY_7 Key7
KEY_8 Key8
KEY_9 Key9
KEY_0 Key0

Misc Keys

Key Description
KEY_PANNEL_CHDOWN 3D
KEY_ANYNET AnyNet+
KEY_ESAVING EnergySaving
KEY_SLEEP SleepTimer
KEY_DTV_SIGNAL DTVSignal

Channel Keys

Key Description
KEY_CHUP ChannelUp
KEY_CHDOWN ChannelDown
KEY_PRECH PreviousChannel
KEY_FAVCH FavoriteChannels
KEY_CH_LIST ChannelList
KEY_AUTO_PROGRAM AutoProgram
KEY_MAGIC_CHANNEL MagicChannel

Volume Keys

Key Description
KEY_VOLUP VolumeUp
KEY_VOLDOWN VolumeDown
KEY_MUTE Mute

Direction Keys

Key Description
KEY_UP NavigationUp
KEY_DOWN NavigationDown
KEY_LEFT NavigationLeft
KEY_RIGHT NavigationRight
KEY_RETURN NavigationReturn/Back
KEY_ENTER NavigationEnter

Media Keys

Key Description
KEY_REWIND Rewind
KEY_STOP Stop
KEY_PLAY Play
KEY_FF FastForward
KEY_REC Record
KEY_PAUSE Pause
KEY_LIVE Live
KEY_QUICK_REPLAY fnKEY_QUICK_REPLAY
KEY_STILL_PICTURE fnKEY_STILL_PICTURE
KEY_INSTANT_REPLAY fnKEY_INSTANT_REPLAY

Picture-in-Picture Keys

Key Description
KEY_PIP_ONOFF PIPOn/Off
KEY_PIP_SWAP PIPSwap
KEY_PIP_SIZE PIPSize
KEY_PIP_CHUP PIPChannelUp
KEY_PIP_CHDOWN PIPChannelDown
KEY_AUTO_ARC_PIP_SMALL PIPSmall
KEY_AUTO_ARC_PIP_WIDE PIPWide
KEY_AUTO_ARC_PIP_RIGHT_BOTTOM PIPBottomRight
KEY_AUTO_ARC_PIP_SOURCE_CHANGE PIPSourceChange
KEY_PIP_SCAN PIPScan

Mode Keys

Key Description
KEY_VCR_MODE VCRMode
KEY_CATV_MODE CATVMode
KEY_DSS_MODE DSSMode
KEY_TV_MODE TVMode
KEY_DVD_MODE DVDMode
KEY_STB_MODE STBMode
KEY_PCMODE PCMode

Color Keys

Key Description
KEY_GREEN Green
KEY_YELLOW Yellow
KEY_CYAN Cyan
KEY_RED Red

Teletext Keys

Key Description
KEY_TTX_MIX TeletextMix
KEY_TTX_SUBFACE TeletextSubface

Aspect Ratio Keys

Key Description
KEY_ASPECT AspectRatio
KEY_PICTURE_SIZE PictureSize
KEY_4_3 AspectRatio4:3
KEY_16_9 AspectRatio16:9
KEY_EXT14 AspectRatio3:4(Alt)
KEY_EXT15 AspectRatio16:9(Alt)

Picture Mode Keys

Key Description
KEY_PMODE PictureMode
KEY_PANORAMA PictureModePanorama
KEY_DYNAMIC PictureModeDynamic
KEY_STANDARD PictureModeStandard
KEY_MOVIE1 PictureModeMovie
KEY_GAME PictureModeGame
KEY_CUSTOM PictureModeCustom
KEY_EXT9 PictureModeMovie(Alt)
KEY_EXT10 PictureModeStandard(Alt)

Menu Keys

Key Description
KEY_MENU Menu
KEY_TOPMENU TopMenu
KEY_TOOLS Tools
KEY_HOME Home
KEY_CONTENTS Contents
KEY_GUIDE Guide
KEY_DISC_MENU DiscMenu
KEY_DVR_MENU DVRMenu
KEY_HELP Help

OSD Keys

Key Description
KEY_INFO Info
KEY_CAPTION Caption
KEY_CLOCK_DISPLAY ClockDisplay
KEY_SETUP_CLOCK_TIMER SetupClock
KEY_SUB_TITLE Subtitle

Zoom Keys

Key Description
KEY_ZOOM_MOVE ZoomMove
KEY_ZOOM_IN ZoomIn
KEY_ZOOM_OUT ZoomOut
KEY_ZOOM1 Zoom1
KEY_ZOOM2 Zoom2

Other Keys

Key Description
KEY_WHEEL_LEFT WheelLeft
KEY_WHEEL_RIGHT WheelRight
KEY_ADDDEL Add/Del
KEY_PLUS100 Plus100
KEY_AD AD
KEY_LINK Link
KEY_TURBO Turbo
KEY_CONVERGENCE Convergence
KEY_DEVICE_CONNECT DeviceConnect
KEY_11 Key11
KEY_12 Key12
KEY_FACTORY KeyFactory
KEY_3SPEED Key3SPEED
KEY_RSURF KeyRSURF
KEY_FF_ FF_
KEY_REWIND_ REWIND_
KEY_ANGLE Angle
KEY_RESERVED1 Reserved1
KEY_PROGRAM Program
KEY_BOOKMARK Bookmark
KEY_PRINT Print
KEY_CLEAR Clear
KEY_VCHIP VChip
KEY_REPEAT Repeat
KEY_DOOR Door
KEY_OPEN Open
KEY_DMA DMA
KEY_MTS MTS
KEY_DNIe DNIe
KEY_SRS SRS
KEY_CONVERT_AUDIO_MAINSUB ConvertAudioMain/Sub
KEY_MDC MDC
KEY_SEFFECT SoundEffect
KEY_PERPECT_FOCUS PERPECTFocus
KEY_CALLER_ID CallerID
KEY_SCALE Scale
KEY_MAGIC_BRIGHT MagicBright
KEY_W_LINK WLink
KEY_DTV_LINK DTVLink
KEY_APP_LIST ApplicationList
KEY_BACK_MHP BackMHP
KEY_ALT_MHP AlternateMHP
KEY_DNSe DNSe
KEY_RSS RSS
KEY_ENTERTAINMENT Entertainment
KEY_ID_INPUT IDInput
KEY_ID_SETUP IDSetup
KEY_ANYVIEW AnyView
KEY_MS MS
KEY_MORE
KEY_MIC
KEY_NINE_SEPERATE
KEY_AUTO_FORMAT AutoFormat
KEY_DNET DNET

Auto ARC Keys

Key Description
KEY_AUTO_ARC_C_FORCE_AGING
KEY_AUTO_ARC_CAPTION_ENG
KEY_AUTO_ARC_USBJACK_INSPECT
KEY_AUTO_ARC_RESET
KEY_AUTO_ARC_LNA_ON
KEY_AUTO_ARC_LNA_OFF
KEY_AUTO_ARC_ANYNET_MODE_OK
KEY_AUTO_ARC_ANYNET_AUTO_START
KEY_AUTO_ARC_CAPTION_ON
KEY_AUTO_ARC_CAPTION_OFF
KEY_AUTO_ARC_PIP_DOUBLE
KEY_AUTO_ARC_PIP_LARGE
KEY_AUTO_ARC_PIP_LEFT_TOP
KEY_AUTO_ARC_PIP_RIGHT_TOP
KEY_AUTO_ARC_PIP_LEFT_BOTTOM
KEY_AUTO_ARC_PIP_CH_CHANGE
KEY_AUTO_ARC_AUTOCOLOR_SUCCESS
KEY_AUTO_ARC_AUTOCOLOR_FAIL
KEY_AUTO_ARC_JACK_IDENT
KEY_AUTO_ARC_CAPTION_KOR
KEY_AUTO_ARC_ANTENNA_AIR
KEY_AUTO_ARC_ANTENNA_CABLE
KEY_AUTO_ARC_ANTENNA_SATELLITE

Panel Keys

Key Description
KEY_PANNEL_POWER
KEY_PANNEL_CHUP
KEY_PANNEL_VOLUP
KEY_PANNEL_VOLDOW
KEY_PANNEL_ENTER
KEY_PANNEL_MENU
KEY_PANNEL_SOURCE
KEY_PANNEL_ENTER

Extended Keys

Key Description
KEY_EXT1
KEY_EXT2
KEY_EXT3
KEY_EXT4
KEY_EXT5
KEY_EXT6
KEY_EXT7
KEY_EXT8
KEY_EXT11
KEY_EXT12
KEY_EXT13
KEY_EXT16
KEY_EXT17
KEY_EXT18
KEY_EXT19
KEY_EXT20
KEY_EXT21
KEY_EXT22
KEY_EXT23
KEY_EXT24
KEY_EXT25
KEY_EXT26
KEY_EXT27
KEY_EXT28
KEY_EXT29
KEY_EXT30
KEY_EXT31
KEY_EXT32
KEY_EXT33
KEY_EXT34
KEY_EXT35
KEY_EXT36
KEY_EXT37
KEY_EXT38
KEY_EXT39
KEY_EXT40
KEY_EXT41

Application IDs

Application Older TVs (< 2020) Newer TVs (>= 2020)
Netflix 11101200001 3201907018807
YouTube 111299001912 111299001912
YouTube TV - 3201707014489
YouTube Kids 3201611010983 3201611010983
HBO GO 3201706012478 -
HBO Max - 3201601007230
Hulu - 3201601007625
Plex 3201512006963 3201512006963
Prime Video 3201512006785 3201910019365
Rakuten TV 3201511006428 3201511006428
Disney+ 3201901017640 3201901017640
NOW TV 3201603008746 3201603008746
NOW PlayTV 3202011022131 -
VOYO.RO 111299000769 -
Pluto TV 3201808016802 3201808016802
Discovery+ - 3201803015944
IPTV Smarters - 3201812017585
IPTV Smarters Pro - 3202009021808
Apple TV - 3201807016597
Apple Music - 3201908019041
Amazon Music 3201710014874 -
Spotify 3201606009684 3201606009684
TIDAL 3201805016367 -
TuneIn 121299000101 -
Deezer 3201608010191 -
Radio UK 3201711015226 -
Radio WOW 3202012022468 -
Steam Link 3201702011851 -
Gallery 3201710015037 3201710015037
Internet org.tizen.browser 3201907018784
Focus Sat 3201906018693 -
PrivacyChoices 3201909019271 -
AntenaPlay.ro 3201611011005 -
Eurosport Player 3201703012079 3201703012079
EduPedia 3201608010385 -
BBC News 3201602007865 3201602007865
BBC Sounds - 3202003020365
BBC iPlayer - 3201601007670
The Weather Network 111399000741 -
Orange TV Go 3201710014866 -
Facebook Watch 11091000000 11091000000
ITV Hub 121299000089 121299000089
UKTV Play - 3201806016432
All 4 - 111299002148
VUDU - 111012010001
Explore Google Assistant - 3202004020674
Amazon Alexa - 3202004020626
My5 121299000612 121299000612
SmartThings 3201710015016 3201910019378
BritBox - 3201909019175
TikTok - 3202008021577
RaiPlay - 111399002034
DAZN - 3201806016390
McAfee Security 3201612011418 -
hayu 3201806016381 -
Tubi Free Movies & TV - 3201504001965
CTV - 3201506003486
Crave 3201506003488 3201506003488
MLB 3201603008210 -
Love Nature 4K 3201703012065 -
SiriusXM 111399002220 -
7plus 3201803015934 3201803015934
9Now 3201607010031 -
Kayo Sports 3201910019354 -
ABC iview 3201812017479 -
10 play 3201812017479 3201704012147
Telstra TV Box Office 11101000407 -
Telecine 3201604009182 -
globoplay 3201908019022 -
DIRECTV GO 3201907018786 -
Stan - 3201606009798
BINGE - 3202010022098
Foxtel - 3201910019449
SBS On Demand - 3201510005981
Security Center - 3202009021877
Google Duo - 3202008021439
Kidoodle.TV FREE, KidSafe Videos - 3201910019457
Emby - vYmY3ACVaa.emby
Pathe Thuis - 3201506003175
Canaal Digitaal - 3201803015869
NL Ziet - 3202012022421
NPO - 3201706014250
Kijk - 3201901017768
Videoland - 3201810017074
Universal Guide 3201710015067 -
CANAL+ - 3201606009910
Molotov - 3201611011210
OQEE by Free - 3202103023185
B.tv - 3201910019420
RMC Sport - 3201704012212
Telefoot - 3202008021462
Playzer - 3201810017091
OCS - 3201703012029
ARTE - 3202011022316
Benshi - 3202007021336
france.tv - 3202103023232
Mako - 3201506003716
Reshet13 - 3201812017600
Kan11 - 3201803015997
Movistar TV Chile 111299001957 -
Estadio TNT Sports 3201712015454 -
13 Now 3201905018499 -
Mi Perro Chocolo 3201706014259 -
Blackdove Video Art - 3201705012375
Paramount+ - 3201710014981
ESPN - 3201708014618
Peacock TV - 3202006020991
AMC - 3201811017337
Showmax - 3201506002963

Oppo Disc Player

For Oppo control, the device identifier is: oppo

In order for Power ON to work, the player must have the "Quick Start" or "Network Standby" mode selected under Setup Menu / Device Setup / Standby Mode.

Some Basic Commands

For all Oppo commands, see the full Oppo command document here:
Oppo_UDP-20X.pdf


D-BOX HEMC Control

For D-BOX control, the device identifier is: dbox

Chair Commands

(Replace # with the numerical identifier of the chair (1,2,3) that you want to control)

HEMC Commands

For all D-BOX commands, see the full D-BOX command document here:
D-BOX_HEMC.pdf


HDfury Device Control

For HDfury Device control, the device identifier is: hdfury

Some basic HDfury Vertex2 Commands

HDfury device default port numbers:

For all HDfury commands, see the list of HDfury devices commands here:


MiniDSP-rs Control

For MiniDSP-rs control, the device identifier is: minidsp-rs

To control a MiniDSP device, you must set up and use the minidsp-rs service.

Before using this device control in HTWebRemote, you must enable the HTTP service in the minidsp-rs config.

To do this, open the config.toml file (located in: /etc/minidsp/config.toml on linux) and find the line: bind_address = "127.0.0.1:5380"
Change this line to: bind_address = "0.0.0.0:5380" and restart the minidsp-rs service (sudo systemctl restart minidsp).

On Windows it should already be working by default.

If you have only 1 MiniDSP, leave the Device ID set to 0 in the Device Configuration screen. Otherwise set this number to the Device ID of the MiniDSP device you wish to control.
You can view a list of all MiniDSP devices connected to minidsp-rs by going to: http://IP:5380/devices where IP is the IP of the computer running the minidsp-rs HTTP service as above.

Some basic MiniDSP-rs Commands

MiniDSP Query Command

RS232 Serial Device Control

For RS232 Serial Device control, the device identifier is: rs232

This device controller is designed to be used with any RS232 Serial device (many Home Theater devices and some which pre-date network control).

The simplest way to add this to your PC is with a USB to Serial (RS232) adapter (such as the USA-19HS) which will show up on your PC as a COM port.
If you don't see it showing up in your device manager (under Ports as a COM#), check to see if you need to install a driver from the manufacturer first.

Since this controller is generic, you must be sure to include the entire command (into the cmd box) including any beginning and end special characters.

Special Characters

You can enter these special symbols (with their brackets) into your cmd in order to send them along with the command to the device.

If you need to send other special bytes to the device (which cannot be represented by normal keyboard characters), you can enter the entire command as a series of hex values.

In order do to this you must also enter "hex" into the param box.

param = hex

I recommend using this website to convert your ASCII characters into bytes.

Assume the command you want to send is as follows.

cmd = example<CR>

The following hex list formats are allowed (enter in cmd box):


TCP Generic Control

For TCP generic control, the device identifier is: tcp

This device controller is designed to be used to send commands to any device that accepts a single plain command over a TCP/IP socket.

You can use this to control devices that HTWebRemote does not specifically have support for.

Simply enter your command to send to the device into the cmd box.

If you need to send special chracters that you can't simply enter into the cmd box, please see the Special Characters section under the RS232 Device Control.

If your device sends a sort of "welcome message" or similar message back after something connects to it, enable the "Receive Welcome Message" checkbox in the Device Configuration screen.


UDP Generic Control

For UDP generic control, the device identifier is: udp

This device controller is designed to be used to send commands to any device that accepts a single plain command over a UDP socket.

Please see the TCP Generic Control section above for instructions on how to use this device controller as it works the exact same way.


HTTP POST Requests

For HTTP POST requests, the device identifier is: httppost

This device controller is meant to be used to send simple HTTP POST requests to a server.

Example HTTP URL:

http://192.168.1.100/rest/nodes/45378/cmd/DOF

Configure the httppost device URL to be the base address: http://192.168.1.100

Then enter the rest of the URL into the cmd box:

If needed, To POST JSON content to the HTTP server at this URL, simply enter the JSON content in the param box.

If the HTTP server needs "basic" authentication, enter the username and password into the special data field as follows: If the HTTP server needs "bearer token" authentication, enter the bearer token into the special data field as follows:

HTTP PUT Requests

For HTTP PUT requests, the device identifier is: httpput

This device controller is meant to be used to send simple HTTP PUT requests to a server.

Please see the HTTP POST requests section above for instructions on how to use this device controller as it works the same way.


HTTP GET Requests

For HTTP GET requests, the device identifier is: httpget

This device controller is meant to be used to send simple HTTP GET requests to a server.

Please see the HTTP POST requests section above for instructions on how to use this device controller as it works the same way, except for no POST data.


MQTT Messaging Protocol Control

For MQTT Messaging Protocol control, the device identifier is: mqtt

This device controller is meant to be used to send commands via the MQTT messaging protocol.

If you are using the MQTT device controller, I am going to assume you know enough about how to setup and use MQTT (you need to supply your own MQTT Broker).

To use the MQTT device, enter the IP:port of your MQTT Broker into the Device IP manager.

Example MQTT Message

If your MQTT broker needs basic authenticaltion, enter the username and password into the special data field as follows:

Wake-on-LAN Control

For Wake-on-LAN control, the device identifier is: wol

This device controller is meant to be used to send Wake-on-LAN signals to computers.

First you need to enable Wake-on-LAN on the computer you want to wake. You should look up how to do this on your own.

To use the Wake-on-LAN device, enter the MAC Address of the computer you want to wake into the cmd box.

Example Wake-on-LAN Command