Create Your Own Devices – MyURemote

Create Your Own Devices

MyURemote allows advanced users to define their own devices, command sets and transport strategies. This is the configuration layer behind custom integrations for IR, Serial and IP-based devices.

Important: MyURemote is not a generic cloud API client. It is a local execution engine. The database stores configuration, but runtime execution happens locally through the MyURemote transport and gateway layers.

1. What this section is for

The Device Database and Command Database let you build or extend your own integrations. You can use this to:

  • create a new device type
  • assign it to a category and brand
  • define whether it supports direct IP control
  • create commands for IR, Serial or IP technologies
  • reuse public network controllers for custom LAN integrations
This section is intended for power users, integrators and developers who want more than the built-in device library. Before creating your own device, first check the MyURemote compatibility list to see whether your device is already available in the standard database. In many cases, the device already exists and no custom definition is needed.

2. Core concept: device + commands + controller

In MyURemote, a working integration is usually built from three parts:

Device

The logical device type, such as a TV, amplifier, streamer, projector or gateway.

Commands

The actions and queries available for that device, grouped by technology.

Controller

The transport layer that determines how IP-based commands are actually sent.

This separation is important. A command value does not by itself define transport. The selected controller determines whether MyURemote uses raw TCP, plain HTTP or secure HTTPS/TLS.

3. Creating a device

When you add a device, you define the basic identity of that integration.

  • Category → the functional group, such as TV, audio, media player or automation
  • Brand → the manufacturer or vendor
  • Device type → the actual device model or logical integration name

This device record becomes the container for the command sets you will add later.

Category → Streamer Brand → WiiM Device type → WiiM Pro Plus

4. Direct IP control and default controller

If a device supports direct network control, enable:

This device allows IP control

This tells MyURemote that the device can be controlled over the network and that an IP-based controller may be assigned.

Default controller

The default controller defines the transport strategy used for this device’s IP commands.

Public network controllers currently include:

  • Network TCP/IP Controller → raw plain socket transport
  • Network HTTP Post-Put-Get Controller → plain HTTP request construction
  • Network HTTPS secure (TLS) Controller → secure HTTPS/TLS transport
The controller does not define what the command means. It only defines how the command is transported.

The default port is the transport port normally used by that device or controller combination.

5. Creating commands

Commands are attached to a device and grouped by technology. Each command defines one executable action or one queryable state.

  • Command name → logical name such as PLAY, POWER, STATUS QUERY
  • Technologyir, serial or ip
  • Value → the raw value, protocol string or payload fragment associated with that command

In many cases, the command value is not a complete user-facing sentence. It is a protocol-oriented definition that will later be sent through the correct controller or device logic.

6. Technologies: IR, Serial and IP

IR

IR commands are typically fire-and-forget. They usually do not return device feedback.

If you want to learn infrared codes and add them manually to a device in MyURemote, see: How to add IR commands in MyURemote

Serial

Serial commands are intended for RS232-like integrations or serial-style command models.

IP

IP commands are the most flexible category. They may use:

  • raw TCP socket transport
  • plain HTTP request transport
  • secure HTTPS/TLS transport
  • device-specific higher-level extender logic
Technology tells MyURemote which command family is being defined. The controller then determines the actual network transport path for IP commands.

7. Simple commands vs child commands

A command can either contain a single direct value, or it can act as a parent command with children.

Simple command

Name → PLAY Value → setPlayerCmd:resume

Command with children

Use child commands when one logical command must group several related values or sub-entries.

This is useful when a command is not just one simple payload, but a structured set of related command values.

8. Command templates

Templates allow faster setup by reusing known command names.

A template does not automatically make the command functional. You still need to define a valid value, correct technology and the right transport/controller model.

Templates help with naming and consistency. They do not replace real protocol knowledge.

9. IP commands are only one part of the execution flow

For IP-based devices, a saved command is only the start of the process. At runtime, MyURemote still has to:

  • resolve the selected device and command
  • choose the correct controller or extender path
  • build the final request payload
  • send it through the local proxy
  • optionally read and parse the response

This is why command definition, controller selection and feedback parsing must be understood together.

10. Which controller should you choose?

Use Network TCP/IP Controller when:

  • the device expects a raw TCP socket connection
  • you need byte-exact command transport
  • the protocol is plain socket-based and not HTTP

Use Network HTTP Post-Put-Get Controller when:

  • the device expects plain HTTP requests
  • you need to construct headers and content explicitly
  • the API is local and not TLS-protected

Use Network HTTPS secure (TLS) Controller when:

  • the device requires HTTPS/TLS
  • plain HTTP to port 443 is not sufficient
  • transport intent must explicitly be secure

11. Where to go next

This page is the starting point. For deeper technical information, continue with: