Kaleidescape
Kaleidescape movie servers and players (Strato, Terra, Encore, the older 1U/Premiere lineup) are controlled over Kaleidescape's IP control protocol on TCP port 10000. One Kaleidescape component — a player or server — becomes one GEM device, addressed directly by IP. There is no pairing and no password: GEM just needs to reach the component with control enabled.
This driver creates no zones. A Kaleidescape is a source: you expose it as an AV source that a user selects on a touchpanel, and route its picture/sound to rooms through your matrix or AV receiver the same way you would a cable box. What you get on screen:
- Full on-screen control — the D-pad and Select, the menu shortcuts (Movies, Covers, Collections, the Kaleidescape Store), transport (play / pause / stop / scan / next / previous), page up/down, standby on/off, and on-screen text entry for typing into the Kaleidescape filter and search.
- Live now-playing — as the highlight moves through the on-screen menu, GEM pulls the cover art, title, year, synopsis, and cast for the highlighted title and shows them on the source panel.
- An optional in-GEM movie catalog — point GEM at an exported library list (XLS or CSV) and the source panel gains a browsable, searchable poster grid; tapping a poster drives the on-screen menu straight to that title.
What it does
- Navigation: up / down / left / right / select, Back, page up / page down, the disc/DVD menu.
- Menu shortcuts: go to the Movies list, Covers, Movie Collections, the Movie Store, Music Collections, and open the on-screen Filter.
- Transport: play, pause, stop, scan forward / reverse, next, previous.
- Power: leave standby (
power_on), enter standby (power_off), query the power state. - Live now-playing pushed to the source panel — cover art (fetched through GEM's image proxy), title, year, synopsis, and cast — updated as you browse and play.
- On-screen text entry: type a single character at a time into the Kaleidescape search/filter.
- Optional movie catalog import (XLS/CSV) for an in-GEM searchable poster grid.
- A dedicated Kaleidescape source view for end users (poster grid + on-screen remote +
now-playing). Set the AV source's Component to
kaleidescapeto get it.
Prerequisites
- A Kaleidescape server and/or player on the same LAN as GEM, reachable by IP with IP control enabled on the component.
- A static IP or a DHCP reservation so the component's address never moves — a moved address means GEM can no longer reach it.
- (Optional) A
KaleidescapeMovies.xlsor.csvlibrary export hosted somewhere GEM can reach over HTTP, if you want the searchable movie catalog inside GEM.
Setup
Open Devices
- On the Kaleidescape component, enable IP control (in the Kaleidescape configuration, allow control-protocol connections).
- Go to System → Devices → Add Device, choose the Kaleidescape driver, and place the device in the AV subsystem (the driver suggests AV; the AV subsystem ships with every install).
- Set Server/Player IP to the component's LAN IP. Leave TCP Port at 10000 — the control protocol only listens on 10000, and the driver forces that port on connect. (An old configuration that listed port 80 still works; the driver auto-upgrades 80 to 10000 and reports 10000 at runtime.)
- Save and enable the device. There is nothing to pair or log in to — within a few seconds GEM connects.
For a system with several players, add one GEM device per player (each by its own IP).
Using the Kaleidescape as an AV source
Open AV Sources
To put the Kaleidescape on a touchpanel as a selectable source with the on-screen remote and poster grid, create an AV source for it:
- Add a source whose Device is this Kaleidescape device.
- Set the Component field to
kaleidescape. - Mark it Global source (not zone-specific) if every room should be able to select it.
- Save. When a user selects that source in a room, GEM draws the Kaleidescape panel:
- the left side is the movie poster grid (populated only if you imported a catalog — see below), with a search box;
- the right side is the on-screen remote — a D-pad with Select, plus Menu, Back, a keyboard button for typing, and page up/down;
- the bottom bar carries transport (previous / next), the Store, Movies, and Covers menu shortcuts, a Details toggle for the now-playing card, and Search.
- the now-playing card shows the cover art, title, year, synopsis, and cast for the current selection.
See AV Sources for the source editor (Device, Component, Global, routing) and AV Zones for routing the source into rooms.
The optional movie catalog
By default the source panel is the on-screen remote driving the Kaleidescape's own menus. If you also want a browsable, searchable poster grid inside GEM, import the library list:
- From Kaleidescape, export the movie library to a
KaleidescapeMovies.xls(or.csv) file and host it where GEM can fetch it over HTTP. - On one Kaleidescape device, set the optional Movie List URL attribute to that HTTP URL
(for example
http://10.0.0.20:8888/KaleidescapeMovies.xls). - Save and reload the device. GEM downloads the list, caches it, and the poster grid fills in.
How it behaves:
- The Movie List URL is system-wide — only the first player to set it wins. Setting it on more than one device just causes redundant downloads, so configure it on a single device.
- An XLS export must contain a sheet named
Movie Library; a CSV is read directly. - The list is cached on the GEM server (under the server's
cachefolder askdvd_movie_list.xls/.csv) and is refreshed on connect and then at most once an hour. To force an immediate refresh, run theupdate_movie_listcommand (or reload the device). - Tapping a poster doesn't "play" by URL — there's no such protocol command. Instead GEM walks the on-screen menu for you (open the Movies list, open Filter, type the first few letters of the title, and select), so the title comes up on the Kaleidescape exactly as if you'd filtered to it by hand.
Without a Movie List URL the source view still works fully — navigation, transport, and now-playing — it just has no in-GEM poster grid or search.
How now-playing works
As the highlight moves in the Kaleidescape's on-screen menu, the player reports the highlighted title and GEM automatically requests its content details. Those details — cover art, title, year, synopsis, and cast — are reassembled (they arrive as many short lines over roughly a tenth of a second) and pushed live to the source panel, where the cover art is fetched through GEM's image proxy.
This now-playing information is delivered as a live update to the source view; it is not stored as a device attribute. So, unlike some media drivers, the Kaleidescape's current title can't be used directly as an attribute trigger condition — it is a display feed for the source panel.
Addressing and multiple components
- Commands target the player directly — there is no per-zone address to set on this driver.
- Inside the protocol each command carries a component id (the Kaleidescape CPDID); the driver
uses the default
01, which is correct for a standard one-component-per-device setup. - If you ever need to address a non-default CPDID, send a complete raw frame with the
passthroughcommand rather than the named commands.
Attributes
Device — required
| Attribute | Type | Description |
|---|---|---|
ip | string | The Kaleidescape component's LAN IP address (the Server/Player IP field). |
Device — optional
| Attribute | Type | Default | Description |
|---|---|---|---|
port | int | 10000 | Control-protocol port. The driver forces 10000 on connect (and auto-upgrades 80 → 10000), so this is effectively informational. |
movie_list_url | string | — | HTTP URL of a KaleidescapeMovies.xls/.csv export used to populate GEM's searchable movie catalog. Set it on one device only — it is cached system-wide. |
This driver creates no zones, so there are no zone attributes. Kaleidescape devices have no entries in the attribute autocomplete catalog, so type these attribute names exactly as shown when referencing them.
Commands
Driver-declared commands appear on the device's Commands tab and can be used in macros, triggers, and on UI buttons.
Navigation
| Command | Action |
|---|---|
up down left right select | D-pad navigation and select. |
back | Back / cancel. |
page_up page_down | Page the current list. |
dvd_menu | Open the disc / title menu. |
keypress (arg key) | Type one character into the focused Kaleidescape field (filter / search). |
Menu shortcuts
| Command | Action |
|---|---|
go_movie_list | Jump to the Movies list. |
go_movie_covers | Jump to the Covers view. |
go_movie_collections | Jump to Movie Collections. |
go_movie_store | Open the Kaleidescape Movie Store. |
go_music_collections | Jump to Music Collections. |
filter_list | Open the on-screen Filter. |
Transport
| Command | Action |
|---|---|
play pause stop | Playback transport. |
scan_forward scan_reverse | Scan forward / reverse. |
next previous | Next / previous chapter or title. |
Power
| Command | Action |
|---|---|
power_on | Leave standby. |
power_off | Enter standby. |
get_power | Query the device power state. |
Movie catalog (handled inside GEM)
| Command | Args | Action |
|---|---|---|
list_movies | — | Return the cached movie catalog (refreshing it if empty or stale). |
search_movie_list | query | Search the cached catalog for matching titles. |
update_movie_list | — | Force a re-download of the catalog from the Movie List URL. |
Advanced
| Command | Args | Action |
|---|---|---|
passthrough | command | Send a raw control-protocol command body (for example to address a non-default CPDID). |
Known limitations
- Single device, no zones. A Kaleidescape component is one device and creates no GEM zones — route it to rooms at the AV-source / AV-zone layer, like any other source.
- Port is always 10000. The control protocol only listens on 10000; the driver forces it on
connect, so the
portattribute is informational. - Per-command timeout is ~2 seconds, and protocol sequence numbers cycle 0–9 — avoid firing more than about ten commands at once without letting them complete (relevant only to heavy macro bursts).
- The movie catalog is system-wide. One Movie List URL serves all Kaleidescape devices; the first device to set it wins.
- Now-playing is a live display feed, not a stored attribute, so it can't be used as a trigger condition.
- CPDID is fixed at
01for the named commands; usepassthroughfor any other component id.
Troubleshooting
| Symptom | Check |
|---|---|
| Commands time out after ~2 seconds. | The player may be slow or still booting. Wait for it to finish starting up and retry. Confirm IP control is enabled and the IP hasn't moved. |
| The poster grid is empty / search finds nothing. | A Movie List URL must be set (on one device) and reachable over HTTP. Confirm the URL loads in a browser; for an XLS, the sheet must be named Movie Library. Run update_movie_list and check the cached kdvd_movie_list.* file updated. |
| Tapping a poster doesn't bring up the title. | The poster grid drives the on-screen Filter by typing the title's first letters; make sure the Kaleidescape is on a screen where Filter is available, and that the catalog title matches the on-device title. |
| No now-playing details on the source panel. | Details only push while you browse or play on the Kaleidescape. Confirm IP control is enabled and the device is connected; details are not stored, so the panel is blank until a title is highlighted. |
| Port shows 10000 even though I entered 80. | Expected — the driver upgrades the legacy port 80 to 10000 automatically. |
See also
- AV Sources — add the Kaleidescape as a selectable source and pick the
kaleidescapepanel. - AV Zones — route the source into rooms.
- Devices — adding and configuring devices.
- Commands — running and scripting device commands.