LZ Broadcast Intercom companion-module/README.md

LZ Broadcast Intercom — Bitfocus Companion module

A Bitfocus Companion connection module for the LZ Broadcast Intercom core server. It lets a Stream Deck (or any Companion surface) act as a hardware control panel for the intercom: push-to-talk, mute, volume, direct calls and emergency, with live button feedback for talk state, battery, emergency and connection health.

How it works

 Stream Deck ──► Companion ──► this module ──┬─ POST /api/control/action   (commands)
                                             └─ WS  /ws                     (live state + direct calls)
                                                        │
                                                        ▼
                                            LZ Broadcast Intercom core (:4001)

See companion/HELP.md for the full list of actions, feedbacks, variables and presets.

Install for development

Companion loads "developer" modules from a folder you point it at.

  1. Build the intercom core and start it (defaults to port 4001): bash # from the repository root npm install npm run dev:server
  2. Install this module's dependencies: bash cd companion-module npm install
  3. In Companion, open Settings → Developer modules path and select the folder that contains this companion-module directory (or copy this directory into your configured dev-modules path).
  4. Add a connection: Connections → Add → LZ Broadcast Intercom, then set the core Host and Port.

Build a distributable package

npm run build:manifest      # or: npx companion-module-build

This produces broadcast-intercom-<version>.tgz, the package format Companion imports via Import custom module.

Validate & test

npm run check               # node --check on every source file
npx companion-module-check  # validate manifest + module against the framework

# End-to-end against a running core on 127.0.0.1:4001:
node test/integration.mjs

test/integration.mjs mocks the Companion host and drives the real module logic (connection, actions, feedbacks, variables) against a live core — verifying that PTT, mute/unmute, emergency and the derived feedbacks all round-trip correctly.

Compatibility

License

Proprietär — © 2026 Lars Zumpe, alle Rechte vorbehalten. Nutzung der veröffentlichten Builds ist kostenlos; Weiterverbreitung und abgeleitete Werke sind es nicht. Siehe LICENSE.