Summary

HDANYWHERE MHUB is a family of HDMI matrix switches supporting video and audio routing, zone management, and third-party device control via IR, CEC, RS-232, and IP. The API is REST/HTTP-based, accessible at http://devicehost/api/, using GET and POST verbs. Port 80 is used for HTTP. No authentication procedure is described for local LAN control.

Transport

protocols:
  - http
addressing:
  base_url: "http://devicehost/api/"
  port: 80  # inferred from DNS-SD responses showing Port: 80
auth:
  type: none  # inferred: no auth procedure described for local MHUB control

Traits

- powerable       # power on/off commands present (/api/power/0/, /api/power/1/)
- routable        # input/output routing commands present (/api/control/switch/)
- queryable       # state query APIs present (/api/data/0/, /api/data/200/)
- levelable       # volume control present (/api/control/volume/)

Actions

- id: power_standby_on
  label: Standby ON (Turn Off)
  kind: action
  params: []
  # Note: not universally supported on all MHUB systems

- id: power_standby_off
  label: Standby OFF (Turn On)
  kind: action
  params: []

- id: reboot_full
  label: Full Reboot / Power Cycle
  kind: action
  params: []
  # Execution time: 30000ms (30 seconds)

- id: reboot_os
  label: Reboot OS
  kind: action
  params: []
  # Maintains video/audio function active

- id: identify
  label: Identify Device
  kind: action
  params: []

- id: switch
  label: Source Switch
  kind: action
  params:
    - name: output
      type: string
      description: Output port ID (a, b, c, ...)
    - name: input
      type: integer
      description: Input number (1-based)

- id: switch_zone
  label: Zone Switching (MHUB Audio/MZMA)
  kind: action
  params:
    - name: zone_id
      type: string
      description: Zone ID (z1, z2, z3...)
    - name: input
      type: integer
      description: Input number (1-based)

- id: fixaudio
  label: Source Audio Extraction
  kind: action
  params:
    - name: state
      type: boolean
      description: "true = disable audio matrix and fix audio switch; false = enable audio matrix"

- id: followaudio
  label: Audio Output Ports (100A systems)
  kind: action
  params:
    - name: mode
      type: string
      enum: [input, output]
      description: "input = Follow Input; output = Follow Output"

- id: set_volume
  label: Set Output Volume
  kind: action
  params:
    - name: output
      type: string
      description: Output port ID (a, b, c, ...)
    - name: volume
      type: integer
      description: Volume level (1-100)
  # Supported on: MHUBAUDIO6455, MZMA6455, MHUB44100A, MHUB66100, MHUBS888100A, MHUBS161616100A/DM

- id: volume_step
  label: Step Output Volume
  kind: action
  params:
    - name: output
      type: string
      description: Output port ID (a, b, c, ...)
    - name: direction
      type: string
      enum: [up, down]
    - name: step
      type: integer
      description: Volume step percentage (1-10)

- id: set_zone_volume
  label: Set Zone Volume (MZMA only)
  kind: action
  params:
    - name: zone_id
      type: string
      description: Zone ID (z1, z2, z3...)
    - name: volume
      type: integer
      description: Volume (0-100)

- id: set_arc
  label: Audio Return Channel (ARC)
  kind: action
  params:
    - name: output
      type: string
      description: Output port ID (a, b, c)
    - name: type
      type: integer
      enum: [0, 1]
      description: "0=HDMI, 1=HDBaseT"
    - name: arc_state
      type: boolean
      description: "true=ARC On, false=ARC Off"

- id: mute
  label: Mute Output
  kind: action
  params:
    - name: output
      type: string
      description: Output port ID (a, b, c, ...)
    - name: mute_state
      type: boolean
      description: "true=muted, false=unmuted, toggle=toggles current state"

- id: mute_zone
  label: Mute Zone (MHUB Audio/MZMA)
  kind: action
  params:
    - name: zone_id
      type: string
      description: Zone ID (z1, z2, z3...)
    - name: mute_state
      type: boolean
      description: "true=muted, false=unmuted"

- id: set_output
  label: Shutdown Amplifier Output (MHUB Audio/MZMA)
  kind: action
  params:
    - name: output
      type: string
      description: Output port ID (a, b, c, ...)
    - name: state
      type: string
      enum: [on, off]
      description: "on=Enables output, off=Disables output"

- id: set_zone_output
  label: Shutdown Amplifier Zone (MHUB Audio/MZMA)
  kind: action
  params:
    - name: zone_id
      type: string
    - name: state
      type: string
      enum: [on, off]

- id: group_create
  label: Create Group
  kind: action
  params:
    - name: label
      type: string
      description: Label for group

- id: group_delete
  label: Delete Group
  kind: action
  params:
    - name: group_id
      type: string

- id: group_add_zone
  label: Add Zone to Group
  kind: action
  params:
    - name: group_id
      type: string
    - name: zones
      type: array
      items:
        type: string

