This article provides a guide on how to install and configure Signagelive on ChromeOS devices using the Zero Touch Installation feature. This feature allows for the remote and automated registration, activation, and full configuration of Chrome players, significantly streamlining the migration process for a large number of devices.
What is Zero Touch Installation?
Zero Touch Installation is designed to remotely configure settings for newly migrated Signagelive players and deliver these settings automatically as part of the player's configuration using HTTP requests with JSON payloads. While Signagelive can already be installed remotely on Chrome devices managed via Chrome CDM, this feature automates the subsequent steps of registration, activation, and configuration.
Key Benefits
Automated Configuration: Remotely configure player settings, eliminating the need for manual intervention on each device.
Streamlined Migration: This feature simplifies the process of migrating a large number of Chrome players from a competing CMS to Signagelive.
Efficiency: Automates player activation through webhooks, allowing partners to integrate with existing APIs for activation.
Supported Configurations for Chrome Players
Zero Touch Installation allows you to remotely configure the following settings for Chrome players, which are typically set locally via the player's settings screen:
Reported Timezone: Set the timezone for the player.
Display Settings: Configure display settings, including unified desktop and multi-monitor setups.
Layout Fit / Resize: Control how content is scaled to fit the display area.
Kiosk Mode Settings: Manage interactive kiosk mode functionalities.
How it Works
Using a specific Network API endpoint, users can configure settings for a player or a group of players on their network by using HTTP requests with JSON payloads containing the desired settings.
JSON Settings Object: Settings are sent to the API as a JSON object.
Validation: The API validates the incoming JSON settings against a predefined schema for the specific player type (e.g., Chrome) to ensure accuracy and prevent errors. This validation process is dynamic and allows for different rules for various player types, with schemas stored in the Signagelive database.
Configuration Delivery: Once validated, the settings are appended to the player's configuration and delivered to the player.
Automatic Application: Supported players automatically apply these settings to ensure local settings match the remotely configured ones.
Example of a Chrome Player Configuration with Settings:
JSON
{ "change_id": 108, "last_modified": "2023-01-03T17:07:29Z", ..., "settings": { "timeZone": "Europe/London", "layoutFit": "fill", "displaySettings": { "displayConfigurationMode": "simple", "unifiedDesktopEnabled": true, "displayRotation": 0, "displays": [], "layout": [] }, "interactiveKiosk": { "enabled": false, "options": { "idleIntervalInSeconds": 15, "trigger": { "key": "t", "type": "KeyboardEvent" } } } } }
Configuring Specific Settings
Timezone: The timezone will be sent to the player with the value being just the timezone ID. The player will need to find the timezone object from the
TimezoneCollection
model by matching the ID and then set and store the complete object against thetimeZone
property when saving and applying the settings.Layout Fit: The
layoutFit
setting will be sent to the player with the value being the ID only. When saving and applying the settings, the player must find the object from theLayoutFitOptionsCollection
model by matching the ID and then set and store the complete object against thelayoutFit
property.Kiosk Mode: The kiosk mode setting is already formatted exactly as it is saved in the
settings.json
file, so you only need to replace the value ofmodules.interactiveKiosk
with the provided object and save the settings.Display Settings: Display settings require more detailed configuration. There is a
displayConfigurationMode
setting that takes two options:simple
andadvanced
.Simple Mode: (
displayConfigurationMode: "simple"
) This mode allows for basic configuration, and when applied, the player will load default display properties and layout using Chrome display APIs. It will only update the unified desktop setting to matchunifiedDesktopEnabled
and the rotation of all displays to match thedisplayRotation
property.Advanced Mode: (
displayConfigurationMode: "advanced"
) This mode provides all options available via the Settings UI, offering additional flexibility to adjust resolution and position for each monitor. This mode requires knowing the IDs of the connected monitors and their relative positioning. The player will perform simple validation to ensure provided display IDs are available before attempting to apply the settings.
Applying Rotation Settings to Players via Zero Touch
Rotation settings for displays can be applied to Chrome players using the Zero Touch Installation feature as part of the displaySettings
object.
For a simple display configuration, you can set the displayRotation
property, which will apply the specified rotation to all connected displays.
Example JSON snippet for simple rotation:
JSON
"displaySettings": { "displayConfigurationMode": "simple", "unifiedDesktopEnabled": true, "displayRotation": 0, // Options: 0, 90, 180, 270 "displays": [], "layout": [] }
For an advanced display configuration, you can specify rotation for individual displays within the displays
array. Each display object will have its own rotation
property.
Example JSON snippet for advanced display rotation:
JSON
"displaySettings": { "displayConfigurationMode": "advanced", "unifiedDesktopEnabled": true, "displays": [ { "id": "xxxx1", "rotation": 0, // Options: 0, 90, 180, 270 "bounds": { "left": 0, "top": 0, "width": 1920, "height": 1080 }, "isPrimary": true }, { "id": "xxxx2", "rotation": 0, // Options: 0, 90, 180, 270 "bounds": { "left": 1920, "top": 0, "width": 1920, "height": 1080 }, "isPrimary": false } ], "layout": [ { "id": "xxxx1", "parentId": "", "position": "left", "offset": 0 }, { "id": "xxxx2", "parentId": "xxxx1", "position": "right", "offset": 0 } ] }
The available values for displayRotation
and individual display rotation
are 0, 90, 180, and 270 degrees.
Accessing the API
The Network API endpoints for managing player settings are:
GET
networks/{networkid}/players/{id}/settings
: Retrieves settings for a player.POST
networks/{networkid}/players/{id}/settings
: Configures settings for a player.
The Network API is secured and accessible only via HTTPS, requiring proper authentication and authorisation with specific claims and permissions.