Skip to content
Wayne Bevan edited this page Oct 24, 2026 · 3 revisions

Setup

Get tesmartctl talking to the switch, then keep a listener running for the kit, panel, and Hubitat.

Install

python3 -m pip install --upgrade tesmartctl
# or from a clone:
python3 -m pip install -e .

Entry point: tesmartctl. Requires Python 3.10+. On Windows, confirm Python and pip first: Windows.

Guided setup

tesmartctl install asks whether this computer is the server or a client, then the switch or listener details. A saved env file is used as the defaults and the wizard says so; otherwise it starts from the built-in defaults. Nothing is written until you confirm. A server install stores the HTTP listen address (TESMART_HTTP) with the panel and mDNS choices. Its connection test can select input 9 and then return to the input that was active. If input 9 comes up, the switch is saved as 16 inputs. Otherwise it is saved as 8. You can keep that count or enter your own. A client install is headed Connect to Server and saves that listener separately, so a server listener already on this computer stays as it is. The Floating UI Kit question defaults to Yes. The wizard can also save startup.txt in the current directory for future reference, with tesmartctl quickstart and the client checks.

tesmartctl install
tesmartctl quickstart

Full walk-through: Docs/install.md. Server start: Quick start. Another computer: Client install.

Reach the switch

Default LAN target is 192.168.1.10:5000. Override per command or save defaults:

tesmartctl --host 192.168.1.50 status
tesmartctl config set --host 192.168.1.50 --port 5000
tesmartctl config path    # where defaults live

RS232 instead of LAN:

tesmartctl --serial /dev/tty.usbserial-xxx status

16-port models: add --inputs 16 (or save it with config set).

Smoke test

tesmartctl status
tesmartctl input 2
tesmartctl input              # query current

If status times out: confirm IP/port, that nothing else owns the TCP session, and that the switch is on the same LAN.

Run the server

On the computer that talks to the HDMI switch, configure once, then start:

tesmartctl install
tesmartctl quickstart

install saves the switch address, the HTTP listen address (TESMART_HTTP), the listen port (TESMART_HTTP_PORT), and the browser UI choice (TESMART_HTTP_PANEL). quickstart starts that listener and leaves it running. /kit is the floating UI application kit. /panel is the browser-only control panel. Both are on by default.

Leave quickstart running. CLI one-shots, Stream Deck HTTP, the kit, the panel, and Hubitat all talk through it (or open their own short-lived TCP sessions for one-shots). quickstart is the same process as tesmartctl listen with the options install saved. The wizard also prints that longer command. Page: Quick start. Walk-through: Docs/install.md.

Optional LAN discovery (pip install 'tesmartctl[mdns]'): during install, choose a listen address other computers can open, then from another machine use tesmartctl --via auto …. Limits and typed-URL fallback: mDNS.

Local input names

Names are stored only on the Mac/PC (env file), not on the switch:

tesmartctl name set 2 Office
tesmartctl name list
tesmartctl input Office

Quick start

On the server:

tesmartctl install
tesmartctl quickstart

Details, including what happens when the saved listener is missing: Quick start.

Client install

On another computer, run tesmartctl install and choose Client. Choosing mDNS scans the network and lists the listeners it finds. After that:

tesmartctl --via auto kit

Details: Client install.

Next

  • Windows — Python and pip, double quotes on pip commands, start for a server and a client
  • Quick start — install, then quickstart on the server
  • Client install — another computer, then tesmartctl --via auto kit
  • Floating kit — floating UI application kit at /kit
  • Hubitat — smart-home drivers
  • Control panel — browser-only control panel at /panel
  • Listener & HTTP — URL cheat sheet
  • mDNS — discover the listener without typing an IP

Clone this wiki locally