It runs under Windows or Linux, but it is not designed for a smartphone or tablet. It has roughly the same look and feel than the normal hardware remote, and it is totally configurable.

Download:
RolRemote_win.7z
RolRemote_linux.7z
RolRemote_src.7z
Installation:
Extract the exe from the archive, and copy it in any directory. (Linux users should set the executable flag on the file.)
Launch the program. The first time it is run, it will prompt you if you want to install the program as portable or normally. Then it will display a dialog asking the IP of the TV, and the IP, MAC address and host name of the local PC. (Under Windows, the IP, MAC and hostname of the local PC should be already in the dialog.) Finally, the main window will be opened, and the file "RolRemote_user_template.cfg" will be created in the config directory. When the program is closed, it will also create the RolRemote_auto.cfg file.
If you need to redefine the IPs, MAC or hostname later, right-click the remote and select the "Settings" menu.
The config directory is the installation directory in portable mode, or %APPDATA%\RolRemote (under Windows) and ~/.RolRemote (under Linux) in normal mode.
The first time you send a command to the TV, you may have to accept the new remote (using the normal hardware remote!)
For programmers and expert users: The program is written in Tcl/Tk, an interpreted scripting language. If you have Tcl/Tk installed on your system (it's often the case under Linux, but rarely under Windows), you can download and execute the source files instead of the exe file.
Usage:
All buttons of the remote send the KEY corresponding to the same button of the hardware remote, except the lightbulb pink button, that sends the "ECO mode" command, and the PIP button, that has been added. Most buttons have a keyboard shortcut. (Right-click the remote and select the "Buttons" entry of the popup menu to see the list of the shortcuts.)
Some buttons can also be middle-clicked (or Control-clicked), to access another function. For example, Control-clicking the Source button sends the HDMI command, that allows you to cycle through the HDMI inputs.
By default, the remote uses the KEY codes that work fine with my UE40D6500. If some buttons do not work as expected (or if you want to change some of them), copy or rename the config file "RolRemote_user_template.cfg" to "RolRemote_user.cfg" and edit it. You can redefine the KEY sent to the TV for any button and for any control-clicked button. You can also define one or several menus to send keys that have no buttons. That menus will appear as normal menus, on the top side of the remote window. You can also access them from the right-click popup menu. For example, you can define a "Channel" menu with keys or macros to select your preferred channels. See the comment in the config file for more info. Note that you have to restart the program after having edited the config file, to take your edits into account.
Any button or menu entry can send a macro instead of a single key. A macro is a sequence of keys (and optionally pauses) separated with plus (+) or coma (,) characters. A pause (in ms) may optionally be inserted between two keys. To check all available keys with your TV, or test a macro, right-click the remote and select "Send raw key". A small window will appear, where you can select any key in the list of known keys, or type a macro. Click the Help button in that window for more info about the format of the macros.
Hint:
The menus have a first entry with a dotted line. When you select that menu entry, the menu is "detached" and placed in a little window. You can use that window to access easily any function of the menu.
Have fun!