- id: group_remove_zone
  label: Remove Zone from Group
  kind: action
  params:
    - name: group_id
      type: string
    - name: zones
      type: array
      items:
        type: string

- id: group_volume_set
  label: Set Group Volume
  kind: action
  params:
    - name: group_id
      type: string
    - name: volume
      type: integer
      description: Volume (1-100)

- id: group_volume_step
  label: Step Group Volume
  kind: action
  params:
    - name: group_id
      type: string
    - name: direction
      type: string
      enum: [up, down]

- id: group_mute
  label: Mute Group Audio
  kind: action
  params:
    - name: group_id
      type: string
    - name: mute_state
      type: boolean

- id: execute_sequence
  label: Execute Sequence
  kind: action
  params:
    - name: sequence_id
      type: string
    - name: state
      type: boolean
      required: false

- id: execute_function
  label: Execute Function
  kind: action
  params:
    - name: function_id
      type: string
    - name: state
      type: boolean
      required: false

- id: execute_ir
  label: Execute uControl IR Command
  kind: action
  params:
    - name: ir_port
      type: integer
      description: IR port ID (1, 2, 3...)
    - name: command_id
      type: integer
      description: IR command ID from uControl pack

- id: execute_ir_hold
  label: Execute IR Command (Hold)
  kind: action
  params:
    - name: ir_port
      type: integer
    - name: command_id
      type: integer
  # Sends IR command every 250ms until release

- id: execute_ir_release
  label: Release IR Hold
  kind: action
  params:
    - name: ir_port
      type: integer
    - name: command_id
      type: integer

- id: execute_irpass
  label: IR Passthrough
  kind: action
  params:
    - name: ir_port
      type: integer
    - name: irdata
      type: string
      description: Pronto IR hex string

- id: execute_cec
  label: Execute uControl CEC Command
  kind: action
  params:
    - name: port_id
      type: string
      description: "Port ID: a,b,c... for outputs; 1,2,3... for inputs"
    - name: type
      type: integer
      enum: [0, 1]
      description: "0=HDMI output, 1=HDBT output"
    - name: command_id
      type: integer
      description: CEC command ID from uControl CEC library

- id: execute_cecpass
  label: CEC Passthrough
  kind: action
  params:
    - name: port_id
      type: string
    - name: type
      type: integer
      enum: [0, 1]
    - name: logicaladdress
      type: string
    - name: command
      type: string
    - name: arguments
      type: string

- id: configure_rs232
  label: RS232 Port Configuration
  kind: action
  params:
    - name: port
      type: string
    - name: baud
      type: string
      enum: ["1", "2", "3", "4", "5", "6", "7", "8"]
      description: "1=115200, 2=57600, 3=56000, 4=38400, 5=19200, 6=14400, 7=9600, 8=4800"
    - name: data
      type: string
      enum: ["1", "2", "3", "4"]
      description: "1=8bit, 2=7bit, 3=6bit, 4=5bit"
    - name: parity
      type: string
      enum: ["1", "2", "3"]
      description: "1=none, 2=odd, 3=even"

- id: execute_rs232pass
  label: RS232 Passthrough
  kind: action
  params:
    - name: port_id
      type: string
    - name: type
      type: integer
      enum: [0, 1]
      description: "0=ASCII, 1=hexadecimal"
    - name: rs232data
      type: string

- id: execute_ip
  label: Execute uControl IP Command
  kind: action
  params:
    - name: pack_id
      type: integer
    - name: command_id
      type: integer

- id: execute_ipass
  label: IP Passthrough
  kind: action
  params:
    - name: type
      type: string
      description: "Command type: POST, GET, PUT, TCP, TCPX, UDP, BROADCAST, TELNET"
    - name: ip
      type: string
    - name: path
      type: string
    - name: port
      type: string
    - name: ipdata
      type: string
    - name: auth
      type: object
      properties:
        type:
          type: string
          enum: [header, text, login]
        data:
          type: object

Feedbacks

- id: power_state
  label: MHUB Power State
  type: boolean
  # true = MHUB is on, false = MHUB is off

- id: system_info_standalone
  label: System Information (Standalone)
  type: object
  properties:
    - io_data (input_video, output_video, output_video_mirror, input_audio, output_audio, output_audio_mirror)
    - ir (backwards, forwards, avr)
    - cec (output, input)
    - rs232
    - ws
    - mhub (first_boot, ip_address, firmware, os_firmware, os_version, api, mhub_official_name, unit_id, mhub_name, serial_number)
    - stack (stack_status, stack_rank, stack_master)

- id: system_info_stacked
  label: System Information (Stacked Mode)
  type: object
  properties:
    - stacked_io (stack_input_video, stack_output_video, stack_output_video_mirror, stack_input_audio, stack_output_audio, stack_output_audio_mirror)
    - mapping (input, output, split_input, stack_unit_info)

