Skip to content

Create Bitfocus Companion module using PTZControlConsole backend #13

Description

@jochenwezel

Feature request for the planned Bitfocus Companion integration.

Preferred architecture:

  • Companion module invokes PTZControlConsole as the backend/bridge
  • module configuration contains PTZControlConsole path and camera selection
  • actions cover list/camera selection, zoom, move, home/default, presets, and friendly-name lookup
  • variables/feedbacks expose preset names and useful camera information

Module naming and supported cameras

The module title/description should include Logitech and/or Logi, because the upstream PTZControl project is focused on Logitech/Logi camera families and users may search for either brand spelling. The module name should not include a specific camera model such as PTZ Pro 2, because that would look unnecessarily limiting for users with other compatible Logitech/Logi cameras.

Possible module names:

  • Logitech PTZ Control
  • Logitech PTZ Pro Camera Control

Description wording should avoid overpromising. Suggested direction:

Controls supported Logitech/Logi cameras via PTZControlConsole. Validated camera models and feature support are listed in the module documentation.

Upstream PTZControl currently documents automatic detection for these camera families/tokens:

  • Logitech PTZ Pro 2
  • Logitech PTZ Pro
  • Logitech Rally cameras / Logi Rally
  • Logi Group Camera
  • ConferenceCam CC3000e
  • name tokens used upstream: PTZ Pro, Logi Rally, ConferenceCam, Logi Group Camera

For this fork/module, separate the public support wording into two categories:

  • Validated: models tested with our released PTZControlConsole builds and guided scripts.
  • Expected/compatible: models likely to work because upstream PTZControl supports them or because they expose standard UVC/DirectShow/V4L2 camera controls.

Do not claim full support for cheap/simple Logitech webcams until they have passed our guided test flow. If a local Logitech HD Webcam C525 or similar model validates successfully, it can be added as a specifically tested model with a note about which features work, for example zoom only, pan/tilt raw controls, no presets, etc.

Companion camera choices

The Companion module needs camera choice/dropdown data for action and button configuration. A user should be able to bind a button to the intended camera by choosing any supported selection model, depending on what is most practical in their setup.

Required camera metadata for dropdowns / choice lists:

  • camera device name, as reported by DirectShow/V4L2 enumeration
  • Windows DirectShow camera friendly name where available
  • PTZControl camera slot number
  • PTZControl camera slot alias / friendly name where configured
  • concrete camera device path / moniker path

The module should expose these in a way that allows button actions to use one of the existing PTZControlConsole selectors:

--camera "NamePart"
--device-path "DevicePath"
--slot 1..3

The user decides which selector style to use. The UI should make the tradeoff visible:

  • device name / DirectShow friendly name: readable, useful after Windows DirectShow rename
  • slot: short and familiar from PTZControl, but dependent on enumeration order
  • slot alias: human-readable PTZControl metadata, useful for user-facing labels
  • device path: verbose, but usually the most concrete selector available from enumeration

Potential backend support may require either extending list-devices output or adding a dedicated machine-readable command, for example JSON output, so Companion can populate dropdowns without parsing human-oriented text.

Related commits providing the backend foundation:

  • 0281719 Implement command-oriented console syntax
  • b1d16b3 Remove legacy console arguments
  • eb131fe Handle console command errors consistently
  • 0819532 Add camera device info command
  • 2551bc1 Add explicit value modes for CLI moves
  • 24adcc1 Separate home default and preset restore commands
  • 453437e Add preset name management commands
  • bbdf94a Add preset name lookup command
  • d74dc4b Improve camera info and selection syntax
  • 6457ad0 Add cross-platform metadata config and camera test scripts
  • b2664f4 Add DirectShow camera rename commands

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions