Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 31 Jul 17:52
21fb5de

Control a Kramer VS-44HN 4×4 HDMI matrix switcher over serial or TCP — from a command line, a desktop window, or a browser. No third-party runtime dependencies: the standard library is the whole dependency list.

The view follows the hardware. Front-panel presses are picked up in the idle gaps between commands, so the on-screen matrix mirrors the physical one without polling it, and a lost link is noticed, reported, and repaired without anyone clicking anything.

Pick one

A container, for a NAS or any Docker host. Built for TrueNAS Scale and verified on one, including that the settings volume survives a restart:

docker run -d --name kramer -p 8000:8000 \
  -e KRAMER_MATRIX=192.168.1.39 \
  -v /mnt/pool/apps/kramer:/config \
  ghcr.io/piero-93/kramer-vs44-remote-control:0.1.0

There is a docker-compose.yml in the repository set up for TrueNAS Scale's custom-app form, uid 568 included.

A single executable, for the desktop. Download one of the files below, run it, nothing to install. It keeps its settings in your user profile — or, if you drop a kramer_gui_config.json next to it, beside itself, which makes it portable on a USB stick.

From a checkout, if you want the CLI or want to run the service yourself. See the README; a virtual environment is described there but strictly speaking not needed.

Files

kramer-gui-v0.1.0-windows-amd64.exe — Windows 10/11, 64-bit. Unsigned, so SmartScreen will want a More info → Run anyway the first time.

kramer-gui-v0.1.0-linux-amd64 — needs glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora 36+) and a Tk-capable desktop. Remember chmod +x.

SHA256SUMS.txt — checksums for both.

Two things the device does that will otherwise confuse you

The matrix announces front-panel changes to only one connected client. Not to the others, and never a switch made by another client. So run one controller at a time: if the web service and the desktop window are both connected, one of them will quietly stop noticing the front panel. This is a property of the switcher, not a limitation of this software, and it is measured rather than assumed.

A connection dropped ungracefully is refused for roughly ninety seconds. Killing a controller instead of closing it means the next one waits. Stopping cleanly — including docker stop, which is handled — reconnects in about three seconds.

Also worth knowing: the VS-44HN does not answer ICMP, so a failed ping tells you nothing about whether it is there.

What was actually verified

308 offline checks in CI on every push, plus live suites run against the switcher itself for both the window and the service. The container was tested on the target NAS: volume persistence, the uid-mismatch failure mode, and a three-second reconnect after a clean restart. The Windows binary was opened by hand — no console flash, correct icon and metadata, settings surviving a close in both normal and portable modes.

The Linux binary is built and smoke-tested in CI: it starts and stays up for twenty seconds under a bare X server, which is where the classic one-file Tk failure appears, and it answers --version. It has not yet been opened by hand on a Linux desktop.

Licensed under the GNU GPL v3 or later.