- id: zones
  label: MHUB Zones
  type: array
  description: Output and inputs assigned to zones, with zone labels

- id: groups
  label: MHUB Groups
  type: array
  properties:
    - group_id
    - group_label
    - zones
    - group_volume
    - group_mute

- id: status_single
  label: Status (Single System)
  type: object
  description: Current routing, volume, and audio states for all zones

- id: status_stacked
  label: MHUB Status (Stacked)
  type: object
  description: Current routing information for all zones in stacked setup

- id: ucontrol_pack_summary
  label: uControl Pack Summary
  type: object
  description: MHUB ports with uControl Packs installed (IR and IP packs)

- id: ucontrol_cec_pack
  label: uControl CEC Pack
  type: object
  description: CEC pack command IDs and labels

- id: sequences_functions
  label: Sequences and Functions
  type: object

- id: reboot_response
  label: Reboot Response
  type: object
  properties:
    - Description

- id: power_response
  label: Power Command Response
  type: object
  properties:
    - power

- id: switch_response
  label: Switch Response
  type: object
  properties:
    - output_id
    - input_id

- id: volume_response
  label: Volume Response
  type: object
  properties:
    - output_id
    - volume

- id: mute_response
  label: Mute Response
  type: object
  properties:
    - output_id
    - mute

- id: arc_response
  label: ARC Response
  type: object
  properties:
    - output_id
    - type
    - arc

- id: group_response
  label: Group Operation Response
  type: object

- id: execute_response
  label: Execute Response
  type: boolean
  # Returns true on successful execution

Variables

# UNRESOLVED: variables are returned by query APIs but are not independently settable
# All writable parameters are exposed as Actions

Events

# UNRESOLVED: document describes request/response pattern only; no unsolicited event
# notifications are documented for local LAN control. UDP state broadcast is mentioned
# (Port 3000) but not detailed.

Macros

# UNRESOLVED: sequences and functions are user-defined on the device; the API executes
# them but does not define their internal steps

Safety

confirmation_required_for: []
interlocks:
  - |
    ARC routing: "ARC can only be routed to MHUB if the mode is enabled - before -
    the input is switched to. This is to avoid the display's internal speaker from
    delivering no audio when ARC is not needed." (from source: /api/control/arc/)
  - |
    Reboot execution time: "The reboot command is processed as soon as it is received
    and 30 seconds later the system is automatically brought back online." (from source:
    /api/reboot/1/)
# UNRESOLVED: no explicit safety warnings or interlock procedures beyond ARC timing note

Notes

  • MHUB devices are HDMI matrix switches routing AV inputs to outputs. Inputs are numbered (1, 2, 3...), outputs are lettered (a, b, c...).
  • The API uses lowerCamelCase for IDs, lowercase_with_underscores for array names/labels.
  • Port 80 is used for HTTP based on DNS-SD response examples.
  • CEC support is via uControl library; document notes CEC is not standardized across manufacturers and HDA cannot guarantee command compatibility.
  • RS-232 configuration allows: baud rates 4800-115200, data bits 5-8, parity none/odd/even.
  • IP passthrough supports multiple command types: POST, GET, PUT, TCP, TCPX, UDP, BROADCAST, TELNET.
  • MHUB supports stacking up to 10 units (Audio Matrix devices or Audio + single Video Matrix).
  • Zones group outputs; Groups aggregate up to 4 zones for shared volume control.
  • mDNS/DNS-SD discovery uses _http._tcp (older devices) or _hda._tcp (newer devices) on multicast address 244.0.0.251.

Provenance

source_domains:
  - docs.google.com
source_urls:
  - https://docs.google.com/document/d/e/2PACX-1vRCNYIheN9g9cZNAQkGNLM9xP5CNlED0dZ-rrY2DB-wwqI_1gxEstEqE8z_fHvXZ_k92SHlRUxihupd/pub
retrieved_at: 2026-04-30T04:31:12.610Z
last_checked_at: 2026-06-02T22:07:31.744Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:07:31.744Z
matched_actions: 36
action_count: 36
confidence: medium
summary: "All 36 spec actions traced to source (dip-safe re-verify). (9 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "OAuth 2.0 listed under Protocol(s) but not detailed; relevance to local control unclear"
- "variables are returned by query APIs but are not independently settable"
- "document describes request/response pattern only; no unsolicited event"
- "sequences and functions are user-defined on the device; the API executes"
- "no explicit safety warnings or interlock procedures beyond ARC timing note"
- "OAuth 2.0 listed under Protocol(s) in source prologue but no auth procedure described for local control"
- "UDP state broadcast (Port 3000) mentioned but not detailed"
- "HDA Cloud features noted as \"development paused\""
- "uControl command IDs 0-102 listed in appendix but source does not specify which are CEC vs IR vs IP specific"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0