Overview
CEC (Consumer Electronics Control) is an HDMI feature that allows devices to send control commands over the HDMI cable. In a simple point-to-point setup, this allows a TV remote to control a connected source device.
CEC works well when a single source is connected directly to a single display. In an HDMI over IP system, however, a single source may be routed to multiple displays simultaneously. Allowing native HDMI CEC to pass through the system could unintentionally send commands to multiple displays or sources at once.
To prevent this, Just Add Power devices isolate native HDMI CEC communication and instead allow CEC commands to be intentionally passed to a specific Encoder or Decoder.
CEC over IP
In a Just Add Power system, the physical CEC link between the source and display is interrupted at the Encoder and Decoder.
- CEC commands from a source stop at the Encoder.
- CEC commands from a display stop at the Decoder.
CEC is then treated similarly to IR over IP or Serial over IP. A control system sends a CEC command to a specific Just Add Power device, which then forwards the command to the connected source or display.
This ensures CEC commands are delivered only to the intended zone, providing predictable behavior in distributed AV systems.
Note: Native HDMI CEC does not pass directly through a Just Add Power system. All CEC commands must be intentionally forwarded to the appropriate Encoder or Decoder.
Access
CEC commands can be sent using either the Command Line Interface (CLI) through Telnet or the HTTP API, depending on the control system being used.
All commands are case-sensitive.
Built-In Commands
The following CEC commands are built into Just Add Power devices and are supported in standard drivers:
| Function | CLI Command | API Command | Notes |
|---|---|---|---|
| Power On | |
|
Works on most displays |
| Power Off | |
|
Works on most displays |
| Select HDMI 1 | |
|
Works on most displays and AVRs |
| Audio Mute | |
|
Primarily for AVR HDMI outputs |
| Audio Un-mute | |
|
Primarily for AVR HDMI outputs |
Firmware Requirements
The cec_mode options described in this article require the following minimum firmware versions:
- Omega Series / Ultra Series: justOS B3.2.0 or later
- MaxColor Series: MAX v4.5.0 or later
CEC Mode Behavior Modification (cec_mode)
A configurable parameter called cec_mode changes how certain built-in CEC commands are handled by the device.
Depending on the selected option, cec_mode can add an input selection command before or after a power command, or change how CEC button press and release commands are transmitted.
These options are useful for displays or AVRs that require additional CEC behavior beyond a standard power command.
Available Options
Multiple options may be applied simultaneously. When more than one is set, all selected behaviors will execute.
| Option | Behavior |
|---|---|
|
Sends cec_watch_me.sh BEFORE cec_tv_on.sh |
|
Sends cec_watch_me.sh AFTER cec_tv_on.sh |
|
Sends cec_watch_me.sh BEFORE cec_tv_off.sh |
|
Sends separate CEC commands for button press and button release, then delays subsequent commands for 2 seconds. |
Applying the Setting
Warning: Do not combine the wake_on, wake_off, or watch_on options with extra.
Use the following syntax in the CLI:
Apply one option:
astparam s cec_mode wake_on
Apply two options:
astparam s cec_mode wake_on wake_off
Apply all options:
astparam s cec_mode wake_on wake_off watch_on
Apply Press & Release option:
astparam s cec_mode extra
Save Settings to Memory
astparam save
Reboot the Device
After saving the configuration, reboot the device for the changes to take effect.
reboot
Custom Commands
Note: Manufacturer support for CEC varies. Even standardized CEC commands may behave differently depending on the connected device. Always verify custom commands before deployment.
If the hexadecimal command sequence is known, any valid CEC command can be transmitted through a Just Add Power device.
Format
CEC commands consist of hexadecimal byte pairs.
The first byte specifies the source and destination logical addresses, while the remaining bytes contain the CEC opcode and any required parameters.
Example:
EF 82 10 00
To send a custom command:
CEC_SEND_BYTES EF 82 10 00
Finding CEC Codes
Because CEC is part of the HDMI specification, many codes are standardized. However, manufacturer implementation varies. Always test commands before deployment.
A commonly used CEC lookup tool is:
CEC-O-Matic is published and maintained by INCYMA. All credit for that tool belongs to its respective owners.
Common Custom Codes
Begin all entries below with CEC_SEND_BYTES
| Function | Code | Notes |
|---|---|---|
| Power On | E0 04 |
Works on most displays |
| Power Off | E0 36 |
Works on most displays |
| Select HDMI 1 | EF 82 10 00 |
Works on most displays and AVRs |
| Select HDMI 2 | EF 82 20 00 |
Works on most displays and AVRs |
| Select HDMI 3 | EF 82 30 00 |
Works on most displays and AVRs |
| Toggle Mute | E0 44 43 |
Device-dependent |
| Volume Up | E0 44 41 |
Device-dependent |
| Volume Down | E0 44 42 |
Device-dependent |

