Android CEC Screen Power On/Off with DSDevices DSCS9
This guide will take you through how to use the DSDevices DSCS9 to control the attached TV/screen via HDMI-CEC.
Modern TVs and signage panels offer the HDMI-CEC standard to accept power on/off Events via the HDMI cable.
The DSDevices DSCS9 offers a method to send those CEC control signals so that you can turn the screen on and off via Commands Scheduled in Xibo or built into Layouts.
Note: DSCS9 devices shipped from 1st January 2019 onwards have the DSDCEC app pre-installed and the CEC options correctly configured for you automatically, so you can skip straight to the Xibo Setup section below.
On your DSCS9, first install the
DSDCEC app which you can download from the
DSDevices Utilities section of the Download Centre.
Once installed, if you open the
DSDCEC app, it should look like this:
Next, go into the
Settings app from the device home screen:
Ensure that the following options are selected:
- CEC Control - Open
- One key play - Close
- One key power off - Close
- Auto change language - Close
Exit the settings using the back arrow at the bottom of the screen.
Next, ensure that your TV or panel has HDMI-CEC control enabled. How you achieve this varies from manufacturer to manufacturer. Please see the user guide for your particular TV for guidance.
Once CEC is enabled, ensure that your DSCS9 is connected to the TV via HDMI cable. CEC control signals cannot pass through HDMI to VGA adapters for example.
POWEROFF button, or press
f on the keyboard in the DSDCEC app. Your TV should turn off. Assuming it does so, turn the screen back on manually, or if you have a keyboard connected use the
n button to trigger a power-on event.
Assuming that the screen powers off and on as expected, the Player setup is complete.
Once the Players are configured and power off/on is working from the DSDCEC app, triggering that from Xibo is straight forward.
From the CMS, we first need to define a Command to turn screen power off and on. Go to the CMS Menu, and select the Commands page located under the Displays section.
If you don’t already have a suitable Command defined, create one now by clicking Add Command.
Repeat for a
Screen On Command.
The two new Commands should now appear in your list. If you already have screen on/off commands defined (for example if you use webOS Players), then there’s no need to define specific ones for Android. You can use the same Commands across both types of Player.
If you don’t already have a Display Settings Profile that you’ll use for DSDevices DSCS9 based Players, then now is a great time to create one. If you only have DSCS9 Players, then you can use the standard Android Profile and just Edit that.
To create a new profile, in the CMS main Menu, go to Display Settings and click Add Profile. Ensure the Client Type is set to Android, and give the Profile a meaningful name.
Enter your Licence Pool email address, along with any other settings you would routinely change for your environment.
Finally, move to the Commands tab, and define the two Commands you created earlier for these devices as follows:
Those commands are:
/system/bin/am start -n com.microcontrollerbg.dsdcec/.dsdcec --es "ceccommand" "off" /system/bin/am start -n com.microcontrollerbg.dsdcec/.dsdcec --es "ceccommand" "on"
Save your Display Settings Profile.
You now need to assign that Display Settings Profile to your DSCS9 Players. If you’re using only one Display Settings Profile, and have put those Commands into the Default Profile, then you can skip this step. Otherwise, go to the Displays page of the CMS.
Edit each Display served by a DSCS9 and click on the Advanced tab. Choose the new Profile you created in the Settings Profile? field and Save your changes.
Allow time for the Player to download the new Settings Profile. You can see when it last connected on the Displays page. Once that date changes, it should have the new Commands defined.
If you have XMR up and running, you can now send an instant screen on/off command from the Displays page:
Click the row menu next to your selected Display, and select Send Command. Pick Screen Off and then Save. The screen should receive an XMR message and turn off.
The same Commands can then be Scheduled from the Schedule screen (these don’t require XMR to work):
As in the example image above, the selected Start Time would cause the screen to turn off at 18:30 on the selected Display. You could then use a Repeat to cause that to happen every day for example. A similar Schedule could be defined to turn the screen back on again.
It is also possible to embed the Commands required into a Layout. Simply add the Shell Command Widget and choose the Commands you defined earlier. When that particular Layout is shown, the screen power state will change accordingly.