Skip to content

Shaffer-Softworks/Biamp-Tesira

Repository files navigation

Biamp Tesira — Home Assistant (HACS)

Custom integration for Biamp Tesira DSPs using the Tesira Text Protocol (TTP) over SSH (recommended) or Telnet.

Not the Trane/American Standard “Nexia” thermostat cloud integration. This targets Biamp professional Tesira DSP hardware only.

This is an original Shaffer-Softworks integration. It does not use or depend on community tesira_ttp packages.

Features

  • Async TTP client (SSH via asyncssh, Telnet with echo negotiation)
  • SESSION setup, JSON +OK parsing, subscribe / unsubscribe
  • Config flow: manual IP or UDP discovery (port 12000)
  • Control points: import arbitrary TTP addresses from CSV/JSON
  • Block entities: level (media_player), mute / logic (switch), source (select), presets (button), meters (sensor / binary_sensor)
  • Service biamp_tesira.send_command for raw TTP
  • Connection binary_sensor
  • Local control (no cloud)

Requirements

  • Home Assistant 2024.1 or newer
  • Tesira with SSH and/or Telnet enabled on the control port
  • When system security is enabled: a Tesira user with Controller permission (Biamp security)

Brand icons

Official Biamp wordmark (from biamp.com), bundled under custom_components/biamp_tesira/brand/ for Home Assistant 2026.3+ (icon.png, logo.png, dark / @2x variants).

Regenerate after updating brand/_source_biamp_wordmark.png:

python3 scripts/generate_brand_assets.py

HACS installation

  1. Add https://github.com/Shaffer-Softworks/biamp-tesira as a custom repository (category: Integration).
  2. Install Biamp Tesira and restart Home Assistant.
  3. Settings → Devices & services → Add integration → Biamp Tesira.

Or copy custom_components/biamp_tesira into config/custom_components/.

Control points (CSV / JSON)

Export instance tags from Tesira software (DSP Properties / Object List), then build a file like examples/control_points.csv.

Column Description
name Entity friendly name
instance_tag Tesira instance tag (quote in CSV if it contains spaces)
command Usually get (polling); set used when writing
attribute TTP attribute (level, mute, state, …)
index1, index2 Optional channel indexes
entity_type number, switch, button, select
min, max, unit For number entities
options For select: pipe-separated list
preset For button: DEVICE recallPreset id

Block entities

During setup (or Configure → Options → Add block entity), map common blocks:

Block type HA platform
level media_player (volume / mute)
mute switch
logic_state switch
source_selector select
preset button (DEVICE recallPreset)
signal_present_meter binary_sensor
audio_meter sensor (dB)
matrix_crosspoint switch (crosspoint on/off via crosspointLevelState)
matrix_crosspoint_level number (crosspoint gain in dB via crosspointLevel)

For matrix blocks, set matrix_input and matrix_output (TTP row/column indices) instead of channel.

Enable Live updates to use TTP subscribe (polling interval applies when off).

Service

service: biamp_tesira.send_command
data:
  command: "Level1 get level 1"
  host: "192.168.1.50"  # required if multiple Tesiras

Docker development

cp .env.example .env
docker compose up -d

Open http://localhost:8123, add Biamp Tesira.

Mock Tesira (no hardware)

docker compose --profile mock up -d --build
Service Host from HA container Port
tesira-mock tesira-mock 23
tesira-mock (from host) localhost 2323

Use protocol telnet, paste examples/control_points.csv, or add a level block on Level1 channel 1.

Development

python3 -m pytest tests/

HACS default registry

See docs/HACS_DEFAULT.md for submitting to the official HACS default integration list.

References

License

Apache-2.0

About

Home Assistant HACS integration for Biamp Tesira DSPs (Tesira Text Protocol over SSH/Telnet)

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors