Skip to main content

A simple module, command line utility and tcp server to headlessly control a GreenScreen installation and a set of Chromecasts. Controls the assignment of GreenScreen channels to Chromecasts using the GreenScreen API, and then can start/stop casting to a particular Chromecast.

Requires a working GreenScreen installation.

AppID

In these instructions, $APPID is the value of your “Application ID” from the Google Cast Developer Console. This will have been setup as part of the GreenScreen installation.

Using the command line utility

Set the CCTV channel on the Kitchen Chromecast:

$ greenscreen_control -c CCTV set-channel Kitchen

Start casting a given AppID on a Chromecast:

$ greenscreen_control -a $APPID cast Kitchen

Stop casting on the Kitchen Chromecast:

$ greenscreen_control stop-cast Kitchen

Available arguments:

usage: greenscreen_control_cli.py [-h] [-g GREENSCREEN_SERVER] [-a APPID]
                                  [-c CHANNEL] [-l {ERROR,WARNING,INFO,DEBUG}]
                                  [-r TRIES] [-t TIMEOUT] [-w RETRY_WAIT]
                                  {set-channel,cast,stop-cast} chromecast

positional arguments:
  {set-channel,cast,stop-cast}
                        Command
  chromecast            Chromecast name

optional arguments:
  -h, --help            show this help message and exit
  -g GREENSCREEN_SERVER, --greenscreen_server GREENSCREEN_SERVER
                        GreenScreen server:port
  -a APPID, --appid APPID
                        Chromecast Greenscreen App ID
  -c CHANNEL, --channel CHANNEL
                        GreenScreen channel to set
  -l {ERROR,WARNING,INFO,DEBUG}, --loglevel {ERROR,WARNING,INFO,DEBUG}
                        Logging level
  -r TRIES, --tries TRIES
                        Chromecast connection tries. Default is infinite.
  -t TIMEOUT, --timeout TIMEOUT
                        Chromecast socket timeout seconds. Default is 30.
  -w RETRY_WAIT, --retry_wait RETRY_WAIT
                        Seconds to wait between Chromecast retries. Default is
                        5.

Starting the server

Start a simple TCP server (default port 4995) to control greenscreen and Chromecast casting.

$ greenscreen_control_server -l INFO -a $APPID

Available arguments:

usage: greenscreen_control_server.py [-h] [-g GREENSCREEN_SERVER] [-a APPID]
                                     [-c CHANNEL]
                                     [-l {ERROR,WARNING,INFO,DEBUG}]
                                     [-r TRIES] [-t TIMEOUT] [-w RETRY_WAIT]
                                     [-p PORT]

optional arguments:
  -h, --help            show this help message and exit
  -g GREENSCREEN_SERVER, --greenscreen_server GREENSCREEN_SERVER
                        GreenScreen server:port
  -a APPID, --appid APPID
                        Chromecast Greenscreen App ID
  -c CHANNEL, --channel CHANNEL
                        GreenScreen channel to set
  -l {ERROR,WARNING,INFO,DEBUG}, --loglevel {ERROR,WARNING,INFO,DEBUG}
                        Logging level
  -r TRIES, --tries TRIES
                        Chromecast connection tries. Default is infinite.
  -t TIMEOUT, --timeout TIMEOUT
                        Chromecast socket timeout seconds. Default is 30.
  -w RETRY_WAIT, --retry_wait RETRY_WAIT
                        Seconds to wait between Chromecast retries. Default is
                        5.
  -p PORT, --port PORT  TCP server port number

Server Protocol

The TCP server uses a simple line-based protocol, easily controlled from scripts, cron or home automation.

Assign the “CCTV” channel to the “Kitchen” chromecast, and start casting it:

chromecast=Kitchen,channel=CCTV,cast=1

Assign the “CCTV” channel to the “Kitchen” chromecast, don’t cast it (either prepares for future casting, or assumes already casted):

chromecast=Kitchen,channel=CCTV

Cast the currently assigned channel (whatever that is):

chromecast=Kitchen,cast=1

Stop casting:

chromecast=Kitchen,cast=0

Starting the server by default

Use the included greenscreen_control.service to start the server as a systemd unit.

Release files for greenscreen-control 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for greenscreen-control 0.0.2
File Size Uploaded
greenscreen_control-0.0.2.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for greenscreen-control 0.0.2
File Interpreter ABI Platform
greenscreen_control-0.0.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size:20.7 kB

Release files / greenscreen_control-0.0.2.tar.gz

Download URL greenscreen_control-0.0.2.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
342e0e6cd76ceaa149d7599653591fd4d95c9efeef78cda92f801ee1a0c6e897
BLAKE2b-256 checksum
How to use checksums
aec14dba71537b8f4c08229ccb535f139646c341f9f06624e3bee85bfcf3f30c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / greenscreen_control-0.0.2-py2.py3-none-any.whl

Download URL greenscreen_control-0.0.2-py2.py3-none-any.whl
Size 10.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
7b3ab016975ffd7f0b6abf40b38df9beaac230fcf6f1ad7ec04512e7ccfb097f
BLAKE2b-256 checksum
How to use checksums
4ce728902d71994c0927f79d1fc10f1507dc13e464337a77e75a1ebe4797905f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page